Sequence Alignment in DNA Under the Guidance of : Prof. Kolin Paul Presented By: Lalchand Gaurav Jain
Application Domain & objective General Alignment Procedure Scope of parallelism in BWT Selection sort and quick sort implementation Bwt Implementation on GPU Comparative study Agenda
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 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 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 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 Bwt Implementation on GPU Comparative study Time-Line
Application Domain & Objective To present an efficient implementation (Specially parallel) that effectively aids the problem of searching for short sequences in DNA. Analyzing Gene expression Mapping variations between individuals Mapping homologous Proteins Assembling Genome of Organism
Indexing { Location,Occurance} Reads Basic Alignment Procedure To be parallelized Parallelized Intermediate size :10^18 Genome O(logG) Searching
10 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
Selection Sort - Openmp
● Implementation of Bwt using Selection Sort – OpenMp ● Implementation of Bwt using Quick Sort – OpenMp Initial Step - 2
Quick Sort - Openmp
● Implementation of Bwt using Selection Sort – OpenMp ● Implementation of Bwt using Quick Sort – OpenMp ● Implementing Bwt on GPU – Bitonic sort Initial Step - 3
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(log 2 n) time and O(nlog 2 n) work
18 Burrows-Wheeler Transform 5$ACGTA 4A$ACGT 3TA$ACG 2GTA$AC 1CGTA$A 0ACGTA$ Input: A C G T A $ Output: A T $ A C G Basic String Sorting Algorithm indices: $ACGTA 4A$ACGT 0ACGTA$ 1CGTA$A 2GTA$AC 3TA$ACG indices:
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 log 2 n 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}
Cuda_Memcpy & kernel call CPU – GPU Interaction (BWT) Genome O(log 2 G) Searching Suffix Array
Evaluation Bwt with Bitonic Sort
Comparison between Expected (GPU) and Exact result (Quick_Sort_time) * 2 ) / 240
References : Fast in-place sorting with CUDA based on bitonic sort :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
Thanks
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 – 2 k +1 2 k+1 – Padding with largest symbol