Multiple sequence alignments - UNAMcongresos.nnb.unam.mx/TIB2014/sites/default/files/... · MIRA...
Transcript of Multiple sequence alignments - UNAMcongresos.nnb.unam.mx/TIB2014/sites/default/files/... · MIRA...
Ensambles Ensambles GenómicosGenómicos
Karel EstradaKarel Estrada
Ensamblado de genomas
• Dependiendo de la tecnología y del tipo de “ensamblador” que se eliga, los requerimientos de cómputo varían..
• Para genomas pequeños (1~5Mbases), una computadora con 4Gb de RAM podria ser suficiente.
• Sin embargo, genomas de mayor tamaño requieren mucho mas memoria y tiempo de cómputo...
• Las nuevas tecnologías, generan “reads cortos” donde un enfoque de OLC para armar la secuencia original no es conveniente.
Ensamblado de genomasDefiniciones..
Definition of Coverage
Length of genomic segment: LNumber of reads: nLength of each read: l
Definition: Coverage C = nl/L
How much coverage is enough?
C
Ensamblado de genomasReconstructing the Sequence (Fragment Assembly)
Cover region with ~5-fold redundancy (5X) ?
reads
Concepto de K-mero
Tamaño de palabra k N-k+1 = número total de palabras contenidas en un read (N
es la longitud del read) Los k-meros nos permiten conectar reads
Repeats
Bacterial genomes: %Mammals: %
Repeat types:Low-Complexity DNA (e.g. ATATATATACATA…)Microsatellite repeats: (a1…ak)N where k ~ 3-6
(e.g. CAGCAGTAGCAGCACCAG)Common Repeat Families (transposones)
SINE (Short Interspersed Nuclear Elements)(e.g. ALU: ~300-long, 106 copies)
LINE (Long Interspersed Nuclear Elements)~500-5,000-long, 200,000 copies
Other-Genes that are duplicated & then diverge (paralogs)-Recent duplications, ~100,000-long, very similar copies
Armado - “Contigs”
Consensus (15- 30Kbp)Consensus (15- 30Kbp)
ReadsReads
ContigContigArmado sin reads pareados implica no tener información de orden ni orientación.
??
Reads pareados permiten ligar los contigs en Scaffolds donde el tamaño es conocido.
2-pair2-pair
Mean & Std.Dev.Mean & Std.Dev.is knownis known
ScaffoldScaffold
Armado - “Scaffolds”
ChromosomeChromosome
ContigContig
Gap (mean & std. dev. Known)Gap (mean & std. dev. Known)Read pair (mates)Read pair (mates)
ConsensusConsensus
Reads (of several haplotypes)Reads (of several haplotypes)
SNPsSNPs
SUPERCONTIGCONTIG 1.3
CONTIG 1.4
CONTIG 1.2
CONTIG 1.1
Armado - “Gaps”
sequencing gap - sabemos el orden y la orientación de los contigs por tener al menos un par que cubre el “gap”.
physical gap – no tenemos información conocida sobre los contigs adyacentes, ni sobre el ADN que atraviesa el “gap”.
Sequencing gaps
Physical gaps
Ensamblado de genomasAlgoritmos..
● Overlap, layout, consensus (OLC)
● De Bruijn Graph (k-mer)
● Burrows Wheeler transform (FM-index)
Ensamblado de genomasAlgoritmos..
● Overlap, Layout, Consensus (OLC)
Overlap:Busca todos los pares de secuencia que sobrelapan
Layout:Quita los sobrelapes redundantes y de baja calidad
Consensus:Mezcla los pares de secuencias que sobrelapan solo entre ellas
Find Overlapping Reads
• Correct errors using multiple alignment
TAGATTACACAGATTACTGATAGATTACACAGATTACTGATAG TTACACAGATTATTGATAGATTACACAGATTACTGATAGATTACACAGATTACTGA
C: 20C: 35T: 30C: 35C: 40
C: 20C: 35C: 0C: 35C: 40
• Score alignments
• Accept alignments with good scores
A: 15A: 25A: 40A: 25-
A: 15A: 25A: 40A: 25A: 0
Ensamblado de genomasAlgoritmos..
● Burrows Wheeler transform (FM-index)
Overlap, Layout, Consensus, utilizando el algoritmo de “Ferragina-Manzine index” para encontrar todos los pares de secuenciasque sobrelapan de manera más eficiente..
Ensamblado de genomasAlgoritmos..
● De Bruijn Graph (k-mer)
Antecedentes (Bruijn)
Euler (1736)
Circuito Euleriano: <=>
Conexo + grados de entradas y salidas iguales.
Nicolas de Bruijn (~1951)
“BEST theorem”
Cuantos CE tiene un Grafo Euleriano dirigido ?
L a) Overlapb) Gráfica usando un k-
mero de tamaño 4c) Consenso
a) Gráfica De Bruijn que diverge debido a un error de secuenciación al final del read causando un camino cerrado
b) Una burbuja causada por un error en la mitad del read
c) Un repeat causando caminos diferentes
Ejemplo:
Ejemplo:
GAGCTGGTGATCAGCGAGC
Seq:
Ensamblado de genomasProgramas..
Overlap, Layout, Consensus
● CAP3 ● Mira ● Newbler ● Arachne ● …..
Burrows Wheeler Transform
● String Graph Assembler SGA
●…..
De Bruijn Graph
● ABySS ● Velvet ● AllPaths ● Soap ● …..
Velvet - Ensamble de novo%> ./velveth output_directory k-mer [[-file_format][-read_type] filename]
File formats:fasta (default)fastqfasta.gzfastq.gzsambam...
Read categories are:short (default)shortPairedshort2 (same as short, but for a separate insert-size library)shortPaired2 (see above)long (for Sanger, 454 or even reference sequences)longPaired
Velvet - Ensamble de novo
Velvetg is the core of Velvet (de Bruijn graph is built and manipulated)
%> ./velvetg # muestra ayuda (no se preocupen, no se tienen que utilizar todas las opciones)
%> ./velvetg output_directory/
Velvet - Ensamble de novo
%>velveth example_assembly_velvet 40 -shortPaired -fastq illum_reads_72pb_paired1.fq illum_reads_72pb_paired2.fq[0.000000] Velvet can't work with even length k-mers, such as 40. We'll use 39 instead, if you don't mind.[0.000997] Reading FastQ file illum_reads_72pb_paired1.fq[1.566786] 690765 reads found..........
Velvet - Ensamble de novo
%>velvetg example_assembly_velvet/ -ins_length 200 -read_trkg yes
STDERR..…Final graph has 466 nodes and n50 of 20761, max 85929, total 1000498, using 775166/1381530 reads
Velvet - Ensamble de novo
Mejora del armado.. El tamaño de kmero tiene el mayor impacto..
Multiple k-mersProbar varios k-meros a la vez.. pueden hacer todas la s longitudes de k como: m ≤ k ≤ M con paso de s:%> velveth output_directory/ m,M,k (..data files..)
%>for ((i=33;i<56;i +=2)); do velvetg example_assembly_velvet_$i/ -ins_length 200 -exp_cov auto -cov_cutoff auto; done
Velvet - Ensamble de novoEjerc.. mejorar armado..
para ver exp_cov manual:
%>R%>data = read.table("stats.txt", header=TRUE) %>source("http://www.bioconductor.org/biocLite.R")%>biocLite("plotrix")%>library(plotrix)%>weighted.hist(data$short1_cov, data$lgth, breaks=0:50)
Ver datos.. interpretación..
%>velvetg example_assembly_velvet_37/ -ins_length 200 -exp_cov ?? cov_cutoff ??
Velvet - Ensamble de novo
K-mer Nodes n50 Largest contig33 35 .. .. 55
Otra forma de obtener las estadísticas:
%>for ((i=33;i<56;i +=2)); do echo example_assembly_velvet_$i; ../stats example_assembly_velvet_$i/contigs.fa; done
Velvet - Ensamble de novo
example_assembly_velvet_33sum = 996140, n = 82, ave = 12148.0487804878, largest = 123161N50 = 46555, n = 7N60 = 40367, n = 9N70 = 25878, n = 12N80 = 18537, n = 16N90 = 13781, n = 22N100 = 65, n = 82example_assembly_velvet_35sum = 996129, n = 72, ave = 13835.125, largest = 150596N50 = 54070, n = 6N60 = 43920, n = 8N70 = 30660, n = 11N80 = 21863, n = 15N90 = 18539, n = 19N100 = 69, n = 72
Velvet - Ensamble de novo
Ensamble con referencia:
%> velveth example_assembly_velvet_ref_37 37 -reference -fasta Salmonella_YU39_partial_chrom.fna -shortPaired -fastq illum_reads_72pb_paired1.fq illum_reads_72pb_paired2.fq
%> velvetg example_assembly_velvet_ref_37/ -ins_length 200 -exp_cov 18 -cov_cutoff 8 -read_trkg yes
OJO: make MAXKMERLENGTH=97 LONGSEQUENCES=1
Velvet - Ensamble de novo
Ensamble con referencia (Cont..)
Ahora comparamos las salidas del armado sin referencia con k= 37 y este...
mejora ?
Tip: ver “stats” y agarrar un número de corte de tamaño de contig = 500pb. (-min_contig_lgth 500)
Velvet - “Scaffolds”Como ya saben, los templados de DNA pueden ser secuenciados por ambos extremos, conociendo la distancia entre estos (“insert size”).
Imaginen ahora mapear los “reads” de vuelta a los contigs ensamblados. En algunos casos ambos reads de un par estarán en contigs diferentes. Podemos usar esos pares para colocar los dos contigs en un scaffold, orientarlos y poner Ns entre ellos que cumplan con el tamaño de inserto. Velvet hace esto automáticamente y el pueden definir el número de pares requeridos para unir dos contigs con el parámetro: -min_pair_count (default: 5)
MIRA – Ensamble con referencia
Ensamble con referencia (Cont..)
MIRA is a multi-pass DNA sequence data assembler/mapper for whole genome and EST/RNASeq projects.
Puede utilizar:• electrophoresis sequencing (Sanger sequencing)• 454 pyrosequencing (GS20, FLX or Titanium)• Ion Torrent• Solexa (Illumina) sequencing• (in development) Pacific Biosciences sequencing
MIRA – Ensamble con referencia
Manual: http://mira-assembler.sourceforge.net/docs/DefinitiveGuideToMIRA.html
( preocúpense, se tienen que utilizar muchas opciones )
MIRA – Ensamble con referencia
Ejemplo: MIRA 3
%>mira -GE:pro=example:not=4 -job=mapping,genome,accurate,solexa -AS:nop=1 -SB:lb=1:abnc=0:bft=fasta -SK:not=4 SOLEXA_SETTINGS -LR:lsd=1:ft=fastq -FN:fqi=/media/Curso/e.coli-K12-reads-72bp-R_part.fq -GE:tismin=300:tismax=500 -CO:fnicpst=1 COMMON_SETTINGS -FN:bbin=/media/Curso/E.coli-k12.complete.genome.fna > & log_assembly.txt
Ejemplo: MIRA 4
%> mira manifest.conf
MIRA – Ensamble con referencia
MIRA 4%> mira manifest.conf
Manifest.conf:# Example for a manifest describing a mapping assembly with# unpaired Illumina data# First part: defining some basic things# In this example, we just give a name to the assembly# and tell MIRA it should map a genome in accurate modeproject = Mira_pairedend_plusrefjob = genome,mapping,accurateparameters = -GE:not=4# The second part defines the sequencing data MIRA should load and assemble# The data is logically divided into "readgroups"# first, the reference sequencereadgroupis_referencedata = ../../data/Salmonella_YU39_partial_chrom.fnastrain = YU39# now the Illumina datareadgroup = pairedendlibsdata = ../../data/*fastqtechnology = solexastrain = YU39_art_illumina
MIRA – Ensamble con referencia
MIRA 4
Ejercicio:.. armar un single_end
# Example for a manifest describing a de-novo assembly with# unpaired Illumina data# First part: defining some basic things# In this example, we just give a name to the assembly# and tell MIRA it should map a genome in accurate modeproject = Salmonella_singleendsjob = genome,denovo,accurate# The second part defines the sequencing data MIRA should load and assemble# The data is logically divided into "readgroups"# here comes the unpaired Illumina datareadgroup = fromUUAB_projectdata = ../../data/illum_reads_72pb_paired1.fastqtechnology = solexa
MIRA – Ensamble con referencia
MIRA 4Ejercicio:.. armar el paired_end y compararlo con el mejor armado obtenido con Velvet..
# Example for a lazy manifest describing a denovo assembly with# one library of paired reads# First part: defining some basic things# In this example, we just give a name to the assembly# and tell MIRA it should map a genome in accurate modeproject = pairedend_Mirajob = genome,denovo,accurate# The second part defines the sequencing data MIRA should load and assemble# The data is logically divided into "readgroups"# now the Illumina paired-end data#readgroup = DataIlluminaPairedLib#autopairing#data = ../../data/project_1.fastq ../../data/project_2.fastq#technology = solexa#If you know the orientation of the reads and/or the library size, you can tell this MIRA the following way (just showing the#readgroup definition here):readgroup = DataIlluminaPairedEnd200simLibdata = ../../data/illum_reads_72pb_paired1.fastq ../../data/illum_reads_72pb_paired2.fastqtechnology = solexatemplate_size = 150 350segment_placement = ---> <---
MIRA – Ensamble con referencia
MIRA 4Ejercicio:.. armar el paired_end haciendo un mapping a la referencia..
# Example for a manifest describing a mapping assembly with# paired Illumina data# First part: defining some basic things# In this example, we just give a name to the assembly# and tell MIRA it should map a genome in accurate modeproject = Mira_pairedend_plusrefjob = genome,mapping,accurateparameters = -GE:not=32# The second part defines the sequencing data MIRA should load and assemble# The data is logically divided into "readgroups"# first, the reference sequencereadgroupis_referencedata = ../../data/Salmonella_YU39_partial_chrom.fastastrain = YU39# now the Illumina datareadgroup = DataIlluminaPairedEnd200simLibdata = ../../data/illum_reads_72pb_paired1.fastq ../../data/illum_reads_72pb_paired2.fastqtechnology = solexatemplate_size = 150 350segment_placement = ---> <---strain = YU39_art_illumina
Trabajo con el “draft”
• Obtener la secuencia completa del genoma.
– Ordenar contigs.
– Completar los GAPs.
– Resolver ambigüedades por repeticiones.
– Unir contigs.
Mejorar el “draft”
Podemos considerar que tenemos un buen armado si tenemos menos de 100 supercontigs.
Existen varias herramientas que sirven para mejorar los armados..
– SSPACE: Sirve para hacer Scaffolding. Aunque la mayoría de los ensambladores lo hacen está herramienta generalmente los mejora.
– REAPR: Evalúa el Scaffolding, rompiendo los scaffolds incorrectos.
Trabajo con el “draft”(PAGIT)
• Protocolo PAGIT– ABACAS / Nucmer: Alineamiento contra
referencia para orientar contigs– IMAGE / GapFiller: para llenar los gaps de los
contigs que se orientan con ABACAS– ICORN: para corregir los posibles errores de
secuenciacion 454 e Illumina– RATT / Exonerate / MAKER: para transferir la
anotacion a partir de las referencias hacia nuestras moleculas ya corregidas
ABACASAlinear – Ordenar - Orientar
Tendremos un único Scaffold con el que podremos trabajar para llenar los Gaps.
ACT: (visualizador de la comparación entre dos o más secuencias)
Trabajo con el “draft”(ABACAS)
%>/usr/local/PAGIT/ABACAS/abacas.pl -r ../Salmonella_YU39_partial_chrom.fna -q contigs.fa -p nucmer
%>act ../Salmonella_YU39_partial_chrom.fasta contigs.fa_Salmonella_YU39_partial_chrom.fna.crunch contigs.fa_Salmonella_YU39_partial_chrom.fna.fasta