250 likes | 415 Views
Sequence Alignment in DNA. Presented By: Lalchand Gaurav Jain. Under the Guidance of : Prof . Kolin Paul. Agenda. Application Domain & objective General Alignment Procedure Scope of parallelism in BWT Selection sort and quick sort implementation Bwt Implementation on GPU
E N D
Sequence Alignment in DNA Presented By: Lalchand Gaurav Jain Under the Guidance of : Prof . Kolin Paul
Agenda • Application Domain & objective • General Alignment Procedure • Scope of parallelism in BWT • Selection sort and quick sort implementation • BwtImplementation on GPU • Comparative study
Time-Line • Application Domain & objective • General Alignment Procedure • Scope of parallelism in BWT • Selection sort and quick sort implementation • BwtImplementation on GPU • Comparative study
Time-Line • Application Domain & objective • General Alignment Procedure • Scope of parallelism in BWT • Selection sort and quick sort implementation • BwtImplementation on GPU • Comparative study
Time-Line • Application Domain & objective • General Alignment Procedure • Scope of parallelism in BWT • Selection sort and quick sort implementation • Bwt Implementation on GPU • Comparative study
Time-Line • Application Domain & objective • General Alignment Procedure • Scope of parallelism in BWT • Selection sort and quick sort implementation • BwtImplementation on GPU • Comparative study
Time-Line • Application Domain & objective • General Alignment Procedure • Scope of parallelism in BWT • Selection sort and quick sort implementation • Bwt Implementation on GPU • Comparative study
Application Domain & Objective • Analyzing Gene expression • Mapping variations between individuals • Mapping homologous Proteins • Assembling Genome of Organism To present an efficient implementation (Specially parallel) that effectively aids the problem of searching for short sequences in DNA.
Basic Alignment Procedure To be parallelized Genome Indexing BWT Algorithm Intermediate size :10^18 Mapper Reads BWT : Bwt[i] = Ref(SA[i]-1) {3 GB } Suffix Array : 15GB for human genome {3 billion * 4 B + 3 GB genome} Parallelized O(logG) Searching { Location,Occurance}
Scope of Parallelism in BWT • With BWT , w length string can be find in O(w) time. • The BWT is closely related to the suffix array • Lexicographic sorted list of all suffixes in a genome. • Bwt[i] = ref [ SA[i] -1] {Bwt[i] = $ when S(i) =1} BWT
Implementation of Bwt using Selection Sort OpenMp Initial Step - 1
Initial Step - 2 • Implementation of Bwt using Selection Sort • OpenMp • Implementation of Bwt using Quick Sort • OpenMp
Initial Step - 3 • Implementation of Bwt using Selection Sort • OpenMp • Implementation of Bwt using Quick Sort • OpenMp • Implementing Bwt on GPU • Bitonic sort
Why Bitonic ??... • Concatenations of two sub-sequences sorted in opposite directions • A cyclic shift of elements • Implemented by comparator networks • Work in place • No Communication • Naturally suitable for SIMD architectures • Each thread executing same code but different data • O(log2n) time and O(nlog2n) work
Burrows-Wheeler Transform Basic String Sorting Algorithm Input: A C G T A $ indices: 0 1 2 3 4 5 indices: 5 4 0 1 2 3 Output: A T $ A C G
Steps Performed • Copy Genome from host to device Memory • Indices Array for pointing Reference string • Compare Suffix based on indices array • Swap indices accordingly. • Sorts n elements in log2n Kernel calls. • Each of O(1) time & O(n) work • One more step for BWT from suffix array • Bwt[i] = ref [ SA[i] -1] {Bwt[i] = $ when S(i)= 1}
CPU – GPU Interaction (BWT) Initialise_indices_array O(log2G) Searching Genome Bitonic_sort_step Cuda_Memcpy & kernel call CpuBitonic Suffix Array Suffix_compare Suffix - > BWT
Evaluation Bwtwith Bitonic Sort
Comparison between Expected (GPU) and Exact result (Quick_Sort_time) * 2 ) / 240
References : • Fast in-place sorting with CUDA based on bitonicsort :Hagen Peters • Rapid Parallel Genome Indexing with MapReduce :Rohith K. Menon • M. Burrows and D. Wheeler. A Block-Sorting Lossless Data Compression Algorithm. Technical report • Lightweight Data Indexing and Compression in External Memory :Paolo Ferragina • Parallel Lossless Data Compression on the GPU : Yao Zhang
Future Work • Run in limited memory environments • Compute in parts • To use the memory hierarchy of GPU • Sort keys are cached in register or shared memory • Long runs of repeated character • Position indicating end of run • Can only sort sequence,with length power of 2 • 2k+1 2k+1 • Padding with largest symbol