问题标签 [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.
snakemake - 防止snakemake因shell/R错误而失败的优雅方法是什么?
即使某些规则失败,我也希望能够让我的蛇形工作流程继续运行。
例如,我正在使用各种工具来执行 ChIP-seq 数据的峰值调用。但是,某些程序在无法识别峰时会发出错误。在这种情况下,我宁愿创建一个空的输出文件,并且不会让snakemake 失败(就像一些高峰呼叫者已经这样做了)。
使用“shell”和“run”关键字是否有类似snakemake的方式来处理这种情况?
谢谢
chaining - 有没有办法在没有触摸文件的情况下链接蛇形规则?
有没有办法在不创建不需要的空文件 helpA、helpB、helpC 然后删除它们的情况下完成以下 helpAll 规则?
一个不错的解决方案是以下类型的规则依赖,但这不是有效的蛇码:
或者:
workflow - Snakemake:在递归子工作流程场景中引用超出父级的输出
我有一个包含三层子工作流的工作流,其中 wfA 是 wfB 的子工作流,是 wfC 的子工作流。
执行 wfC 时,如果需要,wfA 和 wfB 都会正确执行。
在 wfC 中我可以执行 wfB("some/output"),但我不能执行 wfA("some/output"),因为它会给出“未定义名称 'wfA'”错误。
这是支持的东西吗?还有其他办法吗?
snakemake - Snakemake:不同文件位置的通用输入函数
我有两个可以存储大量数据的位置:/data
和/work
.
/data
是质量控制后(中间)结果移动到的文件夹。它对标准用户以只读方式安装。
/work
是写入新结果的文件夹。显然,它是可写的。
我不想将数据从 复制或链接/data
到/work
。
所以我从文件夹中运行我的snakemake/work
,并希望我的输入函数首先检查所需的文件是否存在/data
(并返回绝对/data
路径),如果不存在则返回/work
目录中的相对路径。
这很好用,但我必须为每个规则定义单独的输入函数,因为文件名不同。是否可以编写一个通用输入函数,将文件名{id}/{visit}/{id}_{visit}-file_name_1.txt
和通配符作为输入?
我也尝试过类似的东西
但是我无法访问 中的通配符in_func()
,对吗?
谢谢,扬
amazon-cloudformation - 局部暂存空间的 Snakemake 和云形成集群错误
我在同时使用 cfncluster 和 snakemake 上的本地暂存空间时遇到问题。我的策略是将数据写入集群中每个节点的本地暂存区,然后将数据移动到 NFS 分区。不幸的是,我收到以下错误:
蛇形 4.0.0,cfncluster
这与此处报告的错误类似: https ://bitbucket.org/snakemake/snakemake/issues/462/unhandled-missingoutputexception-in
Snakemake脚本如下:
我的感觉是,snakemake 无法“看到”节点上的划痕,因此将其返回为缺失,但我不知道如何解决这个问题。
amazon-ec2 - snakemake 集群命令中的括号问题
我使用以下命令在 aws cfncluster 上使用 snakemake 4.0.0。
它在头节点上运行良好,但是当我提交到头节点时,出现以下错误。
规则异常:
问题是“sh”命令不支持“(”的“bashism”有没有办法强制snakemake使用/bin/bash?谢谢
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。关于如何避免这种情况的任何提示?提前致谢。
python - 使用 Python 脚本、conda 和集群的 SnakeMake 规则
我想让 snakemake 通过 SGE 集群运行具有特定 conda 环境的 Python 脚本。
在集群上,我的主目录中安装了 miniconda。我的主目录是通过 NFS 挂载的,因此所有集群节点都可以访问。
因为 miniconda 在我的主目录中,所以 conda 命令默认不在操作系统路径上。即,要使用 conda,我需要首先明确地将其添加到路径中。
我有一个 conda 环境规范作为 yaml 文件,可以与 --use-conda 选项一起使用。这也适用于 --cluster "qsub" 选项吗?
FWIW 我还使用 conda 环境启动了snakemake(实际上与我想运行脚本的环境相同)。
snakemake - 如何从子目录中收集文件以在 Snakemake 中运行作业?
我目前正在从事这个项目,我正在努力解决这个问题。
我当前的目录结构是
我想在结果目录中将各种 .bam 文件转换为 fastq
我有以下代码:
这会输出以下错误:
任何帮助,将不胜感激
python - 存储 shell 命令的结果
正如您在标题中看到的那样,我对存储 shell 命令的结果并将其传递给另一个规则很感兴趣。
下面是我的规则:
由于出口 1,我肯定在这里收到了错误!但这只是为了测试。
我要解决的错误是 subprocess.check_output() 中 {SAMTOOLS} 的值!
为了提供更多信息,因为不同的用户可能会在不同的地方安装 samtools,我们通过 configfile 来配置 samtools 的地址。但是,在这里我不能:
1) 读取{SAMTOOLS}的正确值!
2)使整个命令可运行!
那么,您能否告诉我是否有任何其他方法可以将规则的输出存储/传递给另一个规则!?更具体地说,我如何增强蛇形来告诉 shell {SAMTOOLS} 可用。
谢谢!