1、转载者 cell 注: 本文件转存自蓝宝社区 http:/ 并经作者同意首转发于心心水滴论坛http:/.本教程适合 05 年 afni 的版本, 软件的新增功能请登陆 afni 官方网 http:/afni.nimh.nih.gov 下载查询,或者登陆心心水滴论坛浏览其相关介绍.登陆蓝宝或心心水滴论坛,共同交流.AFNI 使用指南 (连载)-精心整理的 AFNI 教程特别奉献精心整理的 AFNI 使用指南,以飨读者。目 录0 前言 11 如何获得并安装 AFNI 12 基本概念 12.1 数据集 12.2 数据集的存储 22.3 数据集块和子数据集块 22.4 集合或路径 22.5 文件类型
2、 23 AFNI 的交互界面 23.1 启动 AFNI 23.2 AFNI 界面 33.3 在 Batch Mode 下使用 AFNI 命令 43.4 AFNI 的 Plugins 44 数据分析基本步骤 插页 1135 数据处理基本步骤 55.1 原始功能像的重建 55.2 转换成 AFNI 格式 55.3 功能像层面时间校正和运动校正 75.4 功能像的时间域滤波 125.5.a 功能像的空间平滑 125.5.b 补充内容 16包括去除头皮外伪影、去除异常时间点、时间序列时间点数据的标准化(difference/mean)、多个 run 的数据连接及去线性漂移。5.6.a 单个被试通用线性
3、模型分析及结果显示 22包括 1D 参考波创建、t-检验及相关分析(及 Cluster Analysis)、3dDecon-volve 反卷积分析。5.6.b 激活图的 clustering, montage, and render 315.7 空间标准化 (切换至 Talairach 坐标系) 345.8 统计图的空间平滑 395.9 被试统计图的组分析 396 ROI(Region of Interesting)绘制及分析 456.1 手动绘制 ROI 及 ROI 分析 456.2 从激活图创建 ROI 51附录 1 DICOM 图像标准 52附录 2 rnxpc 源程序 52附录 3 应
4、用于 3dDeconvlve 分析的脚本源程序 53附录 4 AFNI Programs zzz 值必须介于最小和最大位移之间注: 默认配准时间为tpattern 值均值(来自数据集头信息或 -tpattern 选项)-slice nnn = 配准每个层面的位移为 nnn 层面的时间位移注:选项-tzero 或-slice 只能用 1 个-prefix ppp = 用 ppp 作为输出文件的前缀。默认是tshift-ignore ii = 忽略最前面ii 个时间点(points)( 默认 ii=0)。最初的 ii 个值在输出文件中不发生改变(不管-rlt 选项);也不会用于 detrendin
5、g 和 time shifting-rlt or rlt+ = 在位移前,去除每个时间序列的均值和线性趋势。默认在位移后再加回这些值。-rlt 表示在输出中去除这些值;而-rlt+表示在输出中只加回均值。-Fourier|linear|cubic|-quintic|heptic 表示采用傅立叶或一、三、五、七次拉格郎日多插项插值方法-tpattern ttt = 使用ttt 作为时间模式, 而不采用输入的数据文件头信息中包含的时间模式。tpatter 的定义可以为 altplus(=alt+z), altminus(=alt-z), seqplus(seq+z), seqminus(seq-z
6、), filename举例:如果 nz = 5, TR = 1000, 那么 inter-slice time 为 dt = TR/nz = 200。在这个例子中,层面位移为下列数字:S L I C E N U M B E RTpattern 0 1 2 3 4 Commentaltplus 0 600 200 800 400 Alternating in the +z directionalt+z2 400 0 600 200 800 Alternating, but starting at #1altminus 400 800 200 600 0 Alternating in the -z
7、 directionalt-z2 800 200 600 0 400 Alternating, starting at #nz-2 seqplus 0 200 400 600 800 Sequential in the -z directionseqplus 800 600 400 200 0 Sequential in the -z direction如果使用filename 作为 tpattern, 那么 nz 个以 ASCII 码存储的数字从文件中读取,并作为每个层面的时间位移(offsets)。输入数据集可以是:r1+orig35 sub-brick selectorr1+orig s
8、ub-range selectorr1+orig35 both selectors3dcalc( -a r1+orig -b r2+orig -expr 0.5*(a+b) ) calculation(2) 运动校正将不同方式和不同时间获取的图像进行对齐,从而利于体素-体素(voxel-by-voxel) 比较。这样功能时间序列将更少地受被试运动的影响;如果图像正确的校正的话,可以比较不同 session 的结果。绝大多数图像校正都使用 pairwise alignment 方法。即给出一个基准图像(base image)J(x)和一个要进行校正的图像(target image)I(x),寻找
9、一种几何变形 (geom. transformation)Tx,使得 I(Tx)J(x)。Tx依赖于一些参数:目标是寻找一些参数使得变换后的 I 与 J 最拟合。为校正整个时间序列,每个 3D Volume In(X)都通过自己的变换 TnX进行与 J(x)配准,n=0,1,;所以结果也是一个时间序列 In(TnX),用户必须选择基准图像J(x)。绝大多数图像校正都需进行 3 种算法选择:如何测量 I(Tx)和 J(x)之间的误差 E?如何调正 Tx的参数使得 E 最小?如何对 I(Tx)进行插值至 J(x)的网格(grid)?在 fMRI 图像处理过程中,刚体模型配准问题可以分为两步:(1)
10、刚体模型:首先通过迭代法估计出描述空间坐标之间变换参数的最佳值,然后用这些参数对需要配准的图像进行空间变换和必要的内插处理。(2) 图像重取样(re-sample):图像重取样是决定变换到新的空间坐标之后每个体元的值。经过变换之后的体元位置大多数情况下不是正好一个体元位置,所以需要通过插值法重新取样。方法包括取最相邻体元的值(0 阶重取样)或多点线性插值( 一阶重取样)。几种插值方法可以使用,默认的是 Fourier,最准确但速度最慢。其它的有 1, 3, 5, 7 次拉格郎日多项式插值(linear, cubic, quintic and heptic)。目前的 AFNI 程序通过灰度(强度
11、)值进行图像的配准。E=平方差的加权和= Sx w(x) I(Tx) - J(x)2EPI, 但 SPGR 和 EPI 之间不行。SPGR, EPI所以只对类似的图像可以进行配准,如 SPGR 3D RegistrationPlugins3dvolreg 或 Define Datamode用来对 3D volume(sub-brick)进行对齐。 Tx有 6 个参数:R-L, A-P, I-S 轴的位移及沿 I-S, R-L, A-P 轴的旋转(分别对应于 Roll, Pitch, Yaw)。常用于 session 内(intra-session)和 session 间(inter-sessi
12、on)的对齐。对于发生在单个TR(2-3s)内的运动则无法校正。Usage: 3dvolreg optinos datasete.g. 3dvolreg -base 4 -heptic -clipit -zpad 4 -prefix fred1_epi_vr -dfile fred1_vr_dfile fred1_epi+orig-base 4 选择输入数据集(fred1_epi+orig)的子数据块(sub-brick) #4 作为基准图像 J(x)也可以写成-base fred1_epi+orig4。可以使用不同的图像作为基准图像,但大多数情况下,但最好使用最靠近解剖像扫描的时间点,因为这
13、时描扫参数相似。-heptic 选择 7 次拉格郎日多项式插值方法( 见前述)-clipit 将负的体素值设为 0(注:负值是由于高次插值方法导致的伪影 )-zpad 4 在进行 shift/rotation 前,将每个耙图像(target image, 即 I(x)垫 0 四层(Zero padding),最后再去掉。对于 Fourier 插值法,Zero padding 非常需要。同样多项值插值方法也适合,因为如果有较大的旋转,如果不垫 0 的话将会有数据丢失-prefix fred1_epi_vr 指定输出文件的前缀-dfile fred1_vr_dfile 将估计的运动参数输出至指定的
14、 1D 文件(以后可使用 1dplot 绘图显示)为查看是否有较大的平移和旋转,可以查看运动参数文本文件:1dplot -volreg -dx 5 -xlabel Time fred1_vr_dfile16 ( 16 指出运动参数文件中 6 列包括平移和旋转的估计值)可以看出,在 160s 附近有最大的运动,因为被试在此时刻头动了一下。3dvolreg 可以相当好地处理小的运动(motion),但是较大的运动 ( 1mm) 不能被正确地校正。可以用 AFNI 查看运动校正后的数据集看是否是这样。时间序列会显示什么样(i.e. 是否有运动有关的数据不连续点)? 沿着时间轴是否还有明显的运动? 3
15、DPlugins同样的操作,可以通过点击 Define DateMode Registration 完成,界面如下:Datasets 用于选择输入和输出数据集;Parameters 用于选择基准图像和 Resampling 插值方法;Outputs 用于指出1D 输出文件名称。填写完毕,点击 Run+Close 即可。 2DPlugins2dImReg 或 Define Datamode Registration2dImReg 用于对齐 2D 层面图像。Tx有 3 个参数(x-, y-轴的位移和 z-轴的旋转)。 对于矢状面的 EPI 扫描,如果被试点头的运动快于 TR,则无法被 3dvolr
16、eg 校正,所以只能用 2dImReg 校正。如果有可能的话,在 3dvolreg 之后再运行 2dImReg 去除点头运动非常有意义。2dImReg 使用比较简单:2dImReg -input fred2_epi+orig -basefile fred1_epi+orig -base 4 -prefix fred2_epi_2Dreg2dImReg 的功能同样可由 Plugins 来完成,点击 2D Registration, 出现界面如下:同 3D Registration,分别选择输入和输出数据集有基准图像,点击 Run+Close 即可。 同被试不同 session 之间的校正(对同一
17、被试进行持续多日的研究)如果进行纵向研究或对长时期神经行为(如 Learning)的研究,则需进行 inter-session registration。Session 之间的变换通过计算每个 Session 高分辩率的解剖像来实现。因为 to3d 可以定义 1 个 session 内 EPI 和 SP-GR 之间关系;而3dvolreg 可以计算不同 session 间的关系;所以可以将 EPI 数据集从 session 2 转换至 sessoin 1 的轴向。Inter-session 校正存在的问题:a. 被试的头放置位置不同(方向和定位都不同);所以 xyz 坐标和解剖位置都不对应。
18、(如下图,Day 1 和 Day 2 的层面位于同一体素的并非同一组织,需进行旋转,然后进行平移。b. 扫描覆盖的解部结构不同。c. EPI 和 SPGR 之间的几何关系在不同 session 之间不同。d. 层面厚度也可能不同(不过可以尽量避免此点)。如下图,进行旋转时还需要注意一个问题,即旋转的原点应该相同(以 SPGR 中心),否则需要先进行中心平移。上述问题的解决方案:a. 在旋转后再加上适当的平移(on top of 熟练掌握, 在. 之上, 另外, 紧接着);允许不同天进行的实验(E1-E2)之间进行 xyz 方向的平移,以及 EPI 和 SPGR 之间(E1-S1 和 E2-S2
19、)的中心平移(center shifts)b. 将 EPI 数据集垫加(pad)额外的层面(zeros slices),这样进行对齐的数据集可以包含所有 session 的所有数据c 对数据集进行 Zero padding 可在 to3d(创建数据集) 时进行,也以后使用 3dZeropad 进行d 3dvolreg 和 3drotate 可以进行 zero pad 从而使输出符合网格父数据集 (“grid parent” dataset)的大小和位置。进行 intra-subject S2-to-S1 变换的步骤a. 计算 S2-to-S1 的变换关系3dvolreg twopass cli
20、pit zpad 4 base S1+orig prefix S2reg S2+origb. 旋转 /位移参数保存在 S2reg+orig.HEAD 文件中c. 如果以前没有做(e.g. in to3d),对 E1 数据集进行 Zero pad3dZeropad z 4 prefix E1pad E1+origd. 对 E1 数据集进行 intra-session 校正3dvolreg clipit base E1pad+orig4 prefix E1reg E1pad+orige. 对 E2 数据集进行 intra-session 校正,同时进行大的旋转/ 位移校正至 Session 的坐标
21、系( 需要的信息存在S2reg+orig.HEAD)3dvolreg clipit base E2+orig4 rotparent S2reg+orig gridparent E1reg+orig prefix E2reg E2+orig注:-rotparent 告知 inter-session 变换关系从哪获得-gridparent 定义输出的新数据集的网格位置及大小输出数据集将取决于 E1reg+orig 的需要进行平移和 Zero padded上面讨论的步骤没有考虑不同层面厚度(EPI and/or SPGR)时的问题。最好的解决方案是在扫描时尽量对同一类型图像使用相同的层面厚度;当然,
22、如果没有做到这一点,可以使用 3dZregrid 对数据集进行线性插值,从而具有相同的厚度。上面的步骤也没有考虑存在头信息内(from to3d, e.g. alt+z)的层面依赖的时间位移。在插值至新的旋转后的网格时,体素的值再也不能说来自某一特定的时间位移,因为来自不同层面的数据集将集合在一起。在做空间插值之前,首先对数据集进行时间位移至共同的时间原点非常有意义。时间位移可以使用 3dTshift 或 3dvolreg tsihft 完成。5.4 功能像的时间域滤波数据可以在线性模型拟合前使用 3dFourier 进行时间域的过滤,将会对时间序列进行相当严格的频率域过滤。Usage: 3d
23、Fourier options dataset (Afni 3d+time 数据集)-prefix 新的输出 3d+time 数据集名称 默认为 fourier-lowpass f 低通滤波的界值(f Hz)-highpass f 高通滤波的界值(f Hz)-ignore n 忽略最开始的 n 个图像 默认为 1-retrend 任何均值和线性趋势在滤波前去除,在滤波后再恢复注: lowpass 和 highpass 可以一起用,构建成 band-pass。例:3dFourier -prefix run_1_vr_lp -lowpass 0.05 -retrend run_1_vr+orig低
24、通(low pass)滤波界值(cutoff value)是基于输入刺激模型的频率谱(i.e. the 1D files),如下图(图像经过反转色彩)。时间滤波在线性模型拟合前平滑数据,而提供更好的模型拟合。在选择频率界值时应该保守一点,并在时间滤波后用 AFNI 查看时间序列。5.5.a 功能像的空间平滑在一些时间点,你可能想对你的数据进行空间平滑(smooth)或模糊(blur)。因为两个原因。一是许多平滑操作及空间平滑趋向于平均图像中的较高空间频率噪声,因此,具有较大范围的激活区域仍然保存,但一些较小范围的激活被去除。二是集合被试间的数据之前,需要进行空间模糊(blurring),因为脑
25、解剖结构即使在标准化至标准脑空间(Talairach)后也存在差异,因此它们的功能激活区有可能并不精确重叠。在数据处理过程中主要有三个步骤可以进行空间平滑。数据在重建(如使用 hamming 或 fermi filter 选项)时可被平滑。这样做具有优势:在它们进行进一步处理前消除不需要的噪声或伪影。然而,在重建过程中的空间平滑是层面内的(in-plane)。也就是说,它为每个脑层面独立应用平滑,因此不考虑层面间的不需要的较高空间频率噪声,也没有对被试间层面方向的功能激活配准产生帮助。第 2 个可以进行空间平滑的时间是恰在第 1 次各被试内数据统计分析前。这是(必须)使用原始数据时间序列的最后
26、阶段。在各被试内统计分析后,进一步的处理是应用统计汇总数据,而对统计汇总数据进行空间平滑具有较低的有效性。第 3 个可能进行空间平滑的时间点是由各被试内分析提供的统计图,尽管存在有效性问题(将在后面简单讨论)。空间平滑使用 3dmerge 程序:Usage: 3dmerge options datasets . 为每个输入数据集指定编辑选项:-1thtoin = 拷贝阈值数据覆盖(over)强度数据( 这样,是否即对阈值数据进行平滑 ?)仅在数据集附有阈值统计值时有效。所有后继操作仅对这些取代的数据操作。-2thtoin = 同-1thtoin,但处理时不改变阈值(from shorts to
27、 floats)。该选项仅为早期的 AFNI3d*程序包提供。-1noneg = 将负值改为 0-1abs = 取强度值的绝对值-1clip val = 将在(-val val)范围内的强度值改为 0-2clip v1 v2 = 将在(v1,v2)范围内的强度值改为 0-1uclip val = 这些选项与上述的相似,但不在数据集后附上任何解剖的缩放因子(scaling fac-or -2uclip v1 v2 tors)。这些选项仅在特殊的环境下使用。(u意为unscaled,3dinfo 程序可以用来查看缩放因子)注:这些 clip 选项只能使用 1 个。-1thresh thr = 使用
28、阈值数据删减(censor)强度数据 censor the intensities注:仅对fith, fico 或 fitt 数据集有效。阈值thr为浮点型,fith 和 fico数据集范围为 0.0 =clip value 的值,取其中间值,重设 clip vlaue 为该中值*0.5,再重复这两步,直至 clip value不改变选项:-mfrac ff = 用 ff 值代替上述算法中的 0.5-verb = 使用该选项选择冗余 (verbose)输出,除在 stdout 上显示 clip 值,同时也显示 stderr 注:该程序仅对 byte-和 short-型数据集操作,如果输入数据集
29、中有任何体素为负值,将会出现警告。如果输入数据集包含 1 个以上 sub-brick,所有 sub-bricks 被用来建立 histogramUsage: 3dAutomask options dataset输入数据集是一个 EPI 3D+time 数据集(不同于 3dintracranial),输出数据集是一个仅含脑组织的遮罩数据集(brain-only mask dataset)方法:+ 使用 3dClipLevel 算法寻找 clipping level.+ 在 erosion/dilation 步骤后仅保持最大的阈上体素的连接部+ 保存结果为功能数据集 fim 型选项:-prefix
30、 ppp = 输入数据集以ppp 为前缀default=automask-q = 不输出程序执行过程中的信息(i.e., be quiet).-eclip = 在创建 mask 后,去除低于 clip 阈值的外部体素-dilate nd = 向外扩大 mask nd 次-SI hh = 在创建 mask 后,寻找最上面的体素,然后将低于该体素超过hh 毫米的任何体素设为 0。对于人类大脑 hh=130 比较合适。例:3dAutomask prefix r1mask r1blur+orig3dAutomask prefix r2mask r2blur+orig对于有几个 run 的实验,需将多个
31、 run 求得的 mask 混合在一起,可使用 3dcalc 程序( 具体用法见下):3dcalc prefix combmask a r1mask b r2mask expr step(a+b)(2) 去除异常时间点在创建功能数据集时,to3d 便对时间序列进行 outliers 的检查。我们在进行单个被试数据统计分析前,可利用 3dToutcount 和 3dTqual 程序对时间序列进行检测,可剔除异常的时间点。(如在 censor.1D 中将相应的时间点设为 0,即有效点设为 1,无效点设为 0)Usage: 3dToutcount options dataset计算 3D+times
32、 数据集中outliers的数目,并将各个时间点写输出到标准输出(stdout)选项:-mask mset = 仅包括 mask 数据集之内的体素-qthr q = 使用q 替换 alpha 计算中的 0.001-autoclip = Clip 掉 小(small) 的体素(as in 3dClipLevel);-automask = 与-mask 选项互相排斥-range = 输出每个时间点 outlier 的 median+3.5*MAD(中值绝对偏差) -save ppp = 输出新的数据集,保存 outlier Q 至每个体素,其中 Q 通过体素值 v 计算而来:Q = -log10(
33、qg(abs(v-median)/(sqrt(PI/2)*MAD) 或 Q=0 (如果 v 接近中值,即不是 outlier)。也就是说, 10*(-Q)是值 v 服从 vs iid normal 假设 p 值的粗略估计。新的数据集以ppp为前缀。 (注:MAD 和 qg 详见程序 3dcalc)-polort nn = 在 outlier 估计前,先对每个体素时间序列进行nn 次多项式(polynominals of order nn)去势。默认 nn=0,即只去除中值( 常量)。OUTLIERS are defined as follows:* 计算出每个时间序列的 trend 和 MAD
34、(MAD 即 median absolute deviation, 中值绝对误差,等于时间序列的绝对值减去趋势* 对于每个时间序列,与 trend 相差甚远(far away)的时间点被称为 outliers, 而far定义为:alpha * sqrt(PI/2) * MAD其中 alpha = qginv(0.001/N) (inverse of reversed Gaussian CDF),N = length of time series* 一般都会出现几个 outliers,但如果出现比例较大的 outliers,应该认真地检查数据集。因为结果输出至 stdout,因此你可能想重定向这
35、些结果生成文件或至另一个程序,可以如下例:3dToutcount -automask v1+orig | 1dplot -stdinUsage: 3dTqual options dataset计算 3D+time 数据集每个 sub-brick 的quality index。输出为由每个 sub-brick 的 index 组成的 1D 时间序列。结果输出至 stderr。注:小的 index 值为好,意味着该 sub-brick 与 norm 无非常显著的差异。该程序的目的就是为筛选 fMRI 时间序列零星的异常图像提供粗糙的方法,例如由于被试头部较大运动或 scanner 故障导致的伪影。
36、不要完全照搬该程序的结果。只是提供 GUIDE 帮助研究者发现数据问题。具有更高的 index 值的 sub-bricks 应该检查问题。如何定义much higher表示多少由研究者决定。研究者应该用图形来检测 index 的值。作为 guide, 程序将输出中值质量指数(median quality index)和范围 median-3.5*MAD median+3.5MAD(MAD 为中绝绝对偏差 )。超过该范围的 values 值得怀疑,如果 quality index 服从正态分布,超过该范围的值发生的概率为 1%。选项-spearman = Quality index 值为 1-S
37、pearman (rank) correlation coefficient (每个 sub-brick 与median sub-brick 的 Spearman 相关系数) default method.-quadrant =与-spearman 相似,但用 1-(1/4)*Spearman 相关系数-autoclip = 去除(clip off) median sub-brick 中低强度的区域,这样,相关系数只在高强度的-automask 体素(大概脑组织范围内 )之间计算。强度水平的决定与 3dClipLevel 相同。这就防止脑组织以外的接近 0 的体素使相关系数的计算发生偏斜。-c
38、lip val = 去除(clip off) median sub-brick 中低于val 的体素。-range = 与每个 quality index 一起输出-3.5*MAD 和 median+3.5*MAD 值,这样可以进行 plot 绘图。注:* 这些值在任何情况下输出至 stderr。仅在用 1dplot 时有用。较低的值 median-3.5*MAD 不允许小于 0。举例:3dTqual -range -automask fred+orig | 1dplot -one -stdin(3) 3dcalc 程序该程序对 3D 数据集进行 voxel-by-voxel 运算(limit
39、ed to inter-voxel computation)该程序假设 voxel-by-voxel 运算在占有相同空间并有相同轴向的数据集进行。Usage: 3dcalc -a dsetA -b dsetB. -expr EXPRESSION options举例:a. 基于 voxel-by-voxel,将几个数据集进行平均 3dcalc -a fred+tlrc -b ethel+tlrc -c lucy+tlrc -expr (a+b+c)/3 -prefix subjects_mean b. 建立一个简单的 mask,其中只包含 sub-brick 中大于某一指定值的体素3dcalc
40、-a func+orig0 -expr ispositive(a-3.14159) -prefix maskc 在准备组分析前,对被试的时间序列进行标准化 下面的例子中,将时间序列中(epi_r1+orig)的每个强度值除以平均(mean+orig)得到改变值百分比。 3dcalc -a epi_run1+orig -b mean+orig -expr 100 * a/b -prefix percent_chgd. 从统计数据集建立一个混合的 mask,其中 3 个刺激呈现激活注:step 和 ispositive 是等价的,可交替使用3dcalc -a func+orig12 -b func
41、+orig15 -c func+orig18 -expr step(a-4.2)*step(b-2.9)*step(c-3.1) -prefix compound_maske. 创建 3 维球体 ROI(region-of-interest) mask。ROI 内的值将被标记为 1,ROI mask 外的值将被标记为 0。这样,就可以对 ROI 内的体素进行统计分析: 3dcalc -a anat+tlrc -expr step(9-(x-20)*(x-20)-(y-30)*(y-30)-(z-70)*(z-70) -prefix ball f. 数据集 a 通常被用作输出数据集的模板(tem
42、plate) 。下面的例子中,假设 d1+orig 和 d2+orig 由小的整数组成:a) 当 a 除以 b 时,结果应进行缩放,这样结果值 2.4 不会被四舍五入成 2。为避免这种小数部分被删减现象,使用-fscale 选项强迫进行缩放3dcalc -a d1+orig -b d2+orig -expr a/b -prefix quot -fscale b) 最好的方法是结果采用float 型,可设置输出数据集为 float 型:3dcalc -a d1+orig -b d2+orig -expr a/b -prefix quot -datum floatc) 也许有时只想取商数的整数部分
43、,即 9/4=2, 而不是 2.24,可使用-nscale 选项强迫结果不进行缩放3dcalc -a d1+orig -b d2+orig -expr a/b -prefix quot -nscale 3dcalc 的参数(必须包含在命令行内): -a dnam = 读取数据集 dname ,并在表达式 expression (-expr)中称其体素值为a。3dcalc 可以最多使用 24 个数据集名 (-a, -b, -c, . -z)。* 如果在表达式中使用某字母,但在数据集选项中没有指定,则其值设为 0* 如果字母后接一数字,那么数字被用来选择数据集中某一 sub-brick(index
44、es start at 0)。-expr = 表达式以单引号 (quotes)括信。将表达式应用于输入数据集。3dcalc 的选项:-verbose = 让程序在执行过程中显示冗余程序-datum type = 强迫数据集以指定的类型(byte, short, or float)存储。 默认为第 1 个输入数据集类型-fscale = 强迫输出数据集进行缩放至最大整数范围。仅在输出数据集为 byte 或 short 时有效。(默认即进行缩放) 默认在计算的值看上去需要缩放时进行缩放,如所有均小于 1.0 或有某一值超过整型的上限-gscale = 同于-fscale,介同时强迫每个输出的 sub-brick 有相同的缩放比例(scaling factor),例如,这也许对 3D+time 数据集有用-nscale = 不对 byte 或 short 型输出数据集进行缩放。当对 mask 数据( 仅包含 0 或 1)进行操作时非常有用。-prefix pname = 使用 p