31.10.2014 Views

un logiciel de scaffolding intégrant différents sources d ... - Inra

un logiciel de scaffolding intégrant différents sources d ... - Inra

un logiciel de scaffolding intégrant différents sources d ... - Inra

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr<br />

LYNX<br />

<strong>un</strong> <strong>logiciel</strong> <strong>de</strong> <strong>scaffolding</strong> intégrant<br />

différentes <strong>sources</strong> d’informations<br />

Jérôme Gouzy<br />

Plateforme Informatique & Bioinformatique du LIPM/SPE<br />

CATI BBRIC: Bioinformatique, Biodiversité,<br />

Représentation et Intégration <strong>de</strong>s Connaissances


Un peu <strong>de</strong> jargon: processus d’assemblage, contigs<br />

et scaffolds, paired-end, mate-pairs<br />

10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr<br />

paired-end<br />

longueur <strong>de</strong><br />

l’insert 200-600bp<br />

Contig 1 Contig 2<br />

Scaffold 1<br />

Légen<strong>de</strong>: Les flèches représentent les fragments <strong>de</strong> séquences fournis par les séquenceurs. Les<br />

traits en pointillés qui connectent les flèches représentent <strong>un</strong> lien <strong>de</strong> longueur connue entre les<br />

<strong>de</strong>ux extrémités séquencées. Les couleurs représentent <strong>de</strong>s tailles d’inserts différentes obtenues<br />

par différents protocoles expérimentaux.<br />

Dans <strong>un</strong> premier temps les chevauchements entre séquences sont détectées et utilisés pour<br />

construire <strong>de</strong>s séquences continues plus longues que l’on nomme « contigs ». Dans <strong>un</strong> <strong>de</strong>uxième<br />

temps, les inserts « longs » sont utilisés pour ordonner les « contigs » en « scaffolds ». Les trous<br />

entre les contigs, essentiellement dus aux séquences répétées, sont représentés par la lettre ‘N’<br />

dans l’assemblage.<br />

mate-pair<br />

longueur <strong>de</strong><br />

l’insert 3,5,8,10kb,<br />

20kb, « 40kb »


Logithèque<br />

http://bbric.toulouse.inra.fr/<strong>de</strong>javu<br />

10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr


Etape 1 « Contiguage »<br />

► données paired-ends illumina 2*100nt, 454<br />

► Lorsqu’il y a beaucoup <strong>de</strong> données illumina (genome/mRNA),<br />

nécessité d’<strong>un</strong>e machine dédiée avec beaucoup <strong>de</strong> mémoire<br />

vive (1To)<br />

► Utiliser le <strong>logiciel</strong> et les paramètres qui correspon<strong>de</strong>nt aux<br />

données.<br />

• 454: Newbler/cabog; illumina: velvet/soap<strong>de</strong>novo<br />

• nombreux essais <strong>de</strong> paramétrage pour maximiser le N50 sans pour<br />

autant introduire trop <strong>de</strong> chimères<br />

► Nettoyage préliminaire <strong>de</strong>s données ? Ca dépend<br />

• Sur medicago:<br />

► 100x il vaut mieux nettoyer<br />

► 200x il vaut mieux ne pas nettoyer<br />

N50: taille <strong>de</strong> contig pour laquelle on a 50% <strong>de</strong>s nucléoti<strong>de</strong>s <strong>de</strong> l’assemblage dans<br />

<strong>de</strong>s contigs <strong>de</strong> longueur supérieure<br />

10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr


Parfois cela ne se « contigue » pas<br />

(lorsque cela ne vient pas <strong>de</strong>s données)<br />

► En fait, si l’on pouvait appliquer les algorithmes/programmes classiques<br />

d’assemblage (cap3, phrap, Arachne) cela marcherait certainement<br />

► Hélas, les algorithmes « anciens » ne peuvent fonctionner sur <strong>de</strong> telles<br />

quantité <strong>de</strong> lectures on doit utiliser <strong>de</strong>s programmes utilisant <strong>de</strong>s<br />

structures <strong>de</strong> données particulières (Graphes <strong>de</strong> <strong>de</strong> Bruijn) L’analyse<br />

<strong>de</strong>vient possible mais le résultat est moins bon.<br />

Biologiste lambda,<br />

cap3, phrap, ... moi<br />

>S1<br />

ATGCCGTAGTCAGTC<br />

>S2<br />

CCGTAGTCAGTCTTC<br />

Velvet<br />

1700 citations dans google<br />

scholar<br />

ATGCCGTAGTCAGTC<br />

CCGTAGTCAGTCTTC<br />

k=3<br />

>NODE_1_len_7_cov_1.5<br />

ATGCCGTAG<br />

>NODE_2_len_4_cov_3.0<br />

AGTCAG<br />

k=5<br />

>NODE_1_len11_cov_1.7<br />

ATGCCGTAGTCAGTC<br />

pas mal, il manque juste TTC<br />

k=7<br />

Pas <strong>de</strong> contig<br />

ATGCCGTAGTCAGTCTTC<br />

2 contigs chevauchant <strong>de</strong> k-1 nt<br />

il manque TCTTC à la fin<br />

10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr


10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr<br />

Le contiguage marche bien<br />

= « gene space assemblé correctement<br />

► Quand le génome n’est pas polymorphe<br />

► >= 100x paired-end (50x on peut aussi avoir <strong>de</strong> bons résultats)<br />

► Lorsque les données <strong>de</strong> séquençage sont bonnes<br />

• Bonne qualité<br />

• Pas <strong>de</strong> bias<br />

• La profon<strong>de</strong>ur théorique visée est atteinte (pas <strong>de</strong><br />

contamination)<br />

« l’ assemblabilité » est <strong>un</strong> très bon indicateur <strong>de</strong> qualité<br />

<strong>de</strong>s données


Etape 2 « Scaffolding »<br />

10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr


Prerequis pour <strong>un</strong> <strong>scaffolding</strong> correct<br />

► les contigs doivent être disjoints<br />

C1<br />

C2<br />

C3<br />

C4<br />

Si C3 et C2 chevauchent sur la région<br />

correspondant à l’extrémité <strong>de</strong> la paire<br />

qui fait le lien C2 et C3 (i) considérés comme repeats ?<br />

(ii) ordonnés incorrectement ?<br />

► les contigs doivent couvrir le maximum d’espace non repété<br />

C3<br />

C6<br />

C4<br />

Si C4 qui serait le meilleur hit n’est pas dans les contigs<br />

le meilleur hit n’est plus le bon<br />

► il faut <strong>de</strong>s banques mate-pairs <strong>de</strong> différentes longueurs et <strong>de</strong> bonne qualité<br />

C3<br />

C4 C7<br />

C8 Entrelacement<br />

C3 C1 C4<br />

Problème d’ordre si dans <strong>un</strong>e même banque la taille d’insert<br />

est très variable<br />

► Plus les contigs sont courts, plus il est difficile <strong>de</strong> gérer le « bruit »<br />

► Il faudrait <strong>un</strong> bon scaffol<strong>de</strong>r, très paramétrable et utilisable sur beaucoup <strong>de</strong><br />

données


10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr<br />

Tests <strong>de</strong>s <strong>logiciel</strong>s existants<br />

► Velvet/Oases: contigs+scaffold<br />

• Trop long si beaucoup <strong>de</strong> données<br />

• Modularité accessible par recompilation<br />

► SOAP<strong>de</strong>novo: contig+scaffold<br />

• Modularité accessible au niveau <strong>de</strong> la ligne <strong>de</strong><br />

comman<strong>de</strong><br />

• Sous utilise les données inserts longs du type BAC-end<br />

► BAMBUS: scaffold données hétérogènes<br />

• Pas mal <strong>de</strong> bugs<br />

• Peu <strong>de</strong> paramétrage possible


10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr<br />

Pas <strong>un</strong> problème <strong>de</strong> <strong>scaffolding</strong> mais <strong>de</strong>s<br />

<strong>de</strong>s problèmes (intimement liés)<br />

► Assemblage <strong>de</strong> novo<br />

► Utilisation d’<strong>un</strong>e référence pour ordonner <strong>de</strong>s<br />

contigs/assemblés par ailleurs<br />

► Utiliser <strong>un</strong> 2 e assemblage (ou <strong>de</strong>s lectures longues) pour<br />

combler les trous d’<strong>un</strong> assemblage <strong>de</strong> référence<br />

► Assembler <strong>un</strong> chromosome ou <strong>un</strong> morceau <strong>de</strong> chromosome<br />

► « Finishing »<br />

• Positionner les contigs/repeats dans les trous<br />

► Ordonner <strong>de</strong>s scaffolds<br />

• Sur <strong>un</strong>e carte optique<br />

• Sur <strong>un</strong>e carte génétique


10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr<br />

► Pouvoir faire du diagnostic fin<br />

► Essayer <strong>de</strong> gérer les repeats<br />

LYNX<br />

<strong>de</strong>c 2011 - …<br />

► Intégrer tous les types <strong>de</strong> données au moment du <strong>scaffolding</strong><br />

et non pas les <strong>un</strong>es après les autres gui<strong>de</strong>r et/ou éviter <strong>de</strong><br />

faire <strong>de</strong>s choix qui seraient remis en cause ultérieurement<br />

► Pouvoir facilement corriger/maintenir <strong>un</strong> outil stratégique pour<br />

l’équipe.<br />

► Implémentation d’heuristisques modulaires parfois lour<strong>de</strong>s<br />

plutôt que d’algorithmes efficaces<br />

► Traiter avec le même outil l’ensemble <strong>de</strong>s classes <strong>de</strong> problèmes<br />

► Perl, multithreading, binding C++ (lib alnpack)


Plateforme bioinformatique du LIPM/SPE: bilan <strong>de</strong>s<br />

outils et compétences sur l’assemblage<br />

Scaffol<strong>de</strong>r<br />

LYNX<br />

supprimer<br />

redondance et<br />

chevauchements<br />

Bact.<br />

avec<br />

bcp<br />

IS<br />

x<br />

genot<br />

.<br />

mRNA<br />

diploi<strong>de</strong><br />

Champignon<br />

hapl. 25Mb<br />

(ref. partielle)<br />

x genot<br />

OOmycet<br />

e<br />

100Mb<br />

x genot<br />

Mt<br />

pe, mp,<br />

BES, OM<br />

(ref.<br />

partielle)<br />

N/A +++ OK OK En cours<br />

(très long)<br />

scaffoling pe+mp +++ En cours Attente<br />

data<br />

+ intégration<br />

OpticalMap<br />

+ intégration<br />

carte génétique<br />

<strong>de</strong>nse<br />

Assemblage<br />

guidé par<br />

référence<br />

Ms<br />

Tournesol<br />

pe, mp,<br />

(BES?),<br />

carte génet<br />

GBS<br />

x genot<br />

En cours<br />

(très long)<br />

++ - +<br />

N/A En cours N/A ++ N/A N/A<br />

N/A N/A N/A N/A N/A prévu<br />

+++ Prévu Prévu N/A prévu prévu<br />

Combler les trous ++ N/A Prévu Prévu ++ prévu prévu<br />

Réinjection <strong>de</strong>s<br />

repeats<br />

++ En cours Prévu ++/- prévu prévu


10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr<br />

Stratégie<br />

►10% du temps humain pour traiter 90% <strong>de</strong>s<br />

problèmes automatiser les problèmes<br />

simples (= les plus comm<strong>un</strong>s)<br />

►90% du temps humain pour (essayer <strong>de</strong>)<br />

traiter les problèmes compliqués


10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr<br />

Pipelines automatiques pour traiter les<br />

problèmes les plus simples<br />

► Assemblage <strong>de</strong> transcriptomes<br />

+ Suppression <strong>de</strong> la redondance dans <strong>un</strong> assemblage <strong>de</strong><br />

transcriptome<br />

► Assemblage paired-end <strong>de</strong> génomes<br />

+ Ordonnancement en fonction d’<strong>un</strong>e référence<br />

Basés sur:<br />

LYNX<br />

SOAP<strong>de</strong>novo<br />

Velvet<br />

cap3<br />

Interface CLI (ligne <strong>de</strong> comman<strong>de</strong> <strong>un</strong>ix), l’objectif est <strong>de</strong> les rendre<br />

disponibles à travers <strong>de</strong>s interfaces web (moteur <strong>de</strong> workflow type<br />

galaxy, mobyle, etc.; sites web dédiés)<br />

Approches « brutales » lourd + heuristiques<br />

Les métriques usuelles ne suffisent pas à évaluer la qualité du résultat<br />

toujours imaginer <strong>un</strong> contrôle externe qui vérifie le sens biologique


10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr<br />

LYNX « manuel » pour les problèmes les plus complexes<br />

► Beaucoup <strong>de</strong> données <strong>de</strong> différentes natures<br />

► Design du protocole <strong>de</strong> <strong>scaffolding</strong> Fichier <strong>de</strong> configuration<br />

• Modules <strong>de</strong> la recette<br />

►Scaffolding; Ajout <strong>de</strong>s repeats; Construction d’<strong>un</strong>e pseudomolécule (si<br />

GM/OP); Scaffolding/Micro<strong>scaffolding</strong>; Détection/correction d’erreur<br />

• Paramètres <strong>de</strong>s différentes étapes du <strong>scaffolding</strong><br />

►Filtrages <strong>de</strong>s hits selon les banques (suppression redondance,<br />

contamination paired-end dans les banques mate-pairs, etc.)<br />

►Contrôle <strong>de</strong>s itérations<br />

►Contrôle <strong>de</strong>(s) algorithme(s) <strong>de</strong> <strong>scaffolding</strong><br />

Dépend <strong>de</strong>s données pas du tout générique<br />

Lourd et expérience dépendant<br />

En cours <strong>de</strong> développement (= la doc c’est le co<strong>de</strong>!)


10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr<br />

Oui mais<br />

►Peut être que le jour ou l’outil sera<br />

satisfaisant les technologies l’auront<br />

rendu obsolète !


Conclusions personnelles (et peut être temporaires) sur<br />

l’assemblage <strong>de</strong> génomes à partir <strong>de</strong> données NGS<br />

10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr<br />

► Comprendre pourquoi cela ne marche pas et imaginer puis développer <strong>un</strong>e<br />

solution prend du temps<br />

• « <strong>de</strong>bugguer » sur <strong>de</strong>s génomes complexes est extrêmement compliqué,<br />

nécessite <strong>un</strong> temps complet sur <strong>un</strong>e pério<strong>de</strong> longue et <strong>un</strong> accès réservé à <strong>de</strong>s<br />

res<strong>sources</strong> <strong>de</strong> calcul conséquentes il est souvent nécessaire <strong>de</strong> mettre au<br />

point <strong>de</strong>s solutions sur <strong>de</strong>s cas moins complexes<br />

► Mais penser que lorsque l’on a réglé <strong>un</strong> problème sur <strong>un</strong> cas « simple » cela<br />

va marcher pareil sur <strong>un</strong> cas plus complexe reste démesurément optimiste<br />

• effet programmes: multitu<strong>de</strong> <strong>de</strong> versions, bugs, paramètres<br />

• effet données: type, qualité, quantité, bruit<br />

• effet espèce: haploi<strong>de</strong>, diploi<strong>de</strong>, haploi<strong>de</strong> avec énormément <strong>de</strong> repeats, etc.<br />

• effet papillon: <strong>un</strong>e erreur (ex: chimère) au contiguage peut créer <strong>un</strong> souci lors<br />

du <strong>scaffolding</strong> et donc au moment <strong>de</strong> la reconstitution <strong>de</strong> la pseudomolécule<br />

► Il faut absolument penser le projet comme <strong>un</strong>e interaction<br />

bio/bioinfo sans les données rien n’est possible, sans les outils/compétences<br />

non plus.


Merci pour votre attention<br />

10 avril 2013 – Colloque EPGV – Lusignan – Jerome.Gouzy@toulouse.inra.fr

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!