Nextflow 包括流程代码,软件,参考基因组,甚至远程数据源

由于众所周知的原因,需要在离线系统运行流程,下面我们来安装 nf-core。

Nextflow

在 Linux 系统安装好 Nextflow

下载最新版:https://github.com/nextflow-io/nextflow/releases

mark

chmod +x nextflow-20.04.1-all

./nextflow-20.04.1

安装好后,修改配置文件禁止Nextflow自动更新

vim ~/.bashrc

在最末尾加入

export NXF_OFFLINE='TRUE'

source ~/.bashrc

流程代码

一般,一个离线流程包括源码,软件和配置文件。nf-core 提供了一个辅助工具 helper tool 帮助我们搭建。

运行nf-core list查看有哪些流程

mark

离线下载nf-core/rnaseq

nf-core download nf-core/rnaseq

加入--singularity ,可以获取 Singularity container

什么是Singularity ?

https://singularity.lbl.gov/

下载下来会是一个安装包,解压即可

运行该流程,nextflow run <directory>

https://nf-co.re/tools#downloading-pipelines-for-offline-use

使用 iGenomes 参考基因组

一些流程需要参考基因组和 AWS-iGenomes 的集成。这里需要下载这些相关的离线资源。

Illumina iGenomes

为了更容易的使用参考基因组,Illumina 开发了一个名为 iGenomes 的项目。

iGenomes:<https://support.illumina.com/sequencing/sequencing_software/igenome.html

nf-core 将iGenomes在 AWS S3上,创建了AWS-iGenomes

下载:https://ewels.github.io/AWS-iGenomes/

一般情况,使用--genome GRCh38 即可自动下载

为了减少时间和带宽的浪费,最好做个本地资源。然后通过设置指定参考基因组的位置。

params.igenomes_base = '/path/to/data/igenomes/'

使用

使用--genome GRCh38 就会调用本地资源。

自定义参考

如果你不能使用 AWS-iGenomes ,可以在命令行上提供参考基因组路径。

配置自定义参考

如果重复使用相同的引用,则将这些路径保存在nextflow配置文件中会更方便。支持AWS-iGenomes的管道也可以配置为支持自定义基因组ID和路径。

params {
genomes {
'YOUR-ID' {
fasta = '<PATH TO FASTA FILE>/genome.fa'
}
'OTHER-GENOME' {
// [..]
}
}
// Optional - default genome. Ignored if --genome 'OTHER-GENOME' specified on command line
genome = params {
genomes {
'YOUR-ID' {
fasta = '<PATH TO FASTA FILE>/genome.fa'
}
'OTHER-GENOME' {
// [..]
}
}
// Optional - default genome. Ignored if --genome 'OTHER-GENOME' specified on command line
genome = 'YOUR-ID'
}
使用自定义的参考

--genome YOUR-ID

流程配置

Nextflow 特性之一是可以在几乎任何计算框架下运行。支持高性能计算框架 HPC execution schedulers (包括Slurm,SGE,PBS,LSF)和云计算框架(AWS Batch,Google Cloud)。

每个nt-core 流程都配了合理的默认值,根据需要覆盖相应的值即可。

最好不要通过修改流程源码来配置nf-core流程。如果编辑源码会导致更新不可用,同时也会失去可重复性。

流程可以通过命令-profile来执行配置文件。可以在逗号分割的列表中指定多个配置文件。或者,你可以创建自己的配置文件。

大多数用户需要指定executor 来告诉 Nextflow 如何提交任务给 job scheduler (e.g. SGE, LSF, SLURM, PBS, AWS Batch etc.) 。这个步骤可以通过配置文件来完成。

如何指定 Executor

https://www.nextflow.io/docs/latest/executor.html#executor-page

基础配置

每个 nf-core 流程都会附带有docker,singularity和conda的配置文件。使用这些文件就可以指导流程运行相关软件。

共享配置

如果使用其他人共享的系统,最好去使用https://github.com/nf-core/configs 的配置文件。这些是nf-core运行时所加载的配置。

您可能会发现您的系统已经有一个共享的配置文件(请参阅https://github.com/nf-core/configs)。如果没有,请按照存储库自述文件中的说明添加集群。

自定义配置

如果您是唯一运行此管道的人,则可以创建一个本地配置文件并使用它。 Nextflow在三个位置来查找这些文件:

  1. 用户家目录: ~/.nextflow/config
  2. 分析工作目录: nextflow.config
  3. 在命令中指定路径: -c path/to/config (可指定多个)

配置参数会依次加载并覆盖先前的值。 配置加载顺序是:

硬编码流程的默认设置 >> 用户家目录 >> 工作目录 >> 命令-c顺序执行 >> 命令--parameter指定参数

更多参数:https://www.nextflow.io/docs/latest/config.html