Merge branch 'master' of ssh://copper.broadinstitute.org/humgen/gsa-scr1/gsa-engineering/git/unstable
This commit is contained in:
commit
c7ca33cbff
139
build.xml
139
build.xml
|
|
@ -43,6 +43,9 @@
|
|||
<property name="scala.classes" value="${build.dir}/scala/classes" />
|
||||
|
||||
<property name="queue-extensions.source.dir" value="${build.dir}/queue-extensions/src" />
|
||||
|
||||
<property name="javadoc.dir" value="javadoc" />
|
||||
<property name="scaladoc.dir" value="scaladoc" />
|
||||
|
||||
<!-- Contracts for Java -->
|
||||
<!-- To disable, run with -Duse.contracts=false -->
|
||||
|
|
@ -50,9 +53,6 @@
|
|||
<property name="java.contracts" value="${build.dir}/java/contracts" />
|
||||
<property name="contracts.version" value="1.0-20110609" />
|
||||
<property name="cofoja.jar" value="${lib.dir}/cofoja-${contracts.version}.jar"/>
|
||||
|
||||
<!-- where to find the tribble distro -->
|
||||
<property name="tribble.dir" value="tribble" />
|
||||
|
||||
<!-- where to find 'findbugs', which you must set if you plan to use 'ant findbugs' -->
|
||||
<property name="findbugs.home" value="./findbugs"/>
|
||||
|
|
@ -89,7 +89,6 @@
|
|||
<patternset refid="all.java.source.pattern" />
|
||||
</fileset>
|
||||
|
||||
|
||||
<fileset id="external.source.files" dir="${external.dir}" erroronmissingdir="false">
|
||||
<include name="**/*.java" />
|
||||
</fileset>
|
||||
|
|
@ -171,6 +170,12 @@
|
|||
<property name="scala.target" value="core"/>
|
||||
</target>
|
||||
|
||||
<target name="init.buildpublic">
|
||||
<!-- Set the properties needed to build public only -->
|
||||
<property name="gatk.target" value="core"/>
|
||||
<property name="scala.target" value="core"/>
|
||||
</target>
|
||||
|
||||
<target name="git.describe">
|
||||
<exec executable="git" outputproperty="git.describe.output" resultproperty="git.describe.exit.value" failonerror="false">
|
||||
<arg line="describe" />
|
||||
|
|
@ -245,6 +250,7 @@
|
|||
|
||||
<!-- Create the build directory structure used by compile -->
|
||||
<mkdir dir="${build.dir}"/>
|
||||
<mkdir dir="${lib.dir}"/>
|
||||
<mkdir dir="${java.classes}"/>
|
||||
<mkdir dir="${java.contracts}"/>
|
||||
|
||||
|
|
@ -276,7 +282,7 @@
|
|||
</taskdef>
|
||||
</target>
|
||||
|
||||
<target name="gatk.compile.public.source" depends="tribble,init,resolve">
|
||||
<target name="gatk.compile.public.source" depends="init,resolve">
|
||||
<javac fork="true" srcdir="${java.public.source.dir}" memoryMaximumSize="512m" destdir="${java.classes}" debug="true" debuglevel="lines,vars,source" classpathref="external.dependencies" tempdir="${java.io.tmpdir}">
|
||||
<compilerarg value="-proc:none"/>
|
||||
</javac>
|
||||
|
|
@ -337,7 +343,7 @@
|
|||
<target name="gatk.contracts" depends="gatk.contracts.public,gatk.contracts.private"
|
||||
description="create GATK contracts" if="include.contracts" />
|
||||
|
||||
<target name="gatk.compile" depends="tribble,init,resolve,gatk.compile.source,gatk.contracts" />
|
||||
<target name="gatk.compile" depends="init,resolve,gatk.compile.source,gatk.contracts" />
|
||||
|
||||
<target name="init.queue-extensions.generate" depends="gatk.compile">
|
||||
<condition property="uptodate.queue-extensions.generate">
|
||||
|
|
@ -863,7 +869,7 @@
|
|||
</macrodef>
|
||||
|
||||
<!-- our three different test conditions: Test, IntegrationTest, PerformanceTest -->
|
||||
<target name="test" depends="test.compile,tribble.test" description="Run unit tests">
|
||||
<target name="test" depends="test.compile" description="Run unit tests">
|
||||
<condition property="ttype" value="*UnitTest" else="${single}">
|
||||
<not><isset property="single"/></not>
|
||||
</condition>
|
||||
|
|
@ -911,86 +917,59 @@
|
|||
<run-failed-test xmlfailedtestfile="${report}/*PipelineTest/testng-failed.xml" />
|
||||
</target>
|
||||
|
||||
<!-- ***************************************************************************** -->
|
||||
<!-- *********** Tribble ********* -->
|
||||
<!-- ***************************************************************************** -->
|
||||
<target name="tribble.init" description="checks if tribble is available to build from source">
|
||||
<condition property="tribble.compile.exists">
|
||||
<available file="${tribble.dir}/build.xml"/>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<!-- compile the library -->
|
||||
<target name="tribble.compile" description="compiles the tribble library" depends="tribble.init" if="tribble.compile.exists">
|
||||
<echo message="Building the Tribble Library..."/>
|
||||
<ant antfile="build.xml" target="all" dir="${tribble.dir}" inheritAll="false"/>
|
||||
</target>
|
||||
|
||||
<!-- copy the compiled library -->
|
||||
<target name="tribble.compile.copy" description="Copies the compiled tribble library" depends="tribble.compile" if="tribble.compile.exists">
|
||||
<copy todir="${lib.dir}">
|
||||
<fileset dir="${tribble.dir}/dist" includes="*.jar"/>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<!-- copy the precompiled library -->
|
||||
<target name="tribble.library.copy" description="Copies the precompiled tribble library" depends="tribble.init" unless="tribble.compile.exists">
|
||||
<echo message="Copying the Tribble Library..."/>
|
||||
<copy todir="${lib.dir}">
|
||||
<fileset dir="settings/repository/org.broad" includes="tribble*.jar"/>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<target name="tribble" description="Copies the tribble jar" depends="tribble.compile.copy,tribble.library.copy"/>
|
||||
|
||||
<target name="tribble.test.init" description="runs the tribble tests" depends="tribble.init">
|
||||
<condition property="tribble.test.run">
|
||||
<and>
|
||||
<isset property="tribble.compile.exists"/>
|
||||
<not><isset property="single"/></not>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<!-- test tribble using the unit tests set in tribble -->
|
||||
<target name="tribble.test" description="runs the tribble tests" depends="tribble.test.init,tribble.compile" if="tribble.test.run">
|
||||
<echo message="Testing the Tribble Library..."/>
|
||||
<ant antfile="build.xml" target="test" dir="${tribble.dir}" inheritAll="false"/>
|
||||
</target>
|
||||
|
||||
<!-- clean tribble -->
|
||||
<target name="tribble.clean" description="cleans the tribble library" depends="tribble.init" if="tribble.compile.exists">
|
||||
<echo message="Cleaning the Tribble Library..."/>
|
||||
<ant antfile="build.xml" target="clean" dir="${tribble.dir}" inheritAll="false"/>
|
||||
</target>
|
||||
<!-- ***************************************************************************** -->
|
||||
<!-- ******************************************************************************** -->
|
||||
<!-- Javadoc -->
|
||||
<!-- ******************************************************************************** -->
|
||||
|
||||
<target name="clean.javadoc">
|
||||
<delete dir="javadoc"/>
|
||||
<delete dir="scaladoc"/>
|
||||
<delete dir="${javadoc.dir}" />
|
||||
</target>
|
||||
|
||||
<target name="javadoc" depends="init.buildall,resolve,queue-extensions.generate,init.scala.compile" description="generates javadoc">
|
||||
<mkdir dir="javadoc"/>
|
||||
<javadoc destdir="javadoc"
|
||||
classpathref="external.dependencies">
|
||||
<sourcepath path="${java.public.source.dir}"/>
|
||||
<sourcepath path="${external.dir}"/>
|
||||
<target name="init.javadoc">
|
||||
<mkdir dir="${javadoc.dir}" />
|
||||
</target>
|
||||
|
||||
<target name="javadoc" depends="init.buildpublic,generate.javadoc" description="Generates public javadoc" />
|
||||
|
||||
<target name="javadoc.private" depends="init.buildall,generate.javadoc" description="Generates public and private javadoc" />
|
||||
|
||||
<target name="generate.javadoc" depends="init.javadoc,resolve">
|
||||
<javadoc destdir="${javadoc.dir}" classpathref="external.dependencies">
|
||||
<fileset refid="java.source.files" />
|
||||
<sourcepath path="${external.dir}" />
|
||||
</javadoc>
|
||||
<javadoc destdir="javadoc"
|
||||
classpathref="external.dependencies">
|
||||
<sourcepath path="${java.private.source.dir}"/>
|
||||
<exclude name="**" unless="include.private" />
|
||||
</javadoc>
|
||||
<mkdir dir="scaladoc"/>
|
||||
<scaladoc srcdir="" destdir="scaladoc" classpathref="scala.dependencies" deprecation="yes" unchecked="yes">
|
||||
<src path="${scala.public.source.dir}"/>
|
||||
<src path="${scala.private.source.dir}"/>
|
||||
<src path="${queue-extensions.source.dir}"/>
|
||||
<include name="**/*.scala"/>
|
||||
</target>
|
||||
|
||||
<!-- ******************************************************************************** -->
|
||||
<!-- Scaladoc -->
|
||||
<!-- ******************************************************************************** -->
|
||||
|
||||
<target name="clean.scaladoc">
|
||||
<delete dir="${scaladoc.dir}" />
|
||||
</target>
|
||||
|
||||
<target name="init.scaladoc">
|
||||
<mkdir dir="${scaladoc.dir}" />
|
||||
</target>
|
||||
|
||||
<!-- NOTE: the scaladoc targets require that the environment variable ANT_OPTS has been set to "-Xmx1G" -->
|
||||
|
||||
<target name="scaladoc" depends="init.buildpublic,generate.scaladoc" description="Generates public scaladoc -- set ANT_OPTS to -Xmx1G" />
|
||||
|
||||
<target name="scaladoc.private" depends="init.buildall,generate.scaladoc" description="Generates public and private scaladoc -- set ANT_OPTS to -Xmx1G" />
|
||||
|
||||
<target name="generate.scaladoc" depends="resolve,queue-extensions.generate,init.scala.compile,scala.compile,init.scaladoc">
|
||||
<scaladoc srcdir="${basedir}" destdir="${scaladoc.dir}" classpathref="scala.dependencies" deprecation="yes" unchecked="yes">
|
||||
<include name="${scala.public.source.dir}/**/*.scala" />
|
||||
<include name="${queue-extensions.source.dir}/**/*.scala" />
|
||||
<include name="${scala.private.source.dir}/**/*.scala" if="include.private" />
|
||||
</scaladoc>
|
||||
</target>
|
||||
|
||||
<!-- ******************************************************************************** -->
|
||||
<!-- Release-related tasks -->
|
||||
<!-- ******************************************************************************** -->
|
||||
|
||||
<!-- Unzip all classes from their current locations and assemble them in a staging directory -->
|
||||
<target name="stage" description="stage files for distribution">
|
||||
<mkdir dir="staging"/>
|
||||
|
|
@ -1080,7 +1059,7 @@
|
|||
</findbugs>
|
||||
</target>
|
||||
|
||||
<target name="clean" description="clean up" depends="tribble.clean,clean.javadoc,clean.gatkdocs">
|
||||
<target name="clean" description="clean up" depends="clean.javadoc,clean.scaladoc,clean.gatkdocs">
|
||||
<delete dir="out"/>
|
||||
<delete dir="${build.dir}"/>
|
||||
<delete dir="${lib.dir}"/>
|
||||
|
|
|
|||
3
ivy.xml
3
ivy.xml
|
|
@ -12,6 +12,9 @@
|
|||
<dependency org="net.sf" name="picard" rev="latest.integration"/>
|
||||
<dependency org="edu.mit.broad" name="picard-private-parts" rev="latest.integration"/>
|
||||
|
||||
<!-- Tribble -->
|
||||
<dependency org="org.broad" name="tribble" rev="latest.integration"/>
|
||||
|
||||
<dependency org="log4j" name="log4j" rev="1.2.15">
|
||||
<!-- Don't include javax.mail here in default, only used in scala->default by commons-email -->
|
||||
<exclude org="javax.mail" />
|
||||
|
|
|
|||
|
|
@ -0,0 +1,82 @@
|
|||
/*
|
||||
* Copyright (c) 2011, The Broad Institute
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package org.broadinstitute.sting.gatk.examples;
|
||||
|
||||
import org.broadinstitute.sting.commandline.Argument;
|
||||
import org.broadinstitute.sting.commandline.ArgumentCollection;
|
||||
import org.broadinstitute.sting.gatk.arguments.StandardVariantContextInputArgumentCollection;
|
||||
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
|
||||
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
|
||||
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
|
||||
import org.broadinstitute.sting.gatk.walkers.RodWalker;
|
||||
|
||||
/**
|
||||
* [Short one sentence description of this walker]
|
||||
*
|
||||
* <p>
|
||||
* [Functionality of this walker]
|
||||
* </p>
|
||||
*
|
||||
* <h2>Input</h2>
|
||||
* <p>
|
||||
* [Input description]
|
||||
* </p>
|
||||
*
|
||||
* <h2>Output</h2>
|
||||
* <p>
|
||||
* [Output description]
|
||||
* </p>
|
||||
*
|
||||
* <h2>Examples</h2>
|
||||
* <pre>
|
||||
* java
|
||||
* -jar GenomeAnalysisTK.jar
|
||||
* -T $WalkerName
|
||||
* </pre>
|
||||
*
|
||||
* @author Your Name
|
||||
* @since Date created
|
||||
*/
|
||||
public class GATKDocsExample extends RodWalker<Integer, Integer> {
|
||||
/**
|
||||
* Put detailed documentation about the argument here. No need to duplicate the summary information
|
||||
* in doc annotation field, as that will be added before this text in the documentation page.
|
||||
*
|
||||
* Notes:
|
||||
* <ul>
|
||||
* <li>This field can contain HTML as a normal javadoc</li>
|
||||
* <li>Don't include information about the default value, as gatkdocs adds this automatically</li>
|
||||
* <li>Try your best to describe in detail the behavior of the argument, as ultimately confusing
|
||||
* docs here will just result in user posts on the forum</li>
|
||||
* </ul>
|
||||
*/
|
||||
@Argument(fullName="full", shortName="short", doc="Brief summary of argument [~ 80 characters of text]", required=false)
|
||||
private boolean myWalkerArgument = false;
|
||||
|
||||
public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { return 0; }
|
||||
public Integer reduceInit() { return 0; }
|
||||
public Integer reduce(Integer value, Integer sum) { return value + sum; }
|
||||
public void onTraversalDone(Integer result) { }
|
||||
}
|
||||
|
|
@ -39,7 +39,6 @@ import java.util.List;
|
|||
* this class contains static helper methods for DbSNP
|
||||
*/
|
||||
public class DbSNPHelper {
|
||||
public static final String STANDARD_DBSNP_TRACK_NAME = "dbsnp";
|
||||
|
||||
private DbSNPHelper() {} // don't make a DbSNPHelper
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
package org.broadinstitute.sting.gatk.walkers.genotyper;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.broadinstitute.sting.commandline.RodBinding;
|
||||
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
|
||||
import org.broadinstitute.sting.gatk.contexts.AlignmentContextUtils;
|
||||
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
|
||||
|
|
@ -35,6 +36,7 @@ import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
|||
import org.broadinstitute.sting.utils.pileup.PileupElement;
|
||||
import org.broadinstitute.sting.utils.pileup.ReadBackedPileup;
|
||||
import org.broadinstitute.sting.utils.variantcontext.Allele;
|
||||
import org.broadinstitute.sting.utils.variantcontext.VariantContext;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
|
|
|||
|
|
@ -321,7 +321,7 @@ public class IndelGenotypeLikelihoodsCalculationModel extends GenotypeLikelihood
|
|||
haplotypeMap.clear();
|
||||
|
||||
if (getAlleleListFromVCF) {
|
||||
for( final VariantContext vc_input : tracker.getValues(VariantContext.class, "alleles") ) {
|
||||
for( final VariantContext vc_input : tracker.getValues(UAC.alleles) ) {
|
||||
if( vc_input != null &&
|
||||
allowableTypes.contains(vc_input.getType()) &&
|
||||
ref.getLocus().getStart() == vc_input.getStart()) {
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
package org.broadinstitute.sting.gatk.walkers.genotyper;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.broadinstitute.sting.commandline.RodBinding;
|
||||
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
|
||||
import org.broadinstitute.sting.gatk.contexts.AlignmentContextUtils;
|
||||
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
|
||||
|
|
@ -57,13 +58,13 @@ public class SNPGenotypeLikelihoodsCalculationModel extends GenotypeLikelihoodsC
|
|||
useAlleleFromVCF = UAC.GenotypingMode == GENOTYPING_MODE.GENOTYPE_GIVEN_ALLELES;
|
||||
}
|
||||
|
||||
public static VariantContext getSNPVCFromAllelesRod(RefMetaDataTracker tracker, ReferenceContext ref, boolean requireSNP, Logger logger) {
|
||||
public static VariantContext getSNPVCFromAllelesRod(RefMetaDataTracker tracker, ReferenceContext ref, boolean requireSNP, Logger logger, final RodBinding<VariantContext> allelesBinding) {
|
||||
if ( tracker == null || ref == null || logger == null )
|
||||
throw new ReviewedStingException("Bad arguments: tracker=" + tracker + " ref=" + ref + " logger=" + logger);
|
||||
VariantContext vc = null;
|
||||
|
||||
// search for usable record
|
||||
for( final VariantContext vc_input : tracker.getValues(VariantContext.class, "alleles", ref.getLocus()) ) {
|
||||
for( final VariantContext vc_input : tracker.getValues(allelesBinding) ) {
|
||||
if ( vc_input != null && ! vc_input.isFiltered() && (! requireSNP || vc_input.isSNP() )) {
|
||||
if ( vc == null ) {
|
||||
vc = vc_input;
|
||||
|
|
@ -95,7 +96,7 @@ public class SNPGenotypeLikelihoodsCalculationModel extends GenotypeLikelihoodsC
|
|||
if ( alternateAlleleToUse != null ) {
|
||||
bestAlternateAllele = alternateAlleleToUse.getBases()[0];
|
||||
} else if ( useAlleleFromVCF ) {
|
||||
VariantContext vc = getSNPVCFromAllelesRod(tracker, ref, true, logger);
|
||||
VariantContext vc = getSNPVCFromAllelesRod(tracker, ref, true, logger, UAC.alleles);
|
||||
|
||||
// ignore places where we don't have a variant
|
||||
if ( vc == null )
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@ package org.broadinstitute.sting.gatk.walkers.genotyper;
|
|||
|
||||
import org.broadinstitute.sting.commandline.Argument;
|
||||
import org.broadinstitute.sting.commandline.Hidden;
|
||||
import org.broadinstitute.sting.commandline.Input;
|
||||
import org.broadinstitute.sting.commandline.RodBinding;
|
||||
import org.broadinstitute.sting.utils.variantcontext.VariantContext;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
|
|
@ -61,6 +64,11 @@ public class UnifiedArgumentCollection {
|
|||
@Argument(fullName = "computeSLOD", shortName = "sl", doc = "If provided, we will calculate the SLOD", required = false)
|
||||
public boolean COMPUTE_SLOD = false;
|
||||
|
||||
/**
|
||||
* When the UnifiedGenotyper is put into GENOTYPE_GIVEN_ALLELES mode it will genotype the samples using only the alleles provide in this rod binding
|
||||
*/
|
||||
@Input(fullName="alleles", shortName = "alleles", doc="The set of alleles at which to genotype when in GENOTYPE_MODE = GENOTYPE_GIVEN_ALLELES", required=false)
|
||||
public RodBinding<VariantContext> alleles;
|
||||
|
||||
// control the error modes
|
||||
@Hidden
|
||||
|
|
@ -168,6 +176,7 @@ public class UnifiedArgumentCollection {
|
|||
uac.OUTPUT_DEBUG_INDEL_INFO = OUTPUT_DEBUG_INDEL_INFO;
|
||||
uac.INDEL_HAPLOTYPE_SIZE = INDEL_HAPLOTYPE_SIZE;
|
||||
uac.DO_CONTEXT_DEPENDENT_PENALTIES = DO_CONTEXT_DEPENDENT_PENALTIES;
|
||||
uac.alleles = alleles;
|
||||
|
||||
uac.GET_GAP_PENALTIES_FROM_DATA = GET_GAP_PENALTIES_FROM_DATA;
|
||||
uac.INDEL_RECAL_FILE = INDEL_RECAL_FILE;
|
||||
|
|
|
|||
|
|
@ -25,10 +25,7 @@
|
|||
|
||||
package org.broadinstitute.sting.gatk.walkers.genotyper;
|
||||
|
||||
import org.broadinstitute.sting.commandline.Argument;
|
||||
import org.broadinstitute.sting.commandline.ArgumentCollection;
|
||||
import org.broadinstitute.sting.commandline.Output;
|
||||
import org.broadinstitute.sting.commandline.RodBinding;
|
||||
import org.broadinstitute.sting.commandline.*;
|
||||
import org.broadinstitute.sting.gatk.DownsampleType;
|
||||
import org.broadinstitute.sting.gatk.arguments.DbsnpArgumentCollection;
|
||||
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
|
||||
|
|
@ -60,14 +57,16 @@ import java.util.*;
|
|||
@Downsample(by=DownsampleType.BY_SAMPLE, toCoverage=250)
|
||||
public class UnifiedGenotyper extends LocusWalker<VariantCallContext, UnifiedGenotyper.UGStatistics> implements TreeReducible<UnifiedGenotyper.UGStatistics>, AnnotatorCompatibleWalker {
|
||||
|
||||
@ArgumentCollection private UnifiedArgumentCollection UAC = new UnifiedArgumentCollection();
|
||||
@ArgumentCollection
|
||||
private UnifiedArgumentCollection UAC = new UnifiedArgumentCollection();
|
||||
|
||||
/**
|
||||
* A dbSNP VCF file from which to annotate.
|
||||
*
|
||||
* rsIDs from this file are used to populate the ID column of the output. Also, the DB INFO flag will be set when appropriate.
|
||||
*/
|
||||
@ArgumentCollection protected DbsnpArgumentCollection dbsnp = new DbsnpArgumentCollection();
|
||||
@ArgumentCollection
|
||||
protected DbsnpArgumentCollection dbsnp = new DbsnpArgumentCollection();
|
||||
public RodBinding<VariantContext> getDbsnpRodBinding() { return dbsnp.dbsnp; }
|
||||
public RodBinding<SnpEffFeature> getSnpEffRodBinding() { return null; }
|
||||
public List<RodBinding<VariantContext>> getCompRodBindings() { return Collections.emptyList(); }
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ public class UnifiedGenotyperEngine {
|
|||
|
||||
// the unified argument collection
|
||||
private final UnifiedArgumentCollection UAC;
|
||||
public UnifiedArgumentCollection getUAC() { return UAC; }
|
||||
|
||||
// the annotation engine
|
||||
private final VariantAnnotatorEngine annotationEngine;
|
||||
|
|
@ -232,7 +233,7 @@ public class UnifiedGenotyperEngine {
|
|||
private VariantCallContext generateEmptyContext(RefMetaDataTracker tracker, ReferenceContext ref, Map<String, AlignmentContext> stratifiedContexts, AlignmentContext rawContext) {
|
||||
VariantContext vc;
|
||||
if ( UAC.GenotypingMode == GenotypeLikelihoodsCalculationModel.GENOTYPING_MODE.GENOTYPE_GIVEN_ALLELES ) {
|
||||
VariantContext vcInput = SNPGenotypeLikelihoodsCalculationModel.getSNPVCFromAllelesRod(tracker, ref, false, logger);
|
||||
VariantContext vcInput = SNPGenotypeLikelihoodsCalculationModel.getSNPVCFromAllelesRod(tracker, ref, false, logger, UAC.alleles);
|
||||
if ( vcInput == null )
|
||||
return null;
|
||||
vc = new VariantContext("UG_call", vcInput.getChr(), vcInput.getStart(), vcInput.getEnd(), vcInput.getAlleles());
|
||||
|
|
@ -630,7 +631,7 @@ public class UnifiedGenotyperEngine {
|
|||
// no extended event pileup
|
||||
// if we're genotyping given alleles and we have a requested SNP at this position, do SNP
|
||||
if (UAC.GenotypingMode == GenotypeLikelihoodsCalculationModel.GENOTYPING_MODE.GENOTYPE_GIVEN_ALLELES) {
|
||||
VariantContext vcInput = SNPGenotypeLikelihoodsCalculationModel.getSNPVCFromAllelesRod(tracker, refContext, false, logger);
|
||||
VariantContext vcInput = SNPGenotypeLikelihoodsCalculationModel.getSNPVCFromAllelesRod(tracker, refContext, false, logger, UAC.alleles);
|
||||
if (vcInput == null)
|
||||
return null;
|
||||
|
||||
|
|
|
|||
|
|
@ -29,10 +29,8 @@ import net.sf.samtools.*;
|
|||
import net.sf.samtools.util.SequenceUtil;
|
||||
import org.broadinstitute.sting.commandline.*;
|
||||
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
|
||||
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
|
||||
import org.broadinstitute.sting.gatk.io.StingSAMFileWriter;
|
||||
import org.broadinstitute.sting.gatk.refdata.ReadMetaDataTracker;
|
||||
import org.broadinstitute.sting.gatk.refdata.features.DbSNPHelper;
|
||||
import org.broadinstitute.sting.gatk.walkers.*;
|
||||
import org.broadinstitute.sting.utils.QualityUtils;
|
||||
import org.broadinstitute.sting.utils.Utils;
|
||||
|
|
@ -155,17 +153,6 @@ public class TableRecalibrationWalker extends ReadWalker<SAMRecord, SAMFileWrite
|
|||
int lineNumber = 0;
|
||||
boolean foundAllCovariates = false;
|
||||
|
||||
// Warn the user if a dbSNP file was specified since it isn't being used here
|
||||
boolean foundDBSNP = false;
|
||||
for( ReferenceOrderedDataSource rod : this.getToolkit().getRodDataSources() ) {
|
||||
if( rod.getName().equalsIgnoreCase(DbSNPHelper.STANDARD_DBSNP_TRACK_NAME) ) {
|
||||
foundDBSNP = true;
|
||||
}
|
||||
}
|
||||
if( foundDBSNP ) {
|
||||
Utils.warnUser("A dbSNP rod file was specified but TableRecalibrationWalker doesn't make use of it.");
|
||||
}
|
||||
|
||||
// Read in the data from the csv file and populate the data map and covariates list
|
||||
logger.info( "Reading in the data from input csv file..." );
|
||||
|
||||
|
|
|
|||
|
|
@ -3,13 +3,11 @@ package org.broadinstitute.sting.gatk.walkers.varianteval;
|
|||
import net.sf.picard.reference.IndexedFastaSequenceFile;
|
||||
import net.sf.samtools.SAMSequenceRecord;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.broadinstitute.sting.commandline.Argument;
|
||||
import org.broadinstitute.sting.commandline.Output;
|
||||
import org.broadinstitute.sting.commandline.*;
|
||||
import org.broadinstitute.sting.gatk.arguments.DbsnpArgumentCollection;
|
||||
import org.broadinstitute.sting.gatk.contexts.AlignmentContext;
|
||||
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
|
||||
import org.broadinstitute.sting.gatk.datasources.rmd.ReferenceOrderedDataSource;
|
||||
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
|
||||
import org.broadinstitute.sting.gatk.refdata.features.DbSNPHelper;
|
||||
import org.broadinstitute.sting.gatk.report.GATKReport;
|
||||
import org.broadinstitute.sting.gatk.report.GATKReportTable;
|
||||
import org.broadinstitute.sting.gatk.walkers.Reference;
|
||||
|
|
@ -22,12 +20,11 @@ import org.broadinstitute.sting.gatk.walkers.varianteval.util.*;
|
|||
import org.broadinstitute.sting.gatk.walkers.variantrecalibration.Tranche;
|
||||
import org.broadinstitute.sting.gatk.walkers.variantrecalibration.VariantRecalibrator;
|
||||
import org.broadinstitute.sting.utils.SampleUtils;
|
||||
import org.broadinstitute.sting.utils.Utils;
|
||||
import org.broadinstitute.sting.utils.codecs.vcf.VCFHeader;
|
||||
import org.broadinstitute.sting.utils.codecs.vcf.VCFUtils;
|
||||
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
||||
import org.broadinstitute.sting.utils.exceptions.StingException;
|
||||
import org.broadinstitute.sting.utils.exceptions.UserException;
|
||||
import org.broadinstitute.sting.utils.variantcontext.Allele;
|
||||
import org.broadinstitute.sting.utils.variantcontext.VariantContext;
|
||||
import org.broadinstitute.sting.utils.variantcontext.VariantContextUtils;
|
||||
|
||||
|
|
@ -46,6 +43,16 @@ public class VariantEvalWalker extends RodWalker<Integer, Integer> implements Tr
|
|||
@Output
|
||||
protected PrintStream out;
|
||||
|
||||
@Input(fullName="eval", shortName = "eval", doc="Input evaluation file(s)", required=true)
|
||||
public List<RodBinding<VariantContext>> evals;
|
||||
|
||||
@Input(fullName="comp", shortName = "comp", doc="Input comparison file(s)", required=false)
|
||||
public List<RodBinding<VariantContext>> compsProvided = Collections.emptyList();
|
||||
private List<RodBinding<VariantContext>> comps = new ArrayList<RodBinding<VariantContext>>();
|
||||
|
||||
@ArgumentCollection
|
||||
protected DbsnpArgumentCollection dbsnp = new DbsnpArgumentCollection();
|
||||
|
||||
// Help arguments
|
||||
@Argument(fullName="list", shortName="ls", doc="List the available eval modules and exit")
|
||||
protected Boolean LIST = false;
|
||||
|
|
@ -61,7 +68,7 @@ public class VariantEvalWalker extends RodWalker<Integer, Integer> implements Tr
|
|||
protected Set<String> SAMPLE_EXPRESSIONS;
|
||||
|
||||
@Argument(shortName="knownName", doc="Name of ROD bindings containing variant sites that should be treated as known when splitting eval rods into known and novel subsets", required=false)
|
||||
protected String[] KNOWN_NAMES = {DbSNPHelper.STANDARD_DBSNP_TRACK_NAME};
|
||||
protected String[] KNOWN_NAMES = {};
|
||||
|
||||
// Stratification arguments
|
||||
@Argument(fullName="stratificationModule", shortName="ST", doc="One or more specific stratification modules to apply to the eval track(s) (in addition to the standard stratifications, unless -noS is specified)", required=false)
|
||||
|
|
@ -115,6 +122,10 @@ public class VariantEvalWalker extends RodWalker<Integer, Integer> implements Tr
|
|||
// The set of all possible evaluation contexts
|
||||
private HashMap<StateKey, NewEvaluationContext> evaluationContexts = null;
|
||||
|
||||
// important stratifications
|
||||
private boolean byFilterIsEnabled = false;
|
||||
private boolean perSampleIsEnabled = false;
|
||||
|
||||
// Output report
|
||||
private GATKReport report = null;
|
||||
|
||||
|
|
@ -134,28 +145,25 @@ public class VariantEvalWalker extends RodWalker<Integer, Integer> implements Tr
|
|||
// Just list the modules, and exit quickly.
|
||||
if (LIST) { variantEvalUtils.listModulesAndExit(); }
|
||||
|
||||
// Categorize each rod as an eval or a comp rod.
|
||||
for ( ReferenceOrderedDataSource d : this.getToolkit().getRodDataSources() ) {
|
||||
if ( d.getName().startsWith("eval") ) {
|
||||
evalNames.add(d.getName());
|
||||
} else if ( d.getName().startsWith("comp") || d.getName().startsWith(DbSNPHelper.STANDARD_DBSNP_TRACK_NAME) ) {
|
||||
compNames.add(d.getName());
|
||||
} else {
|
||||
logger.info(String.format("Not evaluating ROD binding '%s' because the name did not start with %s, comp, or eval", d.getName(), Utils.join(", ", KNOWN_NAMES)));
|
||||
}
|
||||
}
|
||||
|
||||
// Barf if we don't have any eval tracks.
|
||||
if (evalNames.size() == 0) {
|
||||
throw new UserException("No evaluation tracks were specified. Please bind one or more callsets to evaluate using the -B argument with a trackname that starts with the word 'eval'.");
|
||||
// maintain the full list of comps
|
||||
comps.addAll(compsProvided);
|
||||
if ( dbsnp.dbsnp.isBound() ) {
|
||||
comps.add(dbsnp.dbsnp);
|
||||
knownNames.add(dbsnp.dbsnp.getName());
|
||||
}
|
||||
|
||||
// Add a dummy comp track if none exists
|
||||
if (compNames.size() == 0) {
|
||||
compNames.add("none");
|
||||
}
|
||||
if ( comps.size() == 0 )
|
||||
comps.add(new RodBinding<VariantContext>(VariantContext.class, "none", "UNBOUND", "", new Tags()));
|
||||
|
||||
// Set up set of known names
|
||||
// Cache the rod names
|
||||
for ( RodBinding<VariantContext> compRod : comps )
|
||||
compNames.add(compRod.getName());
|
||||
|
||||
for ( RodBinding<VariantContext> evalRod : evals )
|
||||
evalNames.add(evalRod.getName());
|
||||
|
||||
// Set up set of additional known names
|
||||
knownNames.addAll(Arrays.asList(KNOWN_NAMES));
|
||||
|
||||
// Now that we have all the rods categorized, determine the sample list from the eval rods.
|
||||
|
|
@ -190,6 +198,12 @@ public class VariantEvalWalker extends RodWalker<Integer, Integer> implements Tr
|
|||
// Initialize the set of stratifications and evaluations to use
|
||||
stratificationObjects = variantEvalUtils.initializeStratificationObjects(this, NO_STANDARD_STRATIFICATIONS, STRATIFICATIONS_TO_USE);
|
||||
Set<Class<? extends VariantEvaluator>> evaluationObjects = variantEvalUtils.initializeEvaluationObjects(NO_STANDARD_MODULES, MODULES_TO_USE);
|
||||
for ( VariantStratifier vs : getStratificationObjects() ) {
|
||||
if ( vs.getClass().getSimpleName().equals("Filter") )
|
||||
byFilterIsEnabled = true;
|
||||
else if ( vs.getClass().getSimpleName().equals("Sample") )
|
||||
perSampleIsEnabled = true;
|
||||
}
|
||||
|
||||
// Initialize the evaluation contexts
|
||||
evaluationContexts = variantEvalUtils.initializeEvaluationContexts(stratificationObjects, evaluationObjects, null, null);
|
||||
|
|
@ -221,61 +235,66 @@ public class VariantEvalWalker extends RodWalker<Integer, Integer> implements Tr
|
|||
if (tracker != null) {
|
||||
String aastr = (ancestralAlignments == null) ? null : new String(ancestralAlignments.getSubsequenceAt(ref.getLocus().getContig(), ref.getLocus().getStart(), ref.getLocus().getStop()).getBases());
|
||||
|
||||
// track sample vc
|
||||
HashMap<String, HashMap<String, VariantContext>> vcs = variantEvalUtils.getVariantContexts(tracker, ref, compNames, evalNames, typesToUse != null);
|
||||
// --------- track --------- sample - VariantContexts -
|
||||
HashMap<RodBinding<VariantContext>, HashMap<String, Set<VariantContext>>> evalVCs = variantEvalUtils.bindVariantContexts(tracker, ref, evals, byFilterIsEnabled, true, perSampleIsEnabled);
|
||||
HashMap<RodBinding<VariantContext>, HashMap<String, Set<VariantContext>>> compVCs = variantEvalUtils.bindVariantContexts(tracker, ref, comps, byFilterIsEnabled, false, false);
|
||||
|
||||
for ( String compName : compNames ) {
|
||||
VariantContext comp = vcs.containsKey(compName) && vcs.get(compName) != null && vcs.get(compName).containsKey(ALL_SAMPLE_NAME) ? vcs.get(compName).get(ALL_SAMPLE_NAME) : null;
|
||||
// for each eval track
|
||||
for ( final RodBinding<VariantContext> evalRod : evals ) {
|
||||
final HashMap<String, Set<VariantContext>> evalSet = evalVCs.containsKey(evalRod) ? evalVCs.get(evalRod) : new HashMap<String, Set<VariantContext>>(0);
|
||||
|
||||
for ( String evalName : evalNames ) {
|
||||
for ( String sampleName : sampleNamesForStratification ) {
|
||||
VariantContext eval = vcs.containsKey(evalName) && vcs.get(evalName) != null ? vcs.get(evalName).get(sampleName) : null;
|
||||
// for each sample stratifier
|
||||
for ( final String sampleName : sampleNamesForStratification ) {
|
||||
Set<VariantContext> evalSetBySample = evalSet.get(sampleName);
|
||||
if ( evalSetBySample == null ) {
|
||||
evalSetBySample = new HashSet<VariantContext>(1);
|
||||
evalSetBySample.add(null);
|
||||
}
|
||||
|
||||
// todo: Eric, this is really the problem. We select single eval and comp VCs independently
|
||||
// todo: discarding multiple eval tracks at the sites and not providing matched comps
|
||||
// todo: where appropriate. Really this loop should look like:
|
||||
// todo: for each eval track:
|
||||
// todo: for each eval in track:
|
||||
// todo: for each compTrack:
|
||||
// todo: comp = findMatchingComp(eval, compTrack) // find the matching comp in compTrack
|
||||
// todo: call evalModule(eval, comp)
|
||||
// todo: // may return null if no such comp exists, but proceed as eval modules may need to see eval / null pair
|
||||
// todo: for each comp not matched by an eval in compTrack:
|
||||
// todo: call evalModule(null, comp)
|
||||
// todo: // need to call with null comp, as module
|
||||
// todo: note that the reason Kiran pre-computed the possible VCs is to apply the modifiers
|
||||
// todo: like subset to sample, etc. So you probably will want a master map that maps
|
||||
// todo: from special eval bindings to the digested VC for efficiency.
|
||||
|
||||
if ( typesToUse != null ) {
|
||||
if ( eval != null && ! typesToUse.contains(eval.getType()) ) eval = null;
|
||||
if ( comp != null && ! typesToUse.contains(comp.getType()) ) comp = null;
|
||||
// if ( eval != null ) logger.info("Keeping " + eval);
|
||||
}
|
||||
|
||||
if (eval != null && aastr != null) {
|
||||
// for each eval in the track
|
||||
for ( VariantContext eval : evalSetBySample ) {
|
||||
// deal with ancestral alleles if requested
|
||||
if ( eval != null && aastr != null ) {
|
||||
HashMap<String, Object> newAts = new HashMap<String, Object>(eval.getAttributes());
|
||||
newAts.put("ANCESTRALALLELE", aastr);
|
||||
|
||||
eval = VariantContext.modifyAttributes(eval, newAts);
|
||||
}
|
||||
|
||||
HashMap<VariantStratifier, ArrayList<String>> stateMap = new HashMap<VariantStratifier, ArrayList<String>>();
|
||||
for ( VariantStratifier vs : stratificationObjects ) {
|
||||
ArrayList<String> states = vs.getRelevantStates(ref, tracker, comp, compName, eval, evalName, sampleName);
|
||||
stateMap.put(vs, states);
|
||||
}
|
||||
// for each comp track
|
||||
for ( final RodBinding<VariantContext> compRod : comps ) {
|
||||
// no sample stratification for comps
|
||||
final Set<VariantContext> compSet = compVCs.get(compRod) == null ? new HashSet<VariantContext>(0) : compVCs.get(compRod).values().iterator().next();
|
||||
|
||||
ArrayList<StateKey> stateKeys = new ArrayList<StateKey>();
|
||||
variantEvalUtils.initializeStateKeys(stateMap, null, null, stateKeys);
|
||||
// find the comp
|
||||
final VariantContext comp = findMatchingComp(eval, compSet);
|
||||
|
||||
HashSet<StateKey> stateKeysHash = new HashSet<StateKey>(stateKeys);
|
||||
HashMap<VariantStratifier, ArrayList<String>> stateMap = new HashMap<VariantStratifier, ArrayList<String>>();
|
||||
for ( VariantStratifier vs : stratificationObjects ) {
|
||||
ArrayList<String> states = vs.getRelevantStates(ref, tracker, comp, compRod.getName(), eval, evalRod.getName(), sampleName);
|
||||
stateMap.put(vs, states);
|
||||
}
|
||||
|
||||
for ( StateKey stateKey : stateKeysHash ) {
|
||||
NewEvaluationContext nec = evaluationContexts.get(stateKey);
|
||||
ArrayList<StateKey> stateKeys = new ArrayList<StateKey>();
|
||||
variantEvalUtils.initializeStateKeys(stateMap, null, null, stateKeys);
|
||||
|
||||
synchronized (nec) {
|
||||
nec.apply(tracker, ref, context, comp, eval);
|
||||
HashSet<StateKey> stateKeysHash = new HashSet<StateKey>(stateKeys);
|
||||
|
||||
for ( StateKey stateKey : stateKeysHash ) {
|
||||
NewEvaluationContext nec = evaluationContexts.get(stateKey);
|
||||
|
||||
// eval against the comp
|
||||
synchronized (nec) {
|
||||
nec.apply(tracker, ref, context, comp, eval);
|
||||
}
|
||||
|
||||
// eval=null against all comps of different type
|
||||
for ( VariantContext otherComp : compSet ) {
|
||||
if ( otherComp != comp ) {
|
||||
synchronized (nec) {
|
||||
nec.apply(tracker, ref, context, otherComp, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -286,6 +305,38 @@ public class VariantEvalWalker extends RodWalker<Integer, Integer> implements Tr
|
|||
return null;
|
||||
}
|
||||
|
||||
private VariantContext findMatchingComp(final VariantContext eval, final Set<VariantContext> comps) {
|
||||
// if no comps, return null
|
||||
if ( comps == null || comps.isEmpty() )
|
||||
return null;
|
||||
|
||||
// if no eval, return any comp
|
||||
if ( eval == null )
|
||||
return comps.iterator().next();
|
||||
|
||||
// find all of the matching comps
|
||||
List<VariantContext> matchingComps = new ArrayList<VariantContext>(comps.size());
|
||||
for ( VariantContext comp : comps ) {
|
||||
if ( comp.getType() == eval.getType() )
|
||||
matchingComps.add(comp);
|
||||
}
|
||||
|
||||
// if no matching comp, return null
|
||||
if ( matchingComps.size() == 0 )
|
||||
return null;
|
||||
|
||||
// find the comp which matches the alternate allele from eval
|
||||
Allele altEval = eval.getAlternateAlleles().size() == 0 ? null : eval.getAlternateAllele(0);
|
||||
for ( VariantContext comp : matchingComps ) {
|
||||
Allele altComp = comp.getAlternateAlleles().size() == 0 ? null : comp.getAlternateAllele(0);
|
||||
if ( (altEval == null && altComp == null) || (altEval != null && altEval.equals(altComp)) )
|
||||
return comp;
|
||||
}
|
||||
|
||||
// if none match, just return the first one
|
||||
return matchingComps.get(0);
|
||||
}
|
||||
|
||||
public Integer treeReduce(Integer lhs, Integer rhs) { return null; }
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -93,28 +93,35 @@ public class CountVariants extends VariantEvaluator implements StandardEval {
|
|||
public String update1(VariantContext vc1, RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) {
|
||||
nCalledLoci++;
|
||||
|
||||
if (vc1.isVariant()) nVariantLoci++;
|
||||
switch (vc1.getType()) {
|
||||
case NO_VARIATION:
|
||||
nRefLoci++;
|
||||
break;
|
||||
case SNP:
|
||||
nSNPs++;
|
||||
if (vc1.getAttributeAsBoolean("ISSINGLETON")) nSingletons++;
|
||||
break;
|
||||
case MNP:
|
||||
nMNPs++;
|
||||
if (vc1.getAttributeAsBoolean("ISSINGLETON")) nSingletons++;
|
||||
break;
|
||||
case INDEL:
|
||||
if (vc1.isInsertion()) nInsertions++;
|
||||
else nDeletions++;
|
||||
break;
|
||||
case MIXED:
|
||||
nComplex++;
|
||||
break;
|
||||
default:
|
||||
throw new ReviewedStingException("Unexpected VariantContext type " + vc1.getType());
|
||||
// Note from Eric:
|
||||
// This is really not correct. What we really want here is a polymorphic vs. monomorphic count (i.e. on the Genotypes).
|
||||
// So in order to maintain consistency with the previous implementation (and the intention of the original author), I've
|
||||
// added in a proxy check for monomorphic status here.
|
||||
if ( !vc1.isVariant() || (vc1.hasGenotypes() && vc1.getHomRefCount() == vc1.getNSamples()) ) {
|
||||
nRefLoci++;
|
||||
} else {
|
||||
nVariantLoci++;
|
||||
switch (vc1.getType()) {
|
||||
case NO_VARIATION:
|
||||
break;
|
||||
case SNP:
|
||||
nSNPs++;
|
||||
if (vc1.getAttributeAsBoolean("ISSINGLETON")) nSingletons++;
|
||||
break;
|
||||
case MNP:
|
||||
nMNPs++;
|
||||
if (vc1.getAttributeAsBoolean("ISSINGLETON")) nSingletons++;
|
||||
break;
|
||||
case INDEL:
|
||||
if (vc1.isInsertion()) nInsertions++;
|
||||
else nDeletions++;
|
||||
break;
|
||||
case MIXED:
|
||||
nComplex++;
|
||||
break;
|
||||
default:
|
||||
throw new ReviewedStingException("Unexpected VariantContext type " + vc1.getType());
|
||||
}
|
||||
}
|
||||
|
||||
String refStr = vc1.getReference().getBaseString().toUpperCase();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package org.broadinstitute.sting.gatk.walkers.varianteval.util;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.broadinstitute.sting.commandline.RodBinding;
|
||||
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
|
||||
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
|
||||
import org.broadinstitute.sting.gatk.report.GATKReport;
|
||||
|
|
@ -56,8 +57,9 @@ public class VariantEvalUtils {
|
|||
/**
|
||||
* Initialize required, standard and user-specified stratification objects
|
||||
*
|
||||
* @param noStandardStrats don't use the standard stratifications
|
||||
* @param modulesToUse the list of stratification modules to use
|
||||
* @param variantEvalWalker the parent walker
|
||||
* @param noStandardStrats don't use the standard stratifications
|
||||
* @param modulesToUse the list of stratification modules to use
|
||||
* @return set of stratifications to use
|
||||
*/
|
||||
public TreeSet<VariantStratifier> initializeStratificationObjects(VariantEvalWalker variantEvalWalker, boolean noStandardStrats, String[] modulesToUse) {
|
||||
|
|
@ -256,23 +258,6 @@ public class VariantEvalUtils {
|
|||
return report;
|
||||
}
|
||||
|
||||
/**
|
||||
* Figure out what the allowable variation types are based on the eval context
|
||||
*
|
||||
* @param tracker the reference metadata tracker
|
||||
* @param ref the reference context
|
||||
* @param compNames the comp track names
|
||||
* @param evalNames the evaluation track names
|
||||
* @return the set of allowable variation types
|
||||
*/
|
||||
public EnumSet<VariantContext.Type> getAllowableVariationTypes(RefMetaDataTracker tracker,
|
||||
ReferenceContext ref,
|
||||
Set<String> compNames,
|
||||
Set<String> evalNames,
|
||||
boolean dynamicSelectTypes ) {
|
||||
return EnumSet.allOf(VariantContext.Type.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Subset a VariantContext to a single sample
|
||||
*
|
||||
|
|
@ -295,7 +280,7 @@ public class VariantEvalUtils {
|
|||
* @return a new VariantContext with just the requested samples
|
||||
*/
|
||||
public VariantContext getSubsetOfVariantContext(VariantContext vc, Collection<String> sampleNames) {
|
||||
VariantContext vcsub = vc.subContextFromGenotypes(vc.getGenotypes(sampleNames).values());
|
||||
VariantContext vcsub = vc.subContextFromGenotypes(vc.getGenotypes(sampleNames).values(), vc.getAlleles());
|
||||
|
||||
HashMap<String, Object> newAts = new HashMap<String, Object>(vcsub.getAttributes());
|
||||
|
||||
|
|
@ -321,78 +306,59 @@ public class VariantEvalUtils {
|
|||
*
|
||||
* @param tracker the metadata tracker
|
||||
* @param ref the reference context
|
||||
* @param trackNames the list of track names to process
|
||||
* @param allowableTypes a set of allowable variation types
|
||||
* @param tracks the list of tracks to process
|
||||
* @param byFilter if false, only accept PASSing VariantContexts. Otherwise, accept both PASSing and filtered
|
||||
* sites
|
||||
* @param subsetBySample if false, do not separate the track into per-sample VCs
|
||||
* @param trackPerSample if false, don't stratify per sample (and don't cut up the VariantContext like we would need
|
||||
* to do this)
|
||||
* @return a mapping of track names to a list of VariantContext objects
|
||||
*
|
||||
* @return the mapping of track to VC list that should be populated
|
||||
*/
|
||||
protected void bindVariantContexts(HashMap<String, HashMap<String, VariantContext>> bindings, RefMetaDataTracker tracker, ReferenceContext ref, Set<String> trackNames, EnumSet<VariantContext.Type> allowableTypes, boolean byFilter, boolean subsetBySample, boolean trackPerSample) {
|
||||
for (String trackName : trackNames) {
|
||||
HashMap<String, VariantContext> vcs = new HashMap<String, VariantContext>();
|
||||
public HashMap<RodBinding<VariantContext>, HashMap<String, Set<VariantContext>>> bindVariantContexts(RefMetaDataTracker tracker, ReferenceContext ref, List<RodBinding<VariantContext>> tracks, boolean byFilter, boolean subsetBySample, boolean trackPerSample) {
|
||||
if ( tracker == null )
|
||||
return null;
|
||||
|
||||
VariantContext vc = tracker == null ? null : tracker.getFirstValue(VariantContext.class, trackName, ref.getLocus());
|
||||
HashMap<RodBinding<VariantContext>, HashMap<String, Set<VariantContext>>> bindings = new HashMap<RodBinding<VariantContext>, HashMap<String, Set<VariantContext>>>();
|
||||
|
||||
// First, filter the VariantContext to represent only the samples for evaluation
|
||||
if (vc != null) {
|
||||
for ( RodBinding<VariantContext> track : tracks ) {
|
||||
HashMap<String, Set<VariantContext>> mapping = new HashMap<String, Set<VariantContext>>();
|
||||
|
||||
for ( VariantContext vc : tracker.getValues(track, ref.getLocus()) ) {
|
||||
|
||||
// First, filter the VariantContext to represent only the samples for evaluation
|
||||
VariantContext vcsub = vc;
|
||||
|
||||
if (subsetBySample && vc.hasGenotypes() && vc.hasGenotypes(variantEvalWalker.getSampleNamesForEvaluation())) {
|
||||
if ( subsetBySample && vc.hasGenotypes() && vc.hasGenotypes(variantEvalWalker.getSampleNamesForEvaluation()) ) {
|
||||
vcsub = getSubsetOfVariantContext(vc, variantEvalWalker.getSampleNamesForEvaluation());
|
||||
}
|
||||
|
||||
if ((byFilter || !vcsub.isFiltered())) {
|
||||
vcs.put(VariantEvalWalker.getAllSampleName(), vcsub);
|
||||
if ( (byFilter || !vcsub.isFiltered()) ) {
|
||||
addMapping(mapping, VariantEvalWalker.getAllSampleName(), vcsub);
|
||||
}
|
||||
|
||||
// Now, if stratifying, split the subsetted vc per sample and add each as a new context
|
||||
if (vc.hasGenotypes() && trackPerSample) {
|
||||
for (String sampleName : variantEvalWalker.getSampleNamesForEvaluation()) {
|
||||
if ( vc.hasGenotypes() && trackPerSample ) {
|
||||
for ( String sampleName : variantEvalWalker.getSampleNamesForEvaluation() ) {
|
||||
VariantContext samplevc = getSubsetOfVariantContext(vc, sampleName);
|
||||
|
||||
if ((byFilter || !samplevc.isFiltered())) {
|
||||
vcs.put(sampleName, samplevc);
|
||||
if ( byFilter || !samplevc.isFiltered() ) {
|
||||
addMapping(mapping, sampleName, samplevc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bindings.put(trackName, vcs);
|
||||
bindings.put(track, mapping);
|
||||
}
|
||||
}
|
||||
|
||||
return bindings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Maps track names to sample name to VariantContext objects. For eval tracks, VariantContexts per specified sample
|
||||
* are also included.
|
||||
*
|
||||
* @param tracker the metadata tracker
|
||||
* @param ref the reference context
|
||||
* @param compNames the list of comp names to process
|
||||
* @param evalNames the list of eval names to process
|
||||
* @return a mapping of track names to a list of VariantContext objects
|
||||
*/
|
||||
public HashMap<String, HashMap<String, VariantContext>> getVariantContexts(RefMetaDataTracker tracker, ReferenceContext ref, Set<String> compNames, Set<String> evalNames, boolean dynamicSelectTypes) {
|
||||
HashMap<String, HashMap<String, VariantContext>> vcs = new HashMap<String, HashMap<String, VariantContext>>();
|
||||
|
||||
EnumSet<VariantContext.Type> allowableTypes = getAllowableVariationTypes(tracker, ref, compNames, evalNames, dynamicSelectTypes);
|
||||
|
||||
boolean byFilter = false;
|
||||
boolean perSampleIsEnabled = false;
|
||||
for (VariantStratifier vs : variantEvalWalker.getStratificationObjects()) {
|
||||
if (vs.getClass().getSimpleName().equals("Filter")) {
|
||||
byFilter = true;
|
||||
} else if (vs.getClass().getSimpleName().equals("Sample")) {
|
||||
perSampleIsEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
bindVariantContexts(vcs, tracker, ref, evalNames, allowableTypes, byFilter, true, perSampleIsEnabled);
|
||||
bindVariantContexts(vcs, tracker, ref, compNames, allowableTypes, byFilter, false, false);
|
||||
|
||||
return vcs;
|
||||
private void addMapping(HashMap<String, Set<VariantContext>> mappings, String sample, VariantContext vc) {
|
||||
if ( !mappings.containsKey(sample) )
|
||||
mappings.put(sample, new HashSet<VariantContext>());
|
||||
mappings.get(sample).add(vc);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ public abstract class BaseTest {
|
|||
public static final String b36dbSNP129 = dbsnpDataLocation + "dbsnp_129_b36.vcf";
|
||||
public static final String b37dbSNP129 = dbsnpDataLocation + "dbsnp_129_b37.vcf";
|
||||
public static final String b37dbSNP132 = dbsnpDataLocation + "dbsnp_132_b37.vcf";
|
||||
public static final String hg18dbSNP132 = dbsnpDataLocation + "dbsnp_132.hg18.vcf";
|
||||
|
||||
public static final String hapmapDataLocation = comparisonDataLocation + "Validated/HapMap/3.3/";
|
||||
public static final String b37hapmapGenotypes = hapmapDataLocation + "genotypes_r27_nr.b37_fwd.vcf";
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ import java.util.Map;
|
|||
|
||||
public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
||||
|
||||
private final static String baseCommand = "-T UnifiedGenotyper -R " + b36KGReference + " -NO_HEADER -glm BOTH";
|
||||
private final static String baseCommandIndels = "-T UnifiedGenotyper -R " + b36KGReference + " -NO_HEADER -glm INDEL";
|
||||
private final static String baseCommand = "-T UnifiedGenotyper -R " + b36KGReference + " -NO_HEADER -glm BOTH --dbsnp " + b36dbSNP129;
|
||||
private final static String baseCommandIndels = "-T UnifiedGenotyper -R " + b36KGReference + " -NO_HEADER -glm INDEL --dbsnp " + b36dbSNP129;
|
||||
|
||||
// --------------------------------------------------------------------------------------------------------------
|
||||
//
|
||||
|
|
@ -28,7 +28,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
public void testMultiSamplePilot1() {
|
||||
WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
|
||||
baseCommand + " -I " + validationDataLocation + "low_coverage_CEU.chr1.10k-11k.bam -o %s -L 1:10,022,000-10,025,000", 1,
|
||||
Arrays.asList("16b0c7b47745abcd1ddaa2e261719530"));
|
||||
Arrays.asList("149e6ad9b3fd23551254a691286a96b3"));
|
||||
executeTest("test MultiSample Pilot1", spec);
|
||||
}
|
||||
|
||||
|
|
@ -45,7 +45,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
GenomeAnalysisEngine.resetRandomGenerator();
|
||||
|
||||
WalkerTest.WalkerTestSpec spec2 = new WalkerTest.WalkerTestSpec(
|
||||
baseCommand + " --genotyping_mode GENOTYPE_GIVEN_ALLELES -B:alleles,vcf " + result.get(0).getAbsolutePath() + " -I " + validationDataLocation + "pilot2_daughters.chr20.10k-11k.bam -o %s -L 20:10,000,000-10,050,000", 1,
|
||||
baseCommand + " --genotyping_mode GENOTYPE_GIVEN_ALLELES -alleles " + result.get(0).getAbsolutePath() + " -I " + validationDataLocation + "pilot2_daughters.chr20.10k-11k.bam -o %s -L 20:10,000,000-10,050,000", 1,
|
||||
Arrays.asList(md5));
|
||||
executeTest("test MultiSample Pilot2 with alleles passed in", spec2);
|
||||
}
|
||||
|
|
@ -53,13 +53,13 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
@Test
|
||||
public void testWithAllelesPassedIn() {
|
||||
WalkerTest.WalkerTestSpec spec1 = new WalkerTest.WalkerTestSpec(
|
||||
baseCommand + " --genotyping_mode GENOTYPE_GIVEN_ALLELES -B:alleles,vcf " + validationDataLocation + "allelesForUG.vcf -I " + validationDataLocation + "pilot2_daughters.chr20.10k-11k.bam -o %s -L 20:10,000,000-10,025,000", 1,
|
||||
Arrays.asList("811ddc0bd8322b14f14f58df8c627aa9"));
|
||||
baseCommand + " --genotyping_mode GENOTYPE_GIVEN_ALLELES -alleles " + validationDataLocation + "allelesForUG.vcf -I " + validationDataLocation + "pilot2_daughters.chr20.10k-11k.bam -o %s -L 20:10,000,000-10,025,000", 1,
|
||||
Arrays.asList("8de2602679ffc92388da0b6cb4325ef6"));
|
||||
executeTest("test MultiSample Pilot2 with alleles passed in", spec1);
|
||||
|
||||
WalkerTest.WalkerTestSpec spec2 = new WalkerTest.WalkerTestSpec(
|
||||
baseCommand + " --output_mode EMIT_ALL_SITES --genotyping_mode GENOTYPE_GIVEN_ALLELES -B:alleles,vcf " + validationDataLocation + "allelesForUG.vcf -I " + validationDataLocation + "pilot2_daughters.chr20.10k-11k.bam -o %s -L 20:10,000,000-10,025,000", 1,
|
||||
Arrays.asList("5cf08dd7ac3d218082f7be3915ce0b15"));
|
||||
baseCommand + " --output_mode EMIT_ALL_SITES --genotyping_mode GENOTYPE_GIVEN_ALLELES -alleles " + validationDataLocation + "allelesForUG.vcf -I " + validationDataLocation + "pilot2_daughters.chr20.10k-11k.bam -o %s -L 20:10,000,000-10,025,000", 1,
|
||||
Arrays.asList("ec43daadfb15b00b41aeb0017a45df0b"));
|
||||
executeTest("test MultiSample Pilot2 with alleles passed in and emitting all sites", spec2);
|
||||
}
|
||||
|
||||
|
|
@ -67,7 +67,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
public void testSingleSamplePilot2() {
|
||||
WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
|
||||
baseCommand + " -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -o %s -L 1:10,000,000-10,100,000", 1,
|
||||
Arrays.asList("75156264696563c2f47620fef9424f7c"));
|
||||
Arrays.asList("82d469145c174486ccc494884852cc58"));
|
||||
executeTest("test SingleSample Pilot2", spec);
|
||||
}
|
||||
|
||||
|
|
@ -77,7 +77,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
//
|
||||
// --------------------------------------------------------------------------------------------------------------
|
||||
|
||||
private final static String COMPRESSED_OUTPUT_MD5 = "7255e03430549cb97d8fcae34cbffb02";
|
||||
private final static String COMPRESSED_OUTPUT_MD5 = "a5a9f38c645d6004d4640765a8b77ce4";
|
||||
|
||||
@Test
|
||||
public void testCompressedOutput() {
|
||||
|
|
@ -107,7 +107,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
|
||||
// Note that we need to turn off any randomization for this to work, so no downsampling and no annotations
|
||||
|
||||
String md5 = "7912109e83fda21dae90ef8d5dd0140d";
|
||||
String md5 = "0a45761c0e557d9c2080eb9e7f4f6c41";
|
||||
|
||||
WalkerTest.WalkerTestSpec spec1 = new WalkerTest.WalkerTestSpec(
|
||||
baseCommand + " -dt NONE -G none -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -o %s -L 1:10,000,000-10,075,000", 1,
|
||||
|
|
@ -138,10 +138,9 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
@Test
|
||||
public void testCallingParameters() {
|
||||
HashMap<String, String> e = new HashMap<String, String>();
|
||||
e.put( "--min_base_quality_score 26", "6d3aa9f783ca63f37c952f83eeda593c" );
|
||||
e.put( "--min_mapping_quality_score 26", "51bfdf777123bf49de5d92ffde5c74e7" );
|
||||
e.put( "--p_nonref_model GRID_SEARCH", "333328ab2c8da2875fade599e80a271f" );
|
||||
e.put( "--computeSLOD", "226caa28a4fa9fe34f3beb8a23f3d53d" );
|
||||
e.put( "--min_base_quality_score 26", "531966aee1cd5dced61c96c4fedb59a9" );
|
||||
e.put( "--min_mapping_quality_score 26", "c71ca370947739cb7d87b59452be7a07" );
|
||||
e.put( "--computeSLOD", "1a5648f26c18ced27df4be031b44e72d" );
|
||||
|
||||
for ( Map.Entry<String, String> entry : e.entrySet() ) {
|
||||
WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
|
||||
|
|
@ -154,9 +153,9 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
@Test
|
||||
public void testOutputParameter() {
|
||||
HashMap<String, String> e = new HashMap<String, String>();
|
||||
e.put( "-sites_only", "5f659dee408710d3709ed72005cd863a" );
|
||||
e.put( "--output_mode EMIT_ALL_CONFIDENT_SITES", "55d09bf13149bddc06cc36be0801507b" );
|
||||
e.put( "--output_mode EMIT_ALL_SITES", "727f49dcb2439b18446829efc3b1561c" );
|
||||
e.put( "-sites_only", "d40114aa201aa33ff5f174f15b6b73af" );
|
||||
e.put( "--output_mode EMIT_ALL_CONFIDENT_SITES", "3c681b053fd2280f3c42041d24243752" );
|
||||
e.put( "--output_mode EMIT_ALL_SITES", "eafa6d71c5ecd64dfee5d7a3f60e392e" );
|
||||
|
||||
for ( Map.Entry<String, String> entry : e.entrySet() ) {
|
||||
WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
|
||||
|
|
@ -170,12 +169,12 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
public void testConfidence() {
|
||||
WalkerTest.WalkerTestSpec spec1 = new WalkerTest.WalkerTestSpec(
|
||||
baseCommand + " -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -o %s -L 1:10,000,000-10,010,000 -stand_call_conf 10 ", 1,
|
||||
Arrays.asList("51bfdf777123bf49de5d92ffde5c74e7"));
|
||||
Arrays.asList("c71ca370947739cb7d87b59452be7a07"));
|
||||
executeTest("test confidence 1", spec1);
|
||||
|
||||
WalkerTest.WalkerTestSpec spec2 = new WalkerTest.WalkerTestSpec(
|
||||
baseCommand + " -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -o %s -L 1:10,000,000-10,010,000 -stand_emit_conf 10 ", 1,
|
||||
Arrays.asList("c67c285e70fd4457c9f9ce7bd878ddca"));
|
||||
Arrays.asList("1c0a599d475cc7d5e745df6e9b6c0d29"));
|
||||
executeTest("test confidence 2", spec2);
|
||||
}
|
||||
|
||||
|
|
@ -187,8 +186,8 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
@Test
|
||||
public void testHeterozyosity() {
|
||||
HashMap<Double, String> e = new HashMap<Double, String>();
|
||||
e.put( 0.01, "7ecc564d4db97d5932cef2e558550ed2" );
|
||||
e.put( 1.0 / 1850, "aa9e101bb9f9e111fe292fec467d915a" );
|
||||
e.put( 0.01, "af5199fbc0853cf5888acdcc88f012bc" );
|
||||
e.put( 1.0 / 1850, "4e6938645ccde1fdf204ffbf4e88170f" );
|
||||
|
||||
for ( Map.Entry<Double, String> entry : e.entrySet() ) {
|
||||
WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
|
||||
|
|
@ -212,7 +211,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
" -o %s" +
|
||||
" -L 1:10,000,000-10,100,000",
|
||||
1,
|
||||
Arrays.asList("2efd686186b2c5129be4cf89274a24dd"));
|
||||
Arrays.asList("213ebaaaacf850312d885e918eb33500"));
|
||||
|
||||
executeTest(String.format("test multiple technologies"), spec);
|
||||
}
|
||||
|
|
@ -231,7 +230,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
" -L 1:10,000,000-10,100,000" +
|
||||
" -baq CALCULATE_AS_NECESSARY",
|
||||
1,
|
||||
Arrays.asList("2892d35331fe9fc141ba19269ec7caed"));
|
||||
Arrays.asList("3aecba34a89f3525afa57a38dc20e6cd"));
|
||||
|
||||
executeTest(String.format("test calling with BAQ"), spec);
|
||||
}
|
||||
|
|
@ -250,7 +249,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
" -o %s" +
|
||||
" -L 1:10,000,000-10,500,000",
|
||||
1,
|
||||
Arrays.asList("8c2afb4289ed44521933d1a74c8d6c7f"));
|
||||
Arrays.asList("043973c719a85de29a35a33a674616fb"));
|
||||
|
||||
executeTest(String.format("test indel caller in SLX"), spec);
|
||||
}
|
||||
|
|
@ -265,7 +264,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
" -minIndelCnt 1" +
|
||||
" -L 1:10,000,000-10,100,000",
|
||||
1,
|
||||
Arrays.asList("b6fb70590a10e1c27fb611732916f27d"));
|
||||
Arrays.asList("68d4e6c1849e892467aed61c33e7bf24"));
|
||||
|
||||
executeTest(String.format("test indel caller in SLX witn low min allele count"), spec);
|
||||
}
|
||||
|
|
@ -278,7 +277,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
" -o %s" +
|
||||
" -L 1:10,000,000-10,500,000",
|
||||
1,
|
||||
Arrays.asList("61642502bd08cc03cdaaeb83a5426b46"));
|
||||
Arrays.asList("f86d453c5d2d2f33fb28ae2050658a5e"));
|
||||
|
||||
executeTest(String.format("test indel calling, multiple technologies"), spec);
|
||||
}
|
||||
|
|
@ -286,16 +285,16 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
|
|||
@Test
|
||||
public void testWithIndelAllelesPassedIn() {
|
||||
WalkerTest.WalkerTestSpec spec1 = new WalkerTest.WalkerTestSpec(
|
||||
baseCommandIndels + " --genotyping_mode GENOTYPE_GIVEN_ALLELES -B:alleles,vcf " + validationDataLocation + "indelAllelesForUG.vcf -I " + validationDataLocation +
|
||||
baseCommandIndels + " --genotyping_mode GENOTYPE_GIVEN_ALLELES -alleles " + validationDataLocation + "indelAllelesForUG.vcf -I " + validationDataLocation +
|
||||
"pilot2_daughters.chr20.10k-11k.bam -o %s -L 20:10,000,000-10,100,000", 1,
|
||||
Arrays.asList("69b0b3f089c80b9864294d838a061336"));
|
||||
Arrays.asList("408d3aba4d094c067fc00a43992c2292"));
|
||||
executeTest("test MultiSample Pilot2 indels with alleles passed in", spec1);
|
||||
|
||||
WalkerTest.WalkerTestSpec spec2 = new WalkerTest.WalkerTestSpec(
|
||||
baseCommandIndels + " --output_mode EMIT_ALL_SITES --genotyping_mode GENOTYPE_GIVEN_ALLELES -B:alleles,vcf "
|
||||
baseCommandIndels + " --output_mode EMIT_ALL_SITES --genotyping_mode GENOTYPE_GIVEN_ALLELES -alleles "
|
||||
+ validationDataLocation + "indelAllelesForUG.vcf -I " + validationDataLocation +
|
||||
"pilot2_daughters.chr20.10k-11k.bam -o %s -L 20:10,000,000-10,100,000", 1,
|
||||
Arrays.asList("c90174cfd7dd68bdef36fe2c60145e10"));
|
||||
Arrays.asList("94977d6e42e764280e9deaf4e3ac8c80"));
|
||||
executeTest("test MultiSample Pilot2 indels with alleles passed in and emitting all sites", spec2);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ public class UnifiedGenotyperPerformanceTest extends WalkerTest {
|
|||
" -glm BOTH" +
|
||||
" -I " + evaluationDataLocation + "NA12878.GAII.chr1.50MB.bam" +
|
||||
" -L chr1:1-50,000,000" +
|
||||
" --dbsnp:VCF " + b36dbSNP129 +
|
||||
" --dbsnp:VCF " + hg18dbSNP132 +
|
||||
" -o /dev/null",
|
||||
0,
|
||||
new ArrayList<String>(0));
|
||||
|
|
@ -30,7 +30,7 @@ public class UnifiedGenotyperPerformanceTest extends WalkerTest {
|
|||
" -glm BOTH" +
|
||||
" -I " + evaluationDataLocation + "NA12878.ESP.WEx.chr1.bam" +
|
||||
" -L " + evaluationDataLocation + "whole_exome_agilent_designed_120.targets.chr1.interval_list" +
|
||||
" --dbsnp:vcf " + b36dbSNP129 +
|
||||
" --dbsnp:vcf " + hg18dbSNP132 +
|
||||
" -o /dev/null",
|
||||
0,
|
||||
new ArrayList<String>(0));
|
||||
|
|
@ -46,7 +46,7 @@ public class UnifiedGenotyperPerformanceTest extends WalkerTest {
|
|||
" -glm BOTH" +
|
||||
" -L chr1:1-50,000,000" +
|
||||
" -nt 10" +
|
||||
" --dbsnp:vcf " + b36dbSNP129 +
|
||||
" --dbsnp:vcf " + hg18dbSNP132 +
|
||||
" -o /dev/null",
|
||||
0,
|
||||
new ArrayList<String>(0));
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ public class RecalibrationWalkersPerformanceTest extends WalkerTest {
|
|||
" -L chr1:1-50,000,000" +
|
||||
" -standard" +
|
||||
" -OQ" +
|
||||
" -B:dbsnp,VCF " + GATKDataLocation + "dbsnp_132.hg18.vcf" +
|
||||
" -knownSites " + GATKDataLocation + "dbsnp_132.hg18.vcf" +
|
||||
" -recalFile /dev/null" + moreArgs,
|
||||
0,
|
||||
new ArrayList<String>(0));
|
||||
|
|
@ -31,7 +31,7 @@ public class RecalibrationWalkersPerformanceTest extends WalkerTest {
|
|||
" -L " + evaluationDataLocation + "whole_exome_agilent_designed_120.targets.chr1.interval_list" +
|
||||
" -standard" +
|
||||
" -OQ" +
|
||||
" -B:dbsnp,VCF " + GATKDataLocation + "dbsnp_132.hg18.vcf" +
|
||||
" -knownSites " + GATKDataLocation + "dbsnp_132.hg18.vcf" +
|
||||
" -recalFile /dev/null" + moreArgs,
|
||||
0,
|
||||
new ArrayList<String>(0));
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
buildCommandLine(
|
||||
"-T VariantEval",
|
||||
"-R " + b37KGReference,
|
||||
"-B:dbsnp,VCF " + b37dbSNP132,
|
||||
"-B:eval,VCF " + fundamentalTestVCF,
|
||||
"--dbsnp " + b37dbSNP132,
|
||||
"--eval " + fundamentalTestVCF,
|
||||
"-noEV",
|
||||
"-EV CountVariants",
|
||||
"-noST",
|
||||
|
|
@ -40,8 +40,8 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
buildCommandLine(
|
||||
"-T VariantEval",
|
||||
"-R " + b37KGReference,
|
||||
"-B:dbsnp,VCF " + b37dbSNP132,
|
||||
"-B:eval,VCF " + fundamentalTestVCF,
|
||||
"--dbsnp " + b37dbSNP132,
|
||||
"--eval " + fundamentalTestVCF,
|
||||
"-noEV",
|
||||
"-EV CountVariants",
|
||||
"-noST",
|
||||
|
|
@ -61,8 +61,8 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
buildCommandLine(
|
||||
"-T VariantEval",
|
||||
"-R " + b37KGReference,
|
||||
"-B:dbsnp,VCF " + b37dbSNP132,
|
||||
"-B:eval,VCF " + fundamentalTestVCF,
|
||||
"--dbsnp " + b37dbSNP132,
|
||||
"--eval " + fundamentalTestVCF,
|
||||
"-noEV",
|
||||
"-EV CountVariants",
|
||||
"-noST",
|
||||
|
|
@ -83,8 +83,8 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
buildCommandLine(
|
||||
"-T VariantEval",
|
||||
"-R " + b37KGReference,
|
||||
"-B:dbsnp,VCF " + b37dbSNP132,
|
||||
"-B:eval,VCF " + fundamentalTestVCF,
|
||||
"--dbsnp " + b37dbSNP132,
|
||||
"--eval " + fundamentalTestVCF,
|
||||
"-noEV",
|
||||
"-EV CountVariants",
|
||||
"-noST",
|
||||
|
|
@ -104,8 +104,8 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
buildCommandLine(
|
||||
"-T VariantEval",
|
||||
"-R " + b37KGReference,
|
||||
"-B:dbsnp,VCF " + b37dbSNP132,
|
||||
"-B:eval,VCF " + fundamentalTestVCF,
|
||||
"--dbsnp " + b37dbSNP132,
|
||||
"--eval " + fundamentalTestVCF,
|
||||
"-noEV",
|
||||
"-EV CountVariants",
|
||||
"-noST",
|
||||
|
|
@ -125,8 +125,8 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
buildCommandLine(
|
||||
"-T VariantEval",
|
||||
"-R " + b37KGReference,
|
||||
"-B:dbsnp,VCF " + b37dbSNP132,
|
||||
"-B:eval,VCF " + fundamentalTestVCF,
|
||||
"--dbsnp " + b37dbSNP132,
|
||||
"--eval " + fundamentalTestVCF,
|
||||
"-noEV",
|
||||
"-EV CountVariants",
|
||||
"-noST",
|
||||
|
|
@ -146,8 +146,8 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
buildCommandLine(
|
||||
"-T VariantEval",
|
||||
"-R " + b37KGReference,
|
||||
"-B:dbsnp,VCF " + b37dbSNP132,
|
||||
"-B:eval,VCF " + fundamentalTestVCF,
|
||||
"--dbsnp " + b37dbSNP132,
|
||||
"--eval " + fundamentalTestVCF,
|
||||
"-noEV",
|
||||
"-EV CountVariants",
|
||||
"-noST",
|
||||
|
|
@ -167,8 +167,8 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
buildCommandLine(
|
||||
"-T VariantEval",
|
||||
"-R " + b37KGReference,
|
||||
"-B:dbsnp,VCF " + b37dbSNP132,
|
||||
"-B:eval,VCF " + fundamentalTestVCF,
|
||||
"--dbsnp " + b37dbSNP132,
|
||||
"--eval " + fundamentalTestVCF,
|
||||
"-noEV",
|
||||
"-EV CountVariants",
|
||||
"-noST",
|
||||
|
|
@ -190,8 +190,8 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
buildCommandLine(
|
||||
"-T VariantEval",
|
||||
"-R " + b37KGReference,
|
||||
"-B:dbsnp,VCF " + b37dbSNP132,
|
||||
"-B:eval,VCF " + fundamentalTestVCF,
|
||||
"--dbsnp " + b37dbSNP132,
|
||||
"--eval " + fundamentalTestVCF,
|
||||
"-noEV",
|
||||
"-EV CountVariants",
|
||||
"-noST",
|
||||
|
|
@ -215,7 +215,7 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
buildCommandLine(
|
||||
"-T VariantEval",
|
||||
"-R " + b37KGReference,
|
||||
"-B:eval,VCF " + fundamentalTestVCF,
|
||||
"--eval " + fundamentalTestVCF,
|
||||
"-noEV",
|
||||
"-EV CountVariants",
|
||||
"-noST",
|
||||
|
|
@ -232,11 +232,11 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
public void testSelect1() {
|
||||
String extraArgs = "-L 1:1-10,000,000";
|
||||
String tests = cmdRoot +
|
||||
" -B:dbsnp,VCF " + b36dbSNP129 +
|
||||
" -B:eval,VCF3 " + validationDataLocation + "yri.trio.gatk_glftrio.intersection.annotated.filtered.chr1.vcf" +
|
||||
" -B:comp_genotypes,VCF3 " + validationDataLocation + "yri.trio.gatk.ug.head.vcf";
|
||||
" --dbsnp " + b36dbSNP129 +
|
||||
" --eval " + validationDataLocation + "yri.trio.gatk_glftrio.intersection.annotated.filtered.chr1.vcf" +
|
||||
" --comp:comp_genotypes,VCF3 " + validationDataLocation + "yri.trio.gatk.ug.head.vcf";
|
||||
WalkerTestSpec spec = new WalkerTestSpec(withSelect(tests, "DP < 50", "DP50") + " " + extraArgs + " -ST CpG -o %s",
|
||||
1, Arrays.asList("14054badcd89b24c2375e1d09918f681"));
|
||||
1, Arrays.asList("125fe0a04b5d933cc14016598b2791cd"));
|
||||
executeTestParallel("testSelect1", spec);
|
||||
}
|
||||
|
||||
|
|
@ -244,7 +244,7 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
public void testVEGenotypeConcordance() {
|
||||
String vcfFile = "GenotypeConcordanceEval.vcf";
|
||||
|
||||
WalkerTestSpec spec = new WalkerTestSpec(cmdRoot + " -ST CpG -B:eval,VCF3 " + validationDataLocation + vcfFile + " -B:comp,VCF3 " + validationDataLocation + "GenotypeConcordanceComp.vcf -noEV -EV GenotypeConcordance -o %s",
|
||||
WalkerTestSpec spec = new WalkerTestSpec(cmdRoot + " -ST CpG --eval:VCF3 " + validationDataLocation + vcfFile + " --comp:VCF3 " + validationDataLocation + "GenotypeConcordanceComp.vcf -noEV -EV GenotypeConcordance -o %s",
|
||||
1,
|
||||
Arrays.asList("96f27163f16bb945f19c6623cd6db34e"));
|
||||
executeTestParallel("testVEGenotypeConcordance" + vcfFile, spec);
|
||||
|
|
@ -252,7 +252,7 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
|
||||
@Test
|
||||
public void testCompVsEvalAC() {
|
||||
String extraArgs = "-T VariantEval -R "+b36KGReference+" -o %s -ST CpG -EV GenotypeConcordance -B:evalYRI,VCF3 " + validationDataLocation + "yri.trio.gatk.ug.very.few.lines.vcf -B:compYRI,VCF3 " + validationDataLocation + "yri.trio.gatk.fake.genotypes.ac.test.vcf";
|
||||
String extraArgs = "-T VariantEval -R "+b36KGReference+" -o %s -ST CpG -EV GenotypeConcordance --eval:evalYRI,VCF3 " + validationDataLocation + "yri.trio.gatk.ug.very.few.lines.vcf --comp:compYRI,VCF3 " + validationDataLocation + "yri.trio.gatk.fake.genotypes.ac.test.vcf";
|
||||
WalkerTestSpec spec = new WalkerTestSpec(extraArgs,1,Arrays.asList("d1932be3748fcf6da77dc51aec323710"));
|
||||
executeTestParallel("testCompVsEvalAC",spec);
|
||||
}
|
||||
|
|
@ -263,14 +263,14 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
|
||||
@Test
|
||||
public void testTranches() {
|
||||
String extraArgs = "-T VariantEval -R "+ hg18Reference +" -B:eval,vcf " + validationDataLocation + "GA2.WEx.cleaned.ug.snpfiltered.indelfiltered.optimized.vcf -o %s -EV TiTvVariantEvaluator -L chr1 -noEV -ST CpG -tf " + testDir + "tranches.6.txt";
|
||||
String extraArgs = "-T VariantEval -R "+ hg18Reference +" --eval " + validationDataLocation + "GA2.WEx.cleaned.ug.snpfiltered.indelfiltered.optimized.vcf -o %s -EV TiTvVariantEvaluator -L chr1 -noEV -ST CpG -tf " + testDir + "tranches.6.txt";
|
||||
WalkerTestSpec spec = new WalkerTestSpec(extraArgs,1,Arrays.asList("984df6e94a546294fc7e0846cbac2dfe"));
|
||||
executeTestParallel("testTranches",spec);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCompOverlap() {
|
||||
String extraArgs = "-T VariantEval -R " + b37KGReference + " -L " + validationDataLocation + "VariantEval/pacbio.hg19.intervals -B:comphapmap,vcf " + comparisonDataLocation + "Validated/HapMap/3.3/genotypes_r27_nr.b37_fwd.vcf -B:eval,vcf " + validationDataLocation + "VariantEval/pacbio.ts.recalibrated.vcf -noEV -EV CompOverlap -sn NA12878 -noST -ST Novelty -o %s";
|
||||
String extraArgs = "-T VariantEval -R " + b37KGReference + " -L " + validationDataLocation + "VariantEval/pacbio.hg19.intervals --comp:comphapmap " + comparisonDataLocation + "Validated/HapMap/3.3/genotypes_r27_nr.b37_fwd.vcf --eval " + validationDataLocation + "VariantEval/pacbio.ts.recalibrated.vcf -noEV -EV CompOverlap -sn NA12878 -noST -ST Novelty -o %s";
|
||||
WalkerTestSpec spec = new WalkerTestSpec(extraArgs,1,Arrays.asList("462d4784dd55294ef9d5118217b157a5"));
|
||||
executeTestParallel("testCompOverlap",spec);
|
||||
}
|
||||
|
|
@ -280,10 +280,10 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
String extraArgs = "-T VariantEval -R " +
|
||||
b37KGReference +
|
||||
" -L 20" +
|
||||
" -B:dbsnp,VCF " + b37dbSNP132 +
|
||||
" -B:evalBI,VCF " + validationDataLocation + "VariantEval/ALL.20100201.chr20.bi.sites.vcf" +
|
||||
" --dbsnp " + b37dbSNP132 +
|
||||
" --eval:evalBI " + validationDataLocation + "VariantEval/ALL.20100201.chr20.bi.sites.vcf" +
|
||||
" -noST -ST Novelty -o %s";
|
||||
WalkerTestSpec spec = new WalkerTestSpec(extraArgs,1,Arrays.asList("0897dfba2f4a245faddce38000555cce"));
|
||||
WalkerTestSpec spec = new WalkerTestSpec(extraArgs,1,Arrays.asList("cbea5f9f8c046d4c014d261db352c43b"));
|
||||
executeTestParallel("testEvalTrackWithoutGenotypes",spec);
|
||||
}
|
||||
|
||||
|
|
@ -291,11 +291,11 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
public void testMultipleEvalTracksWithoutGenotypes() {
|
||||
String extraArgs = "-T VariantEval -R " + b37KGReference +
|
||||
" -L 20" +
|
||||
" -B:dbsnp,VCF " + b37dbSNP132 +
|
||||
" -B:evalBI,VCF " + validationDataLocation + "VariantEval/ALL.20100201.chr20.bi.sites.vcf" +
|
||||
" -B:evalBC,VCF " + validationDataLocation + "VariantEval/ALL.20100201.chr20.bc.sites.vcf" +
|
||||
" --dbsnp " + b37dbSNP132 +
|
||||
" --eval:evalBI " + validationDataLocation + "VariantEval/ALL.20100201.chr20.bi.sites.vcf" +
|
||||
" --eval:evalBC " + validationDataLocation + "VariantEval/ALL.20100201.chr20.bc.sites.vcf" +
|
||||
" -noST -ST Novelty -o %s";
|
||||
WalkerTestSpec spec = new WalkerTestSpec(extraArgs,1,Arrays.asList("ead3602e14ec2944b5d9e4dacc08c819"));
|
||||
WalkerTestSpec spec = new WalkerTestSpec(extraArgs,1,Arrays.asList("d07a246963ae609643620c839b20cd1e"));
|
||||
executeTestParallel("testMultipleEvalTracksWithoutGenotypes",spec);
|
||||
}
|
||||
|
||||
|
|
@ -305,27 +305,27 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
|
||||
String extraArgs = "-T VariantEval" +
|
||||
" -R " + b37KGReference +
|
||||
" -B:comp,VCF " + validationDataLocation + "/VariantEval/ALL.phase1.chr20.broad.snps.genotypes.subset.vcf" +
|
||||
" -B:eval,VCF " + validationDataLocation + "/VariantEval/NA12878.hg19.HiSeq.WGS.cleaned.ug.snpfiltered.indelfiltered.optimized.cut.subset.vcf" +
|
||||
" -B:dbsnp,VCF " + dbsnp +
|
||||
" --comp " + validationDataLocation + "/VariantEval/ALL.phase1.chr20.broad.snps.genotypes.subset.vcf" +
|
||||
" --eval " + validationDataLocation + "/VariantEval/NA12878.hg19.HiSeq.WGS.cleaned.ug.snpfiltered.indelfiltered.optimized.cut.subset.vcf" +
|
||||
" --dbsnp " + dbsnp +
|
||||
" -L 20:10000000-10100000" +
|
||||
" -noST -noEV -ST Novelty -EV CompOverlap" +
|
||||
" -o %s";
|
||||
|
||||
WalkerTestSpec spec = new WalkerTestSpec(extraArgs,1,Arrays.asList("167a347ce0729d1bc3d4fd5069ebd674"));
|
||||
WalkerTestSpec spec = new WalkerTestSpec(extraArgs,1,Arrays.asList("a3c2177849cb00fdff99574cff7f0e4f"));
|
||||
executeTestParallel("testMultipleCompTracks",spec);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPerSampleAndSubsettedSampleHaveSameResults() {
|
||||
String md5 = "40471a84b501eb440ee2d42e3081f228";
|
||||
String md5 = "dab415cc76846e18fcf8c78f2b2ee033";
|
||||
|
||||
WalkerTestSpec spec = new WalkerTestSpec(
|
||||
buildCommandLine(
|
||||
"-T VariantEval",
|
||||
"-R " + b37KGReference,
|
||||
"-B:dbsnp,VCF " + b37dbSNP132,
|
||||
"-B:eval,VCF " + fundamentalTestSNPsVCF,
|
||||
"--dbsnp " + b37dbSNP132,
|
||||
"--eval " + fundamentalTestSNPsVCF,
|
||||
"-noEV",
|
||||
"-EV CompOverlap",
|
||||
"-sn HG00625",
|
||||
|
|
@ -342,8 +342,8 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
buildCommandLine(
|
||||
"-T VariantEval",
|
||||
"-R " + b37KGReference,
|
||||
"-B:dbsnp,VCF " + b37dbSNP132,
|
||||
"-B:eval,VCF " + fundamentalTestSNPsOneSampleVCF,
|
||||
"--dbsnp " + b37dbSNP132,
|
||||
"--eval " + fundamentalTestSNPsOneSampleVCF,
|
||||
"-noEV",
|
||||
"-EV CompOverlap",
|
||||
"-noST",
|
||||
|
|
@ -363,8 +363,8 @@ public class VariantEvalIntegrationTest extends WalkerTest {
|
|||
buildCommandLine(
|
||||
"-T VariantEval",
|
||||
"-R " + b37KGReference,
|
||||
"-B:dbsnp,VCF " + b37dbSNP132,
|
||||
"-B:eval,VCF " + fundamentalTestSNPsVCF,
|
||||
"--dbsnp " + b37dbSNP132,
|
||||
"--eval " + fundamentalTestSNPsVCF,
|
||||
"-noEV",
|
||||
"-EV CountVariants",
|
||||
"-noST",
|
||||
|
|
|
|||
|
|
@ -93,8 +93,8 @@ public class VCFStreamingIntegrationTest extends WalkerTest {
|
|||
selectTestSpec = new WalkerTestSpec(
|
||||
"-T VariantEval" +
|
||||
" -R " + b36KGReference +
|
||||
" -B:eval,vcf3 " + testFile +
|
||||
" -B:comp,vcf,storage=STREAM " + tmpFifo.getAbsolutePath() +
|
||||
" --eval,vcf3 " + testFile +
|
||||
" --comp,vcf,storage=STREAM " + tmpFifo.getAbsolutePath() +
|
||||
" -EV CompOverlap -noEV -noST" +
|
||||
" -o %s",
|
||||
1,
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
<ivy-module version="1.0">
|
||||
<info organisation="org.broad" module="tribble" revision="15"
|
||||
status="integration" publication="" />
|
||||
</ivy-module>
|
||||
Binary file not shown.
|
|
@ -0,0 +1,3 @@
|
|||
<ivy-module version="1.0">
|
||||
<info organisation="org.broad" module="tribble" revision="18" status="integration" />
|
||||
</ivy-module>
|
||||
Loading…
Reference in New Issue