NIPY logo
Home · Quickstart · Documentation · Citation · NiPy
Google search is disabled in Debian offline docs

Table Of Contents

Versions

ReleaseDevel
0.11.00.11.0
Download Github

Links

interfaces.freesurfer.utils

ApplyMask

Link to code

Wraps command mri_mask

Use Freesurfer’s mri_mask to apply a mask to an image.

The mask file need not be binarized; it can be thresholded above a given value before application. It can also optionally be transformed into input space with an LTA matrix.

Inputs:

[Mandatory]
in_file: (an existing file name)
        input image (will be masked)
        flag: %s, position: -3
mask_file: (an existing file name)
        image defining mask space
        flag: %s, position: -2

[Optional]
args: (a string)
        Additional parameters to the command
        flag: %s
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
invert_xfm: (a boolean)
        invert transformation
        flag: -invert
mask_thresh: (a float)
        threshold mask before applying
        flag: -T %.4f
out_file: (a file name)
        final image to write
        flag: %s, position: -1
subjects_dir: (an existing directory name)
        subjects directory
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored
use_abs: (a boolean)
        take absolute value of mask before applying
        flag: -abs
xfm_file: (an existing file name)
        LTA-format transformation matrix to align mask with input
        flag: -xform %s
xfm_source: (an existing file name)
        image defining transform source space
        flag: -lta_src %s
xfm_target: (an existing file name)
        image defining transform target space
        flag: -lta_dst %s

Outputs:

out_file: (an existing file name)
        masked image

ExtractMainComponent

Link to code

Wraps command mris_extract_main_component

Extract the main component of a tesselated surface

Examples

>>> from nipype.interfaces.freesurfer import ExtractMainComponent
>>> mcmp = ExtractMainComponent(in_file='lh.pial')
>>> mcmp.cmdline
'mris_extract_main_component lh.pial lh.maincmp'

Inputs:

[Mandatory]
in_file: (an existing file name)
        input surface file
        flag: %s, position: 1

[Optional]
args: (a string)
        Additional parameters to the command
        flag: %s
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
out_file: (a file name)
        surface containing main component
        flag: %s, position: 2
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored

Outputs:

out_file: (an existing file name)
        surface containing main component

MRIMarchingCubes

Link to code

Wraps command mri_mc

Uses Freesurfer’s mri_mc to create surfaces by tessellating a given input volume

Example

>>> import nipype.interfaces.freesurfer as fs
>>> mc = fs.MRIMarchingCubes()
>>> mc.inputs.in_file = 'aseg.mgz'
>>> mc.inputs.label_value = 17
>>> mc.inputs.out_file = 'lh.hippocampus'
>>> mc.run() 

Inputs:

[Mandatory]
in_file: (an existing file name)
        Input volume to tesselate voxels from.
        flag: %s, position: 1
label_value: (an integer)
        Label value which to tesselate from the input volume. (integer, if
        input is "filled.mgz" volume, 127 is rh, 255 is lh)
        flag: %d, position: 2

[Optional]
args: (a string)
        Additional parameters to the command
        flag: %s
connectivity_value: (an integer, nipype default value: 1)
        Alter the marching cubes connectivity: 1=6+,2=18,3=6,4=26
        (default=1)
        flag: %d, position: -1
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
out_file: (a file name)
        output filename or True to generate one
        flag: ./%s, position: -2
subjects_dir: (an existing directory name)
        subjects directory
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored

Outputs:

surface: (an existing file name)
        binary surface of the tessellation

MRIPretess

Link to code

Wraps command mri_pretess

Uses Freesurfer’s mri_pretess to prepare volumes to be tessellated.

Description

Changes white matter (WM) segmentation so that the neighbors of all voxels labeled as WM have a face in common - no edges or corners allowed.

Example

>>> import nipype.interfaces.freesurfer as fs
>>> pretess = fs.MRIPretess()
>>> pretess.inputs.in_filled = 'wm.mgz'
>>> pretess.inputs.in_norm = 'norm.mgz'
>>> pretess.inputs.nocorners = True
>>> pretess.cmdline
'mri_pretess -nocorners wm.mgz wm norm.mgz wm_pretesswm.mgz'
>>> pretess.run() 

