Fixing but for reads with cigars like 9S54H
When hard-clipping predict when the read is going to be fully hard clipped to the point where only soft/hard-clips are left in the read and preemptively eliminate the read before the SAMRecord mathematics on malformed cigars kills the GATK.
This commit is contained in:
parent
9ee58d323a
commit
88a02fa2cb
|
|
@ -285,7 +285,10 @@ public class ClippingOp {
|
|||
|
||||
@Requires({"start <= stop", "start == 0 || stop == read.getReadLength() - 1"})
|
||||
private GATKSAMRecord hardClip(GATKSAMRecord read, int start, int stop) {
|
||||
if (start == 0 && stop == read.getReadLength() - 1)
|
||||
final int firstBaseAfterSoftClips = read.getAlignmentStart() - read.getSoftStart();
|
||||
final int lastBaseBeforeSoftClips = read.getSoftEnd() - read.getSoftStart();
|
||||
|
||||
if (start == firstBaseAfterSoftClips && stop == lastBaseBeforeSoftClips) // note that if the read has no soft clips, these constants will be 0 and read length - 1 (beauty of math).
|
||||
return GATKSAMRecord.emptyRead(read);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -520,7 +520,7 @@ public class ReadUtils {
|
|||
if (allowGoalNotReached) {
|
||||
return new Pair<Integer, Boolean>(CLIPPING_GOAL_NOT_REACHED, false);
|
||||
} else {
|
||||
throw new ReviewedStingException("Somehow the requested coordinate is not covered by the read. Too many deletions?");
|
||||
throw new ReviewedStingException("Somehow the requested coordinate is not covered by the read. Alignment " + alignmentStart + " | " + cigar);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue