微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将配对的末端读取与以fastq为输入的bwa mem snakemake对齐

如何解决将配对的末端读取与以fastq为输入的bwa mem snakemake对齐

我有两个带有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_list1fastq_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 举报,一经查实,本站将立刻删除。