Inputs:

[Mandatory]
in_filled: (an existing file name)
        filled volume, usually wm.mgz
        flag: %s, position: -4
in_norm: (an existing file name)
        the normalized, brain-extracted T1w image. Usually norm.mgz
        flag: %s, position: -2
label: (a string or an integer, nipype default value: wm)
        label to be picked up, can be a Freesurfer's string like 'wm' or a
        label value (e.g. 127 for rh or 255 for lh)
        flag: %s, position: -3

[Optional]
args: (a string)
        Additional parameters to the command
        flag: %s
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
keep: (a boolean)
        keep WM edits
        flag: -keep
nocorners: (a boolean)
        do not remove corner configurations in addition to edge ones.
        flag: -nocorners
out_file: (a file name)
        the output file after mri_pretess.
        flag: %s, position: -1
subjects_dir: (an existing directory name)
        subjects directory
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored
test: (a boolean)
        adds a voxel that should be removed by mri_pretess. The value of the
        voxel is set to that of an ON-edited WM, so it should be kept with
        -keep. The output will NOT be saved.
        flag: -test

Outputs:

out_file: (an existing file name)
        output file after mri_pretess

MRITessellate

Link to code

Wraps command mri_tessellate

Uses Freesurfer’s mri_tessellate to create surfaces by tessellating a given input volume

Example

>>> import nipype.interfaces.freesurfer as fs
>>> tess = fs.MRITessellate()
>>> tess.inputs.in_file = 'aseg.mgz'
>>> tess.inputs.label_value = 17
>>> tess.inputs.out_file = 'lh.hippocampus'
>>> tess.run() 

Inputs:

[Mandatory]
in_file: (an existing file name)
        Input volume to tesselate voxels from.
        flag: %s, position: -3
label_value: (an integer)
        Label value which to tesselate from the input volume. (integer, if
        input is "filled.mgz" volume, 127 is rh, 255 is lh)
        flag: %d, position: -2

[Optional]
args: (a string)
        Additional parameters to the command
        flag: %s
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
out_file: (a file name)
        output filename or True to generate one
        flag: ./%s, position: -1
subjects_dir: (an existing directory name)
        subjects directory
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored
tesselate_all_voxels: (a boolean)
        Tessellate the surface of all voxels with different labels
        flag: -a
use_real_RAS_coordinates: (a boolean)
        Saves surface with real RAS coordinates where c_(r,a,s) != 0
        flag: -n

Outputs:

surface: (an existing file name)
        binary surface of the tessellation

MRIsConvert

Link to code

Wraps command mris_convert

Uses Freesurfer’s mris_convert to convert surface files to various formats

Example

>>> import nipype.interfaces.freesurfer as fs
>>> mris = fs.MRIsConvert()
>>> mris.inputs.in_file = 'lh.pial'
>>> mris.inputs.out_datatype = 'gii'
>>> mris.run() 

Inputs:

[Mandatory]
in_file: (an existing file name)
        File to read/convert
        flag: %s, position: -2
out_datatype: ('ico' or 'tri' or 'stl' or 'vtk' or 'gii' or 'mgh' or
         'mgz')
        These file formats are supported: ASCII: .ascICO: .ico, .tri GEO:
        .geo STL: .stl VTK: .vtk GIFTI: .gii MGH surface-encoded 'volume':
        .mgh, .mgz

[Optional]
annot_file: (an existing file name)
        input is annotation or gifti label data
        flag: --annot %s
args: (a string)
        Additional parameters to the command
        flag: %s
dataarray_num: (an integer)
        if input is gifti, 'num' specifies which data array to use
        flag: --da_num %d
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
functional_file: (an existing file name)
        input is functional time-series or other multi-frame data (must
        specify surface)
        flag: -f %s
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
label_file: (an existing file name)
        infile is .label file, label is name of this label
        flag: --label %s
labelstats_outfile: (a file name)
        outfile is name of gifti file to which label stats will be written
        flag: --labelstats %s
normal: (a boolean)
        output is an ascii file where vertex data
        flag: -n
origname: (a string)
        read orig positions
        flag: -o %s
out_file: (a file name)
        output filename or True to generate one
        flag: ./%s, position: -1
parcstats_file: (an existing file name)
        infile is name of text file containing label/val pairs
        flag: --parcstats %s
patch: (a boolean)
        input is a patch, not a full surface
        flag: -p
rescale: (a boolean)
        rescale vertex xyz so total area is same as group average
        flag: -r
scalarcurv_file: (an existing file name)
        input is scalar curv overlay file (must still specify surface)
        flag: -c %s
scale: (a float)
        scale vertex xyz by scale
        flag: -s %.3f
subjects_dir: (an existing directory name)
        subjects directory
talairachxfm_subjid: (a string)
        apply talairach xfm of subject to vertex xyz
        flag: -t %s
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored
vertex: (a boolean)
        Writes out neighbors of a vertex in each row
        flag: -v
xyz_ascii: (a boolean)
        Print only surface xyz to ascii file
        flag: -a

Outputs:

converted: (an existing file name)
        converted output surface

MakeAverageSubject

Link to code

Wraps command make_average_subject

Make an average freesurfer subject

Examples

>>> from nipype.interfaces.freesurfer import MakeAverageSubject
>>> avg = MakeAverageSubject(subjects_ids=['s1', 's2'])
>>> avg.cmdline
'make_average_subject --out average --subjects s1 s2'

Inputs:

[Mandatory]
subjects_ids: (a list of items which are a string)
        freesurfer subjects ids to average
        flag: --subjects %s

[Optional]
args: (a string)
        Additional parameters to the command
        flag: %s
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
out_name: (a file name, nipype default value: average)
        name for the average subject
        flag: --out %s
subjects_dir: (an existing directory name)
        subjects directory
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored

Outputs:

average_subject_name: (a string)
        Output registration file

SampleToSurface

Link to code

Wraps command mri_vol2surf

Sample a volume to the cortical surface using Freesurfer’s mri_vol2surf.

You must supply a sampling method, range, and units. You can project either a given distance (in mm) or a given fraction of the cortical thickness at that vertex along the surface normal from the target surface, and then set the value of that vertex to be either the value at that point or the average or maximum value found along the projection vector.

By default, the surface will be saved as a vector with a length equal to the number of vertices on the target surface. This is not a problem for Freesurfer programs, but if you intend to use the file with interfaces to another package, you must set the reshape input to True, which will factor the surface vector into a matrix with dimensions compatible with proper Nifti files.

Examples

>>> import nipype.interfaces.freesurfer as fs
>>> sampler = fs.SampleToSurface(hemi="lh")
>>> sampler.inputs.source_file = "cope1.nii.gz"
>>> sampler.inputs.reg_file = "register.dat"
>>> sampler.inputs.sampling_method = "average"
>>> sampler.inputs.sampling_range = 1
>>> sampler.inputs.sampling_units = "frac"
>>> res = sampler.run() 

Inputs:

[Mandatory]
hemi: ('lh' or 'rh')
        target hemisphere
        flag: --hemi %s
mni152reg: (a boolean)
        source volume is in MNI152 space
        flag: --mni152reg
        mutually_exclusive: reg_file, reg_header, mni152reg
projection_stem: (a string)
        stem for precomputed linear estimates and volume fractions
        mutually_exclusive: sampling_method
reg_file: (an existing file name)
        source-to-reference registration file
        flag: --reg %s
        mutually_exclusive: reg_file, reg_header, mni152reg
reg_header: (a boolean)
        register based on header geometry
        flag: --regheader %s
        mutually_exclusive: reg_file, reg_header, mni152reg
        requires: subject_id
sampling_method: ('point' or 'max' or 'average')
        how to sample -- at a point or at the max or average over a range
        flag: %s
        mutually_exclusive: projection_stem
        requires: sampling_range, sampling_units
source_file: (an existing file name)
        volume to sample values from
        flag: --mov %s

[Optional]
apply_rot: (a tuple of the form: (a float, a float, a float))
        rotation angles (in degrees) to apply to reg matrix
        flag: --rot %.3f %.3f %.3f
apply_trans: (a tuple of the form: (a float, a float, a float))
        translation (in mm) to apply to reg matrix
        flag: --trans %.3f %.3f %.3f
args: (a string)
        Additional parameters to the command
        flag: %s
cortex_mask: (a boolean)
        mask the target surface with hemi.cortex.label
        flag: --cortex
        mutually_exclusive: mask_label
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
fix_tk_reg: (a boolean)
        make reg matrix round-compatible
        flag: --fixtkreg
float2int_method: ('round' or 'tkregister')
        method to convert reg matrix values (default is round)
        flag: --float2int %s
frame: (an integer)
        save only one frame (0-based)
        flag: --frame %d
hits_file: (a boolean or an existing file name)
        save image with number of hits at each voxel
        flag: --srchit %s
hits_type: ('cor' or 'mgh' or 'mgz' or 'minc' or 'analyze' or
         'analyze4d' or 'spm' or 'afni' or 'brik' or 'bshort' or 'bfloat' or
         'sdt' or 'outline' or 'otl' or 'gdf' or 'nifti1' or 'nii' or
         'niigz')
        hits file type
        flag: --srchit_type
ico_order: (an integer)
        icosahedron order when target_subject is 'ico'
        flag: --icoorder %d
        requires: target_subject
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
interp_method: ('nearest' or 'trilinear')
        interpolation method
        flag: --interp %s
mask_label: (an existing file name)
        label file to mask output with
        flag: --mask %s
        mutually_exclusive: cortex_mask
no_reshape: (a boolean)
        do not reshape surface vector (default)
        flag: --noreshape
        mutually_exclusive: reshape
out_file: (a file name)
        surface file to write
        flag: --o %s
out_type: ('cor' or 'mgh' or 'mgz' or 'minc' or 'analyze' or
         'analyze4d' or 'spm' or 'afni' or 'brik' or 'bshort' or 'bfloat' or
         'sdt' or 'outline' or 'otl' or 'gdf' or 'nifti1' or 'nii' or
         'niigz')
        output file type
        flag: --out_type %s
override_reg_subj: (a boolean)
        override the subject in the reg file header
        flag: --srcsubject %s
        requires: subject_id
reference_file: (an existing file name)
        reference volume (default is orig.mgz)
        flag: --ref %s
reshape: (a boolean)
        reshape surface vector to fit in non-mgh format
        flag: --reshape
        mutually_exclusive: no_reshape
reshape_slices: (an integer)
        number of 'slices' for reshaping
        flag: --rf %d
sampling_range: (a float or a tuple of the form: (a float, a float, a
         float))
        sampling range - a point or a tuple of (min, max, step)
sampling_units: ('mm' or 'frac')
        sampling range type -- either 'mm' or 'frac'
scale_input: (a float)
        multiple all intensities by scale factor
        flag: --scale %.3f
smooth_surf: (a float)
        smooth output surface (mm fwhm)
        flag: --surf-fwhm %.3f
smooth_vol: (a float)
        smooth input volume (mm fwhm)
        flag: --fwhm %.3f
subject_id: (a string)
        subject id
subjects_dir: (an existing directory name)
        subjects directory
surf_reg: (a boolean)
        use surface registration to target subject
        flag: --surfreg
        requires: target_subject
surface: (a string)
        target surface (default is white)
        flag: --surf %s
target_subject: (a string)
        sample to surface of different subject than source
        flag: --trgsubject %s
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored
vox_file: (a boolean or a file name)
        text file with the number of voxels intersecting the surface
        flag: --nvox %s

Outputs:

hits_file: (an existing file name)
        image with number of hits at each voxel
out_file: (an existing file name)
        surface file
vox_file: (an existing file name)
        text file with the number of voxels intersecting the surface

SmoothTessellation

Link to code

Wraps command mris_smooth

This program smooths the tessellation of a surface using ‘mris_smooth’

See also

SurfaceSmooth() Interface
For smoothing a scalar field along a surface manifold

Example

>>> import nipype.interfaces.freesurfer as fs
>>> smooth = fs.SmoothTessellation()
>>> smooth.inputs.in_file = 'lh.hippocampus.stl'
>>> smooth.run() 

