Snakemake:在规则运行中使用regex

2024-09-27 21:22:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来的,我试图运行这个代码,但我有一个错误。 我的输入目录结构如下:

Library:
    -MMETSP1:
        SRR1_1.fastq.gz
        SRR1_2.fastq.gz
    -MMETSP2:
        SRR2_1.fastq.gz
        SRR2_2.fastq.gz

所以我要做的是对每个目录运行两次规则。为此,我在rule all中使用了expand函数,我有两个按snakemake计数的作业。那对我来说很好。但我的问题不是在我的目录中检索fasta文件。为此,我在执行命令时使用了regex,但它不起作用。 有人能帮帮我吗。 提前谢谢!你知道吗

#!/usr/bin/python
import os
import glob
import sys

SALMON_BY_LIBRARY_DIR = OUT_DIR + "salmon_by_library_out"
salmon = config["software"]["salmon"]


(LIBRARY, FASTQ, SENS) = glob_wildcards(LIBRARY_DIR + "{mmetsp}/{reads}_{type}.fastq.gz")

rule all:
    input:
        salmon_by_library_out = expand(SALMON_BY_LIBRARY_DIR + "/" + "{mmetsp}", zip, mmetsp=LIBRARY),

rule salmon_by_library:
   input:
        transcript = TRINITY_DIR + "/Trinity.fasta",
        fastq = LIBRARY_DIR + "{mmetsp}",
   output:
        salmon_out = directory(SALMON_BY_LIBRARY_DIR + "/" + "{mmetsp}"),
   log:
       OUT_DIR + "{mmetsp}/salmon.log"
   threads:
       config["threads"]["salmon"]
   params:
       trimmomatic_dir = directory(TRIMMOMATIC_DIR)
   run:
      shell(""" mkdir -p {output.salmon_out}/index """)

      shell("""
      {salmon}
      index \
      -t {input.transcript} \
      -i {output.salmon_out}/index \
      --type quasi \
      -k 31 \
      -p {threads} > {log} &&

       {salmon}
       quant \
       -i {output.salmon_out}/index \
       -l A \
       -1 {input.fastq}/*_1.fastq.gz \
       -2 {input.fastq}/*_2.fastq.gz \
       -o {output.salmon_out} \
       -p {threads} > {log}
        """)

Tags: import目录loginputoutputindexdirlibrary
1条回答
网友
1楼 · 发布于 2024-09-27 21:22:53

您需要使用一个输入函数从配置中检索到fastq的路径。你做过正式的教程(http://snakemake.readthedocs.io/en/stable/tutorial/tutorial.html)吗?它正好涵盖了这个用例。对于现实世界的最佳实践,我建议进一步了解https://github.com/snakemake-workflows/docs。你知道吗

相关问题 更多 >

    热门问题