问题描述
我有两个带有fastq文件的列表,列表中的每个元素都彼此对应(列表1中的第一个fastq对应于列表2中的第一个fastq,依此类推)。
到目前为止,我的Snakefile看起来像这样:
fastq1_list = [
"/user/cfDNA_test_pipeline/patients/snakemake_test/test_fastq/test_004_T1T2_1.fastq.gz","/user/cfDNA_test_pipeline/patients/snakemake_test/test_fastq/test2_005T1T2_2_1.fastq.gz"
]
fastq2_list = [
"/user/cfDNA_test_pipeline/patients/snakemake_test/test_fastq/test_004_T1T2_2.fastq.gz","/user/cfDNA_test_pipeline/patients/snakemake_test/test_fastq/test2_005T1T2_2_2.fastq.gz"
]
patient_list = [
"patient004","patient005"
]
timepoint_list = [
"T1T2","T1T2"
]
rule all:
input:
sorted_bam = expand(path+"/{patient}/{time}/plasma.sorted.bam",zip,patient=patient_list,time=timepoint_list),rule align_plasma:
input:
fastq1 =fastq1_list,fastq2 = fastq2_list,reference = reference
output:
sorted_bam = path+"/{patient}/{time}/plasma.sorted.bam"
threads: 8
shell:
'''
bwa mem -t {threads} -T 0 {input.reference} {input.fastq1} {input.fastq2} | samtools sort -@ {threads} -O BAM {output.sorted_bam}
'''
我希望执行该文件时,snakemake会迭代fastq_list1
和fastq_list2
并将相应的fastq文件对齐。这意味着执行与此命令相似的命令。
bwa mem -t 8 -T 0 ref-genome.fa user/cfDNA_test_pipeline/patients/snakemake_test/test_fastq/test_004_T1T2_1.fastq.gz /user/cfDNA_test_pipeline/patients/snakemake_test/test_fastq/test2_004T1T2_2_1.fastq.gz | samtools sort -@ 8 -O BAM user/cfDNA_test_pipeline/patients/snakemake_test/patient004/T1T2/plasma.sorted.bam
然后转到列表中的下一个元素,并为Patient005生成bam文件。
Snakemake分别用列表中的所有元素替换{input.fastq1}
和{input.fastq2}
。
如果任何人都可以指出我如何实现我真正想要的(逐个遍历fastq1_list和fastq2_list并对齐每个文件),我将非常感激!
干杯!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)