Inputs:

[Mandatory]
in_file: (an existing file name)
        Input volume to tesselate voxels from.
        flag: %s, position: 1

[Optional]
args: (a string)
        Additional parameters to the command
        flag: %s
curvature_averaging_iterations: (an integer, nipype default value:
         10)
        Number of curvature averaging iterations (default=10)
        flag: -a %d, position: -1
disable_estimates: (a boolean)
        Disables the writing of curvature and area estimates
        flag: -nw
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
gaussian_curvature_norm_steps: (an integer)
        Use Gaussian curvature smoothing
        flag: %d , position: 4
gaussian_curvature_smoothing_steps: (an integer)
        Use Gaussian curvature smoothing
        flag: %d, position: 5
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
normalize_area: (a boolean)
        Normalizes the area after smoothing
        flag: -area
out_area_file: (a file name)
        Write area to ?h.areaname (default "area")
        flag: -b %s
out_curvature_file: (a file name)
        Write curvature to ?h.curvname (default "curv")
        flag: -c %s
out_file: (a file name)
        output filename or True to generate one
        flag: %s, position: 2
smoothing_iterations: (an integer, nipype default value: 10)
        Number of smoothing iterations (default=10)
        flag: -n %d, position: -2
snapshot_writing_iterations: (an integer)
        Write snapshot every "n" iterations
        flag: -w %d
subjects_dir: (an existing directory name)
        subjects directory
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored
use_gaussian_curvature_smoothing: (a boolean)
        Use Gaussian curvature smoothing
        flag: -g, position: 3
use_momentum: (a boolean)
        Uses momentum
        flag: -m

Outputs:

surface: (an existing file name)
        Smoothed surface file

Surface2VolTransform

Link to code

Wraps command mri_surf2vol

Use FreeSurfer mri_surf2vol to apply a transform.

Examples

>>> from nipype.interfaces.freesurfer import Surface2VolTransform
>>> xfm2vol = Surface2VolTransform()
>>> xfm2vol.inputs.source_file = 'lh.cope1.mgz'
>>> xfm2vol.inputs.reg_file = 'register.mat'
>>> xfm2vol.inputs.hemi = 'lh'
>>> xfm2vol.inputs.template_file = 'cope1.nii.gz'
>>> xfm2vol.inputs.subjects_dir = '.'
>>> xfm2vol.cmdline
'mri_surf2vol --hemi lh --volreg register.mat --surfval lh.cope1.mgz --sd . --template cope1.nii.gz --outvol lh.cope1_asVol.nii --vtxvol lh.cope1_asVol_vertex.nii'
>>> res = xfm2vol.run()

Inputs:

[Mandatory]
hemi: (a string)
        hemisphere of data
        flag: --hemi %s
reg_file: (an existing file name)
        tkRAS-to-tkRAS matrix (tkregister2 format)
        flag: --volreg %s
        mutually_exclusive: subject_id
source_file: (an existing file name)
        This is the source of the surface values
        flag: --surfval %s

[Optional]
args: (a string)
        Additional parameters to the command
        flag: %s
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
mkmask: (a boolean)
        make a mask instead of loading surface values
        flag: --mkmask
projfrac: (a float)
        thickness fraction
        flag: --projfrac %s
subject_id: (a string)
        subject id
        flag: --identity %s
        mutually_exclusive: reg_file
subjects_dir: (a string)
        freesurfer subjects directory defaults to $SUBJECTS_DIR
        flag: --sd %s
surf_name: (a string)
        surfname (default is white)
        flag: --surf %s
template_file: (an existing file name)
        Output template volume
        flag: --template %s
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored
transformed_file: (a file name)
        Output volume
        flag: --outvol %s
vertexvol_file: (a file name)
        Path name of the vertex output volume, which is the same as output
        volume except that the value of each voxel is the vertex-id that is
        mapped to that voxel.
        flag: --vtxvol %s

Outputs:

transformed_file: (an existing file name)
        Path to output file if used normally
vertexvol_file: (a file name)
        vertex map volume path id. Optional

SurfaceSmooth

Link to code

Wraps command mri_surf2surf

Smooth a surface image with mri_surf2surf.

The surface is smoothed by an interative process of averaging the value at each vertex with those of its adjacent neighbors. You may supply either the number of iterations to run or a desired effective FWHM of the smoothing process. If the latter, the underlying program will calculate the correct number of iterations internally.

See also

SmoothTessellation() Interface
For smoothing a tessellated surface (e.g. in gifti or .stl)

Examples

>>> import nipype.interfaces.freesurfer as fs
>>> smoother = fs.SurfaceSmooth()
>>> smoother.inputs.in_file = "lh.cope1.mgz"
>>> smoother.inputs.subject_id = "subj_1"
>>> smoother.inputs.hemi = "lh"
>>> smoother.inputs.fwhm = 5
>>> smoother.run() 

Inputs:

[Mandatory]
hemi: ('lh' or 'rh')
        hemisphere to operate on
        flag: --hemi %s
in_file: (a file name)
        source surface file
        flag: --sval %s
subject_id: (a string)
        subject id of surface file
        flag: --s %s

[Optional]
args: (a string)
        Additional parameters to the command
        flag: %s
cortex: (a boolean, nipype default value: True)
        only smooth within $hemi.cortex.label
        flag: --cortex
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
fwhm: (a float)
        effective FWHM of the smoothing process
        flag: --fwhm %.4f
        mutually_exclusive: smooth_iters
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
out_file: (a file name)
        surface file to write
        flag: --tval %s
reshape: (a boolean)
        reshape surface vector to fit in non-mgh format
        flag: --reshape
smooth_iters: (an integer)
        iterations of the smoothing process
        flag: --smooth %d
        mutually_exclusive: fwhm
subjects_dir: (an existing directory name)
        subjects directory
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored

Outputs:

out_file: (an existing file name)
        smoothed surface file

SurfaceSnapshots

Link to code

Wraps command tksurfer

Use Tksurfer to save pictures of the cortical surface.

By default, this takes snapshots of the lateral, medial, ventral, and dorsal surfaces. See the six_images option to add the anterior and posterior surfaces.

You may also supply your own tcl script (see the Freesurfer wiki for information on scripting tksurfer). The screenshot stem is set as the environment variable “_SNAPSHOT_STEM”, which you can use in your own scripts.

Node that this interface will not run if you do not have graphics enabled on your system.

Examples

>>> import nipype.interfaces.freesurfer as fs
>>> shots = fs.SurfaceSnapshots(subject_id="fsaverage", hemi="lh", surface="pial")
>>> shots.inputs.overlay = "zstat1.nii.gz"
>>> shots.inputs.overlay_range = (2.3, 6)
>>> shots.inputs.overlay_reg = "register.dat"
>>> res = shots.run() 

Inputs:

[Mandatory]
hemi: ('lh' or 'rh')
        hemisphere to visualize
        flag: %s, position: 2
subject_id: (a string)
        subject to visualize
        flag: %s, position: 1
surface: (a string)
        surface to visualize
        flag: %s, position: 3

[Optional]
annot_file: (an existing file name)
        path to annotation file to display
        flag: -annotation %s
        mutually_exclusive: annot_name
