puzzles of aCompCor

Submitted by mythpsy on
Dear Experts,
    Recently, i want to write my own prepossessing software for personal use and incorporate aComCor method as a main part.
    My quesion is regarding how to perferm standard PCA?
    In the original paper A Component Based Noise Correction Method (CompCor) for BOLD and Perfusion Based fMRI , they wrote
   Compliment with this algorithm is the software is C-PAC, and see this link: https://github.com/Chaogan-Yan/C-PAC/blob/master/CPAC/nuisance/utils.py
   they do  U, S, Vh = np.linalg.svd(np.dot(Yc, Yc.T)), i.e. they use covariance matrix
   but it seems that they do not do variance normalization.
 
   But the script wrote by CaoGan Yan (https://github.com/Chaogan-Yan/DPABI/blob/master/Subfunctions/y_CompCor_PC.m)  claims to be in  agreement with  the paper A Component Based Noise Correction Method (CompCor) for BOLD and Perfusion Based fMRI , but they use [U S V] = svd(AllVolume,'econ'); i.e. they use raw data matrix
 
1) should i use svd or eig?
2) if svd, should i use covariance matrix or raw data matrix?
3) should i do detrend(linear trend and constant removed) as well as variance normalization?
   which should i believe? It really puzzle me for several days, hope for your help.
 

 

--
Clark

 

YAN Chao-Gan

Tue, 10/07/2014 - 21:19

1. svd

2. here is the math: Y*Yt = USV*(USV)t = USV*VtStUt = US*StUt. U is the same.

3. You can do a study to compare. If not, why not follow the CompCor paper?

Best,

Chao-Gan