Exemplo n.º 1
0
 def inputs(self):
     return [
         ToolInput(
             "index",
             KallistoIdx,
             prefix="-i",
             position=2,
             doc="Filename for the kallisto index to be constructed",
         ),
         ToolInput(
             "outdir",
             Filename,
             prefix="-o",
             position=3,
             doc="directory to put outputs in",
         ),
         ToolInput("fastq",
                   Array(Fastq),
                   position=4,
                   doc="FASTQ files to process"),
         ToolInput(
             "bias",
             Boolean(optional=True),
             prefix="--bias",
             doc="Perform sequence based bias correction",
         ),
         ToolInput(
             "fusion",
             Boolean(optional=True),
             prefix="--fusion",
             doc="Search for fusions for Pizzly",
         ),
         ToolInput(
             "single",
             Boolean(optional=True),
             prefix="--single",
             doc="Quantify single-end reads",
         ),
         ToolInput(
             "overhang",
             Boolean(optional=True),
             prefix="--single-overhang",
             doc=
             "Include reads where unobserved rest of fragment is predicted to lie outside a transcript",
         ),
         ToolInput(
             "fr_stranded",
             Boolean(optional=True),
             prefix="--fr-stranded",
             doc="Strand specific reads, first read forward",
         ),
         ToolInput(
             "rf_stranded",
             Boolean(optional=True),
             prefix="--rf-stranded",
             doc="Strand specific reads, first read reverse",
         ),
         ToolInput(
             "fragment_length",
             Double(optional=True),
             prefix="-l",
             doc="Estimated average fragment length",
         ),
         ToolInput(
             "fragment_sd",
             Double(optional=True),
             prefix="-s",
             doc="Estimated standard deviation of fragment length",
         ),
     ]
Exemplo n.º 2
0
class Gatk4HaplotypeCallerBase(Gatk4ToolBase, ABC):
    @classmethod
    def gatk_command(cls):
        return "HaplotypeCaller"

    def tool(self):
        return "Gatk4HaplotypeCaller"

    def friendly_name(self):
        return "GATK4: Haplotype Caller"

    def cpus(self, hints: Dict[str, Any]):
        val = get_value_for_hints_and_ordered_resource_tuple(
            hints, CORES_TUPLE)
        if val:
            return val
        return 1

    def memory(self, hints: Dict[str, Any]):
        val = get_value_for_hints_and_ordered_resource_tuple(hints, MEM_TUPLE)
        if val:
            return val
        return 8

    def inputs(self):
        return [
            *super(Gatk4HaplotypeCallerBase, self).inputs(),
            *Gatk4HaplotypeCallerBase.optional_args,
            ToolInput(
                "inputRead",
                BamBai(),
                doc="BAM/SAM/CRAM file containing reads",
                prefix="--input",
                secondaries_present_as={".bai": "^.bai"},
            ),
            ToolInput(
                "reference",
                FastaWithDict(),
                position=5,
                prefix="--reference",
                doc="Reference sequence file",
            ),
            ToolInput(
                "outputFilename",
                Filename(prefix=InputSelector("inputRead"),
                         extension=".vcf.gz"),
                position=8,
                prefix="--output",
                doc="File to which variants should be written",
            ),
            ToolInput(
                "dbsnp",
                VcfTabix(optional=True),
                position=7,
                prefix="--dbsnp",
                doc="(Also: -D) A dbSNP VCF file.",
            ),
            ToolInput(
                "intervals",
                Bed(optional=True),
                prefix="--intervals",
                doc=
                "-L (BASE) One or more genomic intervals over which to operate",
            ),
            ToolInput(
                "outputBamName",
                Filename(prefix=InputSelector("inputRead"), extension=".bam"),
                position=8,
                prefix="-bamout",
                doc="File to which assembled haplotypes should be written",
            ),
        ]

    def outputs(self):
        return [
            ToolOutput(
                "out",
                CompressedVcf,
                glob=InputSelector("outputFilename"),
                doc="A raw, unfiltered, highly sensitive callset in VCF format. "
                "File to which variants should be written",
            ),
            ToolOutput(
                "bam",
                BamBai,
                glob=InputSelector("outputBamName"),
                doc="File to which assembled haplotypes should be written",
                secondaries_present_as={".bai": "^.bai"},
            ),
        ]

    def bind_metadata(self):
        from datetime import date

        return ToolMetadata(
            contributors=["Michael Franklin"],
            dateCreated=date(2018, 12, 24),
            dateUpdated=date(2019, 1, 24),
            institution="Broad Institute",
            doi=None,
            citation=
            "See https://software.broadinstitute.org/gatk/documentation/article?id=11027 for more information",
            keywords=["gatk", "gatk4", "broad", "haplotype"],
            documentationUrl=
            "https://software.broadinstitute.org/gatk/documentation/tooldocs/current/org_broadinstitute_hellbender_tools_walkers_haplotypecaller_HaplotypeCaller.php#",
            documentation=
            """Call germline SNPs and indels via local re-assembly of haplotypes
    
The HaplotypeCaller is capable of calling SNPs and indels simultaneously via local de-novo assembly of haplotypes 
in an active region. In other words, whenever the program encounters a region showing signs of variation, it 
discards the existing mapping information and completely reassembles the reads in that region. This allows the 
HaplotypeCaller to be more accurate when calling regions that are traditionally difficult to call, for example when 
they contain different types of variants close to each other. It also makes the HaplotypeCaller much better at 
calling indels than position-based callers like UnifiedGenotyper.

In the GVCF workflow used for scalable variant calling in DNA sequence data, HaplotypeCaller runs per-sample to 
generate an intermediate GVCF (not to be used in final analysis), which can then be used in GenotypeGVCFs for joint 
genotyping of multiple samples in a very efficient way. The GVCF workflow enables rapid incremental processing of 
samples as they roll off the sequencer, as well as scaling to very large cohort sizes (e.g. the 92K exomes of ExAC).

In addition, HaplotypeCaller is able to handle non-diploid organisms as well as pooled experiment data. 
Note however that the algorithms used to calculate variant likelihoods is not well suited to extreme allele 
frequencies (relative to ploidy) so its use is not recommended for somatic (cancer) variant discovery. 
For that purpose, use Mutect2 instead.

Finally, HaplotypeCaller is also able to correctly handle the splice junctions that make RNAseq a challenge 
for most variant callers, on the condition that the input read data has previously been processed according 
to our recommendations as documented (https://software.broadinstitute.org/gatk/documentation/article?id=4067).
""".strip(),
        )

    optional_args = [
        ToolInput(
            "pairHmmImplementation",
            String(optional=True),
            prefix="--pair-hmm-implementation",
            doc=
            "The PairHMM implementation to use for genotype likelihood calculations. The various implementations balance a tradeoff of accuracy and runtime. The --pair-hmm-implementation argument is an enumerated type (Implementation), which can have one of the following values: EXACT;ORIGINAL;LOGLESS_CACHING;AVX_LOGLESS_CACHING;AVX_LOGLESS_CACHING_OMP;EXPERIMENTAL_FPGA_LOGLESS_CACHING;FASTEST_AVAILABLE. Implementation:  FASTEST_AVAILABLE",
        ),
        ToolInput(
            "activityProfileOut",
            String(optional=True),
            prefix="--activity-profile-out",
            doc=
            "Output the raw activity profile results in IGV format (default: null)",
        ),
        ToolInput(
            "alleles",
            File(optional=True),
            prefix="--alleles",
            doc=
            "(default: null) The set of alleles at which to genotype when --genotyping_mode "
            "is GENOTYPE_GIVEN_ALLELES",
        ),
        ToolInput(
            "annotateWithNumDiscoveredAlleles",
            Boolean(optional=True),
            prefix="--annotate-with-num-discovered-alleles",
            doc=
            "If provided, we will annotate records with the number of alternate alleles that were "
            "discovered (but not necessarily genotyped) at a given site",
        ),
        ToolInput(
            "annotation",
            Array(String(), optional=True),
            prefix="--annotation",
            doc="-A: One or more specific annotations to add to variant calls",
        ),
        ToolInput(
            "annotationGroup",
            Array(String(), optional=True),
            prefix="--annotation-group",
            doc=
            "-G	One or more groups of annotations to apply to variant calls",
        ),
        ToolInput(
            "annotationsToExclude",
            Array(String(), optional=True),
            prefix="--annotations-to-exclude",
            doc=
            "-AX	One or more specific annotations to exclude from variant calls",
        ),
        ToolInput(
            "arguments_file",
            Array(File(), optional=True),
            prefix="--arguments_file",
            doc=
            "read one or more arguments files and add them to the command line",
        ),
        ToolInput(
            "assemblyRegionOut",
            String(optional=True),
            prefix="--assembly-region-out",
            doc=
            "(default: null) Output the assembly region to this IGV formatted file. Which annotations to "
            "exclude from output in the variant calls. Note that this argument has higher priority than "
            "the -A or -G arguments, so these annotations will be excluded even if they are explicitly "
            "included with the other options.",
        ),
        ToolInput(
            "baseQualityScoreThreshold",
            Int(optional=True),
            prefix="--base-quality-score-threshold",
            doc=
            "(default: 18) Base qualities below this threshold will be reduced to the minimum (6)",
        ),
        ToolInput(
            "cloudIndexPrefetchBuffer",
            Int(optional=True),
            prefix="--cloud-index-prefetch-buffer",
            doc=
            "-CIPB (default: -1) Size of the cloud-only prefetch buffer (in MB; 0 to disable). "
            "Defaults to cloudPrefetchBuffer if unset.",
        ),
        ToolInput(
            "cloudPrefetchBuffer",
            Int(optional=True),
            prefix="--cloud-prefetch-buffer",
            doc=
            "-CPB (default: 40) Size of the cloud-only prefetch buffer (in MB; 0 to disable).",
        ),
        ToolInput(
            "contaminationFractionToFilter",
            Double(optional=True),
            prefix="--contamination-fraction-to-filter",
            doc=
            "-contamination (default: 0.0) Fraction of contamination in sequencing data "
            "(for all samples) to aggressively remove",
        ),
        ToolInput(
            "correctOverlappingQuality",
            Boolean(optional=True),
            prefix="--correct-overlapping-quality",
            doc="Undocumented option",
        ),
        # ToolInput("dbsnp", VcfIdx(optional=True), prefix="--dbsnp", doc="-D (default: null) dbSNP file"),
        ToolInput(
            "disableBamIndexCaching",
            Boolean(optional=True),
            prefix="--disable-bam-index-caching",
            doc=
            "-DBIC. If true, don't cache bam indexes, this will reduce memory requirements but may harm "
            "performance if many intervals are specified. Caching is automatically disabled if "
            "there are no intervals specified.",
        ),
        # ToolInput("disableSequenceDictionaryValidation", Boolean(optional=True), prefix="--disable-sequence-dictionary-validation",
        #           doc="If specified, do not check the sequence dictionaries from our inputs for compatibility. Use at your own risk!"),
        ToolInput(
            "founderId",
            Array(String(), optional=True),
            prefix="--founder-id",
            doc='Samples representing the population "founders"',
        ),
        # ToolInput("gcsMaxRetries", Int(optional=True), prefix="--gcs-max-retries",
        #           doc="-gcs-retries (default: 20) If the GCS bucket channel errors out, "
        #               "how many times it will attempt to re-initiate the connection"),
        # ToolInput("gcsProjectForRequesterPays", String(), prefix="--gcs-project-for-requester-pays",
        #           doc="Project to bill when accessing \"requester pays\" buckets. If unset, these buckets cannot be accessed."),
        ToolInput(
            "genotypingMode",
            String(optional=True),
            prefix="--genotyping-mode",
            doc=
            "(default: DISCOVERY) Specifies how to determine the alternate alleles to use for genotyping. "
            "The --genotyping-mode argument is an enumerated type (GenotypingOutputMode), which can have one "
            "of the following values: DISCOVERY (The genotyper will choose the most likely alternate allele) "
            "or GENOTYPE_GIVEN_ALLELES (Only the alleles passed by the user should be considered).",
        ),
        # ToolInput("graphOutput", DataType(optional=True), prefix="--graph-output", doc="-graph	null	Write debug assembly graph information to this file"),
        ToolInput(
            "heterozygosity",
            Double(optional=True),
            prefix="--heterozygosity",
            doc=
            "(default: 0.001) Heterozygosity value used to compute prior likelihoods for any locus. The "
            "expected heterozygosity value used to compute prior probability that a locus is non-reference. "
            "The default priors are for provided for humans: het = 1e-3 which means that the probability "
            "of N samples being hom-ref at a site is: 1 - sum_i_2N (het / i) Note that heterozygosity as "
            "used here is the population genetics concept: "
            "http://en.wikipedia.org/wiki/Zygosity#Heterozygosity_in_population_genetics . "
            "That is, a hets value of 0.01 implies that two randomly chosen chromosomes from the population "
            "of organisms would differ from each other (one being A and the other B) at a rate of 1 in 100 bp. "
            "Note that this quantity has nothing to do with the likelihood of any given sample having a "
            "heterozygous genotype, which in the GATK is purely determined by the probability of the observed "
            "data P(D | AB) under the model that there may be a AB het genotype. The posterior probability "
            "of this AB genotype would use the het prior, but the GATK only uses this posterior probability "
            "in determining the prob. that a site is polymorphic. So changing the het parameters only "
            "increases the chance that a site will be called non-reference across all samples, but doesn't "
            "actually change the output genotype likelihoods at all, as these aren't posterior probabilities "
            "at all. The quantity that changes whether the GATK considers the possibility of a het genotype "
            "at all is the ploidy, which determines how many chromosomes each individual in the species carries.",
        ),
        ToolInput(
            "heterozygosityStdev",
            Double(optional=True),
            prefix="--heterozygosity-stdev",
            doc=
            "(default 0.01) Standard deviation of heterozygosity for SNP and indel calling.",
        ),
        ToolInput(
            "indelHeterozygosity",
            Double(optional=True),
            prefix="--indel-heterozygosity",
            doc=
            "(default: 1.25E-4) Heterozygosity for indel calling. This argument informs the prior "
            "probability of having an indel at a site. (See heterozygosity)",
        ),
        ToolInput(
            "intervalMergingRule",
            String(optional=True),
            prefix="--interval-merging-rule",
            doc=
            "-imr (default: ALL) Interval merging rule for abutting intervals. By default, the program "
            "merges abutting intervals (i.e. intervals that are directly side-by-side but do not actually "
            "overlap) into a single continuous interval. However you can change this behavior if you want "
            "them to be treated as separate intervals instead. The --interval-merging-rule argument is an "
            "enumerated type (IntervalMergingRule), which can have one of the following values:"
            "[ALL, OVERLAPPING]",
        ),
        ToolInput(
            "maxReadsPerAlignmentStart",
            Int(optional=True),
            prefix="--max-reads-per-alignment-start",
            doc=
            "(default: 50) Maximum number of reads to retain per alignment start position. "
            "Reads above this threshold will be downsampled. Set to 0 to disable.",
        ),
        ToolInput(
            "minBaseQualityScore",
            Int(optional=True),
            prefix="--min-base-quality-score",
            doc=
            "-mbq (default: 10) Minimum base quality required to consider a base for calling",
        ),
        ToolInput(
            "nativePairHmmThreads",
            Int(optional=True),
            prefix="--native-pair-hmm-threads",
            doc=
            "(default: 4) How many threads should a native pairHMM implementation use",
        ),
        ToolInput(
            "nativePairHmmUseDoublePrecision",
            Boolean(optional=True),
            prefix="--native-pair-hmm-use-double-precision",
            doc="use double precision in the native pairHmm. "
            "This is slower but matches the java implementation better",
        ),
        ToolInput(
            "numReferenceSamplesIfNoCall",
            Int(optional=True),
            prefix="--num-reference-samples-if-no-call",
            doc=
            "(default: 0) Number of hom-ref genotypes to infer at sites not present in a panel. When a "
            "variant is not seen in any panel, this argument controls whether to infer (and with what "
            "effective strength) that only reference alleles were observed at that site. "
            'E.g. "If not seen in 1000Genomes, treat it as AC=0, AN=2000".',
        ),
        ToolInput(
            "outputMode",
            String(optional=True),
            prefix="--output-mode",
            doc=
            "(default: EMIT_VARIANTS_ONLY) Specifies which type of calls we should output. The --output-mode "
            "argument is an enumerated type (OutputMode), which can have one of the following values: "
            "[EMIT_VARIANTS_ONLY (produces calls only at variant sites), "
            "EMIT_ALL_CONFIDENT_SITES (produces calls at variant sites and confident reference sites), "
            "EMIT_ALL_SITES (produces calls at any callable site regardless of confidence; "
            "this argument is intended only for point mutations (SNPs) in DISCOVERY mode or "
            "generally when running in GENOTYPE_GIVEN_ALLELES mode; it will by no means produce "
            "a comprehensive set of indels in DISCOVERY mode)]",
        ),
        ToolInput(
            "pedigree",
            File(optional=True),
            prefix="--pedigree",
            doc=
            '-ped (default: null) Pedigree file for determining the population "founders"',
        ),
        ToolInput(
            "populationCallset",
            File(optional=True),
            prefix="--population-callset",
            doc=
            "-population (default: null) Callset to use in calculating genotype priors",
        ),
        ToolInput(
            "sampleName",
            String(optional=True),
            prefix="--sample-name",
            doc=
            "-ALIAS (default: null) Name of single sample to use from a multi-sample bam. You can use this "
            "argument to specify that HC should process a single sample out of a multisample BAM file. "
            "This is especially useful if your samples are all in the same file but you need to run them "
            "individually through HC in -ERC GVC mode (which is the recommended usage). "
            "Note that the name is case-sensitive.",
        ),
        ToolInput(
            "samplePloidy",
            Int(optional=True),
            prefix="--sample-ploidy",
            doc=
            "-ploidy (default: 2) Ploidy (number of chromosomes) per sample. "
            "For pooled data, set to (Number of samples in each pool * Sample Ploidy). "
            "Sample ploidy - equivalent to number of chromosomes per pool. In pooled "
            "experiments this should be = # of samples in pool * individual sample ploidy",
        ),
        ToolInput(
            "sitesOnlyVcfOutput",
            Boolean(optional=True),
            prefix="--sites-only-vcf-output",
            doc=
            "(default: false) If true, don't emit genotype fields when writing vcf file output.",
        ),
        ToolInput(
            "standardMinConfidenceThresholdForCalling",
            Double(optional=True),
            prefix="--standard-min-confidence-threshold-for-calling",
            doc=
            "-stand-call-conf (default: 10.0) The minimum phred-scaled confidence "
            "threshold at which variants should be called",
        ),
        ToolInput(
            "useNewQualCalculator",
            Boolean(optional=True),
            prefix="--use-new-qual-calculator",
            doc=
            "-new-qual If provided, we will use the new AF model instead of the so-called exact model",
        ),
        ToolInput(
            "gvcfGqBands",
            Array(Int, optional=True),
            prefix="-GQB",
            prefix_applies_to_all_elements=True,
            doc=
            "(--gvcf-gq-bands) Exclusive upper bounds for reference confidence GQ"
            " bands (must be in [1, 100] and specified in increasing order)",
        ),
        ToolInput(
            "emitRefConfidence",
            String(optional=True),
            prefix="--emit-ref-confidence",
            doc=
            "(-ERC) Mode for emitting reference confidence scores (For Mutect2, this is a BETA feature)",
        ),
        ToolInput(
            "dontUseSoftClippedBases",
            Boolean(optional=True),
            prefix="--dont-use-soft-clipped-bases",
            doc="Do not analyze soft clipped bases in the reads",
        ),
    ]
Exemplo n.º 3
0
 def inputs(self):
     return [
         *super().inputs(),
         ToolInput(
             tag="tumorBams",
             input_type=Array(BamBai),
             prefix="-I",
             prefix_applies_to_all_elements=True,
             doc="(--input) BAM/SAM/CRAM file containing reads This argument must be specified at least once. Required. ",
         ),
         ToolInput(
             tag="normalBams",
             input_type=Array(BamBai, optional=True),
             prefix="-I",
             prefix_applies_to_all_elements=True,
             doc="(--input) Extra BAM/SAM/CRAM file containing reads This argument must be specified at least once. Required. ",
         ),
         ToolInput(
             tag="normalSample",
             input_type=String(optional=True),
             prefix="--normal-sample",
             doc="(--normal-sample, if) May be URL-encoded as output by GetSampleName with",
         ),
         ToolInput(
             "outputPrefix",
             String(optional=True),
             doc="Used as a prefix for the outputFilename if not specified, with format: {outputPrefix}.vcf.gz",
             default="generated",
         ),
         ToolInput(
             "outputFilename",
             Filename(prefix=InputSelector("outputPrefix"), extension=".vcf.gz"),
             position=20,
             prefix="-O",
         ),
         ToolInput(
             tag="reference",
             input_type=FastaWithDict(),
             prefix="--reference",
             doc="(-R) Reference sequence file Required.",
         ),
         ToolInput(
             tag="outputBamName",
             # This is not a FileName because otherwise we cant make this optional
             input_type=String(optional=True),
             prefix="-bamout",
             doc="File to which assembled haplotypes should be written",
         ),
         ToolInput(
             tag="activityProfileOut",
             input_type=String(optional=True),
             prefix="--activity-profile-out",
             doc="Default value: null.",
         ),
         ToolInput(
             tag="addOutputSamProgramRecord",
             input_type=Boolean(optional=True),
             prefix="-add-output-sam-program-record",
             doc="(--add-output-sam-program-record)  If true, adds a PG tag to created SAM/BAM/CRAM files.  Default value: true. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="addOutputVcfCommandLine",
             input_type=Boolean(optional=True),
             prefix="-add-output-vcf-command-line",
             doc="(--add-output-vcf-command-line)  If true, adds a command line header line to created VCF files.  Default value: true. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="afOfAllelesNotInResource",
             input_type=String(optional=True),
             prefix="--af-of-alleles-not-in-resource",
             doc="(-default-af)  Population allele fraction assigned to alleles not found in germline resource.  Please see docs/mutect/mutect2.pdf fora derivation of the default value.  Default value: -1.0. ",
         ),
         ToolInput(
             tag="alleles",
             input_type=String(optional=True),
             prefix="--alleles",
             doc="The set of alleles for which to force genotyping regardless of evidence Default value: null. ",
         ),
         ToolInput(
             tag="annotation",
             input_type=String(optional=True),
             prefix="--annotation",
             doc="(-A) One or more specific annotations to add to variant calls This argument may be specified 0 or more times. Default value: null. Possible Values: {AlleleFraction, AS_BaseQualityRankSumTest, AS_FisherStrand, AS_InbreedingCoeff, AS_MappingQualityRankSumTest, AS_QualByDepth, AS_ReadPosRankSumTest, AS_RMSMappingQuality, AS_StrandOddsRatio, BaseQuality, BaseQualityRankSumTest, ChromosomeCounts, ClippingRankSumTest, CountNs, Coverage, DepthPerAlleleBySample, DepthPerSampleHC, ExcessHet, FisherStrand, FragmentLength, GenotypeSummaries, InbreedingCoeff, LikelihoodRankSumTest, MappingQuality, MappingQualityRankSumTest, MappingQualityZero, OrientationBiasReadCounts, OriginalAlignment, PossibleDeNovo, QualByDepth, ReadPosition, ReadPosRankSumTest, ReferenceBases, RMSMappingQuality, SampleList, StrandBiasBySample, StrandOddsRatio, TandemRepeat, UniqueAltReadCount}",
         ),
         ToolInput(
             tag="annotationGroup",
             input_type=String(optional=True),
             prefix="--annotation-group",
             doc="(-G) One or more groups of annotations to apply to variant calls This argument may be specified 0 or more times. Default value: null. Possible Values: {AS_StandardAnnotation, ReducibleAnnotation, StandardAnnotation, StandardHCAnnotation, StandardMutectAnnotation}",
         ),
         ToolInput(
             tag="annotationsToExclude",
             input_type=String(optional=True),
             prefix="--annotations-to-exclude",
             doc="(-AX)  One or more specific annotations to exclude from variant calls  This argument may be specified 0 or more times. Default value: null. Possible Values: {BaseQuality, Coverage, DepthPerAlleleBySample, DepthPerSampleHC, FragmentLength, MappingQuality, OrientationBiasReadCounts, ReadPosition, StrandBiasBySample, TandemRepeat}",
         ),
         ToolInput(
             tag="arguments_file",
             input_type=File(optional=True),
             prefix="--arguments_file",
             doc="read one or more arguments files and add them to the command line This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="assemblyRegionOut",
             input_type=String(optional=True),
             prefix="--assembly-region-out",
             doc="Output the assembly region to this IGV formatted file Default value: null.",
         ),
         ToolInput(
             tag="baseQualityScoreThreshold",
             input_type=Int(optional=True),
             prefix="--base-quality-score-threshold",
             doc=" Base qualities below this threshold will be reduced to the minimum (6)  Default value: 18.",
         ),
         ToolInput(
             tag="callableDepth",
             input_type=Int(optional=True),
             prefix="--callable-depth",
             doc="Minimum depth to be considered callable for Mutect stats. Does not affect genotyping. Default value: 10. ",
         ),
         ToolInput(
             tag="cloudIndexPrefetchBuffer",
             input_type=Int(optional=True),
             prefix="--cloud-index-prefetch-buffer",
             doc="(-CIPB)  Size of the cloud-only prefetch buffer (in MB; 0 to disable). Defaults to cloudPrefetchBuffer if unset.  Default value: -1. ",
         ),
         ToolInput(
             tag="cloudPrefetchBuffer",
             input_type=Int(optional=True),
             prefix="--cloud-prefetch-buffer",
             doc="(-CPB)  Size of the cloud-only prefetch buffer (in MB; 0 to disable).  Default value: 40. ",
         ),
         ToolInput(
             tag="createOutputBamIndex",
             input_type=Boolean(optional=True),
             prefix="--create-output-bam-index",
             doc="(-OBI)  If true, create a BAM/CRAM index when writing a coordinate-sorted BAM/CRAM file.  Default value: true. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="createOutputBamMd5",
             input_type=Boolean(optional=True),
             prefix="--create-output-bam-md5",
             doc="(-OBM)  If true, create a MD5 digest for any BAM/SAM/CRAM file created  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="createOutputVariantIndex",
             input_type=Boolean(optional=True),
             prefix="--create-output-variant-index",
             doc="(-OVI)  If true, create a VCF index when writing a coordinate-sorted VCF file.  Default value: true. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="createOutputVariantMd5",
             input_type=Boolean(optional=True),
             prefix="--create-output-variant-md5",
             doc="(-OVM)  If true, create a a MD5 digest any VCF file created.  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="disableBamIndexCaching",
             input_type=Boolean(optional=True),
             prefix="--disable-bam-index-caching",
             doc="(-DBIC)  If true, don't cache bam indexes, this will reduce memory requirements but may harm performance if many intervals are specified.  Caching is automatically disabled if there are no intervals specified.  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="disableReadFilter",
             input_type=Boolean(optional=True),
             prefix="--disable-read-filter",
             doc="(-DF)  Read filters to be disabled before analysis  This argument may be specified 0 or more times. Default value: null. Possible Values: {GoodCigarReadFilter, MappedReadFilter, MappingQualityAvailableReadFilter, MappingQualityNotZeroReadFilter, MappingQualityReadFilter, NonChimericOriginalAlignmentReadFilter, NonZeroReferenceLengthAlignmentReadFilter, NotDuplicateReadFilter, NotSecondaryAlignmentReadFilter, PassesVendorQualityCheckReadFilter, ReadLengthReadFilter, WellformedReadFilter}",
         ),
         ToolInput(
             tag="disableSequenceDictionaryValidation",
             input_type=Boolean(optional=True),
             prefix="-disable-sequence-dictionary-validation",
             doc="(--disable-sequence-dictionary-validation)  If specified, do not check the sequence dictionaries from our inputs for compatibility. Use at your own risk!  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="downsamplingStride",
             input_type=Int(optional=True),
             prefix="--downsampling-stride",
             doc="(-stride)  Downsample a pool of reads starting within a range of one or more bases.  Default value: 1. ",
         ),
         ToolInput(
             tag="excludeIntervals",
             input_type=Boolean(optional=True),
             prefix="--exclude-intervals",
             doc="(-XLOne) This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="f1r2MaxDepth",
             input_type=Int(optional=True),
             prefix="--f1r2-max-depth",
             doc="sites with depth higher than this value will be grouped Default value: 200.",
         ),
         ToolInput(
             tag="f1r2MedianMq",
             input_type=Int(optional=True),
             prefix="--f1r2-median-mq",
             doc="skip sites with median mapping quality below this value Default value: 50.",
         ),
         ToolInput(
             tag="f1r2MinBq",
             input_type=Int(optional=True),
             prefix="--f1r2-min-bq",
             doc="exclude bases below this quality from pileup Default value: 20.",
         ),
         ToolInput(
             tag="f1r2TarGz_outputFilename",
             input_type=Filename(extension=".tar.gz"),
             prefix="--f1r2-tar-gz",
             doc="If specified, collect F1R2 counts and output files into this tar.gz file Default value: null. ",
         ),
         ToolInput(
             tag="founderId",
             input_type=String(optional=True),
             prefix="-founder-id",
             doc="(--founder-id)  Samples representing the population founders This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="gatkConfigFile",
             input_type=String(optional=True),
             prefix="--gatk-config-file",
             doc="A configuration file to use with the GATK. Default value: null.",
         ),
         ToolInput(
             tag="gcsRetries",
             input_type=Int(optional=True),
             prefix="-gcs-retries",
             doc="(--gcs-max-retries)  If the GCS bucket channel errors out, how many times it will attempt to re-initiate the connection  Default value: 20. ",
         ),
         ToolInput(
             tag="gcsProjectForRequesterPays",
             input_type=String(optional=True),
             prefix="--gcs-project-for-requester-pays",
             doc=" Project to bill when accessing requester pays buckets. If unset, these buckets cannot be accessed.  Default value: . ",
         ),
         ToolInput(
             tag="genotypeGermlineSites",
             input_type=Boolean(optional=True),
             prefix="--genotype-germline-sites",
             doc=" (EXPERIMENTAL) Call all apparent germline site even though they will ultimately be filtered.  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="genotypePonSites",
             input_type=Boolean(optional=True),
             prefix="--genotype-pon-sites",
             doc="Call sites in the PoN even though they will ultimately be filtered. Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="germlineResource",
             input_type=VcfTabix(optional=True),
             prefix="--germline-resource",
             doc=" Population vcf of germline sequencing containing allele fractions.  Default value: null. ",
         ),
         ToolInput(
             tag="graph",
             input_type=String(optional=True),
             prefix="-graph",
             doc="(--graph-output) Write debug assembly graph information to this file Default value: null.",
         ),
         ToolInput(
             tag="help",
             input_type=Boolean(optional=True),
             prefix="-h",
             doc="(--help) display the help message Default value: false. Possible values: {true, false}",
         ),
         ToolInput(
             tag="ignoreItrArtifacts",
             input_type=String(optional=True),
             prefix="--ignore-itr-artifactsTurn",
             doc=" inverted tandem repeats.  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="initialTumorLod",
             input_type=String(optional=True),
             prefix="--initial-tumor-lod",
             doc="(-init-lod)  Log 10 odds threshold to consider pileup active.  Default value: 2.0. ",
         ),
         ToolInput(
             tag="intervalExclusionPadding",
             input_type=String(optional=True),
             prefix="--interval-exclusion-padding",
             doc="(-ixp)  Amount of padding (in bp) to add to each interval you are excluding.  Default value: 0. ",
         ),
         ToolInput(
             tag="imr",
             input_type=String(optional=True),
             prefix="--interval-merging-rule",
             doc="(--interval-merging-rule)  Interval merging rule for abutting intervals  Default value: ALL. Possible values: {ALL, OVERLAPPING_ONLY} ",
         ),
         ToolInput(
             tag="ip",
             input_type=String(optional=True),
             prefix="-ipAmount",
             doc="(--interval-padding) Default value: 0.",
         ),
         ToolInput(
             tag="isr",
             input_type=String(optional=True),
             prefix="--interval-set-rule",
             doc="(--interval-set-rule)  Set merging approach to use for combining interval inputs  Default value: UNION. Possible values: {UNION, INTERSECTION} ",
         ),
         ToolInput(
             tag="intervals",
             input_type=Bed(optional=True),
             prefix="--intervals",
             doc="(-L) One or more genomic intervals over which to operate This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="le",
             input_type=Boolean(optional=True),
             prefix="-LE",
             doc="(--lenient) Lenient processing of VCF files Default value: false. Possible values: {true, false}",
         ),
         ToolInput(
             tag="maxPopulationAf",
             input_type=String(optional=True),
             prefix="--max-population-af",
             doc="(-max-af)  Maximum population allele frequency in tumor-only mode.  Default value: 0.01. ",
         ),
         ToolInput(
             tag="maxReadsPerAlignmentStart",
             input_type=Int(optional=True),
             prefix="--max-reads-per-alignment-start",
             doc=" Maximum number of reads to retain per alignment start position. Reads above this threshold will be downsampled. Set to 0 to disable.  Default value: 50. ",
         ),
         ToolInput(
             tag="minBaseQualityScore",
             input_type=String(optional=True),
             prefix="--min-base-quality-score",
             doc="(-mbq:Byte)  Minimum base quality required to consider a base for calling  Default value: 10. ",
         ),
         ToolInput(
             tag="mitochondriaMode",
             input_type=Boolean(optional=True),
             prefix="--mitochondria-mode",
             doc="Mitochondria mode sets emission and initial LODs to 0. Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="nativePairHmmThreads",
             input_type=Int(optional=True),
             prefix="--native-pair-hmm-threads",
             default=CpuSelector(),
             doc=" How many threads should a native pairHMM implementation use  Default value: 4. ",
         ),
         ToolInput(
             tag="nativePairHmmUseDoublePrecision",
             input_type=Boolean(optional=True),
             prefix="--native-pair-hmm-use-double-precision",
             doc=" use double precision in the native pairHmm. This is slower but matches the java implementation better  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="normalLod",
             input_type=Double(optional=True),
             prefix="--normal-lod",
             doc="Log 10 odds threshold for calling normal variant non-germline. Default value: 2.2.",
         ),
         ToolInput(
             tag="encode",
             input_type=String(optional=True),
             prefix="-encode",
             doc="This argument may be specified 0 or more times. Default value: null.",
         ),
         ToolInput(
             tag="panelOfNormals",
             input_type=VcfTabix(optional=True),
             prefix="--panel-of-normals",
             doc="(--panel-of-normals)  VCF file of sites observed in normal.  Default value: null. ",
         ),
         ToolInput(
             tag="pcrIndelQual",
             input_type=Int(optional=True),
             prefix="--pcr-indel-qual",
             doc="Phred-scaled PCR SNV qual for overlapping fragments Default value: 40.",
         ),
         ToolInput(
             tag="pcrSnvQual",
             input_type=Int(optional=True),
             prefix="--pcr-snv-qual",
             doc="Phred-scaled PCR SNV qual for overlapping fragments Default value: 40.",
         ),
         ToolInput(
             tag="pedigree",
             input_type=String(optional=True),
             prefix="--pedigree",
             doc="(-ped) Pedigree file for determining the population founders. Default value: null.",
         ),
         ToolInput(
             tag="quiet",
             input_type=Boolean(optional=True),
             prefix="--QUIET",
             doc="Whether to suppress job-summary info on System.err. Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="readFilter",
             input_type=String(optional=True),
             prefix="--read-filter",
             doc="(-RF) Read filters to be applied before analysis This argument may be specified 0 or more times. Default value: null. Possible Values: {AlignmentAgreesWithHeaderReadFilter, AllowAllReadsReadFilter, AmbiguousBaseReadFilter, CigarContainsNoNOperator, FirstOfPairReadFilter, FragmentLengthReadFilter, GoodCigarReadFilter, HasReadGroupReadFilter, IntervalOverlapReadFilter, LibraryReadFilter, MappedReadFilter, MappingQualityAvailableReadFilter, MappingQualityNotZeroReadFilter, MappingQualityReadFilter, MatchingBasesAndQualsReadFilter, MateDifferentStrandReadFilter, MateOnSameContigOrNoMappedMateReadFilter, MateUnmappedAndUnmappedReadFilter, MetricsReadFilter, NonChimericOriginalAlignmentReadFilter, NonZeroFragmentLengthReadFilter, NonZeroReferenceLengthAlignmentReadFilter, NotDuplicateReadFilter, NotOpticalDuplicateReadFilter, NotSecondaryAlignmentReadFilter, NotSupplementaryAlignmentReadFilter, OverclippedReadFilter, PairedReadFilter, PassesVendorQualityCheckReadFilter, PlatformReadFilter, PlatformUnitReadFilter, PrimaryLineReadFilter, ProperlyPairedReadFilter, ReadGroupBlackListReadFilter, ReadGroupReadFilter, ReadLengthEqualsCigarLengthReadFilter, ReadLengthReadFilter, ReadNameReadFilter, ReadStrandFilter, SampleReadFilter, SecondOfPairReadFilter, SeqIsStoredReadFilter, ValidAlignmentEndReadFilter, ValidAlignmentStartReadFilter, WellformedReadFilter}",
         ),
         ToolInput(
             tag="readIndex",
             input_type=String(optional=True),
             prefix="-read-index",
             doc="(--read-index)  Indices to use for the read inputs. If specified, an index must be provided for every read input and in the same order as the read inputs. If this argument is not specified, the path to the index for each input will be inferred automatically.  This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="readValidationStringency",
             input_type=String(optional=True),
             prefix="--read-validation-stringency",
             doc="(-VS:ValidationStringency)  Validation stringency for all SAM/BAM/CRAM/SRA files read by this program.  The default stringency value SILENT can improve performance when processing a BAM file in which variable-length data (read, qualities, tags) do not otherwise need to be decoded.  Default value: SILENT. Possible values: {STRICT, LENIENT, SILENT} ",
         ),
         ToolInput(
             tag="secondsBetweenProgressUpdates",
             input_type=Double(optional=True),
             prefix="-seconds-between-progress-updates",
             doc="(--seconds-between-progress-updates)  Output traversal statistics every time this many seconds elapse  Default value: 10.0. ",
         ),
         ToolInput(
             tag="sequenceDictionary",
             input_type=String(optional=True),
             prefix="-sequence-dictionary",
             doc="(--sequence-dictionary)  Use the given sequence dictionary as the master/canonical sequence dictionary.  Must be a .dict file.  Default value: null. ",
         ),
         ToolInput(
             tag="sitesOnlyVcfOutput",
             input_type=Boolean(optional=True),
             prefix="--sites-only-vcf-output",
             doc=" If true, don't emit genotype fields when writing vcf file output.  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="tmpDir",
             input_type=String(optional=True),
             prefix="--tmp-dir",
             doc="Temp directory to use. Default value: null.",
         ),
         ToolInput(
             tag="tumorLodToEmit",
             input_type=String(optional=True),
             prefix="--tumor-lod-to-emit",
             doc="(-emit-lod)  Log 10 odds threshold to emit variant to VCF.  Default value: 3.0. ",
         ),
         ToolInput(
             tag="tumor",
             input_type=String(optional=True),
             prefix="-tumor",
             doc="(--tumor-sample) BAM sample name of tumor. May be URL-encoded as output by GetSampleName with -encode argument.  Default value: null. ",
         ),
         ToolInput(
             tag="jdkDeflater",
             input_type=Boolean(optional=True),
             prefix="-jdk-deflater",
             doc="(--use-jdk-deflater)  Whether to use the JdkDeflater (as opposed to IntelDeflater)  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="jdkInflater",
             input_type=Boolean(optional=True),
             prefix="-jdk-inflater",
             doc="(--use-jdk-inflater)  Whether to use the JdkInflater (as opposed to IntelInflater)  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="verbosity",
             input_type=String(optional=True),
             prefix="-verbosity",
             doc="(--verbosity)  Control verbosity of logging.  Default value: INFO. Possible values: {ERROR, WARNING, INFO, DEBUG} ",
         ),
         ToolInput(
             tag="version",
             input_type=Boolean(optional=True),
             prefix="--version",
             doc="display the version number for this tool Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="activeProbabilityThreshold",
             input_type=Double(optional=True),
             prefix="--active-probability-threshold",
             doc=" Minimum probability for a locus to be considered active.  Default value: 0.002. ",
         ),
         ToolInput(
             tag="adaptivePruningInitialErrorRate",
             input_type=Double(optional=True),
             prefix="--adaptive-pruning-initial-error-rate",
             doc=" Initial base error rate estimate for adaptive pruning  Default value: 0.001. ",
         ),
         ToolInput(
             tag="allowNonUniqueKmersInRef",
             input_type=Boolean(optional=True),
             prefix="--allow-non-unique-kmers-in-ref",
             doc=" Allow graphs that have non-unique kmers in the reference  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="assemblyRegionPadding",
             input_type=Int(optional=True),
             prefix="--assembly-region-padding",
             doc=" Number of additional bases of context to include around each assembly region  Default value: 100. ",
         ),
         ToolInput(
             tag="bamWriterType",
             input_type=String(optional=True),
             prefix="--bam-writer-type",
             doc="Which haplotypes should be written to the BAM Default value: CALLED_HAPLOTYPES. Possible values: {ALL_POSSIBLE_HAPLOTYPES, CALLED_HAPLOTYPES} ",
         ),
         ToolInput(
             tag="debugAssembly",
             input_type=String(optional=True),
             prefix="--debug-assembly",
             doc="(-debug)  Print out verbose debug information about each assembly region  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="disableAdaptivePruning",
             input_type=Boolean(optional=True),
             prefix="--disable-adaptive-pruning",
             doc=" Disable the adaptive algorithm for pruning paths in the graph  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="disableToolDefaultAnnotations",
             input_type=Boolean(optional=True),
             prefix="-disable-tool-default-annotations",
             doc="(--disable-tool-default-annotations)  Disable all tool default annotations  Default value: false. Possible values: {true, false}",
         ),
         ToolInput(
             tag="disableToolDefaultReadFilters",
             input_type=Boolean(optional=True),
             prefix="-disable-tool-default-read-filters",
             doc="(--disable-tool-default-read-filters)  Disable all tool default read filters (WARNING: many tools will not function correctly without their default read filters on)  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="dontIncreaseKmerSizesForCycles",
             input_type=Boolean(optional=True),
             prefix="--dont-increase-kmer-sizes-for-cycles",
             doc=" Disable iterating over kmer sizes when graph cycles are detected  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="dontTrimActiveRegions",
             input_type=Boolean(optional=True),
             prefix="--dont-trim-active-regions",
             doc=" If specified, we will not trim down the active region from the full region (active + extension) to just the active interval for genotyping  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="dontUseSoftClippedBases",
             input_type=Boolean(optional=True),
             prefix="--dont-use-soft-clipped-bases",
             doc=" Do not analyze soft clipped bases in the reads  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="erc",
             input_type=String(optional=True),
             prefix="-ERC",
             doc="(--emit-ref-confidence)  (BETA feature) Mode for emitting reference confidence scores  Default value: NONE. Possible values: {NONE, BP_RESOLUTION, GVCF} ",
         ),
         ToolInput(
             tag="enableAllAnnotations",
             input_type=Boolean(optional=True),
             prefix="--enable-all-annotations",
             doc=" Use all possible annotations (not for the faint of heart)  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="forceActive",
             input_type=Boolean(optional=True),
             prefix="--force-active",
             doc="If provided, all regions will be marked as active Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="genotypeFilteredAlleles",
             input_type=Boolean(optional=True),
             prefix="--genotype-filtered-alleles",
             doc=" Whether to force genotype even filtered alleles  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="gvcfLodBand",
             input_type=String(optional=True),
             prefix="--gvcf-lod-band",
             doc="(-LODB) Exclusive upper bounds for reference confidence LOD bands (must be specified in increasing order)  This argument may be specified 0 or more times. Default value: [-2.5, -2.0, -1.5,",
         ),
         ToolInput(
             tag="kmerSize",
             input_type=Int(optional=True),
             prefix="--kmer-size",
             doc="Kmer size to use in the read threading assembler This argument may be specified 0 or more times. Default value: [10, 25]. ",
         ),
         ToolInput(
             tag="maxAssemblyRegionSize",
             input_type=Int(optional=True),
             prefix="--max-assembly-region-size",
             doc=" Maximum size of an assembly region  Default value: 300. ",
         ),
         ToolInput(
             tag="mnpDist",
             input_type=Int(optional=True),
             prefix="-mnp-dist",
             doc="(--max-mnp-distance)  Two or more phased substitutions separated by this distance or less are merged into MNPs.  Default value: 1. ",
         ),
         ToolInput(
             tag="maxNumHaplotypesInPopulation",
             input_type=Int(optional=True),
             prefix="--max-num-haplotypes-in-population",
             doc=" Maximum number of haplotypes to consider for your population  Default value: 128. ",
         ),
         ToolInput(
             tag="maxProbPropagationDistance",
             input_type=Int(optional=True),
             prefix="--max-prob-propagation-distance",
             doc=" Upper limit on how many bases away probability mass can be moved around when calculating the boundaries between active and inactive assembly regions  Default value: 50. ",
         ),
         ToolInput(
             tag="maxSuspiciousReadsPerAlignmentStart",
             input_type=Int(optional=True),
             prefix="--max-suspicious-reads-per-alignment-start",
             doc=" Maximum number of suspicious reads (mediocre mapping quality or too many substitutions) allowed in a downsampling stride.  Set to 0 to disable.  Default value: 0. ",
         ),
         ToolInput(
             tag="maxUnprunedVariants",
             input_type=Int(optional=True),
             prefix="--max-unpruned-variants",
             doc=" Maximum number of variants in graph the adaptive pruner will allow  Default value: 100. ",
         ),
         ToolInput(
             tag="minAssemblyRegionSize",
             input_type=Int(optional=True),
             prefix="--min-assembly-region-size",
             doc=" Minimum size of an assembly region  Default value: 50. ",
         ),
         ToolInput(
             tag="minDanglingBranchLength",
             input_type=Int(optional=True),
             prefix="--min-dangling-branch-length",
             doc=" Minimum length of a dangling branch to attempt recovery  Default value: 4. ",
         ),
         ToolInput(
             tag="minPruning",
             input_type=Int(optional=True),
             prefix="--min-pruning",
             doc="Minimum support to not prune paths in the graph Default value: 2.",
         ),
         ToolInput(
             tag="minimumAlleleFraction",
             input_type=Float(optional=True),
             prefix="--minimum-allele-fraction",
             doc="(-min-AF)  Lower bound of variant allele fractions to consider when calculating variant LOD  Default value: 0.0. ",
         ),
         ToolInput(
             tag="numPruningSamples",
             input_type=Int(optional=True),
             prefix="--num-pruning-samples",
             doc="Default value: 1.",
         ),
         ToolInput(
             tag="pairHmmGapContinuationPenalty",
             input_type=Int(optional=True),
             prefix="--pair-hmm-gap-continuation-penalty",
             doc=" Flat gap continuation penalty for use in the Pair HMM  Default value: 10. ",
         ),
         ToolInput(
             tag="pairhmm",
             input_type=String(optional=True),
             prefix="-pairHMM",
             doc="(--pair-hmm-implementation)  The PairHMM implementation to use for genotype likelihood calculations  Default value: FASTEST_AVAILABLE. Possible values: {EXACT, ORIGINAL, LOGLESS_CACHING, AVX_LOGLESS_CACHING, AVX_LOGLESS_CACHING_OMP, EXPERIMENTAL_FPGA_LOGLESS_CACHING, FASTEST_AVAILABLE} ",
         ),
         ToolInput(
             tag="pcrIndelModel",
             input_type=String(optional=True),
             prefix="--pcr-indel-model",
             doc=" The PCR indel model to use  Default value: CONSERVATIVE. Possible values: {NONE, HOSTILE, AGGRESSIVE, CONSERVATIVE} ",
         ),
         ToolInput(
             tag="phredScaledGlobalReadMismappingRate",
             input_type=Int(optional=True),
             prefix="--phred-scaled-global-read-mismapping-rate",
             doc=" The global assumed mismapping rate for reads  Default value: 45. ",
         ),
         ToolInput(
             tag="pruningLodThreshold",
             input_type=Float(optional=True),
             prefix="--pruning-lod-thresholdLn",
             doc="Default value: 2.302585092994046. ",
         ),
         ToolInput(
             tag="recoverAllDanglingBranches",
             input_type=Boolean(optional=True),
             prefix="--recover-all-dangling-branches",
             doc=" Recover all dangling branches  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="showhidden",
             input_type=Boolean(optional=True),
             prefix="-showHidden",
             doc="(--showHidden)  display hidden arguments  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="smithWaterman",
             input_type=String(optional=True),
             prefix="--smith-waterman",
             doc=" Which Smith-Waterman implementation to use, generally FASTEST_AVAILABLE is the right choice  Default value: JAVA. Possible values: {FASTEST_AVAILABLE, AVX_ENABLED, JAVA} ",
         ),
         ToolInput(
             tag="ambigFilterBases",
             input_type=Int(optional=True),
             prefix="--ambig-filter-bases",
             doc="Threshold number of ambiguous bases. If null, uses threshold fraction; otherwise, overrides threshold fraction.  Default value: null.  Cannot be used in conjuction with argument(s) maxAmbiguousBaseFraction",
         ),
         ToolInput(
             tag="ambigFilterFrac",
             input_type=Double(optional=True),
             prefix="--ambig-filter-frac",
             doc="Threshold fraction of ambiguous bases Default value: 0.05. Cannot be used in conjuction with argument(s) maxAmbiguousBases",
         ),
         ToolInput(
             tag="maxFragmentLength",
             input_type=Int(optional=True),
             prefix="--max-fragment-length",
             doc="Default value: 1000000.",
         ),
         ToolInput(
             tag="minFragmentLength",
             input_type=Int(optional=True),
             prefix="--min-fragment-length",
             doc="Default value: 0.",
         ),
         ToolInput(
             tag="keepIntervals",
             input_type=String(optional=True),
             prefix="--keep-intervals",
             doc="One or more genomic intervals to keep This argument must be specified at least once. Required. ",
         ),
         ToolInput(
             tag="library",
             input_type=String(optional=True),
             prefix="-library",
             doc="(--library) Name of the library to keep This argument must be specified at least once. Required.",
         ),
         ToolInput(
             tag="maximumMappingQuality",
             input_type=Int(optional=True),
             prefix="--maximum-mapping-quality",
             doc=" Maximum mapping quality to keep (inclusive)  Default value: null. ",
         ),
         ToolInput(
             tag="minimumMappingQuality",
             input_type=Int(optional=True),
             prefix="--minimum-mapping-quality",
             doc=" Minimum mapping quality to keep (inclusive)  Default value: 20. ",
         ),
         ToolInput(
             tag="dontRequireSoftClipsBothEnds",
             input_type=Boolean(optional=True),
             prefix="--dont-require-soft-clips-both-ends",
             doc=" Allow a read to be filtered out based on having only 1 soft-clipped block. By default, both ends must have a soft-clipped block, setting this flag requires only 1 soft-clipped block  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="filterTooShort",
             input_type=Int(optional=True),
             prefix="--filter-too-short",
             doc="Minimum number of aligned bases Default value: 30.",
         ),
         ToolInput(
             tag="platformFilterName",
             input_type=String(optional=True),
             prefix="--platform-filter-name",
             doc="This argument must be specified at least once. Required.",
         ),
         ToolInput(
             tag="blackListedLanes",
             input_type=String(optional=True),
             prefix="--black-listed-lanes",
             doc="Platform unit (PU) to filter out This argument must be specified at least once. Required.",
         ),
         ToolInput(
             tag="readGroupBlackList",
             input_type=String(optional=True),
             prefix="--read-group-black-listThe",
             doc="This argument must be specified at least once. Required. ",
         ),
         ToolInput(
             tag="keepReadGroup",
             input_type=String(optional=True),
             prefix="--keep-read-group",
             doc="The name of the read group to keep Required.",
         ),
         ToolInput(
             tag="maxReadLength",
             input_type=Int(optional=True),
             prefix="--max-read-length",
             doc="Keep only reads with length at most equal to the specified value Default value: 2147483647. ",
         ),
         ToolInput(
             tag="minReadLength",
             input_type=Int(optional=True),
             prefix="--min-read-length",
             doc="Keep only reads with length at least equal to the specified value Default value: 30.",
         ),
         ToolInput(
             tag="readName",
             input_type=String(optional=True),
             prefix="--read-name",
             doc="Keep only reads with this read name Required.",
         ),
         ToolInput(
             tag="keepReverseStrandOnly",
             input_type=Boolean(optional=True),
             prefix="--keep-reverse-strand-only",
             doc=" Keep only reads on the reverse strand  Required. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="sample",
             input_type=String(optional=True),
             prefix="-sample",
             doc="(--sample) The name of the sample(s) to keep, filtering out all others This argument must be specified at least once. Required. ",
         ),
     ]
Exemplo n.º 4
0
 def inputs(self):
     return [
         *super().inputs(),
         ToolInput(
             tag="inp",
             input_type=Array(Bam, optional=True),
             prefix="--input",
             separate_value_from_prefix=True,
             prefix_applies_to_all_elements=True,
             doc=InputDocumentation(
                 doc="(-I) BAM/SAM/CRAM file containing reads."
                 " This argument must be specified at least once. Required. "
             ),
         ),
         ToolInput(
             tag="outputFilename",
             input_type=Filename(extension=".bam"),
             prefix="--output",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc="(-O) Write output to this BAM filename Required."),
         ),
         ToolInput(
             tag="reference",
             input_type=FastaWithIndexes(optional=True),
             prefix="--reference",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc="(-R) Reference sequence file Required."),
         ),
         ToolInput(
             tag="addOutputSamProgramRecord",
             input_type=Boolean(optional=True),
             prefix="--add-output-sam-program-record",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-add-output-sam-program-record)  If true, adds a PG tag to created SAM/BAM/CRAM files.  "
                 "Default value: true. Possible values: {true, false} "),
         ),
         ToolInput(
             tag="addOutputVcfCommandLine",
             input_type=Boolean(optional=True),
             prefix="--add-output-vcf-command-line",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-add-output-vcf-command-line)  If true, adds a command line header line to created VCF files."
                 "Default value: true. Possible values: {true, false} "),
         ),
         ToolInput(
             tag="arguments_file",
             input_type=File(optional=True),
             prefix="--arguments_file",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "read one or more arguments files and add them to the command line This argument may be "
                 "specified 0 or more times. Default value: null. "),
         ),
         ToolInput(
             tag="cloudIndexPrefetchBuffer",
             input_type=Int(optional=True),
             prefix="--cloud-index-prefetch-buffer",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-CIPB)  Size of the cloud-only prefetch buffer (in MB; 0 to disable). Defaults to cloudPrefetchBuffer if unset.  Default value: -1. "
             ),
         ),
         ToolInput(
             tag="cloudPrefetchBuffer",
             input_type=Int(optional=True),
             prefix="--cloud-prefetch-buffer",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-CPB)  Size of the cloud-only prefetch buffer (in MB; 0 to disable).  Default value: 40. "
             ),
         ),
         ToolInput(
             tag="createOutputBamIndex",
             input_type=Boolean(optional=True),
             default=True,
             prefix="--create-output-bam-index",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-OBI)  If true, create a BAM/CRAM index when writing a coordinate-sorted BAM/CRAM file.  Default value: true. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="createOutputBamMd5",
             input_type=Boolean(optional=True),
             prefix="--create-output-bam-md5",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-OBM)  If true, create a MD5 digest for any BAM/SAM/CRAM file created  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="createOutputVariantIndex",
             input_type=Boolean(optional=True),
             prefix="--create-output-variant-index",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-OVI)  If true, create a VCF index when writing a coordinate-sorted VCF file.  Default value: true. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="createOutputVariantMd5",
             input_type=Boolean(optional=True),
             prefix="--create-output-variant-md5",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-OVM)  If true, create a a MD5 digest any VCF file created.  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="disableBamIndexCaching",
             input_type=Boolean(optional=True),
             prefix="--disable-bam-index-caching",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-DBIC)  If true, don't cache bam indexes, this will reduce memory requirements but may harm performance if many intervals are specified.  Caching is automatically disabled if there are no intervals specified.  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="disableReadFilter",
             input_type=String(optional=True),
             prefix="--disable-read-filter",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-DF)  Read filters to be disabled before analysis  This argument may be specified 0 or more times. Default value: null. Possible Values: {AllowAllReadsReadFilter}"
             ),
         ),
         ToolInput(
             tag="disableSequenceDictionaryValidation",
             input_type=Boolean(optional=True),
             prefix="--disable-sequence-dictionary-validation",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-disable-sequence-dictionary-validation)  If specified, do not check the sequence dictionaries from our inputs for compatibility. Use at your own risk!  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="doNotFixOverhangs",
             input_type=Boolean(optional=True),
             prefix="--do-not-fix-overhangs",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc="Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="excludeIntervals",
             input_type=Boolean(optional=True),
             prefix="--exclude-intervals",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-XL) This argument may be specified 0 or more times. Default value: null. "
             ),
         ),
         ToolInput(
             tag="gatkConfigFile",
             input_type=String(optional=True),
             prefix="--gatk-config-file",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "A configuration file to use with the GATK. Default value: null."
             ),
         ),
         ToolInput(
             tag="gcsMaxRetries",
             input_type=Int(optional=True),
             prefix="--gcs-max-retries",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-gcs-retries)  If the GCS bucket channel errors out, how many times it will attempt to re-initiate the connection  Default value: 20. "
             ),
         ),
         ToolInput(
             tag="gcsProjectForRequesterPays",
             input_type=String(optional=True),
             prefix="--gcs-project-for-requester-pays",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Project to bill when accessing 'requester pays' buckets. If unset, these buckets cannot be accessed.  Default value: . "
             ),
         ),
         ToolInput(
             tag="help",
             input_type=Boolean(optional=True),
             prefix="--help",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-h) display the help message Default value: false. Possible values: {true, false}"
             ),
         ),
         ToolInput(
             tag="intervalExclusionPadding",
             input_type=Int(optional=True),
             prefix="--interval-exclusion-padding",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-ixp)  Amount of padding (in bp) to add to each interval you are excluding.  Default value: 0. "
             ),
         ),
         ToolInput(
             tag="intervalMergingRule",
             input_type=Boolean(optional=True),
             prefix="--interval-merging-rule",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-imr)  Interval merging rule for abutting intervals  Default value: ALL. Possible values: {ALL, OVERLAPPING_ONLY} "
             ),
         ),
         ToolInput(
             tag="intervalPadding",
             input_type=Boolean(optional=True),
             prefix="--interval-padding",
             separate_value_from_prefix=True,
             doc=InputDocumentation(doc="(-ip) Default value: 0."),
         ),
         ToolInput(
             tag="intervalSetRule",
             input_type=Boolean(optional=True),
             prefix="--interval-set-rule",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-isr)  Set merging approach to use for combining interval inputs  Default value: UNION. Possible values: {UNION, INTERSECTION} "
             ),
         ),
         ToolInput(
             tag="intervals",
             input_type=String(optional=True),
             prefix="--intervals",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-L) One or more genomic intervals over which to operate This argument may be specified 0 or more times. Default value: null. "
             ),
         ),
         ToolInput(
             tag="lenient",
             input_type=Boolean(optional=True),
             prefix="--lenient",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-LE) Lenient processing of VCF files Default value: false. Possible values: {true, false}"
             ),
         ),
         ToolInput(
             tag="maxBasesInOverhang",
             input_type=Int(optional=True),
             prefix="--max-bases-in-overhang",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " max number of bases allowed in the overhang  Default value: 40. "
             ),
         ),
         ToolInput(
             tag="maxMismatchesInOverhang",
             input_type=Int(optional=True),
             prefix="--max-mismatches-in-overhang",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " max number of mismatches allowed in the overhang  Default value: 1. "
             ),
         ),
         ToolInput(
             tag="processSecondaryAlignments",
             input_type=Boolean(optional=True),
             prefix="--process-secondary-alignments",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " have the walker split secondary alignments (will still repair MC tag without it)  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="quiet",
             input_type=Boolean(optional=True),
             prefix="--QUIET",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "Whether to suppress job-summary info on System.err. Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="readFilter",
             input_type=String(optional=True),
             prefix="--read-filter",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-RF) Read filters to be applied before analysis This argument may be specified 0 or more times. Default value: null. Possible Values: {AlignmentAgreesWithHeaderReadFilter, AllowAllReadsReadFilter, AmbiguousBaseReadFilter, CigarContainsNoNOperator, FirstOfPairReadFilter, FragmentLengthReadFilter, GoodCigarReadFilter, HasReadGroupReadFilter, IntervalOverlapReadFilter, LibraryReadFilter, MappedReadFilter, MappingQualityAvailableReadFilter, MappingQualityNotZeroReadFilter, MappingQualityReadFilter, MatchingBasesAndQualsReadFilter, MateDifferentStrandReadFilter, MateOnSameContigOrNoMappedMateReadFilter, MateUnmappedAndUnmappedReadFilter, MetricsReadFilter, NonChimericOriginalAlignmentReadFilter, NonZeroFragmentLengthReadFilter, NonZeroReferenceLengthAlignmentReadFilter, NotDuplicateReadFilter, NotOpticalDuplicateReadFilter, NotSecondaryAlignmentReadFilter, NotSupplementaryAlignmentReadFilter, OverclippedReadFilter, PairedReadFilter, PassesVendorQualityCheckReadFilter, PlatformReadFilter, PlatformUnitReadFilter, PrimaryLineReadFilter, ProperlyPairedReadFilter, ReadGroupBlackListReadFilter, ReadGroupReadFilter, ReadLengthEqualsCigarLengthReadFilter, ReadLengthReadFilter, ReadNameReadFilter, ReadStrandFilter, SampleReadFilter, SecondOfPairReadFilter, SeqIsStoredReadFilter, SoftClippedReadFilter, ValidAlignmentEndReadFilter, ValidAlignmentStartReadFilter, WellformedReadFilter}"
             ),
         ),
         ToolInput(
             tag="readIndex",
             input_type=String(optional=True),
             prefix="--read-index",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-read-index)  Indices to use for the read inputs. If specified, an index must be provided for every read input and in the same order as the read inputs. If this argument is not specified, the path to the index for each input will be inferred automatically.  This argument may be specified 0 or more times. Default value: null. "
             ),
         ),
         ToolInput(
             tag="readValidationStringency",
             input_type=Boolean(optional=True),
             prefix="--read-validation-stringency",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-VS)  Validation stringency for all SAM/BAM/CRAM/SRA files read by this program.  The default stringency value SILENT can improve performance when processing a BAM file in which variable-length data (read, qualities, tags) do not otherwise need to be decoded.  Default value: SILENT. Possible values: {STRICT, LENIENT, SILENT} "
             ),
         ),
         ToolInput(
             tag="refactorCigarString",
             input_type=Boolean(optional=True),
             prefix="--refactor-cigar-string",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-fixNDN)  refactor cigar string with NDN elements to one element  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="secondsBetweenProgressUpdates",
             input_type=Double(optional=True),
             prefix="--seconds-between-progress-updates",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-seconds-between-progress-updates)  Output traversal statistics every time this many seconds elapse  Default value: 10.0. "
             ),
         ),
         ToolInput(
             tag="sequenceDictionary",
             input_type=String(optional=True),
             prefix="--sequence-dictionary",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-sequence-dictionary)  Use the given sequence dictionary as the master/canonical sequence dictionary.  Must be a .dict file.  Default value: null. "
             ),
         ),
         ToolInput(
             tag="sitesOnlyVcfOutput",
             input_type=Boolean(optional=True),
             prefix="--sites-only-vcf-output",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " If true, don't emit genotype fields when writing vcf file output.  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="skipMappingQualityTransform",
             input_type=Boolean(optional=True),
             prefix="--skip-mapping-quality-transform",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-skip-mq-transform)  skip the 255 -> 60 MQ read transform  Default value: false. Possible values: {true, false}"
             ),
         ),
         ToolInput(
             tag="tmpDir",
             input_type=String(optional=True),
             prefix="--tmp-dir",
             separate_value_from_prefix=True,
             default="tmp/",
             doc=InputDocumentation(
                 doc="Temp directory to use. Default value: null."),
         ),
         ToolInput(
             tag="useJdkDeflater",
             input_type=Boolean(optional=True),
             prefix="--use-jdk-deflater",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-jdk-deflater)  Whether to use the JdkDeflater (as opposed to IntelDeflater)  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="useJdkInflater",
             input_type=Boolean(optional=True),
             prefix="--use-jdk-inflater",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-jdk-inflater)  Whether to use the JdkInflater (as opposed to IntelInflater)  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="verbosity",
             input_type=Boolean(optional=True),
             prefix="--verbosity",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-verbosity)  Control verbosity of logging.  Default value: INFO. Possible values: {ERROR, WARNING, INFO, DEBUG} "
             ),
         ),
         ToolInput(
             tag="version",
             input_type=Boolean(optional=True),
             prefix="--version",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "display the version number for this tool Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="disableToolDefaultReadFilters",
             input_type=Boolean(optional=True),
             prefix="--disable-tool-default-read-filters",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-disable-tool-default-read-filters)  Disable all tool default read filters (WARNING: many tools will not function correctly without their default read filters on)  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="maxReadsInMemory",
             input_type=Boolean(optional=True),
             prefix="--max-reads-in-memory",
             separate_value_from_prefix=True,
             doc=InputDocumentation(doc="Default value: 150000."),
         ),
         ToolInput(
             tag="showhidden",
             input_type=Boolean(optional=True),
             prefix="--showHidden",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-showHidden)  display hidden arguments  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="ambigFilterBases",
             input_type=Int(optional=True),
             prefix="--ambig-filter-bases",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "Threshold number of ambiguous bases. If null, uses threshold fraction; otherwise, overrides threshold fraction.  Default value: null.  Cannot be used in conjuction with argument(s) maxAmbiguousBaseFraction"
             ),
         ),
         ToolInput(
             tag="ambigFilterFrac",
             input_type=Double(optional=True),
             prefix="--ambig-filter-frac",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "Threshold fraction of ambiguous bases Default value: 0.05. Cannot be used in conjuction with argument(s) maxAmbiguousBases"
             ),
         ),
         ToolInput(
             tag="maxFragmentLength",
             input_type=Boolean(optional=True),
             prefix="--max-fragment-length",
             separate_value_from_prefix=True,
             doc=InputDocumentation(doc="Default value: 1000000."),
         ),
         ToolInput(
             tag="minFragmentLength",
             input_type=Boolean(optional=True),
             prefix="--min-fragment-length",
             separate_value_from_prefix=True,
             doc=InputDocumentation(doc="Default value: 0."),
         ),
         ToolInput(
             tag="keepIntervals",
             input_type=String(optional=True),
             prefix="--keep-intervals",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "One or more genomic intervals to keep This argument must be specified at least once. Required. "
             ),
         ),
         ToolInput(
             tag="library",
             input_type=String(optional=True),
             prefix="--library",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-library) Name of the library to keep This argument must be specified at least once. Required."
             ),
         ),
         ToolInput(
             tag="maximumMappingQuality",
             input_type=Int(optional=True),
             prefix="--maximum-mapping-quality",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Maximum mapping quality to keep (inclusive)  Default value: null. "
             ),
         ),
         ToolInput(
             tag="minimumMappingQuality",
             input_type=Int(optional=True),
             prefix="--minimum-mapping-quality",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Minimum mapping quality to keep (inclusive)  Default value: 10. "
             ),
         ),
         ToolInput(
             tag="dontRequireSoftClipsBothEnds",
             input_type=Boolean(optional=True),
             prefix="--dont-require-soft-clips-both-ends",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Allow a read to be filtered out based on having only 1 soft-clipped block. By default, both ends must have a soft-clipped block, setting this flag requires only 1 soft-clipped block  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="filterTooShort",
             input_type=Int(optional=True),
             prefix="--filter-too-short",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc="Minimum number of aligned bases Default value: 30."),
         ),
         ToolInput(
             tag="platformFilterName",
             input_type=Boolean(optional=True),
             prefix="--platform-filter-name",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "This argument must be specified at least once. Required."
             ),
         ),
         ToolInput(
             tag="blackListedLanes",
             input_type=String(optional=True),
             prefix="--black-listed-lanes",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "Platform unit (PU) to filter out This argument must be specified at least once. Required."
             ),
         ),
         ToolInput(
             tag="readGroupBlackList",
             input_type=Boolean(optional=True),
             prefix="--read-group-black-list",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "This argument must be specified at least once. Required. "
             ),
         ),
         ToolInput(
             tag="keepReadGroup",
             input_type=String(optional=True),
             prefix="--keep-read-group",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc="The name of the read group to keep Required."),
         ),
         ToolInput(
             tag="maxReadLength",
             input_type=Int(optional=True),
             prefix="--max-read-length",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "Keep only reads with length at most equal to the specified value Required."
             ),
         ),
         ToolInput(
             tag="minReadLength",
             input_type=Int(optional=True),
             prefix="--min-read-length",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "Keep only reads with length at least equal to the specified value Default value: 1."
             ),
         ),
         ToolInput(
             tag="readName",
             input_type=String(optional=True),
             prefix="--read-name",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc="Keep only reads with this read name Required."),
         ),
         ToolInput(
             tag="keepReverseStrandOnly",
             input_type=Boolean(optional=True),
             prefix="--keep-reverse-strand-only",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Keep only reads on the reverse strand  Required. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="sample",
             input_type=String(optional=True),
             prefix="--sample",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-sample) The name of the sample(s) to keep, filtering out all others This argument must be specified at least once. Required. "
             ),
         ),
         ToolInput(
             tag="invertSoftClipRatioFilter",
             input_type=Boolean(optional=True),
             prefix="--invert-soft-clip-ratio-filter",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Inverts the results from this filter, causing all variants that would pass to fail and visa-versa.  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="softClippedLeadingTrailingRatio",
             input_type=Double(optional=True),
             prefix="--soft-clipped-leading-trailing-ratio",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Threshold ratio of soft clipped bases (leading / trailing the cigar string) to total bases in read for read to be filtered.  Default value: null.  Cannot be used in conjuction with argument(s) minimumSoftClippedRatio"
             ),
         ),
         ToolInput(
             tag="softClippedRatioThreshold",
             input_type=Double(optional=True),
             prefix="--soft-clipped-ratio-threshold",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Threshold ratio of soft clipped bases (anywhere in the cigar string) to total bases in read for read to be filtered.  Default value: null.  Cannot be used in conjuction with argument(s) minimumLeadingTrailingSoftClippedRatio"
             ),
         ),
     ]
Exemplo n.º 5
0
class Gatk4SplitReadsBase(Gatk4ToolBase):
    def friendly_name(self) -> str:
        return "GATK4: SplitReads"

    def tool(self) -> str:
        return "Gatk4SplitReads"

    @classmethod
    def gatk_command(cls):
        return "SplitReads"

    def inputs(self):
        return [
            ToolInput(
                "outputFilename",
                String(),
                prefix="--output",
                default=".",
                doc=
                "The directory to output SAM/BAM/CRAM files. Default value: '.' ",
            ),
            ToolInput(
                "bam",
                BamBai,
                prefix="--input",
                position=1,
                secondaries_present_as={".bai": "^.bai"},
                doc=
                "(-I:String) BAM/SAM/CRAM file containing reads  This argument must be specified at least once.",
            ),
            ToolInput(
                tag="intervals",
                input_type=Bed(optional=True),
                prefix="--intervals",
                doc=
                "(-L:String) One or more genomic intervals over which to operate This argument may be specified 0 or more times. Default value: null. ",
            ),
            *super().inputs(),
            *Gatk4SplitReadsBase.additional_args,
        ]

    def memory(self, hints: Dict[str, Any]):
        val = get_value_for_hints_and_ordered_resource_tuple(hints, MEM_TUPLE)
        if val:
            return val
        return 4

    def outputs(self):
        return [
            ToolOutput(
                "out",
                BamBai,
                glob=InputSelector("bam").basename(),
                doc="Bam",
                secondaries_present_as={".bai": "^.bai"},
            )
        ]

    def bind_metadata(self):
        return ToolMetadata(
            contributors=["Michael Franklin"],
            dateCreated=datetime(2019, 9, 16),
            dateUpdated=datetime(2019, 9, 16),
            documentation=
            "USAGE: SplitReads [arguments]\nOutputs reads from a SAM/BAM/CRAM by read group, sample and library name\nVersion:4.1.3.0",
        )

    additional_args = [
        ToolInput(
            tag="addOutputSamProgramRecord",
            input_type=Boolean(optional=True),
            prefix="-add-output-sam-program-record",
            doc=
            "(--add-output-sam-program-record)  If true, adds a PG tag to created SAM/BAM/CRAM files.  Default value: true. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="addOutputVcfCommandLine",
            input_type=Boolean(optional=True),
            prefix="-add-output-vcf-command-line",
            doc=
            "(--add-output-vcf-command-line)  If true, adds a command line header line to created VCF files.  Default value: true. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="arguments_file",
            input_type=File(optional=True),
            prefix="--arguments_file:File",
            doc=
            "read one or more arguments files and add them to the command line This argument may be specified 0 or more times. Default value: null. ",
        ),
        ToolInput(
            tag="cloudIndexPrefetchBuffer",
            input_type=String(optional=True),
            prefix="--cloud-index-prefetch-buffer",
            doc=
            "(-CIPB:Integer)  Size of the cloud-only prefetch buffer (in MB; 0 to disable). Defaults to cloudPrefetchBuffer if unset.  Default value: -1. ",
        ),
        ToolInput(
            tag="cloudPrefetchBuffer",
            input_type=String(optional=True),
            prefix="--cloud-prefetch-buffer",
            doc=
            "(-CPB:Integer)  Size of the cloud-only prefetch buffer (in MB; 0 to disable).  Default value: 40. ",
        ),
        ToolInput(
            tag="createOutputBamIndex",
            input_type=String(optional=True),
            prefix="--create-output-bam-index",
            doc=
            "(-OBI:Boolean)  If true, create a BAM/CRAM index when writing a coordinate-sorted BAM/CRAM file.  Default value: true. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="createOutputBamMd5",
            input_type=String(optional=True),
            prefix="--create-output-bam-md5",
            doc=
            "(-OBM:Boolean)  If true, create a MD5 digest for any BAM/SAM/CRAM file created  Default value: false. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="createOutputVariantIndex",
            input_type=String(optional=True),
            prefix="--create-output-variant-index",
            doc=
            "(-OVI:Boolean)  If true, create a VCF index when writing a coordinate-sorted VCF file.  Default value: true. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="createOutputVariantMd5",
            input_type=String(optional=True),
            prefix="--create-output-variant-md5",
            doc=
            "(-OVM:Boolean)  If true, create a a MD5 digest any VCF file created.  Default value: false. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="disableBamIndexCaching",
            input_type=String(optional=True),
            prefix="--disable-bam-index-caching",
            doc=
            "(-DBIC:Boolean)  If true, don't cache bam indexes, this will reduce memory requirements but may harm performance if many intervals are specified.  Caching is automatically disabled if there are no intervals specified.  Default value: false. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="disableReadFilter",
            input_type=String(optional=True),
            prefix="--disable-read-filter",
            doc=
            "(-DF:String)  Read filters to be disabled before analysis  This argument may be specified 0 or more times. Default value: null. Possible Values: {WellformedReadFilter}",
        ),
        ToolInput(
            tag="disableSequenceDictionaryValidation",
            input_type=Boolean(optional=True),
            prefix="-disable-sequence-dictionary-validation",
            doc=
            "(--disable-sequence-dictionary-validation)  If specified, do not check the sequence dictionaries from our inputs for compatibility. Use at your own risk!  Default value: false. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="excludeIntervals",
            input_type=String(optional=True),
            prefix="--exclude-intervals",
            doc=
            "(-XL:StringOne) This argument may be specified 0 or more times. Default value: null. ",
        ),
        ToolInput(
            tag="gatkConfigFile",
            input_type=File(optional=True),
            prefix="--gatk-config-file",
            doc=
            "A configuration file to use with the GATK. Default value: null.",
        ),
        ToolInput(
            tag="gcsRetries",
            input_type=Int(optional=True),
            prefix="-gcs-retries",
            doc=
            "(--gcs-max-retries)  If the GCS bucket channel errors out, how many times it will attempt to re-initiate the connection  Default value: 20. ",
        ),
        ToolInput(
            tag="gcsProjectForRequesterPays",
            input_type=String(optional=True),
            prefix="--gcs-project-for-requester-pays",
            doc=
            " Project to bill when accessing requester pays  buckets. If unset, these buckets cannot be accessed.  Default value: . ",
        ),
        ToolInput(
            tag="intervalExclusionPadding",
            input_type=Int(optional=True),
            prefix="--interval-exclusion-padding",
            doc=
            "(-ixp:Integer)  Amount of padding (in bp) to add to each interval you are excluding.  Default value: 0. ",
        ),
        ToolInput(
            tag="imr",
            input_type=String(optional=True),
            prefix="-imr:IntervalMergingRule",
            doc=
            "(--interval-merging-rule)  Interval merging rule for abutting intervals  Default value: ALL. Possible values: {ALL, OVERLAPPING_ONLY} ",
        ),
        ToolInput(
            tag="ip",
            input_type=Int(optional=True),
            prefix="-ip",
            doc="(--interval-padding) Default value: 0.",
        ),
        ToolInput(
            tag="isr",
            input_type=String(optional=True),
            prefix="-isr:IntervalSetRule",
            doc=
            "(--interval-set-rule)  Set merging approach to use for combining interval inputs  Default value: UNION. Possible values: {UNION, INTERSECTION} ",
        ),
        ToolInput(
            tag="le",
            input_type=Boolean(optional=True),
            prefix="--lenient",
            doc=
            "(-LE) Lenient processing of VCF files Default value: false. Possible values: {true, false}",
        ),
        ToolInput(
            tag="quiet",
            input_type=Boolean(optional=True),
            prefix="--QUIET",
            doc=
            "Whether to suppress job-summary info on System.err. Default value: false. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="readFilter",
            input_type=String(optional=True),
            prefix="--read-filter",
            doc=
            "(-RF:String) Read filters to be applied before analysis This argument may be specified 0 or more times. Default value: null. Possible Values: {AlignmentAgreesWithHeaderReadFilter, AllowAllReadsReadFilter, AmbiguousBaseReadFilter, CigarContainsNoNOperator, FirstOfPairReadFilter, FragmentLengthReadFilter, GoodCigarReadFilter, HasReadGroupReadFilter, IntervalOverlapReadFilter, LibraryReadFilter, MappedReadFilter, MappingQualityAvailableReadFilter, MappingQualityNotZeroReadFilter, MappingQualityReadFilter, MatchingBasesAndQualsReadFilter, MateDifferentStrandReadFilter, MateOnSameContigOrNoMappedMateReadFilter, MateUnmappedAndUnmappedReadFilter, MetricsReadFilter, NonChimericOriginalAlignmentReadFilter, NonZeroFragmentLengthReadFilter, NonZeroReferenceLengthAlignmentReadFilter, NotDuplicateReadFilter, NotOpticalDuplicateReadFilter, NotSecondaryAlignmentReadFilter, NotSupplementaryAlignmentReadFilter, OverclippedReadFilter, PairedReadFilter, PassesVendorQualityCheckReadFilter, PlatformReadFilter, PlatformUnitReadFilter, PrimaryLineReadFilter, ProperlyPairedReadFilter, ReadGroupBlackListReadFilter, ReadGroupReadFilter, ReadLengthEqualsCigarLengthReadFilter, ReadLengthReadFilter, ReadNameReadFilter, ReadStrandFilter, SampleReadFilter, SecondOfPairReadFilter, SeqIsStoredReadFilter, SoftClippedReadFilter, ValidAlignmentEndReadFilter, ValidAlignmentStartReadFilter, WellformedReadFilter}",
        ),
        ToolInput(
            tag="readIndex",
            input_type=String(optional=True),
            prefix="-read-index",
            doc=
            "(--read-index)  Indices to use for the read inputs. If specified, an index must be provided for every read input and in the same order as the read inputs. If this argument is not specified, the path to the index for each input will be inferred automatically.  This argument may be specified 0 or more times. Default value: null. ",
        ),
        ToolInput(
            tag="readValidationStringency",
            input_type=String(optional=True),
            prefix="--read-validation-stringency",
            doc=
            "(-VS:ValidationStringency)  Validation stringency for all SAM/BAM/CRAM/SRA files read by this program.  The default stringency value SILENT can improve performance when processing a BAM file in which variable-length data (read, qualities, tags) do not otherwise need to be decoded.  Default value: SITool returned: 0 LENT. Possible values: {STRICT, LENIENT, SILENT} ",
        ),
        ToolInput(
            tag="reference",
            input_type=FastaWithDict(optional=True),
            prefix="--reference",
            doc="(-R:String) Reference sequence Default value: null.",
        ),
        ToolInput(
            tag="secondsBetweenProgressUpdates",
            input_type=Double(optional=True),
            prefix="-seconds-between-progress-updates",
            doc=
            "(--seconds-between-progress-updates)  Output traversal statistics every time this many seconds elapse  Default value: 10.0. ",
        ),
        ToolInput(
            tag="sequenceDictionary",
            input_type=String(optional=True),
            prefix="-sequence-dictionary",
            doc=
            "(--sequence-dictionary)  Use the given sequence dictionary as the master/canonical sequence dictionary.  Must be a .dict file.  Default value: null. ",
        ),
        ToolInput(
            tag="sitesOnlyVcfOutput",
            input_type=Boolean(optional=True),
            prefix="--sites-only-vcf-output:Boolean",
            doc=
            " If true, don't emit genotype fields when writing vcf file output.  Default value: false. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="splitLibraryName",
            input_type=String(optional=True),
            prefix="--split-library-name",
            doc=
            "(-LB)  Split file by library.  Default value: false. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="rg",
            input_type=String(optional=True),
            prefix="--split-read-group",
            doc=
            "(-RG:BooleanSplit) Default value: false. Possible values: {true, false}",
        ),
        ToolInput(
            tag="splitSample",
            input_type=String(optional=True),
            prefix="--split-sample",
            doc=
            "(-SM:Boolean) Split file by sample. Default value: false. Possible values: {true, false}",
        ),
        ToolInput(
            tag="tmpDir",
            input_type=String(optional=True),
            prefix="--tmp-dir:GATKPathSpecifier",
            doc="Temp directory to use. Default value: null.",
        ),
        ToolInput(
            tag="jdkDeflater",
            input_type=Boolean(optional=True),
            prefix="-jdk-deflater",
            doc=
            "(--use-jdk-deflater)  Whether to use the JdkDeflater (as opposed to IntelDeflater)  Default value: false. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="jdkInflater",
            input_type=Boolean(optional=True),
            prefix="-jdk-inflater",
            doc=
            "(--use-jdk-inflater)  Whether to use the JdkInflater (as opposed to IntelInflater)  Default value: false. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="verbosity",
            input_type=String(optional=True),
            prefix="-verbosity:LogLevel",
            doc=
            "(--verbosity)  Control verbosity of logging.  Default value: INFO. Possible values: {ERROR, WARNING, INFO, DEBUG} ",
        ),
        ToolInput(
            tag="disableToolDefaultReadFilters",
            input_type=Boolean(optional=True),
            prefix="-disable-tool-default-read-filters",
            doc=
            "(--disable-tool-default-read-filters)  Disable all tool default read filters (WARNING: many tools will not function correctly without their default read filters on)  Default value: false. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="ambigFilterBases",
            input_type=Int(optional=True),
            prefix="--ambig-filter-bases",
            doc=
            "Threshold number of ambiguous bases. If null, uses threshold fraction; otherwise, overrides threshold fraction.  Default value: null.  Cannot be used in conjuction with argument(s) maxAmbiguousBaseFraction",
        ),
        ToolInput(
            tag="ambigFilterFrac",
            input_type=Double(optional=True),
            prefix="--ambig-filter-frac",
            doc=
            "Threshold fraction of ambiguous bases Default value: 0.05. Cannot be used in conjuction with argument(s) maxAmbiguousBases",
        ),
        ToolInput(
            tag="maxFragmentLength",
            input_type=Int(optional=True),
            prefix="--max-fragment-length",
            doc="Default value: 1000000.",
        ),
        ToolInput(
            tag="minFragmentLength",
            input_type=Int(optional=True),
            prefix="--min-fragment-length",
            doc="Default value: 0.",
        ),
        ToolInput(
            tag="keepIntervals",
            input_type=String(optional=True),
            prefix="--keep-intervals",
            doc=
            'Valid only if "IntervalOverlapReadFilter" is specified: One or more genomic intervals to keep This argument must be specified at least once. Required. ',
        ),
        ToolInput(
            tag="library",
            input_type=String(optional=True),
            prefix="-library",
            doc=
            '(--library) Valid only if "LibraryReadFilter" is specified: Name of the library to keep This argument must be specified at least once. Required.',
        ),
        ToolInput(
            tag="maximumMappingQuality",
            input_type=Int(optional=True),
            prefix="--maximum-mapping-quality",
            doc=
            " Maximum mapping quality to keep (inclusive)  Default value: null. ",
        ),
        ToolInput(
            tag="minimumMappingQuality",
            input_type=Int(optional=True),
            prefix="--minimum-mapping-quality",
            doc=
            " Minimum mapping quality to keep (inclusive)  Default value: 10. ",
        ),
        ToolInput(
            tag="dontRequireSoftClipsBothEnds",
            input_type=Boolean(optional=True),
            prefix="--dont-require-soft-clips-both-ends",
            doc=
            " Allow a read to be filtered out based on having only 1 soft-clipped block. By default, both ends must have a soft-clipped block, setting this flag requires only 1 soft-clipped block  Default value: false. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="filterTooShort",
            input_type=Int(optional=True),
            prefix="--filter-too-short",
            doc="Minimum number of aligned bases Default value: 30.",
        ),
        ToolInput(
            tag="platformFilterName",
            input_type=String(optional=True),
            prefix="--platform-filter-name:String",
            doc="This argument must be specified at least once. Required.",
        ),
        ToolInput(
            tag="blackListedLanes",
            input_type=String(optional=True),
            prefix="--black-listed-lanes:String",
            doc=
            "Platform unit (PU) to filter out This argument must be specified at least once. Required.",
        ),
        ToolInput(
            tag="readGroupBlackList",
            input_type=String(optional=True),
            prefix="--read-group-black-list:StringThe",
            doc="This argument must be specified at least once. Required. ",
        ),
        ToolInput(
            tag="keepReadGroup",
            input_type=String(optional=True),
            prefix="--keep-read-group:String",
            doc="The name of the read group to keep Required.",
        ),
        ToolInput(
            tag="maxReadLength",
            input_type=Int(optional=True),
            prefix="--max-read-length",
            doc=
            "Keep only reads with length at most equal to the specified value Required.",
        ),
        ToolInput(
            tag="minReadLength",
            input_type=Int(optional=True),
            prefix="--min-read-length",
            doc=
            "Keep only reads with length at least equal to the specified value Default value: 1.",
        ),
        ToolInput(
            tag="readName",
            input_type=String(optional=True),
            prefix="--read-name:String",
            doc="Keep only reads with this read name Required.",
        ),
        ToolInput(
            tag="keepReverseStrandOnly",
            input_type=Boolean(optional=True),
            prefix="--keep-reverse-strand-only",
            doc=
            " Keep only reads on the reverse strand  Required. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="sample",
            input_type=String(optional=True),
            prefix="-sample:String",
            doc=
            "(--sample) The name of the sample(s) to keep, filtering out all others This argument must be specified at least once. Required. ",
        ),
        ToolInput(
            tag="invertSoftClipRatioFilter",
            input_type=Boolean(optional=True),
            prefix="--invert-soft-clip-ratio-filter",
            doc=
            " Inverts the results from this filter, causing all variants that would pass to fail and visa-versa.  Default value: false. Possible values: {true, false} ",
        ),
        ToolInput(
            tag="softClippedLeadingTrailingRatio",
            input_type=Double(optional=True),
            prefix="--soft-clipped-leading-trailing-ratio",
            doc=
            " Threshold ratio of soft clipped bases (leading / trailing the cigar string) to total bases in read for read to be filtered.  Default value: null.  Cannot be used in conjuction with argument(s) minimumSoftClippedRatio",
        ),
        ToolInput(
            tag="softClippedRatioThreshold",
            input_type=Double(optional=True),
            prefix="--soft-clipped-ratio-threshold",
            doc=
            " Threshold ratio of soft clipped bases (anywhere in the cigar string) to total bases in read for read to be filtered.  Default value: null.  Cannot be used in conjuction with argument(s) minimumLeadingTrailingSoftClippedRatio",
        ),
    ]

    def tests(self):
        remote_dir = "https://swift.rc.nectar.org.au/v1/AUTH_4df6e734a509497692be237549bbe9af/janis-test-data/bioinformatics/wgsgermline_data"
        return [
            TTestCase(
                name="basic",
                input={
                    "bam": f"{remote_dir}/NA12878-BRCA1.recalibrated.bam",
                    "intervals": f"{remote_dir}/BRCA1.hg38.bed",
                    "javaOptions": ["-Xmx3G"],
                    "outputFilename": ".",
                },
                output=BamBai.basic_test(
                    "out",
                    2600900,
                    21300,
                    f"{remote_dir}/NA12878-BRCA1.split.flagstat",
                ),
            )
        ]
Exemplo n.º 6
0
class Gatk4CollectInsertSizeMetricsBase(Gatk4ToolBase, ABC):
    @classmethod
    def gatk_command(cls):
        return "CollectInsertSizeMetrics"

    def tool(self):
        return "Gatk4CollectInsertSizeMetrics"

    def friendly_name(self):
        return "GATK4: CollectInsertSizeMetrics"

    def bind_metadata(self):
        from datetime import date

        return ToolMetadata(
            contributors=["Jiaan Yu"],
            dateCreated=date(2020, 2, 17),
            dateUpdated=date(2020, 2, 17),
            institution="Broad Institute",
            doi=None,
            citation="See https://software.broadinstitute.org/gatk/documentation/article?id=11027 for more information",
            keywords=["gatk", "gatk4", "broad", "picard", "CollectInsertSizeMetrics"],
            documentationUrl="https://gatk.broadinstitute.org/hc/en-us/articles/360036715591-CollectInsertSizeMetrics-Picard-",
            documentation="Provides useful metrics for validating library construction including the insert size distribution and read orientation of paired-end libraries",
        )

    def cpus(self, hints: Dict[str, Any]):
        val = get_value_for_hints_and_ordered_resource_tuple(hints, CORES_TUPLE)
        if val:
            return val
        return 1

    def memory(self, hints: Dict[str, Any]):
        val = get_value_for_hints_and_ordered_resource_tuple(hints, MEM_TUPLE)
        if val:
            return val
        return 8

    def inputs(self):
        return [
            *super(Gatk4CollectInsertSizeMetricsBase, self).inputs(),
            ToolInput(
                "bam",
                BamBai(optional=False),
                prefix="-I",
                doc="Input SAM or BAM file.  Required.",
                position=10,
            ),
            ToolInput(
                "outputFilename",
                Filename(
                    prefix=InputSelector("bam", remove_file_extension=True),
                    extension=".txt",
                    suffix=".metrics",
                ),
                prefix="-O",
                doc="File to write the output to.  Required.",
            ),
            ToolInput(
                "outputHistogram",
                Filename(
                    prefix=InputSelector("bam", remove_file_extension=True),
                    extension=".pdf",
                    suffix=".histogram",
                ),
                prefix="-H",
                doc="File to write insert size Histogram chart to.  Required. ",
            ),
            *Gatk4CollectInsertSizeMetricsBase.additional_args,
        ]

    def outputs(self):
        return [
            ToolOutput("out", TextFile(), glob=InputSelector("outputFilename")),
            ToolOutput(
                "outHistogram",
                File(extension=".pdf"),
                glob=InputSelector("outputHistogram"),
            ),
        ]

    additional_args = [
        ToolInput(
            "argumentsFile",
            Array(File(), optional=True),
            prefix="--arguments_file",
            position=10,
            prefix_applies_to_all_elements=True,
            doc="read one or more arguments files and add them to the command line",
        ),
        ToolInput(
            "assumeSorted",
            Boolean(optional=True),
            prefix="--ASSUME_SORTED",
            position=11,
            doc="If true (default), then the sort order in the header file will be ignored.  Default value: true. Possible values: {true, false}",
        ),
        ToolInput(
            "deviations",
            Double(optional=True),
            prefix="--DEVIATIONS",
            position=11,
            doc="Generate mean, sd and plots by trimming the data down to MEDIAN + DEVIATIONS*MEDIAN_ABSOLUTE_DEVIATION. This is done because insert size data typically includes enough anomalous values from chimeras and other artifacts to make the mean and sd grossly misleading regarding the real distribution.  Default value: 10.0. ",
        ),
        ToolInput(
            "histogramWidth",
            Int(optional=True),
            prefix="--HISTOGRAM_WIDTH",
            position=11,
            doc="Explicitly sets the Histogram width, overriding automatic truncation of Histogram tail. Also, when calculating mean and standard deviation, only bins <= Histogram_WIDTH will be included.  Default value: null. ",
        ),
        ToolInput(
            "includeDuplicates",
            Boolean(optional=True),
            prefix="--INCLUDE_DUPLICATES",
            position=11,
            doc="If true, also include reads marked as duplicates in the insert size histogram.  Default value: false. Possible values: {true, false} ",
        ),
        ToolInput(
            "metricAccumulationLevel",
            String(optional=True),
            prefix="--METRIC_ACCUMULATION_LEVEL",
            position=11,
            doc="The level(s) at  which to accumulate metrics.    This argument may be specified 0 or more times. Default value: [ALL_READS]. Possible values: {ALL_READS, SAMPLE, LIBRARY, READ_GROUP} .",
        ),
        ToolInput(
            "minimumPCT",
            Float(optional=True),
            prefix="--MINIMUM_PCT",
            position=11,
            doc="When generating the Histogram, discard any data categories (out of FR, TANDEM, RF) that have fewer than this percentage of overall reads. (Range: 0 to 1).  Default value: 0.05.",
        ),
        ToolInput(
            "stopAfter",
            Int(optional=True),
            prefix="--STOP_AFTER",
            position=11,
            doc="Stop after  processing N reads, mainly for debugging.  Default value: 0. ",
        ),
        ToolInput(
            "version",
            Boolean(optional=True),
            prefix="--version",
            position=11,
            doc="display the version number for this tool Default value: false. Possible values: {true, false}",
        ),
        ToolInput(
            "showHidden",
            Boolean(optional=True),
            prefix="--showHidden",
            position=11,
            doc="display hidden  arguments  Default  value: false.  Possible values: {true, false} ",
        ),
    ]

    def tests(self):
        # The first 5 lines of the file include headers that change with every run (time, etc)
        with open(
            os.path.join(
                BioinformaticsTool.test_data_path(),
                "wgsgermline_data",
                "NA12878-BRCA1.markduped.metrics.txt",
            ),
            "r",
        ) as f:
            for i in range(5):
                next(f)
            expected_content = f.read()
        return [
            TTestCase(
                name="basic",
                input={
                    "bam": os.path.join(
                        BioinformaticsTool.test_data_path(),
                        "wgsgermline_data",
                        "NA12878-BRCA1.markduped.bam",
                    ),
                    "javaOptions": ["-Xmx6G"],
                },
                output=TextFile.basic_test("out", 7260, expected_content, 905)
                + [
                    TTestExpectedOutput(
                        tag="outHistogram",
                        preprocessor=TTestPreprocessor.FileSize,
                        operator=operator.ge,
                        expected_value=15600,
                    ),
                ],
            )
        ]
Exemplo n.º 7
0
 def inputs(self):
     return [
         ToolInput(
             tag="outputFilename",
             input_type=Filename(
                 prefix=InputSelector("variant",
                                      remove_file_extension=True),
                 suffix=".scored",
                 extension=".vcf.gz",
             ),
             prefix="--output",
             separate_value_from_prefix=True,
             doc=InputDocumentation(doc="(-O) Output file Required."),
         ),
         ToolInput(
             tag="reference",
             input_type=FastaWithDict(optional=True),
             prefix="--reference",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc="(-R) Reference sequence file Required."),
         ),
         ToolInput(
             tag="variant",
             input_type=Vcf(optional=True),
             prefix="--variant",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc="(-V) A VCF file containing variants Required."),
         ),
         ToolInput(
             tag="addOutputSamProgramRecord",
             input_type=Boolean(optional=True),
             prefix="--add-output-sam-program-record",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-add-output-sam-program-record)  If true, adds a PG tag to created SAM/BAM/CRAM files.  Default value: true. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="addOutputVcfCommandLine",
             input_type=Boolean(optional=True),
             prefix="--add-output-vcf-command-line",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-add-output-vcf-command-line)  If true, adds a command line header line to created VCF files.  Default value: true. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="architecture",
             input_type=JsonFile(optional=True),
             prefix="--architecture",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-architecture)  Neural Net architecture configuration json file  Default value: null. "
             ),
         ),
         ToolInput(
             tag="arguments_file",
             input_type=Array(File, optional=True),
             prefix="--arguments_file",
             separate_value_from_prefix=True,
             prefix_applies_to_all_elements=True,
             doc=InputDocumentation(
                 doc=
                 "read one or more arguments files and add them to the command line This argument may be specified 0 or more times. Default value: null. "
             ),
         ),
         ToolInput(
             tag="cloudIndexPrefetchBuffer",
             input_type=Int(optional=True),
             prefix="--cloud-index-prefetch-buffer",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-CIPB)  Size of the cloud-only prefetch buffer (in MB; 0 to disable). Defaults to cloudPrefetchBuffer if unset.  Default value: -1. "
             ),
         ),
         ToolInput(
             tag="cloudPrefetchBuffer",
             input_type=Int(optional=True),
             prefix="--cloud-prefetch-buffer",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-CPB)  Size of the cloud-only prefetch buffer (in MB; 0 to disable).  Default value: 40. "
             ),
         ),
         ToolInput(
             tag="createOutputBamIndex",
             input_type=Boolean(optional=True),
             prefix="--create-output-bam-index",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-OBI)  If true, create a BAM/CRAM index when writing a coordinate-sorted BAM/CRAM file.  Default value: true. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="createOutputBamMd5",
             input_type=Boolean(optional=True),
             prefix="--create-output-bam-md5",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-OBM)  If true, create a MD5 digest for any BAM/SAM/CRAM file created  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="createOutputVariantIndex",
             input_type=Boolean(optional=True),
             prefix="--create-output-variant-index",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-OVI)  If true, create a VCF index when writing a coordinate-sorted VCF file.  Default value: true. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="createOutputVariantMd5",
             input_type=Boolean(optional=True),
             prefix="--create-output-variant-md5",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-OVM)  If true, create a a MD5 digest any VCF file created.  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="disableBamIndexCaching",
             input_type=Boolean(optional=True),
             prefix="--disable-bam-index-caching",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-DBIC)  If true, don't cache bam indexes, this will reduce memory requirements but may harm performance if many intervals are specified.  Caching is automatically disabled if there are no intervals specified.  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="disableReadFilter",
             input_type=String(optional=True),
             prefix="--disable-read-filter",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-DF)  Read filters to be disabled before analysis  This argument may be specified 0 or more times. Default value: null. Possible Values: {ReadGroupBlackListReadFilter, WellformedReadFilter}"
             ),
         ),
         ToolInput(
             tag="disableSequenceDictionaryValidation",
             input_type=Boolean(optional=True),
             prefix="--disable-sequence-dictionary-validation",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-disable-sequence-dictionary-validation)  If specified, do not check the sequence dictionaries from our inputs for compatibility. Use at your own risk!  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="excludeIntervals",
             input_type=Boolean(optional=True),
             prefix="--exclude-intervals",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-XL) This argument may be specified 0 or more times. Default value: null. "
             ),
         ),
         ToolInput(
             tag="filterSymbolicAndSv",
             input_type=Boolean(optional=True),
             prefix="--filter-symbolic-and-sv",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-filter-symbolic-and-sv)  If set will filter symbolic and and structural variants from the input VCF  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="gatkConfigFile",
             input_type=String(optional=True),
             prefix="--gatk-config-file",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "A configuration file to use with the GATK. Default value: null."
             ),
         ),
         ToolInput(
             tag="gcsMaxRetries",
             input_type=Int(optional=True),
             prefix="--gcs-max-retries",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-gcs-retries)  If the GCS bucket channel errors out, how many times it will attempt to re-initiate the connection  Default value: 20. "
             ),
         ),
         ToolInput(
             tag="gcsProjectForRequesterPays",
             input_type=String(optional=True),
             prefix="--gcs-project-for-requester-pays",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Project to bill when accessing 'requester pays' buckets. If unset, these buckets cannot be accessed.  Default value: . "
             ),
         ),
         ToolInput(
             tag="help",
             input_type=Boolean(optional=True),
             prefix="--help",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-h) display the help message Default value: false. Possible values: {true, false}"
             ),
         ),
         ToolInput(
             tag="inp",
             input_type=String(optional=True),
             prefix="--input",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-I) BAM/SAM/CRAM file containing reads This argument may be specified 0 or more times. Default value: null. "
             ),
         ),
         ToolInput(
             tag="intervalExclusionPadding",
             input_type=Int(optional=True),
             prefix="--interval-exclusion-padding",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-ixp)  Amount of padding (in bp) to add to each interval you are excluding.  Default value: 0. "
             ),
         ),
         ToolInput(
             tag="intervalMergingRule",
             input_type=Boolean(optional=True),
             prefix="--interval-merging-rule",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-imr)  Interval merging rule for abutting intervals  Default value: ALL. Possible values: {ALL, OVERLAPPING_ONLY} "
             ),
         ),
         ToolInput(
             tag="intervalPadding",
             input_type=Boolean(optional=True),
             prefix="--interval-padding",
             separate_value_from_prefix=True,
             doc=InputDocumentation(doc="(-ip) Default value: 0."),
         ),
         ToolInput(
             tag="intervalSetRule",
             input_type=Boolean(optional=True),
             prefix="--interval-set-rule",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-isr)  Set merging approach to use for combining interval inputs  Default value: UNION. Possible values: {UNION, INTERSECTION} "
             ),
         ),
         ToolInput(
             tag="intervals",
             input_type=String(optional=True),
             prefix="--intervals",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-L) One or more genomic intervals over which to operate This argument may be specified 0 or more times. Default value: null. "
             ),
         ),
         ToolInput(
             tag="lenient",
             input_type=Boolean(optional=True),
             prefix="--lenient",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-LE) Lenient processing of VCF files Default value: false. Possible values: {true, false}"
             ),
         ),
         ToolInput(
             tag="quiet",
             input_type=Boolean(optional=True),
             prefix="--QUIET",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "Whether to suppress job-summary info on System.err. Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="readFilter",
             input_type=String(optional=True),
             prefix="--read-filter",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-RF) Read filters to be applied before analysis This argument may be specified 0 or more times. Default value: null. Possible Values: {AlignmentAgreesWithHeaderReadFilter, AllowAllReadsReadFilter, AmbiguousBaseReadFilter, CigarContainsNoNOperator, FirstOfPairReadFilter, FragmentLengthReadFilter, GoodCigarReadFilter, HasReadGroupReadFilter, IntervalOverlapReadFilter, LibraryReadFilter, MappedReadFilter, MappingQualityAvailableReadFilter, MappingQualityNotZeroReadFilter, MappingQualityReadFilter, MatchingBasesAndQualsReadFilter, MateDifferentStrandReadFilter, MateOnSameContigOrNoMappedMateReadFilter, MateUnmappedAndUnmappedReadFilter, MetricsReadFilter, NonChimericOriginalAlignmentReadFilter, NonZeroFragmentLengthReadFilter, NonZeroReferenceLengthAlignmentReadFilter, NotDuplicateReadFilter, NotOpticalDuplicateReadFilter, NotSecondaryAlignmentReadFilter, NotSupplementaryAlignmentReadFilter, OverclippedReadFilter, PairedReadFilter, PassesVendorQualityCheckReadFilter, PlatformReadFilter, PlatformUnitReadFilter, PrimaryLineReadFilter, ProperlyPairedReadFilter, ReadGroupBlackListReadFilter, ReadGroupReadFilter, ReadLengthEqualsCigarLengthReadFilter, ReadLengthReadFilter, ReadNameReadFilter, ReadStrandFilter, SampleReadFilter, SecondOfPairReadFilter, SeqIsStoredReadFilter, SoftClippedReadFilter, ValidAlignmentEndReadFilter, ValidAlignmentStartReadFilter, WellformedReadFilter}"
             ),
         ),
         ToolInput(
             tag="readIndex",
             input_type=String(optional=True),
             prefix="--read-index",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-read-index)  Indices to use for the read inputs. If specified, an index must be provided for every read input and in the same order as the read inputs. If this argument is not specified, the path to the index for each input will be inferred automatically.  This argument may be specified 0 or more times. Default value: null. "
             ),
         ),
         ToolInput(
             tag="readLimit",
             input_type=Int(optional=True),
             prefix="--read-limit",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-read-limit)  Maximum number of reads to encode in a tensor, for 2D models only.  Default value: 128. "
             ),
         ),
         ToolInput(
             tag="readValidationStringency",
             input_type=Boolean(optional=True),
             prefix="--read-validation-stringency",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-VS)  Validation stringency for all SAM/BAM/CRAM/SRA files read by this program.  The default stringency value SILENT can improve performance when processing a BAM file in which variable-length data (read, qualities, tags) do not otherwise need to be decoded.  Default value: SILENT. Possible values: {STRICT, LENIENT, SILENT} "
             ),
         ),
         ToolInput(
             tag="secondsBetweenProgressUpdates",
             input_type=Double(optional=True),
             prefix="--seconds-between-progress-updates",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-seconds-between-progress-updates)  Output traversal statistics every time this many seconds elapse  Default value: 10.0. "
             ),
         ),
         ToolInput(
             tag="sequenceDictionary",
             input_type=String(optional=True),
             prefix="--sequence-dictionary",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-sequence-dictionary)  Use the given sequence dictionary as the master/canonical sequence dictionary.  Must be a .dict file.  Default value: null. "
             ),
         ),
         ToolInput(
             tag="sitesOnlyVcfOutput",
             input_type=Boolean(optional=True),
             prefix="--sites-only-vcf-output",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " If true, don't emit genotype fields when writing vcf file output.  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="tensorType",
             input_type=Boolean(optional=True),
             prefix="--tensor-type",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-tensor-type)  Name of the tensors to generate, reference for 1D reference tensors and read_tensor for 2D tensors.  Default value: reference. Possible values: { reference ( 1 Hot encoding of a reference sequence. ) read_tensor (Read tensor are 3D tensors spanning aligned reads, sites and channels. The maximum number of reads is a hyper-parameter typically set to 128. There are 15 channels in the read tensor. They correspond to the reference sequence data (4), read sequence data (4), insertions and deletions (2) read flags (4) and mapping quality (1).) } "
             ),
         ),
         ToolInput(
             tag="tmpDir",
             input_type=Boolean(optional=True),
             prefix="--tmp-dir",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc="Temp directory to use. Default value: null."),
         ),
         ToolInput(
             tag="useJdkDeflater",
             input_type=Boolean(optional=True),
             prefix="--use-jdk-deflater",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-jdk-deflater)  Whether to use the JdkDeflater (as opposed to IntelDeflater)  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="useJdkInflater",
             input_type=Boolean(optional=True),
             prefix="--use-jdk-inflater",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-jdk-inflater)  Whether to use the JdkInflater (as opposed to IntelInflater)  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="verbosity",
             input_type=Boolean(optional=True),
             prefix="--verbosity",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-verbosity)  Control verbosity of logging.  Default value: INFO. Possible values: {ERROR, WARNING, INFO, DEBUG} "
             ),
         ),
         ToolInput(
             tag="version",
             input_type=Boolean(optional=True),
             prefix="--version",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "display the version number for this tool Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="weights",
             input_type=String(optional=True),
             prefix="--weights",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-weights) Keras model HD5 file with neural net weights. Default value: null."
             ),
         ),
         ToolInput(
             tag="windowSize",
             input_type=Int(optional=True),
             prefix="--window-size",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-window-size)  Neural Net input window size  Default value: 128. "
             ),
         ),
         ToolInput(
             tag="disableAvxCheck",
             input_type=Boolean(optional=True),
             prefix="--disable-avx-check",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-disable-avx-check)  If set, no check will be made for AVX support.  Use only if you have installed a pre-1.6 TensorFlow build.   Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="disableToolDefaultReadFilters",
             input_type=Boolean(optional=True),
             prefix="--disable-tool-default-read-filters",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-disable-tool-default-read-filters)  Disable all tool default read filters (WARNING: many tools will not function correctly without their default read filters on)  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="inferenceBatchSize",
             input_type=Int(optional=True),
             prefix="--inference-batch-size",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-inference-batch-size)  Size of batches for python to do inference on.  Default value: 256. "
             ),
         ),
         ToolInput(
             tag="infoAnnotationKeys",
             input_type=String(optional=True),
             prefix="--info-annotation-keys",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-info-annotation-keys)  The VCF info fields to send to python.  This should only be changed if a new model has been trained which expects the annotations provided here.  This argument may be specified 0 or more times. Default value: [MQ, DP, SOR, FS, QD, MQRankSum, ReadPosRankSum]. "
             ),
         ),
         ToolInput(
             tag="interOpThreads",
             input_type=Int(optional=True),
             prefix="--inter-op-threads",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-inter-op-threads)  Number of inter-op parallelism threads to use for Tensorflow  Default value: 0. "
             ),
         ),
         ToolInput(
             tag="intraOpThreads",
             input_type=Int(optional=True),
             prefix="--intra-op-threads",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-intra-op-threads)  Number of intra-op parallelism threads to use for Tensorflow  Default value: 0. "
             ),
         ),
         ToolInput(
             tag="outputTensorDir",
             input_type=String(optional=True),
             prefix="--output-tensor-dir",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-output-tensor-dir)  Optional directory where tensors can be saved for debugging or visualization.  Default value: . "
             ),
         ),
         ToolInput(
             tag="showhidden",
             input_type=Boolean(optional=True),
             prefix="--showHidden",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-showHidden)  display hidden arguments  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="transferBatchSize",
             input_type=Int(optional=True),
             prefix="--transfer-batch-size",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-transfer-batch-size)  Size of data to queue for python streaming.  Default value: 512. "
             ),
         ),
         ToolInput(
             tag="ambigFilterBases",
             input_type=Int(optional=True),
             prefix="--ambig-filter-bases",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "Threshold number of ambiguous bases. If null, uses threshold fraction; otherwise, overrides threshold fraction.  Default value: null.  Cannot be used in conjuction with argument(s) maxAmbiguousBaseFraction"
             ),
         ),
         ToolInput(
             tag="ambigFilterFrac",
             input_type=Double(optional=True),
             prefix="--ambig-filter-frac",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "Threshold fraction of ambiguous bases Default value: 0.05. Cannot be used in conjuction with argument(s) maxAmbiguousBases"
             ),
         ),
         ToolInput(
             tag="maxFragmentLength",
             input_type=Boolean(optional=True),
             prefix="--max-fragment-length",
             separate_value_from_prefix=True,
             doc=InputDocumentation(doc="Default value: 1000000."),
         ),
         ToolInput(
             tag="minFragmentLength",
             input_type=Boolean(optional=True),
             prefix="--min-fragment-length",
             separate_value_from_prefix=True,
             doc=InputDocumentation(doc="Default value: 0."),
         ),
         ToolInput(
             tag="keepIntervals",
             input_type=String(optional=True),
             prefix="--keep-intervals",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "One or more genomic intervals to keep This argument must be specified at least once. Required. "
             ),
         ),
         ToolInput(
             tag="library",
             input_type=String(optional=True),
             prefix="--library",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-library) Name of the library to keep This argument must be specified at least once. Required."
             ),
         ),
         ToolInput(
             tag="maximumMappingQuality",
             input_type=Int(optional=True),
             prefix="--maximum-mapping-quality",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Maximum mapping quality to keep (inclusive)  Default value: null. "
             ),
         ),
         ToolInput(
             tag="minimumMappingQuality",
             input_type=Int(optional=True),
             prefix="--minimum-mapping-quality",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Minimum mapping quality to keep (inclusive)  Default value: 10. "
             ),
         ),
         ToolInput(
             tag="dontRequireSoftClipsBothEnds",
             input_type=Boolean(optional=True),
             prefix="--dont-require-soft-clips-both-ends",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Allow a read to be filtered out based on having only 1 soft-clipped block. By default, both ends must have a soft-clipped block, setting this flag requires only 1 soft-clipped block  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="filterTooShort",
             input_type=Int(optional=True),
             prefix="--filter-too-short",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc="Minimum number of aligned bases Default value: 30."),
         ),
         ToolInput(
             tag="platformFilterName",
             input_type=Boolean(optional=True),
             prefix="--platform-filter-name",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "This argument must be specified at least once. Required."
             ),
         ),
         ToolInput(
             tag="blackListedLanes",
             input_type=String(optional=True),
             prefix="--black-listed-lanes",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "Platform unit (PU) to filter out This argument must be specified at least once. Required."
             ),
         ),
         ToolInput(
             tag="readGroupBlackList",
             input_type=Boolean(optional=True),
             prefix="--read-group-black-list",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "This argument may be specified 0 or more times. Default value: [ID:ArtificialHaplotypeRG, ID:ArtificialHaplotype]. "
             ),
         ),
         ToolInput(
             tag="keepReadGroup",
             input_type=String(optional=True),
             prefix="--keep-read-group",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc="The name of the read group to keep Required."),
         ),
         ToolInput(
             tag="maxReadLength",
             input_type=Int(optional=True),
             prefix="--max-read-length",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "Keep only reads with length at most equal to the specified value Required."
             ),
         ),
         ToolInput(
             tag="minReadLength",
             input_type=Int(optional=True),
             prefix="--min-read-length",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "Keep only reads with length at least equal to the specified value Default value: 1."
             ),
         ),
         ToolInput(
             tag="readName",
             input_type=String(optional=True),
             prefix="--read-name",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc="Keep only reads with this read name Required."),
         ),
         ToolInput(
             tag="keepReverseStrandOnly",
             input_type=Boolean(optional=True),
             prefix="--keep-reverse-strand-only",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Keep only reads on the reverse strand  Required. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="sample",
             input_type=String(optional=True),
             prefix="--sample",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 "(-sample) The name of the sample(s) to keep, filtering out all others This argument must be specified at least once. Required. "
             ),
         ),
         ToolInput(
             tag="invertSoftClipRatioFilter",
             input_type=Boolean(optional=True),
             prefix="--invert-soft-clip-ratio-filter",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Inverts the results from this filter, causing all variants that would pass to fail and visa-versa.  Default value: false. Possible values: {true, false} "
             ),
         ),
         ToolInput(
             tag="softClippedLeadingTrailingRatio",
             input_type=Double(optional=True),
             prefix="--soft-clipped-leading-trailing-ratio",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Threshold ratio of soft clipped bases (leading / trailing the cigar string) to total bases in read for read to be filtered.  Default value: null.  Cannot be used in conjuction with argument(s) minimumSoftClippedRatio"
             ),
         ),
         ToolInput(
             tag="softClippedRatioThreshold",
             input_type=Double(optional=True),
             prefix="--soft-clipped-ratio-threshold",
             separate_value_from_prefix=True,
             doc=InputDocumentation(
                 doc=
                 " Threshold ratio of soft clipped bases (anywhere in the cigar string) to total bases in read for read to be filtered.  Default value: null.  Cannot be used in conjuction with argument(s) minimumLeadingTrailingSoftClippedRatio"
             ),
         ),
     ]
