Aucun élément trouvé.
10 juillet 2023

Prévision de la stabilité thermique des enzymes pendant la pause de Noël

Les contributeurs
Pieter Coussement
Data Engineer | Squad Lead
Thomas Vrancken
Ingénieur en machine learning
Thomas Janssens
Ingénieur Machine Learning Senior | Chef d'équipe
Andres Vervaecke
Ingénieur des données
S'abonner à la newsletter
Partager cet article

À l'approche de Noël, tout le monde attend avec impatience l'arbre de Noël, peut-être la neige, les cadeaux, le Père Noël et la nouvelle année. Pour nous, à ML6, il y a quelque chose de plus ! Nous avons du temps libre pour explorer de nouveaux horizons pour ML6 : de nouvelles technologies, de nouvelles applications, de nouveaux domaines d'intérêt. C'est génial, non ?

Nous (Thomas, Thomas, Andres et moi-même) nous sommes donc préparés à essayer de faire bouger les frontières de ML6 dans les sciences de la vie. Nous avons choisi de participer à une compétition Kaggle : Novozymes Enzyme Stability challenge. L'objectif de ce concours était de prédire la thermostabilité des enzymes. Mais avant d'aborder ce que nous avons fait exactement, un peu de contexte.

Pourquoi l'IA est-elle pertinente dans les sciences de la vie ?

La biologie est intrinsèquement complexe et diverse. Malgré des décennies de recherche, la nature recèle encore de nombreux secrets. Aujourd'hui, l'IA a la possibilité d'aider les experts en cartographiant les données d'entrée et de sortie des expériences sur des fonctions biologiques très complexes.

Un exemple bien connu est le repliement des protéines. Jusqu'à récemment, il était impossible de prédire la structure avec un niveau de confiance élevé, mais tout a changé avec la sortie d'AlphaFold 2 de DeepMind en 2020.

AlphaFold 2.0 (et RosettaFold, ESMFold,...) a montré qu'il pouvait prédire avec précision des modèles 3D de structures de protéines et qu'il accélérait la recherche dans presque tous les domaines de la biologie. Il a considérablement accéléré la recherche de solutions issues de la bio-ingénierie qui peuvent révolutionner la lutte contre la pollution plastique et le problème de la résistance aux antibiotiques.

Mais cela ne s'arrête pas là. La ML offre un large éventail de solutions qui peuvent accélérer les entreprises du secteur de la biologie et de la santé. L'IA/ML a un impact sur

  • La production d'une médecine personnalisée, promettant une consommation minimale de médicaments, un résultat maximal évitant l'utilisation de médicaments inutiles.
  • Comment les médicaments sont développés et fabriqués. Une meilleure prédiction de la fonctionnalité des enzymes permet une chimie plus verte, mais aussi un meilleur ciblage de certaines enzymes (par exemple, les antibiotiques).
  • Accélérer la mise sur le marché de nouveaux médicaments : par exemple, l'IA/ML est utilisée pour concevoir de meilleurs essais cliniques.
  • Comment les processus chimiques peuvent devenir plus écologiques. En concevant des enzymes capables d'effectuer des réactions chimiques dans des conditions modérées, alors qu'elles nécessitaient auparavant des conditions difficiles, on réduit l'impact sur l'environnement.
  • La prévisibilité des cellules et des organismes, qui stimule la biotechnologie.

En conclusion, l'apprentissage automatique peut apporter une grande valeur ajoutée dans différentes facettes des sciences de la vie.

Nous allons donc creuser un peu plus et montrer comment nous avons développé un modèle de prédiction de la stabilité des enzymes.

Exemple de pli protéique ; vue de dessus d'un tonneau de triosephosphateisomérase (TIM), coloré du bleu (N-terminus) au rouge (C-terminus) - (N-term/C-term). Lien

Enzymes ? Les protéines ? Stabilité ?

Par essence, une cellule vivante est la combinaison de milliers de réactions biochimiques. Certaines sont nécessaires pour brûler le sucre en eau et en CO2, d'autres réactions (re)construisent des parties de la cellule.

Presque toutes ces réactions biochimiques sont réalisées (catalysées) par des enzymes. Les enzymes sont des protéines capables de convertir une certaine molécule en une autre. Et cela peut être n'importe quoi. Couper un morceau, coller des molécules ensemble, etc.

Ces enzymes sont intrinsèquement instables.

