forked from chrovis/cljam
-
Notifications
You must be signed in to change notification settings - Fork 0
/
t_dedupe.clj
64 lines (58 loc) · 4.61 KB
/
t_dedupe.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
(ns cljam.t-dedupe
(:require [clojure.test :refer :all]
[cljam.t-common :refer :all]
[cljam.io :as cio]
[cljam.bam :as bam]
[cljam.dedupe :as dedupe]))
(deftest simple-pe-dedupe
(with-before-after {:before (prepare-cache!)
:after (clean-cache!)}
(let [out-file (str temp-dir "/deduped.bam")]
(is (not-throw? (dedupe/dedupe dedupe-before-bam-file out-file)))
(is (same-bam-file? out-file dedupe-after-bam-file)))))
(deftest simple-pe-dedupe-xform
(is (= (into #{}
(dedupe/dedupe-xform)
[{:qname "r1" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIII"}
{:qname "r2" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIIH"}
{:qname "r1" :flag 147 :rname "ref" :pos 10 :mapq 60 :rnext "=" :pnext 1 :tlen -5 :qual "IIIII"}])
#{{:qname "r1" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIII"}
{:qname "r1" :flag 147 :rname "ref" :pos 10 :mapq 60 :rnext "=" :pnext 1 :tlen -5 :qual "IIIII"}}))
(is (= (into #{}
(dedupe/dedupe-xform)
[{:qname "r1" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIIH"}
{:qname "r2" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIII"}
{:qname "r1" :flag 147 :rname "ref" :pos 10 :mapq 60 :rnext "=" :pnext 1 :tlen -5 :qual "IIIII"}])
#{{:qname "r2" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIII"}}))
(is (= (into #{}
(dedupe/dedupe-xform)
[{:qname "r1" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIII"}
{:qname "r2" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 11 :tlen 6 :qual "IIIIH"}
{:qname "r1" :flag 147 :rname "ref" :pos 10 :mapq 60 :rnext "=" :pnext 1 :tlen -5 :qual "IIIII"}
{:qname "r2" :flag 147 :rname "ref" :pos 11 :mapq 60 :rnext "=" :pnext 1 :tlen -6 :qual "IIIII"}])
#{{:qname "r1" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIII"}
{:qname "r2" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 11 :tlen 6 :qual "IIIIH"}
{:qname "r1" :flag 147 :rname "ref" :pos 10 :mapq 60 :rnext "=" :pnext 1 :tlen -5 :qual "IIIII"}
{:qname "r2" :flag 147 :rname "ref" :pos 11 :mapq 60 :rnext "=" :pnext 1 :tlen -6 :qual "IIIII"}}))
(is (= (into #{}
(dedupe/dedupe-xform)
[{:qname "r1" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIII"}
{:qname "r2" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIIH"}
{:qname "r4" :flag 4 :rname "ref" :pos 1 :mapq 0 :rnext "*" :pnext 0 :tlen 0 :qual "IIIII"}
{:qname "r1" :flag 147 :rname "ref" :pos 10 :mapq 60 :rnext "=" :pnext 1 :tlen -5 :qual "IIIII"}
{:qname "r2" :flag 147 :rname "ref" :pos 10 :mapq 60 :rnext "=" :pnext 1 :tlen -5 :qual "IIIII"}
{:qname "r3" :flag 99 :rname "ref" :pos 10 :mapq 60 :rnext "ref2" :pnext 1 :tlen 0 :qual "IIIII"}
{:qname "r3" :flag 147 :rname "ref2" :pos 1 :mapq 60 :rnext "ref" :pnext 10 :tlen 0 :qual "IIIII"}])
#{{:qname "r4" :flag 4 :rname "ref" :pos 1 :mapq 0 :rnext "*" :pnext 0 :tlen 0 :qual "IIIII"}
{:qname "r1" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIII"}
{:qname "r3" :flag 99 :rname "ref" :pos 10 :mapq 60 :rnext "ref2" :pnext 1 :tlen 0 :qual "IIIII"}
{:qname "r1" :flag 147 :rname "ref" :pos 10 :mapq 60 :rnext "=" :pnext 1 :tlen -5 :qual "IIIII"}
{:qname "r3" :flag 147 :rname "ref2" :pos 1 :mapq 60 :rnext "ref" :pnext 10 :tlen 0 :qual "IIIII"}}))
(is (= (into #{}
(dedupe/dedupe-xform :remove-dups false)
[{:qname "r1" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIII"}
{:qname "r2" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIIH"}
{:qname "r1" :flag 147 :rname "ref" :pos 10 :mapq 60 :rnext "=" :pnext 1 :tlen -5 :qual "IIIII"}])
#{{:qname "r1" :flag 99 :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIII"}
{:qname "r2" :flag (+ 99 1024) :rname "ref" :pos 1 :mapq 60 :rnext "=" :pnext 10 :tlen 5 :qual "IIIIH"}
{:qname "r1" :flag 147 :rname "ref" :pos 10 :mapq 60 :rnext "=" :pnext 1 :tlen -5 :qual "IIIII"}})))