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.
Repartition des molecules
Classification actif contre inactif
Trois modeles compares sur trois metriques. XGBoost mene, la baseline logistique sert de reference honnete.
Regression du pIC50
Qualite de prediction de la puissance, mesuree par le R2 (plus haut est meilleur).
Importance des proprietes
Ce qui pese le plus dans la prediction d'activite, cote descripteurs physico-chimiques.
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
412Petites molecules polaires
338Structures lipophiles
291Grosses molecules complexes
187Activity 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.
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.