09-Nextflow Configuration(1)

Configuration file

当启动管道脚本时,Nextflow在多个位置查找配置文件。由于每个配置文件都可能包含冲突的设置,因此对源进行排序,以决定应用哪些设置。所有可能的配置源报告如下,按优先级列出:

  • 命令行中指定的参数(--something value)
  • 使用 -params-file 选项提供的参数
  • 使用 -c my_config 选项指定的配置文件
  • 当前目录下名为nextflow.config的配置文件
  • 工作流项目目录中名为 nextflow.config 的配置文件
  • 配置文件 $HOME/.nextflow/config
  • 在管道脚本本身中定义的值(例如 main.nf)

当使用多个指定配置的方法时,它们将被合并,以便第一个方法中的设置覆盖可能出现在第二个方法中的相同设置,以此类推。

Tip
如果你想忽略任何默认配置文件,只使用自定义配置文件,可以使用命令行选项-C <config file>。

Config syntax

Nextflow配置文件是一个简单的文本文件,包含一组使用语法定义的属性:

name = value

请注意,字符串值需要用引号括起来,而数字和布尔值(true, false)则不用。还要注意,值是有类型的,例如,1与'1'不同,因为第一个被解释为数字1,而后者被解释为字符串值。

Config Variables

通过使用常用的propertyName或{expression}语法,配置属性可以作为配置文件本身的变量使用。

propertyOne = 'world'
anotherProp = "Hello $propertyOne"
customPath = "$PATH:/my/app/folder"

请注意,使用String interpolation的通常规则,因此包含变量引用的字符串必须用双引号字符而不是单引号字符包装。

同样的机制允许您访问在托管系统中定义的环境变量。在Nextflow配置文件中没有定义名称的任何变量都应该是对具有该名称的环境变量的引用。因此,在上面的例子中,属性customPath被定义为字符串/my/app/文件夹被追加到的当前系统路径。

Config comments

配置文件使用与Groovy或Java编程语言使用的注释相同的约定。因此,使用//注释一行或
/*
..
..
*/
在多行上注释一个块。

Config include

一个配置文件可以包含一个或多个使用关键字include econfig的配置文件。例如:

process.executor = 'sge'
process.queue = 'long'
process.memory = '10G'

includeConfig 'path/foo.config'

当使用相对路径时,它将根据包含文件的实际位置解析。


Config scopes

见《09-Nextflow Configuration(2)》


Config profiles

配置文件可以包含一个或多个概要文件的定义。配置文件是一组配置属性,可以通过使用-profile命令行选项在启动管道执行时激活/选择这些属性。

配置概要文件通过使用特殊范围概要文件定义,该范围概要文件使用公共前缀将属于同一概要文件的属性分组。例如:

profiles {

    standard {
        process.executor = 'local'
    }

    cluster {
        process.executor = 'sge'
        process.queue = 'long'
        process.memory = '10GB'
    }

    cloud {
        process.executor = 'cirrus'
        process.container = 'cbcrg/imagex'
        docker.enabled = true
    }

}

这个配置定义了三个不同的配置文件:标准、集群和云,它们根据目标运行时平台设置不同的流程配置策略。按照约定,当用户没有指定其他概要文件时,将隐式使用标准概要文件。

Tip
可以指定两个或多个配置文件,使用逗号分隔配置文件名称,例如:
nextflow run <your script> -profile standard,cloud

####################################################
!Danger
在配置文件中使用概要文件特性时,不要在概要文件上下文中和外部设置相同作用域的属性。例如:

process.cpus = 1

profiles {
  foo {
    process.memory = '2 GB'
  }

  bar {
    process.memory = '4 GB'
  }
}

在上面的示例中,process.cpus属性没有正确应用,因为process范围也在foo和bar配置文件上下文中使用。
####################################################


Environment variables

下面的环境变量控制Nextflow运行时及其使用的Java虚拟机的配置。

Name Description
NXF_HOME Nextflow 主目录(默认值:$HOME/.nextflow)
NXF_VER 定义要使用的 Nextflow 版本
NXF_ORG 查找托管存储库时的默认组织前缀(默认:nextflow-io)
NXF_GRAB 提供从 Maven 存储库服务下载的额外运行时依赖项
NXF_OPTS 为 Java 和 Nextflow 运行时提供额外的选项。它必须是 -Dkey[=value] 属性的空白分隔列表
NXF_CLASSPATH 允许使用额外的 JAR 文件或类文件夹扩展 Java 运行时类路径
NXF_ASSETS 定义存储下载的管道存储库的目录(默认值:$NXF_HOME/assets)
NXF_PID_FILE Nextflow 在后台启动时保存进程 PID 的文件的名称
NXF_WORK 存储工作文件的目录(通常是您的临时目录)
NXF_TEMP 存放临时文件的目录
NXF_DEBUG 定义脚本调试级别: 1 在任务日志文件中转储任务环境变量; 2 启用命令脚本执行跟踪; 3 启用命令包装器执行跟踪
NXF_EXECUTOR 定义默认进程执行器,例如sge
NXF_CONDA_CACHEDIR 存储 Conda 环境的目录。使用计算集群时,它必须是所有计算节点都可以访问的共享文件夹
NXF_SINGULARITY_CACHEDIR 存储远程 Singularity 图像的目录。使用计算集群时,它必须是所有计算节点都可以访问的共享文件夹
NXF_CHARLIECLOUD_CACHEDIR 存储远程 Charliecloud 图像的目录。使用计算集群时,它必须是所有计算节点都可以访问的共享文件夹
NXF_JAVA_HOME 定义用于运行 Nextflow 的 Java VM 安装的路径位置。如果已定义,此变量将覆盖 JAVA_HOME 变量
NXF_OFFLINE 当 true 禁用从远程存储库自动下载和更新项目(默认值:false)
NXF_CLOUD_DRIVER 如果未在配置文件中指定或作为命令行选项(aws 或 google),则定义要使用的默认云驱动程序
NXF_ANSI_LOG 启用/禁用 ANSI 控制台输出(检测到 ANSI 终端时默认为 true)
NXF_ANSI_SUMMARY 启用/禁用 ANSI 完成摘要:true/false(默认值:如果执行持续时间超过 1 分钟,则打印摘要)
NXF_SCM_FILE 定义 SCM 配置文件的路径位置(需要 20.10.0 或更高版本)
NXF_PARAMS_FILE 定义管道参数文件的路径位置(需要 20.10.0 或更高版本)
JAVA_HOME 定义用于运行 Nextflow 的 Java VM 安装的路径位置
JAVA_CMD 定义用于启动 Nextflow 的 Java 二进制命令的路径位置
HTTP_PROXY 定义 HTTP 代理服务器
HTTPS_PROXY 定义 HTTPS 代理服务器
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容