问题标签 [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.
python - 如何创建适合在 python 中分发的工作流
我们需要创建一个由来自多个包的命令组成的工作流,最终让研究所的其他成员(顺便说一下,他们不是计算机科学家)能够下载和使用它。
在线搜索,有一些用于创建工作流的包(https://www.biostars.org/p/91301/),其中有 Snakemake(https://snakemake.readthedocs.io/en/v3.9.1/snakefiles/deployment .html ) 似乎是一个很好的候选者。
我们想知道这是否真的是为此目的的最佳软件包,是否有更好的选择?
shell - 在蛇形规则中使用 pyenv
我将蛇形制作用于涉及一些外部编写的 python2 脚本的长而复杂的管道。当我尝试使用 pyenv 指定 python2 时,pyenv shell
命令失败pyenv global
并且pyenv local
没有效果。我有两个问题。
- 为什么没有
shell
命令?是因为snakemake运行的是非登录非交互式shell吗? - 是否可以使用pyenv在snakemake规则中切换到python2?
这是一个示例 Snakefile。
这会产生以下输出。
tilde - 在输入指令中使用“~”(AKA 波浪号)似乎不起作用?
这是我第一次尝试在输入中使用“~”。当我将“~”转换为绝对路径时它可以工作。
证明它们是同一个文件:
不起作用:
作品:
我目前只尝试在输入指令中使用它。我可能会花点时间看看它是否可以作为输出指令(不是我需要的,只是好奇)。
想法?
编辑
@alvits 能够指出 ~ 在评估之前由 shell 转换为 ${HOME} 。似乎在向snakemake 提供〜时,不会发生这种转换。简单的替代方法是始终使用 ${HOME},它适用于 MacOSX 和 Linux :)。
我能够成功使用以下内容:
第二次编辑
用户指出我认为的解决方案实际上不是。解决方案是不要在输入指令中使用“~”或“${HOME}”。
snakemake - snakemake 中的 MissinOutputException
我计划将我的生物信息学管道移动到蛇形,因为我当前的管道是多个脚本的集合,这些脚本越来越难以遵循。在教程和文档的基础上,snakemake 似乎是一个非常清晰和有趣的管道管理选项。但是,我不熟悉 Python,因为我主要使用 bash 和 R,所以 snakemake 似乎更难学习:我面临以下问题。
我有两个文件,sampleA_L001_R1_001.fastq.gz 和 sampleA_L001_R2_001.fastq.gz,它们放在同一个目录 sampleA 中。我想使用cat
命令合并这些文件。这实际上是一个测试运行:在实际情况下,每个样本应该有八个单独的 FASTQ 文件,它们应该以类似的方式合并。非常简单的工作,但我的代码有问题。
如您所见,我已经尝试了该--latency-wait
选项,但没有成功。你有什么想法可能是我的问题的根源吗?文件路径正确,文件本身未损坏且正常。我在通配符方面也遇到了类似的问题,所以在snakemake基础知识中一定有一些我不理解的东西。
python-3.x - Multiple inputs and outputs in a single rule Snakemake file
I am getting started with Snakemake and I have a very basic question which I couldnt find the answer in snakemake tutorial.
I want to create a single rule snakefile to download multiple files in linux one by one. The 'expand' can not be used in the output because the files need to be downloaded one by one and wildcards can not be used because it is the target rule.
The only way comes to my mind is something like this which doesnt work properly. I can not figure out how to send the downloaded items to specific directory with specific names such as 'downloaded_files.dwn' using {output} to be used in later steps:
I appreciate any hint on how this should be solved and which part of snakemake I didnt understand well.
python-3.x - Thread.py 错误蛇形
我正在尝试运行一个简单的单规则蛇形文件,如下所示:
但我得到一个错误:
我没有在snakemake 中使用threads 选项。我不知道这与thread.py有什么关系。有人有这个错误的经验吗?
python - 在snakemake中'没有为通配符错误给出值'
我正在尝试使用snakemake制作一个简单的管道,从网上下载两个文件,然后将它们合并到一个输出中。
我认为可行的是以下代码:
此代码返回错误:
No values given for wildcard 'chromo'. in line 20
另外,在合并规则中,运行中的python代码不起作用。
snakemake 包中的教程没有涵盖足够的示例来了解非计算机科学家的详细信息。如果有人知道一个很好的资源来学习如何使用snakemake,如果他们能分享我将不胜感激:)。
snakemake - 如何在规则中访问 cluster_config 字典?
我正在编写作为工作流程的一部分的基准测试报告,我想包括的一件事是有关每个作业请求的资源量的信息。
现在,我可以手动要求集群配置文件('cluster.json')作为硬编码输入。不过,理想情况下,我希望能够访问通过 --cluster-config 参数传递的每条规则集群配置信息。在init .py 中,这是作为一个名为cluster_config
.
有没有办法将这个字典直接导入或复制到规则中?
snakemake - 留在远程 S3 RemoteProvider
我试图让snakemake直接读写到S3。有谁知道是否可以使用 S3RemoteProvider 并设置参数 stay_on_remote=True?当我将此参数设置为 True 时,snakemake 似乎无法找到我的输入。我也尝试使用 XRootD RemoteProvider,但它似乎无法与 S3 对话。还有另一种方法可以做到这一点吗?
在此先感谢您的帮助!
python - snakemake 中的动态输出
我正在使用snakemake 开发管道。我正在尝试为目录中的每个文件创建指向新目标的符号链接。我不提前知道会有多少文件,所以我正在尝试使用动态输出。
这是我得到的错误:
WorkflowError:“目标规则可能不包含通配符。请指定具体文件或不带通配符的规则。”
问题是什么?