Tagged Files for CombineVariants in Queue?

The 3.2 CombineVariants Queue extension does not seem to pass through the TaggedFile information. I assume the extension generator is not recognizing the particular input type used by CombineVariants…

For example:

this.V = List(new TaggedFile("file1.vcf","file1"), new TaggedFile("file2.vcf","file2"))

in a Scala class that extends CombineVariants will produce:

-V file1.vcf -V file2.vcf

without the tags.

Tagged:

Answers

  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie

    Hmm, as far as I know there's no reason why CombIneGVCFs input would be treated differently, but I'll ask @kshakir to comment.

  • The problem seems to be that Queue extensions generator does not recognize RodBindingCollection as a "taggable" input. I ended up making the following changes so that RodBindingCollection would be treated like RodBinding. This solves my immediate problem with CombineVariants, but I don't know if breaks other walkers that use RodBindingCollection.

    diff --git a/public/gatk-queue-extensions-generator/src/main/java/org/broadinstitute/gatk/queue/extensions/gatk/ArgumentDefinitionField.java b/public/gatk-queue-extensions-generator/src/main/java/org/broadi
    index a8d5742..d67821b 100644
    --- a/public/gatk-queue-extensions-generator/src/main/java/org/broadinstitute/gatk/queue/extensions/gatk/ArgumentDefinitionField.java 
    +++ b/public/gatk-queue-extensions-generator/src/main/java/org/broadinstitute/gatk/queue/extensions/gatk/ArgumentDefinitionField.java
    @@ -147,7 +147,7 @@ public abstract class ArgumentDefinitionField extends ArgumentField {
         } else if ("input_file".equals(argumentDefinition.fullName) && argumentDefinition.ioType == ArgumentIOType.INPUT) {
             return Arrays.asList(new InputTaggedFileDefinitionField(argumentDefinition), new InputIndexesArgumentField(argumentDefinition, BAMIndex.BAMIndexSuffix, ".bam"));
    
    -        } else if ((RodBinding.class.equals(argumentDefinition.argumentType) || RodBinding.class.equals(argumentDefinition.componentType)) && argumentDefinition.ioType == ArgumentIOType.INPUT) {  
    +        } else if ((RodBinding.class.equals(argumentDefinition.argumentType) || RodBinding.class.equals(argumentDefinition.componentType) || RodBindingCollection.class.equals(argumentDefinition.componentTy
             return Arrays.asList(new InputTaggedFileDefinitionField(argumentDefinition), new InputIndexesArgumentField(argumentDefinition, Tribble.STANDARD_INDEX_EXTENSION));
    
         } else if (argumentDefinition.ioType == ArgumentIOType.INPUT) {
    @@ -416,7 +416,7 @@ public abstract class ArgumentDefinitionField extends ArgumentField {
                 if (originalSuffix == null) {
                     return String.format(
                             ("%1$s ++= %2$s" +
    -                                    ".filter(orig => orig != null)" +
    +                                    ".filter(orig => orig != null && (!orig.getName.endsWith(\".list\")))" +
                                     ".map(orig => new File(orig.getPath + \"%3$s\"))%n"),
                             indexFieldName, originalFieldName, indexSuffix);
                 } else {
    ~
    
  • kshakirkshakir Broadie, Dev

    Thanks for letting us know, and working out a potential fix! At this point, can you move this conversation to a pull request on github? I think the important bits of your patch were truncated from the end of your "else if" statement.

    On github we can share richer conversations around code modifications, and the site provides easier tools for me to access the patch for running regression tests. Plus from there I can copy in a couple other developers for their opinions if needed as well.

  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie
Sign In or Register to comment.