【发布时间】:2020-03-18 23:11:24
【问题描述】:
我想我有一个简单的问题,但我不知道如何解决它。
我的输入文件夹包含如下文件:
AAAAA_S1_R1_001.fastq
AAAAA_S1_R2_001.fastq
BBBBB_S2_R1_001.fastq
BBBBB_S2_R2_001.fastq
我的蛇形代码:
import glob
samples = [os.path.basename(x) for x in sorted(glob.glob("input/*.fastq"))]
name = []
for x in samples:
if "_R1_" in x:
name.append(x.split("_R1_")[0])
NAME = name
rule all:
input:
expand("output/{sp}_mapped.bam", sp=NAME),
rule bwa:
input:
R1 = "input/{sample}_R1_001.fastq",
R2 = "input/{sample}_R2_001.fastq"
output:
mapped = "output/{sample}_mapped.bam"
params:
ref = "refs/AF086833.fa"
run:
shell("bwa mem {params.ref} {input.R1} {input.R2} | samtools sort > {output.mapped}")
输出文件名是:
AAAAA_S1_mapped.bam
BBBBB_S2_mapped.bam
我希望输出文件是:
AAAAA_mapped.bam
BBBBB_mapped.bam
如何在 bwa 规则之前或之后更改输出名称或重命名文件。
【问题讨论】:
-
在 python 交互式解释器中尝试以下操作:
"AAAAA_S1_R1_001.fastq".split("_R1_")。您会看到“_S1”包含在结果列表的第一个单词中。由于这是您构建NAME示例名称列表的方式,因此那些“_S1”部分将保留在您的sample通配符中。