最近开始做生物方面的研究,主要打算构建一个circRNA-miRNA-disease网络。目前来说,其实circRNA与深度学习结合的研究非常少,在pubmed上搜索到的文章就那几篇,当然原因有很多,个人认为主要还是生物领域的一些特殊性,导致不能像分析其他问题那样直接构建一个深度学习模型就能取得很好的效果,但也正因为如此,挑战起来才更有意思。
接下来我打算做一系列的论文阅读笔记,当然我感觉我搜索到的文章还是不完整,但就先慢慢做吧。再说一句题外话,有些文章在我看来就是灌水,当然我也不会说明具体是哪些,但既然大部分都是发在sci二区的,或许从生物的角度看来会有一些值得借鉴学习的地方吧。
第一篇文章是circRNA和疾病的关联分析,模型的结构如下
首先做一个简单介绍,circRNA是一种环状的RNA,目前从生物的角度来看,它可以吸附miRNA,使其没办法正常发挥功能,而miRNA参与了很多重要的调控,所以如果circRNA、miRNA处于一个平衡的状态还好,万一circRNA失衡了,就有可能影响到miRNA,最终导致一些疾病的发生。
目前因为实验耗时、开销大等原因,关于circRNA的相关数据其实并不多,CircR2Disease是一个挺好的数据库,它整理了网上发表的论文,收集了目前已经证实了661种circRNA与100种疾病共739条关系数据,而本文一方面基于这个数据库的数据,另一方面基于假设,相似的circRNA会导致表现型相似的疾病,从而进一步进行分析。
基于CircR2Disease的数据,文章构建了一个矩阵M,有661行100列,对应circRNA和disease,如果两者有关联,则对应的元素为1,否则为0。
模型一开始主要分析了不同circRNA之间的相似度和不同疾病之间的相似度。首先来看看怎么计算疾病之间的相似度,文章为了计算疾病的相似度,用了另一个数据集MeSH(Medical Subject Headings),这是一个对disease进行专业分类的数据集,比如下图是Stomach Neoplasms在该数据集中的分类结果:
上面是树状图,如果你下载数据下来,会看到两列数据,一列是disease名,一列是唯一的ID。
Disease名在meshtrees中可以是重复的,但是ID是唯一的,ID反映了Disease之间的关系,比如Stomach Neoplasms的ID有四个,其中一个是C06.301.371.767,从这个ID我们可以知道Stomach Neoplasms属于Gastrointestinal Neoplasms(C06.301.371),而Gastrointestinal Neoplasms则属于Digestive System Neoplasms(C06.301),Digestive System Neoplasms属于Digestive System Disease(C06)。
整个MeSH数据集就像一个目录,指明了不同疾病之间的从属关系,而因为disease名是可以重复的,所以整个MeSH数据之间就相互连接起来,构成了一个网络。
对数据有了初步的了解之后,可以看看文章是怎么计算相似度的,主要提出了两个模型,首先是Disease Semantic Similarity Model 1。
从对MeSH的介绍可以看出,如果两个disease属于同一个疾病的分支,那么他们就应该拥有更高的相似度,所以Model 1 从这里出发,定义了:
实际上,就是把一个disease所有上游的疾病都找出来,并构成一个属于他的集合,比如Stomach Neoplasms,就把它的四个分支的所有上游疾病找出来放在一起。然后计算这个集合里面每个病对于Stomach Neoplasms的contribution:
式子的意思就是先设定一个epsilon,比如0.8,对Stomach Neoplasms本身设定contribution为1,对每一个上级迭代乘0.8,比如Gastrointestinal Neoplasms对Stomach Neoplasms的contribution为0.8,Digestive System Neoplasms对Stomach Neoplasms的contribution为0.64等等。
计算contribution的主要目的是为了计算不同disease之间的相似度:
简单来说就是利用两种disease都有的上游disease的contribution去计算两种疾病之间的相似度。
接下来看看model2,Model 1 有一个缺点,就是没有考虑到对于部分罕见的上游疾病,应该给予他们更大的contribution。所以model 2就是基于这个不足提出的。Model 2 的主要变化在于contribution的计算:
以上提出的model1和model2可以帮助我们计算MeSH中的disease之间的相似度,但是因为有部分疾病是CIRCR2Disease特有的,所以需要第三种模型去计算disease之间的相似度进行补充。
Gaussian Interaction Profile Kernel Similarity不仅可以帮助我们计算disease之间的相似度,还可以计算circRNA之间的相似度。
之前我们基于CIRCR2Disease数据集构建了矩阵M,每行表示某个circRNA和100种disease的关系,每列表示某个disease和661种circRNA的关系。我们可以使用矩阵的列向量表示每个disease,使用矩阵的行向量表示每个circRNA,得到了disease和circRNA的向量表示之后,就可以利用下式计算相似度:
实际计算后发现,由于661种circRNA和100种disease中只有很少一部分有关联,所以计算得到的矩阵十分稀疏,最后得到的相似度普遍过于接近,作用不大。
之前计算了disease之间的相似度以及circRNA之间的相似度,其实只用Gaussian Interaction Profile Kernel Similarity对CIRCR2Disease数据集进行分析也足够计算CIRCR2Disease中的disease之间的相似度,但是实际上计算得到的相似度不理想,所以才需要借助MeSH数据集精确分析disease之间的相似度。
所以最后我们需要融合这几种相似度计算,第一个步骤是结合model 1和model 2,只需要求均值即可,第二步是找出CIRCR2Disease中能在MeSH找到的disease,用MeSH的相似度更新原来计算的相似度,比如对于CIRCR2Disease中的Trachoma和Ehrlichiosis,这一对disease也存在于MeSH,计算得到的相似度为0.5,就用0.5替换原来用Gaussian Interaction Profile Kernel Similarity计得的0.4。
但是因为命名格式的不统一,实际计算过程中会发现,很难找到同时出现在CIRCR2Disease和MeSH的disease对。
整个模型的重点其实就是前面这部分,模型每次分析一个circRNA和一个疾病,输入是该circRNA的相似度向量(相似度矩阵的一行)和该疾病的相似度向量拼接起来,然后利用CNN进行特征提取,最后利用ELM得到二分类的输出,从而判断该circRNA和disease是否有联系。