snakemakeが新しく、2つのパイプラインのステップを1つの大きなパイプラインにマージするために使用しています。いくつかの手順で同様の名前のファイルが作成され、ワイルドカードを制限する方法が見つからないという問題があるため、解決できない1ステップでエラーMissing input files for rule
が発生しています。ワイルドカード制約を入力するSnakemake
フルsnakefileが長く、ここに提供されています:https://mdd.li/snakefile
関連セクションは、(ファイルのセクションは以下欠けている)、次のとおりです。
wildcard_constraints:
sdir="[^/]+",
name="[^/]+",
prefix="[^/]+"
# Several mapping rules here
rule find_intersecting_snps:
input:
bam="hic_mapping/bowtie_results/bwt2/{sdir}/{prefix}_hg19.bwt2pairs.bam"
params:
hornet=os.path.expanduser(config['hornet']),
snps=config['snps']
output:
"hic_mapping/bowtie_results/bwt2/{sdir}/{prefix}_hg19.bwt2pairs.remap.fq1.gz",
"hic_mapping/bowtie_results/bwt2/{sdir}/{prefix}_hg19.bwt2pairs.remap.fq2.gz",
"hic_mapping/bowtie_results/bwt2/{sdir}/{prefix}_hg19.bwt2pairs.keep.bam",
"hic_mapping/bowtie_results/bwt2/{sdir}/{prefix}_hg19.bwt2pairs.to.remap.bam",
"hic_mapping/bowtie_results/bwt2/{sdir}/{prefix}_hg19.bwt2pairs.to.remap.num.gz"
shell:
dedent(
"""\
python2 {params.hornet}/find_intersecting_snps.py \
-p {input.bam} {params.snps}
"""
)
# Several remapping steps, similar to the first mapping steps, but in a different directory
rule wasp_merge:
input:
"hic_mapping/bowtie_results/bwt2/{sdir}/{prefix}_hg19.bwt2pairs.keep.bam",
"hic_mapping/wasp_results/{sdir}_{prefix}_filt_hg19.remap.kept.bam"
output:
"hic_mapping/wasp_results/{sdir}_{prefix}_filt_hg19.bwt2pairs.filt.bam"
params:
threads=config['job_cores']
shell:
dedent(
"""\
{module}
module load samtools
samtools merge --threads {params.threads} {output} {input}
"""
)
# All future steps use the name style wildcard, like below
rule move_results:
input:
"hic_mapping/wasp_results/{name}_filt_hg19.bwt2pairs.filt.bam"
output:
"hic_mapping/wasp_results/{name}_filt_hg19.bwt2pairs.bam"
shell:
dedent(
"""\
mv {input} {output}
"""
)
は、このパイプラインは、基本的には、いくつかのマッピング手順を行っていますhic_mapping/bowtie_results/bwt2/<subdir>/<file>
のような1つのディレクトリ構造(subdirは3つの異なるディレクトリです)を使用して結果をフィルタリングし、hic_remap/bowtie_results/bwt2/<subdir>/<file>
でもう1つのほぼ同じマッピング手順を実行してから、結果をまったく新しいディレクトリにマージし、名前:hic_mapping/wasp_results/<subdir>_<file>
。
私が持っている問題は、私は、ファイル名にサブディレクトリ名を折りたたむ場合wasp_merge
ステップはfind_intersecting_snps
ステップを壊すということです。私がサブディレクトリ構造をそのまま維持すれば、すべて正常に動作します。これを行うと、パイプラインの将来のステップを壊すだろう。
私が手にエラーがある: hic_mapping/bowtie_results/bwt2/HCASMC5-8/HCASMC-8-CAGAGAGG-TACTCCTT_S8_L006_001_hg19.bwt2pairs.bam
しかし、それは探している:
MissingInputException in line 243 of /godot/quertermous/PooledHiChip/pipeline/Snakefile:
Missing input files for rule find_intersecting_snps:
hic_mapping/bowtie_results/bwt2/HCASMC5-8_HCASMC-8-CAGAGAGG-TACTCCTT_S8_L006/001_hg19.bwt2pairs.bam
正しいファイルがある いずれかによって、どこにでも作成し、また定義されていないhic_mapping/bowtie_results/bwt2/HCASMC5-8_HCASMC-8-CAGAGAGG-TACTCCTT_S8_L006/001_hg19.bwt2pairs.bam
ルール。私が持っている、しかし hic_mapping/wasp_results/HCASMC5-8_HCASMC-8-CAGAGAGG-TACTCCTT_S8_L006_001_filt_hg19.bwt2pairs.bam
: hic_mapping/wasp_results/HCASMC5-8_HCASMC-8-CAGAGAGG-TACTCCTT_S8_L006_001_filt_hg19.bwt2pairs.filt.bam
または可能性(このエラーが作成され、ターゲットの後に)下流のファイル:私はそれを何とかwasp_merge
ステップで作成されたファイルの存在によって混乱さだと思いますディレクトリ構造がまったく違うので、これらのファイルのどちらかがfind_intersecting_snps
ルールを混乱させる理由は考えられません。
このエラーは非常にばかげているので、私は何かが分からないように感じるが、それは何かを理解できない。