coreason-prism
Project description
coreason-prism
The Scientific Eye / Multi-Modal Encoder
coreason-prism is the specialized processing engine for scientific data types (Chemistry and Vision) within the CoReason AI ecosystem. It acts as the "Scientific Eye" and "Multi-Modal Encoder", transforming fragile string representations and static images into robust, mathematical graphs and vectors.
Core Philosophy:
"A Molecule is a Graph, not a String. A Chart is Data, not an Image."
Features
Derived from the Product Requirements Document:
-
Cheminformatic Grounding (The Chemist):
- Treats molecules as mathematical graphs, not strings.
- Normalizes and sanitizes chemical structures (SMILES/InChI) using
datamol. - Transmutes SMILES to SELFIES for 100% valid generative output.
- Computes fingerprints (Morgan/ECFP) for structural similarity search.
- Calculates key properties: Molecular Weight, LogP, TPSA, Lipinski Violations.
-
Visual De-Plotting (The Analyst):
- Extracts raw data from scientific figures (e.g., Kaplan-Meier curves) using DePlot.
- Digitizes charts into linear tables/DataFrames.
- Enables meta-analysis of data locked in PDF images.
-
Bio-Image Segmentation (The Biologist):
- Segments and classifies medical images (e.g., Histology) using MedSAM.
- Detects ROIs and computes metrics like cell counts and tumor area.
-
Multi-Modal Embedding (The Embedder):
- Generates joint embeddings for text, molecules, and images using BioCLIP.
- Enables multi-modal retrieval (e.g., searching for histology slides via text description).
Installation
pip install coreason-prism
Or install from source:
git clone https://github.com/CoReason-AI/coreason_prism.git
cd coreason_prism
pip install .
Usage
Here is a concise snippet showing how to initialize and use the library:
from pathlib import Path
from coreason_prism.interface import Prism, PrismMode
# Initialize Prism (The Facade)
prism = Prism(light_mode=False) # Set light_mode=True to skip heavy models (DePlot/BioCLIP)
# 1. Process a Molecule (SMILES -> Graph/SELFIES + Properties)
molecule_result = prism.process_molecule("CC(=O)Oc1ccccc1C(=O)O") # Aspirin
if molecule_result.status == "VALID":
print(f"Canonical SMILES: {molecule_result.canonical_smiles}")
print(f"SELFIES: {molecule_result.selfies_string}")
print(f"LogP: {molecule_result.logp}")
print(f"Fingerprint (first 10 bits): {molecule_result.fingerprint_vector[:10]}")
# 2. Process a Chart Image (Extract Data)
# Ensure you have an image file at the specified path
chart_path = Path("tests/data/kaplan_meier.png")
if chart_path.exists():
chart_result = prism.process_image(
image_path=chart_path,
source_document_id="doc_123",
mode=PrismMode.CHART
)
print(f"Figure Type: {chart_result.figure_type}")
print(f"Extracted Data: {chart_result.data_series}")
if chart_result.metadata:
print(f"Median Survival: {chart_result.metadata.get('median_survival')}")
# 3. Process a Bio-Image (Segmentation)
bio_path = Path("tests/data/histology_slide.jpg")
if bio_path.exists():
bio_result = prism.process_image(
image_path=bio_path,
source_document_id="doc_456",
mode=PrismMode.BIO
)
print(f"Cell Count: {bio_result.metadata.get('cell_count')}")
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file coreason_prism-0.3.0.tar.gz.
File metadata
- Download URL: coreason_prism-0.3.0.tar.gz
- Upload date:
- Size: 21.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b22617e04ed479285c63cd91a6f242acb5863dd03f8f5ee39c96a6fe62bd9aa4
|
|
| MD5 |
91c7a1120514272ab480283bda2fd832
|
|
| BLAKE2b-256 |
cd2ce243dd721e2f75dd87e204f569ac6a37a8997ae6597cb867c3af3a4153e1
|
Provenance
The following attestation bundles were made for coreason_prism-0.3.0.tar.gz:
Publisher:
publish.yml on CoReason-AI/coreason-prism
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
coreason_prism-0.3.0.tar.gz -
Subject digest:
b22617e04ed479285c63cd91a6f242acb5863dd03f8f5ee39c96a6fe62bd9aa4 - Sigstore transparency entry: 868305999
- Sigstore integration time:
-
Permalink:
CoReason-AI/coreason-prism@106a1b4bd2895e2edc2dfc5233ab43b5df1a752e -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/CoReason-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@106a1b4bd2895e2edc2dfc5233ab43b5df1a752e -
Trigger Event:
release
-
Statement type:
File details
Details for the file coreason_prism-0.3.0-py3-none-any.whl.
File metadata
- Download URL: coreason_prism-0.3.0-py3-none-any.whl
- Upload date:
- Size: 30.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c74c693733306afefb040811253956a671731cbf3bf8ebd8bcdbe9b562fb8bee
|
|
| MD5 |
dcaf91d6c0b1c73dcf5c8b8c280046c1
|
|
| BLAKE2b-256 |
15659462b101b47b9deff5985d11dbf3eac00ec8242badaabf9aea6285e0812e
|
Provenance
The following attestation bundles were made for coreason_prism-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on CoReason-AI/coreason-prism
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
coreason_prism-0.3.0-py3-none-any.whl -
Subject digest:
c74c693733306afefb040811253956a671731cbf3bf8ebd8bcdbe9b562fb8bee - Sigstore transparency entry: 868306013
- Sigstore integration time:
-
Permalink:
CoReason-AI/coreason-prism@106a1b4bd2895e2edc2dfc5233ab43b5df1a752e -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/CoReason-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@106a1b4bd2895e2edc2dfc5233ab43b5df1a752e -
Trigger Event:
release
-
Statement type: