diff --git a/test-resources/dedupe_after.bam b/test-resources/dedupe_after.bam new file mode 100644 index 00000000..f10ef7af Binary files /dev/null and b/test-resources/dedupe_after.bam differ diff --git a/test-resources/dedupe_before.bam b/test-resources/dedupe_before.bam new file mode 100644 index 00000000..18670661 Binary files /dev/null and b/test-resources/dedupe_before.bam differ diff --git a/test-resources/dedupe_before.bam.bai b/test-resources/dedupe_before.bam.bai new file mode 100644 index 00000000..21a8bca6 Binary files /dev/null and b/test-resources/dedupe_before.bam.bai differ diff --git a/test/cljam/t_common.clj b/test/cljam/t_common.clj index ad17bfee..a793ba4d 100644 --- a/test/cljam/t_common.clj +++ b/test/cljam/t_common.clj @@ -107,6 +107,9 @@ (def medium-bam-file "test-resources/medium.bam") (def large-bam-file (cavia/resource mycavia "large.bam")) +(def dedupe-before-bam-file "test-resources/dedupe_before.bam") +(def dedupe-after-bam-file "test-resources/dedupe_after.bam") + ;; ### BAM index files (def test-bai-file "test-resources/test.sorted.bam.bai") @@ -377,6 +380,15 @@ [f1 f2] (= (digest/sha1 (file f1)) (digest/sha1 (file f2)))) +(defn same-bam-file? + [f1 f2] + (with-open [r1 (bam/reader f1) + r2 (bam/reader f2)] + (and (= (io/read-header r1) + (io/read-header r2)) + (= (io/read-alignments r1 {}) + (io/read-alignments r2 {}))))) + ;;;; FASTA (def test-fa-header [{:desc "", :name "ref", :offset 5} {:desc "", :name "ref2", :offset 57}]) diff --git a/test/cljam/t_dedupe.clj b/test/cljam/t_dedupe.clj index 69583a43..38ded493 100644 --- a/test/cljam/t_dedupe.clj +++ b/test/cljam/t_dedupe.clj @@ -8,12 +8,9 @@ (deftest simple-pe-dedupe (with-before-after {:before (prepare-cache!) :after (clean-cache!)} - ;; TODO: need bam-file include PCR duplications - (let [in-file test-sorted-bam-file - out-file (str temp-dir "/deduped.bam")] - (is (not-throw? (dedupe/dedupe in-file out-file))) - ;; TODO: check alignments of out-file - ))) + (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 #{}