-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Scott Love
committed
Feb 9, 2017
1 parent
4e5aa8b
commit 06692c1
Showing
31 changed files
with
2,987 additions
and
0 deletions.
There are no files selected for viewing
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,235 @@ | ||
function varargout = svca4_ClassGui(varargin) | ||
% svca4_ClassGui MATLAB code for svca4_ClassGui.fig | ||
|
||
% Edit the above text to modify the response to help svca4_ClassGui | ||
|
||
% Last Modified by GUIDE v2.5 25-Jan-2017 16:27:24 | ||
|
||
% Begin initialization code - DO NOT EDIT | ||
gui_Singleton = 1; | ||
gui_State = struct('gui_Name', mfilename, ... | ||
'gui_Singleton', gui_Singleton, ... | ||
'gui_OpeningFcn', @svca4_ClassGui_OpeningFcn, ... | ||
'gui_OutputFcn', @svca4_ClassGui_OutputFcn, ... | ||
'gui_LayoutFcn', [] , ... | ||
'gui_Callback', []); | ||
if nargin && ischar(varargin{1}) | ||
gui_State.gui_Callback = str2func(varargin{1}); | ||
end | ||
|
||
if nargout | ||
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); | ||
else | ||
gui_mainfcn(gui_State, varargin{:}); | ||
end | ||
% End initialization code - DO NOT EDIT | ||
|
||
% --- Executes just before svca4_ClassGui is made visible. | ||
function svca4_ClassGui_OpeningFcn(hObject, eventdata, handles, varargin) | ||
% Choose default command line output for svca4_ClassGui | ||
|
||
handles.output = varargin{1}; | ||
|
||
% change max frame dropdown | ||
tmp = load_nii_hdr(fullfile(handles.output.PET_dir,handles.output.PET_list{1})); | ||
handles.max_frame.String = 1:tmp.dime.dim(5); | ||
handles.max_frame.Value = handles.output.nFrames; | ||
|
||
% change targets | ||
handles.target_subs.String = num2str(handles.output.targetIDs); | ||
|
||
% change targets | ||
handles.blood_subs.String = num2str(handles.output.BLOOD_sel); | ||
|
||
% change targets | ||
handles.gmwm_subs.String = num2str(handles.output.GMWM_sel); | ||
|
||
% change targets | ||
handles.classSubs.String = num2str(handles.output.classIDs); | ||
|
||
% change targets | ||
handles.tspo_subs.String = num2str(handles.output.TSPO_sel); | ||
% Update handles structuref | ||
guidata(hObject, handles); | ||
|
||
% UIWAIT makes svca4_ClassGui wait for user response (see UIRESUME) | ||
%uiwait(handles.figure1); | ||
|
||
global svca4 | ||
|
||
|
||
% --- Outputs from this function are returned to the command line. | ||
function varargout = svca4_ClassGui_OutputFcn(hObject, eventdata, handles) | ||
global svca4 | ||
|
||
varargout{1} = svca4; | ||
%delete(handles.figure1); | ||
|
||
% --- Executes on button press in out_path. | ||
function out_path_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
if get(hObject,'Value') == 1 | ||
svca4.outputPath = uigetdir('','Select the output PATH'); | ||
end | ||
hObject.Value = 0; | ||
|
||
% --- Executes on button press in PET_data. | ||
function PET_data_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
|
||
if get(hObject,'Value') == 1 | ||
[svca4.PET_list, svca4.PET_dir] = uigetfile({'*.nii','*.nii.gz'},'Select the PET data','MultiSelect','on'); | ||
end | ||
hObject.Value = 0; | ||
|
||
% --- Executes on button press in t1_data. | ||
function t1_data_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
|
||
if get(hObject,'Value') == 1 | ||
[svca4.MRI_list, svca4.MRI_dir] = uigetfile({'*.nii','*.nii.gz'},'Select MRI files','MultiSelect','on'); | ||
end | ||
hObject.Value = 0; | ||
|
||
% --- Executes on button press in brain_masks. | ||
function brain_masks_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
|
||
if get(hObject,'Value') == 1 | ||
[svca4.MASK_list, svca4.MASK_dir] = uigetfile({'*.nii','*.nii.gz'},'Select brain masks','MultiSelect','on'); | ||
end | ||
hObject.Value = 0; | ||
|
||
% --- Executes on button press in gmwm_masks. | ||
function gmwm_masks_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
|
||
if get(hObject,'Value') == 1 | ||
[svca4.SEG_list, svca4.SEG_dir] = uigetfile({'*.nii','*.nii.gz'},'Select segmented MRI files','MultiSelect','on'); | ||
end | ||
hObject.Value = 0; | ||
|
||
% --- Executes on button press in venous_masks. | ||
function venous_masks_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
|
||
if get(hObject,'Value') == 1 | ||
[svca4.BANANA_list svca4.BANANA_dir] = uigetfile({'*.nii','*.nii.gz'},'Select Venous sinus masks','MultiSelect','on'); | ||
end | ||
hObject.Value = 0; | ||
|
||
% --- Executes on button press in tspo_masks. | ||
function tspo_masks_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
|
||
if get(hObject,'Value') == 1 | ||
[svca4.INF_list, svca4.INF_dir] = uigetfile({'*.nii','*.nii.gz'},'Select TSPO masks','MultiSelect','on'); | ||
end | ||
hObject.Value = 0; | ||
|
||
% --- Executes on button press in time_data. | ||
function time_data_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
|
||
if get(hObject,'Value') == 1 | ||
[svca4.TIMES, svca4.TIMES_dir] = uigetfile({'*.txt'},'Select acquisition time files','MultiSelect','on'); | ||
end | ||
hObject.Value = 0; | ||
|
||
% --- Executes when user attempts to close figure1. | ||
function figure1_CloseRequestFcn(hObject, eventdata, handles) | ||
if isequal(get(hObject, 'waitstatus'), 'waiting') | ||
% The GUI is still in UIWAIT, us UIRESUME | ||
uiresume(hObject); | ||
else | ||
% The GUI is no longer waiting, just close it | ||
delete(hObject); | ||
end | ||
|
||
% --- Executes on selection change in max_frame. | ||
function max_frame_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
contents = cellstr(get(hObject,'String')); | ||
svca4.nFrames = str2num(contents{get(hObject,'Value')}); | ||
|
||
% --- Executes during object creation, after setting all properties. | ||
function max_frame_CreateFcn(hObject, eventdata, handles,varargin) | ||
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | ||
set(hObject,'BackgroundColor','white'); | ||
end | ||
|
||
function target_subs_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
|
||
svca4.targetIDs = str2num(get(hObject,'String')); | ||
|
||
% --- Executes during object creation, after setting all properties. | ||
function target_subs_CreateFcn(hObject, eventdata, handles) | ||
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | ||
set(hObject,'BackgroundColor','white'); | ||
end | ||
|
||
function blood_subs_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
|
||
svca4.BLOOD_sel = str2num(get(hObject,'String')); | ||
|
||
% --- Executes during object creation, after setting all properties. | ||
function blood_subs_CreateFcn(hObject, eventdata, handles) | ||
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | ||
set(hObject,'BackgroundColor','white'); | ||
end | ||
|
||
function gmwm_subs_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
|
||
svca4.GMWM_sel = str2num(get(hObject,'String')); | ||
|
||
% --- Executes during object creation, after setting all properties. | ||
function gmwm_subs_CreateFcn(hObject, eventdata, handles) | ||
|
||
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | ||
set(hObject,'BackgroundColor','white'); | ||
end | ||
|
||
function tspo_subs_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
|
||
svca4.TSPO_sel = str2num(get(hObject,'String')); | ||
guidata(hObject, handles); | ||
|
||
% --- Executes during object creation, after setting all properties. | ||
function tspo_subs_CreateFcn(hObject, eventdata, handles) | ||
|
||
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | ||
set(hObject,'BackgroundColor','white'); | ||
end | ||
|
||
% --- Executes on button press in calc. | ||
function calc_Callback(hObject, eventdata, handles) | ||
%global svca4 %not sure if this should be handles.output instead !!! Really need to clean this up in this code | ||
global svca4 | ||
if get(hObject,'Value') == 1 | ||
[TAC_TABLE] = svca4_calculate_classes(svca4); | ||
%[TAC_TABLE] = svca4_calculate_classes_yaqub(svca4); | ||
%figure1_CloseRequestFcn(gcbf, eventdata, handles) | ||
end | ||
|
||
% --- Executes on button press in save_svca4. | ||
function save_svca4_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
uisave('svca4', 'svca4.mat') | ||
|
||
|
||
function classSubs_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
|
||
svca4.classIDs = str2num(get(hObject,'String')); | ||
guidata(hObject, handles); | ||
|
||
% --- Executes during object creation, after setting all properties. | ||
function classSubs_CreateFcn(hObject, eventdata, handles) | ||
|
||
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | ||
set(hObject,'BackgroundColor','white'); | ||
end |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
function varargout = svca4_MaskGui(varargin) | ||
% SVCA4_MASKGUI MATLAB code for svca4_MaskGui.fig | ||
% SVCA4_MASKGUI, by itself, creates a new SVCA4_MASKGUI or raises the existing | ||
% singleton*. | ||
% | ||
% H = SVCA4_MASKGUI returns the handle to a new SVCA4_MASKGUI or the handle to | ||
% the existing singleton*. | ||
% | ||
% SVCA4_MASKGUI('CALLBACK',hObject,eventData,handles,...) calls the local | ||
% function named CALLBACK in SVCA4_MASKGUI.M with the given input arguments. | ||
% | ||
% SVCA4_MASKGUI('Property','Value',...) creates a new SVCA4_MASKGUI or raises the | ||
% existing singleton*. Starting from the left, property value pairs are | ||
% applied to the GUI before svca4_MaskGui_OpeningFcn gets called. An | ||
% unrecognized property name or invalid value makes property application | ||
% stop. All inputs are passed to svca4_MaskGui_OpeningFcn via varargin. | ||
% | ||
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one | ||
% instance to run (singleton)". | ||
% | ||
% See also: GUIDE, GUIDATA, GUIHANDLES | ||
|
||
% Edit the above text to modify the response to help svca4_MaskGui | ||
|
||
% Last Modified by GUIDE v2.5 14-Dec-2016 10:14:18 | ||
|
||
% Begin initialization code - DO NOT EDIT | ||
gui_Singleton = 1; | ||
gui_State = struct('gui_Name', mfilename, ... | ||
'gui_Singleton', gui_Singleton, ... | ||
'gui_OpeningFcn', @svca4_MaskGui_OpeningFcn, ... | ||
'gui_OutputFcn', @svca4_MaskGui_OutputFcn, ... | ||
'gui_LayoutFcn', [] , ... | ||
'gui_Callback', []); | ||
if nargin && ischar(varargin{1}) | ||
gui_State.gui_Callback = str2func(varargin{1}); | ||
end | ||
|
||
if nargout | ||
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); | ||
else | ||
gui_mainfcn(gui_State, varargin{:}); | ||
end | ||
% End initialization code - DO NOT EDIT | ||
|
||
|
||
% --- Executes just before svca4_MaskGui is made visible. | ||
function svca4_MaskGui_OpeningFcn(hObject, eventdata, handles, varargin) | ||
|
||
handles.output = hObject; | ||
|
||
% Update handles structure | ||
guidata(hObject, handles); | ||
|
||
% --- Outputs from this function are returned to the command line. | ||
function varargout = svca4_MaskGui_OutputFcn(hObject, eventdata, handles) | ||
|
||
varargout{1} = handles.output; | ||
|
||
|
||
% --- Executes on selection change in subs. | ||
function subs_Callback(hObject, eventdata, handles) | ||
|
||
|
||
% --- Executes during object creation, after setting all properties. | ||
function subs_CreateFcn(hObject, eventdata, handles) | ||
global svca4 | ||
dr = dir(svca4.SUBJECTS_DIR); | ||
dr(1:2) = []; | ||
drFlags = [dr.isdir]; | ||
|
||
set(hObject,'String',{dr(drFlags).name}); | ||
set(hObject,'Max',length(svca4.PET_list)); | ||
|
||
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | ||
set(hObject,'BackgroundColor','white'); | ||
end | ||
|
||
% --- Executes on selection change in rois. | ||
function rois_Callback(hObject, eventdata, handles) | ||
|
||
|
||
% --- Executes during object creation, after setting all properties. | ||
function rois_CreateFcn(hObject, eventdata, handles) | ||
|
||
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | ||
set(hObject,'BackgroundColor','white'); | ||
end | ||
|
||
% --- Executes on button press in createMask. | ||
function createMask_Callback(hObject, eventdata, handles) | ||
global svca4 | ||
setenv('PATH', [getenv('PATH') ':/usr/local/bin']); | ||
if ~exist([svca4.outputPath '/roiMasks'],'dir') | ||
mkdir([svca4.outputPath '/roiMasks']) | ||
end | ||
subj = handles.subs.String(handles.subs.Value); | ||
|
||
outRoiNums = cellfun(@strtok, handles.rois.String(handles.rois.Value),'UniformOutput',false); | ||
outRoiNums = cellfun(@str2num,outRoiNums,'UniformOutput',false); | ||
outRoiNums = [outRoiNums{:}]; | ||
zs = zeros(size(outRoiNums)); | ||
|
||
changeVec = [outRoiNums; zs]; | ||
changeVec = changeVec(:)'; | ||
|
||
inds = handles.subs.Value; % indices to the subjects | ||
for s = 1:length(handles.subs.Value) % loop on subjects | ||
% this will use the c3d commands that come with itksnap. You may have | ||
% problems with the path to this command. Put the c3d executable in a | ||
% folder in the computers $PATH. See the setenv call above, you may | ||
% need to change /usr/local/bin for example. Basically make the c3d | ||
% executable visible to the terminal MATLAB calls. | ||
roiFile = fullfile(svca4.SUBJECTS_DIR, subj{s}, 'label', [subj{s} '_AparcAseg_in_PET.nii.gz']); | ||
outFile = fullfile(svca4.outputPath, 'roiMasks', [subj{s} '_' handles.outName.String]); | ||
cmd = ['source ${HOME}/.profile; c3d ' roiFile ' -replace ' num2str(changeVec) ' -binarize -o ' outFile]; | ||
system(cmd); | ||
end | ||
|
||
function outName_Callback(hObject, eventdata, handles) | ||
|
||
% --- Executes during object creation, after setting all properties. | ||
function outName_CreateFcn(hObject, eventdata, handles) | ||
|
||
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | ||
set(hObject,'BackgroundColor','white'); | ||
end |
Binary file not shown.
Oops, something went wrong.