Skip to content

This project builds a machine learning pipeline to detect Chemical-Induced Disease (CID) relationships in biomedical literature. It processes BioC XML documents, extracts key linguistic and statistical features, and applies classification models to identify potential CID relations.

Notifications You must be signed in to change notification settings

ourahma/relScan

Repository files navigation

Projet de Détection des Relations CID (Chemical-Induced Disease)

📋 Aperçu du Projet

Ce projet implémente un pipeline de machine learning pour détecter les relations Chimique-Maladie Induite (CID) à partir de la littérature biomédicale. Le système traite des documents BioC XML, extrait des caractéristiques linguistiques et statistiques, et utilise plusieurs algorithmes de classification pour identifier les relations CID potentielles.

🏗️ Architecture du Système

structure

🔧 Pipeline de Prétraitement

1. Chargement et Analyse des Données

  • Charge des documents au format BioC XML (1500 au total)
  • Extrait les entités chimiques et maladies avec leurs IDs MESH
  • Identifie les relations CID à partir des données annotées

2. Traitement du Texte

  • Tokenisation et segmentation en phrases avec NLTK
  • Gestion des entités avec tirets (ex: "delta 9-tetrahydrocannabinol" → "delta_9_tetrahydrocannabinol")
  • Simplification des phrases en se concentrant sur le contexte des entités

3. Construction des Caractéristiques

Crée 27 caractéristiques organisées en trois catégories :

Caractéristiques Contextuelles (Encodage TF-IDF)

  1. Mention chimique (String)
  2. Mention de maladie (String)
  3. Mots indices de relation (String)

Caractéristiques de Dépendance

  1. Chemin POS vers le chimique (String)
  2. Chemin POS vers la maladie (String)
  3. Hauteur depuis la racine au chimique (Numérique)
  4. Hauteur depuis la racine à la maladie (Numérique)

Caractéristiques Statistiques

8-27. Diverses caractéristiques numériques et booléennes incluant :

  • Distances en tokens entre les entités
  • Comptes d'entités dans les phrases
  • Indicateurs de présence dans le titre
  • Indicateurs de contexte clinique
  • Indicateurs de dose
  • Indicateurs de motifs de mots

🤖 Modèles Implémentés

1. Support Vector Machine (SVM)

  • Noyau : Linéaire/RBF avec optimisation GridSearch
  • Réglage des paramètres de régularisation
  • Meilleures performances avec des poids de classe équilibrés

2. Arbre de Décision J48

  • Critère de gain d'information
  • Optimisation de la profondeur d'élagage
  • Analyse d'importance des caractéristiques disponible

3. XGBoost

  • Algorithmes de boosting par descente de gradient
  • Système de régularisation L1/L2 pour éviter le surapprentissage
  • Prise en charge native du déséquilibre des classes

4. Naive Bayes (ComplementNB)

  • Gère spécifiquement les distributions de classes déséquilibrées
  • Fonctionne bien avec les caractéristiques TF-IDF
  • Entraînement et prédiction rapides

📊 Visualisations Clés

1. Heatmap de Corrélation

Correlation Heatmap Montre les relations entre différentes caractéristiques et leur corrélation avec les labels CID

2. Distribution des Labels

Label Distribution Visualise le déséquilibre des classes dans le dataset (relations CID vs Non-CID)

3. Caractéristiques par Classe

Features by Class Compare les distributions des caractéristiques entre instances CID positives et négatives

4. Distances des Tokens

Token Distances Analyse la distribution des distances en tokens entre les mentions chimiques et les maladies

🌐 Application Web Streamlit

📱 Interface Utilisateur

1. Page Principale

L'application Streamlit fournit une interface intuitive pour interagir avec le système de détection CID :

Interface Principale

2. Structure de l'Interface

🔧 Barre Latérale

  • Sélection du Modèle : Choix parmi 6 modèles différents
  • Seuil de Prédiction : Ajustement de la sensibilité (0.0-1.0)
  • Structure BioC Format : Documentation du format attendu

📝 Section d'Entrée (3 Onglets)

