问题标签 [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 回答
270 浏览

python - Nextflow 在流程之间操纵变量

我正在重新设计一个工作流程,基本上它从一个产生多个其他流程的流程开始。最初,我在开始我的工作流程之前就有了变量,因此我制作了这些变量的元组,然后将其作为输入传递给流程。该进程获取每个值,并为元组中的每个值生成一个进程。

然而,在我的新架构中,我在我的 processA 中得到了“元组”。然后 processB 需要将每个值作为输入,并为每个输入生成一个进程。

我的元组看起来像:{"002--002": some_params, "004--004": some_params, etc.}

我目前将这些值作为 Python 中的列表:['052--052', '054--054', '055--055', '059--059', '060--060', '066--066']

我想知道如何解析这个 Python 列表,以继续传递一个参数并产生多个进程?

ProcessA 还创建诸如somefile_052--052.someextension- 之类的文件,我基本上想用正确的文件传递正确的变量。

任何帮助将不胜感激。

这是一些代码:

这是我需要操作的文件。我需要在变量旁边发送具有相同代码的所有文件。

所以我想发送这些文件和这个变量:059--059

目前我在工作流程中的代码是:

0 投票
1 回答
1095 浏览

docker - 如何在 docker 容器中为 Nextflow 进程生成输出目录?

我在 nextflow 脚本中运行两个进程(如下所示)。第一个过程输出一些绘图,第二个过程必须包含这些绘图以生成 pdf 文件。这两个进程都在 docker 容器 (docimage:1.0.0) 中运行。当我运行这个 nextflow 脚本时,第一个进程运行良好,但第二个进程没有完成,因为乳胶文件找不到绘图,因为包含绘图的输出目录不是在 docker 容器内创建的。然而,包含绘图的输出目录是在运行 nextflow 脚本的本地目录中生成的。有人可以建议如何从 docker 容器内的第一个进程生成输出目录,以便乳胶文件可以包含 docker 容器内的图吗?谢谢 !

0 投票
1 回答
93 浏览

nextflow - 在 Nextflow 和 Google Lifesciences 中使用常规机器和抢占式机器

考虑拥有三个依次运行的进程。第一个不能被抢占,第二个可以被抢占,第三个不能被抢占。

我的配置如下所示:

像这样使用preemptible = false,三个进程都不能被抢占。是否有可能使第二个过程可抢占?

0 投票
1 回答
223 浏览

benchmarking - 基准通道创建 NextFlow

我正在对 NextFlow 执行分散收集操作。

它如下所示:

我使用 Nextflow ( https://www.nextflow.io/docs/latest/tracing.html )提出的所有基准测试选项运行此代码: nextflow run main.nf -with-report nextflow_report -with-trace nextflow_trace -with-timeline nextflow_timeline -with-dag nextflow_dag.html

在这些跟踪文件中,我可以找到 10 个 Scatter_fastP 进程的资源和速度。但我还想衡量创建渠道的资源split_read_ch和速度。gather_fastp_ch

我试图将频道的创建包含在流程中,但我找不到使其工作的解决方案。有没有办法将通道创建包含到跟踪文件中?还是我还没有找到将这些渠道创建到流程中的方法?

预先感谢您的帮助。

0 投票
1 回答
369 浏览

groovy - 在 Nextflow 流程中尝试 catch

如何在 nextflow 中执行 try catch?

我目前正在编写一个管道,在某些条件下,我正在执行的 bash 命令可能会以 exitcode 1 退出。这使我的管道陷入停顿。我现在想使用 try catch 子句来定义一些替代行为,以防发生这种情况。

我尝试过以 groovy 方式执行此操作,但似乎不起作用:

有什么建议吗?

我可以告诉 nextflow 忽略这个错误并继续,但我宁愿学习如何做一个正确的 try catch。

0 投票
1 回答
186 浏览

nextflow - 使用命令行参数覆盖 Nextflow 参数

鉴于以下情况nextflow.config

是否可以使用命令行参数覆盖这些设置中的一个或多个。例如,如果我想指定不应该使用抢占式机器,我可以执行以下操作:

?

0 投票
1 回答
53 浏览

nextflow - Nextflow:使用 Google Life Sciences API 时指定启动映像

使用 Google Life Sciences API 时是否可以在 Nextflow 中指定 VM 的启动映像?具体来说,我说的是bootImage这里的参数: https ://cloud.google.com/life-sciences/docs/reference/rest/v2beta/projects.locations.pipelines/run#virtualmachine

编辑

原因如下:当我尝试生成几个使用 GPU 的工作人员时,我收到以下错误消息:

所以关于一些无法找到或安装的工具链。但是,此问题随机发生。有时我产生 72 个工人,一切都很好。有时我会收到此错误。

我认为更改我提到的参数可以解决这个问题,但你是对的,它可能不会。

我做了一些挖掘,但几乎找不到任何相关的东西。我能找到的唯一相关的线程是https://github.com/DataBiosphere/dsub/issues/215,但也没有发布解决方案。

0 投票
1 回答
128 浏览

java-stream - NextFlow: how to use inputStream with DSL2

Using NextFlow (DSL=2), I would like to use each line of a file as a streaming input of my workflow.

I face the problem that I can only use the "bar" process once: Process 'bar' has been already used -- If you need to reuse the same component include it with a different name or include in a different workflow context

I have also tried to create a subworkflow that takes the channel from line and call bar.

Is there a way to use streamed data as an input using Nextflow?

Note: my final goal is not just to apply an upper case function. I would like to link several complex processes on the data stream.

Thank you!

0 投票
1 回答
240 浏览

python - 如何在没有任何路径或环境相关问题的情况下通过 nextflow 在 docker 容器中运行 python 脚本?

我正在尝试使用 nextflow 和 docker 运行 python 脚本。我正在使用 dockerfile(如下所示)来创建 docker 映像。Nextflow 脚本有一个简单的 python 脚本启动。问题是当我从 docker 容器中(在交互模式下)运行相同的 python 命令时,它工作正常。但是当我使用带有 docker 容器的 nextflow 启动它时,它会引发错误。

Dockerfile:

docker 镜像的名称——pkt:2.0.0

Nextflow 脚本:

现在当我执行:

然后这会给出与 glob.glob 模块相关的错误,因为它没有列出文件,因为它必须在 docker 容器中。

但是,当我在 docker 容器中简单地运行上面的 python 代码时,它会运行得无懈可击。

只有当我将 nextflow 与 docker 结合使用时,此代码才会引发错误。我确保使用的 python 是容器内的。

问题:

  1. 有什么想法/想法让它发挥作用吗?

有趣的是,
which python --> python inside the container
BUT
的输出,$PWD 的输出 --> nextflow 启动
的目录 pwd 的输出 --> nextflow 的工作目录

  1. 当我们在nextflow进程中添加容器时,nextflow进程内部的命令(run_PKTBaseRun)不就是从容器workdir运行的吗?所以pwd的值不应该是container workdir的值而不是nextflow workdir的值吗?

所有必需的文件都已添加到 docker 映像中。

  1. 有没有办法确保 nextflow 过程中脚本部分中的命令从 docker root/workdir 运行?

这个 nextflow 和 docker 的想法是最终使用 awscli 在 aws 批处理上运行它。但是在 aws batch 上运行它之前,要确保它在本地服务器上运行良好。

期待您的建议和想法。谢谢你。

0 投票
1 回答
416 浏览

input - 多个输出到单个列表输入 - 在 Nextflow 中合并 BAM 文件

我正在尝试将通过一次执行多个对齐生成的x个 bam 文件(对y个 fastq 文件的批次)合并到 Nextflow 中的一个 bam 文件中。

到目前为止,在执行对齐和排序/索引生成的 bam 文件时,我有以下内容:

${batchFastq}.bam包含一批y个 fastq 文件的 bam 文件在哪里。

此管道完成得很好,但是,当尝试samtools merge在另一个进程 (samToolsMerge) 中对这些 bam 文件执行时,该进程在每次运行对齐时运行(在本例中为 4),而不是为收集的所有 bam 文件运行一次:

输出为:

如何仅从生成的 bam 文件中获取miniMap2Bam并运行它们samToolsMerge一次,而不是多次运行该进程?

提前致谢!

编辑:感谢 Pallie 在下面的评论中,问题是将先前进程中的 runString 和 dirString 值输入 miniMap2Bam,然后输入 samToolsMerge,导致每次传递值时该过程都会重复。

解决方案就像从 miniMap2Bam 中删除 vals 一样简单(如下):