Fixing no cigar bug
empty GATKSAMRecords will have a null cigar. Treat them accordingly.
This commit is contained in:
parent
149b79eaad
commit
9427ada498
|
|
@ -58,15 +58,6 @@ public class ReadClipper {
|
||||||
return hardClipByReferenceCoordinates(refStart, -1);
|
return hardClipByReferenceCoordinates(refStart, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int numDeletions(GATKSAMRecord read) {
|
|
||||||
int result = 0;
|
|
||||||
for (CigarElement e: read.getCigar().getCigarElements()) {
|
|
||||||
if ( e.getOperator() == CigarOperator.DELETION || e.getOperator() == CigarOperator.D )
|
|
||||||
result =+ e.getLength();
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected GATKSAMRecord hardClipByReferenceCoordinates(int refStart, int refStop) {
|
protected GATKSAMRecord hardClipByReferenceCoordinates(int refStart, int refStop) {
|
||||||
int start = (refStart < 0) ? 0 : ReadUtils.getReadCoordinateForReferenceCoordinate(read, refStart, ReadUtils.ClippingTail.RIGHT_TAIL);
|
int start = (refStart < 0) ? 0 : ReadUtils.getReadCoordinateForReferenceCoordinate(read, refStart, ReadUtils.ClippingTail.RIGHT_TAIL);
|
||||||
int stop = (refStop < 0) ? read.getReadLength() - 1 : ReadUtils.getReadCoordinateForReferenceCoordinate(read, refStop, ReadUtils.ClippingTail.LEFT_TAIL);
|
int stop = (refStop < 0) ? read.getReadLength() - 1 : ReadUtils.getReadCoordinateForReferenceCoordinate(read, refStop, ReadUtils.ClippingTail.LEFT_TAIL);
|
||||||
|
|
@ -90,7 +81,7 @@ public class ReadClipper {
|
||||||
|
|
||||||
@Requires("left <= right")
|
@Requires("left <= right")
|
||||||
public GATKSAMRecord hardClipBothEndsByReferenceCoordinates(int left, int right) {
|
public GATKSAMRecord hardClipBothEndsByReferenceCoordinates(int left, int right) {
|
||||||
if (left == right)
|
if (read.isEmpty() || left == right)
|
||||||
return new GATKSAMRecord(read.getHeader());
|
return new GATKSAMRecord(read.getHeader());
|
||||||
GATKSAMRecord leftTailRead = hardClipByReferenceCoordinates(right, -1);
|
GATKSAMRecord leftTailRead = hardClipByReferenceCoordinates(right, -1);
|
||||||
|
|
||||||
|
|
@ -104,6 +95,9 @@ public class ReadClipper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public GATKSAMRecord hardClipLowQualEnds(byte lowQual) {
|
public GATKSAMRecord hardClipLowQualEnds(byte lowQual) {
|
||||||
|
if (read.isEmpty())
|
||||||
|
return read;
|
||||||
|
|
||||||
byte [] quals = read.getBaseQualities();
|
byte [] quals = read.getBaseQualities();
|
||||||
int leftClipIndex = 0;
|
int leftClipIndex = 0;
|
||||||
int rightClipIndex = read.getReadLength() - 1;
|
int rightClipIndex = read.getReadLength() - 1;
|
||||||
|
|
@ -126,6 +120,9 @@ public class ReadClipper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public GATKSAMRecord hardClipSoftClippedBases () {
|
public GATKSAMRecord hardClipSoftClippedBases () {
|
||||||
|
if (read.isEmpty())
|
||||||
|
return read;
|
||||||
|
|
||||||
int readIndex = 0;
|
int readIndex = 0;
|
||||||
int cutLeft = -1; // first position to hard clip (inclusive)
|
int cutLeft = -1; // first position to hard clip (inclusive)
|
||||||
int cutRight = -1; // first position to hard clip (inclusive)
|
int cutRight = -1; // first position to hard clip (inclusive)
|
||||||
|
|
@ -182,6 +179,9 @@ public class ReadClipper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public GATKSAMRecord hardClipLeadingInsertions() {
|
public GATKSAMRecord hardClipLeadingInsertions() {
|
||||||
|
if (read.isEmpty())
|
||||||
|
return read;
|
||||||
|
|
||||||
for(CigarElement cigarElement : read.getCigar().getCigarElements()) {
|
for(CigarElement cigarElement : read.getCigar().getCigarElements()) {
|
||||||
if (cigarElement.getOperator() != CigarOperator.HARD_CLIP && cigarElement.getOperator() != CigarOperator.SOFT_CLIP &&
|
if (cigarElement.getOperator() != CigarOperator.HARD_CLIP && cigarElement.getOperator() != CigarOperator.SOFT_CLIP &&
|
||||||
cigarElement.getOperator() != CigarOperator.INSERTION && cigarElement.getOperator() != CigarOperator.DELETION)
|
cigarElement.getOperator() != CigarOperator.INSERTION && cigarElement.getOperator() != CigarOperator.DELETION)
|
||||||
|
|
|
||||||
|
|
@ -237,4 +237,8 @@ public class GATKSAMRecord extends BAMRecord {
|
||||||
// note that we do not consider the GATKSAMRecord internal state at all
|
// note that we do not consider the GATKSAMRecord internal state at all
|
||||||
return super.equals(o);
|
return super.equals(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isEmpty() {
|
||||||
|
return this.getReadLength() == 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue