我不明白为什么我的蛇形过程停止在50%并且不会继续进行,尽管DAG和干运行知道有新的事情要做。
我有一个蛇文件:
这是我的snakefile:
import os
import os.path
"""
This rule prints user message on success (everything returned error code == 0)
"""
onsuccess:
print("Thepipeline is over and successful.")
"""
This rule prints user message on error (something returned error code != 0)
"""
onerror:
print("Thepipeline ended wrongly.")
"""
This rule lists the reports, here I expect only one.
"""
rule analysis_target:
input:
dynamic("Sample1/{cluster}/REPORT.html")
message:
"Finishing the pipeline"
"""
This rule performs normalisation of cel files
"""
rule analysis_process:
input:
"{sample}.CEL"
output:
os.path.join("{sample}", "{sample}_processed.RDS")
message:
"Perform normalisation of {wildcards.sample}"
threads:
1
log:
out = os.path.join("Process_{sample}.out"),
err = os.path.join("Process_{sample}.err")
shell:
"Process.R {input}" # Close function
" > {log.out}" # Stdout redirection
" 2> {log.err}" # Stderr redirection
"""
This rule performs L2R/BAF segmentation
"""
rule analysis_Segment_L2R:
input:
os.path.join("{sample}", "{sample}_processed.RDS")
output:
dynamic(os.sep.join(["{sample}", "{cluster}", "{sample}.ASPCF.RDS"]))
message:
"Working on L2R/BAF segmentation of {wildcards.sample}"
threads:
1
log:
out = os.path.join("Segment_{sample}.out"),
err = os.path.join("Segment_{sample}.err")
shell:
"Segment.R {input}" # Close function
" > {log.out}" # Stdout redirection
" 2> {log.err}" # Stderr redirection
"""
This rule performs the ASCN/TCN segmentation
"""
rule analysis_Segment_ASCN:
input:
dynamic(os.sep.join(["{sample}", "{cluster}", "{sample}.ASPCF.RDS"]))
output:
os.sep.join(["{sample}", "{cluster}", "ascat.ASCN.RDS"]),
message:
"Performing ASCN/TCN segmentation for {wildcards.sample}"
threads:
1
log:
out = os.path.join(config["log_directory"], "ASCN_{sample}.out"),
err = os.path.join(config["log_directory"], "ASCN_{sample}.err")
shell:
"ASCN.R {input}" # Close function
" > {log.out}" # Stdout redirection
" 2> {log.err}" # Stderr redirection
"""
This rune performs the HTML reporting required for biologists
"""
rule analysis_report:
input:
os.sep.join(["{sample}", "{cluster}", "ascat.ASCN.RDS"])
output:
os.sep.join(["{sample}", "{cluster}", "REPORT.html"])
message:
"Reporting analysis' results of {wildcards.sample}."
threads:
1
log:
out = os.path.join("report_{sample}.out"),
err = os.path.join("report_{sample}.err")
shell:
"Report.R {input}" # Close function
" > {log.out}" # Stdout redirection
" 2> {log.err}" # Stderr redirection
但是,我有以下问题:
该过程停止在50%,打印以下内容:
[Wed Jun 6 16:08:06 2018] Building DAG of jobs...
[Wed Jun 6 16:08:06 2018] Using shell: /bin/bash
[Wed Jun 6 16:08:06 2018] Provided cores: 3
[Wed Jun 6 16:08:06 2018] Rules claiming more threads will be scaled down.
[Wed Jun 6 16:08:06 2018] Job counts:
[Wed Jun 6 16:08:06 2018] count jobs
[Wed Jun 6 16:08:06 2018] 1 analysis_Segment_ASCN
[Wed Jun 6 16:08:06 2018] 1 analysis_Segment_L2R
[Wed Jun 6 16:08:06 2018] 1 analysis_process
[Wed Jun 6 16:08:06 2018] 1 analysis_report
[Wed Jun 6 16:08:06 2018] 1 analysis_target
[Wed Jun 6 16:08:06 2018] 5
[Wed Jun 6 16:08:06 2018] Job 4: Perform normalisation of Sample1
[Wed Jun 6 16:10:03 2018] Finished job 4.
[Wed Jun 6 16:10:03 2018] 1 of 5 steps (20%) done
[Wed Jun 6 16:10:03 2018] Job 3: Working on L2R/BAF segmentation of Sample1
[Wed Jun 6 16:10:03 2018] Subsequent jobs will be added dynamically depending on the output of this rule
[Wed Jun 6 16:13:41 2018] Dynamically updating jobs
[Wed Jun 6 16:13:41 2018] Finished job 3.
[Wed Jun 6 16:13:41 2018] 2 of 4 steps (50%) done
[Wed Jun 6 16:13:41 2018] Complete log: /home/tdayris/ASCN/.snakemake/log/2018-06-06T160806.787514.snakemake.log
The pipeline is over and successful.
Snakemake完成(通过dryrun)动态文件的名称,但在50%失败后不会生成它们
这是dry_run:
Building DAG of jobs...
Job counts:
count jobs
1 analysis_Segment_ASCN
1 analysis_report
1 analysis_target
3
Job 7: Performing ASCN/TCN segmentation for Sample1
Reason: Missing output files: Sample1/6452/ascat.ASCN.RDS
Job 6: Reporting analysis' results of Sample1.
Reason: Missing output files: Sample1/6452/Sample1.REPORT.html; Input files updated by another job: Sample1/6452/ascat.ASCN.RDS
Job 5: Finishing the pipeline
Reason: Input files updated by another job: Sample1/6452/REPORT.html
Job counts:
count jobs
1 analysis_Segment_ASCN
1 analysis_report
1 analysis_target
3
这是非生产运行:
[Wed Jun 6 16:23:23 2018] Building DAG of jobs...
[Wed Jun 6 16:23:23 2018] Using shell: /bin/bash
[Wed Jun 6 16:23:23 2018] Provided cores: 3
[Wed Jun 6 16:23:23 2018] Rules claiming more threads will be scaled down.
[Wed Jun 6 16:23:23 2018] Job counts:
[Wed Jun 6 16:23:23 2018] count jobs
[Wed Jun 6 16:23:23 2018] 1 analysis_Segment_ASCN
[Wed Jun 6 16:23:23 2018] 1 analysis_report
[Wed Jun 6 16:23:23 2018] 1 analysis_target
[Wed Jun 6 16:23:23 2018] 3
[Wed Jun 6 16:23:23 2018] Complete log: /home/tdayris/ASCN/.snakemake/log/2018-06-06T162323.286705.snakemake.log
The pipeline is over and successful.
你能否突出我做错了什么?