snakemake 代码上的代理文件
Proxy file on snakemake code
我想使用星号进行对齐,我使用代理文件进行星号对齐。
没有代理文件 star-align 运行 也没有引用。因此,如果我将 database.done 的存在作为对齐过程的输入约束,则对齐过程可以开始。
如何处理这种情况?
rule star_index:
input:
config['references']['transcriptome_fasta']
output:
genome=config['references']['starindex_dir'],
tp=touch("database.done")
shell:
'STAR --limitGenomeGenerateRAM 54760833024 --runMode genomeGenerate --genomeDir {output.genome} --genomeFastaFiles {input}'
rule star_map:
input:
dt="trim/{sample}/",
forward_paired="trim/{sample}/{sample}_forward_paired.fq.gz",
reverse_paired="trim/{sample}/{sample}_reverse_paired.fq.gz",
forward_unpaired="trim/{sample}/{sample}_forward_unpaired.fq.gz",
reverse_unpaired="trim/{sample}/{sample}_reverse_unpaired.fq.gz",
t1p="database.done",
output:
out1="ALIGN/{sample}/Aligned.sortedByCoord.out.bam",
out2="ALIGN/{sample}/",
# out2=touch("Star.align.done")
params:
genomedir = config['references']['basepath'],
sample="mitico",
platform_unit=config['platform'],
cente=config['center']
threads: 12
log: "ALIGN/log/{params.sample}_star.log"
shell:
'mkdir -p ALIGN/;STAR --runMode alignReads --genomeDir {params.genomedir} '
r' --outSAMattrRGline ID:{params.sample} SM:{params.sample} PL:{config[platform]} PU:{params.platform_unit} CN:{params.cente} '
'--readFilesIn {input.forward_paired} {input.reverse_paired} \
--readFilesCommand zcat
--outWigType wiggle \
--outWigStrand Stranded --runThreadN {threads} --outFileNamePrefix {output.out2} 2> {log} '
如何才能在前面的所有功能完成后才启动模块。
我 mean.Here 创建索引,然后 trim 填充数据,然后开始对齐。我想在完成所有示例的所有步骤后启动一个新函数,如 运行 fastqc。如何在 snakemake 中解码这个?
非常感谢您的耐心帮助
没有提及基因组作为 "star_map" 的必需输入,我认为该规则开始得太早了。
尝试将基因组参考从 "Parameter" 变为 star_map 的 "Input" 要求。 Snakemake 不等待参数,只等待输入。所有参考基因组都应列为输入。事实上,所有需要的文件都应列为输入要求。参数只是为了方便;临时字符串和动态内容。
我不完全确定您的文件之间的连接性,其中一些引用是针对您未提供的 YAML 文件的,因此我不能保证代码能够正常工作。
rule star_map:
input:
dt="trim/{sample}/",
forward_paired="trim/{sample}/{sample}_forward_paired.fq.gz",
reverse_paired="trim/{sample}/{sample}_reverse_paired.fq.gz",
forward_unpaired="trim/{sample}/{sample}_forward_unpaired.fq.gz",
reverse_unpaired="trim/{sample}/{sample}_reverse_unpaired.fq.gz",
# Including the gnome as a required input, so Snakemake knows to wait for it too.
genomedir = config['references']['basepath'],
output:
out1="ALIGN/{sample}/Aligned.sortedByCoord.out.bam",
out2="ALIGN/{sample}/",
Snakemake 不会检查您的 shell 命令正在接触和修改的文件。 Snakemake 只知道协调 "input" 和 "output" 指令中描述的文件。
我想使用星号进行对齐,我使用代理文件进行星号对齐。 没有代理文件 star-align 运行 也没有引用。因此,如果我将 database.done 的存在作为对齐过程的输入约束,则对齐过程可以开始。 如何处理这种情况?
rule star_index:
input:
config['references']['transcriptome_fasta']
output:
genome=config['references']['starindex_dir'],
tp=touch("database.done")
shell:
'STAR --limitGenomeGenerateRAM 54760833024 --runMode genomeGenerate --genomeDir {output.genome} --genomeFastaFiles {input}'
rule star_map:
input:
dt="trim/{sample}/",
forward_paired="trim/{sample}/{sample}_forward_paired.fq.gz",
reverse_paired="trim/{sample}/{sample}_reverse_paired.fq.gz",
forward_unpaired="trim/{sample}/{sample}_forward_unpaired.fq.gz",
reverse_unpaired="trim/{sample}/{sample}_reverse_unpaired.fq.gz",
t1p="database.done",
output:
out1="ALIGN/{sample}/Aligned.sortedByCoord.out.bam",
out2="ALIGN/{sample}/",
# out2=touch("Star.align.done")
params:
genomedir = config['references']['basepath'],
sample="mitico",
platform_unit=config['platform'],
cente=config['center']
threads: 12
log: "ALIGN/log/{params.sample}_star.log"
shell:
'mkdir -p ALIGN/;STAR --runMode alignReads --genomeDir {params.genomedir} '
r' --outSAMattrRGline ID:{params.sample} SM:{params.sample} PL:{config[platform]} PU:{params.platform_unit} CN:{params.cente} '
'--readFilesIn {input.forward_paired} {input.reverse_paired} \
--readFilesCommand zcat
--outWigType wiggle \
--outWigStrand Stranded --runThreadN {threads} --outFileNamePrefix {output.out2} 2> {log} '
如何才能在前面的所有功能完成后才启动模块。 我 mean.Here 创建索引,然后 trim 填充数据,然后开始对齐。我想在完成所有示例的所有步骤后启动一个新函数,如 运行 fastqc。如何在 snakemake 中解码这个? 非常感谢您的耐心帮助
没有提及基因组作为 "star_map" 的必需输入,我认为该规则开始得太早了。
尝试将基因组参考从 "Parameter" 变为 star_map 的 "Input" 要求。 Snakemake 不等待参数,只等待输入。所有参考基因组都应列为输入。事实上,所有需要的文件都应列为输入要求。参数只是为了方便;临时字符串和动态内容。
我不完全确定您的文件之间的连接性,其中一些引用是针对您未提供的 YAML 文件的,因此我不能保证代码能够正常工作。
rule star_map:
input:
dt="trim/{sample}/",
forward_paired="trim/{sample}/{sample}_forward_paired.fq.gz",
reverse_paired="trim/{sample}/{sample}_reverse_paired.fq.gz",
forward_unpaired="trim/{sample}/{sample}_forward_unpaired.fq.gz",
reverse_unpaired="trim/{sample}/{sample}_reverse_unpaired.fq.gz",
# Including the gnome as a required input, so Snakemake knows to wait for it too.
genomedir = config['references']['basepath'],
output:
out1="ALIGN/{sample}/Aligned.sortedByCoord.out.bam",
out2="ALIGN/{sample}/",
Snakemake 不会检查您的 shell 命令正在接触和修改的文件。 Snakemake 只知道协调 "input" 和 "output" 指令中描述的文件。