问题标签 [snakemake]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
488 浏览

job-scheduling - Snakemake 在使用 --immediate-submit 选项运行时过早删除临时文件

--immediate-submit当我使用and提交作业时--dependency=afterok:{dependencies},临时文件甚至在依赖临时文件的规则启动之前就被删除了。以正常方式运行时,它工作得很好。有没有其他人遇到过这个问题?

Snakemake 脚本

提交命令

Snakemake 输出消息

错误信息

作业正在以适当的依赖关系提交。../mybatch.py​​ 是 sbatch 的自定义包装脚本。这是我的代码中的错误还是错误?我在这里先向您的帮助表示感谢。

0 投票
1 回答
563 浏览

python - 实现 当不需要某些特定的通配符组合时,如何在snakemake中使用expand?

当不需要某些特定的通配符组合时,我尝试实现如何在蛇形中使用扩展?

目标是仅处理 之间的交叉组合SUPERGROUPS

但我仍然收到一条错误消息:

我错过了什么?

0 投票
0 回答
125 浏览

snakemake - 如何在snakemake的客户包装器中访问通配符

我有一个包装器可以将作业提交到 snakemake 中的集群。可以通过以下方式获得工作属性

但是如果有的话,如何访问每个规则中的通配符?

谢谢!汤米

0 投票
1 回答
3383 浏览

python - 子进程:无法将“_io.BufferedReader”对象隐式转换为 str

我正在编写一个脚本,它结合了snakemake和python代码来自动化大量成对出现的文件。更准确地说,我正在将读取与 BWA MEM 与配对末端读取 ( http://bio-bwa.sourceforge.net/bwa.shtml ) 对齐。在脚本的第一部分,我遍历了我的文件中的名称列表(它们是fastq bunzip文件),然后在列表中相应地对它们进行排序。以下是一些文件的快速浏览:

['NG-8653_ 1A _lib95899_4332_7_ 1 ', 'NG-8653_ 1A _lib95899_4332_7_ 2 ', 'NG-8653_ 1B _lib95900_4332_7_ 1 ', 'NG-8653_ 1B _lib95900_4332_7_ 2 ', 'NG-8653_ 1N _lib95898_4332_7_ 1 ', 'NG-8653_ 1N_lib95898_4332_7_2 ' ] _

如您所见,读取按两两排序(1A_... 1 和 1A ..._2 等...)。现在使用子进程,我想通过使用 bunzip2 解压缩它们然后将它们通过 stdin 传递给 bwa mem 来对齐它们。bwa mem 命令将 fastq 格式文件转换为 .sam 文件,然后我必须使用 samtools 将它们转换为 .bam 格式。这是到目前为止的脚本:

我试图通过逐行尝试来调试脚本。将 bunzip2 写入输出文件时,它工作正常。现在,如果我尝试通过管道传输它,我会收到一个错误:

你能告诉我脚本有什么问题吗?从今天早上开始,我一直在寻找问题,但我似乎无法弄清楚。任何帮助深表感谢。提前致谢。

编辑1:

在阅读了来自@bli 和@Johannes 的更多反馈之后,我已经做到了这一点:

非常感谢您的帮助!我想我可以从这里开始。

最好的问候,阿拉

0 投票
2 回答
257 浏览

snakemake - 错误:“属性“m_numa_nodes”不是整数值。” 运行 qsub snakemake 时

我正在尝试运行一个带有集群提交的蛇形程序以进行 RNAseq 分析。这是我的脚本:

```

我想将每个提交rule到一个集群。因此,在工作目录的终端中,我这样做:

snakemake --cluster "qsub -V -l {params.ppn}" -j 6

但是,作业未提交,并且出现以下错误: Unable to run job: attribute "m_numa_nodes" is not a integer value. Exiting. Error submitting jobscript (exit code 1): 我还尝试在运行蛇文件时直接设置节点变量,如下所示:

snakemake --cluster "qsub -V -l nodes=1:ppn=16" -j 6 正如预期的那样,它给了我同样的错误。在这一点上,我不确定它是本地集群设置还是我在蛇文件中没有做的事情。任何帮助都会很棒。

谢谢

0 投票
1 回答
126 浏览

wildcard - Snakemake:带有子项的样本,如何捕获它们?

这是一个 config.yaml 的简短示例:

如您所见,每个样本都有一个子项(实际上是多个子项)。但我不知道如何抓住他们。我的蛇文件:

在此先感谢您的帮助。

黑蒂卡

0 投票
1 回答
103 浏览

lsf - Snakemake:在 LSF 集群中执行时出现子工作流错误

我有两个非常相似的 Snakemake 工作流程。他们都共享一个子工作流程和几个包含。在进行空运行时,它们都可以工作。它们都使用相同的集群配置文件,我使用相同的启动命令运行它们。其中一个在提交到 LSF 集群时失败,并出现以下错误:

我想知道在 Snakemake 中,两个工作流程共享一个子工作流程是否“合法”,就像在这种情况下一样,如果不是,我运行首先工作的工作流程这一事实是否会产生这种效果。

0 投票
2 回答
1542 浏览

python - Snakemake SGE 集群提交问题

我是snakemake和使用集群的新手,所以我将不胜感激!

我有一个可以在服务器上正常运行的蛇文件,但是当我尝试在集群上运行它时,我没有找到合适的命令来提交作业并让它执行。它像其他用户发现的那样“停滞不前”。https://groups.google.com/forum/#!searchin/snakemake/cluster|sort:relevance/snakemake/dFxRIgKDxUU/od9az3MuBAAJ

我在一个 SGE 集群上运行它,其中只有一个节点(头节点)我们通过它提交作业。我们不能以交互方式运行作业或在头节点上运行密集的命令。通常我会像这样运行 bwa 命令:

因此,我遵循了关于通过头节点在集群上提交作业的常见问题解答,其中建议了以下代码:

这对我不起作用,因为我的终端期望 python 是一个文件。要实际调用程序的命令,我必须使用它:

-by 允许二进制或脚本。如果我运行它,qstat 将显示程序正在运行,但是有一个内部错误并且它永远不会完成。

此外,“qsub”中的内容被视为蛇形命令。当我尝试使用 sge 标志(例如 -jy)时,snakemake 出现以下错误:

我可以完美地提交 tmp 文件中的蛇形外壳脚本,但我不能使用 -by 标志并添加了 -S /bin/bash 标志。因此脚本本身可以工作,但我认为它们从头节点推送到集群的方式无法以某种方式工作。我也可能完全偏离目标!我很想知道如何向我的系统管理员谈论 SGE,因为我真的不知道该向他们询问我的问题。

结论:有没有其他人遇到过需要调用 -by for snakemake --cluster 在 SGE 上运行?它是否也将“qsub”视为蛇形命令?或者是否有人有另一种解决方法来在 SGE 的头节点上提交作业?我应该问我的 SGE 系统管理员什么问题?

0 投票
0 回答
55 浏览

python - 根据基因座标签 ID 获取序列 - SnakeMake

我希望 StackOverflow 指南允许这种类型的编程问题,否则,如果我错了,请纠正我!

我一直在从事具有生物信息学目的的蛇形工作流程。我现在拥有的文件是一个带有多种基因座标签的文本文件。我需要从这些基因座标签中获取序列。我一直在研究snakemake的文档,但仍然无法找到正确的库函数来根据基因座标签和生物体检索序列......我现在拥有的代码:

output.txt 的输出

0 投票
1 回答
505 浏览

sungridengine - 使用 DRMAA 时使用 Snakemake 设置 SGE 集群作业名称?

问题

我不确定是否正在保存 -N 参数。SGE 集群。除了 -N 参数外,一切都有效。

  • Snakemake 需要有效的 -N 调用
  • 它没有正确设置作业名称。

它始终恢复为默认名称。这是我的调用,无论有无 -N 参数,结果都相同。

我发现影响作业名称的唯一方法是使用 --jobname。

背景

我尝试了各种各样的事情。通常我实际上只是使用一个集群配置文件,但这也不起作用,所以这就是为什么在上面的代码中,我放弃了文件系统以确保它是没有被保存的“-N”命令。

我通常的电话是:

1) 如果我使用“-n”而不是“-N”,我会收到一个工作流错误:

2)如果我使用'-N',但给它一个不正确的通配符,说{rule.name}:

3) 我不能同时使用 --drmaa 和 --cluster:

4) 如果我在 config.json 文件中指定了 {jobid},那么 Snakemake 不知道如何处理它。

编辑添加了#5 w/解决方案

5)我可以使用 config.json 设置作业名称,然后在我的snakemake调用中连接jobid。这样我就有了一个通用的 snakemake 调用 (--jobname "{cluster.jobName}.{jobid}"),以及一个高度可配置且特定的作业名称 ({rule}-{wildcards.sampleMPUS}_chr{wildcards.chrMPUS})这导致:

1 是根据 DAG 的 Snakemake jobid。7152298 是我集群的工作编号。

第二次编辑- 刚试过 v3.12,同样的事情。连接必须发生在snakemake 调用中。

替代解决方案

我也可以接受这样的事情:

我的集群文件是这样的:

文件审查

我已经阅读了文档,但我无法弄清楚。

  1. http://snakemake.readthedocs.io/en/latest/executable.html?-highlight=job_name#cluster-execution

  2. http://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#snakefiles-cluster-configuration

  3. https://groups.google.com/forum/#!topic/snakemake/whwYODy_I74

系统

Snakemake v3.10.2 (明天将尝试最新的 conda 版本) Red Hat Enterprise Linux Server release 5.4 SGE Cluster