• Aucun résultat trouvé

Chapitre II : Développement d’outils pour la détection de réarrangements chromosomiques :

II.1 Développement et test d’un pipeline bioinformatique pour la détection de

II.1.1 Le pipeline

II.1 Développement et test d’un pipeline bioinformatique pour la détection de réarrangements chromosomiques

II.1.1 Le pipeline

Nous avons mis en place une stratégie de détection des variations structurales adaptée aux variations de grande taille et entre des génomes divergents. Cette stratégie est basée sur l’analyse de banques (ensemble de lectures pairées issues du séquençage des extrémités d’un grand nombre de séquences ADN) de grande taille analysées au moyen d’un pipeline informatique de 10 programmes séquentiels que j’ai écrits en langage de programmation Python. Neuf de ces programmes ont également été utilisés pour l’amélioration de la séquence de référence décrite dans la publication 1 de cette thèse (cf chapitre I). Ces programmes sont disponibles en ligne de commande et ont également été adaptés à la plateforme GALAXY, un des systèmes graphiques principaux pour exécuter des workflows (=flux de travaux) (Schatz et al., 2012). Ce pipeline peut être décrit succinctement comme suit (Figure 18):

(i) Le premier programme (1_create_conf) collecte des informations sur la séquence de référence utilisée et crée un fichier de configuration qui permet de ne renseigner les différentes options qu’une seule fois au cours de l’analyse. Cependant, cette étape n’est pas

150

Figure 19 : Exemple de représentation graphique générée en sortie du pipeline de détection des variations structurales. Du cercle le plus central vers le plus extérieur : (a)

localisation des scaffolds dans le génome de référence. Les scaffolds sont identifés par une alternace de blocs de couleur jaune et noire. Le second cercle (b) représente le génome de référence en bleu et les régions noires indiquent les séquences inconnues (les régions contenant des N). Le troisième cercle (c) représente la proportion en lectures discordantes s’alignant sur une fenêtre de 1 kb. Cette proportion est codée en utilisant le code couleur suivant : noire quand il n’y a pas de lecture s’alignant dans la fenêtre, vert, jaune, et orange pour les fenêtres qui contiennent moins de 25%, 50% et 75% respectivement. Les fenêtres qui contiennent plus de 75% de lectures discordantes sont représentées par un point rouge. Le dernier cercle (d) représente la couverture moyenne des lectures pairées calculée sur une fenêtre de 1 kb. La couverture moyenne est codée en utilisant le code couleur suivant : quand la couverture est supérieure à quatre fois la couverture attendue, une barre rouge est dessinée. Pour toute autre valeur un point coloré est dessiné. Les fenêtres présentant une couverture supérieure à 5/4, 4/3, 3/2 et 2 fois la couverture attendue sont représentées par un point vert clair, jaune, orange et rouge respectivement. Les fenêtres présentant une couverture inférieure à 3/4, 2/3 et 1/2 fois la couverture médiane attendue sont représentées avec des points verts foncés, bleus et bleus foncés respectivement. Les fenêtres présentant une couverture comprise entre 3/4 et 5/4 sont représentées par des points verts. (e) Les régions chromosomiques non contiguës liées par des lectures pairées sont représentées par des liens colorés en fonction de l’orientation des lectures pairées s’alignant dans ces régions et de l’orientation attendue des lectures. En partant du postulat que l’orientation attendue est reverse-forward (rf), si les lectures ont une orientation reverse-forward (rf) mais que la distance entre les deux lectures sœurs est supérieure à la distance attendue, le lien dessiné sera rouge. Si cette distance est inférieure à celle attendue, le lien dessiné sera noir. Si les lectures ont une configuration d’alignement forward-reverse (fr) le lien dessiné sera bleu. Si les lectures ont une configuration d’alignement reverse-reverse (rr) ou forward-forward (ff) le lien dessiné sera respectivement violet ou vert.

chr1 chr2 d c b a e

151 nécessaire et les neuf programmes suivants peuvent être utilisés sans ce fichier de configuration.

(ii) Le second programme (2_map) aligne les lectures pairées sur la séquence de référence en utilisant au choix les logiciels Bowtie (Langmead et al., 2009), Bowtie2 (Langmead and Salzberg, 2012) ou BWA (Li and Durbin, 2010).

(iii) Le troisième programme (3_filter_single_pair) filtre les lectures pairées sur la base des informations contenues dans le fichier ‘sam’ généré par le deuxième programme. Le filtre peut être appliqué sur deux paramètres : la ‘mapping quality’ (MAPQ) et/ou des variables AS/XS. La MAPQ est une statistique calculée par le logiciel d’alignement qui est égale à -10log10(probabilité d’alignement à la mauvaise position). Les variables AS et XS sont calculées quand les logiciels Bowtie et Bowtie2 sont utilisés et correspondent pour une lecture au score d’alignement du meilleur alignement et au second meilleur alignement respectivement.

(iv) Le quatrième programme (4_filter_sam) est également une étape de filtre qui élimine les lectures dupliquées (identiques) et les paires de lectures qui n’ont pas été alignées.

(v) Le cinquième programme (5_cal_stat) calcule différentes statistiques par rapport à la taille de “l’insert” de la banque séquencée et la couverture de la séquence de référence.

(vi) Le sixième programme (6_parse_discorde) trie les lectures pairées sur la base de leur configuration d’alignement (orientation et taille “d’insert”). En effet, selon le mode de construction de la banque séquencée, les lectures pairées ont une orientation attendue. Si cette orientation attendue est reverse pour la première lecture et forward pour la seconde lecture (noté rf), les paires de lecture s’alignant différement, c’est à dire forward-reverse (fr), reverse-reverse (rr), forward-forward (ff) sont identifiées et triées dans différents fichiers. Les lectures présentant la bonne orientation mais ayant une distance les séparant supérieure (del) ou inférieure (ins) à un intervalle (attendu par rapport à la taille des segments séquencés) sont également triées dans différents fichiers.

(vii) Le septième programme (7_select_on_cov) identifie des paires de zones discordantes (zones non contiguës du génome liées par des lectures pairées) en se basant sur les lectures pairées triées par le sixième programme. Les principes et le fonctionnement de ce programme sont détaillés dans le point suivant (II.1.2 Les programmes 7_select_on_cov et

8_ident_SV).

(viii) Le huitième programme (8_ident_SV) recherche parmi les paires de zones discordantes identifiées par le septième programme des signatures correspondant à des variations

152

Figure 20 : Schématisation de l’identification des zones de discordance basée sur l’analyse des couvertures des lectures discordantes correspondant à la seconde étape du programme 7_select_on_cov. mini maxi Zone 3 Zone 2 Zone 1 couverture moins de Y bases contigus non couvert

plus de Y bases contigus

non couvert inférieure à miniCouverture

Couverture supérieure à maxi zone inférieure à X sites couverts Génome de référence

153 structurales. Cette étape de recherche est développée plus en détail dans le point suivant (II.1.2 Focus sur 7_select_on_cov et 8_ident_SV).

(ix) Le neuvième programme (conf4circos) génère des fichiers nécessaires à la visualisation graphique des paires de zones discordantes identifiées par le septième programme.

(x) Le dixième programme (draw_circos) utilise les fichiers générés par le neuvième programme pour créer des représentations graphiques des paires de zones discordantes identifiées. Les informations contenues dans ces représentations graphiques sont décrites en

Figure 19.

Les programmes 1 à 8 peuvent être utilisés séquentiellement mais ont également été englobés dans un programme (Scaffremodler_wrapper) qui permet de lancer la suite de traitement en une seule fois. Pour gagner du temps de calcul, une partie de ces programmes (Scaffremodler_wrapper, 2_map et 8_ident_SV) est parallélisable.