Fishing in a sample to discard irrelevant RNA-Seq reads Paola - - PowerPoint PPT Presentation

ā–¶
fishing in a sample to discard irrelevant rna seq reads
SMART_READER_LITE
LIVE PREVIEW

Fishing in a sample to discard irrelevant RNA-Seq reads Paola - - PowerPoint PPT Presentation

Shark Fishing in a sample to discard irrelevant RNA-Seq reads Paola Bonizzoni, Tamara Ceccato, Gianluca Della Vedova, Luca Denti, Yuri Pirola , Marco Previtali and Raffaella Rizzi DISCo - Univ. degli Studi di Milano-Bicocca DSB 2020 /


slide-1
SLIDE 1

Shark šŸ¦‰ Fishing in a sample to discard irrelevant RNA-Seq reads

Paola Bonizzoni, Tamara Ceccato, Gianluca Della Vedova, Luca Denti, Yuri Pirola, Marco Previtali and Raffaella Rizzi DISCo - Univ. degli Studi di Milano-Bicocca DSB 2020 / Rennes / Feb. 4+5, 2020

slide-2
SLIDE 2

The problem

Sequencing technologies produce a lot of data Sequencing datasets are piling up in public repositories What if I want to analyze only a subset of genes (RNA- Seq studies)? Notice: aligning RNA-Seq reads to the genome is not an easy task!

2

slide-3
SLIDE 3

Outline

The Gene Assignment Problem The Algorithm Experimental results: Synthetic dataset Reproduction of real-world analyses

3

slide-4
SLIDE 4

The Gene Assignment Problem

Given: a set of RNA-Seq reads a set of genes (genomic sequences) two parameters and Compute s.t. for each : the set of bases of "covered" by at least a -mer shared with has cardinality at least such a cardinality is maximum (w.r.t. other ).

S G k ∈ N+ Ļ„ ∈ [0, 1] {S1, … , S|G|} s ∈ Si āŠ† S s k gi Ļ„ ā‹… |s| gj ∈ G

4

slide-5
SLIDE 5

The Gene Assignment Problem - Goals

We want to be: alignment-free (reduce potential alignment biases) highly sensitive (almost no reads are lost) as specic as possible (the dataset is reduced as much as possible) very fast use a modest amount of memory

5

slide-6
SLIDE 6

The algorithm

High-level idea:

  • 1. Index the -mers of gene sequences in
  • 2. Assign each read

to its set of genes (if any)

k G s ∈ S

6

slide-7
SLIDE 7

The algorithm - Indexing genes

Index : a Bloom lter storing -mers of (with a single hash function ) an integer vector storing indices of genes associated to each -mer a bit-vector providing a mapping between and by "tagging" the boundaries among the different subsets of genes in

⟨BF, I, P⟩ BF k G H I k P BF I I

7

slide-8
SLIDE 8

The algorithm - Indexing genes

8

slide-9
SLIDE 9

The algorithm - Indexing genes

9

slide-10
SLIDE 10

The algorithm - How to build the index?

  • 1. Scan each -mer of the gene sequences in

and store them in (using a single hash function )

  • 2. Associate an empty list

to each 1 in

  • 3. Re-scan each -mer of each

and add to the list associated to the 1 at position in

  • 4. Copy (preserving the order) all the lists

into while tagging the boundaries between lists with a 1 in

k G BF H Lv BF k e gi ∈ G i Lv H(e) BF Lv I P

10

slide-11
SLIDE 11

The algorithm - Assigning reads

To assign each read

  • 1. For each -mer

:

  • 1. Query the index to nd the genes containing

(FP are possible due to )

  • 2. For each gene, compute how many bases are

covered by but not by previous -mers

  • 2. Output the IDs of genes that cover the largest number
  • f bases of if

bases

s ∈ S k e ∈ s e BF e k s ≄ Ļ„ ā‹… |s|

11

slide-12
SLIDE 12

Implementation

Shark is available at

https://github.com/AlgoLab/shark Binaries through Bioconda

conda config add channels bioconda conda install shark

Libraries:

sdsllite for DS

Intel TBB for multi-threading

12

slide-13
SLIDE 13

Does it work?

13

slide-14
SLIDE 14

Experimental results

How and affect sensitivity and specicity? → synthetic datasets Is Shark useful? Does it change the results? Does it make analyses faster and/or less memory hungry? → replication of "real-world" analyses

k Ļ„

14

slide-15
SLIDE 15

Synthetic datasets - Data

Input data: RNA-Seq sample of 10M 100bp-long reads on chr1, 17, 21

  • mers covering bases with PHRED quality score

have been discarded, with ( means no lter) 10 different instances selecting random subsets of 100 genes each Accuracy measures:

k ∈ {13, 17, 23, 27, 31} Ļ„ ∈ {0.2, 0.4, 0.6, 0.8} k < q q ∈ {0, 10, 20} q = 0 Recall = TP/(TP + FN) Precision = TP/(TP + FP)

15

slide-16
SLIDE 16

Synthetic datasets - Results

16

slide-17
SLIDE 17

Synthetic datasets - Results

Good compromise: → .

k = 17, Ļ„ = 0.6, q = 10 R = 99.46%, P = 28.8%

17

slide-18
SLIDE 18

Synthetic datasets - Results

Memory usage was always below 2.1GB

18

slide-19
SLIDE 19

Replication of real-world analyses

19

slide-20
SLIDE 20

Replication of real-world analyses

Aim: Differential analysis of AS events Input data: 6 PE RNA-Seq samples (~180M 101bp-long reads) 82 distinct genes with 83 exp. validated exon skipping events Pipelines: SplAdder rMATS SUPPA2

20

slide-21
SLIDE 21

Replication - Transcript quantication

21

slide-22
SLIDE 22

Replication - Diff. expressed events

Pipeline Validated events Time [min] Memory [GB] All p-value < 0.05 rMATS 78 63 308 33.9 Shark + rMATS 78 63 142 33.9 SplAdder 56 NA 796 33.9 Shark + SplAdder 56 NA 295 33.9 SUPPA2 66 37 65 4.3 Shark + SUPPA2 66 43 34 4.4

Thanks to Shark we can also decrease the max memory consumption to less than 16GB w/o affecting running times (data not shown).

22

slide-23
SLIDE 23

Speeding-up assembly-rst analyses

23

slide-24
SLIDE 24

Speeding-up assembly-rst analyses

Preliminary results: Almost no changes in stat. signif. results Signicant speed-up (from ~25h to ~3h) Signicantly less memory (from ~12.5GB to ~5.5GB) Ongoing work: Manual inspection of results

24

slide-25
SLIDE 25

Conclusions

Shark speeds up analyses by focusing on reads likely sequenced from

genes of interest Highly sensitive (almost no reads are lost) Good precision (dataset is substantially reduced) For more details → preprint on Ongoing work: Algorithmic solution is simple (but effective). Can we do better? Clearly not suitable for all kind of analyses (i.e., transcriptome-wide analyses). But, if we want to focus on specic genes, do results change?

25

slide-26
SLIDE 26

Thanks!

26

slide-27
SLIDE 27

27

slide-28
SLIDE 28

Synthetic datasets - Results

28