Skip to content

AFNI and NIfTI Server for NIMH/NIH/PHS/DHHS/USA/Earth

Sections
Personal tools
You are here: Home » FAQs » How can I normalize the sub-bricks in a 3D+time dataset?

How can I normalize the sub-bricks in a 3D+time dataset?

Document Actions
Up to table of contents

Q74. How can I normalize the sub-bricks in a 3D+time dataset?
"Normalizing" refers to modifying the voxel values in a sub-brick in some way, using the mean value from the entire sub-brick. This is often done in PET data analysis, to allow for different doses of the radioactive pharmaceutical. If you want to do something like this in FMRI (why?), then one way is to combine 3dmaskave and 3dcalc:
  3dmaskave -q tset+orig > tset_vbar.1D
  3dcalc -a tset+orig -b tset_vbar.1D -expr "a/b" -prefix tset_norm
The first operation computes the mean of each sub-brick in the 3D+time dataset tset+orig and saves these numbers into a 1D timeseries file. The second operation divides each voxel by the mean of its sub-brick (you could replace that by subtraction, if you like), and saves the result into a new dataset.

Although the name 3dmaskave seems to imply that you need to use a mask, that is not in fact true -- if you don't supply a mask, then the statistic is calculated over the entire sub-brick.

In 3dcalc, if you supply a .1D file instead of a dataset, then the program treats that as a 3D+time dataset with the nth sub-brick voxel values all being set to the nth value in the 1D timeseries.

[Answer added 23 May 2001]

This FAQ applies to: Any version.

Created by Robert Cox
Last modified 2005-08-01 14:53
 

Powered by Plone

This site conforms to the following standards: