我想使用以下命令行在文件夹中创建 BAM 文件列表:
ls *.bam > bam_list
但是,我想将它集成到snakemake中。这个怎么做?这是我尝试过的,但不起作用:
rule bam_list:
input:
inlist ="dup/{sample}.bam"
output:
outlist = "dup/bam_list"
shell:
"""
ls {input.inlist} > {output.outlist}
"""
输出 bam_list 如下所示:
bob.bam
anne.bam
john.bam
您可以完全跳过输入:
rule bam_list:
output:
outlist = "dup/bam_list"
shell:
"""
ls *.bam > {output.outlist}
"""
编辑
rule bam_list:
input:
rules.previous.output
output:
outlist = "dup/bam_list"
params:
indir = lambda wildcards, input: os.path.dirname(input[0])
shell:
"""
ls {params.indir}*.bam > {output.outlist}
"""
对于更复杂的逻辑,您可能必须使用输入函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句