Du data brut au score toxicologique — architecture, pipeline et considérations réglementaires
Série ToxTwin — Article 1/3. Voir aussi : Rapport RPT-2026-001 · API Tests & Guide
La prédiction toxicologique constitue l’un des goulots d’étranglement les plus coûteux du développement pharmaceutique. Environ 90 % des candidats médicamenteux échouent en essais cliniques, dont ~30 % pour cause de toxicité (DiMasi et al., Tufts CSDD, 2016). Cet article présente ToxTwin, un pipeline end-to-end conçu pour scorer des candidats médicamenteux avant leur entrée en Phase 1, sur infrastructure souveraine et avec traçabilité réglementaire complète.
Un signal de toxicité détecté en Phase 2 ou 3 représente un coût irrécupérable de plusieurs centaines de millions de dollars. Les essais in vitro n’offrent qu’une couverture partielle des mécanismes de toxicité. Les modèles animaux souffrent d’une transposabilité inter-espèces limitée (~70 % de concordance pour la toxicité hépatique). Les approches QSAR classiques dépendent de descripteurs prédéfinis et généralisent mal hors domaine. Les GNN publiés (DeepTox, AttentiveFP, GROVER) se concentrent sur la performance prédictive sans documenter le pipeline industriel nécessaire à leur déploiement en contexte réglementé.
L’hypothèse ToxTwin : construire un « jumeau numérique toxicologique » intégrant des données multi-sources dans un pipeline traçable, reproductible et aligné avec les exigences réglementaires européennes (MDR, EU AI Act), pour produire un score de risque exploitable en amont de la Phase 1, accompagné d’une quantification de l’incertitude et d’un indicateur de domaine applicatif.
Archive immuable des données sources, stockée en Delta Lake 3.2 sur PySpark 3.5.3 (transactions ACID, time-travel). PubChem (100 000 composés, API PUG-REST), ChEMBL v34 (100 000 composés MW ≤ 900 Da, 500 000 activités biologiques incluant les données hERG pour la cardiotoxicité), Tox21 (7 831 composés, 78 000+ labels binaires sur 12 essais biologiques couvrant stress response et nuclear receptors).
Différenciation principale de ToxTwin : les monographies toxicologiques PubChem sont soumises à Phi-4 14B (déployé localement via Ollama) pour extraction d’entités nommées. Sur 7 345 composés : 2 453 LD50, 189 LDLo, 151 TDLo, 112 NOAEL, 3 138 annotations d’organes cibles, 876 données de toxicité chronique. Taux de succès NER : 99,99 %. Un tox_score composite (0–5) est calculé selon une grille de sévérité croissante. Le choix d’un LLM local repose sur la souveraineté des données, le coût marginal nul à l’échelle, et la reproductibilité via modèle versionné.
Pipeline produisant 144 879 composés dédupliqués : sanitization chimique (RDKit), déduplication cross-source sur InChI-Key (priorité ChEMBL > PubChem), filtrage drug-like (Lipinski +20 %), jointure tox_annotations Tox21 (77 733 labels pivotés), jointure tox_profiles enrichis (5 400 profils Phi-4).
Featurization : Morgan Fingerprints ECFP4 (2 048 bits) + 14 descripteurs RDKit physicochimiques = 2 062 dimensions par composé. Scaffold split Bemis-Murcko : 4 074 train (80 %), 452 validation, 502 test holdout.
Random Forest par endpoint (Mean ROC-AUC 0.836) établit la référence. L’encodeur ToxGNNEncoder est un Graph Isomorphism Network (GIN) à 5 couches avec jump connections, 2 132 038 paramètres entraînables, dimension cachée 512, dropout 0.3. Chaque atome = nœud (128 dimensions), chaque liaison = arête bidirectionnelle (11 dimensions).
Stratégie inspirée de GROVER : 25 % des atomes masqués, reconstruction des attributs one-hot. Équivalent moléculaire du BERT masqué. 100 epochs sur 144 877 composés (loss : 0.084 → 0.0045). Hyperparamètres optimisés par Optuna (TPE Sampler, 30 trials).
Couche partagée + 12 têtes de classification indépendantes. Stratégie freeze/unfreeze (10 epochs gelées, puis dégelées lr ×0.1). BCE pondérée avec masquage des labels manquants. Version v2 retenue (dropout 0.5, AUC 0.857).
ToxGNN-V1 dépasse la baseline RF sur 7/12 endpoints (+0.021 AUC moyen). Gains les plus significatifs : SR-p53 (+0.077), NR-ER-LBD (+0.078). Point de vigilance : NR-AR (0.659). Positionnement MoleculeNet : entre DeepTox (0.846) et AttentiveFP (0.863), écart avec GROVER (0.876) explicable par la taille du corpus de pré-entraînement (144K vs 10M+).
Calibration ECE : 0.149 (FAIL, seuil < 0.10) — cause racine : BCE pondérée décalant les logits. Incertitude épistémique MC Dropout (30 passes) : moyenne 0.0459 (PASS). Domaine applicatif Tanimoto : 38,2 % hors domaine sur scaffold split (attendu par design, flag de protection critique en production).
Stack : Windows Server 2025 + WSL2 Ubuntu 24.04, RTX 5080, PySpark/Delta Lake, MLflow, Ollama Phi-4 14B, FastAPI. Le score ToxTwin n’est pas un dispositif médical au sens du MDR, mais le pipeline est conçu comme s’il relevait du haut risque pour anticiper une reclassification. Quatre mécanismes de différenciation réglementaire : extraction NER Phi-4, incertitude épistémique dans l’API, domaine applicatif avec flag automatique, pipeline Medallion auditable.
Tests sur aspirine (NR-ER 0.350, LD50 200 mg/kg, tox_score 4/5, Tanimoto 0.594) et ibuprofène (NR-PPAR-gamma 0.383 — relation structure-activité documentée, Lehmann et al. 1997, émergeant sans supervision explicite). API REST (FastAPI) avec Supabase Auth, 10 requêtes/semaine. Roadmap : v1.1 (correction ECE, GPU, enrichissement NR-AR), v2.0 (1M+ composés, multi-head attention, profil ADMET complet).