Exemplo n.º 8
0
 def inputs(self):
     return [
         ToolInput(
             "counts_file",
             File(),
             prefix="--counts-file",
             doc="Merged, gzipped tumor-normal output from snp-pileup",
         ),
         ToolInput(
             "outputPrefix",
             Filename(),
             prefix="--sample-id",
             doc="Sample ID, preferrable Tumor_Normal to keep track of the normal used",
         ),
         ToolInput(
             "directory",
             String(),
             prefix="--directory",
             default=".",
             doc="Output directory to which all output files are written",
         ),
         ToolInput(
             "everything",
             Boolean(optional=True),
             prefix="--everything",
             doc="Run full suite [default False]",
         ),
         ToolInput(
             "genome",
             String(optional=True),
             prefix="--genome",
             doc="Reference genome [default hg19]",
         ),
         ToolInput(
             "cval",
             Int(optional=True),
             prefix="--cval",
             doc="Segmentation parameter (cval) [default 50]",
         ),
         ToolInput(
             "purity_cval",
             Int(optional=True),
             prefix="--purity-cval",
             doc="If two pass, purity segmentation parameter (cval)",
         ),
         ToolInput(
             "min_nhet",
             Int(optional=True),
             prefix="--min-nhet",
             doc="Min. number of heterozygous SNPs required for clustering [default 15]",
         ),
         ToolInput(
             "purity_min_nhet",
             Int(optional=True),
             prefix="--purity-min-nhet",
             doc="If two pass, purity min. number of heterozygous SNPs (cval) [default 15]",
         ),
         ToolInput(
             "snp_window_size",
             Int(optional=True),
             prefix="--snp-window-size",
             doc="Window size for heterozygous SNPs [default 250]",
         ),
         ToolInput(
             "normal_depth",
             Int(optional=True),
             prefix="--normal-depth",
             doc="Min. depth in normal to keep SNPs [default 35]",
         ),
         ToolInput(
             "dipLogR",
             Double(optional=True),
             prefix="--dipLogR",
             doc="Manual dipLogR",
         ),
         ToolInput(
             "seed",
             Int(optional=True),
             prefix="--seed",
             doc="Manual seed value [default 100]",
         ),
         ToolInput(
             "legacy_output",
             Boolean(optional=True),
             prefix="--legacy-output",
             doc="create legacy output files (.RData and .cncf.txt) [default False]",
         ),
         ToolInput(
             "facets_lib_path",
             String(),
             prefix="--facets-lib-path",
             default="/usr/local/lib/R/site-library",
             doc="path to the facets library. if none provided, uses version available to library(facets)",
         ),
     ]
