我希望使用以下命令行在文件夹中创建一个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发布于 2020-10-20 08:30:46
您可以完全跳过输入:
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}
"""对于更复杂的逻辑,您可能需要使用输入函数。
https://stackoverflow.com/questions/64441294
复制相似问题