• Aucun résultat trouvé

Nous avons confirmé l’intérêt des jeux de variants identifiés comme exemples de va- riants non-codants régulateurs : ces variants présentent effectivement des propriétés d’an- notations distinctes de variants contrôles négatifs.

J’ai défini différents schémas d’échantillonnage de ces variants contrôles négatifs, pour évaluer l’influence de ces sélections sur la capacité des différentes annotations à séparer les contrôles positifs des négatifs, pour des sélections de plus en plus strictes. Ces sélec- tions permettent d’explorer différentes questions biologiques : notamment, prendre des variants contrôles négatifs à une faible distance des variants contrôles positifs permet po- tentiellement d’entraîner un modèle dédié à l’identification des positions fonctionnelles au sein d’une région régulatrice par exemple ; en revanche les sélections GENCODE-match et Cytoband-match, plus relâchées, permettent d’explorer des variants à l’échelle du génome. Les annotations prises individuellement présentent des capacités de discriminations variables, assez faibles, et cela justifie de chercher à les intégrer au sein d’un modèle d’apprentissage machine, qui pourra les combiner pour atteindre un pouvoir discriminant plus élevé. Certaines annotations présentent des pouvoirs discriminants très faibles (proche de classificateurs aléatoires), et sont associés à des tailles d’effets très faibles (voir la figure 7.3). Par exemple les annotations relatives aux dinucléotides CG, ou encore certains des états chromatiniens (par exemple l’état enhancer) présentent des différences faibles entre contrôles positifs et négatifs, et sont associés à des pouvoirs discriminants faibles. Mais la capacité des modèles d’apprentissage utilisés dans ce projet (les forêts aléatoires) à combiner les annotations de nombreuses manières permettra potentiellement d’exploiter

plus efficacement ces annotations.

Nous verrons donc dans les chapitres suivants les étapes d’entraînement de ces modèles de prédiction, avec l’influence de ces différents schémas d’échantillonnage des contrôles négatifs, ainsi que les différences entre les modèles basés sur les variants HGMD-DM et ceux basés sur les variants eQTLs-OMIM.

Chapitre 8

Conception des modèles de

prédiction

Durant les étapes initiales de mon projet de thèse, j’avais tenté de créer empiriquement un score unique par position génomique, combinant les différentes annotations présentées dans le chapitre précédent. Ce score correspondait à une simple somme de valeurs dérivées depuis les quatre classes fonctionnelles d’annotations (annotations de séquence, conser- vation en séquence, annotations biochimiques, et prédictions d’associations régulatrices). Si cette méthode conduisait effectivement à donner des scores plus élevés pour des va- riants fonctionnels en comparaison avec des variants contrôles, il était difficile d’évaluer de manière correcte les contributions de chaque annotation. Par ailleurs, une évaluation plus en détails de la littérature m’avait conduit à identifier la base de données ”Regu- lomeDB” (Boyle et al., 2012), qui proposait une séparation similaire des variations en plusieurs catégories, chacune associée avec une combinaison spécifique d’annotations de régulation. J’ai donc souhaité mettre en place une approche statistique plus formelle, ba- sée une méthode d’apprentissage machine de forêts aléatoires, et que je présente dans ce chapitre.

8.1 Définition du pipeline et présentation des modèles ex-

plorés

L’outil FINSURF s’articule autour de modules dédiés aux différentes étapes de la création des modèles de classification, entraînés à séparer des variants fonctionnels, de

variants non-fonctionnels.

Créa

on des modèles

model crea on

FINSURF Forest

modelCrea onLib

annota✂ons

numériques des variants

sélec✂on

valida✂ons croisées

Résultats des

FINSURF

Model nal

forestContribu ons

model analysis

Figure 8.1 – Schéma des modules pour la création des modèles FINSURF. La première étape est dédiée à la création des différents modèles, ainsi que la génération des résultats de la procédure de validation croisée des modèles. Ces résultats de ces validations sont compilés et évalués dans une seconde étape, grâce à un notebook Jupyter dédié à l’analyse des modèles.

Les fichiers d’annotations des variants sélectionnés (présentés au chapitre précédent) sont donc utilisés ici pour l’entraînement des modèles de prédiction. Comme montré sur la figure 8.1, deux modules Python interviennent à cette étape.

FINSURF Forest. J’ai modifié l’implémentation des forêts aléatoires proposée dans la

bibliothèque Scikit-learn, afin d’obtenir une version de l’algorithme capable de gérer les différences de proportions des classes. En effet, comme présenté au chapitre d’introduction aux outils d’intégration de données, les noeuds dans les arbres d’une forêt aléatoire sont définis par optimisation de la séparation des différentes classes présentes. Or si une classe est sur-représentée par rapport à une autre, le taux d’erreurs sera biaisé par ce déséquilibre, et l’algorithme tendra à ignorer la classe minoritaire (cette dernière ne contribuant que faiblement au calcul du taux d’erreurs de classification). L’implémentation par défaut n’est pas capable de gérer ces différences.

Différentes méthodes existent pour résoudre ce problème au niveau du jeu de données, soit par réduction de la classe majoritaire, soit par génération de nouvelles entités pour la classe minoritaire (Chawla et al., 2002, Maldonado et al., 2019). Il est cependant possible d’inclure une étape de ré-équilibrage des classes au sein de l’algorithme des forêts aléatoires : plutôt que d’équilibrer avant d’entraîner le modèle, l’équilibrage est fait pen- dant sa génération. A chacun des arbres, l’étape de ”Bootstrap Aggregation” est appliquée de manière à ce que le nombre d’entités prises au hasard dans la classe majoritaire soit équivalent au nombre d’entités de la classe minoritaire. La modification que j’ai appor- tée au code source de l’algorithme des forêts aléatoires n’affecte qu’une seule fonction de la bibliothèque Scikit-Learn, permettant ainsi un impact minime sur l’utilisation de cet algorithme.

modelCreationLib. Durant la création des modèles de prédiction, j’ai souhaité explo-

rer et corriger les biais qui peuvent être introduits par inadvertance durant les différentes étapes de l’entraînement d’un modèle de prédiction, et qui conduisent à fausser un mo- dèle. Ce deuxième module contient donc les différentes fonctions et méthodes utilisées pour la génération des modèles de prédiction, pour leur validation interne au moment des entraînements, et pour l’évaluation des biais, que je présente ci-dessous.

Une première source de biais, qui n’est pas spécifique à l’analyse de séquences gé- nomiques, provient de l’inférence des valeurs manquantes. Il est tentant de pré-traiter un ensemble d’annotations en amont de l’entraînement, en remplissant les valeurs manquantes à partir de l’entièreté du jeu de données (par exemple, en utilisant la valeur moyenne d’une annotation sur le jeu total, ou encore en utilisant la moyenne par classe). Cela n’est pas une approche correcte : en effet, au moment de l’entraînement du modèle, on cherche à évaluer ce dernier par séparation du jeu d’entraînement en sous-jeux (voir le chapitre des

méthodes). Or, si l’imputation est effectuée sur l’entièreté du jeu de données, cela signifie que les valeurs imputées pour les entités du jeu de validation le sont en partie grâce aux valeurs des entités du jeu d’entraînement : les deux jeux ne sont donc plus indépendants, faussant cette étape de validation (ce problème est appelé ”data leakage”, ou ”fuite d’in- formation”). Le module ”modelCreationLib” et l’utilisation du notebook Jupyter ”model creation” permettent de gérer correctement cette situation par l’établissement d’un pipe- line combinant une étape d’inférence (basée sur la bibliothèque Python ”skearn_pandas” et une étape d’entraînement du modèle de prédiction ; ce pipeline, par son implémenta- tion, permet que l’inférence des valeurs manquantes soit faite indépendemment du jeu d’entraînement pour le jeu de validation, prévenant ainsi une fuite d’information depuis le premier.

Une seconde source de biais provient de la façon dont est effectuée la séparation des entités du jeu d’entraînement de celles du jeu de validation. Ce biais est spécifique à l’analyse de séquences génomiques (et des problèmes faisant intervenir un lien séquentiel entre entités) dans le sens où les entités manipulées (les variants) ne sont pas indépendantes les unes des autres : les variants sont définis par des positions génomiques, et leur plus ou moins grande proximité est corrélée avec un partage potentiel d’annotations. Cela signifie que lors de l’assignation aléatoire des entités aux jeux d’entraînement et de validation, il est possible que deux entités proches soient séparés chacune dans un de ces groupes ; dans ce cas le modèle aura potentiellement plus de facilités à assigner l’entité du jeu de validation à sa classe correcte, faussant l’évaluation. Certaines des méthodes décrites au chapitre d’introduction proposent des évaluations prenant en compte ce lien : par exemple FATHMM-MKL et FIRE proposent une séparation ”entraînement/validation” basée sur les chromosomes ; le score ReMM utilisé dans Genomiser propose une séparation sur les bandes cytogénétiques. J’ai choisi une séparation similaire à cette dernière, en implémentant une fonction d’évaluation des modèles de prédiction qui isole une partie des bandes cytogénétiques pour validation, tandis que les variants présents dans les autres bandes cytogénétiques sont utilisés pour l’entraînement.

Les résultats de ces explorations sont présentés à la fin de ce chapitre, pour des modèles de classification entraînés sur les différents jeux de variants fonctionnels et non-fonctionnels définis au chapitre précédent. Avant cela, je présente dans la section suivante le choix des hyper-paramètres utilisés pour ces modèles.