Exemplo n.º 9
0
 def inputs(self):
     return [
         *super().inputs(),
         ToolInput(
             tag="outputFilename",
             input_type=Filename(optional=True),
             prefix="-O",
             separate_value_from_prefix=True,
             doc="(--output) Required.",
         ),
         ToolInput(
             tag="variants",
             input_type=VcfTabix(optional=True),
             prefix="-V",
             separate_value_from_prefix=True,
             doc="(--variant) A VCF file containing variants Required.",
         ),
         ToolInput(
             tag="addOutputSamProgramRecord",
             input_type=Boolean(optional=True),
             prefix="-add-output-sam-program-record:Boolean",
             separate_value_from_prefix=True,
             doc="(--add-output-sam-program-record)  If true, adds a PG tag to created SAM/BAM/CRAM files.  Default value: true. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="addOutputVcfCommandLine",
             input_type=Boolean(optional=True),
             prefix="-add-output-vcf-command-line",
             separate_value_from_prefix=True,
             doc="(--add-output-vcf-command-line)  If true, adds a command line header line to created VCF files.  Default value: true. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="arguments_file",
             input_type=File(optional=True),
             prefix="--arguments_file",
             separate_value_from_prefix=True,
             doc="read one or more arguments files and add them to the command line This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="cloudIndexPrefetchBuffer",
             input_type=Int(optional=True),
             prefix="--cloud-index-prefetch-buffer",
             separate_value_from_prefix=True,
             doc="(-CIPB:Integer)  Size of the cloud-only prefetch buffer (in MB; 0 to disable). Defaults to cloudPrefetchBuffer if unset.  Default value: -1. ",
         ),
         ToolInput(
             tag="cloudPrefetchBuffer",
             input_type=Int(optional=True),
             prefix="--cloud-prefetch-buffer",
             separate_value_from_prefix=True,
             doc="(-CPB:Integer)  Size of the cloud-only prefetch buffer (in MB; 0 to disable).  Default value: 40. ",
         ),
         ToolInput(
             tag="conc",
             input_type=String(optional=True),
             prefix="-conc",
             separate_value_from_prefix=True,
             doc="(--concordance)  Output variants also called in this comparison track  Default value: null. ",
         ),
         ToolInput(
             tag="createOutputBamIndex",
             input_type=Boolean(optional=True),
             prefix="--create-output-bam-index",
             doc="(-OBI)  If true, create a BAM/CRAM index when writing a coordinate-sorted BAM/CRAM file.  Default value: true. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="createOutputBamMd5",
             input_type=Boolean(optional=True),
             prefix="--create-output-bam-md5",
             doc="(-OBM)  If true, create a MD5 digest for any BAM/SAM/CRAM file created  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="createOutputvariantIndex",
             input_type=Boolean(optional=True),
             prefix="--create-output-variant-index",
             default=True,
             doc="(-OVI)  If true, create a VCF index when writing a coordinate-sorted VCF file.  Default value: true. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="createOutputvariantMd5",
             input_type=Boolean(optional=True),
             prefix="--create-output-variant-md5",
             doc="(-OVM)  If true, create a a MD5 digest any VCF file created.  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="disableBamIndexCaching",
             input_type=Boolean(optional=True),
             prefix="--disable-bam-index-caching",
             doc="(-DBIC:Boolean)  If true, don't cache bam indexes, this will reduce memory requirements but may harm performance if many intervals are specified.  Caching is automatically disabled if there are no intervals specified.  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="disableReadFilter",
             input_type=String(optional=True),
             prefix="--disable-read-filter",
             separate_value_from_prefix=True,
             doc="(-DF)  Read filters to be disabled before analysis  This argument may be specified 0 or more times. Default value: null. Possible Values: {WellformedReadFilter}",
         ),
         ToolInput(
             tag="disableSequenceDictionaryValidation",
             input_type=Boolean(optional=True),
             prefix="-disable-sequence-dictionary-validation",
             doc="(--disable-sequence-dictionary-validation)  If specified, do not check the sequence dictionaries from our inputs for compatibility. Use at your own risk!  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="disc",
             input_type=String(optional=True),
             prefix="-disc",
             separate_value_from_prefix=True,
             doc="(--discordance)  Output variants not called in this comparison track  Default value: null. ",
         ),
         ToolInput(
             tag="dropGenotypeAnnotation",
             input_type=String(optional=True),
             prefix="--drop-genotype-annotation",
             separate_value_from_prefix=True,
             doc="(-DGA:String)  Genotype annotations to drop from output vcf.  Annotations to be dropped are specified by their key.  This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="dropInfoAnnotation",
             input_type=String(optional=True),
             prefix="--drop-info-annotation",
             separate_value_from_prefix=True,
             doc="(-DA:String)  Info annotations to drop from output vcf.  Annotations to be dropped are specified by their key.  This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="excludeFiltered",
             input_type=Boolean(optional=True),
             prefix="--exclude-filtered",
             doc="Don't include filtered sites Default value: false. Possible values: {true, false}",
         ),
         ToolInput(
             tag="xlIds",
             input_type=String(optional=True),
             prefix="-xl-ids",
             separate_value_from_prefix=True,
             doc="(--exclude-ids) List of variant rsIDs to exclude This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="excludeIntervals",
             input_type=String(optional=True),
             prefix="--exclude-intervals",
             separate_value_from_prefix=True,
             doc="(-XL) This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="excludeNonvariants",
             input_type=String(optional=True),
             prefix="--exclude-non-variants",
             doc="Default value: false. Possible values: {true, false}",
         ),
         ToolInput(
             tag="excludeSampleExpressions",
             input_type=String(optional=True),
             prefix="--exclude-sample-expressions",
             separate_value_from_prefix=True,
             doc="(-xl-se:String)  List of sample expressions to exclude  This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="excludeSampleName",
             input_type=String(optional=True),
             prefix="--exclude-sample-name",
             separate_value_from_prefix=True,
             doc="(-xl-sn:String)  Exclude genotypes from this sample  This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="gatkConfigFile",
             input_type=File(optional=True),
             prefix="--gatk-config-file",
             separate_value_from_prefix=True,
             doc="A configuration file to use with the GATK. Default value: null.",
         ),
         ToolInput(
             tag="gcsRetries",
             input_type=Int(optional=True),
             prefix="-gcs-retries",
             separate_value_from_prefix=True,
             doc="(--gcs-max-retries)  If the GCS bucket channel errors out, how many times it will attempt to re-initiate the connection  Default value: 20. ",
         ),
         ToolInput(
             tag="gcsProjectForRequesterPays",
             input_type=String(optional=True),
             prefix="--gcs-project-for-requester-pays",
             separate_value_from_prefix=True,
             doc=" Project to bill when accessing requester pays buckets. If unset, these buckets cannot be accessed.  Default value: . ",
         ),
         ToolInput(
             tag="help",
             input_type=Boolean(optional=True),
             prefix="-h",
             doc="(--help) display the help message Default value: false. Possible values: {true, false}",
         ),
         ToolInput(
             tag="bam",
             input_type=BamBai(optional=True),
             prefix="-I",
             separate_value_from_prefix=True,
             doc="(--input) BAM/SAM/CRAM file containing reads This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="intervalExclusionPadding",
             input_type=Int(optional=True),
             prefix="--interval-exclusion-padding",
             separate_value_from_prefix=True,
             doc="(-ixp:Integer)  Amount of padding (in bp) to add to each interval you are excluding.  Default value: 0. ",
         ),
         ToolInput(
             tag="imr",
             input_type=String(optional=True),
             prefix="-imr",
             separate_value_from_prefix=True,
             doc="(--interval-merging-rule)  Interval merging rule for abutting intervals  Default value: ALL. Possible values: {ALL, OVERLAPPING_ONLY} ",
         ),
         ToolInput(
             tag="ip",
             input_type=Int(optional=True),
             prefix="-ip",
             separate_value_from_prefix=True,
             doc="(--interval-padding) Default value: 0.",
         ),
         ToolInput(
             tag="isr",
             input_type=String(optional=True),
             prefix="-isr",
             separate_value_from_prefix=True,
             doc="(--interval-set-rule)  Set merging approach to use for combining interval inputs  Default value: UNION. Possible values: {UNION, INTERSECTION} ",
         ),
         ToolInput(
             tag="intervals",
             input_type=String(optional=True),
             prefix="--intervals",
             separate_value_from_prefix=True,
             doc="(-L:String) One or more genomic intervals over which to operate This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="invertMendelianViolation",
             input_type=Boolean(optional=True),
             prefix="--invert-mendelian-violation",
             doc=" Output non-mendelian violation sites only  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="invertSelect",
             input_type=Boolean(optional=True),
             prefix="-invert-select",
             doc="(--invertSelect)  Invert the selection criteria for -select  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="ids",
             input_type=String(optional=True),
             prefix="-ids",
             separate_value_from_prefix=True,
             doc="(--keep-ids) List of variant rsIDs to select This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="keepOriginalAc",
             input_type=Boolean(optional=True),
             prefix="--keep-original-ac",
             doc="Store the original AC, AF, and AN values after subsetting Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="keepOriginalDp",
             input_type=Boolean(optional=True),
             prefix="--keep-original-dp",
             separate_value_from_prefix=True,
             doc="Store the original DP value after subsetting Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="le",
             input_type=Boolean(optional=True),
             prefix="-LE",
             separate_value_from_prefix=True,
             doc="(--lenient) Lenient processing of VCF files Default value: false. Possible values: {true, false}",
         ),
         ToolInput(
             tag="maxFilteredGenotypes",
             input_type=Int(optional=True),
             prefix="--max-filtered-genotypes",
             separate_value_from_prefix=True,
             doc="Maximum number of samples filtered at the genotype level  Default value: 2147483647. ",
         ),
         ToolInput(
             tag="maxFractionFilteredGenotypes",
             input_type=Double(optional=True),
             prefix="--max-fraction-filtered-genotypes",
             separate_value_from_prefix=True,
             doc=" Maximum fraction of samples filtered at the genotype level  Default value: 1.0. ",
         ),
         ToolInput(
             tag="maxIndelSize",
             input_type=Int(optional=True),
             prefix="--max-indel-size",
             separate_value_from_prefix=True,
             doc="Maximum size of indels to include Default value: 2147483647.",
         ),
         ToolInput(
             tag="maxNocallFraction",
             input_type=Double(optional=True),
             prefix="--max-nocall-fraction",
             separate_value_from_prefix=True,
             doc="Maximum fraction of samples with no-call genotypes Default value: 1.0.",
         ),
         ToolInput(
             tag="maxNocallNumber",
             input_type=Int(optional=True),
             prefix="--max-nocall-number",
             separate_value_from_prefix=True,
             doc="Maximum number of samples with no-call genotypes Default value: 2147483647.",
         ),
         ToolInput(
             tag="mendelianViolation",
             input_type=Boolean(optional=True),
             prefix="--mendelian-violation",
             separate_value_from_prefix=True,
             doc="Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="mendelianViolationQualThreshold",
             input_type=Double(optional=True),
             prefix="--mendelian-violation-qual-threshold",
             separate_value_from_prefix=True,
             doc=" Minimum GQ score for each trio member to accept a site as a violation  Default value: 0.0.",
         ),
         ToolInput(
             tag="minFilteredGenotypes",
             input_type=Int(optional=True),
             prefix="--min-filtered-genotypes",
             separate_value_from_prefix=True,
             doc=" Minimum number of samples filtered at the genotype level  Default value: 0. ",
         ),
         ToolInput(
             tag="minFractionFilteredGenotypes",
             input_type=Double(optional=True),
             prefix="--min-fraction-filtered-genotypes",
             separate_value_from_prefix=True,
             doc=" Maximum fraction of samples filtered at the genotype level  Default value: 0.0. ",
         ),
         ToolInput(
             tag="minIndelSize",
             input_type=Int(optional=True),
             prefix="--min-indel-size",
             separate_value_from_prefix=True,
             doc="Minimum size of indels to include Default value: 0.",
         ),
         ToolInput(
             tag="pedigree",
             input_type=File(optional=True),
             prefix="--pedigree",
             separate_value_from_prefix=True,
             doc="(-ped:File) Pedigree file Default value: null.",
         ),
         ToolInput(
             tag="preserveAlleles",
             input_type=Boolean(optional=True),
             prefix="--preserve-alleles",
             separate_value_from_prefix=True,
             doc="Preserve original alleles, do not trim Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="quiet",
             input_type=Boolean(optional=True),
             prefix="--QUIET",
             separate_value_from_prefix=True,
             doc="Whether to suppress job-summary info on System.err. Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="readFilter",
             input_type=String(optional=True),
             prefix="--read-filter",
             separate_value_from_prefix=True,
             doc="(-RF:String) Read filters to be applied before analysis This argument may be specified 0 or more times. Default value: null. Possible Values: {AlignmentAgreesWithHeaderReadFilter, AllowAllReadsReadFilter, AmbiguousBaseReadFilter, CigarContainsNoNOperator, FirstOfPairReadFilter, FragmentLengthReadFilter, GoodCigarReadFilter, HasReadGroupReadFilter, IntervalOverlapReadFilter, LibraryReadFilter, MappedReadFilter, MappingQualityAvailableReadFilter, MappingQualityNotZeroReadFilter, MappingQualityReadFilter, MatchingBasesAndQualsReadFilter, MateDifferentStrandReadFilter, MateOnSameContigOrNoMappedMateReadFilter, MateUnmappedAndUnmappedReadFilter, MetricsReadFilter, NonChimericOriginalAlignmentReadFilter, NonZeroFragmentLengthReadFilter, NonZeroReferenceLengthAlignmentReadFilter, NotDuplicateReadFilter, NotOpticalDuplicateReadFilter, NotSecondaryAlignmentReadFilter, NotSupplementaryAlignmentReadFilter, OverclippedReadFilter, PairedReadFilter, PassesVendorQualityCheckReadFilter, PlatformReadFilter, PlatformUnitReadFilter, PrimaryLineReadFilter, ProperlyPairedReadFilter, ReadGroupBlackListReadFilter, ReadGroupReadFilter, ReadLengthEqualsCigarLengthReadFilter, ReadLengthReadFilter, ReadNameReadFilter, ReadStrandFilter, SampleReadFilter, SecondOfPairReadFilter, SeqIsStoredReadFilter, SoftClippedReadFilter, ValidAlignmentEndReadFilter, ValidAlignmentStartReadFilter, WellformedReadFilter}",
         ),
         ToolInput(
             tag="readIndex",
             input_type=File(optional=True),
             prefix="-read-index",
             separate_value_from_prefix=True,
             doc="(--read-index)  Indices to use for the read inputs. If specified, an index must be provided for every read input and in the same order as the read inputs. If this argument is not specified, the path to the index for each input will be inferred automatically.  This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="readValidationStringency",
             input_type=String(optional=True),
             prefix="--read-validation-stringency",
             separate_value_from_prefix=True,
             doc="(-VS:ValidationStringency)  Validation stringency for all SAM/BAM/CRAM/SRA files read by this program.  The default stringency value SILENT can improve performance when processing a BAM file in which variable-length data (read, qualities, tags) do not otherwise need to be decoded.  Default value: SILENT. Possible values: {STRICT, LENIENT, SILENT} ",
         ),
         ToolInput(
             tag="reference",
             input_type=FastaWithDict(optional=True),
             prefix="--reference",
             separate_value_from_prefix=True,
             doc="(-R:String) Reference sequence Default value: null.",
         ),
         ToolInput(
             tag="removeFractionGenotypes",
             input_type=Double(optional=True),
             prefix="--remove-fraction-genotypes",
             separate_value_from_prefix=True,
             doc=" Select a fraction of genotypes at random from the input and sets them to no-call  Default value: 0.0. ",
         ),
         ToolInput(
             tag="removeUnusedAlternates",
             input_type=Boolean(optional=True),
             prefix="--remove-unused-alternates",
             separate_value_from_prefix=True,
             doc=" Remove alternate alleles not present in any genotypes  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="restrictAllelesTo",
             input_type=String(optional=True),
             prefix="--restrict-alleles-to",
             separate_value_from_prefix=True,
             doc=" Select only variants of a particular allelicity  Default value: ALL. Possible values: {ALL, BIALLELIC, MULTIALLELIC} ",
         ),
         ToolInput(
             tag="sampleExpressions",
             input_type=String(optional=True),
             prefix="--sample-expressions",
             separate_value_from_prefix=True,
             doc="(-se:String)  Regular expression to select multiple samples  This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="sampleName",
             input_type=String(optional=True),
             prefix="--sample-name",
             separate_value_from_prefix=True,
             doc="(-sn:String) Include genotypes from this sample This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="secondsBetweenProgressUpdates",
             input_type=Double(optional=True),
             prefix="-seconds-between-progress-updates",
             separate_value_from_prefix=True,
             doc="(--seconds-between-progress-updates)  Output traversal statistics every time this many seconds elapse  Default value: 10.0. ",
         ),
         ToolInput(
             tag="selectRandomFraction",
             input_type=String(optional=True),
             prefix="--select-random-fraction",
             separate_value_from_prefix=True,
             doc="(-fraction:Double)  Select a fraction of variants at random from the input  Default value: 0.0. ",
         ),
         ToolInput(
             tag="selectTypeToExclude",
             input_type=String(optional=True),
             prefix="--select-type-to-exclude",
             separate_value_from_prefix=True,
             doc="(-xl-select-type:Type)  Do not select certain type of variants from the input file  This argument may be specified 0 or more times. Default value: null. Possible values: {NO_VARIATION, SNP, MNP, INDEL, SYMBOLIC, MIXED} ",
         ),
         ToolInput(
             tag="selectTypeToInclude",
             input_type=String(optional=True),
             prefix="--select-type-to-include",
             separate_value_from_prefix=True,
             doc="(-select-type:Type)  Select only a certain type of variants from the input file  This argument may be specified 0 or more times. Default value: null. Possible values: {NO_VARIATION, SNP, MNP, INDEL, SYMBOLIC, MIXED} ",
         ),
         ToolInput(
             tag="selectexpressions",
             input_type=String(optional=True),
             prefix="--selectExpressions",
             separate_value_from_prefix=True,
             doc="(-select:String)  One or more criteria to use when selecting the data  This argument may be specified 0 or more times. Default value: null. ",
         ),
         ToolInput(
             tag="sequenceDictionary",
             input_type=File(optional=True),
             prefix="-sequence-dictionary",
             separate_value_from_prefix=True,
             doc="(--sequence-dictionary)  Use the given sequence dictionary as the master/canonical sequence dictionary.  Must be a .dict file.  Default value: null. ",
         ),
         ToolInput(
             tag="setFilteredGtToNocall",
             input_type=Boolean(optional=True),
             prefix="--set-filtered-gt-to-nocall",
             separate_value_from_prefix=True,
             doc=" Set filtered genotypes to no-call  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="sitesOnlyVcfOutput",
             input_type=Boolean(optional=True),
             prefix="--sites-only-vcf-output",
             separate_value_from_prefix=True,
             doc=" If true, don't emit genotype fields when writing vcf file output.  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="tmpDir",
             input_type=Filename(optional=True),
             prefix="--tmp-dir",
             separate_value_from_prefix=True,
             doc="Temp directory to use. Default value: null.",
         ),
         ToolInput(
             tag="jdkDeflater",
             input_type=Boolean(optional=True),
             prefix="-jdk-deflater",
             separate_value_from_prefix=True,
             doc="(--use-jdk-deflater)  Whether to use the JdkDeflater (as opposed to IntelDeflater)  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="jdkInflater",
             input_type=Boolean(optional=True),
             prefix="-jdk-inflater",
             separate_value_from_prefix=True,
             doc="(--use-jdk-inflater)  Whether to use the JdkInflater (as opposed to IntelInflater)  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="verbosity",
             input_type=String(optional=True),
             prefix="-verbosity",
             separate_value_from_prefix=True,
             doc="(--verbosity)  Control verbosity of logging.  Default value: INFO. Possible values: {ERROR, WARNING, INFO, DEBUG} ",
         ),
         ToolInput(
             tag="version",
             input_type=Boolean(optional=True),
             prefix="--version",
             separate_value_from_prefix=True,
             doc="display the version number for this tool Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="disableToolDefaultReadFilters",
             input_type=Boolean(optional=True),
             prefix="-disable-tool-default-read-filters",
             separate_value_from_prefix=True,
             doc="(--disable-tool-default-read-filters)  Disable all tool default read filters (WARNING: many tools will not function correctly without their default read filters on)  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="showhidden",
             input_type=Boolean(optional=True),
             prefix="-showHidden",
             separate_value_from_prefix=True,
             doc="(--showHidden)  display hidden arguments  Default value: false. Possible values: {true, false} ",
         ),
         # Conditional Arguments for readFilter:
         ToolInput(
             tag="ambigFilterBases",
             input_type=Int(optional=True),
             prefix="--ambig-filter-bases",
             separate_value_from_prefix=True,
             doc="Valid only if 'AmbiguousBaseReadFilter' is specified: Threshold number of ambiguous bases. If null, uses threshold fraction; otherwise, overrides threshold fraction.  Default value: null.  Cannot be used in conjuction with argument(s) maxAmbiguousBaseFraction",
         ),
         ToolInput(
             tag="ambigFilterFrac",
             input_type=Double(optional=True),
             prefix="--ambig-filter-frac",
             separate_value_from_prefix=True,
             doc="Valid only if 'AmbiguousBaseReadFilter' is specified: Threshold fraction of ambiguous bases Default value: 0.05. Cannot be used in conjuction with argument(s) maxAmbiguousBases",
         ),
         ToolInput(
             tag="maxFragmentLength",
             input_type=Int(optional=True),
             prefix="--max-fragment-length",
             separate_value_from_prefix=True,
             doc="Valid only if 'FragmentLengthReadFilter' is specified: Maximum length of fragment (insert size) Default value: 1000000.",
         ),
         ToolInput(
             tag="minFragmentLength",
             input_type=Int(optional=True),
             prefix="--min-fragment-length",
             separate_value_from_prefix=True,
             doc="Valid only if 'FragmentLengthReadFilter' is specified: Minimum length of fragment (insert size) Default value: 0.",
         ),
         ToolInput(
             tag="keepIntervals",
             input_type=String(optional=True),
             prefix="--keep-intervals",
             separate_value_from_prefix=True,
             doc="Valid only if 'IntervalOverlapReadFilter' is specified: One or more genomic intervals to keep This argument must be specified at least once. Required. ",
         ),
         ToolInput(
             tag="library",
             input_type=String(optional=True),
             prefix="-library",
             separate_value_from_prefix=True,
             doc="Valid only if 'LibraryReadFilter' is specified: (--library) Name of the library to keep This argument must be specified at least once. Required.",
         ),
         ToolInput(
             tag="maximumMappingQuality",
             input_type=Int(optional=True),
             prefix="--maximum-mapping-quality",
             separate_value_from_prefix=True,
             doc="Valid only if 'MappingQualityReadFilter' is specified: Maximum mapping quality to keep (inclusive)  Default value: null. ",
         ),
         ToolInput(
             tag="minimumMappingQuality",
             input_type=Int(optional=True),
             prefix="--minimum-mapping-quality",
             separate_value_from_prefix=True,
             doc="Valid only if 'MappingQualityReadFilter' is specified: Minimum mapping quality to keep (inclusive)  Default value: 10. ",
         ),
         ToolInput(
             tag="dontRequireSoftClipsBothEnds",
             input_type=Boolean(optional=True),
             prefix="--dont-require-soft-clips-both-ends",
             separate_value_from_prefix=True,
             doc="Valid only if 'OverclippedReadFilter' is specified: Allow a read to be filtered out based on having only 1 soft-clipped block. By default, both ends must have a soft-clipped block, setting this flag requires only 1 soft-clipped block  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="filterTooShort",
             input_type=Int(optional=True),
             prefix="--filter-too-short",
             separate_value_from_prefix=True,
             doc="Valid only if 'OverclippedReadFilter' is specified: Minimum number of aligned bases Default value: 30.",
         ),
         ToolInput(
             tag="platformFilterName",
             input_type=String(optional=True),
             prefix="--platform-filter-name",
             separate_value_from_prefix=True,
             doc="Valid only if 'PlatformReadFilter' is specified: This argument must be specified at least once. Required.",
         ),
         ToolInput(
             tag="blackListedLanes",
             input_type=String(optional=True),
             prefix="--black-listed-lanes",
             separate_value_from_prefix=True,
             doc="Valid only if 'PlatformUnitReadFilter' is specified: Platform unit (PU) to filter out This argument must be specified at least once. Required.",
         ),
         ToolInput(
             tag="readGroupBlackList",
             input_type=String(optional=True),
             prefix="--read-group-black-list",
             separate_value_from_prefix=True,
             doc="Valid only if 'ReadGroupBlackListReadFilter' is specified: The name of the read group to filter out. This argument must be specified at least once. Required. ",
         ),
         ToolInput(
             tag="keepReadGroup",
             input_type=String(optional=True),
             prefix="--keep-read-group",
             separate_value_from_prefix=True,
             doc="Valid only if 'ReadGroupReadFilter' is specified: The name of the read group to keep Required.",
         ),
         ToolInput(
             tag="maxReadLength",
             input_type=Int(optional=True),
             prefix="--max-read-length",
             separate_value_from_prefix=True,
             doc="Valid only if 'ReadLengthReadFilter' is specified: Keep only reads with length at most equal to the specified value Required.",
         ),
         ToolInput(
             tag="minReadLength",
             input_type=Int(optional=True),
             prefix="--min-read-length",
             separate_value_from_prefix=True,
             doc="Valid only if 'ReadLengthReadFilter' is specified: Keep only reads with length at least equal to the specified value Default value: 1.",
         ),
         ToolInput(
             tag="readName",
             input_type=String(optional=True),
             prefix="--read-name",
             separate_value_from_prefix=True,
             doc="Valid only if 'ReadNameReadFilter' is specified: Keep only reads with this read name Required.",
         ),
         ToolInput(
             tag="keepReverseStrandOnly",
             input_type=Boolean(optional=True),
             prefix="--keep-reverse-strand-only",
             separate_value_from_prefix=True,
             doc="Valid only if 'ReadStrandFilter' is specified: Keep only reads on the reverse strand  Required. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="sample",
             input_type=String(optional=True),
             prefix="--sample",
             separate_value_from_prefix=True,
             doc="Valid only if 'SampleReadFilter' is specified: The name of the sample(s) to keep, filtering out all others This argument must be specified at least once. Required. ",
         ),
         ToolInput(
             tag="invertSoftClipRatioFilter",
             input_type=Boolean(optional=True),
             prefix="--invert-soft-clip-ratio-filter",
             separate_value_from_prefix=True,
             doc=" Inverts the results from this filter, causing all variants that would pass to fail and visa-versa.  Default value: false. Possible values: {true, false} ",
         ),
         ToolInput(
             tag="softClippedLeadingTrailingRatio",
             input_type=Double(optional=True),
             prefix="--soft-clipped-leading-trailing-ratio",
             separate_value_from_prefix=True,
             doc=" Threshold ratio of soft clipped bases (leading / trailing the cigar string) to total bases in read for read to be filtered.  Default value: null.  Cannot be used in conjuction with argument(s) minimumSoftClippedRatio",
         ),
         ToolInput(
             tag="softClippedRatioThreshold",
             input_type=Double(optional=True),
             prefix="--soft-clipped-ratio-threshold",
             separate_value_from_prefix=True,
             doc=" Threshold ratio of soft clipped bases (anywhere in the cigar string) to total bases in read for read to be filtered.  Default value: null.  Cannot be used in conjuction with argument(s) minimumLeadingTrailingSoftClippedRatio",
         ),
     ]