diff --git a/java/src/org/broadinstitute/sting/utils/BasicPileup.java b/java/src/org/broadinstitute/sting/utils/BasicPileup.java index 2719180e9..31ebe5610 100755 --- a/java/src/org/broadinstitute/sting/utils/BasicPileup.java +++ b/java/src/org/broadinstitute/sting/utils/BasicPileup.java @@ -21,6 +21,14 @@ abstract public class BasicPileup implements Pileup { return String.format("%s: %s %s %s", getLocation(), getRef(), getBases(), getQuals()); } + public static List constantOffset( List reads, int i ) { + List l = new ArrayList(reads.size()); + for ( SAMRecord read : reads ) { + l.add(i); + } + return l; + } + public static String basePileupAsString( List reads, List offsets ) { StringBuilder bases = new StringBuilder(); for ( byte base : basePileup(reads, offsets)) { @@ -253,4 +261,19 @@ abstract public class BasicPileup implements Pileup { return null; } + + public static byte consensusBase(String bases) { + String canon = bases.toUpperCase(); + int ACount = Utils.countOccurances('A', bases); + int CCount = Utils.countOccurances('C', bases); + int TCount = Utils.countOccurances('T', bases); + int GCount = Utils.countOccurances('G', bases); + + int m = Math.max(ACount, Math.max(CCount, Math.max(TCount, GCount))); + if ( ACount == m ) return 'A'; + if ( CCount == m ) return 'C'; + if ( TCount == m ) return 'T'; + if ( GCount == m ) return 'G'; + return 0; + } }