Print

Print


Dear Jane,

there are several ways to do this (it also depends on which version of
SPM you are using):

* create a new 4D file without the dummy scans and proceed as normal:
  SPM > Util > 3D to 4D File Conversion
  See
http://en.wikibooks.org/wiki/SPM/Working_with_4D_data#Creating_4D_NIfTI_files_in_SPM

* use the dedicated batch module:
  SPM > Util > Expand image frames

* use spm_select('ExtFPList',...) where you can specify your frames of
interest:
  spm_select('ExtFPList',SCAN_dir,'^SCAN\.nii$',6:180)

* use spm_select('expand',fullfile(SCAN_dir,'SCAN.nii')) in SPM12 to get
the entire list of 3D scans and then select a subset
  tmp = spm_select('expand',fullfile(SCAN_dir,'SCAN.nii'));
  tmp = cellstr(tmp(6:180,:));

Best wishes,
Guillaume.


On 06/10/14 09:03, Jane Garrison wrote:
> I have a relatively large number of 4D nifti files that I need to
> manipulate. The first 5 volumes of each file are dummy scans which need
> to be discarded for the analysis.
> 
> I am reading the volume information using spm_vol() and have determined
> the number of volumes in each scan. I now need to pass a subset of the
> volumes to various SPM functions for analysis. I am struggling to find
> the correct syntax and would appreciate some assistance.
> 
> Suppose the scan in question is called SCAN.nii, it resides in SCAN_dir,
> and the number of volumes has been determined to be 180. I am trying to
> run code similar to the following example (which is failing):
> 
> tmp = strcat(spm_select('FPList', SCAN_dir,SCAN.nii),',6:180));
> matlabbatch{1}.spm.spatial.realignunwarp.data(1).scans = cellstr(tmp);
> 
> Please could someone offer some advice with the correct syntax here. 
> 
> Thanks so much
> Jane. 


-- 
Guillaume Flandin, PhD
Wellcome Trust Centre for Neuroimaging
University College London
12 Queen Square
London WC1N 3BG