Support for List<RodBinding> argument type

This commit is contained in:
Mark DePristo 2011-07-26 11:37:31 -04:00
parent 38969b9783
commit 7ab8b53339
2 changed files with 17 additions and 6 deletions

View File

@ -27,6 +27,7 @@ package org.broadinstitute.sting.commandline;
import org.broadinstitute.sting.gatk.contexts.ReferenceContext;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.utils.GenomeLoc;
import org.broadinstitute.sting.utils.variantcontext.VariantContext;
import java.io.File;
import java.util.List;
@ -35,7 +36,7 @@ import java.util.List;
*
*/
// TODO -- should have a derived class called VariantContentRodBinding with simple accessors
public class RodBinding<T> {
public class RodBinding {
final String variableName;
final File sourceFile;
@ -52,12 +53,16 @@ public class RodBinding<T> {
return sourceFile;
}
public List<T> getAll(RefMetaDataTracker tracker) {
return (List<T>)tracker.getReferenceMetaData(variableName);
public List<Object> getAll(RefMetaDataTracker tracker) {
return tracker.getReferenceMetaData(variableName);
}
public T getVariantContext(RefMetaDataTracker tracker, ReferenceContext ref, GenomeLoc loc) {
return (T)tracker.getVariantContext(ref, variableName, loc);
public VariantContext getVariantContext(RefMetaDataTracker tracker, ReferenceContext ref, GenomeLoc loc) {
return tracker.getVariantContext(ref, variableName, loc);
}
public String toString() {
return String.format("(RodBinding name=%s source=%s)", variableName, sourceFile);
}
}

View File

@ -66,7 +66,10 @@ public class VariantsToTableNewRodStyle extends RodWalker<Integer, Integer> {
public boolean ALLOW_MISSING_DATA = false;
@Input(fullName="variants", shortName="V", doc="The variant file we will convert to a table", required=true)
public RodBinding<VariantContext> variants;
public RodBinding variants;
@Input(fullName="variantsList", shortName="VL", doc="The variant file we will convert to a table", required=true)
public List<RodBinding> variantsList;
public void initialize() {
out.println(Utils.join("\t", fieldsToTake));
@ -135,6 +138,9 @@ public class VariantsToTableNewRodStyle extends RodWalker<Integer, Integer> {
if ( tracker == null ) // RodWalkers can make funky map calls
return 0;
for ( RodBinding binding : variantsList )
System.out.printf("VariantList binding %s%n", binding);
if ( ++nRecords < MAX_RECORDS || MAX_RECORDS == -1 ) {
VariantContext vc = variants.getVariantContext(tracker, ref, context.getLocation());
if ( (keepMultiAllelic || vc.isBiallelic()) && ( showFiltered || vc.isNotFiltered() ) ) {