ACTUALITÉ SCIENTIFIQUE
ET INNOVATION DE L'ÉTS
Hadoop : Le Big Data au service de l’analyse bioinformatique - Par : Alain April,

Hadoop : Le Big Data au service de l’analyse bioinformatique


Alain April
Alain April est professeur au Département de génie logiciel et technologies de l’information de l'ÉTS. Ses intérêts de recherche sont le support à la recherche médicale, les bases de données pour la génomique.

Dessins de la série « Biocomicals » du Dr. Alper Uzun, licence CC, source.

Les bases de données No-SQL, surnommées BigData, peuvent être grandement utiles dans le domaine de la recherche en santé au Québec!

Saviez-vous que L’ÉTS a été la première université au Québec à offrir un cours de niveau baccalauréat sur Hadoop avec travaux pratiques sur une grappe impliquant des données réelles? Le développement de cette formation pratique découle directement des travaux de recherche en génie logiciel appliqués à la génomique de l’hôpital Sainte-Justine de Montréal.  Le précédent article d’Abraham Gomez, Hadoop : l’architecte du « big data »?, souligne les principales caractéristiques d’Hadoop notamment en regard du traitement d’information de grands volumes de type Big Data .

C’est en 2012 que la firme Biogénix a approché le Dr Guy Rouleau pour l’aider avec ses analyses génomiques. Le Dr Rouleau leur a remis un cas d’utilisation problématique qui causait une lenteur excessive de plusieurs heures du système bioinformatique S2D qui utilise une base de données MySQL. C’est le professeur Alain April de l’ÉTS qui a proposé à Benoît Deslauriers, président de Biogénix, de solutionner ce problème à l’aide de la nouvelle technologie BigData offerte en logiciel libre, la technologie HBase. Des étudiants en génie logiciel de l’ÉTS ont relevé alors le défi d’améliorer la situation.

Ce cas d’utilisation problématique vise la sélection d’un ensemble de variations génétiques en fonction de plusieurs paramètres. Il est possible de sélectionner un ou plusieurs échantillons à partir desquels la recherche va avoir lieu. Seules les variations génétiques détectées avec les échantillons sélectionnés doivent être retournées par la requête. Il est également possible de spécifier une condition sur ces échantillons afin d’obtenir les variations présentes avec tous les échantillons de la liste. Enfin, il doit être possible d’exclure des échantillons de la requête. Cette option permet d’exclure toutes variations présentes avec l’un des échantillons exclus. Ces deux paramètres permettent donc de contrôler précisément les variations obtenues en fonction des individus. Les options de recherche incluent également la plage de position de la recherche. Il est possible de spécifier le chromosome et les positions de départ et de fin.

C’est une étudiante de projet de fin d’études, Anna Klos, qui a réalisé la première itération de solution de l’ÉTS, publiée le 10 avril 2012, convertissant le schéma de données MySQL de 13 tables dont 2 tables, celle des chromosomes (hg19) et des variations (hg18), étaient les plus volumineuses à 50 000 000 d’enregistrements. Anna a travaillé à améliorer le temps réponse de la requête SQL problématique suivante : Comment obtenir tous les variants en mutation (missense variants) présents dans la famille « A » mais qui ne sont pas présents dans l’échantillon de contrôle « B » et qui sont associés à un pipeline de dépistage « C ».  Elle a réussi à créer un logiciel à l’aide de Hbase pour cette requête mais sans obtenir initialement de réduction claire des temps d’accès.

La poursuite du projet par les deux étudiants de projet de fin d’études, Jean-François Hamelin et Jean-Philippe Bond, a permis de faire des avancements significatifs (publiés le 12 août 2012). À l’aide des travaux exploratoires de Anna, ils ont étudié de près les trois requêtes problématiques du centre de recherche Guy Rouleau au CHUM et ont premièrement amélioré la vitesse de transfert de millions de données de MySQL vers Hbase qui se fait maintenant en seulement 15 minutes. Ensuite, ils ont opté pour une nouvelle stratégie de programmation MapReduce qui prend avantage de tous les nœuds de la grappe de calcul. Lors de l’inclusion de types de variants, d’échantillons, de « pipelines » de dépistage ou de variants précis, l’application crée un « objet Scan » parcourant la table de la base de données Hbase qui, dans sa clé de rangée, contient toutes les informations requises. Ce nouvel algorithme vérifie qu’un enregistrement répond à la recherche en créant un « object Filter » pour chaque condition (échantillon, « pipeline » et variant) ajoutée à la requête. Ces « objects Filter » génèrent un modèle d’expression régulière ou chacun est comparé à chaque enregistrement de la table Hbase. Si un enregistrement parvient à traverser tous les filtres avec succès, alors ce dernier est un résultat valide et est ajouté à la liste des résultats à retourner à l’utilisateur.

Voici un exemple de requête : l’utilisateur désire obtenir toutes les variations dépistées par le « pipeline » de dépistage « 24’ » qui font partie de l’intervalle des échantillons « 2001 à 3000 » mais qui ne font pas partie de l’intervalle d’échantillons « 1001 à 2000 ».

L’algorithme crée un filtre d’expression régulière qui valide le « pipeline » 24 à l’aide de la troisième clé d’accès à Hbase. Par la suite, 1000 filtres à expression régulière sont créés pour inclure les échantillons 2001 à 3000 et 1000 autres pour exclure les échantillons 1001 à 2000. Afin d’assurer une bonne performance, la table Hbase n’est pas parcourue séquentiellement, mais par intervalles.

Les expressions régulières sont générées automatiquement à partir des choix faits par l’utilisateur à l’aide d’une interface graphique. La clé de la base de données Hbase est composée et chacune des sections de la clé possède sa propre expression régulière. Par exemple, si l’utilisateur sélectionne les valeurs suivantes : type de variant : 000003, Sample id : 013127, 013141, Pipeline id : tous les pipelines, l’expression régulière générée serait la suivante :

AA img1
En ajoutant cette expression régulière comme filtre dans notre « object Filter », seulement les variations de type 000003 appartenant aux échantillons 013127 et 013141 seraient sélectionnées.

Étant donné que les échantillons exclus impliquent que toutes leurs variations soient aussi exclues de la recherche, même dans le cas où ces variations sont présentes dans d’autres échantillons, une requête est lancée pour aller chercher tous les identifiants de variations à exclure en fonction des identifiants d’échantillons sélectionnés.

Puisque plusieurs « object Filters » sont exécutés concurremment pour récupérer les données à l’aide de HBase, un « HashMap » (ensemble de clés-valeurs) est utilisé pour compiler le résultat final. Lorsqu’une valeur est retournée par un « object Filter », elle est automatiquement stockée dans le « HashMap » en utilisant l’identifiant de la variation. De cette manière, nous sommes assurés qu’il n’y aura pas de duplication de variations dans la réponse finale. Avec cette approche, sur seulement trois nœuds, les performances de la requête ont été réduites à quelques secondes avec une taille de la cache mémoire établie à 500 rangées. Auparavant, cette requête pouvait prendre quelques heures à s’exécuter sur une base de données MySQL équivalente!

AA img2

La troisième itération de ce projet, effectuée par Sébastien Servoles (publiée en avril 2013) visait à améliorer encore une fois l’approche mais cette fois-ci à l’aide d’un plus grand nombre de données publiques.

AA img3

Sébastien a donc ajusté le schéma des données de la base de données Hbase pour faire des essais avec les données publiques disponibles du projet 1000 génomes (compressées avec GZip) à l’aide de sa nouvelle procédure d’importation de grandes quantités de données.

Par la suite, il a effectué des essais de performance du temps d’exécution sur 4, 8 et 16 grappes d’ordinateurs à l’aide du service Amazon S3. Il observe que l’impact sur le nombre de « threads » est très marqué jusqu’à l’utilisation d’une dizaine de « threads ». Au-delà, il y a une légère perte de performance. Ces résultats obtenus sont cohérents par rapport à la taille du « cluster » utilisé et on peut envisager que les ressources du « cluster » sont utilisées correctement.

AA img4

Ces résultats donnent aussi un aperçu des performances attendues pour l’utilisation d’un « cluster » dans une situation réelle et peuvent être utiles lors du choix de la quantité de ressource à accorder à un système de ce type.

Les étudiants David Lauzon, Khalid Naji, Bobby Lafôret, Michael Rudeen, Rodolfo Ramos, Benjamin Gnagné et Christian St-Laurent ont travailler, avec l’aide de Cédric Julien et Anita Franco, tous de l’ÉTS, à généraliser ces travaux et compléter une preuve de concept qui a été présentée en mai 2014 pour le laboratoire de recherche du Dr Alain Moreau – Directeur de la recherche au CHU Sainte-Justine.

Je suis aussi heureux d’annoncer que l’ÉTS et le centre de recherche du CHU Ste-Justine prévoient signer une entente en 2014, qui nous permettra d’explorer le potentiel de cette approche pour développer une plateforme bioinformatique moderne utilisant la puissance des technologies BigData du logiciel libre pour solutionner les problèmes de recherche en génétique au Québec.

 

 

 

Alain April

Profil de l'auteur(e)

Alain April est professeur au Département de génie logiciel et technologies de l’information de l'ÉTS. Ses intérêts de recherche sont le support à la recherche médicale, les bases de données pour la génomique.

Programme : Génie logiciel  Génie des technologies de l'information 

Profil de l'auteur(e)


commentaires

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *