User Tools

Site Tools


public:data_natneuro_2013_kahn:matlab_scripts:2a_prepdata_run_drift_glms
2a_prepData_run_Drift_glms.m
%
%   _______________________________________________
%   by Marcelo G Mattar (10/21/2013)
%   mattar@sas.upenn.edu
%
baseDir = '/jet/aguirre/FaceSpace/';
dataDir = '~/Data/FaceSpace/';
datasets = {'MDS_RGI','MDS_Multi'};
FSpath = '/Applications/freesurfer';
SUBJECTS_DIR = '/jet/aguirre/freesurfer/subjects';
FWHM = 10;

subjectList_RGI = {...
    % [list of subject ID strings redacted]
    };
subjectList_Multi = {...
    % [list of subject ID strings redacted]
    };
%{
filename_endings = cell(101,1);
for i=0:100
    filename_endings{i+1} = sprintf('%03d',i);
end
%}
%filename_endings = {'000' '005' '010' '015' '020' '025' '030' '035' '040' '045' '050' '055' '060' '065' '070' '075' '080' '085' '090' '095' '100'};
filename_endings = {'000_100'};

for d = 2
    % Determine which dataset we'll work on
    dataset = datasets{d};
    switch dataset
        case 'MDS_RGI'
            subjectList = subjectList_RGI;
            dataset_lowercase = '-mds_rgi';
        case 'MDS_Multi'
            subjectList = subjectList_Multi;
            dataset_lowercase = '-mds_multi';
    end
    
    numSubjects = length(subjectList);
    
    fsgdFile = [dataDir 'group_glms/' dataset '/Drift.fsgd'];
    
    %% Resample multiple subjects' BOLD beta maps to create the subject's freesurfer based right and left hemispheric surface betas
    for k = 1:length(filename_endings)
        
        disp(['**************************** Coef = ' filename_endings{k}]);
        
        outputDir = [dataDir 'group_glms/' dataset '/DriftAdapt/'];
        mkdir(outputDir);
        
        for s = 1:numSubjects
            refVolName = [baseDir dataset '/subjects/' subjectList{s} '/Anatomy/FS-register.dat'];
            
            % Convert the statmap to a .img file
            if strcmp(filename_endings{k},'000_100')
                system(['/usr/local/VoxBo/bin/vbstatmap ' baseDir dataset '/subjects/' subjectList{s} '/Models/Drift/Drift_' filename_endings{k} ' -c ''foo rb vec 1 1 0'' -o ' baseDir dataset '/subjects/' subjectList{s} '/Models/Drift/Drift_' filename_endings{k} '/' subjectList{s} '_' filename_endings{k} '.cub']);
            else
                system(['/usr/local/VoxBo/bin/vbstatmap ' baseDir dataset '/subjects/' subjectList{s} '/Models/Drift/Drift_' filename_endings{k} ' -c ''foo rb vec 1'' -o ' baseDir dataset '/subjects/' subjectList{s} '/Models/Drift/Drift_' filename_endings{k} '/' subjectList{s} '_' filename_endings{k} '.cub']);
            end
            system(['/usr/local/VoxBo/bin/vbconv -f ' baseDir dataset '/subjects/' subjectList{s} '/Models/Drift/Drift_' filename_endings{k} '/' subjectList{s} '_' filename_endings{k} '.cub ' baseDir dataset '/subjects/' subjectList{s} '/Models/Drift/Drift_' filename_endings{k} '/' subjectList{s} '_' filename_endings{k} '.img']);
            
            this_command_resample_data_lh = ['export FREESURFER_HOME=' FSpath ';export SUBJECTS_DIR=' SUBJECTS_DIR ';export PATH=' FSpath '/bin:$PATH;' ...
                '/Applications/freesurfer/bin/mri_vol2surf' ...
                ' --src ' baseDir dataset '/subjects/' subjectList{s} '/Models/Drift/Drift_' filename_endings{k} '/' subjectList{s} '_' filename_endings{k} '.img' ...
                ' --srcreg ' refVolName ...
                ' --hemi lh  ' ...
                ' --projfrac 0.5' ...
                ' --noreshape' ...
                ' --o ' SUBJECTS_DIR '/' subjectList{s} dataset_lowercase '/surf/lh.Drift_' filename_endings{k} '.mgh' ...
                ];
            system(this_command_resample_data_lh);
            
            this_command_resample_data_rh = ['export FREESURFER_HOME=' FSpath ';export SUBJECTS_DIR=' SUBJECTS_DIR ';export PATH=' FSpath '/bin:$PATH;' ...
                '/Applications/freesurfer/bin/mri_vol2surf' ...
                ' --src ' baseDir dataset '/subjects/' subjectList{s} '/Models/Drift/Drift_' filename_endings{k} '/' subjectList{s} '_' filename_endings{k} '.img' ...
                ' --srcreg ' refVolName ...
                ' --hemi rh  ' ...
                ' --projfrac 0.5' ...
                ' --noreshape' ...
                ' --o ' SUBJECTS_DIR '/' subjectList{s} dataset_lowercase '/surf/rh.Drift_' filename_endings{k} '.mgh' ...
                ];
            system(this_command_resample_data_rh);
        end
        
        %% The first step is to create a pre-processed group file for the FreeSurfer GLM.
        this_command_assemble_data_lh = ['export FREESURFER_HOME=' FSpath ';export SUBJECTS_DIR=' SUBJECTS_DIR ';export PATH=' FSpath '/bin:$PATH;' ...
            '/Applications/freesurfer/bin/mris_preproc' ...
            ' --fsgd ' fsgdFile ...
            ' --target fsaverage' ...
            ' --hemi lh' ...
            ' --meas Drift_' filename_endings{k} '.mgh' ...
            ' --out ' outputDir 'lh.Drift_' filename_endings{k} '.00.mgh' ...
            ];
        system(this_command_assemble_data_lh);
        
        this_command_assemble_data_rh = ['export FREESURFER_HOME=' FSpath ';export SUBJECTS_DIR=' SUBJECTS_DIR ';export PATH=' FSpath '/bin:$PATH;' ...
            '/Applications/freesurfer/bin/mris_preproc' ...
            ' --fsgd ' fsgdFile ...
            ' --target fsaverage' ...
            ' --hemi rh' ...
            ' --meas Drift_' filename_endings{k} '.mgh' ...
            ' --out ' outputDir 'rh.Drift_' filename_endings{k} '.00.mgh' ...
            ];
        system(this_command_assemble_data_rh);
        
        
        %% Next we smooth the maps created above
        this_command_smooth_lh = ['export FREESURFER_HOME=' FSpath ';export SUBJECTS_DIR=' SUBJECTS_DIR ';export PATH=' FSpath '/bin:$PATH;' ...
            '/Applications/freesurfer/bin/mri_surf2surf' ...
            ' --hemi lh' ...
            ' --s fsaverage' ...
            ' --sval ' outputDir 'lh.Drift_' filename_endings{k} '.00.mgh' ...
            ' --fwhm 10' ...
            ' --cortex' ...
            ' --tval ' outputDir 'lh.Drift_' filename_endings{k} '.fwhm10.mgh' ...
            ];
        system(this_command_smooth_lh);
        
        this_command_smooth_rh = ['export FREESURFER_HOME=' FSpath ';export SUBJECTS_DIR=' SUBJECTS_DIR ';export PATH=' FSpath '/bin:$PATH;' ...
            '/Applications/freesurfer/bin/mri_surf2surf' ...
            ' --hemi rh' ...
            ' --s fsaverage' ...
            ' --sval ' outputDir 'rh.Drift_' filename_endings{k} '.00.mgh' ...
            ' --fwhm 10' ...
            ' --cortex' ...
            ' --tval ' outputDir 'rh.Drift_' filename_endings{k} '.fwhm10.mgh' ...
            ];
        system(this_command_smooth_rh);

        
        %% Next we run the group GLM
        this_command_runGLM_lh = ['export FREESURFER_HOME=' FSpath ';export SUBJECTS_DIR=' SUBJECTS_DIR ';export PATH=' FSpath '/bin:$PATH;' ...
            '/Applications/freesurfer/bin/mri_glmfit' ...
            ' --y ' outputDir 'lh.Drift_' filename_endings{k} '.fwhm10.mgh' ...
            ' --fsgd ' fsgdFile ...
            ' --osgm' ...
            ' --surf fsaverage lh' ...
            ' --cortex' ...
            ' --glmdir ' outputDir 'lh.Drift_' filename_endings{k} '.glmdir' ...
            ];
        system(this_command_runGLM_lh);
        
        this_command_runGLM_rh = ['export FREESURFER_HOME=' FSpath ';export SUBJECTS_DIR=' SUBJECTS_DIR ';export PATH=' FSpath '/bin:$PATH;' ...
            '/Applications/freesurfer/bin/mri_glmfit' ...
            ' --y ' outputDir 'rh.Drift_' filename_endings{k} '.fwhm10.mgh' ...
            ' --fsgd ' fsgdFile ...
            ' --osgm' ...
            ' --surf fsaverage rh' ...
            ' --cortex' ...
            ' --glmdir ' outputDir 'rh.Drift_' filename_endings{k} '.glmdir' ...
            ];
        system(this_command_runGLM_rh);
        
        
    end
    
end


public/data_natneuro_2013_kahn/matlab_scripts/2a_prepdata_run_drift_glms.txt · Last modified: 2013/10/31 13:55 by kahn