Onglet 1 : Saisie de Document
  • Document ID : Identifiant unique du document
  • Section Titre : Zone de texte avec annotations éditables
  • Section Résumé : Zone de texte plus grande avec annotations détaillées
  • Tables éditables pour ajouter/modifier les entités chimiques et maladies

Onglet_1 Onglet_1

Onglet 2 : Import/Export
  • Import JSON BioC : Chargement de fichiers BioC formatés
  • Export JSON BioC : Téléchargement des données au format BioC
  • Visualisation : Affichage du format BioC converti

Onglet_2 Onglet_2

Onglet 3 : Exemple Rapide
  • Exemple Pré-chargé : Document d'exemple complet (ID: 6504332)
  • Bouton "Load Example" : Remplit automatiquement tous les champs

Onglet_3

3. Processus de Prédiction

Étape 1 : Préparation des Données

  1. Saisie du texte dans les sections Titre et Résumé
  2. Annotation des entités chimiques et maladies
  3. Conversion automatique au format BioC

Étape 2 : Extraction des Caractéristiques

  • Détection des paires co-occurrentes
  • Extraction des 27 caractéristiques
  • Transformation via le préprocesseur

Pretraitement Pretraitement

Étape 3 : Prédiction et Résultats

Résultats Tableau détaillé des prédictions avec scores de confiance

Tableau des Résultats
  • Chemical : Nom de l'entité chimique
  • Disease : Nom de l'entité maladie
  • Passage : Titre ou Résumé
  • Sentence # : Numéro de phrase dans le passage
  • In Title : Indicateur de présence dans le titre
  • Sentence Preview : Extrait de la phrase
  • Clue Words : Mots indices détectés
  • Raw Prediction : Prédiction brute (0/1)
  • Probability : Score de confiance (0-1)
  • Threshold Prediction : Prédiction finale basée sur le seuil
  • Confidence Level : Niveau de confiance (Faible/Moyen/Élevé)
Résumé Statistique

Résumé

  • Total Pairs : Nombre total de paires analysées
  • CID Relations : Nombre de relations CID détectées
  • In Title : Paires dans le titre
  • Avg Probability : Score moyen de confiance
Relations CID Identifiées

Liste détaillée des relations détectées avec :

  • Score de probabilité
  • Niveau de confiance
  • Localisation dans le document
  • Mots indices associés

4. Fonctionnalités Avancées

🎨 Mise en Forme Conditionnelle

  • Gradient de couleur pour les probabilités (rouge → vert)
  • Icônes visuelles pour les indicateurs booléens
  • Mise en évidence des relations CID détectées

📊 Visualisation des Données

  • Affichage du format BioC converti
  • Résumé des caractéristiques extraites
  • Statistiques de prétraitement

💾 Import/Export

  • Support complet du format BioC JSON
  • Téléchargement des résultats en CSV
  • Persistance des données via session state

6. Installation et Exécution

- Installation des dépendances : pip install -r requirements.txt

- Exécution de l'application : streamlit run app.py

🔍 Conclusions Principales

  1. Importance des Caractéristiques : Les chemins POS et les mots indices sont très discriminants
  2. Déséquilibre des Classes : Biais important vers les instances négatives nécessitant une gestion attentive
  3. Importance du Contexte : La présence dans le titre et les mots cliniques autour des entités améliorent la détection
  4. Diversité des Modèles : Différents algorithmes capturent différents aspects des relations CID

📝 Travaux Futurs

  • Incorporer des approches de deep learning (BERT, BioBERT)
  • Ajouter une validation croisée avec des datasets externes
  • Implémenter un vote d'ensemble entre tous les modèles
  • Développer une API de prédiction en temps réel
  • Étendre à d'autres types de relations biomédicales

👥 Contributeurs

📄 Licence

Ce projet est destiné à des fins de recherche académique. Veuillez citer si utilisé dans des publications.

📚 Références

  1. BioCreative V CDR Task Dataset
  2. Documentation scikit-learn
  3. NLTK pour le traitement du langage naturel
  4. relSCAN – Un système pour extraire les relations chimique-maladie de la littérature biomédicale

About

This project builds a machine learning pipeline to detect Chemical-Induced Disease (CID) relationships in biomedical literature. It processes BioC XML documents, extracts key linguistic and statistical features, and applies classification models to identify potential CID relations.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •