Alinhamento de Seqüências Genéticas Fevereiro-2011 Daniel Guariz Pinheiro, PhD. Laboratório de Genética Molecular e Bioinformática Departamento de Genética Faculdade de Medicina de Ribeirão Preto Universidade de São Paulo Introdução SEQÜÊNCIAS GENÉTICAS Seqüenciamento de DNA Leroy Hood Roche/454 FLX ABI SOLiD ION Torrent - Seqüenciador semi-automático 1986 Gilbert & Sanger 1977 -Métodos para o seqüenciamento de DNA 2002 1986 Applied Biosystems -Seqüenciador automático comercial 2005 2007 2006 2008 Illumina/Solexa Genome Analyzer 2010 2010 Helicos Pacific HeliScope Biosciences Nova Geração de Seqüenciadores de DNA Roche/454 FLX Illumina/Solexa GA ABI SOLiD ABI 3730xl Roche/454 FLX Illumina/Solexa GA ABI SOLiD Método Sanger Piroseqüenciamento Seqüenciamento por Síntese Seqüenciamento por Ligação Dados/run 290 Kb ~300 Mb ~7 Gb > 15 Gb Tempo/run 1 hora 5 horas 3-7 dias 10 dias Tamanho ~500 - 800 pb ~200 - 500 pb ~35-100 pb ~25 - 35 pb Custo/run $48 $6.800 $9.300 $11.000 Runs Genoma 3Gb 312.500 ($15.000.000) 360 ($2.448.000) 59 ($548.700) 30 ($330.000) Adapted from Richard Wilson, School of Medicine, Washington University, “Sequencing the Cancer Genome” ABI 3730xl 2008 Pares de base Seqüências 99.116.431.942 98.868.465 Sequence Read Archive “(…) In mid-September 2010, the SRA contained >500 billion reads consisting of 60 trillion base pairs available for download (…) Almost 80% of the sequencing data are derived from the Illumina GA platform. The SOLiD™ and Roche/454 platforms account for 15% and 5% of “We’re growing by about 1 Tb/month.” submitted base pairs, respectively.(…)” NCBI’s staff scientist Martin Shumway (Leinonen R et. al., 2011) Formato Fasta sequence.fa sequence.qual >SEQUENCE_1 cagtcagcatactcagtcagtcatgcatgctga gtcacttgcatgacgtcatgactgcatgactgc >SEQUENCE_1 1 9 7 15 20 21 16 26 31 37 38 ... 31 13 23 29 31 33 35 30 29 34 ... Extensões: .fa, .fasta, .fna Qualidade O que queremos dizer com qualidade ? >SEQUENCE_1 1 9 7 15 20 21 16 26 31 37 38 ... 31 13 23 29 31 33 35 30 29 34 ... Score Perro Qphred 10log10 (Perror ) 10 0.1 20 0.01 30 0.001 Formato fastq Formato fastq Qualidade codificada como um único caracter da tabela ASCII. sequence.fastq @SOLEXA01:1:1:27:1992#0/1 AGTACAAGAGACAGACATTCTTTTTTTTGACACAAG +SOLEXA01:1:1:27:1992#0/1 \FFFMXPYDDHJSUMVUJLPSNFRXZEDLNLHKHIT Extensões: .fastq SOLEXA01 the unique instrument name 1 flowcell lane 1 tile number within the flowcell lane 27 'x'-coordinate of the cluster within the tile 1992 'y'-coordinate of the cluster within the tile #0 index number for a multiplexed sample (0 for no indexing) /1 the member of a pair, /1 or /2 (paired-end or mate-pair reads only) P Qsolexa 10log10 ( error ) 1 Perror Qphred 10log10 (Perror ) Introdução ATRIBUINDO SIGNIFICADO ÀS SEQÜÊNCIAS Há uma referência? • Reseqüenciamento – Existem seqüências produzidas a partir de um genoma/transcriptoma da mesma espécie da amostra ou de uma espécie relacionada que podem ser usadas como referências. Alinhamento com a referência. • Seqüenciamento de novo – Não há seqüências que podem ser usadas como referências. Este tipo de seqüenciamento exigirá uma montagem (assembly) das seqüências, utilizando apenas os dados obtidos desse seqüenciamento. Alinhamento entre as seqüencias geradas, que permitirá a obtenção de um consenso. Seqüenciamento em pares • Seqüenciamento em pares mate-pair paired-ends (Korbel et al. , 2007) – – 36 bp Referência: >SOLEXA01:1:1:27:1992#0/1 >SOLEXA02:1:1:11:1992#0/1 36 bp ~ ~1928 128bp bpaa4928 ~428bp bp paired-ends mate-pair >SOLEXA01:1:1:27:1992#0/2 >SOLEXA02:1:1:11:1992#0/2 Alinhamento de Seqüências Em Bioinformática, alinhamento de seqüências é uma forma de dispor as seqüências de DNA, RNA, ou proteínas para identificar regiões de similaridade que podem ser conseqüência de relacionamentos funcionais, estruturais ou relações evolutivas entre elas. Significado Biológico do Alinhamento de Seqüências • Definição de 3 termos importantes: – identidade: refere-se à fração de aminoácidos ou nucleotídeos idênticos entre pares de seqüências após um alinhamento dessas seqüências; – similaridade: refere-se à fração de aminoácidos ou nucleotídeos similares (com propriedades físicoquímicas semelhantes – aminoácidos conservados) entre pares de seqüências após um alinhamento dessas seqüências; – homologia: representa uma relação evolutiva entre as seqüências; Identificação das seqüências • Reseqüenciamento – Alinhamento: Conjunto de Seqüências X Seqüências Referências (Ex.: Genoma) >seq1 gcagtcagtcacacatgtca... >seq2 cgcgcatgcgcgtactctat... >seq3 tcgagcatcatcagtcgtca... >seq4 tatgctttatagcgagtcat... ..... >chrX atcacacatgtcacatggtcag ggcatcagtcagtcagtcatgc gcgcgcatgcgcgtactctatc tcatgcgtcagtcatgcatgcg agcagtcatgcatgcatcgcac tgcatcatacgtcatgcatgaa ..... Objetivos: - Eliminar as sequência sem hit - Eliminar as sequência com hits múltiplos (ambiguous) - Guardar as sequência com hit único (unambiguous) Montagem de seqüências • Seqüenciamento de novo – Alinhamento: Conjunto de Seqüências X Conjunto de Seqüências Consensus : Seq A Seq B Seq C Seq D Seq E Seq F Seq G ACAGTACGACAGTACGACCAGTACGATAGCAGTACGATACGACCGA TCCAGTACGATAGCAGTACGATCAG GCACAGTACGACCAGTACGATACAGGAAC CAGGTACGATACGACGGACGGGG ACAGTACGACAGTACGAAAC GTACGACCAGTACGATACACT AACGACAGTACGAAACGGG TATAGGTACGATACGACGGAC Introdução ALGORITMOS PARA ALINHAMENTO DE SEQÜÊNCIAS Alinhamentos de Seqüências • Alinhamento Global (e.g. Algoritmo de Needleman-Wunsch) • As seqüências envolvidas devem ser alinhadas de um extremo ao outro. Adequado quando as seqüências possuem aproximadamente o mesmo tamanho. Seq X : C A T T A G C A G C C T | . | | | | | Seq Y : - A G T A – - A G C - - • Alinhamento Local (e.g. Algoritmo de Smith–Waterman) • Procura-se alinhar apenas as regiões mais similares, independente da localização relativa de cada região. Seq X [4,10]: T A G C A G C | | | | | Seq Y [3,7]: T A - - A G C Alinhamentos (Global/Local) (DNA/Protein) • FASTA (http://fasta.bioch.virginia.edu/fasta_www2/fasta_list2.shtml) • EMBOSS Align (http://www.ebi.ac.uk/Tools/emboss/align/) Problema • Transformar uma seqüência de caracteres em outra: – Operações: • inserção • deleção • substituição – Custo de operação: • Score de substituição • Penalidade para Gaps (inserção/deleção) – Qual é a quantidade de operações mínima ? – Como achar a séries de operações que vai garantir que usamos a quantidade de operações mínima ? Exemplo: Scores: Match: 2 Mismatch (S): -1 Gap(I): -2 Gap(D): -2 ACGT || G-GT Score (4-2-1): 1 2 matches: 4 1 gap: -2 1 mismatch: -1 Soluções • Método força bruta (busca exaustiva) – Praticamente inviável • Algoritmos de Programação Dinâmica – Smith-Waterman; Needleman-Wunsch; • SW é um algoritmo para achar o alinhamento mais provável com uma estrutura certa; • Por razões de tempo e espaço, não pode ser usado para alinhamento de sequências de larga escala; • Utilizações de aproximações (heurísticas); • Geralmente, quanto mais rápida for a aproximação, mais distante estará a resposta da solução “correta”; Matriz de Programação Dinâmica GG A > Score (-2-1): -3 1 gap: -2 1 mismatch: -1 GG A > Score(-1-2): -3 1 mismatch: -1 1 gap: -2 GG > Score(-4-2): -6 2 gaps: -4 1 gap: -2 A D(i, j) = max D(i-1, j-1) + s(xi, yj) (diagonal -> match/mismatch) D(i -1, j) + g (acima -> gap acima) D(i, j -1) + g (esquerda -> gap esquerda) Exemplo: Scores: Match: 2 Mismatch (S): -1 Gap(I): -2 Gap(D): -2 ACGT || G-GT D(i-1,j-1) D(i-1,j) D(i,j-1) D(i,j) traceback Score (4-2-1): 1 2 matches: 4 1 gap: -2 1 mismatch: -1 BLAST • Basic Local Alignment Search Tool • http://blast.ncbi.nlm.nih.gov/ • Heurística: dicionário de palavras E-value (S): número de diferentes alinhamentos com scores equivalentes ou melhores que S que são esperados ocorrer ao acaso em buscas em um banco de dados aleatório, do mesmo tamanho, com a mesma composição de bases; QUANTO MENOR... MELHOR!!! NÃO CONFUNDIR COM P-value (probabilidade) BLAT • BLAT—The BLAST-Like Alignment Tool • http://genome.ucsc.edu/ • Estruturalmente diferente (BLAST) – Além de outros pontos, o Blat constrói um índice do banco de dado de seqüências (database) (k-mers) e faz as buscas na seqüência a qual se deseja consultar (query); • • • • Blat é mais rápido, porém menos sensível; Possui código especialmente para lidar com intros em alinhamentos RNA/DNA; Comumente utilizado para localizar uma determinada seqüência no genoma ou determinar a estrutura de exons de um RNA; Pode ser utilizado para alinhar seqüências de Roche/454; Alinhamento de seqüências curtas • BLAST/BLAT são lentos demais para alinhar milhões de sequências (Illumina: 35bp100bp/SOLiD: ) • Premissas: – Não precisamos de um alinhamento sofisticado como SW; – Não precisamos de estatísticas com e-value; – Normalmente, sabemos a quantidade de mismatches máximas que queremos; Alinhamentos baseados em Hashing table • Idéia dos algoritmos de alinhamentos baseados em hashing tables: read: agtcgtat | ||| || genoma: acggcacgaggaactcgaatctgacgcatgcagtacta Se admitirmos 2 mismatches entre a minha sequência e o genoma. Se separados em 4 fragmentos, vão existir pelo menos 2 fragmentos sem mismatches ! seeds • 6 possibilidades de seeds, com no mínimo 2 fragmentos de match perfeito read: agtcgtat 1 agtc---- 2 --tcgt-- 3 ----gtat 4 ag--gt-- 5 --tc--at 6 ag----at Busca nas tabelas hash • São construídas 6 listas das palavras achadas nas leituras; • Para cada 6 possibilidades de palavra no genoma, procurar na lista determinada para ver se existe uma possibilidade de matching; • Como buscar sequências das palavras nas listas de palavras? • Algoritmo de hashing • Possui uma função capaz de transformar uma cadeia de caracteres (string) em valores (índices); Alinhamento de Seqüências com hashing • Softwares – ELAND (Anthony. J. Cox, 2006, unpublished data), – MAQ (Li H et al., 2008) – SOAP (Li R et al., 2008) • Características: – Para detectar mais mismatch, precisamos de mais seeds: • Mais mismatch => mais tempo – Algoritmo mais sofisticado para o alinhamento vai requerer mais tempo: • Indels/gaps => mais tempo • Problemas com hashing: – Memória e tempo • Precisa de CPUs múltiplos com muita memória. – Necessidade de métodos menos “glutões” Burrows–Wheeler Inverse Transformation BWT(T) => T • • Algoritmo usado normalmente em softwares de compressão (.bzip2) Em alinhadores de seqüências: – Bowtie (Langmead B et al., 2009) – BWA • • BWA-SHORT (Li H. and Durbin R., 2009) BWA-SW (Li H. and Durbin R., 2010) Transformation T => BWT(T) Input ^BANANA@ All Rotations Sort the Rows ^BANANA@ @^BANANA A@^BANAN NA@^BANA ANA@^BAN NANA@^BA ANANA@^B BANANA@^ ANANA@^B ANA@^BAN A@^BANAN BANANA@^ NANA@^BA NA@^BANA ^BANANA@ @^BANANA Output BNN^AA@A Input BNN^AA@A Add 1 Sort 1 Add 2 Sort 2 B N N ^ A A @ A A A A B N N ^ @ BA NA NA ^B AN AN @^ A@ AN AN A@ BA NA NA ^B @^ Add 3 Sort 3 Add 4 Sort 4 BAN NAN NA@ ^BA ANA ANA @^B A@^ ANA ANA A@^ BAN NAN NA@ ^BA @^B BANA NANA NA@^ ^BAN ANAN ANA@ @^BA A@^B ANAN ANA@ A@^B BANA NANA NA@^ ^BAN @^BA Add 5 Sort 5 Add 6 Sort 6 BANAN NANA@ NA@^B ^BANA ANANA ANA@^ @^BAN A@^BA ANANA ANA@^ A@^BA BANAN NANA@ NA@^B ^BANA @^BAN BANANA NANA@^ NA@^BA ^BANAN ANANA@ ANA@^B @^BANA A@^BAN ANANA@ ANA@^B A@^BAN BANANA NANA@^ NA@^BA ^BANAN @^BANA Add 7 Sort 7 Add 8 Sort 8 BANANA@ NANA@^B NA@^BAN ^BANANA ANANA@^ ANA@^BA @^BANAN A@^BANA ANANA@^ ANA@^BA A@^BANA BANANA@ NANA@^B NA@^BAN ^BANANA @^BANAN BANANA@^ NANA@^BA NA@^BANA ^BANANA@ ANANA@^B ANA@^BAN @^BANANA A@^BANAN ANANA@^B ANA@^BAN A@^BANAN BANANA@^ NANA@^BA NA@^BANA ^BANANA@ @^BANANA Output ^BANANA@ Bowtie • http://bowtie-bio.sourceforge.net – Burrows-Wheeler; • Reduz a quantidade de memória e de tempo para alinhar sequências curtas; • Podem ser usadas seqüências Illumina e SOLiD – Deficiências: • Não tem garantia de retornar todos os hits com mismatches (exceto com opção --best) • Limite de 3 mismatches (demora mais) • Reads longos reduz a velocidade • Não tem indels LF mapping Inexact Matching Introdução BOWTIE Bowtie Index Builder: bowtie-build Usage: bowtie-build [options]* <reference_in> <ebwt_outfile_base> reference_in comma-separated list of files with ref sequences ebwt_outfile_base write Ebwt data to files with this dir/basename Options: -f reference files are Fasta (default) -c reference sequences given on cmd line (as <seq_in>) -C/--color build a colorspace index -a/--noauto disable automatic -p/--bmax/--dcv memory-fitting -p/--packed use packed strings internally; slower, uses less mem -B build both letter- and colorspace indexes --bmax <int> max bucket sz for blockwise suffix-array builder --bmaxdivn <int> max bucket sz as divisor of ref len (default: 4) --dcv <int> diff-cover period for blockwise (default: 1024) --nodc disable diff-cover (algorithm becomes quadratic) -r/--noref don't build .3/.4.ebwt (packed reference) portion -3/--justref just build .3/.4.ebwt (packed reference) portion -o/--offrate <int> SA is sampled every 2^offRate BWT chars (default: 5) -t/--ftabchars <int> # of chars consumed in initial lookup (default: 10) --ntoa convert Ns in reference to As --seed <int> seed for random number generator -q/--quiet verbose output (for debugging) -h/--help print detailed description of tool and its options --usage print this usage message --version print version information and quit [/data/indexes]$ bowtie-build $BOWTIE_INDEXES=“/data/indexes” /data/hg18.fa hg18 hg18.1.ebwt hg18.2.ebwt hg18.3.ebwt hg18.4.ebwt hg18.rev.1.ebwt hg18.rev.2.ebwt Bowtie Index Inspector: bowtie-inspect Usage: bowtie-inspect [options]* <ebwt_base> <ebwt_base> ebwt filename minus trailing .1.ebwt/.2.ebwt By default, prints FASTA records of the indexed nucleotide sequences to standard out. With -n, just prints names. With -s, just prints a summary of the index parameters and sequences. With -e, preserves colors if applicable. Options: -a/--across <int> -n/--names -s/--summary -e/--ebwt-ref -v/--verbose -h/--help --help Number of characters across in FASTA output (default: 60) Print reference sequence names only Print summary incl. ref names, lengths, index properties Reconstruct reference from ebwt (slow, preserves colors) Verbose output (for debugging) print detailed description of tool and its options print this usage message [/data/indexes]$ bowtie-inspect -s hg18 Bowtie Aligner: bowtie Usage: bowtie [options]* <ebwt> {-1 <m1> -2 <m2> | --12 <r> | <s>} [<hit>] <m1> <m2> <r> <s> Comma-separated list of files containing upstream mates (or the sequences themselves, if -c is set) paired with mates in <m2> Comma-separated list of files containing downstream mates (or the sequences themselves if -c is set) paired with mates in <m1> Comma-separated list of files containing Crossbow-style reads. Can be a mixture of paired and unpaired. Specify "-" for stdin. Comma-separated list of files containing unpaired reads, or the sequences themselves, if -c is set. Specify "-" for stdin. File to write hits to (default: stdout) <hit> Input: -q -f -r -c -C -Q/--quals <file> --Q1/--Q2 <file> -s/--skip <int> -u/--qupto <int> -5/--trim5 <int> -3/--trim3 <int> --phred33-quals --phred64-quals --solexa-quals --solexa1.3-quals --integer-quals Alignment: -v <int> or -n/--seedmms <int> -e/--maqerr <int> -l/--seedlen <int> --nomaqround -I/--minins <int> -X/--maxins <int> --fr/--rf/--ff --nofw/--norc --maxbts <int> --pairtries <int> -y/--tryhard --chunkmbs <int> query input files are FASTQ .fq/.fastq (default) query input files are (multi-)FASTA .fa/.mfa query input files are raw one-sequence-per-line query sequences given on cmd line (as <mates>, <singles>) reads and index are in colorspace QV file(s) corresponding to CSFASTA inputs; use with -f -C same as -Q, but for mate files 1 and 2 respectively skip the first <int> reads/pairs in the input stop after first <int> reads/pairs (excl. skipped reads) trim <int> bases from 5' (left) end of reads trim <int> bases from 3' (right) end of reads input quals are Phred+33 (default) input quals are Phred+64 (same as --solexa1.3-quals) input quals are from GA Pipeline ver. < 1.3 input quals are from GA Pipeline ver. >= 1.3 qualities are given as space-separated integers (not ASCII) report end-to-end hits w/ <=v mismatches; ignore qualities max mismatches in seed (can be 0-3, default: -n 2) max sum of mismatch quals across alignment for -n (def: 70) seed length for -n (default: 28) disable Maq-like quality rounding for -n (nearest 10 <= 30) minimum insert size for paired-end alignment (default: 0) maximum insert size for paired-end alignment (default: 250) -1, -2 mates align fw/rev, rev/fw, fw/fw (default: --fr) do not align to forward/reverse-complement reference strand max # backtracks for -n 2/3 (default: 125, 800 for --best) max # attempts to find mate for anchor hit (default: 100) try hard to find valid alignments, at the expense of speed max megabytes of RAM for best-first search frames (def: 64) Reporting: -k <int> -a/--all -m <int> -M <int> --best --strata Output: -t/--time -B/--offbase <int> --quiet --refout --refidx --al <fname> --un <fname> --max <fname> --suppress <cols> --fullref Colorspace: --snpphred <int> or --snpfrac <dec> --col-cseq --col-cqual --col-keepends SAM: -S/--sam --mapq <int> --sam-nohead --sam-nosq --sam-RG <text> Performance: -o/--offrate <int> -p/--threads <int> --mm --shmem Other: --seed <int> --verbose --version -h/--help report up to <int> good alignments per read (default: 1) report all alignments per read (much slower than low -k) suppress all alignments if > <int> exist (def: no limit) like -m, but reports 1 random hit (MAPQ=0); requires --best hits guaranteed best stratum; ties broken by quality hits in sub-optimal strata aren't reported (requires --best) print wall-clock time taken by search phases leftmost ref offset = <int> in bowtie output (default: 0) print nothing but the alignments write alignments to files refXXXXX.map, 1 map per reference refer to ref. seqs by 0-based index rather than name write aligned reads/pairs to file(s) <fname> write unaligned reads/pairs to file(s) <fname> write reads/pairs over -m limit to file(s) <fname> suppresses given columns (comma-delim'ed) in default output write entire ref name (default: only up to 1st space) Phred penalty for SNP when decoding colorspace (def: 30) approx. fraction of SNP bases (e.g. 0.001); sets --snpphred print aligned colorspace seqs as colors, not decoded bases print original colorspace quals, not decoded quals keep nucleotides at extreme ends of decoded alignment write hits in SAM format default mapping quality (MAPQ) to print for SAM alignments supppress header lines (starting with @) for SAM output supppress @SQ header lines for SAM output add <text> (usually "lab=value") to @RG line of SAM header override offrate of index; must be >= index's offrate number of alignment threads to launch (default: 1) use memory-mapped I/O for index; many 'bowtie's can share use shared mem for index; many 'bowtie's can share seed for random number generator verbose output (for debugging) print version information and quit print this usage message [/data]$ bowtie hg18 > -c "AGGAATTGCGGGAGGAAAATGGGTAGTTAGCTATTT,AGGGCCCATAGCAACAGATTTCTAGCCCCCTGAAGA" > --best --strata --tryhard -m 1 Conclusão CONSIDERAÇÕES FINAIS Conclusão • Alinhamento global: Alinhamento de 2 sequências com mesmo tamanho: – Algoritmo de Needleman-Wunsch • Alinhamento local: Alinhamento de 2 seqüências, uma curta e a outra muito mas longa: – Algoritmo de Smith-Waterman • Encontram o alinhamento mais provável; • Lentos para alinhamentos contra o genoma inteiro; • Baseados em um modelo matemático, os outros, são baseados em heurísticas, sem prova formal de obtenção da solução ótima; Conclusão • BLAST: Utiliza heurísticas (k-tuples); – Maior sensibilidade; – Possui estatísticas, o E-value além do Score; – Pode ser usado para Sanger (megablast), mas é muito lento com seqüências Roche/454; • BLAT: Utiliza heurísticas (semelhante ao BLAST - índice do banco de dados na memória) – Blat é mais rápido, porém menos sensível; – Lida melhor com intros em alinhamentos RNA/DNA, bom para determinar estrutura de exons de RNAs; – Pode ser utilizado para alinhar seqüências de Roche/454; Conclusão • Next-Generation Sequence Alignments – Primeiros programas: Hashing • Illumina e SOLiD; – ELAND (Anthony. J. Cox, 2006, unpublished data), – MAQ (Li H et al., 2008) – SOAP (Li R et al., 2008) • Requerem muita memória; • O nível de sensibilidade depende do programa e das opções; – A partir de 2009: Burrows-Wheeler • Illumina e SOLiD; – Bowtie (Langmead B et al., 2009) – BWA (Li H. and Durbin R., 2009) • Requerem menos memória e são mais rápidos; Conclusão rapidez (tempo/memória) sensibilidade • Novas plataformas de seqüenciamento irão surgir exigindo novos programas de alinhamento; • Não há um programa perfeito para todas as situações; • É importante entender como os programas funcionam e como a configuração pode influenciar os resultados; – Heurística utilizada; – Argumentos; Visualização • IGV (Genome Browser) – http://www.broadinstitute.org/software/igv/home – Formatos de arquivos: • BAM, BED, Birdsuite Files, CBS, CN, Cytoband, FASTA, GCT, genePred, GFF, GISTIC, HDF5, IGV, LOH, MAF, PSL, MUT, RES, SAM, Sample Information, SEG, SNP, TAB, TDF, Track Line, Type Line, WIG Daniel Guariz Pinheiro [email protected] Fim EXERCÍCIO Bowtie • http://lgmb.fmrp.usp.br/~daniel/downloads/cvbioinfo2011/ – cvbioinfo2011_p1.fa – cvbioinfo2011_p2.fa