From 8bd345ba002f7d7f1f97435f995d00a7f974e3a1 Mon Sep 17 00:00:00 2001 From: ebanks Date: Tue, 29 Sep 2009 15:58:43 +0000 Subject: [PATCH] Generalized deletions in pileup git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1739 348d0f76-0448-11de-a6fe-93d51630548a --- .../sting/utils/BasicPileup.java | 19 ++++++++++++++++--- .../sting/utils/ReadBackedPileup.java | 9 +++------ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/java/src/org/broadinstitute/sting/utils/BasicPileup.java b/java/src/org/broadinstitute/sting/utils/BasicPileup.java index bb2066465..6de07b1c3 100755 --- a/java/src/org/broadinstitute/sting/utils/BasicPileup.java +++ b/java/src/org/broadinstitute/sting/utils/BasicPileup.java @@ -15,6 +15,15 @@ import java.util.Random; * To change this template use File | Settings | File Templates. */ abstract public class BasicPileup implements Pileup { + + public static final char DELETION_CHAR = 'D'; + + protected boolean includeDeletions = false; + + public void setIncludeDeletionsInPileupString(boolean value) { + includeDeletions = value; + } + public String getPileupString() { return String.format("%s: %s %s %s", getLocation(), getRef(), getBases(), getQuals()); @@ -29,8 +38,12 @@ abstract public class BasicPileup implements Pileup { } public static String basePileupAsString( List reads, List offsets ) { + return basePileupAsString( reads, offsets, false ); + } + + public static String basePileupAsString( List reads, List offsets, boolean includeDeletions ) { StringBuilder bases = new StringBuilder(); - for ( byte base : basePileup(reads, offsets)) { + for ( byte base : basePileup(reads, offsets, includeDeletions)) { bases.append((char)base); } return bases.toString(); @@ -50,7 +63,7 @@ abstract public class BasicPileup implements Pileup { char base; if ( offset == -1 ) { if ( includeDeletions ) - base = 'D'; + base = DELETION_CHAR; else continue; } else { @@ -79,7 +92,7 @@ abstract public class BasicPileup implements Pileup { int offset = offsets.get(i); if ( offset == -1 ) { if ( includeDeletions ) - bases.add((byte)'D'); + bases.add((byte)DELETION_CHAR); } else { bases.add(read.getReadBases()[offset]); } diff --git a/java/src/org/broadinstitute/sting/utils/ReadBackedPileup.java b/java/src/org/broadinstitute/sting/utils/ReadBackedPileup.java index 60a2fecaf..36ea48f89 100755 --- a/java/src/org/broadinstitute/sting/utils/ReadBackedPileup.java +++ b/java/src/org/broadinstitute/sting/utils/ReadBackedPileup.java @@ -17,7 +17,6 @@ public class ReadBackedPileup extends BasicPileup { char ref; List reads; List offsets; - boolean includeDeletions = false; public ReadBackedPileup(char ref, AlignmentContext context ) { this(context.getLocation(), ref, context.getReads(), context.getOffsets()); @@ -38,8 +37,6 @@ public class ReadBackedPileup extends BasicPileup { public List getReads() { return reads; } public List getOffsets() { return offsets; } - public void includeDeletionsInPileupString() { includeDeletions = true; } - public GenomeLoc getLocation() { return loc; } @@ -49,11 +46,11 @@ public class ReadBackedPileup extends BasicPileup { } public String getBases() { - return basePileupAsString(reads, offsets); + return basePileupAsString(reads, offsets, includeDeletions); } public String getBasesWithStrand() { - return baseWithStrandPileupAsString(reads, offsets); + return baseWithStrandPileupAsString(reads, offsets, includeDeletions); } public String getQuals() { @@ -82,7 +79,7 @@ public class ReadBackedPileup extends BasicPileup { } public String getBasePileupAsCountsString() { - String bases = basePileupAsString(reads, offsets); + String bases = basePileupAsString(reads, offsets, includeDeletions); int[] counts = new int[4]; for (int i = 0; i < reads.size(); i++)