28
MISE EN PLACE D’UN PIPELINE DE TRAITEMENT DE SEQUENCES ISSUES DE BANQUES ENRICHIES EN SEQUENCES MICROSATELLITES ASSOCIE A UNE BASE DE DONNEES Alexis DEREEPER Université Montpellier II CIRAD – Programme Biotrop Encadrement : Jean-François Rami, Claire Billot, Manuel Ruiz DESS Bioinformatique (2003- 2004)

MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Embed Size (px)

DESCRIPTION

DESS Bioinformatique (2003-2004). MISE EN PLACE D’UN PIPELINE DE TRAITEMENT DE SEQUENCES ISSUES DE BANQUES ENRICHIES EN SEQUENCES MICROSATELLITES ASSOCIE A UNE BASE DE DONNEES. Alexis DEREEPER. Université Montpellier II CIRAD – Programme Biotrop - PowerPoint PPT Presentation

Citation preview

Page 1: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

MISE EN PLACE D’UN PIPELINE DE TRAITEMENT DE SEQUENCES ISSUES DE BANQUES ENRICHIES

EN SEQUENCES MICROSATELLITES ASSOCIE A UNE BASE DE DONNEES

Alexis DEREEPER

Université Montpellier IICIRAD – Programme Biotrop

Encadrement : Jean-François Rami, Claire Billot, Manuel Ruiz

DESS Bioinformatique (2003-2004)

Page 2: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

PLAN

I - Introduction

II – Contexte biologique

III – Mise en place du pipeline

IV – Base de données

V – Interface web

VI – Conclusions et perspectives

Page 3: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

I - Introduction

CIRAD : Organisme scientifique français spécialisé en recherche agronomique appliquée aux régions chaudes.

Programme BIOTROP : Utilisation de la biologie moléculaire pour étudier la diversité génétique des plantes (marqueurs moléculaires, cartographie)

réalisation de banques enrichies en séquences microsatellites

séquençage

Obtention de marqueurs microsatellites exploitables

Analyse des séquences

Besoin d’un pipeline de traitement automatique

Page 4: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

II – Contexte biologique

GTGTGTGTGTGTGTGTCACACACACACACACA

Plante A Plante B

GTGTGTGTGTGTGTGTGTGTGTGTCACACACACACACACACACACACA

GTGTGTGTGTGTGTGTCACACACACACACACA

GTGTGTGTGTGTGTGTGTGTGTGTCACACACACACACACACACACACA

Primer 1

Primer1

Primer 2 amplification PCR

AA BB

(GT)8 (GT)12

2 allèles

Microsatellite : courte séquence de motifs d’ADN répétés en tandem Unité de répétition variant de 1 à 6 pb : (CA)n, (CTT)n…

polymorphisme multiallélique détecté par PCR puis électrophorèse du locus (microsat + régions flanquantes)

Page 5: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

GTGTGTGTTGTGTGTG

RsaI RsaI RsaI

GTGTGTGTTGTGTGTG

Digestion enzymatique par RsaI

GTGTGTGTTGTGTGTG

Ligation d’adaptateurs et PCR

TGTGTGTG

TGTGTGTG

Dénaturation et hybridation avec un oligonucléotide biotinylé

GTGTGTGT

RE

ALI

SA

TIO

N D

E B

AN

QU

ES

Capture du microsatellite avec un complexe avidine/bille magnétique

TGTGTGTG

GTGTGTGT

aimant

Lavage, élution puis amplification par PCR

GTGTGTGT

clonage

GTGTGTGTTGTGTGTG

TGTGTGTG GTGTGTGTTGTGTGTG

GTGTGTGTTGTGTGTG

Page 6: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Chromatogrammes de séquence

CHAÎNE DE TRAITEMENT

ANALYSE DES SEQUENCES

SEQUENCAGE

CULTURE + SELECTION

Obtention d’une banque enrichie en séquences microsatellitesGène de la β-

galactosidase

Gène de résistance à un antibiotique

