User Tools

Site Tools


processing_stream_-_image_file_conversion

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
processing_stream_-_image_file_conversion [2010/05/26 19:26]
jochen Added another layer of fileparts to the removal loop
processing_stream_-_image_file_conversion [2010/05/30 05:36] (current)
jochen added instructions for SPM8
Line 21: Line 21:
 To ensure that the sorted list of filenames to be imported are in a correct temporal order, the use of the [[renamedicom]] function is highly recommended (unless you can confirm that the files you have already are properly named). To ensure that the sorted list of filenames to be imported are in a correct temporal order, the use of the [[renamedicom]] function is highly recommended (unless you can confirm that the files you have already are properly named).
  
-This functionality is **not yet** available as a compound function, but can be easily achieved by using the following code (adapted to your specific situation, of course):+This functionality is **not yet** available as a compound function, but can be easily achieved by using the following code for SPM5 (adapted to your specific situation, of course; wherever necessary and SPM8 instructions require, this is marked!):
  
 <code matlab>% load the DICOM import job file <code matlab>% load the DICOM import job file
 jobs = neuroelf_file('​p',​ '​spm5_dicomimport_job'​);​ jobs = neuroelf_file('​p',​ '​spm5_dicomimport_job'​);​
 +% for SPM8 it's '​spm8_dicomimport_job'​ of course!
 jobs = jobs.jobs; jobs = jobs.jobs;
  
 % use SPM's defaults % use SPM's defaults
-spm_defaults;​ % for SPM8 use spm('​defaults',​ '​FMRI'​);​+spm_defaults;​ 
 +% for SPM8 use spm('​defaults',​ '​FMRI'​);​ 
 + 
 +% ** IF YOU WISH TO USE THE SINGLE-FILE NIFTI FORMAT, SAY 
 +% jobs{1}.util{1}.dicom.convopts.format = '​nii';​ % for SPM5 or 
 +% jobs{1}.spm.util.dicom.convopts.format = '​nii';​ % for SPM8 ! 
 +% ** OTHERWISE THE TWO-FILE HDR+IMG FORMAT IS USED! **
  
 % change into your study'​s folder % change into your study'​s folder
Line 34: Line 41:
  
 % find all folders that contain DICOM import files (sessions) % find all folders that contain DICOM import files (sessions)
-importdirs = findfiles([pwd '/​CHIP*/func/​raw'​],​ '​*',​ '​dirs=1',​ '​depth=1'​);​+importdirs = findfiles([pwd '/​CHIP*/​raw'​],​ '*r*', '​dirs=1',​ '​depth=1'​);​
  
 % remove subjects that have already been imported % remove subjects that have already been imported
-donedirs = findfiles([pwd '/​CHIP*/​func'​],​ 'run*', '​dirs=1',​ '​depth=1'​);​+donedirs = findfiles([pwd '/​CHIP*/​func'​],​ 'r*', '​dirs=1',​ '​depth=1'​);​
 for dc = 1:​numel(donedirs) for dc = 1:​numel(donedirs)
  
Line 49: Line 56:
  
     % find dicom files     % find dicom files
-    dcmfiles = findfiles(importdirs{dc},​ '​*.dcm'​);​+    dcmfiles = findfiles(importdirs{dc},​ '*.dcm', '​depth=1');
     ​     ​
     % no files, continue     % no files, continue
Line 58: Line 65:
     % figure out the target folder     % figure out the target folder
     [study, target] = fileparts(fileparts(dcmfiles{1}));​     [study, target] = fileparts(fileparts(dcmfiles{1}));​
 +    ​
 +    % re-vamp the target folder name (which for us is NUMVOLr_NUMSCAN)
 +    target_particles = regexp(target,​ '​^(\d+)r_(\d+)$',​ '​tokens'​);​
 +    if isempty(target_particles) || ...
 +        numel(target_particles{1}) ~= 2
 +        continue;
 +    end
 +    target = sprintf('​r%02d_%03d',​ ...
 +        str2double(target_particles{1}{2}),​ ...
 +        str2double(target_particles{1}{1}));​
     ​     ​
     % create target folder     % create target folder
-    target = [fileparts(study) '/run_' target];+    target = [fileparts(study) '/func/' target];
     mkadir(target);​     mkadir(target);​
     ​     ​
Line 66: Line 83:
     jobs{1}.util{1}.dicom.data = dcmfiles;     jobs{1}.util{1}.dicom.data = dcmfiles;
     jobs{1}.util{1}.dicom.outdir{1} = target;     jobs{1}.util{1}.dicom.outdir{1} = target;
 +    % for SPM8, these two lines must be
 +    % jobs{1}.spm.util.dicom.data = dcmfiles;
 +    % jobs{1}.spm.util.dicom.outdir{1} = target;
     ​     ​
     % run import job     % run import job
processing_stream_-_image_file_conversion.1274894782.txt.gz · Last modified: 2010/05/26 19:26 by jochen