From 022f0fe4e73e2952259a27c75ffe5d383f45ac52 Mon Sep 17 00:00:00 2001 From: Rob Patro Date: Sat, 17 Aug 2024 14:19:34 -0400 Subject: [PATCH 1/2] change def of supplementary --- src/lib.rs | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 7458c12..ebd2b79 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -557,9 +557,7 @@ impl Aligner { // Check options pub fn check_opts(&self) -> Result<(), &'static str> { - let result = unsafe { - mm_check_opt(&self.idxopt, &self.mapopt) - }; + let result = unsafe { mm_check_opt(&self.idxopt, &self.mapopt) }; if result == 0 { Ok(()) @@ -568,7 +566,6 @@ impl Aligner { } } - /// Set index parameters for minimap2 using builder pattern /// Creates the index as well with the given number of threads (set at struct creation). /// You must set the number of threads before calling this function. @@ -890,8 +887,8 @@ impl Aligner { (*((*(self.idx.unwrap())).seq.offset(reg.rid as isize))).name; let is_primary = reg.parent == reg.id; - let is_supplementary = reg.sam_pri() == 0; - + let is_supplementary = (reg.parent == reg.id && !reg.sam_pri()); + // todo holy heck this code is ugly let alignment = if !reg.p.is_null() { let p = &*reg.p; @@ -1492,9 +1489,7 @@ mod tests { aligner.check_opts().expect("Opts are invalid"); - aligner = aligner - .with_index("test_data/genome.fa", None) - .unwrap(); + aligner = aligner.with_index("test_data/genome.fa", None).unwrap(); let output = aligner.map( b"GAAATACGGGTCTCTGGTTTGACATAAAGGTCCAACTGTAATAACTGATTTTATCTGTGGGTGATGCGTTTCTCGGACAACCACGACCGCGCCCAGACTTAAATCGCACATACTGCGTCGTGCAATGCCGGGCGCTAACGGCTCAATATCACGCTGCGTCACTATGGCTACCCCAAAGCGGGGGGGGCATCGACGGGCTGTTTGATTTGAGCTCCATTACCCTACAATTAGAACACTGGCAACATTTGGGCGTTGAGCGGTCTTCCGTGTCGCTCGATCCGCTGGAACTTGGCAACCACACTCTAAACTACATGTGGTATGGCTCATAAGATCATGCGGATCGTGGCACTGCTTTCGGCCACGTTAGAGCCGCTGTGCTCGAAGATTGGGACCTACCAAC", From 8057f2de75ce5a222d2fff27cb25138ba4aac1ef Mon Sep 17 00:00:00 2001 From: Rob Patro Date: Sat, 17 Aug 2024 14:21:16 -0400 Subject: [PATCH 2/2] change def of supplementary --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index ebd2b79..fe75b6f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -887,7 +887,7 @@ impl Aligner { (*((*(self.idx.unwrap())).seq.offset(reg.rid as isize))).name; let is_primary = reg.parent == reg.id; - let is_supplementary = (reg.parent == reg.id && !reg.sam_pri()); + let is_supplementary = (reg.parent == reg.id) && (reg.sam_pri() == 0); // todo holy heck this code is ugly let alignment = if !reg.p.is_null() {