簡體   English   中英

Snakemake 中擴展輸入的缺少輸入文件錯誤

[英]Missing input files error for expanded input in Snakemake

我遇到了一個無法修復的奇怪錯誤。 我在Ubuntu 20.04機器上的conda環境中使用snakemake 7.8.2(也嘗試在我們的集群上運行它並且發生了同樣的錯誤)。 出於某種奇怪的原因,我的一個具有通配符的規則不能用作以下規則的擴展輸入,並且在前面的規則中非常清楚地創建輸入文件時不斷給我一個錯誤,即輸入文件丟失。

這是我的兩條規則:

### Use R to generate figures of each run's sequencing summary

rule rejected_seq_figures:
  input:
    seq_summary = "resources/{RUNS}/guppy_outputs/sequencing_summary.txt",
    rejected_ids = "resources/{RUNS}/raw_reads/unblocked_read_ids.txt"
  output:
    rejected_pie = report("results/rejected/seq_summary/{RUNS}_pie_chart.pdf", caption="report/rejected_pie.rst", category="Rejected Reads Sequence Summary", subcategory="{RUNS}"),
    histo_read_len = report("results/rejected/seq_summary/{RUNS}_histogram.pdf", caption="report/histo_read_len.rst", category="Rejected Reads Sequence Summary", subcategory="{RUNS}"),
    barcode_boxplot = report("results/rejected/seq_summary/{RUNS}_boxplot.pdf", caption="report/barcode_boxplot.rst", category="Rejected Reads Sequence Summary", subcategory="{RUNS}")
  script:
    "scripts/rejected_seq_summary_figures.R"

### Use R to create a summary table of all runs sequencing summaries

rule rejected_seq_table:
  input:
    sum_file_list = "results/rejected/sum_file_list.tsv",
    ids_file_list = "results/rejected/ids_file_list.tsv",
    rejected_pie = expand("results/rejected/seq_summary/{run}_pie_chart.pdf", run=RUNS)
  output:
    report("results/rejected/seq_summary/rejected_seq_summary_table.tsv", caption="report/rejected_seq_summary_table.rst", category="Rejected Reads Sequence Summary", subcategory="All Runs")
  script:
    "scripts/rejected_seq_summary_table.R"

在嘗試構建 DAG 時,snakemake 會產生錯誤:

MissingInputException in line 39 of /home/639893/Adaptive_Sequencing_Analysis_Workflow/workflow/rules/rejected_seq_summary.smk:
Missing input files for rule rejected_seq_table:
    output: results/rejected/seq_summary/rejected_seq_summary_table.tsv
    affected files:
        results/rejected/seq_summary/ONT_skin1_adap2_pie_chart.pdf
        results/rejected/seq_summary/ONT_skin1_adap_pie_chart.pdf

這些正是規則的預期輸出,因此通配符有效,也沒有任何拼寫錯誤或路徑錯誤。 R 腳本已經過測試,snakemake 輸入和輸出運行良好,但是當我將規則添加到我的工作流程時,它會不斷產生此錯誤。

我已經嘗試過:將圖形規則的所有三個輸出作為擴展輸入,更改以下規則的輸入順序,將擴展輸入全部放入規則而不是以下規則(我只是想得到這個規則運行),創建一個臨時的和觸摸的文本文件而不是 pdf,使路徑更短和更長,將蛇形版本更改為 7 個不同的版本,第一條規則只有一個輸出,並從輸出中刪除報告代碼。 所有這些都導致了相同的錯誤,我的工作流程的其余部分運行良好。

此外,我還有另一條規則,我執行相同的操作(使用通配符作為下一個規則的輸入的前一個規則的擴展輸出)並且效果很好。 規則之間的唯一區別是導致錯誤的規則(上圖)使用 R 腳本,而工作規則僅使用 shell 命令。

我非常感謝任何幫助,因為我需要能夠創建這樣的數字並將它們添加到蛇形報告中。 先感謝您。

問題原來是我在規則“RUNS”中用於通配符的約束。

導致此問題的約束是:

wildcard_constraints:
  RUNS="^[^\/]+$"

字符串開頭和結尾的字符“^”和“$”分別不能用於通配符約束。

正確的格式是:

wildcard_constraints:
  RUNS="[^\/]+"

感謝 Snakemake 團隊的快速響應和所有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM