|
|
@@ -115,7 +115,10 @@ impl ContigRef {
|
|
|
let diff = a.query_end - b.query_start;
|
|
|
(
|
|
|
(a.target_name.clone().unwrap_or(uk.clone()), a.target_end),
|
|
|
- (b.target_name.clone().unwrap_or(uk.clone()), b.target_start + diff),
|
|
|
+ (
|
|
|
+ b.target_name.clone().unwrap_or(uk.clone()),
|
|
|
+ b.target_start + diff,
|
|
|
+ ),
|
|
|
)
|
|
|
};
|
|
|
let (bp_b_1, bp_b_2) = if b.query_end <= c.query_end {
|
|
|
@@ -128,7 +131,10 @@ impl ContigRef {
|
|
|
let diff = b.query_end - c.query_start;
|
|
|
(
|
|
|
(b.target_name.clone().unwrap_or(uk.clone()), b.target_end),
|
|
|
- (c.target_name.clone().unwrap_or(uk.clone()), c.target_start + diff),
|
|
|
+ (
|
|
|
+ c.target_name.clone().unwrap_or(uk.clone()),
|
|
|
+ c.target_start + diff,
|
|
|
+ ),
|
|
|
)
|
|
|
};
|
|
|
if bp_a_1.0 == bp_b_2.0 {
|
|
|
@@ -444,7 +450,26 @@ impl Contig {
|
|
|
),
|
|
|
];
|
|
|
write_bed(&bed_path, &d)?;
|
|
|
- }
|
|
|
+ },
|
|
|
+ ContigRef::ChimericTriple((a, b, c)) => {
|
|
|
+ let d: Vec<(String, i32, i32, String)> = vec![a, b, c]
|
|
|
+ .iter()
|
|
|
+ .map(|r| {
|
|
|
+ (
|
|
|
+ self.id.clone(),
|
|
|
+ r.query_start,
|
|
|
+ r.query_end,
|
|
|
+ format!(
|
|
|
+ "{}:{}-{}",
|
|
|
+ r.target_name.clone().unwrap(),
|
|
|
+ r.target_start,
|
|
|
+ r.target_end
|
|
|
+ ),
|
|
|
+ )
|
|
|
+ })
|
|
|
+ .collect();
|
|
|
+ write_bed(&bed_path, &d)?;
|
|
|
+ },
|
|
|
_ => (),
|
|
|
}
|
|
|
|