diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/BasicLociWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/BasicLociWalker.java deleted file mode 100755 index 63cb4c1a9..000000000 --- a/java/src/org/broadinstitute/sting/gatk/walkers/BasicLociWalker.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.broadinstitute.sting.gatk.walkers; - -import org.broadinstitute.sting.gatk.walkers.LocusWalker; -import org.broadinstitute.sting.gatk.LocusContext; -import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; - -import java.util.List; - -/** - * Created by IntelliJ IDEA. - * User: mdepristo - * Date: Feb 22, 2009 - * Time: 3:22:14 PM - * To change this template use File | Settings | File Templates. - */ -public abstract class BasicLociWalker implements LocusWalker { - public String getName() { - // Return name of class, trimming 'Walker' from the end if present. - // TODO: Duplicate of BasicReadWalker.getName(). Eliminate duplication. - String className = getClass().getSimpleName(); - if(className.endsWith(Walker.class.getSimpleName())) - return className.substring(0,className.lastIndexOf(Walker.class.getSimpleName())); - else - return className; - } - - public void initialize() { - ; - } - - // Do we actually want to operate on the context? - public boolean filter(List rodData, char ref, LocusContext context) { - return true; // We are keeping all the reads - } - - public void onTraversalDone() { - ; - } - - // These three capabilities must be overidden - public abstract MapType map(List rodData, char ref, LocusContext context); - public abstract ReduceType reduceInit(); - public abstract ReduceType reduce(MapType value, ReduceType sum); - -} diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/BasicReadWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/BasicReadWalker.java deleted file mode 100755 index 5180768d4..000000000 --- a/java/src/org/broadinstitute/sting/gatk/walkers/BasicReadWalker.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.broadinstitute.sting.gatk.walkers; - -import net.sf.samtools.SAMRecord; -import org.broadinstitute.sting.gatk.LocusContext; -import org.broadinstitute.sting.gatk.walkers.ReadWalker; - -/** - * Created by IntelliJ IDEA. - * User: mdepristo - * Date: Feb 22, 2009 - * Time: 2:52:28 PM - * To change this template use File | Settings | File Templates. - */ -public abstract class BasicReadWalker implements ReadWalker { - public String getName() { - // Return name of class, trimming 'Walker' from the end if present. - // TODO: Duplicate of BasicLociWalker.getName(). Eliminate duplication. - String className = getClass().getSimpleName(); - if(className.endsWith(Walker.class.getSimpleName())) - return className.substring(0,className.lastIndexOf(Walker.class.getSimpleName())); - else - return className; - } - - public void initialize() { } - public boolean requiresOrderedReads() { return false; } - - public boolean filter(LocusContext context, SAMRecord read) { - // We are keeping all the reads - return true; - } - - public void onTraversalDone() { - ; - } - - // Three basic abstract function that *must* be overridden - public abstract MapType map(LocusContext context, SAMRecord read); - public abstract ReduceType reduceInit(); - public abstract ReduceType reduce(MapType value, ReduceType sum); -} diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/CountLociWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/CountLociWalker.java index bf4c758d1..d5ed526af 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/CountLociWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/CountLociWalker.java @@ -12,7 +12,7 @@ import java.util.List; * Time: 3:22:14 PM * To change this template use File | Settings | File Templates. */ -public class CountLociWalker extends BasicLociWalker { +public class CountLociWalker extends LocusWalker { public Integer map(List rodData, char ref, LocusContext context) { return 1; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/CountReadsWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/CountReadsWalker.java index 595349688..e9ff89fe2 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/CountReadsWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/CountReadsWalker.java @@ -3,7 +3,7 @@ package org.broadinstitute.sting.gatk.walkers; import net.sf.samtools.SAMRecord; import org.broadinstitute.sting.gatk.LocusContext; -public class CountReadsWalker extends BasicReadWalker { +public class CountReadsWalker extends ReadWalker { public Integer map(LocusContext context, SAMRecord read) { return 1; } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/DepthOfCoverageWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/DepthOfCoverageWalker.java index 5c75b5443..4ceb70b63 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/DepthOfCoverageWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/DepthOfCoverageWalker.java @@ -12,7 +12,7 @@ import java.util.List; * Time: 3:22:14 PM * To change this template use File | Settings | File Templates. */ -public class DepthOfCoverageWalker extends BasicLociWalker { +public class DepthOfCoverageWalker extends LocusWalker { public Integer map(List rodData, char ref, LocusContext context) { System.out.printf("%s: %d%n", context.getLocation(), context.getReads().size() ); return 1; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java index 72eac2973..83d4f102f 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/LocusWalker.java @@ -12,14 +12,16 @@ import java.util.List; * Time: 2:52:28 PM * To change this template use File | Settings | File Templates. */ -public interface LocusWalker extends Walker { +public abstract class LocusWalker extends Walker { // Do we actually want to operate on the context? - boolean filter(List rodData, char ref, LocusContext context); + public boolean filter(List rodData, char ref, LocusContext context) { + return true; // We are keeping all the reads + } // Map over the org.broadinstitute.sting.gatk.LocusContext - MapType map(List rodData, char ref, LocusContext context); + public abstract MapType map(List rodData, char ref, LocusContext context); // Given result of map function - ReduceType reduceInit(); - ReduceType reduce(MapType value, ReduceType sum); + public abstract ReduceType reduceInit(); + public abstract ReduceType reduce(MapType value, ReduceType sum); } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/NullWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/NullWalker.java index 47e675608..9f6a3afca 100644 --- a/java/src/org/broadinstitute/sting/gatk/walkers/NullWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/NullWalker.java @@ -9,11 +9,7 @@ import java.util.List; // Null traversal. For ATK performance measuring. // j.maguire 3-7-2009 -public class NullWalker implements LocusWalker { - public String getName() { - return "Null"; - } - +public class NullWalker extends LocusWalker { public void initialize() { } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/PileupWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/PileupWalker.java index 8b7b2f670..e8a2b906b 100644 --- a/java/src/org/broadinstitute/sting/gatk/walkers/PileupWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/PileupWalker.java @@ -14,7 +14,7 @@ import java.util.List; * Time: 3:22:14 PM * To change this template use File | Settings | File Templates. */ -public class PileupWalker extends BasicLociWalker { +public class PileupWalker extends LocusWalker { public void initialize() { } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/PrintReadsWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/PrintReadsWalker.java index 4aff75943..8baf7158c 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/PrintReadsWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/PrintReadsWalker.java @@ -3,7 +3,7 @@ package org.broadinstitute.sting.gatk.walkers; import net.sf.samtools.SAMRecord; import org.broadinstitute.sting.gatk.LocusContext; -public class PrintReadsWalker extends BasicReadWalker { +public class PrintReadsWalker extends ReadWalker { public Integer map(LocusContext context, SAMRecord read) { System.out.println(read.format()); return 1; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java index 94c9434c7..dbc073eb7 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/ReadWalker.java @@ -10,16 +10,19 @@ import org.broadinstitute.sting.gatk.LocusContext; * Time: 2:52:28 PM * To change this template use File | Settings | File Templates. */ -public interface ReadWalker extends Walker { - boolean requiresOrderedReads(); +public abstract class ReadWalker extends Walker { + public boolean requiresOrderedReads() { return false; } // Do we actually want to operate on the context? - boolean filter(LocusContext context, SAMRecord read); + public boolean filter(LocusContext context, SAMRecord read) { + // We are keeping all the reads + return true; + } // Map over the org.broadinstitute.sting.gatk.LocusContext - MapType map(LocusContext context, SAMRecord read); + public abstract MapType map(LocusContext context, SAMRecord read); // Given result of map function - ReduceType reduceInit(); - ReduceType reduce(MapType value, ReduceType sum); + public abstract ReduceType reduceInit(); + public abstract ReduceType reduce(MapType value, ReduceType sum); } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/Walker.java b/java/src/org/broadinstitute/sting/gatk/walkers/Walker.java index e7d67532a..2f46fbcc8 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/Walker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/Walker.java @@ -7,9 +7,17 @@ package org.broadinstitute.sting.gatk.walkers; * Time: 1:53:31 PM * To change this template use File | Settings | File Templates. */ -public interface Walker { +public abstract class Walker { // TODO: Can a walker be templatized so that map and reduce live here? - String getName(); - void initialize(); - void onTraversalDone(); + public String getName() { + // Return name of class, trimming 'Walker' from the end if present. + String className = getClass().getSimpleName(); + if(className.endsWith(Walker.class.getSimpleName())) + return className.substring(0,className.lastIndexOf(Walker.class.getSimpleName())); + else + return className; + } + + public void initialize() { } + public void onTraversalDone() { } } diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlignedReadsHistoWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlignedReadsHistoWalker.java index c7e5fa529..2788ec176 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlignedReadsHistoWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlignedReadsHistoWalker.java @@ -1,7 +1,7 @@ package org.broadinstitute.sting.playground.gatk.walkers; import net.sf.samtools.SAMRecord; -import org.broadinstitute.sting.gatk.walkers.BasicReadWalker; +import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.gatk.LocusContext; /** @@ -11,7 +11,7 @@ import org.broadinstitute.sting.gatk.LocusContext; * Time: 3:22:14 PM * To change this template use File | Settings | File Templates. */ -public class AlignedReadsHistoWalker extends BasicReadWalker { +public class AlignedReadsHistoWalker extends ReadWalker { long[] alignCounts = new long[51]; public String getName() { diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlleleFrequencyMetricsWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlleleFrequencyMetricsWalker.java index 654592a5f..5509a4fd9 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlleleFrequencyMetricsWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlleleFrequencyMetricsWalker.java @@ -3,7 +3,7 @@ package org.broadinstitute.sting.playground.gatk.walkers; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; import org.broadinstitute.sting.gatk.refdata.rodDbSNP; import org.broadinstitute.sting.gatk.refdata.rodGFF; -import org.broadinstitute.sting.gatk.walkers.BasicLociWalker; +import org.broadinstitute.sting.gatk.walkers.LocusWalker; import org.broadinstitute.sting.gatk.LocusContext; import org.broadinstitute.sting.playground.gatk.walkers.AlleleFrequencyWalker; import org.broadinstitute.sting.playground.utils.AlleleFrequencyEstimate; @@ -18,7 +18,7 @@ import java.util.List; * To change this template use File | Settings | File Templates. */ -public class AlleleFrequencyMetricsWalker extends BasicLociWalker +public class AlleleFrequencyMetricsWalker extends LocusWalker { long dbsnp_hits=0; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlleleFrequencyWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlleleFrequencyWalker.java index 425628da8..3a5cdf6d4 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlleleFrequencyWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/AlleleFrequencyWalker.java @@ -3,14 +3,14 @@ package org.broadinstitute.sting.playground.gatk.walkers; import org.broadinstitute.sting.gatk.LocusContext; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; import org.broadinstitute.sting.gatk.refdata.rodDbSNP; -import org.broadinstitute.sting.gatk.walkers.BasicLociWalker; +import org.broadinstitute.sting.gatk.walkers.LocusWalker; import org.broadinstitute.sting.playground.utils.AlleleFrequencyEstimate; import net.sf.samtools.SAMRecord; import java.util.List; import java.util.Arrays; -public class AlleleFrequencyWalker extends BasicLociWalker { +public class AlleleFrequencyWalker extends LocusWalker { int N=2; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityDumpWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityDumpWalker.java index 43db5f71e..45e87f560 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityDumpWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityDumpWalker.java @@ -2,7 +2,7 @@ package org.broadinstitute.sting.playground.gatk.walkers; import net.sf.samtools.SAMRecord; import org.broadinstitute.sting.gatk.LocusContext; -import org.broadinstitute.sting.gatk.walkers.BasicReadWalker; +import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.utils.Utils; import edu.mit.broad.picard.reference.ReferenceSequence; @@ -10,7 +10,7 @@ import java.util.Iterator; import java.util.List; import static java.lang.reflect.Array.*; -public class BaseQualityDumpWalker extends BasicReadWalker { +public class BaseQualityDumpWalker extends ReadWalker { protected final int MIN_TARGET_EDIT_DISTANCE = 0; //5; protected final int MAX_TARGET_EDIT_DISTANCE = 4; //10; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityHistoWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityHistoWalker.java index 5742c070c..07c0b5be1 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityHistoWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/BaseQualityHistoWalker.java @@ -1,7 +1,7 @@ package org.broadinstitute.sting.playground.gatk.walkers; import net.sf.samtools.SAMRecord; -import org.broadinstitute.sting.gatk.walkers.BasicReadWalker; +import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.gatk.LocusContext; /** @@ -11,7 +11,7 @@ import org.broadinstitute.sting.gatk.LocusContext; * Time: 3:22:14 PM * To change this template use File | Settings | File Templates. */ -public class BaseQualityHistoWalker extends BasicReadWalker { +public class BaseQualityHistoWalker extends ReadWalker { long[] qualCounts = new long[100]; public String getName() { diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/MismatchCounterWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/MismatchCounterWalker.java index c5b2f851f..974691a1a 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/MismatchCounterWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/MismatchCounterWalker.java @@ -2,7 +2,7 @@ package org.broadinstitute.sting.playground.gatk.walkers; import net.sf.samtools.SAMRecord; import org.broadinstitute.sting.gatk.LocusContext; -import org.broadinstitute.sting.gatk.walkers.BasicReadWalker; +import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.utils.Utils; import edu.mit.broad.picard.reference.ReferenceSequence; @@ -10,7 +10,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -public class MismatchCounterWalker extends BasicReadWalker { +public class MismatchCounterWalker extends ReadWalker { public String getName() { return "CountMismatches"; } diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/MismatchHistoWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/MismatchHistoWalker.java index eb910e04c..4ce245923 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/MismatchHistoWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/MismatchHistoWalker.java @@ -2,7 +2,7 @@ package org.broadinstitute.sting.playground.gatk.walkers; import net.sf.samtools.SAMRecord; import org.broadinstitute.sting.gatk.LocusContext; -import org.broadinstitute.sting.gatk.walkers.BasicReadWalker; +import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.utils.Utils; import edu.mit.broad.picard.reference.ReferenceSequence; @@ -10,7 +10,7 @@ import java.util.Iterator; import java.util.List; import static java.lang.reflect.Array.*; -public class MismatchHistoWalker extends BasicReadWalker { +public class MismatchHistoWalker extends ReadWalker { protected long[] mismatchCounts = new long[0]; protected final int MIN_TARGET_EDIT_DISTANCE = 5; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/SingleSampleGenotyper.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/SingleSampleGenotyper.java index 1459e8b18..1c6445bd7 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/SingleSampleGenotyper.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/SingleSampleGenotyper.java @@ -3,7 +3,7 @@ package org.broadinstitute.sting.playground.gatk.walkers; import org.broadinstitute.sting.gatk.LocusContext; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; import org.broadinstitute.sting.gatk.refdata.rodDbSNP; -import org.broadinstitute.sting.gatk.walkers.BasicLociWalker; +import org.broadinstitute.sting.gatk.walkers.LocusWalker; import org.broadinstitute.sting.utils.Utils; import net.sf.samtools.SAMRecord; @@ -12,7 +12,7 @@ import java.util.List; // Draft single sample genotyper // j.maguire 3-7-2009 -public class SingleSampleGenotyper extends BasicLociWalker { +public class SingleSampleGenotyper extends LocusWalker { public boolean filter(List rodData, char ref, LocusContext context) { return true; // We are keeping all the reads } diff --git a/java/src/org/broadinstitute/sting/utils/cmdLine/ArgumentParser.java b/java/src/org/broadinstitute/sting/utils/cmdLine/ArgumentParser.java index fe1d92a9a..7c95e4fed 100644 --- a/java/src/org/broadinstitute/sting/utils/cmdLine/ArgumentParser.java +++ b/java/src/org/broadinstitute/sting/utils/cmdLine/ArgumentParser.java @@ -134,7 +134,6 @@ public class ArgumentParser { */ private void AddToOptionStorage( List>> options ) { OptionGroup optionGroup = new OptionGroup(); - boolean isRequired = true; for( Pair> option: options ) { if (m_options.hasOption(option.first.getOpt()) ) @@ -142,10 +141,9 @@ public class ArgumentParser { optionGroup.addOption(option.first); m_storageLocations.put( option.first.getLongOpt(), option.second ); - isRequired &= option.first.isRequired(); + optionGroup.setRequired( optionGroup.isRequired() & option.first.isRequired() ); } - optionGroup.setRequired(isRequired); m_options.addOptionGroup(optionGroup); }