File tree 2 files changed +10
-5
lines changed
2 files changed +10
-5
lines changed Original file line number Diff line number Diff line change @@ -2997,7 +2997,7 @@ CCCCCCCCCCCCCCCCCCC"[..],
2997
2997
fn test_bam_header_sync ( ) {
2998
2998
let reader = Reader :: from_path ( "test/test_issue_156_no_text.bam" ) . unwrap ( ) ;
2999
2999
let header_hashmap = Header :: from_template ( reader. header ( ) ) . to_hashmap ( ) ;
3000
- let header_refseqs = header_hashmap. get ( "SQ" . into ( ) ) . unwrap ( ) ;
3000
+ let header_refseqs = header_hashmap. get ( "SQ" ) . unwrap ( ) ;
3001
3001
assert_eq ! ( header_refseqs[ 0 ] . get( "SN" ) . unwrap( ) , "ref_1" , ) ;
3002
3002
assert_eq ! ( header_refseqs[ 0 ] . get( "LN" ) . unwrap( ) , "10000000" , ) ;
3003
3003
}
Original file line number Diff line number Diff line change @@ -2097,10 +2097,15 @@ impl CigarStringView {
2097
2097
}
2098
2098
break ;
2099
2099
} ,
2100
- Cigar :: Del ( _) => {
2101
- return Err ( Error :: BamUnexpectedCigarOperation {
2102
- msg : "'deletion' (D) found before any operation describing read sequence" . to_owned ( )
2103
- } ) ;
2100
+ Cigar :: Del ( l) => {
2101
+ // METHOD: leading deletions can happen in case of trimmed reads where
2102
+ // a primer has been removed AFTER read mapping.
2103
+ // Example: 24M8I8D18M9S before trimming, 32H8D18M9S after trimming
2104
+ // with fgbio. While leading deletions should be impossible with
2105
+ // normal read mapping, they make perfect sense with primer trimming
2106
+ // because the mapper still had the evidence to decide in favor of
2107
+ // the deletion via the primer sequence.
2108
+ rpos += l;
2104
2109
} ,
2105
2110
Cigar :: RefSkip ( _) => {
2106
2111
return Err ( Error :: BamUnexpectedCigarOperation {
You can’t perform that action at this time.
0 commit comments