Hi. I'm using CONN to analyze task-based functional connectivity
from macaque scans that used MION contrast agent. I believe I got
it to work, but I hope people more familiar with the inner workings
of CONN could provide feedback on if my methods are sound.
I used modified spm_hrf code to implement the MION HRF, which
produces the desired MION-HRF-convolved condition time series (for
use as confounds during denoising). However, the MION HRF is a
negative deflection, so after conn_process.m produces HRF-convolved
condition time series, all temporal weights assigned to conditions
would be negative, meaning no data points would be included in
analyses because CONN only looks for positive temporal weights.
1) I therefore edited conn_process.m to look for negative
weights:
From line 600:
% BOLD HRF
% idx1=find(x>0); idx2=[0;find(diff(idx1)>1);length(idx1)]; %
crop to within-condition samples
% MION HRF
idx1=find(x<0); idx2=[0;find(diff(idx1)>1);length(idx1)]; %
crop to within-condition samples
2) And I inverted the MION HRF-convolved time series when temporal
weights variables are defined:
From (new) line 622, see the additional "*-1" in uncommented
lines:
% BOLD HRF
% tweights{1}=cat(1,tweights{1},x(idx(:)));
% HRF
%.*xw(idx(:)))
% tweights{2}=cat(1,tweights{2},conn_hanning(length(idx)));
% HANNING %.*xw(idx(:)));
% tweights{3}=cat(1,tweights{3},xw(idx(:)));
% HRF.*MODUL
(note: this option is now obsolete; tbd)
% tweights{4}=cat(1,tweights{4},idx(:));
% IDX
% tweights{5}=cat(1,tweights{5},(1:numel(idx))');
% JDX
% MION HRF
tweights{1}=cat(1,tweights{1},(x(idx(:))*-1));
% HRF
%.*xw(idx(:)))
tweights{2}=cat(1,tweights{2},conn_hanning(length(idx)));
% HANNING %.*xw(idx(:)));
tweights{3}=cat(1,tweights{3},(xw(idx(:))*-1));
% HRF.*MODUL
(note: this option is now obsolete; tbd)
tweights{4}=cat(1,tweights{4},idx(:));
% IDX
tweights{5}=cat(1,tweights{5},(1:numel(idx))');
% JDX
This appears to have worked, but any feedback on potential errors
or unintended consequences from this protocol would be greatly
appreciated!
