123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- function [mNet,mNet_scrub,mNet_scrub_GSR,IOR] = grabMRI(TC_fullfile,GSR,scratch,rate_data)
- [matrix] = load(TC_fullfile);
- funcmat = double(matrix.matrix);
- ts.ts = funcmat;
- ts.tr = 2.48;
- ts.Nnodes = size(funcmat,2);
- ts.Ntimepoints = size(funcmat,1);
- ts.Nsubjects = 1;
- ts.NnodesOrig = ts.Nnodes;
- ts.NtimepointsPerSubject = size(funcmat,1);
- ts.DD = 1:ts.Nnodes;
- ts.UNK = [];
- netmats = nets_netmats_md(ts,1,0,'corr'); % correlation transformed 2 Z-scores
- mNet = reshape(netmats(1,:),[sqrt(length(netmats)) sqrt(length(netmats))]);
- [IOR_mNet] = InOutRatio(mNet);
- % Scrubbing
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- ts_scrub = ts;
- if ~isempty(scratch)
- funcmat_scrub = ts_scrub.ts;
- funcmat_scrub(scratch,:) = [];
- ts_scrub.ts = funcmat_scrub;
- ts_scrub.Ntimepoints = size(funcmat_scrub,1);
- ts_scrub.NtimepointsPerSubject = size(funcmat_scrub,1);
- else
- funcmat_scrub = ts_scrub.ts;
- end
- netmats_scrub = nets_netmats_md(ts_scrub,1,0,'corr'); % correlation transformed 2 Z-scores
- mNet_scrub = reshape(netmats_scrub(1,:),[sqrt(length(netmats_scrub)) sqrt(length(netmats_scrub))]);
- IOR_mNet_scrub = InOutRatio(mNet_scrub);
- % Global signal regression
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- if exist("GSR","var")
- if ~isempty(scratch)
- GSR(scratch)=[];
- end
- yadj = zeros(size(ts_scrub.ts));
- X = detrend(GSR,'constant');
- for v = 1:ts.Nnodes
- [Q, R]=qr(X,0);
- b = R\(Q'*funcmat_scrub(:,v));
- yvoxmodel = b(1)*X(:,1);
- % Adjust time-series
- yadj(:,v) = funcmat_scrub(:,v) - yvoxmodel;
- end
- ts_scrub.ts = double(yadj);
- end
- netmats_scrub_GSR = nets_netmats_md(ts_scrub,1,0,'corr'); % correlation transformed 2 Z-scores
- mNet_scrub_GSR = reshape(netmats_scrub_GSR(1,:),[sqrt(length(netmats_scrub_GSR)) sqrt(length(netmats_scrub_GSR))]);
- IOR_mNet_scrub_GSR = InOutRatio(mNet_scrub_GSR);
- IOR = IOR_mNet_scrub_GSR;
- if rate_data == 1
- % compute matrix plots
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- figure('units','normalized','outerposition',[0 0 1 1])
-
- subplot(131)
- plotmat_values_rsfMRI(mNet,[],[-1 1],0,[]);
- hold on
- axis square;
- plot(get(gca,'xlim'),[mean(get(gca,'ylim')), mean(get(gca,'ylim'))],'k-','linewidth',2);
- plot([mean(get(gca,'xlim')), mean(get(gca,'xlim'))], get(gca,'ylim'),'k-','linewidth',2);
- title(strcat('raw mNet (IOR: ',num2str(round(IOR_mNet,2)),')'))
- subplot(132)
- plotmat_values_rsfMRI(mNet_scrub,[],[-1 1],0,[]);
- hold on
- axis square;
- plot(get(gca,'xlim'),[mean(get(gca,'ylim')), mean(get(gca,'ylim'))],'k-','linewidth',2);
- plot([mean(get(gca,'xlim')), mean(get(gca,'xlim'))], get(gca,'ylim'),'k-','linewidth',2);
- title({strcat('mNet scratched (IOR: ',num2str(round(IOR_mNet_scrub,2)),')')})
- subplot(133)
- plotmat_values_rsfMRI(mNet_scrub_GSR,[],[-1 1],0,[]);
- hold on
- axis square;
- plot(get(gca,'xlim'),[mean(get(gca,'ylim')), mean(get(gca,'ylim'))],'k-','linewidth',2);
- plot([mean(get(gca,'xlim')), mean(get(gca,'xlim'))], get(gca,'ylim'),'k-','linewidth',2);
- title(strcat('mNet scratched + GSR (IOR: ',num2str(round(IOR_mNet_scrub_GSR,2)),')'))
- end
- end
-
|