如何解决缺少所有规则的输入文件,但应该存在
在运行我的 Snakemake 管道时,我收到以下错误:
MissingInputException in line 19 of Snakefile:
Missing input files for rule all:
results/hisat2/featureCounts/all.fixed.featureCounts
results/star/featureCounts/all.fixed.featureCounts
下面是我的主要 Snakefile。之后,我有与此错误相关的 rules/featurecounts.smk
。
似乎我有一个规则定义可以防止这个错误。
Snakefile:
configfile: "config.yaml"
units = pd.read_table(config["units"],dtype=str).set_index(["sample","unit"],drop=False)
units.index = units.index.set_levels([i.astype(str) for i in units.index.levels]) # enforce str in index
aligners=config["params"]["aligners"].split(",")
print("Aligners:",aligners)
##### target rules #####
rule all:
input:
"qc/multiqc_report_pretrim.html","qc/multiqc_report_posttrim.html",expand("qc/multiqc_report_{aligner}.html",aligner=aligners),expand("results/{aligner}/featureCounts/all.fixed.featureCounts",aligner=aligners)
##### setup report #####
report: "report/workflow.rst"
##### load rules #####
#include: "rules/common.smk"
include: "rules/qc.smk"
include: "rules/trim.smk"
include: "rules/align.smk"
include: "rules/featurecounts.smk"
featurecounts.smk 文件
rule featurecounts_onefile_star:
input:
sam=expand("star/{unit.sample}.{unit.unit}/{unit.sample}.{unit.unit}_Aligned.sortedByCoord.out.bam",unit=units.itertuples()),annotation=config["ref"]["annotation"],fasta=config["ref"]["genomefa"] # implicitly sets the -G flag
output:
multiext("results/star/featureCounts/all",".featureCounts",".featureCounts.summary",".featureCounts.jcounts")
log:
"logs/star/featurecount/all.log"
params:
tmp_dir="",# implicitly sets the --tmpDir flag
r_path="",# implicitly sets the --Rpath flag
#extra="-p -C -t exon -g gene_id --extraAttributes gene_name,transcript_id,transcript_name" #-p to count fragments instead of reads,-C to not count fragments if mapped to different chrs,-t exon (only consider exons,-g look at the gene_id field to get the feature name
extra="{}".format(config["params"]["featurecounts"])
threads: 8
resources: time_min=220,mem_mb=20000,cpus=8
wrapper:
"0.69.0/bio/subread/featurecounts"
rule featurecounts_onefile_hisat2:
input:
sam=expand("hisat2/{unit.sample}.{unit.unit}.sorted.bam",fasta=config["ref"]["genomefa"] # implicitly sets the -G flag
output:
multiext("results/hisat2/featureCounts/all",".featureCounts.jcounts")
log:
"logs/hisat2/featurecount/all.log"
params:
tmp_dir="",cpus=8
wrapper:
"0.69.0/bio/subread/featurecounts"
rule fix_featurecounts:
input:
"results/{aligner}/featureCounts/all.featureCounts"
output:
"results/{aligner}/featureCounts/all.fixed.featureCounts"
log:
"logs/{aligner}/featurecount/fix.log"
threads: 1
resources: time_min=220,mem_mb=2000,cpus=1
shell:
"python3 ../scripts/fix_featurecounts_output.py -f {input} -c 2 > {output} 2> {log}"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。