Mapping Sequencing Reads to a Reference Genome High Throughput Sequencing RN Example applications: Sequencing a genome (DN) Sequencing a transcriptome and gene expression studies (RN) ChIP (chromatin immunoprecipitation) Example platforms: Illumina SOLiD G- G-
Sequencing Output Hundreds of millions of sequencing reads, each ~ nts in length We need to map each read to the genome, i.e., determine the region of the genome each read corresponds to - CGTGTCGTGTCGCTTCGTTCGTTGCGTCGTGTGTCTCGTGT - CCGCGCGTCTCTCGTGTCGTGGTTCGTGTCTGTGGTGT - TTTGTCGTGTGCTGGCCCCTTCTTCTTCTTGGCTC - TGGGGCGTCGGGTTCTGTTTCGGTGTCGGCGTTTGCGTCG - GGCTCGTGCGTTCGTTGCGTGCCGCGCTTCGTCGTCGT - GCGCGGGTCTGGCGCGGCTGCGTCGTCGTCGTCGTCGT - TCGGTCTCGTCGGTGTCTGCGCGTCTCTGGGGCTGGTGGGCTG - CTCCTCCGGCGTGTCGCGTCGTTCGGTCTGCGTTGCGTCGT - CCGTTGCGTGTCGCGTCGTCGTGTTTGGTCGCTGTTCGTGT - TCGGCGCGTTCGCGTGTGCTGCTGGCCTGTTGCGTTGCG - GGCGTCTGCTGTCTCGTCTCGCGTTCGTTGCGTCGTTGCG - CGCCGTCGTCTTGCTCGTGCTGTCGTTGCTGTCTTGCGT - CGTGTCGTGTCGCTTCGTTCGTTGCGTCGTGTGTCTCGTGT - CCGCGCGTCTCTCGTGTCGTGGTTCGTGTCTGTGGTGT - TTTGTCGTGTGCTGGCCCCTTCTTCTTCTTGGCTC - TGGGGCGTCGGGTTCTGTTTCGGTGTCGGCGTTTGCGTCG - GGCTCGTGCGTTCGTTGCGTGCCGCGCTTCGTCGTCGT - GCGCGGGTCTGGCGCGGCTGCGTCGTCGTCGTCGTCGT - TCGGTCTCGTCGGTGTCTGCGCGTCTCTGGGGCTGGTGGGCTG - CTCCTCCGGCGTGTCGCGTCGTTCGGTCTGCGTTGCGTCGT - CCGTTGCGTGTCGCGTCGTCGTGTTTGGTCGCTGTTCGTGT - TCGGCGCGTTCGCGTGTGCTGCTGGCCTGTTGCGTTGCG - GGCGTCTGCTGTCTCGTCTCGCGTTCGTTGCGTCGTTGCG - CGCCGTCGTCTTGCTCGTGCTGTCGTTGCTGTCTTGCGT - GTGCGTGTCGTTTGCCTGCTCGTTGTCTGCGTGTCGTCGTC - TCGGCGTGTCTCGTGTTTTCTCGCGGCGCCCTTCTGC - CGGTGGGTCGTGTCGTGTCGTGCTCGGTCTGCGTGTCGTG - GCGTGCGGCGTTGTTGCGCGTTCGTCGTGTTGCGTGT - CCTTTCGGCTCTTCCGGTTCTCTCTCTCTGTGGCTTCGTCG - TCCGCGCTCGTGTCGCGCGCGCTTGCGCGCCCGTGTGCTCC - GCTGGTTTCGGCGCGTTGCGCTGTGCTTTCGGCTGCGTC - GGTCGGTCGTCGTCGGTCGTGCGCGTCGTGCTTGTCG - GCGTCGTGGTTCGGTGCGTCTGTGCGGTCGTGTCGT - TTTTTCGCGCGTGTCGTCGTGTCGTGTCGTGCGTTTCT - GTCGTGTTCTGGCGTCTCTTCTCGGCGTCGTCGTCCGTG - TTTTTCGCGTCGTGCGCTTGCGTTGCGTGGGTCGTG - GTGCGTGTCGTTTGCCTGCTCGTTGTCTGCGTGTCGTCGTC - TCGGCGTGTCTCGTGTTTTCTCGCGGCGCCCTTCTGC - CGGTGGGTCGTGTCGTGTCGTGCTCGGTCTGCGTGTCGTG - GCGTGCGGCGTTGTTGCGCGTTCGTCGTGTTGCGTGT - CCTTTCGGCTCTTCCGGTTCTCTCTCTCTGTGGCTTCGTCG - TCCGCGCTCGTGTCGCGCGCGCTTGCGCGCCCGTGTGCTCC - GCTGGTTTCGGCGCGTTGCGCTGTGCTTTCGGCTGCGTC - GGTCGGTCGTCGTCGGTCGTGCGCGTCGTGCTTGTCG - GCGTCGTGGTTCGGTGCGTCTGTGCGGTCGTGTCGT - TTTTTCGCGCGTGTCGTCGTGTCGTGTCGTGCGTTTCT - GTCGTGTTCTGGCGTCTCTTCTCGGCGTCGTCGTCCGTG - TTTTTCGCGTCGTGCGCTTGCGTTGCGTGGGTCGTG G- G- CGTGTGCGTCTCGTTTGGGCGCTTGCGTTGCGGCTTGCCTCGT G- G-
G- >CGTGTGCGTCTCGTTTGGGCGCTTGCGTTGCGGCTTGCCTCG >GCGTTGTCTTTCGCTTTCGGCTCGGTCGCGGCGTTTGCGTTTTGCTG >CCTCGTTTTCGTCTCTGCTCGTGGCGGTGTGTTGCGGCGCGTC... >CGTTTGCCTGCTTCGGCGGCTCTCGGCTCGCTTTGCGCTTGCGT >CGGCTTGCGCTTGCGTGCTTTGCGTTTCGTTTGTCTCGGCGCTTC >TTTCGCGGGTGTCTTCGTCTTTGCGCGTTTCGGCCGTTTTTGCTTTGCTTT >GGCGTTGGCGGTTCGGCGCGTGCGCCGTTGGCTCGCCGTGCTCG >CGCGTCGCGCGCGTCGCGGTCGCGCGTGCGCGGCTGTCGTTCGGCGCCG >TGCGGCTTGGGTGTCTGGTTTGCTTTCGGCGCGTGCGCGTCG >GCGTTGTCTTTCGCTTTCGGCTCGGTCGCGGCGTTTGCGTTTTGCT >CGCGTCGCGCGCGTCGCGGTCGCGCGTGCGCGGCTGTCGTTCGGCGCCGTCGC >TGCGCCGTGTGGTTGCTGCTCGTTCGCTTTCTGCGTCTGGTCTGC >TGCGGCTTGGGTGTCTGGTTTGCTTTCGGCGCGTGCGCG >CCTCGTTTTCGTCTCTGCTCGTGGCGGTGTGTTGCGGCGCGTCC >CGTGTGCGTCTCGTTTGGGCGCTTGCGTTGCGGCTTGCCTCG >TTTCGCGGGTGTCTTCGTCTTTGCGCGTTTCGGCCGTTTTTGCTTTGCTTT >GGCGTTGGCGGTTCGGCGCGTGCGCCGTTGGCTCGCCGTGCTCGTCGGT G- Mapping to Reference Genome CGTGTGCGTCTCGTTTGGGCGCTTGCGTTGCGGCTTGCCTCGCGTG TGTCTGGTTGCGGTGCTTGCGTCTCGTGTCGTTTGCGTGTCGTGT GCTGTTCGTGTGTCGGCTGTCGCGCTGGCTGCGTCGTTCGGCCGCGTCT GGTGCCTTGTGTGTTTGCGCGCGGGGGGGCTCTCTGTGCTGGTGCGT GTGCGGGGTCTCTCTGGGGTCTCGGGGTCTCTCTGGCTCTCGGGGTCTCG GGGCTCTCCGTGGGCTGGGCGTTTTGCGTTGCTCGTTGC Reference Genome TTCGGCCGCGTCTGGTGCCTTGTGTGTTTGCGCGCGGGGGG Sequencing Read G- Burrows-Wheeler Transform G-
[,) Thus, the substring G- G- is in the reference sequence at indices {,,,,,} [,) G- [,) G-
[,) [,) Thus, the substring C C is in the reference sequence at indices {,} G- [,) [,) C G- [,) [,) C G- [,) [,) [,) Thus, the substring C is in the reference sequence at indices {,} G-
[,) C [,) [,) G- [,) [,) C [,) Each step of the search must be fast! O() time. G- Precompute Helper Information Returns the number of nucleotide characters in the BWT that are lexographically less than c. public int getnumbercharacterslessthan(char c); getnumbercharacterslessthan('$'); returns getnumbercharacterslessthan('c'); returns getnumbercharacterslessthan('t'); returns Returns the number of occurrences of nucleotide character c in the BWT up to but not including index i. public int getnumberoccurrencespriortoindex(char c, int i); getnumberoccurrencespriortoindex('',); returns getnumberoccurrencespriortoindex('',); returns How can we compute this? getnumberoccurrencespriortoindex('t',); returns G- G- C
nother Example C How can we compute these? G- TT T TT TT G- Substring Not in the Reference with Errors GTC C TC GTC G- GCTGGTTTCGGCGCTTGCGTTGTCTCTCTGGGCGTTCTGTCTGCCTGTC Suppose we tried to map a read of length nts to a reference genome and found that the read did not map. Perhaps the read contains one or two errors from the sequencing process. Break the read up into three pieces and map each of the three pieces to the reference. If none of the three pieces map, then there are at least three errors in the read. If one or more of the pieces map, then we use that mapping to perform a fast alignment. G-