Added filter for SNPs cleaned out by the realigner.
It uses the realigner output for filtering; in addition, dbsnp indels partially work; IndelGenotyper calls don't yet work. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1489 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
8bc7afe781
commit
8e3c3324fa
|
|
@ -0,0 +1,21 @@
|
||||||
|
package org.broadinstitute.sting.gatk.refdata;
|
||||||
|
|
||||||
|
import org.broadinstitute.sting.utils.GenomeLoc;
|
||||||
|
import org.broadinstitute.sting.utils.GenomeLocParser;
|
||||||
|
|
||||||
|
|
||||||
|
public class CleanedOutSNPROD extends TabularROD {
|
||||||
|
|
||||||
|
private static final String REAL_SNP_STRING = "SAME_SNP";
|
||||||
|
private static final String FALSE_SNP_STRING = "NOT_SNP";
|
||||||
|
|
||||||
|
public CleanedOutSNPROD(String name) {
|
||||||
|
super(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public GenomeLoc getLocation() {
|
||||||
|
return GenomeLocParser.parseGenomeLoc(this.get("0"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRealSNP() { return this.get("1").equals(REAL_SNP_STRING); }
|
||||||
|
}
|
||||||
|
|
@ -72,6 +72,7 @@ public class ReferenceOrderedData<ROD extends ReferenceOrderedDatum> implements
|
||||||
addModule("Table", TabularROD.class);
|
addModule("Table", TabularROD.class);
|
||||||
addModule("PooledEM", PooledEMSNPROD.class);
|
addModule("PooledEM", PooledEMSNPROD.class);
|
||||||
addModule("1KGSNPs", KGenomesSNPROD.class);
|
addModule("1KGSNPs", KGenomesSNPROD.class);
|
||||||
|
addModule("CleanedOutSNP", CleanedOutSNPROD.class);
|
||||||
addModule("SangerSNP", SangerSNPROD.class);
|
addModule("SangerSNP", SangerSNPROD.class);
|
||||||
addModule("SimpleIndel", SimpleIndelROD.class);
|
addModule("SimpleIndel", SimpleIndelROD.class);
|
||||||
addModule("HapMapGenotype", HapMapGenotypeROD.class);
|
addModule("HapMapGenotype", HapMapGenotypeROD.class);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
package org.broadinstitute.sting.playground.gatk.walkers.variants;
|
||||||
|
|
||||||
|
import org.broadinstitute.sting.gatk.contexts.VariantContext;
|
||||||
|
import org.broadinstitute.sting.gatk.refdata.*;
|
||||||
|
|
||||||
|
|
||||||
|
public class VECIndelArtifact implements VariantExclusionCriterion {
|
||||||
|
private boolean exclude;
|
||||||
|
private String source = "N/A";
|
||||||
|
|
||||||
|
public void initialize(String arguments) {
|
||||||
|
if (arguments != null && !arguments.isEmpty()) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void compute(VariantContextWindow contextWindow) {
|
||||||
|
VariantContext context = contextWindow.getContext();
|
||||||
|
RefMetaDataTracker tracker = context.getTracker();
|
||||||
|
|
||||||
|
CleanedOutSNPROD cleanedSNP = (CleanedOutSNPROD)tracker.lookup("cleaned", null);
|
||||||
|
if ( cleanedSNP != null && !cleanedSNP.isRealSNP() ) {
|
||||||
|
exclude = true;
|
||||||
|
source = "Cleaner";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
AllelicVariant indelCall = (AllelicVariant)tracker.lookup("indels", null);
|
||||||
|
// TODO - fix indel call capability to span full indel
|
||||||
|
if ( indelCall != null ) {
|
||||||
|
exclude = true;
|
||||||
|
source = "IndelCall";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
rodDbSNP dbsnp = (rodDbSNP)tracker.lookup("dbSNP", null);
|
||||||
|
// TODO - fix dbsnp capability to span full indel
|
||||||
|
if ( dbsnp != null && dbsnp.isIndel() ) {
|
||||||
|
exclude = true;
|
||||||
|
source = "dbsnp";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
exclude = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double inclusionProbability() {
|
||||||
|
return exclude ? 0.0 : 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStudyHeader() {
|
||||||
|
return "IndelArtifact\tSource";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStudyInfo() {
|
||||||
|
return (exclude ? "fail" : "pass") + "\t" + source;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean useZeroQualityReads() { return false; }
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue