From 4d9a88153afd554ef105c8f9d62a7a945fec0c31 Mon Sep 17 00:00:00 2001 From: ebanks Date: Thu, 11 Jun 2009 16:29:13 +0000 Subject: [PATCH] Update inferred insert size of cleaned reads when they are paired git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@982 348d0f76-0448-11de-a6fe-93d51630548a --- .../walkers/indels/IntervalCleanerWalker.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/indels/IntervalCleanerWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/indels/IntervalCleanerWalker.java index 46e74b192..caae7e804 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/indels/IntervalCleanerWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/indels/IntervalCleanerWalker.java @@ -788,8 +788,24 @@ public class IntervalCleanerWalker extends LocusWindowWalker } public void finalizeUpdate() { - read.setCigar(newCigar); - read.setAlignmentStart(newStart); + // if it's a paired end read, we need to update the insert size + if ( read.getReadPairedFlag() ) { + int insertSize = read.getInferredInsertSize(); + if ( insertSize > 0 ) { + read.setCigar(newCigar); + read.setInferredInsertSize(insertSize + read.getAlignmentStart() - newStart); + read.setAlignmentStart(newStart); + } else { + // note that the correct order of actions is crucial here + int oldEnd = read.getAlignmentEnd(); + read.setCigar(newCigar); + read.setAlignmentStart(newStart); + read.setInferredInsertSize(insertSize + oldEnd - read.getAlignmentEnd()); + } + } else { + read.setCigar(newCigar); + read.setAlignmentStart(newStart); + } } public String getBaseQualityString() {