OmniPrep 正在积极开发中——文档与使用说明持续更新。

参数参考

OmniPrep 完整命令行接口,按类别组织。每个选项均标注类型、默认值与行为说明。

用法

OmniPrep 以容器入口点方式调用。位置参数依次为 BIDS 目录、输出目录和分析级别。

用法
omniprep-docker       [bids_dir] [output_dir] [{participant}] [options]
omniprep-singularity  [bids_dir] [output_dir] [{participant}] [options]

选项以 --flag 或 --flag value 形式传入。布尔选项(如 --resume、--bold_denoise)出现即启用;含空格的值(任务列表、图集列表、指标列表)必须用双引号包裹。

交互模式:不带任何参数运行时会启动 Streamlit 网页界面;恰好带一个参数运行时,会打印完整的帮助文本。

必需选项

--fs_license_file <PATH> 必需 字符串

FreeSurfer 许可证文件路径。这是唯一严格必需的选项。

通用选项

--tasks "anat bold dwi" 默认:"anat bold dwi"

指定要运行的预处理工作流。多个任务必须用双引号包裹并以空格分隔。

  • anat — T1w 结构像 MRI 预处理
  • bold — BOLD 功能像 fMRI 预处理
  • dwi — 弥散 MRI 预处理
--age_group {adult|pediatric|infant} 默认:adult

指定被试年龄组,以选择适龄的 MRI 预处理流程。

  • infant — 2 岁以下
  • pediatric — 2 岁至 18 岁以下
  • adult — 18 岁及以上
--participant_label "sub-001 sub-002 ..." 字符串

指定要处理的一个或多个被试。若未提供该选项,将处理 BIDS 目录中的全部被试。

--exclude_participant_label "sub-003 sub-004 ..." 字符串

指定要从处理中排除的被试。设置后这些被试将被忽略。

--subjects_dir <PATH> 默认:output_dir/derivatives/omniprep/Recon

已有的 T1w 衍生数据目录路径。

当 --tasks 中不包含 anat 但请求 BOLD 或 DWI 预处理时,此选项为必需,因为 BOLD 与 DWI 工作流依赖 T1w 图像、掩膜、表面、分割与分区等结构衍生数据。若未指定路径,默认使用 output_dir/derivatives/omniprep/Recon。

--skip_bids_validation 开关

跳过 BIDS 校验。默认情况下,OmniPrep 在处理前会先验证输入数据集是否符合 BIDS 规范。仅当你确认数据组织正确,或校验已在外部完成时才使用此选项。

--remove_temp_files 开关

删除工作流执行过程中产生的中间文件,有助于减少磁盘占用,对大规模多模态数据集尤其有用。存储空间有限时推荐启用。

--device {auto|cpu|0|1|2|...} 默认:auto

指定计算设备。

  • auto — 自动选择可用的计算设备。
  • cpu — 禁用 GPU 加速,在支持的步骤中改用 CPU 运行。
  • 0, 1, 2, ... — 在指定编号的 GPU 设备上运行支持 GPU 的步骤。
--cpus {auto|8|16|20|...} 默认:auto

工作流可使用的最大 CPU 核心数。

设为 auto 时,OmniPrep 自动检测运行环境的 CPU 核心总数并传给 Nextflow。自定义时请确保不超过实际核心数。

--memory {auto|16|24|32|64|...} 默认:auto

工作流可使用的最大内存(GB)。

设为 auto 时,OmniPrep 自动检测运行环境的可用内存,并将其中的 90% 分配给 Nextflow。

--nthreads <N> 默认:8

多线程应用程序使用的线程数。设为 0 可取消显式的多线程控制。该值设置过高反而会降低效率,因此推荐 8。

--ignore_error 开关

遇到选定的非关键错误时继续运行工作流。适用于大规模数据集,但请谨慎使用——部分被试的衍生数据可能会缺失。

--resume 开关

恢复上一次 Nextflow 运行。已完成的任务将从缓存中复用而不会重新计算。意外中断后使用此选项,可避免重跑已完成的任务。

--no_qc 开关

禁用质量控制结果的生成,包括所有 QC 文档。

图集与 ROI 级衍生选项

--atlases "DK Glasser Schaefer200P7N Brainnetome" 字符串

指定用于图集级输出的脑图集。多个图集必须用双引号包裹并以空格分隔。

内置图集:

DK DKT40 a2009s Glasser Schaefer100-1000 Brainnetome

图集级输出可能包括:

  • T1w ROI 级形态学特征
  • BOLD ROI 时间序列
  • ROI Pearson 功能连接
  • DWI 结构连接组

如使用自定义图集,需提供所需图集文件(如 GCS 或 ANNOT 文件、LUT 文件及重排 LUT 文件),并映射到 Docker 容器内的 /opt/atlas 路径。

--add_subcortical 开关

在图集级输出中加入皮层下区域。

  • 对于仅覆盖皮层的图集,OmniPrep 可追加 21 个 FreeSurfer 定义的皮层下区域。详见源码中 omniprep/atlas/LUT 下的 LUT 文件。
  • 对于自带皮层下分区的图集,需提供相应的 .gca 文件(命名为 AtlasName.gca)或 NIfTI 皮层下文件(命名为 AtlasName_space-MNI152XXX-subcortex.nii.gz,其中 MNI152XXX 为对应的 MNI 空间名),并映射到 Docker 容器内的 /opt/atlas/ 路径。
--subcortex_synthmorph_atlases "Brainnetome" 字符串

指定皮层下分区以 NIfTI 图像形式提供、需要用 SynthMorph 进行变换的图集名称。当自定义图集包含皮层下 NIfTI 文件(如 AtlasName_space-MNI152XXX-subcortex.nii.gz)时使用此选项。该文件应映射到 Docker 容器内的 /opt/atlas 路径。

BOLD fMRI 选项

BOLD 基础

--bold_task_type "task1 task2 task3 ..." 字符串

指定要处理的 BOLD 任务名,如 "rest" 或具体任务名。多个任务应用双引号包裹并以空格分隔。

示例:--bold_task_type "rest nback"

--bold_skip_frame <N> 默认:0

去噪前剔除的 BOLD 初始时间点数。常用于去除受磁共振信号未达稳态影响的前几个非稳态 volume。

--bold_sdc 开关

当存在 fieldmap 或适用的畸变校正信息时,对 BOLD fMRI 施加磁化率畸变校正(SDC)。

--bold_cifti 开关

生成 CIFTI 格式的 BOLD 输出。默认 CIFTI 输出空间为 HCP 风格的 91k 灰质坐标(grayordinate)空间。未指定此选项时默认禁用。

空间与重采样

--bold_surface_spaces <SPACE> 默认:fsaverage6

指定 BOLD 表面输出使用的表面模板空间。

支持的取值:

fsnative fsaverage fsaverage1 fsaverage2 fsaverage3 fsaverage4 fsaverage5 fsaverage6
--bold_output_space <SPACE:res-N> 默认:MNI152NLin6Asym:res-2

指定 BOLD 体素输出的模板空间与分辨率,支持可选的 cohort 与分辨率设置。

配准策略:

  • 成人:从 T1w 直接配准到指定输出空间。
  • 婴幼儿与儿童:根据 age_months 自动选择适龄的 MNIInfant 或 MNIPediatric cohort。
    • 若所选 cohort 与输出空间一致,则从 T1w 直接配准到该空间(单阶段)。
    • 否则,先从 T1w 配准到适龄 cohort,再配准到指定输出空间(两阶段)。

所有变换会被合并,使 BOLD 仅重采样一次。

年龄检测(age_months):自动从 BIDS 的 sessions.tsv(优先)或 participants.tsv 读取年龄。支持字段优先级:age_days > age_weeks > age_months > age(岁)。所有年龄统一换算为月(age_months)。

适龄模板:

  • 5 岁以下 — MNIInfant(适龄 cohort)。
  • 5 岁至 18 岁以下 — MNIPediatricAsym(适龄 cohort)。
  • 18 岁及以上 — 成人模板。

示例:

MNI152NLin6Asym:res-2 MNI152NLin2009cAsym:res-2 MNIInfant:cohort-4:res-2 MNIPediatricAsym:cohort-2:res-2

头动与 Scrubbing

--bold_confounds 开关

计算 BOLD 混淆回归量,包括头动参数、组织信号、离群点回归量以及用于 BOLD 去噪的其他 nuisance 变量。

OmniPrep 生成用于头动帧检测的 motion_outlier_XXX 参数。默认采用 Power 方法检测头动帧,帧位移(FD)阈值为 0.2。

当启用 --bold_denoise、--bold_roi_timeseries 或 --bold_roi_pearson_fc 时,此选项自动启用。

--bold_scrubbing 开关

启用后处理工作流去噪步骤中的头动帧处理,具体策略由 bold_scrubbing_strategy 变量定义。头动帧标记由混淆文件中的 motion_outlier_XXX 与 scrub_fd_XXX_0pX_mask 值定义。

--bold_scrubbing_strategy {regression|interpolation} 默认:regression

指定 scrubbing 策略。目前支持 regression 与 interpolation 两种方法。

  • regression — 在协变量回归过程中将头动帧回归掉。
  • interpolation — 使用 PCHIP 方法处理头动帧。
--bold_fd_type {power|jenkinson} 默认:power

指定用于检测头动帧的 FD 类型。目前支持 power 与 jenkinson 两种方法。

  • power — FD 值存储在混淆文件的 framewise_displacement 字段。
  • jenkinson — 该值存储在混淆文件的 rmsd 字段。
--bold_fd_threshold <N> 默认:0.2

指定 FD 阈值。超过该阈值的时间帧将被视为头动帧。

--bold_scrubbing_prev <N> 默认:0

每个检出的头动离群帧之前额外标记为离群点的 volume 数。

--bold_scrubbing_later <N> 默认:0

每个检出的头动离群帧之后同样标记为离群点的 BOLD volume 数。设为 0 表示不向后扩展。

去噪

--bold_denoise 开关

基于生成的混淆回归量对 BOLD 进行去噪。根据所选选项,可包括 nuisance 回归、去趋势、时间滤波以及初始时间点剔除(--bold_skip_frame)。

--bold_denoise_strategy <STRATEGY> 默认:motion24_wm_csf

指定 BOLD 去噪策略。

  • motion6 — 六个刚体头动参数:trans_x、trans_y、trans_z、rot_x、rot_y、rot_z。
  • motion24 — Friston-24 头动模型:六个头动参数及其时间导数、平方项与平方导数。
  • motion24_wm_csf — Friston-24 头动回归量,加上白质与脑脊液回归量(含导数与平方项)。
  • motion24_wm_csf_gsr — Friston-24 头动回归量,加上白质、脑脊液与全信号回归量。包含全信号回归(GSR),使用时应有明确的方法学依据或敏感性分析支持。
  • acompcor6_motion24 — 前六个解剖学 CompCor 成分加上 Friston-24 头动回归量。
  • acompcor6_motion24_wm_csf — 前六个解剖学 CompCor 成分加上 Friston-24 头动、白质与脑脊液回归量。
--bold_denoise_n_compcor <N> 默认:6

选择基于 aCompCor 的去噪策略时使用的解剖学 CompCor 成分数。例如设为 6 时使用前六个 aCompCor 成分。此参数仅对包含 acompcor 的策略生效。

--bold_filter_mode {bandpass|cosine|none} 默认:bandpass

指定 BOLD 去噪时使用的时间滤波模式。

  • bandpass — 使用 --bold_bandpass 施加显式时间带通滤波,不使用 fMRIPrep 风格的 cosine 回归量。
  • cosine — 使用 fMRIPrep 风格的 cosine 回归量去除高频漂移,禁用显式高通/低通滤波。
  • none — 不使用 cosine 回归量,也不施加显式时间滤波。
--bold_bandpass "0.01-0.08" 默认:"0.01-0.08"

时间带通频率范围(Hz)。仅在 --bold_filter_mode 设为 "bandpass" 时生效。

示例:--bold_bandpass 0.01-0.08 表示高通 0.01 Hz、低通 0.08 Hz。

--bold_smooth_fwhm "0" 默认:"0"

空间平滑核大小(毫米),以半高全宽(FWHM)表示。设为 "0" 可禁用平滑。可提供多个值,从同一去噪后 BOLD 图像生成多个不同平滑程度的输出。

示例:--bold_smooth_fwhm "0"、--bold_smooth_fwhm "4"、--bold_smooth_fwhm "4 6 8"

指标与 ROI

--bold_metrics "reho alff malff zalff falff int" 字符串

指定要计算的一个或多个 BOLD 指标。多个指标应以空格分隔的字符串提供。

  • reho — 局部一致性(ReHo),使用 Kendall's W 度量相邻体素时间序列的局部同步性。
  • alff — 配置频段内的低频振幅(ALFF)。
  • malff — 均值归一化 ALFF,由体素级 ALFF 除以分析掩膜内的平均 ALFF 得到。
  • zalff — Z 分数标准化 ALFF,对分析掩膜内的体素级 ALFF 值做标准化。
  • falff — 分数低频振幅(fALFF),为低频振幅与全频段振幅之比。
  • int — 固有神经时间尺度,由 BOLD 信号的时间自相关估计。

注意:ReHo 使用剔除头动帧后的时间序列计算;而 ALFF 系列指标(及其衍生指标)与 INT 使用完整序列(不剔除头动帧)计算。

--bold_alff_bandpass "0.01-0.08" 默认:"0.01-0.08"

指定 ALFF/fALFF 频域计算时提取低频振幅的频率范围。

注意这与 --bold_bandpass 不同——后者用于 BOLD 信号的时域带通滤波;--bold_alff_bandpass 仅用于 ALFF/fALFF 频谱计算。

--bold_roi_metrics 开关

启用基于图集的 BOLD 指标 ROI 汇总。对每个配置的脑图集,在各 ROI 内聚合体素级指标值,并保存为区域级的表格输出。未启用此选项时仅生成体素级指标图。

--bold_roi_timeseries 开关

从去噪后的 BOLD 图像中提取基于图集的 ROI 时间序列。需要 --atlas;启用 --bold_roi_pearson_fc 时自动启用。

输出保存为 N × T 矩阵(行 = ROI,列 = 时间点)。保存的 ROI 时间序列文件不含表头、索引或 ROI 标签列。

注意:虽然时间序列保留完整时间轴,但 z 分数标准化时,各 ROI 的均值与标准差仅使用未被判定为头动伪影的有效帧计算。

--bold_roi_pearson_fc 开关

在排除被标记为异常头动的时间点后,计算两个有效 ROI 时间序列之间的 Pearson 相关系数,构建静态功能连接矩阵。

此选项自动启用 --bold_roi_timeseries、--bold_denoise 与 --bold_confounds。

输出为 N × N 的 ROI 功能连接矩阵,不含表头或 ROI 标签。

--bold_roi_fc_censoring 开关

控制计算静态功能连接时是否物理剔除(censor)头动帧。若省略,则在完整时间序列上计算相关矩阵,头动帧按指定的 --bold_scrubbing_strategy 处理。

--bold_roi_fc_fisherz 开关

保存经 Fisher-z 变换的 Pearson FC 值,而非原始 Pearson 相关系数。推荐用于组级统计分析、边级统计检验、回归模型或组平均 FC 计算。若将 FC 矩阵直接用作图边权重(如机器学习或 GNN 模型),使用原始 Pearson 相关系数可能更合适。

DWI 选项

DWI 基础

--dwi_task_type "task1 task2 task3 ..." 字符串

当存在多个 DWI 采集时,指定要处理的 DWI 任务或采集标签。多个值应用双引号包裹并以空格分隔。

--dwi_sdc_method {auto|pepolar|fieldmap|synb0|none} 默认:auto

指定 DWI 的磁化率畸变校正(SDC)方法。

  • auto — 根据 BIDS 元数据与被试年龄自动选择最佳可用方法。
    • 成人:pepolar > fieldmap > synb0 > none。
    • 婴幼儿/儿童:pepolar > fieldmap > none。
  • pepolar — 使用反向相位编码 b0 图像进行校正(FSL TOPUP)。
  • fieldmap — 使用基于 GRE 的场图进行畸变校正。
  • synb0 — 使用 Synb0-DISCO 合成无畸变 b0 图像进行校正。仅支持成人。
  • none — 禁用磁化率畸变校正。
--dwi_volume_res {native|02|03|...} 默认:02

指定 DWI 体素输出分辨率。

  • native — 保留 DWI 原生分辨率。
  • 01, 02, 03, ... — 将 DWI 衍生数据重采样到指定的各向同性分辨率(毫米)。

DTI 与 CSD

--dwi_cal_dti 开关

计算弥散张量成像(DTI)指标。

当通过 --fiber_track_algorithm "tensor_prob" 请求基于张量的纤维追踪,或通过 --dwi_fa_connectome 请求 FA 加权连接组时自动启用。

--dwi_dti_metrics "fa md ad rd cl cp cs" 字符串

指定要计算的 DTI 指标。此参数仅控制生成哪些 DTI 指标——只有当 --dwi_cal_dti 启用(或被依赖选项自动启用)时才会计算 DTI 指标。

指标说明
fa各向异性分数(fractional anisotropy)
md平均弥散系数(mean diffusivity)
ad轴向弥散系数(axial diffusivity)
rd径向弥散系数(radial diffusivity)
cl线性各向异性(linear anisotropy)
cp扁平各向异性(planar anisotropy)
cs球形各向异性(spherical anisotropy)
--dwi_cal_csd 开关

使用约束球面反卷积(CSD)估计纤维方向分布(FOD)。

选择基于 FOD 的追踪算法(ifod2、sd_stream)时自动启用。因此,只要指定了 --fiber_track_algorithm "ifod2"、"sd_stream" 或 "ifod2 sd_stream" 之一,而未显式指定 --dwi_cal_csd,OmniPrep 会自动启用 CSD 计算。

--dwi_csd_metrics "wmfod" 字符串

指定启用 CSD 计算时生成的相关输出。典型输出包括白质纤维方向分布及相关的组织响应成分,具体取决于当前实现。

纤维追踪

--dwi_fiber_track 开关

执行全脑纤维追踪。启用 --dwi_create_connectome、--dwi_fa_connectome 或 --fiber_track_sift2 任一项时自动启用。若启用追踪但未指定算法,OmniPrep 默认使用 ifod2。

--fiber_track_algorithm "ifod2" 默认:"ifod2"

指定纤维追踪算法。可用双引号包裹并以空格分隔,同时指定多个追踪算法。

  • ifod2 — 基于纤维方向分布的二阶积分(iFOD2)概率性追踪。需要 CSD。
  • sd_stream — 基于球面反卷积的确定性 FOD 流线追踪。需要 CSD。
  • tensor_prob — 基于张量的概率性追踪。需要 DTI。

示例:--fiber_track_algorithm "ifod2"、"ifod2 sd_stream"、"ifod2 sd_stream tensor_prob"

--fiber_track_select <N> 默认:10000000

纤维追踪时生成或筛选的流线数量。

纤维追踪目前基于 CPU,可能是 OmniPrep 中最耗时的步骤之一。

  • 常规处理:500 万条流线在计算成本与追踪质量之间取得较好平衡。
  • 更高质量连接组:计算时间充足时可使用 1000 万条流线。
  • 测试/调试:可降低该值,如 --fiber_track_select 200000。
--fiber_track_minlength <N> 默认:5

流线最小长度(毫米)。

--fiber_track_maxlength <N> 默认:250

流线最大长度(毫米)。

--fiber_track_sift2 开关

在纤维追踪后应用 SIFT2 估计流线权重。此选项自动启用 --dwi_fiber_track。注意:若 --fiber_track_algorithm 中不包含 ifod2,OmniPrep 当前会使用基于 iFOD2 的追踪来生成 SIFT2 加权衍生数据。

连接组

--dwi_create_connectome 开关

基于纤维追踪输出构建基于图集的结构连接矩阵。需要通过 --atlases "DK Brainnetome Glasser ..." 指定图集。

自动启用 --dwi_fiber_track 与 --dwi_cal_csd。注意:若 --fiber_track_algorithm 中不包含 ifod2,OmniPrep 当前会基于 iFOD2 追踪构建结构连接组。

--dwi_fa_connectome 开关

计算 FA 加权的结构连接矩阵。自动启用 --dwi_cal_dti、--dwi_create_connectome 与 --dwi_fiber_track。

--tck2conn_scale_invnodevol 开关

在结构连接组构建时施加节点体积倒数缩放。该选项根据相连节点的体积倒数缩放连接权重,可降低 ROI 大小对连接估计的影响。

示例

对所有被试运行多模态预处理

bash
omniprep-docker /data /out participant \
  --fs_license_file /opt/freesurfer/license.txt \
  --tasks "anat bold dwi" \
  [options]

使用已有结构衍生数据,仅对选定被试运行 BOLD 预处理

bash
omniprep-docker /data /out participant \
  --fs_license_file /opt/freesurfer/license.txt \
  --tasks "bold" \
  --subjects_dir /out/Recon \
  --participant_label "sub-001 sub-002" \
  [options]

完整 BOLD 衍生数据:去噪、指标与功能连接组

bash
omniprep-docker /data /out participant \
  --fs_license_file /opt/freesurfer/license.txt \
  --tasks "bold" \
  --bold_task_type "rest" \
  --bold_denoise \
  --bold_denoise_strategy motion24_wm_csf \
  --bold_filter_mode bandpass \
  --bold_bandpass "0.01-0.08" \
  --bold_metrics "reho alff falff" \
  --atlases "DK Brainnetome" \
  --bold_roi_pearson_fc \
  --bold_roi_fc_fisherz

DWI:CSD 纤维追踪与结构连接组

bash
omniprep-docker /data /out participant \
  --fs_license_file /opt/freesurfer/license.txt \
  --tasks "dwi" \
  --dwi_sdc_method auto \
  --fiber_track_algorithm "ifod2" \
  --fiber_track_select 10000000 \
  --atlases "DK Brainnetome" \
  --dwi_create_connectome \
  --tck2conn_scale_invnodevol