Я начинаю писать конвейер для моего проекта по биоинформатике и использую Snakemake в качестве рабочего процесса.
Я сделал все учебные пособия на официальном сайте, а я некоторые из документации.
Я хочу запустить одну команду оболочки, например:
<b>fastp -i</b> input-1 <b>-I</b> input-2 <b>-o</b> output-1 <b>-O</b> output-2
Мой код в Snakefile:
SAMPLES = ['1', '2', '3', '4']
rule fastp:
input:
reads1=expand("sample{sample}.R1.fq.gz", sample=SAMPLES),
reads2=expand("sample{sample}.R2.fq.gz", sample=SAMPLES)
output:
reads1out=expand("sample{sample}.R1.fq.gz.out", sample=SAMPLES),
reads2out=expand("sample{sample}.R2.fq.gz.out", sample=SAMPLES)
shell:
"fastp -i {input.reads1} -I {input.reads2} -o {output.reads1out} -O {output.reads2out}"
Но программа запускает одну строчку кода:
<b>fastp -i</b> sample1.R1.fq.gz sample2.R1.fq.gz sample3.R1.fq.gz sample4.R1.fq.gz <b>-I</b> sample1.R2.fq.gz sample2.R2.fq.gz sample3.R2.fq.gz sample4.R2.fq.gz <b>-o</b> sample1.R1.fq.gz.out sample2.R1.fq.gz.out sample3.R1.fq.gz.out sample4.R1.fq.gz.out <b>-O</b> sample1.R2.fq.gz.out sample2.R2.fq.gz.out sample3.R2.fq.gz.out sample4.R2.fq.gz.out
Как я могу написать программу для выполнения различных команд оболочки для каждого образца? Я попробовал for i in SAMPLES:
после rule fastp:
, но не сработало, и я не знаю, что я могу попробовать сейчас. Извините, если эта тема в некотором роде слишком проста, но я новичок в Python.
Спасибо.