À 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.
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
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.
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 ?
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 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.
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.
Voici le plan conceptuel que nous avons élaboré pour démarrer :
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
Merci à Thomas Vrancken, Thomas Janssens et Andres Vervaecke, mes collègues du ML6 sur ce projet.