Il n'a pas fallu longtemps pour que l'homme découvre le pouvoir des enzymes, par exemple pour la fabrication du fromage ou de la bière. Les enzymes peuvent exceller dans un environnement industriel parce qu'elles sont des produits naturels et renouvelables, et qu'elles agissent dans des conditions "douces" : dans l'eau à des températures modérées. Cependant, pour les processus industriels, il est préférable d'avoir des processus longs et stables.

Les enzymes, comme toutes les protéines, sont des molécules complexes composées de nombreux acides aminés liés entre eux, comparables à un collier de perles, les acides aminés étant les perles. Ces longues molécules s'enroulent, ce qui donne une structure en trois dimensions (un pli protéique), qui définit leur fonction.

L'ordre des acides aminés dans la séquence définit entièrement la manière dont la protéine se pliera, en raison des interactions entre les différents acides aminés séquentiels.

La longue séquence originale d'acides aminés est une information complète, car le pliage complet est défini, ainsi que sa fonction.

Il est possible d'échanger certains acides aminés sans perturber la fonction de l'enzyme. Cependant, ces échanges(mutations ponctuelles) peuvent avoir un impact sur la stabilité de la protéine.

Nous avons appris que les enzymes sont très puissantes dans un environnement industriel, mais qu'elles ont naturellement tendance à être instables. D'autre part, nous avons également appris que nous pouvons modifier légèrement les acides aminés sans perturber la fonction de l'enzyme.

La combinaison des deux est l'un des points de départ de l'ingénierie des protéines. Malheureusement, il semble très difficile de trouver des règles prévisibles pour les moteurs de la thermostabilité, et très souvent, rendre les protéines plus stables nécessite un processus d'essais et d'erreurs lourd en expériences.

Et c'est exactement là que le concours Kaggle entre en jeu. La modélisation moléculaire peut-elle nous aider ? Un modèle peut-il extraire des informations des données expérimentales et aider à prédire quelles protéines/mutations devraient être plus stables ?

Le concours Kaggle

Kaggle

Kaggle est une organisation qui souhaite faire progresser la ML. Pour atteindre cet objectif, elle organise, entre autres, des concours auxquels tout le monde peut participer.
Pour ces concours, Kaggle fournit des données d'entraînement ainsi qu'un ensemble de données de test. Les résultats peuvent être soumis, et vos solutions sont notées sur l'ensemble de données de test, ce qui vous permet d'obtenir un classement. Les apparences peuvent toutefois être trompeuses, car il existe également un ensemble de données de test caché et, à la fin de la compétition, l'équipe ayant obtenu le meilleur score pour l'ensemble de données de test caché est le véritable vainqueur de la compétition. Attention aux surchargeurs !

Pour commencer

Pour ce concours, Kaggle a fourni un ensemble de données d'entraînement composé de 28 000 mesures de thermostabilité confirmées expérimentalement pour différentes protéines (77), variantes de protéines et valeurs de pH. L'ensemble de test est limité aux mutations ponctuelles sur une seule protéine de type sauvage et se compose de 2 400 lignes. L'ensemble de données ne comprenait aucune information sur le repliement des protéines, ce qui est important car l'obtention de ces repliements à partir de la séquence est un problème non trivial qui est aujourd'hui généralement résolu par des solutions à forte intensité de calcul telles que AlphaFold et RosettaFold.
Les soumissions ont été évaluées sur la base du coefficient de corrélation de Spearman entre la vérité de terrain et la thermostabilité prédite.

C'est parti !

Nous avons participé au concours vers la fin et n'avons eu que quelques jours pour travailler sur ce projet, nous avons donc dû faire preuve d'intelligence et utiliser ce qui était disponible.

Heureusement, Kaggle est une plateforme très collaborative, et nous avons pu rattraper l'état de l'art des solutions relativement rapidement. Kaggle dispose non seulement de forums de discussion où les participants peuvent partager des informations, mais la plateforme permet également aux utilisateurs de partager leurs propres ensembles de données et de disposer de leur propre variante de bloc-notes Jupyter avec l'infrastructure nécessaire pour les faire fonctionner. Cela signifie qu'il est très facile pour les gens d'échanger des données et de s'appuyer sur les résultats du travail des autres. Heureusement pour nous, cela signifie également que nous avons pu apprendre beaucoup de choses et aller beaucoup plus loin que ce que nous aurions pu faire nous-mêmes en quelques jours en lisant les derniers fils de discussion et en examinant les carnets et les ensembles de données partagés par les participants.

Plan d'attaque conceptuel. Analyser les données d'entrée et les enrichir autant que possible. Différentes options peuvent et doivent être essayées, allant des caractéristiques basées sur la structure 3D pure, aux caractéristiques basées sur le NLP, aux caractéristiques basées sur les règles, ... et tout ce qui se trouve entre les deux. Enfin, l'utilisation d'un modèle de régression, par exemple XGBoost, sera utilisée pour cartographier les différentes caractéristiques sur les données expérimentales.

Voici le plan conceptuel que nous avons élaboré pour démarrer :

  1. analyser les séquences de protéines
  2. extraire le plus grand nombre possible de caractéristiques des séquences à l'aide de différents outils
  3. combiner les résultats des caractéristiques calculées dans un modèle de type régresseur pour prédire.

Il devrait être clair que c'est au point 2 que la magie opère. L'utilisation de modèles 3D générés à l'aide de ML, NLP et même de fonctions simples basées sur des règles serait le moteur ici.

Prétraitement et données externes

Il nous a fallu un certain temps pour comprendre à quel point les données d'entraînement et de test étaient différentes. L'ensemble de données d'entraînement couvrait des protéines très différentes, tandis que les données de test étaient centrées sur une seule protéine.

L'ensemble de données d'entraînement complet contenait plusieurs variantes dérivées de différentes protéines de type sauvage. Cet ensemble de données a été divisé en fonction de la protéine sauvage prédite. Une température de fusion delta a été utilisée pour la suite de la modélisation

Au lieu d'utiliser directement toutes les séquences de protéines de l'ensemble d'entraînement, ces données ont dû être divisées en sous-groupes pour ne couvrir que les variantes de protéines (protéines très similaires qui ne diffèrent les unes des autres que par quelques mutations ponctuelles). L'idée est de calculer la différence de stabilité entre la protéine naturelle et la protéine mutée ponctuellement, au lieu de calculer la stabilité absolue. Ce delta de stabilité serait transférable à l'ensemble de données de test. Pour ce faire, nous avons d'abord dû calculer les types sauvages (protéines originales) dans les données d'entraînement (hors de portée de ce billet).

Un autre apprentissage important est la valeur des données externes, en dehors de l'ensemble d'entraînement fourni par Kaggle. Les données de Jinyuan Sun, par exemple, ont joué un rôle crucial et ont été nécessaires pour augmenter notre score de manière significative. L'ensemble de données de Jin est une collection de données de stabilité déterminées expérimentalement pour différentes protéines.

Comme mentionné dans l'introduction, les structures 3D sont très importantes pour la stabilité des enzymes. Les structures 3D calculées par Alphafold2 des types sauvages par groupe de séquences ont également été partagées et utilisées.

Ingénierie des fonctionnalités

Caractéristiques de base

Nous avons commencé simplement, en créant un ensemble de caractéristiques de base sur les chaînes d'acides aminés, par exemple la longueur, le poids moléculaire, le nombre d'atomes d'oxygène, etc. Par exemple, la longueur, le poids moléculaire, le nombre d'atomes d'oxygène,... Ces caractéristiques n'ont apporté qu'une amélioration marginale au pouvoir prédictif du modèle final. C'est normal, car la recherche de la stabilité des protéines est un processus complexe.

Modélisation évolutive de l'échelle (ESM)

Ensuite, nous voulons capitaliser sur les grands modèles pré-entraînés pour extraire une interprétation de la structure de la protéine. Il est intéressant de noter que la structure d'une protéine est représentée par une séquence qui ressemble un peu à un langage. Cela permet d'utiliser une architecture de type transformateur pour pré-entraîner un modèle sur un grand ensemble de données de protéines pour une tâche générique et de l'affiner sur un ensemble de données spécifique pour une tâche en aval.

Architecture d'ESMFold de Meta. ESMFold est capable de générer une structure directement à partir d'une seule séquence de protéine. Lien

Dans ce cas, nous avons utilisé ESM (Evolutionary Scale Modelling) de Meta. ESMFold extrait la structure complète d'une protéine à partir de la séquence des acides aminés. Cela contraste avec Alpha Fold 2, qui part d'un alignement de séquences multiples. Les deux ont leurs mérites.

ESM et ESMFold peuvent être élégamment récupérés à partir de la bibliothèque de transformateurs HuggingFace. Le dépôt original du modèle de transformateur utilisé se trouve ici.

Lorsque nous utilisons ESM pour ce cas d'utilisation, nous ne sommes pas directement intéressés par le résultat final du modèle ESM (les structures réelles des protéines). Nous nous intéressons aux caractéristiques de la structure qui peuvent être utilisées pour prédire la stabilité thermique. Pour ce faire, nous avons extrait l'intégration de la dernière couche d'activation du modèle. En outre, nous avons également extrait certaines caractéristiques représentant la probabilité de mutation et l'entropie de mutation à partir de la tâche de pré-entraînement du MLM. L'extraction de l'encastrement nous a donné beaucoup de caractéristiques à travailler (plus de 1000), mais comme nous avions un ensemble d'entraînement assez petit, nous avons décidé d'utiliser l'ACP pour réduire le nombre de caractéristiques.

