问题标签 [nextflow]

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 回答
396 浏览

nextflow - Nextflow - 如何避免使用“加入”或类似运算符在两个或多个通道中输入文件的随机样本 ID?

我已经使用 Nextflow 实现了一些 NGS 数据分析工作流程。我在一些工作流程中使用了“配对结束”通道(fromFilePairs 方法)。在多次工作流程执行后,我遇到了一个我没有预料到的问题:我的样本 ID 有时会混合在一起,导致发生它的流程的输出不准确。我认为这与非确定性输入通道问题有关(https://www.nextflow.io/blog/2019/troubleshooting-nextflow-resume.html)。

假设我将我的工作流程应用于这些配对端文件:sample1_R{1,2}.fastq, sample2_R{1,2}.fastq

对于这种以多个“元组 pair_ID”作为输入的过程,数据 pair_ID(= 我的样本名称)可能会混淆,我的过程最终会使用sample1的随机输入文件 A 和 B以及输入文件sample2 的C而不是相同 pair_ID所有文件 (A,B,C)(key = only sample1 或 only sample2)。在几次工作流程执行之后,在发生错误时使用 -resume 之后以及在完全成功的工作流程运行之后,我遇到了这个随机混合的输入文件名问题(这会影响输出)。

为了在 3 个通道中的每一个发出的输入文件之间具有相同的密钥 (pair_ID),我使用了join运算符:

该运算符似乎使一切按预期工作,我在示例 ID 和最终输出中看不到任何混合。在文档(https://www.nextflow.io/docs/latest/operator.html?highlight=join#join)中,join似乎只适合 2 个通道使用,所以我不确定我是否正确使用它3个频道。

我的方法使用join合法吗?还是它还有一些缺陷? 有没有更好的方法来纠正我的问题? 如果我不确定此方法是否正确以避免在我的示例 ID 中出现任何混合,我可能会更改为另一个工作流管理系统,例如 Snakemake,但我真的很想解决这个问题并继续使用 Nextflow。

提前谢谢您,如果有不清楚的地方,请不要犹豫!

0 投票
1 回答
241 浏览

kubernetes - Running nextflow as a job vs. a pod in kubernetes

I'm new to nextflow. We would like to build our workflow using nextflow and have nextflow deploy the workflow to a large mulit-institution Kubernetes cluster that we use.

In this cluster we don't have admin permission, we have a namespace we work in. Also, pods in our cluster have limited resources, but jobs have unlimited resources.

In looking at the documentation for nextflow + kubernetes and it says that the workflow runs under a Kubernetes pod, which raises red flags for me because of the limitation on pods in our cluster.

Is there a way to execute nextflow workflows as a kubernetes jobs instead of a pod? What are my options in this area?

0 投票
1 回答
1046 浏览

channel - 检查下一个流通道是否为空

我试图弄清楚如何检查通道是否为空。

例如,我有两个进程。第一个进程仅在设置了参数/标志的组合时运行,如果是,则还检查来自另一个进程的输入文件(通过通道输入)是否不为空,然后它为第二个进程创建一个新的输入文件(以最终替换默认的)。作为一个简化的例子:

当我尝试使用这种方法运行时,它会失败,因为通道_chNewInputForProcessTwo包含DataflowQueue(queue=[])因此,实际上并不是空的。

我已经尝试了几件事来查看文档以及 google 组和 gitter 上的线程。试图将其设置为空,但随后它抱怨我试图使用该频道两次。放create().close()

有没有一种干净/合理的方法来做到这一点?我可以使用值通道来做到这一点,并让第一个进程输出一些字符串stdout以供第二个进程拾取和检查,但这对我来说似乎很脏。

任何建议/反馈表示赞赏。先感谢您!

马吕斯

0 投票
1 回答
87 浏览

kubernetes - Nextflow 未使用正确的服务帐户将工作流部署到 ​​Kubernetes

我们正在尝试在 k8s 命名空间上使用 nextflow,而不是我们的默认命名空间,我们正在使用的命名空间是nextflownamespace. 我们已经创建了 PVC 并确保默认服务帐户具有管理员角色绑定。我们收到 nextflow 无法访问 PVC 的错误:

在那个错误中,我们看到它system:serviceaccount:mynamespace:default错误地指向了我们的默认命名空间,mynamespace而不是nextflownamespace我们为 nextflow 使用而创建的。

我们尝试添加debug.yaml = true到我们的nextflow.config但找不到它提交给 k8s 以验证错误的 YAML。我们的配置文件如下所示:

我们确实验证了当我们将命名空间更改为另一个任意值时,错误消息使用了新的任意命名空间,但服务帐户名称继续错误地指向用户的默认命名空间。

我们已经尝试profiles.standard.k8s.serviceAccount = "system:serviceaccount:nextflownamespace:default"了我们能想到的所有变体,但这些尝试没有得到任何改变。

0 投票
1 回答
518 浏览

python - Nextflow:python脚本不保存输出

我在 Nextflow 中的 Python 脚本有问题,我的目标是在 python 脚本中编写一个文件,然后将它与 nextflow 一起使用并将文件保存在 publishdir 中(以及在我在其他进程中使用此文件之后)。我在 nextflow 中的流程是这样的(文件是之前定义的):

python的脚本:(我简化了实际过程,但本质是这样的),我需要在nextflow中获取保存在输出文件中的文件。

问题是文件没有保存在发布目录中,而是在 nextflow 的目录工作中,当我运行工作流时,该过程完成且没有错误,但说 DataflowQueue(queue=[])

谢谢!

- - - - - - - 更新 - - - - - - -

我将输入文件更改为 file()。nextflow.config:

主.nf

这改变了 nextflow 的输出,但我的输入文件不在发布目录中(但在目录工作中)。

writefile 之后的这个路径是我的输入文件的路径,我不知道为什么(这个目录没有任何变化)。

0 投票
1 回答
422 浏览

channel - 频道检查为空,即使它有内容

我试图让一个进程仅在满足条件组合时启动,但是在检查通道是否具有文件路径时,它总是将其返回为空。可能我做错了什么,在这种情况下,请更正我的代码。我试图遵循这个问题中的一些建议,但没有成功。

考虑以下最小示例:

_chProcessTwo当且仅当通道中有文件时,我想让进程二运行。如果我运行上面的代码,我会得到:

最后一行实际上是_chProcessTwoView

如果我when从第二个过程中删除指令,我会得到:

第二个工作.command.log文件的内容是:The outcome is: I'm empty

我也试过没有 toList()

我究竟做错了什么?先感谢您

更新:一种解决方法是检查_chProcessTwoUse.view() != "",但这很脏

根据@Steve 的要求更新 2,我更新了代码以更多地反映我自己的管道中的实际情况:

正如@Steve 提到的,我什至不应该检查通道是否为空,NextFlow 应该更好地知道不启动该过程。但我认为在这个结构中我将不得不这样做。

马吕斯

0 投票
0 回答
34 浏览

nextflow - Nexflow:带有文件的结构化输入

我有一个结构数据数组,类似于:

请注意,fastqs 是成对出现的,每个“样本”的对数可能是可变的。

我想process在 nextflow 中编写一个一次处理一个样本的方法。

为了让 nextflow 执行器正确地编组文件,它们必须以某种方式键入path(或file)。这样键入后,执行程序会将文件复制到计算节点进行处理。只需键入文件路径,var将路径视为字符串,不会复制任何文件。

来自文档path的输入的一个简单示例:

我应该如何声明process输入以便将文件正确编组到计算节点?到目前为止,我还没有在文档中找到任何关于如何处理结构化输入的示例。

0 投票
0 回答
84 浏览

python - Nextflow - Channel.watchPath() 方法

我正在尝试使用 nextflow 从我的 python 脚本中获得一些并发性,因此我的一些数据流不使用传统的 nextflow 理想。

在我的第一个过程中,我通过调用 python 脚本来创建文件,在我的第二个过程中,我想使用这些创建的文件

我创建了一个新通道来监视创建文件的路径,但似乎什么也没发生。我用 .fromPath 方法进行了测试,我的过程是成功的,所以我不确定出了什么问题?

0 投票
0 回答
338 浏览

r - Nextflow:将脚本变量作为字符串输入 R?

我正在尝试学习 Nextflow,并努力让这个简单的脚本在 R 中工作:

这将返回以下错误:

我认为问题在于 $WD 没有被解释为字符串。我怎样才能解决这个问题?

0 投票
1 回答
23 浏览

nextflow - 从通道扩展路径

我的数据结构为批量运行的样本。所以我有一个这样的目录层次结构:

我想对给定批次子集的每个样本应用一个过程。一种可行的方法是生成一个列出样本的通道:

现在,我想单独提供批次名称,并让脚本找到相应的样本。像这样的东西:

所以,我对渠道的看法不正确?有没有办法通过通道操作“展平”样本列表?或者是制作更复杂的 Groovy 闭包的正确方法,它将列出每个批处理目录中的文件并将其作为元组或列表返回?