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

nextflow - 使用 nextflow 拆分配对的 fasta 文件

我有一对 fasta 文件,我想将其拆分为更小的块以并行处理。

第一个fastareads.fasta包含DNA序列

第二个fastareads.fasta_values包含一个由空格分隔的值序列,对应于reads.fasta(以相同顺序)的DNA序列

我想获得几对较小的文件。

目前,我尝试将它们配对,然后拆分它们,但这只会拆分配对的第一个文件。

输出:

虽然我想要这样的东西

我认为类似的事情fastq对于双端读取的文件是可行的,但我不知道如何处理fasta文件。

任何帮助表示赞赏,
谢谢。

0 投票
1 回答
850 浏览

nextflow - 如何收集 Nextflow 流程的有序输出?

我想以与输入相同的顺序从 Nextflow 过程中收集结果。

我知道我可以简单地通过所有流程传递来自所有渠道的值。这将确保对一起传递给所有进程。但是,当您开始添加多个进程时,该解决方案效果不佳,因为它破坏了这些进程并行运行的能力。例如,在提供的示例代码中,如果您要添加一个 add_twenty 进程,然后从 add_ten、add_twenty 和 vals2 收集输出。

我玩过的另一种可能的解决方案是为原始通道中的每个值添加一个键,这实际上将原始通道转换为字典(即哈希)。但我无法让它发挥作用。如有必要,我可以提供一个例子。

我创建了一个玩具示例,其中创建了两个通道,将一个发送到一个进程,然后将处理后的输出和一个原始通道发送到一个新进程。

我希望看到的是这样的数字匹配:

即使这些线是混乱的,只要对持续存在就可以了。例如,

但是,我看到的是这样的:

0 投票
1 回答
77 浏览

bioinformatics - 在 Nextflow 中使用 Mutect2 容器时减速

我试图在一个样本上运行 MuTect2,在我使用 java 的机器上运行大约需要 27 分钟。

如果我使用几乎相同的代码,但在 Nextflow 内部并使用 GATK3:3.6 docker 容器来运行 Mutect,则需要多花 7 分钟,这似乎没有明显的原因。

在 Ubuntu 18.04 上运行,肿瘤和正常样本来自 Oncomine 面板。肿瘤是4.1G,正常是1.1G。我认为时间可能会花在将数据复制到容器上,但 7-8 分钟似乎太长了。也可能是复制参考文件吗?

bai_ch是引入肿瘤和正常索引文件的通道

我唯一的想法是创建自己的 docker 以方便使用参考文件,这可能会节省复制它们的时间?我希望 nextflow+container 版本的运行速度仅比 CLI 版本稍慢。

0 投票
1 回答
511 浏览

nextflow - bwa mem 进程未在前一个进程的所有输出文件上运行的问题

我正在构建一个 nextflow 管道,通过测序 (GBS) 数据(单端 Illumina)进行映射和变异调用基因分型。我的大部分内容都基于 nf-core/eager 管道,因为它有许多我想合并到我的管道中的工具。我已经在样品上测试了管道,它工作得很好。但是,当我尝试在更多样本上运行管道时,它会很好地提取读取的文件并使用 fastp 修剪它们。但是,当我尝试在修剪后的文件上运行 bwa mem 时,它只能在修剪后的 fastq 文件之一上工作,它似乎是随机选择的,这意味着下游进程只能在一个文件上运行。我尝试了一些不同的东西,但似乎都不起作用。我猜这可能与 fasta 参考/bwa 指数不是价值渠道有关?有什么建议么?

我希望 bwa_align 进程在本示例中由 fastp 进程生成的两个文件上运行

0 投票
3 回答
2747 浏览

docker - Nextflow+Singularity:没有这样的文件或目录,即使文件存在

我正在尝试运行这个管道,它使用 Nextflow 实现并使用 Docker 容器。不幸的是,我不能使用 Docker,因为它不兼容 HPC(没有 sudo),所以我使用 Singularity 而不是 Docker。但是,似乎路径未正确安装,因为我收到此错误:

但是,当我查看路径时,该文件确实存在:

这是我的配置:

我试图为此找到解决方案,我唯一能找到的是autoMounts = true选项(上面已注释掉),这会导致管道在启用时甚至找不到它自己的 lua 脚本:

Edit1:我听从了 tsnowlan 的建议并添加--debugsingularity.engineOptions. 但是,有问题的路径似乎已安装:

Edit2:我修复了错误的安装点,这导致了另一个错误:

我猜容器内的权限设置不正确。

0 投票
2 回答
109 浏览

google-cloud-platform - 默认附加 500 GB 永久磁盘

我正在尝试使用 Nextflow 在 GCP 上运行工作流。问题是,每当创建一个实例来运行一个进程时,它都会连接两个磁盘。第一个启动盘(默认 10GB)和一个额外的 'google-pipelines-worker' 磁盘(默认 500GB)。当我并行运行多个进程时,会创建多个 VM,每个 VM 都附加了一个 500GB 的附加磁盘。有没有办法自定义 500GB 默认值?

nextflow.config

主文件

提供的代码只是一个示例。基本上,这将创建一个附加了 500GB 标准永久性磁盘的 VM 实例。

0 投票
1 回答
1060 浏览

python - 在脚本之外操作 Nextflow 变量

我有一个进程iterate_list。进程 iterate_list 获取一个列表并对列表中的每个项目执行一些操作。运行脚本时,它需要两个输入。它需要处理的列表和项目(它作为消费者从 rabbitmq 队列中获取)

目前,我给了一个 python 脚本整个列表,它遍历每个执行处理(作为一个大块)并在完成后返回。这很好,但是,如果系统重新启动,它会重新启动。

我想知道,我怎样才能使它每次我的 python 脚本处理一个项目时,它返回该项目,我将它从列表中删除,然后将新列表传递给进程。因此,在系统重新启动/崩溃的情况下,nextflow 知道它在哪里停止并可以从那里继续。

基本上,进程“iterate_list”从消息代理的队列中获取一个“项目”。进程 iterate_list 应该类似于:

因此,对于每一个,它都会运行,删除它刚刚处理的项目,然后重新启动一个新列表。

0 投票
1 回答
202 浏览

scientific-computing - 使用 nextflow 创建奇点容器

我正在尝试构建一个安装了 nextflow 的奇异容器。完成构建后,我将其安装在目录中,并将其安装为 ROOT。当我尝试运行容器时,它失败了,因为我不是 root。我查看了最佳实践,它说以下内容:

始终将包、程序、数据和文件安装到操作系统位置(例如,不是 /home、/tmp 或任何其他可能经常绑定的目录)。

我的定义文件:

运行它让我“权限被拒绝”我正在运行奇点 3.4.0-1

不确定我是否应该考虑使用绑定路径、叠加层或其他东西?

0 投票
2 回答
202 浏览

groovy - Nextflow 平面图未按预期执行

我有一本字典“数据”。我需要将一个键值对解析为一个进程。最终结果应如下所示:

我已经编写了这段代码,它使用硬编码值而不是变量“it”,我将在代码中指向它。

当前输出获取正确的键,但使用硬编码键的值:

为什么我这样做时它不起作用params: data.c.it.params

我得到输出:Cannot get property 'params' on null object

我试过了toString(it)

此外,一旦我得到输出,如何将这个 k/v 对传递给一个进程,并为每个 k/v 对生成一个新进程?

当运行这个过程应该产生:

0 投票
1 回答
110 浏览

awk - How to inlcude functions from another file in a awk script using nextflow

As per the Nextflow documentation I put my awk scripts in the bin/ folder. Some scripts share the same functions so I wrote a file with only awk functions that I usually include using:

But because the script runs in the nextflow work directory the relative path doesn't work anymore. I tried to put the library file in bin/ too but it didn't work as well.

How should I proceed? I don't want to copy/paste functions in the scripts, I also don't want to hardcode an absolute path.