Analytics

Le laboratoire en chiffres

Toutes les analyses du projet reunies sur un seul tableau de bord. Performance des modeles, familles chimiques, importance des proprietes et anomalies de la relation structure activite.

5 238
molecules
2 847
actives
2 391
inactives
7
descripteurs
2 048
bits empreinte
4
familles

Repartition des molecules

54%actives
Actives Inactives

Classification actif contre inactif

Trois modeles compares sur trois metriques. XGBoost mene, la baseline logistique sert de reference honnete.

AccuracyF1AUC
Regression Logistique
Random Forest
XGBoost

Regression du pIC50

Qualite de prediction de la puissance, mesuree par le R2 (plus haut est meilleur).

Regression LineaireR2 0.52
Random ForestR2 0.71
XGBoostR2 0.74

Importance des proprietes

Ce qui pese le plus dans la prediction d'activite, cote descripteurs physico-chimiques.

Accepteurs H24%
Poids moleculaire21%
LogP18%
Anneaux aromatiques15%
TPSA12%
Donneurs H6%
Liaisons rotatives4%

Familles chimiques decouvertes

Le clustering regroupe les molecules par ressemblance. Chaque famille a son profil et son taux d'actives, ce qui indique lesquelles explorer en priorite.

Quinazolines actives

412
PoidsLogPAromatiquesAccepteurs HTPSA
pIC50 moyen7.6
Taux d'actives74%

Petites molecules polaires

338
PoidsLogPAromatiquesAccepteurs HTPSA
pIC50 moyen5.2
Taux d'actives28%

Structures lipophiles

291
PoidsLogPAromatiquesAccepteurs HTPSA
pIC50 moyen6.1
Taux d'actives47%

Grosses molecules complexes

187
PoidsLogPAromatiquesAccepteurs HTPSA
pIC50 moyen6.8
Taux d'actives58%

Activity cliffs detectes

Des paires de molecules presque identiques mais aux puissances opposees. Ces cas revelent quel petit detail structurel fait toute la difference, et mettent nos modeles au defi.

CHEMBL1173pIC50 8.4contreCHEMBL2028pIC50 5.1
similarite91%
CHEMBL3092pIC50 7.9contreCHEMBL3110pIC50 4.8
similarite88%
CHEMBL0455pIC50 8.1contreCHEMBL0461pIC50 5.5
similarite86%
CHEMBL2771pIC50 7.4contreCHEMBL2790pIC50 4.9
similarite84%

Sous le capot

Le moteur Rust WebAssembly

Les proprietes des molecules et la similarite entre elles ne sont pas calculees en JavaScript approximatif, mais par un vrai moteur cheminformatique ecrit en Rust et compile en WebAssembly.

Pourquoi Rust et WebAssembly

Le calcul chimique lourd ne devrait pas ramer dans le navigateur. On ecrit la partie sensible en Rust, un langage rapide et sur, qu'on compile en WebAssembly. Le resultat tourne directement chez l'utilisateur, sans serveur Python, a une vitesse proche du natif.

La similarite de Tanimoto

Chaque molecule devient une longue suite de 0 et de 1, son empreinte structurelle. La similarite de Tanimoto compte les bits communs a deux molecules, divises par les bits totaux. Un score de 1 veut dire structures identiques, 0 veut dire aucun motif partage.

Pourquoi le popcount va vite

Compter les bits a 1 d'un nombre est une operation que le processeur sait faire en une seule instruction, le popcount. Rust l'utilise directement, la ou JavaScript doit passer par une table de correspondance. Sur des milliers de molecules, l'ecart se creuse.

La limite assumee

Notre empreinte est une empreinte circulaire simplifiee, calculee sur les environnements d'atomes du graphe moleculaire. Ce n'est pas l'ECFP officiel de RDKit. Le moteur est concu pour la demonstration et l'aide a la decision, pas pour un verdict reglementaire.

Benchmark JavaScript contre Rust WebAssembly

Meme calcul de similarite de Tanimoto, la meme quantite de travail, deux moteurs. La mesure est faite en direct dans votre navigateur, rien n'est code en dur. Les chiffres varient selon la machine.