Une grande partie du battage médiatique existant dans la biotechnologie s’est concentrée sur la promesse de révolutionner la découverte de médicaments. Après tout, la dernière décennie a été une soi-disant âge d’or Sur le terrain. De 2012 à 2021, par rapport à la décennie précédente, une augmentation de 73 % de nouveaux médicaments a été approuvée, soit 25 % de plus que la précédente. Ces médicaments comprennent les immunothérapies contre le cancer, les thérapies géniques et, bien sûr, les vaccins Covid. À première vue, l’industrie pharmaceutique se porte bien.
Mais il y a des tendances de plus en plus inquiétantes. La découverte de médicaments devient prohibitive et risquée. À ce jour, il en coûte entre 1 et 3 milliards de dollars en moyenne et 12 à 18 ans pour mettre un nouveau médicament sur le marché. Pendant ce temps, le prix moyen d’un nouveau médicament a grimpé en flèche, passant de 2 000 $ en 2007 à 180 000 $ en 2021.
C’est pourquoi beaucoup ont placé leurs espoirs dans les approches d’intelligence artificielle (IA) (telles que l’apprentissage automatique statistique) pour aider à accélérer le développement de nouveaux médicaments, de l’identification précoce des cibles aux essais. Bien que plusieurs composés aient déjà été identifiés à l’aide de divers algorithmes d’apprentissage automatique, ceux-ci en sont encore aux premiers stades de découverte ou de développement préclinique. La promesse de l’IA révolutionnant la découverte de médicaments est toujours une promesse très excitante mais non tenue.
Qu’est-ce que l’IA ?
Pour tenir cette promesse, il est essentiel de comprendre ce que nous entendons vraiment par IA. Ces dernières années, le terme est devenu un mot à la mode, dépourvu de beaucoup de substance technique. Alors, qu’est-ce qui constitue réellement l’Intelligence Artificielle ?
L’IA, en tant que domaine académique, existe déjà depuis les années 1950 et, au fil du temps, s’est diversifiée en différents types pour représenter différentes manières d’apprendre. Ces types sont décrits avec éloquence dans le livre du professeur Pedro Domingos L’algorithme maître (il les appelle « tribus ») : connexionnistes, symbolistes, évolutionnistes, bayésiens et analogistes.
Au cours de la dernière décennie, les bayésiens et les connexionnistes ont reçu une grande partie de l’attention du public, contrairement aux symbolistes. Les symbolistes créent des représentations fidèles à la réalité du monde basées sur des ensembles de règles qui font des inférences logiques. Les systèmes d’IA symbolique n’ont pas l’énorme publicité dont bénéficient les autres types d’IA, mais ils possèdent des capacités uniques et importantes qui manquent aux autres : le raisonnement automatisé et la représentation des connaissances.
Représenter les connaissances biomédicales
La question de la représentation des connaissances est, en fait, précisément l’un des plus gros problèmes de la découverte de médicaments. Les logiciels de base de données existants, tels que les bases de données relationnelles ou graphiques, rendent difficile la représentation précise et la compréhension des immenses subtilités et complexités de la biologie.
Le problème de représentation de la découverte de médicaments est bien illustré par la nécessité de créer des modèles unifiés de sources de données biomédicales disparates (par exemple, Uniprot ou Disgenet). Au niveau de la base de données, cela signifie créer des modèles de données (certains peuvent les appeler des ontologies) qui décrivent une myriade d’entités et de relations complexes, telles que celles entre les protéines, les gènes, les médicaments, les maladies, les interactions et bien d’autres.
C’est ce que TypeDB, un logiciel de base de données open source, vise à réaliser – pour permettre aux développeurs de créer des représentations fidèles à la réalité de domaines très complexes que les ordinateurs peuvent utiliser pour obtenir des informations.
Le système de type de TypeDB est basé sur des concepts de relation d’entité qui représentent les données stockées dans TypeDB. Cela le rend suffisamment expressif pour capturer avec précision les connaissances complexes du domaine biomédical (par l’inférence de type, les relations imbriquées, les hyper-relations, l’inférence de règles, et bien plus encore), ce qui permet aux scientifiques d’obtenir plus facilement des informations et d’accélérer les délais de développement.
Cela a été illustré par une grande société pharmaceutique qui a lutté pendant plus de cinq ans pour modéliser un réseau de maladies à l’aide des normes du Web sémantique, mais a réussi à y parvenir en seulement trois semaines après avoir migré vers TypeDB.
Par exemple, un modèle biomédical écrit en TypeQL (requête de TypeDB
langue) qui décrit les protéines, les gènes et les maladies se présente comme suit :
define
protein sub entity,
owns uniprot-id,
plays protein-disease-association:protein,
plays encode:encoded-protein;
gene sub entity,
owns entrez-id,
plays gene-disease-association:gene,
plays encode:encoding-gene;
disease sub entity,
owns disease-name,
plays gene-disease-association:disease,
plays protein-disease-association:disease;
encode sub relation,
relates encoded-protein,
relates encoding-gene;
protein-disease-association sub relation,
relates protein,
relates disease;
gene-disease-association sub relation,
relates gene,
relates disease;
uniprot-id sub attribute, value string;
entrez-id sub attribute, value string;
disease-name sub attribute, value string;
Pour un exemple entièrement travaillé, un graphique de connaissances biomédicales open source peut être trouvé ici sur Github. Cela charge des données provenant de diverses sources biomédicales bien connues telles que Uniprot, Disgenet, Reactome et autres.
Avec vos données stockées dans TypeDB, vous pouvez exécuter des requêtes qui posent des questions telles que :
Quels médicaments interagissent avec les gènes associés au virus SRAS ?
Pour répondre à cette question, nous pourrions utiliser la requête suivante dans TypeQL :
match
$virus isa virus, has virus-name "SARS";
$gene isa gene;
$drug isa drug;
($virus, $gene) isa gene-virus-association;
($gene, $drug) isa drug-gene-interaction;
L’exécution de cette opération obligera TypeDB à renvoyer les données correspondant aux conditions décrites dans la requête. Cela peut être visualisé dans TypeDB Studio comme suit, ce qui aidera à comprendre quels médicaments pertinents peuvent justifier une enquête plus approfondie.
Grâce au raisonnement automatisé, TypeDB peut également déduire des connaissances qui n’existent pas dans la base de données. Cela se fait en écrivant des règles, qui font partie du schéma dans TypeDB. Par exemple, une règle pourrait déduire une association entre un gène et une maladie, si la protéine codée par ce gène est associée à cette maladie. Une telle règle s’écrirait comme suit :
rule inference-example:
when {
(encoding-gene: $gene, encoded-protein: $protein) isa encode;
(protein: $protein, disease: $disease) isa protein-disease-association;
} then {
(gene: $gene, disease: $disease) isa gene-disease-association;
};
Ensuite, si nous devions insérer les données suivantes :
insert
$gene isa gene, has entrez-id "2";
$protein isa protein, has uniprot-id "P01023";
$disease isa disease, has disease-name "Parkinson Disease";
(encoding-gene: $gene, encoded-protein: $protein) isa encode;
(protein: $protein, disease: $disease) isa protein-disease-association;
TypeDB serait capable de déduire un lien entre le gène et la maladie, même si aucun n’a été inséré dans la base de données. Dans ce cas, la relation suivante gene-disease-association
serait déduit:
match
$gene isa gene, has gene-id "2";
$disease isa disease, has disease-name $dn; ;
(gene: $gene, disease: $disease) isa gene-disease-assocation;
Accélérer la découverte de cibles grâce à l’apprentissage automatique
Avec ces représentations (symboliques) des données biomédicales dans TypeDB, les connaissances contextuelles qui alimentent les algorithmes d’apprentissage automatique peuvent les rendre extrêmement puissants pour découvrir des informations qui, par exemple, peuvent permettre à un pipeline de découverte de médicaments de trouver des cibles prometteuses.
Une approche pour trouver des cibles prometteuses consiste à utiliser des algorithmes de prédiction de liens. Le moteur de règles de TypeDB permet à un tel modèle ML d’apprendre sur la base de faits déduits par le raisonnement. Cela signifie passer d’un apprentissage sur des données plates et non contextuelles à un apprentissage sur des connaissances raisonnées et contextuelles. L’un des avantages est que les prédictions peuvent être généralisées au-delà de la portée des données d’apprentissage selon les règles logiques du domaine et réduire la quantité de données d’apprentissage requises.
Un tel workflow de découverte de médicaments fonctionnerait comme suit :
- Interrogez TypeDB pour créer un sous-graphe plein de connaissances contextuelles qui exploite toute l’expressivité de TypeDB.
- Transformez le sous-graphe en une incorporation et ingérez-les dans un algorithme d’apprentissage de graphe.
- Les prédictions (par exemple, sous forme de scores de probabilité entre les associations gène-maladie) peuvent ensuite être insérées dans TypeDB et utilisées pour valider/prioriser certaines cibles.
Avec ces prédictions dans la base de données, nous pouvons poser des questions de niveau supérieur qui tirent parti de ces prédictions avec les connaissances contextuelles plus larges de la base de données. Par example:
Quelles sont les cibles génétiques les plus probables du mélanome qui codent pour les protéines exprimées dans les mélanocytes ?
Écrite en TypeQL, cette question ressemblerait à ceci :
match
$gene isa gene, has gene-id $gene-id;
$protein isa protein;
$cell isa cell, has cell-type "melanocytes";
$disease isa disease, has disease-name "melanoma";
($gene, $protein) isa encode;
($protein, $cell) isa expression;
($gene, $disease) isa gene-disease-association, has prob $p;
get $gene-id; sort desc $p;
Le résultat de cette requête serait une liste de gènes triés par un score de probabilité (comme prédit par l’apprenant du graphe):
{$gid "TOPGENE" isa gene-id;}
{$gid "BESTGENE" isa gene-id;}
{$gid "OTHERTARGET" isa gene-id;}
...
Nous pourrions alors approfondir l’étude de ces gènes, par exemple en comprenant le contexte biologique de chacun. Disons que nous voulons connaître les tissus dans lesquels le TOPGENE
Le gène code pour les protéines. On pourrait écrire la requête suivante :
match
$gene isa gene, has gene-id $gene-id; $gene-id "TOPGENE";
$protein isa protein;
$tissue isa tissue, has name $name;
$rel1 ($gene, $protein);
$rel2 ($protein, $tissue);
Le résultat, visualisé dans TypeDB Studio, pourrait montrer ce gène codant pour des protéines qui sont exprimées dans le côlon, le cœur et le foie :

Conclusion
Le monde a un besoin urgent de solutions pour créer des traitements contre des maladies dévastatrices et l’espoir est que, grâce aux innovations en IA, nous puissions construire un monde plus sain dans lequel aucune maladie ne soit traitée. Le potentiel de l’IA pour révolutionner la découverte de médicaments en est encore à ses balbutiements, mais…