From 9c088fe3fee42a9a4b81e4b449bd4105cce53b9d Mon Sep 17 00:00:00 2001 From: Eric Banks Date: Fri, 19 Oct 2012 12:41:24 -0400 Subject: [PATCH] Actually a better implementation of GATKSAMRecord.getSoftStart(). Last commit was all wrong. Oops. --- .../broadinstitute/sting/utils/sam/GATKSAMRecord.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/public/java/src/org/broadinstitute/sting/utils/sam/GATKSAMRecord.java b/public/java/src/org/broadinstitute/sting/utils/sam/GATKSAMRecord.java index 8c3d83874..1feb76517 100755 --- a/public/java/src/org/broadinstitute/sting/utils/sam/GATKSAMRecord.java +++ b/public/java/src/org/broadinstitute/sting/utils/sam/GATKSAMRecord.java @@ -388,9 +388,14 @@ public class GATKSAMRecord extends BAMRecord { public int getSoftStart() { if (softStart < 0) { softStart = getAlignmentStart(); - final CigarElement firstCig = getCigar().getCigarElement(0); - if (firstCig.getOperator() == CigarOperator.HARD_CLIP) - softStart -= firstCig.getLength(); + for (final CigarElement cig : getCigar().getCigarElements()) { + final CigarOperator op = cig.getOperator(); + + if (op == CigarOperator.SOFT_CLIP) + softStart -= cig.getLength(); + else if (op != CigarOperator.HARD_CLIP) + break; + } } return softStart; }