This project implements a comprehensive pipeline for analyzing spatial transcriptomics and pathology data. It integrates visual features (from histology images), semantic concepts (CUI from medical knowledge graphs), and gene expression data to identify and characterize spatial domains.
Visual Embeddings:
src/scripts/generate_image_embeddings.pyimage_embedding.npy per patch.Concept Extraction (ROIs):
src/scripts/fusion_engine.pytgt_* columns (Gene Expression).We have successfully processed the TENX96 slide. Below are the statistics of the extracted elements:
Ce document sert de spécification technique pour l'ingénieur en charge de l'implémentation. Chaque tâche est atomique et vérifiable.
(Sursis Estimé: 2 semaines)
Objectif Final : Convertir des fichiers .svs / .ndpi (images gigapixels) en un ensemble de fichiers .pt (PyTorch tensors) structurés géographiquement et sémantiquement.
st_mapping.csv : Colonnes patch_id, x_coord, y_coord, gene_counts_vector.cui_encoder.pth et fonction get_cui_probs(patch)./clusters/ : Liste des Clusters et leurs vecteurs moyens./rois/ : Liste des ROIs, lien vers Cluster parent, et lien vers liste des Patchs enfants./patches/ : Les features individuelles des patchs (ne sont chargées que sur demande).(Sursis Estimé: 1 semaine)
Objectif Final : Valider la capacité prédictive à haute résolution.
train_hierarchical_baseline.py.(Sursis Estimé: 1 semaine)
Objectif Final : Persistance des connaissances.
(Identique à la version précédente) Le Knowledge Graph stocke les concepts et les gènes. Il sert de "mémoire sémantique" pour guider l'agent, quel que soit son niveau de zoom.
(Sursis Estimé: 3 semaines)
Objectif Final : Un agent capable de naviguer et de zoomer jusqu'au patch précis.
Node_Feat = Moyenne du Cluster.Node_Feat = Moyenne du ROI.Node_Feat = Features précises du Patch (CUI vector).step() pour gérer le chargement de données.def step(self, action):
if action == ZOOM_IN:
self.current_level += 1
# CHARGEMENT DYNAMIQUE ICI
# On récupère les IDs des enfants du noeud courant depuis le H5
# On construit le petit graphe (50-100 noeuds) à la volée
self.subgraph = self.load_children(self.current_node)
return self.get_observation(self.subgraph.start_node)
(Sursis Estimé: 1 semaine)
Objectif Final : Interface Web permettant de suivre l'agent dans les profondeurs.
(Sursis Estimé: 2 semaines)
Objectif Final : Apprentissage continu.
Cluster_A -> Zoom -> ROI_42 -> Zoom -> Patch_12 -> Predict.6 commits
Jupyter Notebook
98.9%
Python
1.1%
This project implements a comprehensive pipeline for analyzing spatial transcriptomics and pathology data. It integrates visual features (from histology images), semantic concepts (CUI from medical knowledge graphs), and gene expression data to identify and characterize spatial domains.
Visual Embeddings:
src/scripts/generate_image_embeddings.pyimage_embedding.npy per patch.Concept Extraction (ROIs):
src/scripts/fusion_engine.pytgt_* columns (Gene Expression).We have successfully processed the TENX96 slide. Below are the statistics of the extracted elements:
Ce document sert de spécification technique pour l'ingénieur en charge de l'implémentation. Chaque tâche est atomique et vérifiable.
(Sursis Estimé: 2 semaines)
Objectif Final : Convertir des fichiers .svs / .ndpi (images gigapixels) en un ensemble de fichiers .pt (PyTorch tensors) structurés géographiquement et sémantiquement.
st_mapping.csv : Colonnes patch_id, x_coord, y_coord, gene_counts_vector.cui_encoder.pth et fonction get_cui_probs(patch)./clusters/ : Liste des Clusters et leurs vecteurs moyens./rois/ : Liste des ROIs, lien vers Cluster parent, et lien vers liste des Patchs enfants./patches/ : Les features individuelles des patchs (ne sont chargées que sur demande).(Sursis Estimé: 1 semaine)
Objectif Final : Valider la capacité prédictive à haute résolution.
train_hierarchical_baseline.py.(Sursis Estimé: 1 semaine)
Objectif Final : Persistance des connaissances.
(Identique à la version précédente) Le Knowledge Graph stocke les concepts et les gènes. Il sert de "mémoire sémantique" pour guider l'agent, quel que soit son niveau de zoom.
(Sursis Estimé: 3 semaines)
Objectif Final : Un agent capable de naviguer et de zoomer jusqu'au patch précis.
Node_Feat = Moyenne du Cluster.Node_Feat = Moyenne du ROI.Node_Feat = Features précises du Patch (CUI vector).step() pour gérer le chargement de données.def step(self, action):
if action == ZOOM_IN:
self.current_level += 1
# CHARGEMENT DYNAMIQUE ICI
# On récupère les IDs des enfants du noeud courant depuis le H5
# On construit le petit graphe (50-100 noeuds) à la volée
self.subgraph = self.load_children(self.current_node)
return self.get_observation(self.subgraph.start_node)
(Sursis Estimé: 1 semaine)
Objectif Final : Interface Web permettant de suivre l'agent dans les profondeurs.
(Sursis Estimé: 2 semaines)
Objectif Final : Apprentissage continu.
Cluster_A -> Zoom -> ROI_42 -> Zoom -> Patch_12 -> Predict.6 commits
Jupyter Notebook
98.9%
Python
1.1%