问题标签 [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 投票
1 回答
2519 浏览

snakemake - 防止snakemake因shell/R错误而失败的优雅方法是什么?

即使某些规则失败,我也希望能够让我的蛇形工作流程继续运行。

例如,我正在使用各种工具来执行 ChIP-seq 数据的峰值调用。但是,某些程序在无法识别峰时会发出错误。在这种情况下,我宁愿创建一个空的输出文件,并且不会让snakemake 失败(就像一些高峰呼叫者已经这样做了)。

使用“shell”和“run”关键字是否有类似snakemake的方式来处理这种情况?

谢谢

0 投票
1 回答
568 浏览

chaining - 有没有办法在没有触摸文件的情况下链接蛇形规则?

有没有办法在不创建不需要的空文件 helpA、helpB、helpC 然后删除它们的情况下完成以下 helpAll 规则?

一个不错的解决方案是以下类型的规则依赖,但这不是有效的蛇码:

或者:

0 投票
1 回答
67 浏览

workflow - Snakemake:在递归子工作流程场景中引用超出父级的输出

我有一个包含三层子工作流的工作流,其中 wfA 是 wfB 的子工作流,是 wfC 的子工作流。

执行 wfC 时,如果需要,wfA 和 wfB​​ 都会正确执行。

在 wfC 中我可以执行 wfB("some/output"),但我不能执行 wfA("some/output"),因为它会给出“未定义名称 'wfA'”错误。

这是支持的东西吗?还有其他办法吗?

0 投票
1 回答
357 浏览

snakemake - Snakemake:不同文件位置的通用输入函数

我有两个可以存储大量数据的位置:/data/work.

/data是质量控制后(中间)结果移动到的文件夹。它对标准用户以只读方式安装。 /work是写入新结果的文件夹。显然,它是可写的。

我不想将数据从 复制或链接/data/work

所以我从文件夹中运行我的snakemake/work ,并希望我的输入函数首先检查所需的文件是否存在/data(并返回绝对/data路径),如果不存在则返回/work目录中的相对路径。

这很好用,但我必须为每个规则定义单独的输入函数,因为文件名不同。是否可以编写一个通用输入函数,将文件名{id}/{visit}/{id}_{visit}-file_name_1.txt和通配符作为输入?

我也尝试过类似的东西

但是我无法访问 中的通配符in_func(),对吗?

谢谢,扬

0 投票
0 回答
65 浏览

amazon-cloudformation - 局部暂存空间的 Snakemake 和云形成集群错误

我在同时使用 cfncluster 和 snakemake 上的本地暂存空间时遇到问题。我的策略是将数据写入集群中每个节点的本地暂存区,然后将数据移动到 NFS 分区。不幸的是,我收到以下错误:

蛇形 4.0.0,cfncluster

这与此处报告的错误类似: https ://bitbucket.org/snakemake/snakemake/issues/462/unhandled-missingoutputexception-in

Snakemake脚本如下:

我的感觉是,snakemake 无法“看到”节点上的划痕,因此将其返回为缺失,但我不知道如何解决这个问题。

0 投票
1 回答
99 浏览

amazon-ec2 - snakemake 集群命令中的括号问题

我使用以下命令在 aws cfncluster 上使用 snakemake 4.0.0。

它在头节点上运行良好,但是当我提交到头节点时,出现以下错误。

规则异常:

问题是“sh”命令不支持“(”的“bashism”有没有办法强制snakemake使用/bin/bash?谢谢

0 投票
0 回答
99 浏览

snakemake - 工作流断开

从 repo 运行工作流时,例如:

snakemake --use-conda -p --cluster-config cluster.yaml --cluster "qsub -l {cluster.l} -m {cluster.m} -N {cluster.N} -r {cluster.r} -V" --jobs 1

我的工作开始但遇到urllib相关错误(见下文)。我在计算服务器上运行 v3.13.3。关于如何避免这种情况的任何提示?提前致谢。

0 投票
1 回答
1528 浏览

python - 使用 Python 脚本、conda 和集群的 SnakeMake 规则

我想让 snakemake 通过 SGE 集群运行具有特定 conda 环境的 Python 脚本。

在集群上,我的主目录中安装了 miniconda。我的主目录是通过 NFS 挂载的,因此所有集群节点都可以访问。

因为 miniconda 在我的主目录中,所以 conda 命令默认不在操作系统路径上。即,要使用 conda,我需要首先明确地将其添加到路径中。

我有一个 conda 环境规范作为 yaml 文件,可以与 --use-conda 选项一起使用。这也适用于 --cluster "qsub" 选项吗?

FWIW 我还使用 conda 环境启动了snakemake(实际上与我想运行脚本的环境相同)。

0 投票
1 回答
1092 浏览

snakemake - 如何从子目录中收集文件以在 Snakemake 中运行作业?

我目前正在从事这个项目,我正在努力解决这个问题。

我当前的目录结构是

我想在结果目录中将各种 .bam 文件转换为 fastq

我有以下代码:

这会输出以下错误:

任何帮助,将不胜感激

0 投票
1 回答
419 浏览

python - 存储 shell 命令的结果

正如您在标题中看到的那样,我对存储 shell 命令的结果并将其传递给另一个规则很感兴趣。

下面是我的规则:

由于出口 1,我肯定在这里收到了错误!但这只是为了测试。

我要解决的错误是 subprocess.check_output() 中 {SAMTOOLS} 的值!

为了提供更多信息,因为不同的用户可能会在不同的地方安装 samtools,我们通过 configfile 来配置 samtools 的地址。但是,在这里我不能:

1) 读取{SAMTOOLS}的正确值!

2)使整个命令可运行!

那么,您能否告诉我是否有任何其他方法可以将规则的输出存储/传递给另一个规则!?更具体地说,我如何增强蛇形来告诉 shell {SAMTOOLS} 可用。

谢谢!