GTGTGTGTTGTGTGTG

amorce forward

amorce reverse

Page 7: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Chaîne de traitement : les différentes étapes

III - Mise en place du pipeline

Chromatogrammes de séquence

Séquences d’ADN brute

Base-calling

Séquences d’ADN nettoyée

Élimination du vecteur et des adaptateurs

Fragments de digestion ayant un microsatellite

Digestion enzymatique in silico

+ recherche de microsatellites

Séquences consensus

Clustering, contigage

Couples d’amorces de PCR

Définition d’amorces d’amplification

Page 8: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Objectifs

Mettre en place un pipeline = chaîne de traitement reliant plusieurs logiciels afin d’effectuer une tâche

Outil convivial et paramétrable :

Possibilité d’une double digestion

Possibilité pour l’utilisateur de choisir les étapes à effectuer

Interfaçage du pipeline et de la base de données

Sauvegarde automatique des résultats en base de données à chaque étape du pipeline traçabilité des séquences

Page 9: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Modélisation

Chromatogrammes de séquence

Phred.pm

Séquences d’ADN brute

Un module Perl par étape, par logiciel utilisé

Page 10: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Base-calling : module Phred.pm

>DW0AI001ZA05FM1.SCFTATCATATGGGACTGGCCGAGTGCATCTCCGCGC

Fichier séquence .seq

Fichier qualité .qual

>DW0AI001ZA02RM1.SCF6 6 9 6 10 12 16 11 19 9 9 9 19 19 22 22 29 29 35 34 34 34 37 19

Page 11: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Modélisation

Phred.pm

Chromatogrammes de séquence

Séquences d’ADN brute

Séquences d’ADN nettoyée

Lucy.pm

Un module Perl par étape, par logiciel utilisé

Page 12: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Nettoyage des séquences : module Lucy.pm

Détection de la position du vecteur

Détection des régions de mauvaise qualité

>DW0AI001ZA05FM1.SCF 0 0 0 113 442TATCATATGGGACTGGCCGAGTGCATCTCCGCGCAGGCCG

Lucy :

Méthode retrait_vecteur():

Retrait du vecteur en fonction de la sortie de Lucy

Page 13: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Modélisation

Phred.pm

Digestion.pm

+ Select_ssr.pm

Fragments de digestion ayant un microsatellite

Chromatogrammes de séquence

Séquences d’ADN brute

Séquences d’ADN nettoyée

Lucy.pm

Un module Perl par étape, par logiciel utilisé

Page 14: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Digestion enzymatique : module Digestion.pm

Utilisation du module Bioperl Bio::Tools::RestrictionEnzyme

Utilisation de la fonction cut_seq()

@fragment = $re1->cut_seq($seq);

Sélection des fragments contenant un microsatellite: module Select_ssr.pm

Utilisation d’un script de recherche de microsatellites

>DW0AI001ZA05FM1.0 0 2 ac 8 51 64 330GCACATATGTGAAGTCCATTCAGTGGCCACTGGAGCAAGGTAACCAACGACACACACACACACACAGGT

Page 15: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Modélisation

Digestion.pm

+ Select_ssr.pm

Fragments de digestion ayant un microsatellite

Phred.pm

Séquences consensus

Stackpack.pm, Cap3.pm

Chromatogrammes de séquence

Séquences d’ADN brute

Séquences d’ADN nettoyée

Lucy.pm

Un module Perl par étape, par logiciel utilisé

Page 16: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Clustering : module Stackpack.pm

Clustering : premier regroupement des séquences selon leur similarité relative

Stackpack : pipeline de contigage

clustering contigage analyse

d2_cluster phrap craw

Contigage : module Stackpack.pm ou Cap3.pm

Alignement des séquences regroupées au sein d’un cluster

Séquences consensus

consensusreverse

forward

Page 17: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Modélisation

Digestion.pm

+ Select_ssr.pm

Fragments de digestion ayant un microsatellite

Séquences consensus

Phred.pm

Stackpack.pm, Cap3.pm

Couples d’amorces de PCR

Primer3.pm

Chromatogrammes de séquence

Séquences d’ADN brute

Séquences d’ADN nettoyée

Lucy.pm

DataBase.pm

Base de données

Requêtes

Un module Perl par étape, par logiciel utilisé

Page 18: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Définition d’amorces : module Primer3.pm

Utilisation du logiciel ePrimer3 de EMBOSS

# Start Len Tm GC% Sequence 1 PRODUCT SIZE: 116 FORWARD PRIMER 26 20 54.65 55.00 GTACCCTGTGTCTCTCCTTG REVERSE PRIMER 122 20 55.24 50.00 TGGTATGAAGGGTGTAGCTC

Cible d’amplification : positions du microsatellite sur le consensus

Page 19: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

IV – Base de données

Existence d’une base de données renfermant des informations communes: séquence brute, séquence nettoyée, contigs…

Modification par ajout de nouvelles tables spécifiques

Page 20: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Projet+ nom_projet+ date_creation+ description

Microsat

+ Id_microsat+ ssr_num+ ssr_type+ ssr+ size+ start+ end

Seq_init

+ nom_seq+ source_fichier_chromato+ sequence_brute+ sequence_qualite+ sequence_nettoyee+ qual_nettoyee+ nom_espece

1

1..*

Cluster_element

+ Id_element+ nom_element+ sequence_consensus+ num_cluster+ nom_contig+ longueur+ align_phrap+ res_align+ align_craw+ longest

1..* 0..1

Possède

Possède

0..*

0..*

0..*

0..*

Est_amplifié_par1..*

Primer

+ Id_primer+ primer_compt+ forw_nom+ forw_seq+ forw_temp+ forw_size+ rev_nom+ rev_seq+ rev_temp+ rev_size+ prod_size+ prod_start+ prod_end+ valide+ forw_infosblast+ rev_infosblast

0..*

1A_pour_origine

Seq_dig

+ nom_seq_dig+ sequence_dig+ qual_dig+ enzyme+ pres_micro

1..*

FK_Reference_1

FK_Reference_2

FK_Reference_3

FK_Reference_4 FK_Reference_5

FK_Reference_6

FK_Reference_7

FK_Reference_8

FK_Reference_9

FK_Reference_10 FK_Reference_11

FK_Reference_12

FK_Reference_13FK_Reference_14

FK_Reference_15

FK_Reference_16

FK_Reference_17

FK_Reference_18

FK_Reference_19

FK_Reference_20

FK_Reference_21

FK_Reference_22

FK_Reference_23

FK_Reference_24

FK_Reference_25

FK_Reference_26

FK_Reference_27

Utilisateur

login_utilisateurmot_de_passedate_fin

varchar (30)varchar (30)date

<pk>

Projet

nom_projetdate_creationdescription

varchar (50)datelongtext

<pk>

Intervient

statut_utilisateurlogin_utilisateurnom_projet

varchar (30)varchar (30)varchar (50)

<pk><pk,ak1,fk1><pk,ak2,fk2>

Est

nom_Estsource_fichier_chromatosequence_brutesequence_qualitenumero_plaqueposition_puitpresence_oligonom_especenom_banquecode_primernum_versionnom_projet

Varchar (30)Varchar(250)LongtextLongtextvarchar (10)varchar(5)varchar (5)varchar (30)varchar (30)varchar(10)tinyintvarchar(30)

<pk>

<pk,ak,fk>

Est_nonValide

nom_Estnom_projetpetite_tailleinsert_multiplefaible_qualitepasInsert

Varchar (30)varchar (50)tinyinttinyinttinyinttinyint

<pk,ak,fk><pk,ak,fk>

Cluster_element

Id_elementnom_elementsequence_consensusnom_clusternom_contiglongueuralign_phrapres_alignalign_crawlongest

varchar(100)Varchar (100)longtextintvarchar (100)intlongtextlongtextlongtextvarchar(100)

<pk>

