Snakemake - 第 20 行缺少 MissingInputException:缺少规则字符串的输入文件:
Snakemake - Missing MissingInputException in line 20: Missing input files for rule stringt:
我没能成功运行为 StringTie 创建这个小的 snakemake 程序; dry-运行 给出了 "rule stringt" 的 MissingInputException 错误,我无法理解这里的问题,因为相同的目录结构适用于不同的 snakemake 程序。
我已经使用 "hisat2" 生成了 bam 文件并且位于目录:“/alternate_splice/bam_out/”,存储为“bamdir”。
snakemake 应该能够找到输入文件,因为名称和位置是合适的,但是它每次都会抛出错误。
我看了之前的snakemake相关问题,但是没能解决这个问题。
如果有人能在这里帮助我,那就太好了!
There are 4 samples: for the wildcards, it takes the list from the
directory which has the fastq files
~/alternate_splice/expdata$ ls -ltr
-rw-r--r-- 1 shivani domain^users 1306438351 Jan 2 09:46 TL-19-DA4299_T_RSQ1_2.fastq.gz
-rw-r--r-- 1 shivani domain^users 1185743896 Jan 2 09:46 TL-19-DA4299_T_RSQ1_1.fastq.gz
>
-rw-r--r-- 1 shivani domain^users 1896352262 Jan 9 08:49 TL-20-24D57D_T_RSQ1_2.fastq.gz
-rw-r--r-- 1 shivani domain^users 1730191383 Jan 9 08:49 TL-20-24D57D_T_RSQ1_1.fastq.gz
>
-rwxr-xr-x 1 shivani domain^users 3215901253 Mar 25 10:28 BREAST_817_N1_RNA_REP1_1.fastq.gz
-rwxr-xr-x 1 shivani domain^users 3396212102 Mar 25 10:36 BREAST_817_N1_RNA_REP1_2.fastq.gz
>
-rwxr-xr-x 1 shivani domain^users 3633768287 Mar 25 10:45 BREAST_792_N1_RNA_REP1_1.fastq.gz
-rwxr-xr-x 1 shivani domain^users 3932340643 Mar 25 10:54 BREAST_792_N1_RNA_REP1_2.fastq.gz
蛇文件在这里:
"bamdir" = bam 输出的目录
"geneGTF" = 定位 GFT 文件
两条规则:1.stringt 2.merge
(SAMPLE,)=glob_wildcards("/home/shivani/alternate_splice/expdata/{sample}_1.fastq.gz")
#(SAMPLE,)=glob_wildcards("/home/shivani/alternate_splice/bam_out/{sample}.bam")
bamdir = "/home/shivani/alternate_splice/bam_out/"
refere_genome = "/home/shivani/ccb1_shivani/hisat2_trans_bam/hisat2_index/"
geneGTF = "/home/shivani/stringtie_run/Homo_sapiens.GRCh37.87.gtf"
rule all:
input:
expand(bamdir+"{sample}_transcript.gft",sample=SAMPLE),
expand(bamdir+"{sample}_abundance.tsv",sample=SAMPLE),
expand(bamdir+"{sample}_coverage.gtf",sample=SAMPLE)
expand(bamdir+"{sample}_stringtie_merge.gtf",sample=SAMPLE)
rule stringt:
input:
bm=bamdir+"{sample}.bam",
gtf=geneGTF,
tname="{sample}"
output:
tscripts=bamdir+"{sample}_transcript.gft",
abund=bamdir+"{sample}_abundance.tsv",
cov=bamdir+"{sample}_coverage.gtf"
shell:
"""stringtie -p 4 -e -c 3.5 -G {input.gtf} -o {output.tscripts} -A {output.abund} -C {output.cov} -l {sample}{input.bm}"""
rule merge:
input:
trnsgtf=bamdir+"{sample}_transcript.gft",
ggtf=geneGTF
output :bamdir+"{sample}_stringtie_merge.gtf"
shell:"stringtie -p 4 --merge -G {input.ggtf} -o {output} {input.trnsgtf}"
这个snakemake的干运行:我没有使用"Snakefile"作为指定名称,而是使用"stringtie_trans"
snakemake -n -r -s stringtie_trans
输出结果如下:
MissingInputException in line 20 of /home/shivani/alternate_splice/stringtie_trans ::::
Missing input files :::: for rule stringt: BREAST_792_N1_RNA_REP1
作为输入,您有一个名为 tname
的变量未被使用,我认为它是错误的:
rule stringt:
input:
bm=bamdir+"{sample}.bam",
gtf=geneGTF,
tname="{sample}" <-- should this be here?
我没能成功运行为 StringTie 创建这个小的 snakemake 程序; dry-运行 给出了 "rule stringt" 的 MissingInputException 错误,我无法理解这里的问题,因为相同的目录结构适用于不同的 snakemake 程序。
我已经使用 "hisat2" 生成了 bam 文件并且位于目录:“/alternate_splice/bam_out/”,存储为“bamdir”。
snakemake 应该能够找到输入文件,因为名称和位置是合适的,但是它每次都会抛出错误。
我看了之前的snakemake相关问题,但是没能解决这个问题。 如果有人能在这里帮助我,那就太好了!
There are 4 samples: for the wildcards, it takes the list from the directory which has the fastq files
~/alternate_splice/expdata$ ls -ltr
-rw-r--r-- 1 shivani domain^users 1306438351 Jan 2 09:46 TL-19-DA4299_T_RSQ1_2.fastq.gz
-rw-r--r-- 1 shivani domain^users 1185743896 Jan 2 09:46 TL-19-DA4299_T_RSQ1_1.fastq.gz
>
-rw-r--r-- 1 shivani domain^users 1896352262 Jan 9 08:49 TL-20-24D57D_T_RSQ1_2.fastq.gz
-rw-r--r-- 1 shivani domain^users 1730191383 Jan 9 08:49 TL-20-24D57D_T_RSQ1_1.fastq.gz
>
-rwxr-xr-x 1 shivani domain^users 3215901253 Mar 25 10:28 BREAST_817_N1_RNA_REP1_1.fastq.gz
-rwxr-xr-x 1 shivani domain^users 3396212102 Mar 25 10:36 BREAST_817_N1_RNA_REP1_2.fastq.gz
>
-rwxr-xr-x 1 shivani domain^users 3633768287 Mar 25 10:45 BREAST_792_N1_RNA_REP1_1.fastq.gz
-rwxr-xr-x 1 shivani domain^users 3932340643 Mar 25 10:54 BREAST_792_N1_RNA_REP1_2.fastq.gz
蛇文件在这里: "bamdir" = bam 输出的目录 "geneGTF" = 定位 GFT 文件
两条规则:1.stringt 2.merge
(SAMPLE,)=glob_wildcards("/home/shivani/alternate_splice/expdata/{sample}_1.fastq.gz")
#(SAMPLE,)=glob_wildcards("/home/shivani/alternate_splice/bam_out/{sample}.bam")
bamdir = "/home/shivani/alternate_splice/bam_out/"
refere_genome = "/home/shivani/ccb1_shivani/hisat2_trans_bam/hisat2_index/"
geneGTF = "/home/shivani/stringtie_run/Homo_sapiens.GRCh37.87.gtf"
rule all:
input:
expand(bamdir+"{sample}_transcript.gft",sample=SAMPLE),
expand(bamdir+"{sample}_abundance.tsv",sample=SAMPLE),
expand(bamdir+"{sample}_coverage.gtf",sample=SAMPLE)
expand(bamdir+"{sample}_stringtie_merge.gtf",sample=SAMPLE)
rule stringt:
input:
bm=bamdir+"{sample}.bam",
gtf=geneGTF,
tname="{sample}"
output:
tscripts=bamdir+"{sample}_transcript.gft",
abund=bamdir+"{sample}_abundance.tsv",
cov=bamdir+"{sample}_coverage.gtf"
shell:
"""stringtie -p 4 -e -c 3.5 -G {input.gtf} -o {output.tscripts} -A {output.abund} -C {output.cov} -l {sample}{input.bm}"""
rule merge:
input:
trnsgtf=bamdir+"{sample}_transcript.gft",
ggtf=geneGTF
output :bamdir+"{sample}_stringtie_merge.gtf"
shell:"stringtie -p 4 --merge -G {input.ggtf} -o {output} {input.trnsgtf}"
这个snakemake的干运行:我没有使用"Snakefile"作为指定名称,而是使用"stringtie_trans"
snakemake -n -r -s stringtie_trans
输出结果如下:
MissingInputException in line 20 of /home/shivani/alternate_splice/stringtie_trans ::::
Missing input files :::: for rule stringt: BREAST_792_N1_RNA_REP1
作为输入,您有一个名为 tname
的变量未被使用,我认为它是错误的:
rule stringt:
input:
bm=bamdir+"{sample}.bam",
gtf=geneGTF,
tname="{sample}" <-- should this be here?