Retour aux projets

PathOS / Détection de lésions prostatiques

Un système de recherche qui aide un pathologiste à grader des biopsies de prostate à partir de lames entières : un grade ISUP au niveau de la lame, une carte de Gleason au pixel près et un détecteur cribriforme, présentés dans une interface de relecture où la décision humaine et la traçabilité gardent la main. 0,9227 QWK en validation croisée à cinq plis sur 10 616 lames PANDA.

ExpérimentalAucun dépôt publicMémoire de Master, Université d'Alger 1 / 2025-2026

Problème

Une lame de biopsie est une image gigapixel avec une seule étiquette au niveau de la lame, les annotations détaillées coûtent cher, et des régions floues, pliées ou vides peuvent capter l'attention d'un modèle. La gradation est aussi ordinale : prendre un ISUP 5 pour un 4 est une erreur moindre que le prendre pour un 1. L'outil doit aider un pathologiste, pas le remplacer.

Solution

Un apprentissage à instances multiples sur des caractéristiques gelées de modèles de fondation pour le grade au niveau de la lame, entraîné avec une perte ordinale et évalué par le kappa pondéré quadratique. Un U-Net localise les motifs de Gleason au pixel près, un troisième modèle détecte l'architecture cribriforme, et l'interface de relecture présente les trois comme des suggestions avec des cartes d'attention. Le pathologiste accepte, modifie ou rejette chacune, et chaque écart est justifié et journalisé.

Fonctionnalités clés

Gradation ISUP au niveau de la lame : prétraitement OpenSlide, embeddings de patchs Virchow2 gelés et agrégateur TransMIL entraîné avec la perte ordinale CORAL
0,9227 ± 0,0046 QWK en validation croisée à cinq plis sur 10 616 lames PANDA ; 0,9134 sur le jeu de test fixe, avec 92,6 % de sensibilité et 94,5 % de spécificité au seuil ISUP 2, cliniquement important
Généralisation externe sans réentraînement : 0,8772 QWK sur SICAPv2 (155 lames) et 0,8109 sur CrowdGleason (232 lames), tous deux issus de centres espagnols, ce qui limite la portée de l'accord observé
Segmentation de Gleason au pixel près avec un U-Net ResNet-34 préentraîné sur 5 060 lames annotées : 0,753 de Dice moyen, Gleason 5 restant la classe difficile à environ 0,57 pour toutes les variantes essayées
CribriNet : détection cribriforme dans les patchs de Gleason 4 à partir de caractéristiques PhiKoN masquées, 0,904 d'AUC et 0,661 de F1 pour la tête MLP retenue, en validation croisée à cinq plis groupée par lame
Un résultat négatif assumé : le filtre d'artefacts n'apporte aucun gain significatif avec Virchow2, dont les register tokens absorbent déjà les artefacts visés. Les intervalles bootstrap sur PANDA et CrowdGleason incluent tous deux zéro
Interface de relecture avec visionneuse de lames, superpositions de Gleason et d'attention, panneau de décision exigeant une justification pour tout écart, rapport structuré et piste d'audit
Une plateforme derrière : client web, API, workflows durables d'import, de prétraitement, d'inférence et d'agrégation, et stockage objet pour les lames et les cartes de chaleur
Prototype de recherche uniquement : aucune validation clinique, aucune prétention diagnostique, et aucune lame de patient local utilisée pour l'entraînement ou l'évaluation

Rôle

Recherche et ingénierie ML, en tant que l'un des deux auteurs du mémoire de Master (avec Chawki Ahmed Ramzi Belhaddad) ; le rapport présente le travail comme conjoint et ne le répartit pas. L'accompagnement clinique est venu d'un médecin du CHU Parnet. Le dépôt est privé ; cette page présente l'architecture, l'évaluation et l'interface. C'est un prototype de recherche, pas un produit clinique.

Stack

PythonPyTorchCUDAOpenSlideOpenCVVirchow2TransMILABMILU-NetPhiKoNMacenko Normalizationscikit-learnNext.jsNestJSTemporalPostgreSQLOpenSeadragon

Liens

Aucun lien public disponible.

Pipeline de gradation de lames entières

une étiquette par lame gigapixel
RÉDUIREWSISVS / TIFF / NDPI~10⁹ pixelsOpenSlidelecteur de patchsHSV-Otsutissu vs fondfiltre d'artefactsvariance + médiane / MADécarte flou + plispatchsEMBEDDING · GELÉMacenkonormalisation GPUHistoEncoder384-d · témoinVirchow21280-d · principalTransMIL · CORALattention sur le sacsacgrade ISUP6 classes · QWKcarte d'attentionreprojetée sur la lamemontrée au relecteurattentionCONTEXTEMémoire de Master, avec Chawki Ahmed Ramzi Belhaddad · dépôt privéPANDA, VALIDATION CROISÉE 5 PLIS0,9227 QWK
Une lame représente des milliards de pixels pour un seul grade ISUP : le plus gros du travail consiste donc à décider quoi écarter. Un filtre d'artefacts (variance spatiale et test de norme médiane/MAD) retire les patchs flous, pliés ou de fond avant qu'ils ne diluent le sac, et le mémoire le teste avec des intervalles de confiance : avec Virchow2, il n'apporte aucun gain significatif. Les poids d'attention ressortent de l'autre côté, ce qui transforme un nombre en quelque chose qu'un pathologiste peut désigner du doigt.

Captures d'écran : PathOS

8 vues
L'interface de relecture PathOS : la biopsie avec la superposition de Gleason issue du modèle de segmentation, et le panneau de suggestion. Le panneau précise que la sortie est une aide à la décision, jamais le diagnostic final, et signale quand le grade et la segmentation divergent.
La même lame avec la vue d'attention : chaque patch est coloré selon le poids que lui a donné le modèle de grade, pour que le relecteur voie d'où vient la suggestion.
La liste de travail, avec des lames de test. Un dossier reste en attente de relecture jusqu'à ce qu'un pathologiste le signe ; la suggestion ne clôt jamais un dossier toute seule.
La plateforme autour des modèles : interface web et API, workflows durables d'import, de prétraitement, d'inférence et d'agrégation, un worker d'inférence Python, et le stockage des lames et des résultats. Les libellés sont en français, comme dans le mémoire.
Jeu de test fixe PANDA (1 061 lames), 0,9134 QWK. La plupart des erreurs tombent entre grades adjacents, surtout ISUP 1 et 2. Les libellés des axes sont en français, comme dans le mémoire.
L'attention sur trois biopsies de test : deux grades corrects (ISUP 3 et 4) et une erreur de grade adjacent (ISUP 1 réel, 2 prédit), conservée parce que les échecs font partie de la preuve.
Segmentation de Gleason face aux masques du pathologue : une région Gleason 3 correcte, une erreur de grade adjacent, et un foyer Gleason 5 prédit en 4, la classe sur laquelle toutes les variantes ont buté.
Le filtre d'artefacts sur les embeddings Virchow2 : patchs signalés pour une faible variance spatiale et une norme atypique. Il en signale environ 0,5 %, et le mémoire constate qu'il n'apporte aucun gain significatif avec Virchow2.