在肖柯的硕士毕业论文中《基于CCA的fMRI时空模型数据处理方法的研究》,他的总体思路是利用cca提取出fmri图像在时间和空间上两个相关系数,也就是两个特征,然后利用pca,对这两个特征进行融合,得的一个综合的相关系数,然后利用这个综合的相关系数进行选取阈值,然后判别激活与否。
首先,他没有降噪。
其次,他有一个假设,就是信号发生体素具有空间局部性和时间局部性。
所以,我们才有这样的假设,就是如果一个体素的时间cca系数较高,或者空间cca系数较高,
那么,再或者空间-时间两者系数都较高,那么我们就可以判别这个体素是激活的。
但是,这个假设成立与否,是值得怀疑的。
最后,这位作者的实验设计,不够完整,比如激活阈值的选取不严谨,仿真数据的设置不严谨。
//其实这里是可以利用统计校验进行优化+去噪
——————————————————————————————————————
1.02年ola是第一个应用cca在fmri激活检测上的学者。这是最早的。
《exploratory fmri analysis by autocorrelation maximization》
在 《Exploratory identification of cardiac noise in fMRI images》论文中,就对这篇鼻祖论文进行了批评:对于残差没有考虑,只是进行激活检测。《Exploratory identification of cardiac noise in fMRI images》的实验方法,是基于这篇论文,但是主要放在了静息态数据上面,提取出map,然后放到后面的激活检测上面,作为先验知识。
2.06年川大的那位肖柯硕士论文,几乎是完全基于ola的论文,只是最后最temporal和spatial做了融合。也是用于做激活检测。
《基于CCA的fMRI时空模型数据处理方法的研究》
干啊,就这篇中文论文,能基本完全看懂。
3.02年南理工的yang jian,发表了impca,改变以前基于向量的方式,进行实验,而是直接采用图像矩阵的方式,进行实验。效果很快。
因为,我对这几种算法的数学机理都不是很熟悉,所以准确率不是很了解。
《From image vector to matrix a straightforward image projection technique IMPCA vs PCA》
这篇论文,需要进行实现。
4.10年国防科大的几位博士,做了这样一件工作,把impca与cca进行融合,进行fmri激活检测。效果也不错。也是用于激活检测。
《OI and fMRI Signal Separation Using Both Temporal and Spatial Autocorrelations》
它这里的方法的好处是,可以不用进行降维,就可以直接利用cca算法。
并且,它这里有一个假设,就是其他一般的cca算法,一般需要先执行pca,进行降维,这样做,是有问题的。因为降维或多或少,会对数据的结构产生影响。
这篇论文,需要进行实现。这篇论文和论文3需要一起看的,是基于同一个方法。
这篇论文,在利用LD-CCA进行,其实是通过改变矩阵的结构,同时实现cca空域和时域信息的融合。
并且利用cca生成的成分抽取了时域信号源,抽取的信号源不止一个。
将这些信号源都与仿真的信号,做相关分析。
恢复信号源,对于我们来说,太重要了。有了信号源,我们就可以同时基于信号源做激活检测和噪声去除。
其实,对于信号源抽取这里,我并没有完全理解。
5.10年、13年多大的churchill博士,做了这样的工作,就是利用cca做伪影、结构噪声的识别与去除,而不是直接用于激活检测了。
《PHYCAA Data-driven measurement and removal of 》
《PHYCAA An optimized, adaptive procedure for measuring and controlling physiological noise in BOLD fMRI》
这篇论文,从开学就一直在跟进,这篇论文在基于数据驱动的生理去噪方面,做的工作,最多,最深入。
基于CCA。
更重要的是,代码也提供。还有,就是这位研究者,现在还在这里的代码上进行跟进。
6.zollei 2003年的文章,算是集前人的小成,是生理噪音去除方面,比较全面的一篇论文。
《Exploratory identification of cardiac noise in fMRI images》
7.dagli在生理去噪领域最早干了这样一件事儿,就是不仅仅是从频率上,时域上,进行生理噪音的识别与去除,而且从空间上,进行噪音的定位。
《Localization of Cardiac-Induced Signal Change in fMRI》
太多组织、器官名字了,真心看不懂啊。
8. 《Extending Local Canonical Correlation Analysis to Handle General Linear Contrasts for fMRI Data》 待看
9. 《Temporal Kernel CCA and its Application in Multimodal Neuronal Data Analysis》待看
10.《Multivariate fMRI Analysis using Canonical Correlation Analysis instead of Classifiers,Comment on Todd et al.》
瑞典人干的活:这篇论文,是在一个叫Todd的学者基础上,接着做review,谈论CCA的优点,好多好多优点啊。可以写进我的论文综述一节中。
瑞典人,写了一个测试代码,很简练,数据集是3*3*3的volume,所以不需要做PCA了。
11.《Non-WhiteNoisein fMRI: Doesmodellinghaveanimpact? 》
作者在这篇论文中,与spm的AR(1)模型做对比,证明了spm在大动脉附近的震荡噪声是不具备能力的。
作者提出的NVR,是多种models模型的融合。
在这篇论文中,我第一次懂得,什么叫采样频率低,会导致那些高频信号,无法完整恢复,并导致这些高频信号的片段,与低频信号产生混叠的公理化描述。
12.《Extending Local Canonical Correlation Analysis to Handle General Linear Contrasts for fMRI Data》
这篇论文中,提出了CCA分析的一些缺陷,呵呵,终于有人在干这种活了。
1.在时域上,进行正则,没有考虑进行统计test校验。
所以,这位研究者,就进行了这样的工作:把cca与MVMR多变量多回归进行结合,这样做之后,cca就可以处理更复杂的激活统计推断。
2.我们在利用GLM模型时,必须要有这样的一个假设,就是residual是满足正太分布的,也就是噪声是高斯的。
3.从这篇论文中,我知道了,我所看到的cca分析方法,都是非受限的cca,这是有问题的。但是,问题在哪里?
利用cca考虑假阳性问题。
13.《Adaptive analysis of fMRI data》
Friman的利用cca的文章,自适应分析文章,被引用一百多次。
14.《 Detection of Neural Activity in Functional MRI Using Canonical Correlation Analysis》
攻击统计参数图,作为单变量分析,它对情况过于严苛:比如要求噪声服从高斯分布。要用到hrf做卷积,可是hrf本身是被试依赖,时间依赖。
最大的问题是,忽略空间上相关性。
从这篇论文中,我们知道利用CCA分析问题时,要区分全局和局部两种应用场景。
从理论的角度,从数学的高度,我们必须把cca当作glm是一类事物,他们只是在变量的个数上存在差异。
主要是利用空域CCA,定义了一个9*9的方块,来取最大相关系数。然后定义了一个signal subspace。
这个信号子空间用来干啥呢,就是hrf,既然不是固定的,我们就假设他如小波那样,可以由尺度函数,和小波函数组合而成。我们就在要比对的时候,才进行组装,组装的结果要和cca空域上有最大的相关系数。
如果只选取一个pixel,那么我们只需要一个hrf就可以了,这时,这里的这个cca,就会退化成一般的glm,一般的相关分析。
这里的基函数选取工作,或者叫做信号子空间选取工作,已经由这篇文献做了:
《Activation detection in functional MRI using subspace modeling and maximum likelihood estimation 》
从这篇论文中,我又知道了这样一件事儿,就是:cca有这样几种用法:
1.在时域上,引入一个延迟,然后,自身做相关;
2.在空域上,引入领域,然后,与自身做相关;
3.在空域上,引入领域,然后,与hrf做相关。其实就是glm的推广。
4.在空域上,引入领域,然后,与又基函数临时动态组成的hrf做相关。其实就是3的推广。
5.在空域和时域上,结合1和2,提取一个综合系数,其实是1和2的推广。
15.《Adaptive analysis of fMRI data》
--------------------------------------------------------------------
其实,工作做到现在,我们应该懂得,就是cca干的就是相似性比对,glm也是相似性比对。
而相似性比对,又可以上升到 分类 的范畴。
为什么要改进hrf,因为hrf是被试依赖,实验依赖的。设置一个固定的hrf,会影响检测的sensitivity,所以,
maximize detection sensitivity 检测出激活体素。
但是,又不能影响specility对于非激活体素的排除。
这里,动态hrf的构造,确实是一个重点。
Friman喜欢拼命强调在fmri中,应用cca,就应当考虑spatial的内容。
这里应用了受限cca,什么意思呢,就是原始的cca系数,可正可负。但是这里,要保证所有系数,都是正的,这会导致一个结果,就是多维变量中,有些变量直接被忽略了。
我们以前一般所用的平滑smoothing,都是高斯平滑核。现在,这里做自适应过滤,引用了函数空间的概念,构造了空间函数基。
16.《Adaptive Filtering of FMRI Data Based on Correlation and Bold Response Similarity 》
这篇论文有一个idea,就是我们以前的correation分析,都是利用周围,比如说固定的9*9的区域内体素,timesiries,求平均之类的,这里不这么做,这里只对领域中,有相似的timesireis,做平均。然后,与构造的model做分析。然后,又进一步做推广,与领域中有相似的correlation做分析。
17.《CORRELATION CONTROLLED ADAPTIVE FILTERING FOR FMRI DATA ANALYSIS 》
18.找到了两篇利用correlatin进行去噪的论文:
《reducing correlated noise in fmri data》
《CORRELATION CONTROLLED ADAPTIVE FILTERING FOR FMRI DATA ANALYSIS》
这篇论文,不是用来进行去除结构性噪声,只是对于一般的高斯平滑,以及上面15th文献《Adaptive analysis of fMRI data》的一个对比。它的核心measure,是单个体素的time series 和 model 的相关系数,进行比对。做双通过滤。
《The NPAIRS Computational Statistics Framework for Data Analysis in Neuroimaging》
Strother.
performance metric ,作为评测分析的量化方式,我们必须对分析的结果和效应进行量化分析。
1.通过将(p,r)作为一个函数用来衡量PDA分析的主成份子空间的大小。
NPAIRS框架有三个作用:
1.衡量全局信噪比;
2.衡量fmri数据集的维度;
3.优化fmri数据处理的时间轴。
2.以前的PET研究,很多都是基于神经网络和机器学习。而现在的fmri分析,大多是基于单变量glm,然后做统计校验。不过,最近fmri的研究应用多变量分类器,呈现井喷式地增长。
3.单单一个prediction预测性,就可以作为一般机器学习方法的衡量指标。但是神经影像,还需要其他的指标,比如reproductivity,这个指标用来衡量方法的鲁棒性,检测我们的方法,是否能在inter-subject,inter-group间保持稳定。
4.reproductivity可作为ROC分析的数据驱动的一个替代版本。
5.strother要干这样一件事:利用(p,r)来优化一般的fmri预处理时间轴。
6.strother要干这样一件事:利用(p,r)来优化一般的pca维度选择策略。
7.按照strother的意思,也就是npairs发明人的意思,只要是类似于pda这样的,利用pca+lda分析的方法,都是可以利用npairs进行优化的。
__________________________________________________________________
很麻烦,因为这里的npairs方法真的不容易。
不过已经有现成的软件了。
可以尝试使用。。。。。。
1. churchill 在phy+版本中,应用了集合论的思想,噪音依托于体素而存在,而体素分两种:神经组织NT,也就是灰质;非神经组织NN,也就是非灰质。
如果,利用绝对的二分法,那么生理噪声都是由NN产生,信号都是由NT产生;
但是,世界是相对的,集合论也需要和模糊数学进行结合:信号仍然都是由NT产生,生理噪声却不都是由NN产生,还有可能是噪声也可能混合入NT组织中,使得NT组织产生了混合信号。当然,反过来说,信号也能混入NN组织,但是我们不需要、不愿意识别那些不重要的非神经组织。
2. NT组织是怎么得到的呢?
churchill说到这是 probable non-neuronal tissue,物理上的组织自然是可以用绝对的二分法,可是经过成像,识别出相应的组织,就不是那么绝对了。
在灰质中,识别生理噪声子空间。
3.如何评估?
这次没有明说是NPAIRS,只是说提高prediction and reproductivity。
还有 consistent,鲁棒性,鲁棒性怎么说明呢。用了block实验,用了event实验。用了单变量分析模型,用了多变量分析模型。用了individual,between-subject进行测试。
4.关于从churchill的论文的摘要+引文学到的东西:怎么才能显得你的论文有质量,有深度,看看人家的论文引文就知道了,他在引文中引用了很多论文,这个不稀奇,牛paper都这样,可是他引用别人的论文,引用的idea,却是论文中边边角角的结论。而一般人,只能看到论文的main idea.
5.fmri的生理噪声去除的挑战:
1.生理噪声的强度是大于BOLD信号的;
2.生理噪声和BOLD信号是频率混叠的;
3.生理噪声和BOLD信号是相关的;
此外:
4.生理噪声是和认知行为相关的。
所以,churchill顺便在此处得出了一条,很好的结论:
non-neuronal physiological effects is likely to be strongly task, region and subject dependent.
非神经生理信号效应是极度任务依赖,区域依赖,被试依赖。
所以,这一条也可以这么去理解,就是仅仅将生理噪声当作是低频漂移,利用detrend,划定一个频率区间进行去除,是不够鲁棒的。
所以,生理去噪方法,必须根据不同SUBJECT的不同情况,特殊数据,先进行评估estimate,然后制定适当的阈值threshold
5.churchill在这里,因为PN(Physiological Noise)任务依赖,区域依赖,被试依赖的特性,就是时域上它们之间的变化很大,但是在空域上,可以有一条共性,就是,只要是大脑,就会有生理组织和神经组织的区别,而只要是生理组织,就可以大胆地对生理组织进行阈值化,这一条结论基本是稳定的。
6.根据我现在的了解,在功能连接组,默认网络中,会有很多学者做这些研究工作:生理噪声的去除与识别。
7.在进行组织识别的这一步中,churchill查找了这样的资料,就是在前人的研究中,有人进行了谱能量进行组织识别,但是这些尝试,这些结论却没有融合到一个denoising framework中。
8.到底生理去噪,能去到什么程度,作者没有说。作者只是很悲观和保守的说,不可能完全去除,只能根据特定的神经科学研究目的,来控制去除的程度。这其实是ICA、cca、pca去噪的通病。
9.phy+和phy相比,phy是要在一个高频和,时域自相关的子空间中,识别成分。而phy+,通过组织识别,使得我们不再受限于高频这个范围之内。
1.spm;
2.afni;
3.fsl;
4.drtools;
5.prtools;
6.phycaa+;
7.cca-fmri;
Localization of Cardiac-Induced Signal Change in fMRI
这篇文章是最早做生理噪声相关组织的定位的。
很奇特,因为,这位学者甚至得出了,血管心动等变化对于fmri bold signal的variation的影响的比率。我很想看看你是怎么进行的计算。
还有,这里是利用Hu的方法,进行的实验,在进行scanner进行acquisition时,同步采集心动,然后对图片做sorting,做排序,就可以解决问题吗 。我很想知道。
具体步骤:
他在选取体素的时候,选取的体素intensity至少都是最大体素值的10%。
不好搞啊,
反正,在churchill的论文中,做了这样的比对。
《Exploratory Identification of Cardiac Noise in fMRI Images》
这个方法,最特别的地方在于,
是从静息态的大脑数据中,抽取心动结构数据,然后用于激活态的检测。
这个方法,真心好累赘,还不如利用外部设备进行检测。
cca其实是在一件什么事儿呢?
就是,提取出这样的成分,这些成分内部的autocorrelation是最大化maximation的。
cca算是一种探索性识别技术。
探索性识别技术,永远需要证明自己的方法的可靠性。
在这里,作者构建了cca成分和原始输入序列之间的相关图。并且,在解剖图上,做了映射。
在其他直接利用cca进行激活检测时,都会或多或少忽略掉那些residual残差。
1.在phy+版本中,downweighting操作后,是如何计算相关系数的。
2.这里的算法的自适应,体现在哪里?
3.在引入PCA之后,这里有一个维度的选择的过程,这个标准是如何定义的?
4.在NPRIS框架中,split-half,prediction,reproducitivity等几个指标体现在哪里?
5.在做组织分割时,阈值的确定。
6.是问题:
(1)在做利用激活检测时,我们是如何确定激活的阈值的?从大到小,选大的。
(2)在利用cca做噪音去除时,我们又是如何进行选取噪音,去除的阈值的。从小到大,选小的。
7.如何保证,去除噪音的同时,能够保留静息态的默认网络。
--------------------------------------------------------------------------------------
1.关于这里phy算法中,迭代的理解。
它这里是先去除task 信号,然后利用得到的residual矩阵,进行计算。
做好的办法是,进行整合,整合到一个hybrid参数,这个参数可以通过简单的二分法,来解决问题。
2.这里,要重点处理,2次run的问题。不要两次run。
3.这里,要重点处理,就是关于pc子空间的选取的问题。
4.这里,要重点处理,就是关于预处理的设置的问题。
5.这里,要重点处理,就是关于NPAIRS的设置的问题。
6.这里,要重点处理,关于应用,在静息态中的应用的问题。
——————————————————————————————————————————————————————
我们这里,先动手,全程用cca,来解决问题。
实现一:
肖柯的时域+空域cca算法,激活检测
实现二:
《reduced correlated noise in fmri data》
进行去噪
实现三:
《phy+》
实现四:
《imcca》
这个方法,很有意思,第一,不用降维;第二,跟ica做比较,竟然说比强大的ica还好;
看来,国防科大的博士,还是很牛的。
《OI and fMRI Signal Separation Using Both Temporal and Spatial Autocorrelations 》
在这篇论文中,对于将图像数据分析,分为两大类:
一、第一类是基于统计知识的,比如ica、pca等方法;
二、第二类是基于相关关系的,比如cca;
——————————————————————————————————————————————————————————
顺着,这篇文章的思路,需要继续下面的工作:
1. 阅读: Friman的 exploratory fmri analysis by autocorrelation maximation
2. 阅读:sip的文章:http://www.cse.buffalo.edu/~jcorso/t/555pdf/impca.pdf
A kernel machine-based fMRI physiological noise removal method
关于,fmri研究中,生理噪声去除的价值:一、现在随着技术的提升,高场fmri越来越得到应用。高场能够提高图像的信噪比,但是生理噪声却也会提升。所以在高场成像分析中,生理噪声的去除会成为一个不可忽略的因素。二、在静息态fmri中,功能网络的检测依赖于低频的大脑自发信号。这些信号和生理噪声,在频率上,是有着类似的特征。为了提高静息态分析的准确性,去除生理噪声,是必须的操作。
在这篇论文中,作者试图采用pca分析fmri的数据,思想是从时域,或者说频率上将混叠的信号和噪音进行区分。
在进行前期论证中,作者提出了前人两种生理噪声去除方式:基于ica,将信号分解为线性可分的成分,线性独立的成分,完全是从线性代数,矩阵论的角度进行问题的考虑;基于采集时同步机制,是采集与心跳能够同步,但是呼吸就无法过滤了。
这里,采用pca,更准确地说,是非线性pca,基于kernel核函数的选择,将数据投影到高维空间。然后,在高维空间中,对这些特征进行筛选。
这里,作者又提出了新的解决思路,就是利用信息论,互信息的指标衡量一个特征到底是噪声,还是信号。它的思路是这样的,在坐标轴上,定两个点,点一为hrf血液动力学,点二为生理噪声指标,举个例子,这里在采集fmri数据时,同时对心脏的circle进行记录。如果,计算后的互信息离hfr点近,就代表为信号,如果离生理指标近,就代表是生理噪声。
这里,这篇文章最大的缺陷是,需要外部设备监测生理信号,这里主要是心动。
我们能够提出某种方法进行改进,比如利用cca 或者phycaa方法,得到生理特征,然后与这里的kernel-pca进行结合,甚至达到与它相同的结果,就可以算是一个非常重要的创新了。
基于体素vs roi
基于group vs individual 主要是上面level划分的基础
基于静息态 vs 激活态
关于fmri数据分析的两大类,四种方法:
数据驱动:
模型驱动:基于spm的glm模型,这种方法,采用了hrf对block数据进行了卷积,然后将得到的waveform与大脑的生理测量数据进行拟合。最后,利用t-test or f-test进行拟合的判别。
一、利用ica进行fmri数据分解时,在得到相互独立的成分后,这些成分的后续处理,其实是有很多文章可以做的。比如,对这些成分进行排序和选择。如果能够提出某种方法,能够自动地制造特征,并将这些特征与分解后的独立成分的特征进行比对,确定相应的结果。比如,激活与否。这也可以算做是fmri信号的盲分离算法。
二、tca分析,就是进行成分的特征提取与判别的。
这种方法的假设是:一个被试在一次run中,大概会得到150多个timepoint的数据。将大脑在这150多个时间点的峰值信号值提取出来,然后得到一个150多个信号的一维向量。用这个向量来反映大脑在一次run中的状态的持续,其中向量中的每一个值代表大脑在每一个时间点的状态。
设计:根据上面上面提取的一维向量,可以作出一个时序图,代表大脑激活峰值特征图。用这个峰值特征图与用ica得到的各子成分下的体素的timepoints信号时序图做比对,比对的方法求二者的相关系数。相关系数较大(多大呢,待研究)的体素,就判别作为激活体素。
三、mtca分析,tca的改进版本。
在原始的tca中,大脑在这150多个时间点的峰值信号值是怎么计算的呢。它是基于这样的假设:一个体素在一次run中,只会被激活一次。这个很好判别,在n * t的矩阵A中,n代表体素个数,t代表时间点个数(一般为150多个),按行遍历,将该体素达到最大值的那个timepoint在一个新的n * t矩阵B中用1标记出来,这行的其余所有列都标记为0.那么,最后对矩阵B所有行相加成为一个 1* t的行向量,这个行向量代表的就是大脑激活峰值特征图。
在mtca中,构造矩阵B时,不用1来填充,用体素的原始信号值来填充,每个体素的激活程度肯定是差别的嘛。这样进行假设也是合理的。
四、最大的问题在哪?
就是,不论是tca,还是mtca,都只假设大脑在一次run的时间段内,只激活一次,这肯定不合理。还有,没有考虑噪声的影响。