annot_name: (a string)
        name of annotation to display (must be in $subject/label directory
        flag: -annotation %s
        mutually_exclusive: annot_file
args: (a string)
        Additional parameters to the command
        flag: %s
colortable: (an existing file name)
        load colortable file
        flag: -colortable %s
demean_overlay: (a boolean)
        remove mean from overlay
        flag: -zm
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
identity_reg: (a boolean)
        use the identity matrix to register the overlay to the surface
        flag: -overlay-reg-identity
        mutually_exclusive: overlay_reg, identity_reg, mni152_reg
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
invert_overlay: (a boolean)
        invert the overlay display
        flag: -invphaseflag 1
label_file: (an existing file name)
        path to label file to display
        flag: -label %s
        mutually_exclusive: label_name
label_name: (a string)
        name of label to display (must be in $subject/label directory
        flag: -label %s
        mutually_exclusive: label_file
label_outline: (a boolean)
        draw label/annotation as outline
        flag: -label-outline
label_under: (a boolean)
        draw label/annotation under overlay
        flag: -labels-under
mni152_reg: (a boolean)
        use to display a volume in MNI152 space on the average subject
        flag: -mni152reg
        mutually_exclusive: overlay_reg, identity_reg, mni152_reg
orig_suffix: (a string)
        set the orig surface suffix string
        flag: -orig %s
overlay: (an existing file name)
        load an overlay volume/surface
        flag: -overlay %s
        requires: overlay_range
overlay_range: (a float or a tuple of the form: (a float, a float) or
         a tuple of the form: (a float, a float, a float))
        overlay range--either min, (min, max) or (min, mid, max)
        flag: %s
overlay_range_offset: (a float)
        overlay range will be symettric around offset value
        flag: -foffset %.3f
overlay_reg: (a file name)
        registration matrix file to register overlay to surface
        flag: -overlay-reg %s
        mutually_exclusive: overlay_reg, identity_reg, mni152_reg
patch_file: (an existing file name)
        load a patch
        flag: -patch %s
reverse_overlay: (a boolean)
        reverse the overlay display
        flag: -revphaseflag 1
screenshot_stem: (a string)
        stem to use for screenshot file names
show_color_scale: (a boolean)
        display the color scale bar
        flag: -colscalebarflag 1
show_color_text: (a boolean)
        display text in the color scale bar
        flag: -colscaletext 1
show_curv: (a boolean)
        show curvature
        flag: -curv
        mutually_exclusive: show_gray_curv
show_gray_curv: (a boolean)
        show curvature in gray
        flag: -gray
        mutually_exclusive: show_curv
six_images: (a boolean)
        also take anterior and posterior snapshots
sphere_suffix: (a string)
        set the sphere.reg suffix string
        flag: -sphere %s
stem_template_args: (a list of items which are a string)
        input names to use as arguments for a string-formated stem template
        requires: screenshot_stem
subjects_dir: (an existing directory name)
        subjects directory
tcl_script: (an existing file name)
        override default screenshot script
        flag: %s
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored
truncate_overlay: (a boolean)
        truncate the overlay display
        flag: -truncphaseflag 1

Outputs:

snapshots: (a list of items which are an existing file name)
        tiff images of the surface from different perspectives

SurfaceTransform

Link to code

Wraps command mri_surf2surf

Transform a surface file from one subject to another via a spherical registration.

Both the source and target subject must reside in your Subjects Directory, and they must have been processed with recon-all, unless you are transforming to one of the icosahedron meshes.

Examples

>>> from nipype.interfaces.freesurfer import SurfaceTransform
>>> sxfm = SurfaceTransform()
>>> sxfm.inputs.source_file = "lh.cope1.nii.gz"
>>> sxfm.inputs.source_subject = "my_subject"
>>> sxfm.inputs.target_subject = "fsaverage"
>>> sxfm.inputs.hemi = "lh"
>>> sxfm.run() 

Inputs:

[Mandatory]
hemi: ('lh' or 'rh')
        hemisphere to transform
        flag: --hemi %s
source_annot_file: (an existing file name)
        surface annotation file
        flag: --sval-annot %s
        mutually_exclusive: source_file
source_file: (an existing file name)
        surface file with source values
        flag: --sval %s
        mutually_exclusive: source_annot_file
source_subject: (a string)
        subject id for source surface
        flag: --srcsubject %s
target_subject: (a string)
        subject id of target surface
        flag: --trgsubject %s

[Optional]
args: (a string)
        Additional parameters to the command
        flag: %s
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
out_file: (a file name)
        surface file to write
        flag: --tval %s
reshape: (a boolean)
        reshape output surface to conform with Nifti
        flag: --reshape
reshape_factor: (an integer)
        number of slices in reshaped image
        flag: --reshape-factor
source_type: ('cor' or 'mgh' or 'mgz' or 'minc' or 'analyze' or
         'analyze4d' or 'spm' or 'afni' or 'brik' or 'bshort' or 'bfloat' or
         'sdt' or 'outline' or 'otl' or 'gdf' or 'nifti1' or 'nii' or
         'niigz')
        source file format
        flag: --sfmt %s
        requires: source_file
subjects_dir: (an existing directory name)
        subjects directory
target_ico_order: (1 or 2 or 3 or 4 or 5 or 6 or 7)
        order of the icosahedron if target_subject is 'ico'
        flag: --trgicoorder %d
target_type: ('cor' or 'mgh' or 'mgz' or 'minc' or 'analyze' or
         'analyze4d' or 'spm' or 'afni' or 'brik' or 'bshort' or 'bfloat' or
         'sdt' or 'outline' or 'otl' or 'gdf' or 'nifti1' or 'nii' or
         'niigz')
        output format
        flag: --tfmt %s
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored

Outputs:

out_file: (an existing file name)
        transformed surface file

Tkregister2

Link to code

Wraps command tkregister2

Examples

Get transform matrix between orig (tkRAS) and native (scannerRAS) coordinates in Freesurfer. Implements the first step of mapping surfaces to native space in this guide.

>>> from nipype.interfaces.freesurfer import Tkregister2
>>> tk2 = Tkregister2(reg_file='T1_to_native.dat')
>>> tk2.inputs.moving_image = 'T1.mgz'
>>> tk2.inputs.target_image = 'structural.nii'
>>> tk2.inputs.reg_header = True
>>> tk2.cmdline
'tkregister2 --mov T1.mgz --noedit --reg T1_to_native.dat --regheader --targ structural.nii'
>>> tk2.run() 

The example below uses tkregister2 without the manual editing stage to convert FSL-style registration matrix (.mat) to FreeSurfer-style registration matrix (.dat)

>>> from nipype.interfaces.freesurfer import Tkregister2
>>> tk2 = Tkregister2()
>>> tk2.inputs.moving_image = 'epi.nii'
>>> tk2.inputs.fsl_in_matrix = 'flirt.mat'
>>> tk2.cmdline
'tkregister2 --fsl flirt.mat --mov epi.nii --noedit --reg register.dat'
>>> tk2.run() 

Inputs:

[Mandatory]
moving_image: (an existing file name)
        moving volume
        flag: --mov %s
reg_file: (a file name, nipype default value: register.dat)
        freesurfer-style registration file
        flag: --reg %s

[Optional]
args: (a string)
        Additional parameters to the command
        flag: %s
environ: (a dictionary with keys which are a value of type 'str' and
         with values which are a value of type 'str', nipype default value:
         {})
        Environment variables
fsl_in_matrix: (an existing file name)
        fsl-style registration input matrix
        flag: --fsl %s
fsl_out: (a file name)
        compute an FSL-compatible resgitration matrix
        flag: --fslregout %s
fstal: (a boolean)
        set mov to be tal and reg to be tal xfm
        flag: --fstal
        mutually_exclusive: target_image, moving_image
fstarg: (a boolean)
        use subject's T1 as reference
        flag: --fstarg
        mutually_exclusive: target_image
ignore_exception: (a boolean, nipype default value: False)
        Print an error message instead of throwing an exception in case the
        interface fails to run
movscale: (a float)
        adjust registration matrix to scale mov
        flag: --movscale %f
noedit: (a boolean, nipype default value: True)
        do not open edit window (exit)
        flag: --noedit
reg_header: (a boolean)
        compute regstration from headers
        flag: --regheader
subject_id: (a string)
        freesurfer subject ID
        flag: --s %s
subjects_dir: (an existing directory name)
        subjects directory
target_image: (an existing file name)
        target volume
        flag: --targ %s
        mutually_exclusive: fstarg
terminal_output: ('stream' or 'allatonce' or 'file' or 'none')
        Control terminal output: `stream` - displays to terminal immediately
        (default), `allatonce` - waits till command is finished to display
        output, `file` - writes output to file, `none` - output is ignored
xfm: (an existing file name)
        use a matrix in MNI coordinates as initial registration
        flag: --xfm %s

Outputs:

fsl_file: (a file name)
        FSL-style registration file
reg_file: (an existing file name)
        freesurfer-style registration file