生信自动化分析流程 nf-core 的离线运行(图文详解)
Nextflow 包括流程代码,软件,参考基因组,甚至远程数据源
由于众所周知的原因,需要在离线系统运行流程,下面我们来安装 nf-core。
Nextflow
在 Linux 系统安装好 Nextflow
下载最新版:https://github.com/nextflow-io/nextflow/releases
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
查看有哪些流程
离线下载nf-core/rnaseq
nf-core download nf-core/rnaseq
加入--singularity
,可以获取 Singularity container
什么是Singularity ?
下载下来会是一个安装包,解压即可
运行该流程,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 { |
使用自定义的参考
--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在三个位置来查找这些文件:
- 用户家目录:
~/.nextflow/config
- 分析工作目录:
nextflow.config
- 在命令中指定路径:
-c path/to/config
(可指定多个)
配置参数会依次加载并覆盖先前的值。 配置加载顺序是:
硬编码流程的默认设置 >> 用户家目录 >> 工作目录 >> 命令-c
顺序执行 >> 命令--parameter
指定参数