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:
parent
ee5ab9536f
commit
50ae1763f7
|
|
@ -5,6 +5,7 @@ import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
|
||||||
import org.broadinstitute.sting.gatk.refdata.rodSAMPileup;
|
import org.broadinstitute.sting.gatk.refdata.rodSAMPileup;
|
||||||
import org.broadinstitute.sting.utils.cmdLine.Argument;
|
import org.broadinstitute.sting.utils.cmdLine.Argument;
|
||||||
import org.broadinstitute.sting.utils.Utils;
|
import org.broadinstitute.sting.utils.Utils;
|
||||||
|
import org.broadinstitute.sting.utils.Pileup;
|
||||||
import org.broadinstitute.sting.utils.BasicPileup;
|
import org.broadinstitute.sting.utils.BasicPileup;
|
||||||
import org.broadinstitute.sting.utils.ReadBackedPileup;
|
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.
|
* To change this template use File | Settings | File Templates.
|
||||||
*/
|
*/
|
||||||
public class ValidatingPileupWalker extends LocusWalker<Integer, ValidationStats> {
|
public class ValidatingPileupWalker extends LocusWalker<Integer, ValidationStats> {
|
||||||
@Argument(fullName="verbose",required=false,defaultValue="false")
|
@Argument(fullName="continue_after_error",required=false,defaultValue="false")
|
||||||
public boolean VERBOSE;
|
public boolean CONTINUE_AFTER_AN_ERROR;
|
||||||
|
|
||||||
public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) {
|
public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) {
|
||||||
ReadBackedPileup pileup = new ReadBackedPileup(ref, context);
|
Pileup pileup = new ReadBackedPileup(ref, context);
|
||||||
|
Pileup truePileup = (Pileup)tracker.lookup("pileup", null);
|
||||||
|
|
||||||
rodSAMPileup truePileup = (rodSAMPileup)tracker.lookup("pileup", null);
|
if ( truePileup == null ) {
|
||||||
if ( truePileup == null )
|
System.out.printf("No truth pileup data available at %s%n", pileup.getPileupString());
|
||||||
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",
|
if ( ! CONTINUE_AFTER_AN_ERROR ) {
|
||||||
context.getLocation(), pileup.getBases()));
|
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 ) {
|
} else {
|
||||||
out.printf("%s vs. %s%n", pileup.getPileupString(), truePileup.getPileupString());
|
String pileupDiff = BasicPileup.pileupDiff(pileup, truePileup);
|
||||||
throw new RuntimeException(String.format("Pileups aren't equal: %s", pileupDiff));
|
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();
|
return pileup.size();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue