用法
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 网页界面;恰好带一个参数运行时,会打印完整的帮助文本。
必需选项
FreeSurfer 许可证文件路径。这是唯一严格必需的选项。
通用选项
指定要运行的预处理工作流。多个任务必须用双引号包裹并以空格分隔。
anat— T1w 结构像 MRI 预处理bold— BOLD 功能像 fMRI 预处理dwi— 弥散 MRI 预处理
指定被试年龄组,以选择适龄的 MRI 预处理流程。
infant— 2 岁以下pediatric— 2 岁至 18 岁以下adult— 18 岁及以上
指定要处理的一个或多个被试。若未提供该选项,将处理 BIDS 目录中的全部被试。
指定要从处理中排除的被试。设置后这些被试将被忽略。
已有的 T1w 衍生数据目录路径。
当 --tasks 中不包含 anat 但请求 BOLD 或 DWI 预处理时,此选项为必需,因为 BOLD 与 DWI 工作流依赖 T1w 图像、掩膜、表面、分割与分区等结构衍生数据。若未指定路径,默认使用 output_dir/derivatives/omniprep/Recon。
跳过 BIDS 校验。默认情况下,OmniPrep 在处理前会先验证输入数据集是否符合 BIDS 规范。仅当你确认数据组织正确,或校验已在外部完成时才使用此选项。
删除工作流执行过程中产生的中间文件,有助于减少磁盘占用,对大规模多模态数据集尤其有用。存储空间有限时推荐启用。
指定计算设备。
auto— 自动选择可用的计算设备。cpu— 禁用 GPU 加速,在支持的步骤中改用 CPU 运行。0, 1, 2, ...— 在指定编号的 GPU 设备上运行支持 GPU 的步骤。
工作流可使用的最大 CPU 核心数。
设为 auto 时,OmniPrep 自动检测运行环境的 CPU 核心总数并传给 Nextflow。自定义时请确保不超过实际核心数。
工作流可使用的最大内存(GB)。
设为 auto 时,OmniPrep 自动检测运行环境的可用内存,并将其中的 90% 分配给 Nextflow。
多线程应用程序使用的线程数。设为 0 可取消显式的多线程控制。该值设置过高反而会降低效率,因此推荐 8。
遇到选定的非关键错误时继续运行工作流。适用于大规模数据集,但请谨慎使用——部分被试的衍生数据可能会缺失。
恢复上一次 Nextflow 运行。已完成的任务将从缓存中复用而不会重新计算。意外中断后使用此选项,可避免重跑已完成的任务。
禁用质量控制结果的生成,包括所有 QC 文档。
图集与 ROI 级衍生选项
指定用于图集级输出的脑图集。多个图集必须用双引号包裹并以空格分隔。
内置图集:
图集级输出可能包括:
- T1w ROI 级形态学特征
- BOLD ROI 时间序列
- ROI Pearson 功能连接
- DWI 结构连接组
如使用自定义图集,需提供所需图集文件(如 GCS 或 ANNOT 文件、LUT 文件及重排 LUT 文件),并映射到 Docker 容器内的 /opt/atlas 路径。
在图集级输出中加入皮层下区域。
- 对于仅覆盖皮层的图集,OmniPrep 可追加 21 个 FreeSurfer 定义的皮层下区域。详见源码中
omniprep/atlas/LUT下的 LUT 文件。 - 对于自带皮层下分区的图集,需提供相应的
.gca文件(命名为AtlasName.gca)或 NIfTI 皮层下文件(命名为AtlasName_space-MNI152XXX-subcortex.nii.gz,其中MNI152XXX为对应的 MNI 空间名),并映射到 Docker 容器内的/opt/atlas/路径。
指定皮层下分区以 NIfTI 图像形式提供、需要用 SynthMorph 进行变换的图集名称。当自定义图集包含皮层下 NIfTI 文件(如 AtlasName_space-MNI152XXX-subcortex.nii.gz)时使用此选项。该文件应映射到 Docker 容器内的 /opt/atlas 路径。
BOLD fMRI 选项
BOLD 基础
指定要处理的 BOLD 任务名,如 "rest" 或具体任务名。多个任务应用双引号包裹并以空格分隔。
示例:--bold_task_type "rest nback"
去噪前剔除的 BOLD 初始时间点数。常用于去除受磁共振信号未达稳态影响的前几个非稳态 volume。
当存在 fieldmap 或适用的畸变校正信息时,对 BOLD fMRI 施加磁化率畸变校正(SDC)。
生成 CIFTI 格式的 BOLD 输出。默认 CIFTI 输出空间为 HCP 风格的 91k 灰质坐标(grayordinate)空间。未指定此选项时默认禁用。
空间与重采样
指定 BOLD 表面输出使用的表面模板空间。
支持的取值:
指定 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 岁及以上 — 成人模板。
示例:
头动与 Scrubbing
计算 BOLD 混淆回归量,包括头动参数、组织信号、离群点回归量以及用于 BOLD 去噪的其他 nuisance 变量。
OmniPrep 生成用于头动帧检测的 motion_outlier_XXX 参数。默认采用 Power 方法检测头动帧,帧位移(FD)阈值为 0.2。
当启用 --bold_denoise、--bold_roi_timeseries 或 --bold_roi_pearson_fc 时,此选项自动启用。
启用后处理工作流去噪步骤中的头动帧处理,具体策略由 bold_scrubbing_strategy 变量定义。头动帧标记由混淆文件中的 motion_outlier_XXX 与 scrub_fd_XXX_0pX_mask 值定义。
指定 scrubbing 策略。目前支持 regression 与 interpolation 两种方法。
regression— 在协变量回归过程中将头动帧回归掉。interpolation— 使用 PCHIP 方法处理头动帧。
指定用于检测头动帧的 FD 类型。目前支持 power 与 jenkinson 两种方法。
power— FD 值存储在混淆文件的framewise_displacement字段。jenkinson— 该值存储在混淆文件的rmsd字段。
指定 FD 阈值。超过该阈值的时间帧将被视为头动帧。
每个检出的头动离群帧之前额外标记为离群点的 volume 数。
每个检出的头动离群帧之后同样标记为离群点的 BOLD volume 数。设为 0 表示不向后扩展。
去噪
基于生成的混淆回归量对 BOLD 进行去噪。根据所选选项,可包括 nuisance 回归、去趋势、时间滤波以及初始时间点剔除(--bold_skip_frame)。
指定 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 头动、白质与脑脊液回归量。
选择基于 aCompCor 的去噪策略时使用的解剖学 CompCor 成分数。例如设为 6 时使用前六个 aCompCor 成分。此参数仅对包含 acompcor 的策略生效。
指定 BOLD 去噪时使用的时间滤波模式。
bandpass— 使用--bold_bandpass施加显式时间带通滤波,不使用 fMRIPrep 风格的 cosine 回归量。cosine— 使用 fMRIPrep 风格的 cosine 回归量去除高频漂移,禁用显式高通/低通滤波。none— 不使用 cosine 回归量,也不施加显式时间滤波。
时间带通频率范围(Hz)。仅在 --bold_filter_mode 设为 "bandpass" 时生效。
示例:--bold_bandpass 0.01-0.08 表示高通 0.01 Hz、低通 0.08 Hz。
空间平滑核大小(毫米),以半高全宽(FWHM)表示。设为 "0" 可禁用平滑。可提供多个值,从同一去噪后 BOLD 图像生成多个不同平滑程度的输出。
示例:--bold_smooth_fwhm "0"、--bold_smooth_fwhm "4"、--bold_smooth_fwhm "4 6 8"
指标与 ROI
指定要计算的一个或多个 BOLD 指标。多个指标应以空格分隔的字符串提供。
reho— 局部一致性(ReHo),使用 Kendall's W 度量相邻体素时间序列的局部同步性。alff— 配置频段内的低频振幅(ALFF)。malff— 均值归一化 ALFF,由体素级 ALFF 除以分析掩膜内的平均 ALFF 得到。zalff— Z 分数标准化 ALFF,对分析掩膜内的体素级 ALFF 值做标准化。falff— 分数低频振幅(fALFF),为低频振幅与全频段振幅之比。int— 固有神经时间尺度,由 BOLD 信号的时间自相关估计。
注意:ReHo 使用剔除头动帧后的时间序列计算;而 ALFF 系列指标(及其衍生指标)与 INT 使用完整序列(不剔除头动帧)计算。
指定 ALFF/fALFF 频域计算时提取低频振幅的频率范围。
注意这与 --bold_bandpass 不同——后者用于 BOLD 信号的时域带通滤波;--bold_alff_bandpass 仅用于 ALFF/fALFF 频谱计算。
启用基于图集的 BOLD 指标 ROI 汇总。对每个配置的脑图集,在各 ROI 内聚合体素级指标值,并保存为区域级的表格输出。未启用此选项时仅生成体素级指标图。
从去噪后的 BOLD 图像中提取基于图集的 ROI 时间序列。需要 --atlas;启用 --bold_roi_pearson_fc 时自动启用。
输出保存为 N × T 矩阵(行 = ROI,列 = 时间点)。保存的 ROI 时间序列文件不含表头、索引或 ROI 标签列。
注意:虽然时间序列保留完整时间轴,但 z 分数标准化时,各 ROI 的均值与标准差仅使用未被判定为头动伪影的有效帧计算。
在排除被标记为异常头动的时间点后,计算两个有效 ROI 时间序列之间的 Pearson 相关系数,构建静态功能连接矩阵。
此选项自动启用 --bold_roi_timeseries、--bold_denoise 与 --bold_confounds。
输出为 N × N 的 ROI 功能连接矩阵,不含表头或 ROI 标签。
控制计算静态功能连接时是否物理剔除(censor)头动帧。若省略,则在完整时间序列上计算相关矩阵,头动帧按指定的 --bold_scrubbing_strategy 处理。
保存经 Fisher-z 变换的 Pearson FC 值,而非原始 Pearson 相关系数。推荐用于组级统计分析、边级统计检验、回归模型或组平均 FC 计算。若将 FC 矩阵直接用作图边权重(如机器学习或 GNN 模型),使用原始 Pearson 相关系数可能更合适。
DWI 选项
DWI 基础
当存在多个 DWI 采集时,指定要处理的 DWI 任务或采集标签。多个值应用双引号包裹并以空格分隔。
指定 DWI 的磁化率畸变校正(SDC)方法。
auto— 根据 BIDS 元数据与被试年龄自动选择最佳可用方法。- 成人:
pepolar>fieldmap>synb0>none。 - 婴幼儿/儿童:
pepolar>fieldmap>none。
- 成人:
pepolar— 使用反向相位编码 b0 图像进行校正(FSL TOPUP)。fieldmap— 使用基于 GRE 的场图进行畸变校正。synb0— 使用 Synb0-DISCO 合成无畸变 b0 图像进行校正。仅支持成人。none— 禁用磁化率畸变校正。
指定 DWI 体素输出分辨率。
native— 保留 DWI 原生分辨率。01, 02, 03, ...— 将 DWI 衍生数据重采样到指定的各向同性分辨率(毫米)。
DTI 与 CSD
计算弥散张量成像(DTI)指标。
当通过 --fiber_track_algorithm "tensor_prob" 请求基于张量的纤维追踪,或通过 --dwi_fa_connectome 请求 FA 加权连接组时自动启用。
指定要计算的 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) |
使用约束球面反卷积(CSD)估计纤维方向分布(FOD)。
选择基于 FOD 的追踪算法(ifod2、sd_stream)时自动启用。因此,只要指定了 --fiber_track_algorithm "ifod2"、"sd_stream" 或 "ifod2 sd_stream" 之一,而未显式指定 --dwi_cal_csd,OmniPrep 会自动启用 CSD 计算。
指定启用 CSD 计算时生成的相关输出。典型输出包括白质纤维方向分布及相关的组织响应成分,具体取决于当前实现。
纤维追踪
执行全脑纤维追踪。启用 --dwi_create_connectome、--dwi_fa_connectome 或 --fiber_track_sift2 任一项时自动启用。若启用追踪但未指定算法,OmniPrep 默认使用 ifod2。
指定纤维追踪算法。可用双引号包裹并以空格分隔,同时指定多个追踪算法。
ifod2— 基于纤维方向分布的二阶积分(iFOD2)概率性追踪。需要 CSD。sd_stream— 基于球面反卷积的确定性 FOD 流线追踪。需要 CSD。tensor_prob— 基于张量的概率性追踪。需要 DTI。
示例:--fiber_track_algorithm "ifod2"、"ifod2 sd_stream"、"ifod2 sd_stream tensor_prob"
纤维追踪时生成或筛选的流线数量。
纤维追踪目前基于 CPU,可能是 OmniPrep 中最耗时的步骤之一。
- 常规处理:500 万条流线在计算成本与追踪质量之间取得较好平衡。
- 更高质量连接组:计算时间充足时可使用 1000 万条流线。
- 测试/调试:可降低该值,如
--fiber_track_select 200000。
流线最小长度(毫米)。
流线最大长度(毫米)。
在纤维追踪后应用 SIFT2 估计流线权重。此选项自动启用 --dwi_fiber_track。注意:若 --fiber_track_algorithm 中不包含 ifod2,OmniPrep 当前会使用基于 iFOD2 的追踪来生成 SIFT2 加权衍生数据。
连接组
基于纤维追踪输出构建基于图集的结构连接矩阵。需要通过 --atlases "DK Brainnetome Glasser ..." 指定图集。
自动启用 --dwi_fiber_track 与 --dwi_cal_csd。注意:若 --fiber_track_algorithm 中不包含 ifod2,OmniPrep 当前会基于 iFOD2 追踪构建结构连接组。
计算 FA 加权的结构连接矩阵。自动启用 --dwi_cal_dti、--dwi_create_connectome 与 --dwi_fiber_track。
在结构连接组构建时施加节点体积倒数缩放。该选项根据相连节点的体积倒数缩放连接权重,可降低 ROI 大小对连接估计的影响。
示例
对所有被试运行多模态预处理
omniprep-docker /data /out participant \
--fs_license_file /opt/freesurfer/license.txt \
--tasks "anat bold dwi" \
[options] 使用已有结构衍生数据,仅对选定被试运行 BOLD 预处理
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 衍生数据:去噪、指标与功能连接组
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 纤维追踪与结构连接组
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