Analyses de données NGS et présentation de la librairie NGS++ UQÀM, 13 Mars 2013 Alexei Nordell Markovits
2 Présentation Nicolas Gevry Shengrui Wang
3 Plan 1) Introduction/Next Generation Sequencing(NGS) 2) Critiques de certaines pratiques d'analyses 3) Présentation de la librairie NGS++
4 1) 1990, congrès des É-U vote 3 milliard, date prévue de 2005. 2) Fini en 2003, 2,7 milliard.
5
6
7
Épigénétique 8 ChIP-Seq RNA-Seq DNA-Seq FAIRE CHIA-PET
Data 9
10
11 Oh my God what should I do now??? Quantité astronomique de résultats publiés. En ratio, peu de discussion sur les méthodes d'analyses. Donc : Certaines méthodes peu adaptées ont été reprises. Les créateurs d'outils ont contribué.
Aggregate profile 12
Aggregate profile 13
Segmentation 14 Une région = 200-500 dimensions, non-normalisées Distribution potentiellement différente Information locale et dépendance dans le temps Dans ce contexte, nous pouvons se questionner sur la sélection de la distance Euclidienne
http://www.rithme.eu/ 15
p-value 16 Supposition : Probabilité que la région soit enrichie Réalité : Probabilité que la densité soit générée d'une distribution de Poisson avec lamba local
FDR 17 Wikipedia: False discovery rate (FDR) control is a statistical method used in multiple hypothesis testing to correct for multiple comparison Controlling the False Discovery Rate: A Practical and Powerful Approach to Multiple Testing Author(s): Yoav Benjamini and Yosef Hochberg (1995 ) Statistical significance for genome-wide experiments. Storey, J. D. and Tibshirani, R. J. (2003) Discovering the false discovery rate. Benjamini, Yoav (2010)
FDR 18...empirically estimates the false discovery rate (FDR) for each detected peak using the same procedure employed in the previous ChIP-chip... At each p-value...the same parameters to find ChIP peaks over control and control peaks over ChIP (that is, a sample swap). The empirical FDR is defined as number of control peaks / Number of ChIP peaks Zhang, Y., Liu, T., Meyer, C., Eeckhoute, J., Johnson, D., Bernstein, B., Nusbaum, C., et al. (2008). Model-based Analysis of ChIP-Seq (MACS). Genome biology, 9(9), R137.
Nucleosome calling (Normal) 19 Fuzziness Supposition : Déplacement du nucléosome Réalité : Écart type d'une loi normale modélisée sur les données (GMM)
Conclusion 20 L'absence d'évaluation théorique/technique des méthodes employées sera (est?) nuisible à la recherche dans le domaine Les outils accentuent la situation. L'usager suppose une expertise technique dans les termes utilisés Technically correct n'est pas suffisant
21
22 Termes Librairie : Aussi appelée Package, modules, etc L objectif d une librairie est de faciliter la création de d outils en permettant au développeur de réutiliser des fonctionnalités déjà fournies. I realized that, paradoxically enough, good programmers need to be both lazy and dumb. - Philipp Lenssen
23 Pourquoi? Deux problématiques Gestion de formats hétérogènes Appliquer rapidement des transformations spécifiques.
24 Format fichier NGS Les formats génomiques sont hétérogènes et multiples SAM/BAM GFF(1-3) GTF Bed(3-9) GenePred VCL...
25 Format fichier NGS L'information contenue dans ces formats s entrecroise partiellement. Position : BED/SAM/GTF/GENEPRED/BEDGRAPH Score : BED/GTF/BEDGRAPH Séquence : SAM Exon : GENEPRED/GFF Rajoute à la complexité de manipuler des données NGS
26 Format fichier NGS Il est souhaitable : D'avoir une structure pour gérer la majorité des formats D'avoir une interface commune aux informations communes des formats D'avoir une interface spécialisée pour les informations exclusives des formats
27 Transformation spécifiques
28 Difficultés - Outils spécialisés - Relativement peu de support pour le développeur. - Donc : Développement d'une librairie en C++ cherchant à offrir une interface transparente entre des formats de données hétérogènes et une structure interne souple.
29 Librairie C++ - Pourquoi C++? BioPerl, Python, R -Avantages: Quelques librairie existent ( BedTools, BamTools, SeqAN) C++11 Élargir les disponibilités Langage compilé En pratique...
Structure 30
Structure 31
Structure 32
33 Librairie C++ Plusieurs fonctionalités Overlap Subset Count Merge Stats
34 Plusieurs opérateurs fonctionels Éléments clés de la librairie Permet de filter/interroger/transformer les données Plusieurs wrappers de la STL++ transform for_each count sort filter
35 C++11 Nouveau standard Programmation fonctionelle/générique ++ Fonction Lambda! Lambda = fonction Just in Time
36 C++11 Why do we care? Facilite la manipulation des structures via les opérateurs fonctionels. Ex: countsiteswithproperty(unarypredicate p)
37 Ce qui permet du code tel que
38 OpenMPI Facile à rendre parallèle Compilation avec fopenmp Résumé Structure interne simple Fonctionnalité essentielle pré-implémentée. Fonctionnalité supplémentaire facile à intégrer via fonction lambda et opérateurs fonctionels.
39 La question des formats Pont entre les données et la structure Objet Parser et Token Objet Token Format intermédiaire Assigne des marqueurs à des données génériques (string) Ex : CHR, START_POS, END_POS, SCORE, etc
40 Objet Token Les marqueurs peuvent avoir des conditions et de actions associées Ex: START_POS >= 0 END_POST >= START_POS STRAND = +/-/* Inférence si SEQUENCE sans END_POS
41 Objet Parser Objet Token Existe un type (héritage) pour chaque format supporté. L'objet à la responsabilité de lire chaque entrée et de créer un Token correspondant Via les marquages, l'association des données similaires est faite. Les structures de données sont toutes capables de recevoir un Token et ressortir l'information appropriée.
42
43 Exemple ubasicngsexperiment loadedfile; uparser bedparser(firststream, BED ); loadedfile.loadwithparser(bedparser,"bed"); uwriter bedwriter(&cout,"bed4"); auto functoverlap=[&](ubasicngs item) { if (loadedfile.ischrom(item.getchr())) { ubasicngschrom comparechrom(item.getchr()); comparechrom.adddata(item); auto pchrom= loadedfile.getpchrom(item.getchr()); if (pchrom->getoverlappingcount(comparechrom)>0) item.writetooutput(bedwriter); } }; loadedfile.loadwithparserandrun(secondstream,"bed",functoverlap); }
44 Conclusion Avantages Lecture/écriture génomique facilitée Saveur fonctionelle permet de manipuler les données facilement Rapide Inconvénients C++ 11 Lecture un peu lente Utilisation de mémoire Certains types d'opérations à travailler
45 Remerciements Laboratoire de Arnaud Droit Charles Joly-Beauparlant Laboratoire de Shengrui Wang Dominique Toupin