def recursively_build_workflow_with_layers(layers): w = WorkflowBuilder(f"scattered_with_{layers}") w.input("scatters", int, default=3) w.input("seed_hash", Optional[str]) w.input("bias", Optional[int]) w.step("generate_random_ints", GenerateIntegers(numbers_to_generate=w.scatters)) w.step( "generate_hashes", CalculateMd5HashOfInt(value=w.generate_random_ints.out), scatter="value", ) joined_generate_hashes = JoinOperator(w.generate_hashes.out, ",") if layers > 0: innerworkflow = recursively_build_workflow_with_layers(layers - 1) w.step( "inner", innerworkflow(scatters=w.generate_random_ints), scatter="scatters", ) joined_inner = JoinOperator(w.inner.out_hash, ",") post_hash_inp = (j.logical.If( j.logical.IsDefined(w.seed_hash), w.seed_hash + joined_inner, joined_inner, ) + joined_generate_hashes) else: post_hash_inp = j.logical.If( j.logical.IsDefined(w.seed_hash), w.seed_hash + joined_generate_hashes, joined_generate_hashes, ) w.step( "post_hash", CalculateMd5Hash(value=post_hash_inp), ) w.output("out_hash", source=w.post_hash.out) return w
def inputs(self): return [ *super().inputs(), *Gatk4GetPileUpSummariesBase.additional_args, ToolInput( "bam", Array(BamBai()), prefix="-I", prefix_applies_to_all_elements=True, doc="The SAM/BAM/CRAM file containing reads.", position=0, ), ToolInput( "sampleName", String(optional=True), doc="Used for naming purposes" ), ToolInput( "sites", VcfTabix(), prefix="-V", doc="sites of common biallelic variants", ), ToolInput( "intervals", Bed(optional=True), prefix="--intervals", doc="-L (BASE) One or more genomic intervals over which to operate", ), ToolInput( "pileupTableOut", Filename( prefix=JoinOperator( FilterNullOperator( [ FirstOperator( [InputSelector("sampleName"), "generated"] ), # If( # IsDefined(InputSelector("intervals")), # InputSelector( # "intervals", remove_file_extension=True # ), # "", # ), ] ), ".", ), extension=".txt", ), position=1, prefix="-O", ), ToolInput( "reference", FastaWithDict(optional=True), prefix="-R", doc="reference to use when decoding CRAMS", ), ]
def arguments(self): return [ ToolArgument("| testsomatic.R |", position=3, shell_quote=False), ToolArgument("var2vcf_paired.pl", position=4, shell_quote=False), ToolArgument( JoinOperator( [InputSelector("tumorBam"), InputSelector("normalBam")], "|"), prefix="-b", position=1, shell_quote=True, ), ToolArgument(InputSelector("tumorName"), prefix="-N", position=1, shell_quote=True), ToolArgument( JoinOperator( [InputSelector("tumorName"), InputSelector("normalName")], "|"), prefix="-N", position=5, shell_quote=True, ), ToolArgument( InputSelector("alleleFreqThreshold"), prefix="-f", position=5, shell_quote=False, ), ToolArgument( InputSelector("alleleFreqThreshold"), prefix="-f", position=1, shell_quote=False, ), ToolArgument(" | bcftools view -O z", position=6, shell_quote=False), ]
def arguments(self): return [ ToolArgument( StringFormatter( "-Xmx{memory}G {compression} {otherargs}", memory=MemorySelector() * 3 / 4, compression=If( IsDefined(InputSelector("compression_level")), "-Dsamjdk.compress_level=" + InputSelector("compression_level"), "", ), otherargs=JoinOperator( FirstOperator([InputSelector("javaOptions"), []]), " "), ), prefix="--java-options", position=-1, ) ]
def arguments(self): return [ # CADD ToolArgument( If( IsDefined(InputSelector("caddReference")), "--plugin CADD," + JoinOperator( InputSelector("caddReference").assert_not_null(), "," ), "", ), shell_quote=False, ), # Condel ToolArgument( If( IsDefined(InputSelector("condelConfig")), "--plugin " + StringFormatter( "Condel,{condelconfig},b", condelconfig=InputSelector("condelConfig").assert_not_null(), ), "", ), shell_quote=False, ), # dbNSFP ToolArgument( If( AndOperator( IsDefined(InputSelector("dbnspReference")), IsDefined(InputSelector("dbsnpColumns")), ), "--plugin " + StringFormatter( "dbNSFP,{ref},{cols}", ref=InputSelector("dbnspReference").assert_not_null(), cols=JoinOperator( InputSelector("dbsnpColumns").assert_not_null(), "," ), ), "", ), shell_quote=False, ), # REVEL ToolArgument( If( IsDefined(InputSelector("revelReference")), "--plugin " + StringFormatter( "REVEL,{ref}", ref=InputSelector("revelReference").assert_not_null(), ), "", ), shell_quote=False, ), # CUSTOM 1 ToolArgument( If( AndOperator( IsDefined(InputSelector("custom1Reference")), IsDefined(InputSelector("custom1Columns")), ), "--custom " + StringFormatter( "{ref},{cols}", ref=InputSelector("custom1Reference").assert_not_null(), cols=JoinOperator( InputSelector("custom1Columns").assert_not_null(), "," ), ), "", ), shell_quote=False, ), # CUSTOM 2 ToolArgument( If( AndOperator( IsDefined(InputSelector("custom2Reference")), IsDefined(InputSelector("custom2Columns")), ), "--custom " + StringFormatter( "{ref},{cols}", ref=InputSelector("custom2Reference").assert_not_null(), cols=JoinOperator( InputSelector("custom2Columns").assert_not_null(), "," ), ), "", ), shell_quote=False, ), ]