Caractéristiques basées sur des règles

Nous avons enfin ajouté quelques caractéristiques chimiques dérivées de la séquence brute de la protéine en utilisant le module d'analyse des protéines de BioPython. Ces caractéristiques sont l'aromaticité, l'indice d'instabilité, le point isoélectrique, la fraction de structure secondaire, le coefficient d'extinction molaire, GRAVY (grande moyenne de l'hydropathie) et la charge de la protéine à pH 7 et 8. La plupart de ces éléments sont un peu trop complexes pour être abordés ici, mais le lien BioPython ci-dessus contient les références de la littérature d'où ils proviennent. L'essentiel pour nous est que ces caractéristiques sont relativement peu coûteuses et simples à calculer (avec l'aide de BioPython), mais qu'elles fournissent des informations qui peuvent être pertinentes pour la stabilité selon la littérature.

Un modèle pour tous

Dans cette dernière section, nous tirons parti de toutes nos caractéristiques techniques dans un seul modèle. En raison du grand nombre de caractéristiques et des contraintes de temps liées à la compétition, nous avons opté pour une nouvelle réduction du groupe de caractéristiques. Cette fois-ci, nous avons classé les caractéristiques en fonction de leur importance dans un modèle XGBoost et en appliquant un seuil arbitraire. Enfin, avec nos caractéristiques les plus puissantes, nous avons formé et affiné un modèle XGBoost avec une validation croisée 10 fois.

Résultats

Notre meilleure soumission nous a permis de nous installer confortablement dans la première moitié du classement avec un score public de 0,499, ce qui nous place au 1042e rang sur 2482 équipes. Le leader absolu est Chris Deotte, grand maître de Kaggle, avec 0.86514. Cependant, en regardant le score privé, nous avons obtenu 0.47248, à la position 1027, tandis que le leader du tableau, Eggplanck a terminé avec 0.54541. Nous sommes fiers de ce résultat. Pour le temps que nous avons investi dans ce projet (cinq jours), nous avons beaucoup appris sur la biologie et l'ingénierie des protéines, tout en nous amusant. Même si nous avons beaucoup appris, nous n'avons pas encore effleuré la surface de ce qui est possible avec la ML dans un contexte biologique. Nous avons donc encore beaucoup d'opportunités devant nous.

Le résultat du concours montre également à quel point les prévisions en matière de biologie peuvent être difficiles (un coefficient de corrélation de 0,54 entre la thermostabilité prévue et la thermostabilité réelle est décent et probablement utile dans l'industrie, mais le problème est loin d'être complètement résolu).

De

Apprentissages / conclusions

Ce projet de Noël était vraiment génial ! Nous nous sommes beaucoup amusés, nous avons appris de nouvelles choses.

L'intérêt d'un concours Kaggle réside dans la compétition proprement dite, mais aussi dans le soutien de la communauté sur les forums de discussion. Nous avons beaucoup appris.

Du point de vue de la modélisation, nous savions déjà, en travaillant à ML6, que le nettoyage et le prétraitement des données sont essentiels pour que l'apprentissage automatique apporte de la valeur. La manière dont les données ont dû être prétraitées, en raison de la différence entre l'ensemble d'entraînement et l'ensemble de test, a constitué une première étape cruciale.

Enfin, d'un point de vue biologique, les ingénieurs qui n'ont pas suivi de formation en biologie ou en biotechnologie ont appris davantage sur les acides aminés et les protéines, et sur la manière dont la ML peut apporter une valeur ajoutée dans ce domaine. Cela nous ouvre, ainsi qu'à ML6, de nouvelles perspectives dans ce domaine.

Salutations

Merci à Thomas Vrancken, Thomas Janssens et Andres Vervaecke, mes collègues du ML6 sur ce projet.

Postes connexes

Voir tout le contenu
Aucun résultat n'a été trouvé.
Il n'y a pas de résultats correspondant à ces critères. Essayez de modifier votre recherche.
Grand modèle linguistique
Modèles de fondation
Entreprise
Personnes
Données Structurées
Chat GPT
Durabilité
Voix et son
Développement frontal
Protection des données et sécurité
IA responsable/éthique
Infrastructure
Hardware et capteurs
MLOps
IA générative
Natural Language Processing
Vision par ordinateur