Support for -continue_after_errors flag in the validating pileup walker in case you want to see errors as they arise, rather than aborting greedily

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@461 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
depristo 2009-04-17 03:13:11 +00:00
parent ee5ab9536f
commit 50ae1763f7
1 changed files with 20 additions and 13 deletions

View File

@ -5,6 +5,7 @@ import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.refdata.rodSAMPileup;
import org.broadinstitute.sting.utils.cmdLine.Argument;
import org.broadinstitute.sting.utils.Utils;
import org.broadinstitute.sting.utils.Pileup;
import org.broadinstitute.sting.utils.BasicPileup;
import org.broadinstitute.sting.utils.ReadBackedPileup;
@ -16,21 +17,27 @@ import org.broadinstitute.sting.utils.ReadBackedPileup;
* To change this template use File | Settings | File Templates.
*/
public class ValidatingPileupWalker extends LocusWalker<Integer, ValidationStats> {
@Argument(fullName="verbose",required=false,defaultValue="false")
public boolean VERBOSE;
@Argument(fullName="continue_after_error",required=false,defaultValue="false")
public boolean CONTINUE_AFTER_AN_ERROR;
public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) {
ReadBackedPileup pileup = new ReadBackedPileup(ref, context);
rodSAMPileup truePileup = (rodSAMPileup)tracker.lookup("pileup", null);
if ( truePileup == null )
Utils.scareUser(String.format("No pileup data available at %s given GATK's output of %s -- this walker requires samtools pileup data over all bases",
context.getLocation(), pileup.getBases()));
String pileupDiff = BasicPileup.pileupDiff(pileup, truePileup);
if ( pileupDiff != null ) {
out.printf("%s vs. %s%n", pileup.getPileupString(), truePileup.getPileupString());
throw new RuntimeException(String.format("Pileups aren't equal: %s", pileupDiff));
Pileup pileup = new ReadBackedPileup(ref, context);
Pileup truePileup = (Pileup)tracker.lookup("pileup", null);
if ( truePileup == null ) {
System.out.printf("No truth pileup data available at %s%n", pileup.getPileupString());
if ( ! CONTINUE_AFTER_AN_ERROR ) {
Utils.scareUser(String.format("No pileup data available at %s given GATK's output of %s -- this walker requires samtools pileup data over all bases",
context.getLocation(), pileup.getBases()));
}
} else {
String pileupDiff = BasicPileup.pileupDiff(pileup, truePileup);
if ( pileupDiff != null ) {
out.printf("%s vs. %s%n", pileup.getPileupString(), truePileup.getPileupString());
if ( ! CONTINUE_AFTER_AN_ERROR ) {
throw new RuntimeException(String.format("Pileups aren't equal: %s", pileupDiff));
}
}
}
return pileup.size();