Est_Valide : 1

nom_Estnom_projetinsert_estlongueur_insertpresence_polyApresence_polyTtype_clusterId_element

Varchar (30)varchar (50)Longtextinttinyinttinyintvarchar (20)Varchar (100)

<pk,ak1,fk1><pk,ak1,fk1>

<ak2,fk2>

Fonction

fonctionnom_projet

varchar (200)varchar (50)

<pk><pk,ak,fk>

Entete_annotation : 1

Id_enteterequetelongueurprogrammeversionbaseseq_baselettredatefonctionnom_projet1nom_projet2Id_elementnom_Est

integervarchar (100)intvarchar (15)varchar (30)varchar (100)varchar (20)varchar (20)varchar (15)varchar (200)varchar (50)varchar (50)Varchar (100)Varchar (30)

<pk>

<ak1,fk1><ak1,fk1><ak2,fk2><ak3,fk3><ak2,fk2>

Hit

Id_hithit_nomhit_descriptionhit_bitshit_evalueId_entete

integervarchar (200)longtextvarchar (10)doubleinteger

<pk>

<ak2,fk>

Hsp

Id_hsphsp_compthsp_evaluehsp_scorehsp_bitshsp_frac_idenhsp_frac_conshsp_gapqhsp_gapshsp_identhsp_conshsp_longhsp_lienhsp_alignhsp_debhsp_finId_hit

integerintvarchar (10)varchar (10)varchar (10)varchar (10)varchar (10)intintvarchar (10)varchar (10)varchar (10)longtextlongtextvarchar (10)varchar (10)integer

<pk>

<ak,fk>

Projet_inter

nom_clusteringdate_creationdescription

Varchar (100)datelongtext

<pk>

Est_associe_clustering

nom_clusteringnom_projet

Varchar (100)varchar (50)

<pk,ak1,fk1><pk,ak2,fk2>

Single_inter

nom_singlenom_clustering

varchar (30)varchar(100)

<pk><pk,ak,fk> Cluster_inter

Id_elementnom_elementsequence_consensusnom_clusternom_contiglongueuralign_phrapres_alignalign_crawlongestnom_clustering

varchar(100)Varchar (30)longtextintvarchar (10)intlongtextlongtextlongtextvarchar(30)varchar(100)

<pk>

<ak,fk>

Est_inter

nom_Estseq_formatId_element

varchar (30)longtextvarchar(100)

<pk>

<pk,ak,fk>

Entete_annotation_inter

Id_enteterequetelongueurprogrammeversionbaseseq_baselettredateId_element

varchar (100)varchar (100)intvarchar (15)varchar (30)varchar (30)varchar (20)varchar (20)varchar (15)Varchar (100)

<pk>

<ak,fk>

Hit_inter

Id_hithit_nomhit_descriptionhit_bitshit_evalueId_entete

varchar (100)varchar (200)longtextvarchar (10)doublevarchar(100)

<pk>

<ak,fk>

Hsp_inter

Id_hsphsp_compthsp_evaluehsp_scorehsp_bitshsp_frac_idenhsp_frac_conshsp_gapqhsp_gapshsp_identhsp_conshsp_longhsp_lienhsp_alignhsp_debhsp_finId_hit

varchar (100)intvarchar (10)varchar (10)varchar (10)varchar (10)varchar (10)intintvarchar (10)varchar (10)varchar (10)longtextlongtextvarchar (10)varchar (10)varchar (100)

<pk>

<ak,fk>

Seq_init

nom_seqsource_fichier_chromatosequence_brutesequence_qualitesequence_nettoyeequal_nettoyeenom_especenom_projet

varchar (30)Varchar(250)LongtextLongtextLongtextLongtextvarchar (30)varchar(30)

<pk>

<pk,ak,fk>

Seq_dig

nom_seq_digsequence_digqual_digenzymepres_micronom_seqnom_projetId_element

varchar (30)LongtextLongtextVarchar(100)tinyintvarchar (30)varchar (30)Varchar (100)

<pk>

<ak1,fk1><pk,ak1,fk1><ak2,fk2>

Microsat

Id_microsatssr_numssr_typessrsizestartendnom_Estnom_projet1Id_elementnom_seq_dignom_projet2

intintvarchar (10)longtextintintintvarchar (30)varchar (30)Varchar (100)varchar (30)varchar (30)

<pk>

<ak1,fk1><ak1,fk1><ak2,fk2><ak3,fk3><ak3,fk3>

Primer

Id_primerprimer_comptforw_nomforw_seqforw_tempforw_sizerev_nomrev_seqrev_temprev_sizeprod_sizeprod_startprod_endvalideId_microsatforw_infosblastrev_infosblast

intintvarchar (100)longtextdoubleintvarchar (100)longtextdoubleintintintintintinttexttext

<pk>

<ak,fk>

Entete_annotation : 2

Id_enteterequetelongueurprogrammeversionbaseseq_baselettredatefonctionnom_projet1nom_projet2Id_elementnom_Est

integervarchar (100)intvarchar (15)varchar (30)varchar (100)varchar (20)varchar (20)varchar (15)varchar (200)varchar (50)varchar (50)Varchar (100)Varchar (30)

<pk>

<ak1,fk1><ak1,fk1><ak2,fk2><ak3,fk3><ak2,fk2>

Est_Valide : 2

nom_Estnom_projetinsert_estlongueur_insertpresence_polyApresence_polyTtype_clusterId_element

Varchar (30)varchar (50)Longtextinttinyinttinyintvarchar (20)Varchar (100)

<pk,ak1,fk1><pk,ak1,fk1>

<ak2,fk2>

Page 21: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

V – Interface web

Manipulation de pages web par l’utilisation de scripts CGI

Utilisation de feuilles de styles

Nécessité d’une interface web commune au pipeline et à la base de données

L’interface doit permettre de :

Paramétrer le pipeline

Lancer le pipeline

Consulter les résultats d’un projet stockés en base de données

Visualiser directement les résultats du pipeline

Page 22: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

biologiste

Interface web

Consulter la base de données

Lancer le pipeline

S’identifier

« include »

Choisir les étapes à effectuer

Paramétrer les différentes étapes

« include »

« include »

Faire un paramétrage avancé de Cap3

« extend »

Administrateur Créer un nouvel utilisateur de la BD

Se connecter sur l’accueil

Page 23: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT
Page 24: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT
Page 25: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT
Page 26: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

VI – Conclusions et perspectives

Outil performant de traitement de séquences issues des banques microsatellites

Possibilité pour l’utilisateur de choisir les étapes à effectuer. Possibilité de paramétrer chacune des étapes.

Enregistrement des résultats en base de données à chaque étape

Interface web conviviale et simple d’utilisation permettant de lancer le pipeline ou de consulter les résultats

Découverte du langage Perl : Perl objet, BioPerl, Perl CGI

Découverte d’un nouveau SGBD : MySQL

Page 27: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Plusieurs perspectives sont envisageables pour la suite :

Effectuer un blast d’une séquence donnée que ce soit contre GenBank ou contre des banques de séquences des utilisateurs

Créer une sortie automatique d’un fichier de soumission pour l’enregistrement direct dans GenBank.

Un téléchargement des chromatogrammes sur le serveur pourrait être intéressant pour l’utilisateur au moment où il fournit le chemin de ses chromatogrammes.

Fournir un fichier Excel répertoriant l’ensemble des couples d’amorces validés à commander.

Enrichir l’interface Web de consultation des résultats par de nouvelles pages d’interrogations de la base de données

Page 28: MISE EN PLACE D’UN PIPELINE DE TRAITEMENT

Merci de votre attention

Merci à Jean-François Rami, Claire Billot, Manuel Ruiz, Pierre Larmande, pour m’avoir accueilli et encadré au CIRAD

Merci aux intervenants du DESS pour les cours qu’ils ont enseignés