0001 function dmri_parcel_to_label_file(parcels_file, fs_info_file, output_dir)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 if nargin ~= 3
0037 error('Please check input arguments.');
0038 end
0039 if exist(parcels_file, 'file') ~= 2
0040 error(sprintf('Specified parcels file not found : %s', parcels_file));
0041 end
0042 if exist(fs_info_file, 'file') ~= 2
0043 error(sprintf('Specified freesurfer information file not found: %s', fs_info_file));
0044 end
0045 if exist(fs_info_file, 'dir') ~= 7
0046 mkdir(output_dir);
0047 end
0048
0049
0050
0051
0052 format long
0053
0054 fs = load(fs_info_file);
0055
0056
0057 lhascfile = fs.FS_wm.lh_smoothwm_asc_file;
0058 rhascfile = fs.FS_wm.rh_smoothwm_asc_file;
0059
0060
0061 [l_S, l_v, l_f] = read_asc(lhascfile);
0062 [r_S, r_v, r_f] = read_asc(rhascfile);
0063
0064 load(parcels_file);
0065 size_left = length(lh_cortex_id);
0066 Nlabel = length(lh_cortex_id) + length(rh_cortex_id);
0067
0068 cortex_id = [lh_cortex_id; rh_cortex_id];
0069
0070
0071 fprintf('Now putting label files into %s\n', output_dir);
0072 for nv = 1:Nlabel
0073 original_ind = cortex_id{nv};
0074
0075 if nv <= size_left
0076 lxyz = l_v(original_ind, 1:3);
0077 lvals = l_v(original_ind, 4);
0078 else
0079 lxyz = r_v(original_ind, 1:3);
0080 lvals = r_v(original_ind, 4);
0081 end
0082
0083
0084 labelfile = fullfile(output_dir, filesep, ['parcel' num2str(nv) '.label']);
0085 lindex = original_ind - 1;
0086
0087
0088 ok = write_label(lindex, lxyz, lvals, labelfile, parcels_file);
0089 if ok ~=1
0090 error('Writing .label file is failed!!');
0091 end
0092 end
0093
0094 fprintf('done.\n');
0095
0096
0097
0098
0099
0100 original_ind = fs.FS_wm.lh_subcortex_index;
0101 lxyz = l_v(original_ind, 1:3);
0102 lvals = l_v(original_ind, 4);
0103 labelfile = fullfile(output_dir, filesep, 'lh.subcortex.label');
0104
0105 lindex = original_ind - 1;
0106 ok = write_label(lindex, lxyz, lvals, labelfile, parcels_file);
0107
0108 original_ind = fs.FS_wm.rh_subcortex_index;
0109 lxyz = r_v(original_ind, 1:3);
0110 lvals = r_v(original_ind, 4);
0111 labelfile = fullfile(output_dir, filesep, 'rh.subcortex.label');
0112
0113 lindex = original_ind - 1;
0114 ok = write_label(lindex, lxyz, lvals, labelfile, parcels_file);