|
|
@@ -490,12 +490,14 @@ impl NeoContig {
|
|
|
let mut l = ref_spaces.clone();
|
|
|
let ref_cigar = self.alignments[0].ref_cigar.as_bytes();
|
|
|
|
|
|
- let mut filtered_ref: Vec<u8> = self.alignments[0].ref_sequence
|
|
|
- .as_bytes()
|
|
|
- .iter().enumerate()
|
|
|
- .filter(|(i, _)| ref_cigar[*i] == b'M')
|
|
|
- .map(|(_, c)| *c)
|
|
|
- .collect();
|
|
|
+ // let mut filtered_ref: Vec<u8> = self.alignments[0].ref_sequence
|
|
|
+ // .as_bytes()
|
|
|
+ // .iter().enumerate()
|
|
|
+ // .filter(|(i, _)| ref_cigar[*i] == b'M')
|
|
|
+ // .map(|(_, c)| *c)
|
|
|
+ // .collect();
|
|
|
+
|
|
|
+ let mut filtered_ref = self.alignments[0].ref_sequence.clone().as_bytes().to_vec();
|
|
|
|
|
|
l.append(&mut filtered_ref);
|
|
|
lines.push(l);
|
|
|
@@ -574,12 +576,14 @@ impl NeoContig {
|
|
|
let mut l = ref_spaces.clone();
|
|
|
let ref_cigar = self.alignments[1].ref_cigar.as_bytes();
|
|
|
|
|
|
- let mut filtered_ref: Vec<u8> = self.alignments[1].ref_sequence
|
|
|
- .as_bytes()
|
|
|
- .iter().enumerate()
|
|
|
- .filter(|(i, _)| ref_cigar[*i] == b'M')
|
|
|
- .map(|(_, c)| *c)
|
|
|
- .collect();
|
|
|
+ // let mut filtered_ref: Vec<u8> = self.alignments[1].ref_sequence
|
|
|
+ // .as_bytes()
|
|
|
+ // .iter().enumerate()
|
|
|
+ // .filter(|(i, _)| ref_cigar[*i] == b'M')
|
|
|
+ // .map(|(_, c)| *c)
|
|
|
+ // .collect();
|
|
|
+ let mut filtered_ref = self.alignments[1].ref_sequence.clone().as_bytes().to_vec();
|
|
|
+
|
|
|
l.append(&mut filtered_ref);
|
|
|
lines.push(l);
|
|
|
}
|
|
|
@@ -698,7 +702,7 @@ fn matched_range (cigar: &str, flag: &i32, matched_seq: &mut str) -> (Range<usiz
|
|
|
}
|
|
|
|
|
|
let all_op = vec!["M", "I", "D", "N", "S", "=", "X", "H", "P"];
|
|
|
- let consumes_query = vec!["M", "I", "S", "=", "X", "H", "D"];
|
|
|
+ let consumes_query = vec!["M", "I", "S", "=", "X", "H"];
|
|
|
let consumes_ref = vec!["M", "D", "N", "=", "X"];
|
|
|
|
|
|
let mut range_query:Range<usize> = Range::default();
|