引用

在使用GAPGOM时,请引用以下内容;

简介

GAPGOM(小说G一个nnotationP预测和其他etrics)是一个R包,包含了用于估计基因表达相关性、基因集中丰富的术语和基因本体(GO)术语集之间的语义距离的工具和算法。该包用于预测未注释基因的注释,特别是关于GO的注释,并测试这种预测。预测是通过比较查询基因和注释基因库之间的表达模式来完成的,并从具有相似表达模式的基因集中(通常被描述为“关联负罪感”)使用丰富的术语来注释查询基因。

对于基因表达的相关性,GAPGOM正在介绍LNCRNA2GOA这是一个新颖的工具。表达式数据的主接口目前是Fantom5数据,使用Bioconductor的产品ExpressionSet类。

对于GO术语的语义相似性(特别是用于测试预测),包正在使用TopoICSim.它利用GO数据通过GOSemSimgodata ()接口。

GO由三个主要的本体组成;分子功能(MF)、生物过程(BP)和细胞成分(CC)。

安装

在安装之前,这个包在cran和Bioconductor中都有相当多的依赖项。您可以运行以下代码块(因为有提示,最好是逐行运行)来安装这些组件和包本身。

表达式数据接口

ID的支持

从v0.2.7起,所有AnnotationDbi应该支持id。但是,我们建议使用EntrezID这是因为这是这个包和其他包中最受支持的ID。如果发现ID支持方面的问题,请在包存储库中通知此问题。如果您希望(或必须)手动转换id,则可以使用BiomaRt推荐使用软件包。然而,将id转换为其他类型是有损耗的,并不总是能很好地转换。

表达式数据(FANTOM5)

到目前为止,这个包有一个用于表达式数据的主数据集接口;Fantom5数据集。对于其他数据集,anExpressionSet必须手动制作,如本章后面所述。有一些帮助函数可以使这些数据可用。Fantom5数据集仅适用于人类和小鼠基因组。以下是辅助函数/接口的例子;

请注意,在转换为ExpressionSet就这样!

手动指定ExpressionSet

由于现在加载表达式数据有一定的限制,这一段将描述如何将表达式数据转换为ExpressionSet对象。我们将给出一个使用随机选择的表达式值和id的示例。在某些情况下,如果您想要特定的东西,这样定义它实际上会更好(对进入对象的额外数据有更多的控制/包之间更好的互操作性)。

的最低要求ExpressionSet

  • 表达式的值
  • 特定类型的唯一id。AnnotationDbi键是目前唯一支持的id。

每一行表达式值都应该有相应的id, id类型作为列名。

随机表达式值生成;

#选择x个随机idx_entries < -1000go_data < -GAPGOM::set_go_data“人”“英国石油公司”computeIC =#>加载所需包:org.Hs.eg.db#>加载所需的包:AnnotationDbi加载所需的包:stats4#>加载所需的包:BiocGenerics# >#>附加包:BiocGenerics以下对象从“package:stats”中被屏蔽:# >#> IQR, mad, sd, var, xtabs下面的对象从'package:base'中被屏蔽:# >Filter, Find, Map, Position, Reduce, anyduplicate,追加#> as.data.frame, basename, cbind, colnames, dirname, do.call,#> duplicate, eval, evalq, get, grep, grepl, intersect, is.unsorted,lapply, mapply, match, mget, order, paste, pmax, pmax.int, pmin,pmin.int, rank, rbind, rownames, sapply, setdiff, sort, table,#> tapply, union, unique, unsplit, which。马克斯,which.min#>加载所需的包:Biobase欢迎来到Bioconductor# >小插图包含介绍材料;视图与# > ' browseVignettes()”。要引用Bioconductor,请参见#> 'citation("Biobase")',对于软件包'citation("pkgname")'。#>加载所需的包:伊朗加载所需的包:S4Vectors# >#>加载包:'S4Vectors'下面的对象从'package:base'中被屏蔽:# >#> I,展开。网格,unname#>准备基因GO映射数据…random_ids < -独特的样本(go_data@geneAnnoENTREZID, x_entries))#并只保留#暗金物品#创建通用数据帧。表达式< -data.frame(random_ids)colnames(表达式)< -“ENTREZID”表达式ID# >零# n个表达式值,这取决于出现的惟一id的数量expressionvalues < -腹肌rnorm长度(random_ids)6))x_entries表达式[,27) < -expressionvalues(表达式)#> entrezid v2 v3 v4 v5 v6 v7#> 1 56127 1027.1873 497.3245 3461.4253 464.7037 489.6280 44.32688#> 2 3975 540.7969 814.8878 482.1535 705.6733 566.3916 865.47153#> 3 285672 732.5895 324.3727 669.1559 392.7910 743.3972 639.94694#> 4 79871 339.5573 1062.8599 1625.3913 1259.5608 164.5612 1361.73102#> 5 9353 183.6952 1444.1870 1187.6101 716.0709 1598.7571 485.16822#> 6 84527 322.1536 964.9530 1622.6438 1717.0781 1057.2547 44.47758

将表达式数据帧转换为表达式集;

LNCRNA2GOA(表达相似度)

背景

LNCRNA2GOA(长非编码RNA GO注释)或expression_prediction ()采用多种方法/措施确定表达模式相似的相似基因;皮尔森斯皮尔曼肯德尔水列夫而且费雪.它计算给定查询基因的表达式值集之间的得分。这些分数被用来识别富集分析的基因,在返回之前将按显著性排序。方法还可以找到类似的表达式模式结合方法。到目前为止,Sobolev和Fisher指标是这个包中唯一的(至少在这种类型的分析中),所有其他的都是R和()函数。新方法的细节描述如下(引自论文[1],参考文献编辑)。

水列夫规

在本节中,我们使用[2]中的定义和符号。我们从通常的p内积开始。让\ \ (f)\ (g \)是实值函数(在这种情况下\ \ (f)而且\ (g \)值是两个基因的表达载体\ \ (f)而且\ (g \)):


\ (\ langle f, g \ rangle_ {p} = (\ sum_ {k = 1} ^ {n} \ f_k.g_k中期\ ^中期p) ^ \压裂{1}{p} \)

(2)



用这种表示法,索伯列夫内积、模和度的度量\ (k \)分别定义为:

\ (f, g \ langle \ rangle_ {p} ^{年代}= \ langle f, g \ rangle_p +α\ \ langle D ^ kf, D \ rangle_p \ ^公斤)

(3)




f \中期(\ \中\ \ mid_中期{p、k \α}^ S = \√6 {\ langle f, f \ rangle_ {p \α}^年代}\)

(4)




\ (d_ {p、k \α}^年代中期(f, g) = \ \中\ \ mid_中期为f - g, {p、k \α}^ \)

(5)



在哪里\ (D ^ k \)\ (k \)微分算子。对于特殊情况\ (p = 2 \)而且\(α= 1 \ \)与分析的傅里叶变换有一个有趣的联系;让\(\帽子{f} \)是傅里叶变换\ \ (f)


\(\帽子{f} (\ omega_k) = \ sum_ {j = 1} ^ {N} g_jexp (- i \压裂{2 \πkj} {N}) \)

(6)



在哪里\ (\ omega_k = \压裂{2 \πk} {N} \)而且大概{1}\ (i = \ \).最后,规范可以写成


f \中期(\ \中\ \ mid_中期{2 k 1} ^ S = \√6 {\ sum_ {j = 1} ^ {n} (1 + \ omega_j) ^ k \中\帽子{f} ^ 2}中期(\ omega_j) \ \)

(7)



在此功度量(5)与范数(7)和\ (k = 1 \)是使用。

费舍尔规

在本节中,我们使用诸如[3]中的定义和符号。为了定义Fisher信息度量,我们首先引入n-单纯形\ (P_n \)定义为


\ (P_n = \ {x \ R ^ {n + 1}: \陪我,x_n \ ge0 \ sum_ {i = 1} ^ {n + 1}ξ= 1 \}\)

(8)



的坐标\ \ {x_i \} \ ()描述在单一实验中观察到不同结果的概率(或基因表达值)我\ \ ()Th细胞类型)。费雪信息度量\ (P_n \)可以定义为


\ (Jij = \ sum_ {k = 1} ^ {n + 1} \压裂{1}{xk} \压裂{\部分xk}{\部分x_i} \压裂{\部分xk}{\部分x_j} \)

(9)



我们现在将Fisher信息的一个众所周知的表示定义为正n球的一个回拉度规\ (S_n ^ + \)


\ (S_n ^ + = \ {x \ R ^ n; \陪我,x_n \ ge0 \ sum_ {i = 1} ^ {n + 1} x ^ 2 = 1 \} \)

(10)



转换\(T: P_n\to S_n^+\)定义为


\(T(x)=(\√{x_1}, \dots, \√{x_n+1})\)

(11)



把球表面的欧氏度规拉回到多项式单形上的费雪信息。实际上,测地线距离\(x,y \in P_n\)在费雪信息度量下,可以通过测量大圆的长度来定义\ (S_n ^ + \)之间的\ (T (x) \)而且\ (T (y) \)


\(d(x,y) = acos(\sum_{i=1}^{n+1}\√{x_iy_i})\)

(12)



LNCRNA2GOA方法也可以用于除lncrna外的其他新基因。

例子

分数+丰富

下面的例子是一个任意的用例。这意味着这只是一个例子,并不(一定)意味着某个问题/现实生活中的用例。id_select_vector表示用于注释丰富的基因id向量(如果为空,算法将使用ExpressionSet中所有可用的基因id)。

GOID 本体 Pvalue 罗斯福 术语 used_method
去:0006810 英国石油公司 0.0001042 0.0003769 运输 费雪
去:0007165 英国石油公司 0.0010725 0.0070414 信号转导 肯德尔
去:0006355 英国石油公司 0.0031231 0.0095531 转录调控,dna模板化 皮尔森
去:0045893 英国石油公司 0.0027479 0.0097134 转录的正调控,dna模板 费雪
去:0006366 英国石油公司 0.0041102 0.0122466 转录的RNA聚合酶II 水列夫
去:0006468 英国石油公司 0.0091572 0.0443554 蛋白质磷酸化 斯皮尔曼
去:0006351 英国石油公司 0.0158478 0.0475434 转录,dna模板 皮尔森

在这里我们展示结果,你可以看到它有6列;

  • GOID

描述非常相似的GO术语

  • 本体描述结果的本体。
  • Pvalue结果的p值/显著性。
  • 罗斯福bonferoni标准化p值
  • 术语GO术语的描述。
  • used_method采用评分法得出结果。

除此之外,还有一个可选参数用于不同的GO标签/注释;id_translation_df.这个数据框架应该包含以下内容;

  • rownames\ (\ \)表达式集的行名
  • 第一列\ (\ \)基因ID(如EntrezID)。基因应该与表达式数据集中的相同。
  • 第二个科勒姆\ (\ \)id。

这也可以大大提高计算时间,因为大部分时间都花在查询这个转换上。

只有分数

还有另一种算法可以让你只计算分数而跳过浓缩;

original_ids 分数 used_method
ENSG00000224505 ENSG00000224505 0.2004647 皮尔森
ENSG00000139144 ENSG00000139144 0.1011604 皮尔森
ENSG00000265787 ENSG00000265787 0.1247753 皮尔森
ENSG00000204539 ENSG00000204539 0.1396684 皮尔森
ENSG00000253563 ENSG00000253563 0.0892708 皮尔森
ENSG00000188784 ENSG00000188784 0.0863590 皮尔森
ENSG00000042304 ENSG00000042304 0.0726566 皮尔森
ENSG00000248787 ENSG00000248787 0.2197304 皮尔森
ENSG00000269305 ENSG00000269305 0.0561735 皮尔森
ENSG00000241933 ENSG00000241933 0.0606906 皮尔森
ENSG00000132640 ENSG00000132640 0.1382561 皮尔森
ENSG00000137634 ENSG00000137634 0.0981431 皮尔森
ENSG00000186994 ENSG00000186994 0.1811896 皮尔森
ENSG00000095906 ENSG00000095906 0.5401186 皮尔森
ENSG00000187871 ENSG00000187871 0.0167506 皮尔森
ENSG00000254350 ENSG00000254350 0.0477682 皮尔森
ENSG00000151247 ENSG00000151247 0.0106081 皮尔森
ENSG00000109061 ENSG00000109061 0.0682357 皮尔森
ENSG00000257594 ENSG00000257594 0.0225258 皮尔森
ENSG00000253720 ENSG00000253720 0.1931214 皮尔森
ENSG00000180638 ENSG00000180638 0.0566312 皮尔森
ENSG00000234279 ENSG00000234279 0.1001705 皮尔森
ENSG00000188032 ENSG00000188032 0.1129793 皮尔森
ENSG00000171161 ENSG00000171161 0.0709871 皮尔森
ENSG00000250411 ENSG00000250411 0.0589016 皮尔森
ENSG00000260244 ENSG00000260244 0.2590438 皮尔森
ENSG00000063601 ENSG00000063601 0.0637382 皮尔森
ENSG00000249605 ENSG00000249605 0.0834436 皮尔森
ENSG00000182368 ENSG00000182368 0.0104575 皮尔森
ENSG00000224819 ENSG00000224819 0.1137457 皮尔森
ENSG00000196531 ENSG00000196531 0.0298562 皮尔森
ENSG00000085377 ENSG00000085377 0.0761354 皮尔森
ENSG00000129195 ENSG00000129195 0.3678937 皮尔森
ENSG00000227608 ENSG00000227608 0.1634545 皮尔森
ENSG00000250043 ENSG00000250043 0.0943256 皮尔森
ENSG00000269843 ENSG00000269843 0.3473258 皮尔森
ENSG00000181690 ENSG00000181690 0.4336276 皮尔森
ENSG00000125246 ENSG00000125246 0.3062198 皮尔森
ENSG00000262861 ENSG00000262861 0.1053504 皮尔森
ENSG00000173171 ENSG00000173171 0.1348866 皮尔森
ENSG00000248455 ENSG00000248455 0.0930772 皮尔森
ENSG00000265114 ENSG00000265114 0.1114366 皮尔森
ENSG00000166173 ENSG00000166173 0.2045608 皮尔森
ENSG00000068489 ENSG00000068489 0.1446615 皮尔森
ENSG00000183474 ENSG00000183474 0.0317519 皮尔森
ENSG00000138326 ENSG00000138326 0.1441870 皮尔森
ENSG00000101096 ENSG00000101096 0.1657225 皮尔森
ENSG00000235151 ENSG00000235151 0.2721271 皮尔森
ENSG00000154265 ENSG00000154265 0.1235900 皮尔森
ENSG00000177946 ENSG00000177946 0.5389089 皮尔森
ENSG00000225302 ENSG00000225302 0.0224971 皮尔森
ENSG00000237560 ENSG00000237560 0.1250799 皮尔森
ENSG00000261195 ENSG00000261195 0.1342620 皮尔森
ENSG00000235123 ENSG00000235123 0.0486064 皮尔森
ENSG00000260092 ENSG00000260092 0.1116397 皮尔森
ENSG00000254431 ENSG00000254431 0.1893861 皮尔森
ENSG00000118526 ENSG00000118526 0.1717508 皮尔森
ENSG00000261049 ENSG00000261049 0.0393922 皮尔森
ENSG00000254489 ENSG00000254489 0.1097308 皮尔森
ENSG00000176697 ENSG00000176697 0.3079547 皮尔森
ENSG00000250519 ENSG00000250519 0.0213221 皮尔森
ENSG00000263821 ENSG00000263821 0.0863590 皮尔森
ENSG00000065665 ENSG00000065665 0.0021354 皮尔森
ENSG00000088836 ENSG00000088836 0.0343418 皮尔森
ENSG00000254514 ENSG00000254514 0.1114366 皮尔森
ENSG00000149308 ENSG00000149308 0.0458501 皮尔森
ENSG00000109534 ENSG00000109534 0.0521644 皮尔森
ENSG00000204187 ENSG00000204187 0.2636256 皮尔森
ENSG00000102468 ENSG00000102468 0.0711898 皮尔森
ENSG00000101457 ENSG00000101457 0.1492439 皮尔森
ENSG00000204837 ENSG00000204837 0.1985665 皮尔森
ENSGR0000236871 ENSGR0000236871 0.1737215 皮尔森
ENSG00000113645 ENSG00000113645 0.1680317 皮尔森
ENSG00000261617 ENSG00000261617 0.0935473 皮尔森
ENSG00000177947 ENSG00000177947 0.1092690 皮尔森
ENSG00000233605 ENSG00000233605 0.1114366 皮尔森
ENSG00000187486 ENSG00000187486 0.0193328 皮尔森
ENSG00000159593 ENSG00000159593 0.1764208 皮尔森
ENSG00000230967 ENSG00000230967 0.0863590 皮尔森
ENSG00000064961 ENSG00000064961 0.3389281 皮尔森
ENSG00000257922 ENSG00000257922 0.0255902 皮尔森
ENSG00000241685 ENSG00000241685 0.4240072 皮尔森
ENSG00000171747 ENSG00000171747 0.0964942 皮尔森
ENSG00000152749 ENSG00000152749 0.0533820 皮尔森
ENSG00000183597 ENSG00000183597 0.5322610 皮尔森
ENSG00000214955 ENSG00000214955 0.1746615 皮尔森
ENSG00000166710 ENSG00000166710 0.0462278 皮尔森
ENSG00000149182 ENSG00000149182 0.0432318 皮尔森
ENSG00000259645 ENSG00000259645 0.8049258 皮尔森
ENSG00000137561 ENSG00000137561 0.0933173 皮尔森
ENSG00000175746 ENSG00000175746 0.1013987 皮尔森
ENSG00000230645 ENSG00000230645 0.0219265 皮尔森
ENSG00000254438 ENSG00000254438 0.1059758 皮尔森
ENSG00000233423 ENSG00000233423 0.1607758 皮尔森
ENSG00000254726 ENSG00000254726 0.0301782 皮尔森
ENSG00000006128 ENSG00000006128 0.1607405 皮尔森
ENSG00000259862 ENSG00000259862 0.1016300 皮尔森
ENSG00000204054 ENSG00000204054 0.0103759 皮尔森
ENSG00000185608 ENSG00000185608 0.2245409 皮尔森
ENSG00000163013 ENSG00000163013 0.0495888 皮尔森

我们可以看到,这个函数返回一个不同的数据帧;

  • original_ids基因表达行的标识符
  • 分数通过其中一种方法计算的相似度评分/相关性。
  • used_method所用的方法用来计算分数。

行名也表示基因表达行。只显示前100行,否则表将非常大。在此步骤之后,需要手动完成充实和GO注释/翻译。然而,这应该是相当可行的一点帮助GOSemSim

原始数据集

最初的出版物使用lncRNA2Function数据[4]来测试结果是否相同,制作了一个小脚本来再现相同的结果,该脚本位于下面的包安装目录中脚本.的脚本文件夹中还包含算法的两个原始脚本,但不一定包含算法的数据。这些数据(连同脚本)可以在以下网站上找到:

除此之外,scripts文件夹还包含一个概念验证脚本,用于对未注释的转录本进行分析(通过查找最接近的基因)。这最终是作为一种对著名的替代伟大的工具。

TopoICSim

背景

TopoICSim或拓扑信息内容相似度(TopoICSim),是一种测量给定GO DAG树的信息内容和拓扑结构的两个GO术语之间的相似度的方法。与其他类似的衡量标准不同,它认为两者都是最短的而且两个项之间的最长DAG路径,而不仅仅是最长或最短路径。沿着GO DAG树的路径用两个项之间的信息内容进行加权。

对于信息内容,使用以下公式;

\(IC(t) = -log(p(t))\)

(1)



在哪里\ \ (t)是GO术语。该IC由GOSemSim计算,并基于特定go项的频率(\ \ (p (t))).


GO树可以被描述为三元组\ \(λ= (G \σ,R) \),在那里\ (G \)是GO项的集合,σ\ (\ \)是GO术语之间的层次关系集(主要定义为is_apart_of)[5],和\ (R \)是三元连体\((t_i, t_j, \xi)\),在那里G \ \ (t_i、t_j \)而且而且\ (t_i \ xi t_j \).的关系是一种导向的亲子关系。GO rDAG的顶层节点是根节点,它是MF、BP和CC节点的直接父节点。这些节点称为特定于方面的根,我们在下面将它们称为根。一个路径\ (P \)的长度\ (n \)在两项之间\ (t_i、t_j \)定义如(23)所示。


\ \ (P: G乘以G \ \ G \乘以G \点乘以G = G ^ {n + 1}; \ \ P (t_i、t_j) = (t_i、t_j + 1 \点,t_j) \)

(23)





在这里给所有\ \ (\)\ (\)\ (\ s < j \)\(σ\ \ xi_s \存在于\ \)\ \ tau_s存在(\ \ R \)\ (r_s = (t_s t_ {s + 1},识别\ xi_s) \).因为\ (G \)是rDAG,两个项之间可能有多条路径,所以我们表示两个项之间的所有路径\ (t_i、t_j \)根据(24)。


\ (\ mathcal{一}(t_i、t_j) = \暗流{P}{} \杯P (t_i、t_j) \)

(24)



我们使用逆信息内容(Inverse Information Content, IIC)值来定义两个给定项的最短和最长路径\ (t_i、t_j \)如图25-27所示。


\ (SP (t_i、t_j) = \暗流中P {\ (t_i、t_j)} {argminIIC (P)} \)

(25)




\ (LP (t_i、t_j) = \暗流中P {\ (t_i、t_j)} {argmaxIIC (P)} \)

(26)




\(IIC(P) = \sum_{t\in P}\frac{1}{IC(t)}\)

(27)



采用标准定义进行计算\ \ (IC (t))如(28)


\(IC(t) = -log\frac{G_t}{G_\mathrm{Tot}}\)

(28)



在这里\ (G_t \)基因的数量是用这个术语标注的吗\ \ (t)而且\ (G_ \ mathrm{合计}\)是基因的总数。的分布集成电路是不是在制服rDAG,所以有可能有两条长度不同但长度相同的路径IICs.为了克服这个问题,我们根据路径的长度对路径进行加权,因此(25)和(26)中的定义可以根据(29)和(30)进行更新。


\ (wSP (t_i、t_j) = SP (t_i、t_j) len (P) \ \倍)

(29)




\巨头((t_i t_j) = LP (t_i、t_j) len (P) \ \倍)

(30)



现在我们\ (ComAnc (t_i、t_j) \)是两个给定项的所有共同祖先的集合\ ((t_i、t_j) \).首先,我们将析统共同祖先定义为\ (ComAnc (t_i、t_j) \)如(31)。


\ (DisComAnc (t_i、t_j) = \ {x \ ComAnc中期(t_i、t_j) \ P (x,根)\帽C (x) = \ varnothing \} \)

(31)



在这里\ (P (x,根)\)是介于\ \ (x)而且\(根\)而且\ (C (x) \)是否设置所有的直接子代\ \ (x).为每个分离的共同祖先\ \ (x)\ (DisComAnc (t_i、t_j) \),我们定义两者之间的距离\ (t_i、t_j \)之间的加权最短路径之比\ (t_i、t_j \)它从\ \ (x)到两者之间的加权最长路径\ \ (x)而且\(根\),如(32-33)。


\ (D (t_i t_j x) = \压裂{wSP (t_i、t_j x)}{巨头(x,根)}\)

(32)




\(wSP(t_i,t_j,x) = wSP(t_i,x)+wSP(t_j,x)\)

(33)



现在是两项的距离\ (t_i、t_j \)可根据(34)定义。


\ (D (t_i、t_j) = \暗流{x \ DisComAnc (t_i、t_j)}{分钟}D (t_i、t_j x) \)

(34)



我们将距离值转换为\ \(压裂{反正切()。}{\π/ 2}\)函数,以及两个GO项的测度\ (t_i \)而且\ (t_j \)定义如(35)所示。


\ (S (t_i、t_j) = 1 - \压裂{Arcatan (D (t_i、t_j))}{\π/ 2}\)

(35)



请注意,\(根\)是rDAG的三个第一级中的一个。因此,如果\ (DisComAnc (t_i、t_j) = \{根\}\)然后\ (D (t_i、t_j) = \ infty \)而且\ (S (t_i、t_j) = 0 \).如果\(t_i = t_j\)然后\ (D (t_i、t_j) = 0 \)而且\ (S (t_i、t_j) = 1 \).最后让\ (S = [s_ {ij}] _ {n \乘以m} \)是两个给定栅栏或基因产物的相似矩阵\ (g1, g2 \)带有GO项\ (t_{11}识别、t_{12}识别\点,t_ {1 n} \)识别而且\ (t_{21}识别、t_{12}识别\点,t_ {2 m} \)识别在哪里\ (s_ {ij} \)GO术语之间的相似性是什么\ (t_我{1}\识别)而且\ (t_ {2 j} \识别).我们用了rcmax计算相似度的方法\ (g1, g2 \),定义见(36)。


\(\{对齐}开始TopoICSim (g_1里面,g_2) & = rcmax (S) \ \ & = rcmax \离开(\压裂{\ sum_ {i = 1} ^ n \暗流{j} {maxs_ {ij}}} {n} \压裂{\ sum_ {i = 1} ^ m \暗流{我}{maxs_ {ij}}} {m} \) \{对齐}\结束)

(36)






我们也测试了其他方法的相似矩阵,特别是平均和BMA,但一般\ (rcmax \)给出了TopoICSim的最佳性能(数据未显示)。

除此之外,还有一个针对基因集级别的算法,你可以用(13)和(14)计算兴趣集/内集的相似性。或者只用R的意思是在得到的矩阵上。


\ (IntraSetSim (S_k) = \压裂{\ sum_ {i = 1} ^ n \ sum_ {j = 1} ^ mSim (g_ {ki}, g_ {kj})} {n ^ 2} \)

(13)




\ (InterSetSim (S_k) = \压裂{\ sum_ {i = 1} ^ n \ sum_ {j = 1} ^ mSim (g_ {ki}, g_ {kj})} {n \乘以m} \)

(14)




(13)在基因集与自身比较的特定情况下等于(14)。

所有公式/解释均引用于论文(参考文献编辑)[6]。

例子

下面的示例使用家族基因集测量集内相似度。对于单基因,EntrezID比较了218和501。

去:0004029 去:0004030 去:0005515 去:0008106 去:0018479 去:0004043 去:0008802 去:0043878
去:0004029 1.000 0.793 NA 0.095 0.870 0.808 0.865 0.802
去:0004030 0.793 1.000 NA NA NA 0.903 0.693 0.899
去:0005515 NA NA 1 NA NA NA NA NA
去:0008106 0.095 NA NA 1.000 NA 0.122 0.080 0.121
去:0018479 0.870 NA NA NA 1.000 0.718 0.954 0.711
去:0004043 0.808 0.903 NA 0.122 0.718 1.000 NA NA
去:0008802 0.865 0.693 NA 0.080 0.954 NA 1.000 NA
去:0043878 0.802 0.899 NA 0.121 0.711 NA NA 1.000
去:0005515 去:0016620 去:0004029 去:0004030 去:0018477 去:0018479 去:0008106
去:0005515 1 NA NA NA NA NA NA
去:0016620 NA 1.000 0.533 0.678 0.441 0.431 0.152
去:0004029 NA 0.533 1.000 0.793 0.876 0.870 0.095
去:0004030 NA 0.678 0.793 1.000 0.710 0.699 0.118
去:0018477 NA 0.441 0.876 0.710 1.000 0.957 0.082
去:0018479 NA 0.431 0.870 0.699 0.957 1.000 0.081
去:0008106 NA 0.152 0.095 0.118 0.082 0.081 1.000
126133 221 218
126133 1.000 0.912 0.912
221 0.912 1.000 0.996
218 0.912 0.996 1.000

这里我们可以看到TopoICsim的输出,它是一个包含2项的列表;

  • AllGoPairs

\ (n \乘以m \)GO项的矩阵,包括它们的相似性。有些值可能是NA,因为这些是不出现的对。你可以添加AllGoPairs到下次运行TopoICSim时的参数,以便可能加快计算速度(它们将被用作预先计算的分数,以填充发生的对)。

  • GeneSim

基因/基因集的相似性取决于你的输入。可以是一个数字,也可以是一个显示所有可能组合的矩阵。\ (\ \)基因集矩阵的均值表示了内集/兴趣集的相似性。

自定义的基因

除此之外,您还可以为TopoICSim定义自定义基因。这包含任意数量的GO项。自定义基因必须在命名列表中单独定义。

自定义< -列表cus1 =c“去:0016787”“去:0042802”“去:0005524”))结果< -GAPGOM::topo_ic_sim_genes“人”“曼氏金融”“218”“501”custom_genes1 =自定义,滴=verbose =真正的progress_bar =#准备topoICSim数据…#>准备术语数据#>准备基因GO映射数据…#>准备IC数据…准备基因/基因集数据…开始计算所有的围棋。#过滤预计算值…解决共同的祖先…# >完成了!解决分离的共同祖先…# >完成了!计算短路径…# >完成了!计算长路径…# >完成了!#>合并到all_go_pair…# >完成了!合并基因(集)结果…# >完成了!计算时间(秒):# > 9.28031349182129结果# > GeneSim美元# > 501#> cus1 0.261#> 218 0.975# ># > AllGoPairs美元#> go:0004029 go:0004030 go:0005515 go:0008106 go:0018479 go:0004043#> go:0004029 1.000 0.793 na 0.095 0.870 0.808#> go:0004030 0.793 1.000 na na na 0.903#> go:0005515 na na 1.000 na na na#> go:0008106 0.095 na na 1.000 na 0.122#> go:0018479 0.870 na na na 1.000 0.718#> go:0004043 0.808 0.903 na 0.122 0.718 1.000#> go:0008802 0.865 0.693 na 0.080 0.954 0.711#> go:0043878 0.802 0.899 na 0.121 0.711 0.910#> go:0016787 0.036 0.046 na 0.034 0.029 0.047#> go:0042802 na na 0.101 na na na#> go:0005524 na na 0.061 na na na#> go:0008802 go:0043878 go:0016787 go:0042802 go:0005524#> go:0004029 0.865 0.802 0.036 na na#> go:0004030 0.693 0.899 0.046 na na#> go:0005515 na na na 0.101 0.061#> go:0008106 0.080 0.121 0.034 na na#> go:0018479 0.954 0.711 0.029 na na#> go:0004043 0.711 0.910 0.047 na na#> go:0008802 1.000 0.704 0.029 na na#> go:0043878 0.704 1.000 0.047 na na#> go:0016787 0.029 0.047 1.000 na na#> go:0042802 na na na 1.000 na#> go:0005524 na na na na 1.000

这里我们用GO术语定义了一个名为“cus1”的自定义基因;”去:0016787”、“去:0042802”、“去:0005524,将被添加到第一个基因载体(218)中。如果你想只有有了自定义基因,你可以用什么来定义一个空向量c ()对于各自的向量。

其他笔记。

TopoICSim有一个预先计算的分数矩阵,这可以打开/关闭。然而,分数可能会被弃用,只要其中一个org.DB包得到更新。出于这个原因,我们建议禁用这个选项。你也可以使用自定义基因预先计算一些GO。all_go_pairs可以作为预先计算的得分矩阵,只使用相交/当前GO项。

并行处理和大数据

到目前为止,还不支持并行处理。其他算法还没有并行化,因为算法依赖的依赖的数量和类型在实现上存在困难。将来可能会支持并行处理。然而,在TopoICSim中划分工作(在基因对级别上)是可能的。它运行于每一对独特的基因,你可以用隐藏的GAPGOM::: .unique_combos函数。的All_go_pairs对象,然后可以与其他结果组合在一起。然而,在试图使这一工作方面不提供支持。提示:all_go_pairs论点topo_ic_sim_genes ()不会自动创建一个新的、更大的矩阵,它只使用基于输入基因的分析的重叠或现有GO项。

性能和基准

这一方案的性能经过了很好的测试基准装饰图案,其中还准备了基准。

联系和支持

有关问题、联系方式或支持,请使用(Bioconductor) git库或通过Bioconductor论坛

SessionInfo

sessionInfo()开发中(不稳定)(21-10-19 r81077)x86_64-pc-linux-gnu(64位)#>运行在Ubuntu 20.04.3 LTS下# >#>矩阵产品:默认值#> BLAS: /home/biocbuild/bbs-3.15-bio /R/lib/libRblas.so . txt#> LAPACK: /home/biocbuild/bb -3.15-bio /R/lib/libRlapack.so . txt . txt# ># >语言环境:#> [1] LC_CTYPE=en_US。utf - 8 LC_NUMERIC = C#> [3] LC_TIME=en_GB LC_COLLATE=C#> [5] LC_MONETARY=en_US。utf - 8 LC_MESSAGES = en_US。utf - 8#> [7] LC_PAPER=en_US。utf - 8 LC_NAME = C#> [9] lc_address = c lc_telephone = c#> [11] LC_MEASUREMENT=en_US。utf - 8 LC_IDENTIFICATION = C# >#>附加基础包:#> [1] stats4 stats graphics grDevices utils数据集方法#>[8]基础# >#>其他附件:#> [1] org.Hs.eg.db_3.14.0 AnnotationDbi_1.57.0 IRanges_2.29.0#> [4] S4Vectors_0.33.0 Biobase_2.55.0 BiocGenerics_0.41.0# GAPGOM_1.11.0 kableExtra_1.3.4 knitr_1.36# >#>通过命名空间加载(不附加):#> [1] matrixStats_0.61.0 bitops_1.0-7 bit64_4.0.5#> [4] filelock_1.0.2 webshot_0.5.2 httr_1.4.2# GenomeInfoDb_1.31.0 tools_4.2.0 bslib_0.3.1#> [10] utf8_1.2.2 R6_2.5.1 DBI_1.1.1#> [13] colorspace_2.0-2 tidyselect_1.1.1 bit_4.0.4#> [16] curl_4.3.2 compiler_4.2.0 graph_1.73.0#> [19] rvest_1.0.2 xml2_1.3.2 sass_0.4.0#> [22] scales_1.1.1 readr_2.0.2 RBGL_1.71.0#> [25] rappdirs_0.3.3 systemfonts_1.0.3 string_1 .4.0#> [28] digest_0.6.28 rmarkdown_2.11 svglite_2.0.0#> [31] GEOquery_2.63.0 XVector_0.35.0 pkgconfig_2.0.3#> [34] htmltools_0.5.2 highr_0.9 dbplyr_2.1.1#> [37] fastmap_1.1.0 limma_3.51.0 rlang_0.4.12#> [40] rstudioapi_0.13 RSQLite_2.2.8 prettydoc_0.4.1#> [43] jquerylib_0.1.4 generics_0.1.1 jsonlite_1.7.2#> [46] GOSemSim_2.21.0 dplyr_1.0.7 RCurl_1.98-1.5GO.db_3.14.0 GenomeInfoDbData_1.2.7#> [52] Matrix_1.3-4 Rcpp_1.0.7 munsell_0.5.0#> [55] fansi_0.5.0 lifecycle_1.0.1 stringi_1.7.5#> [58] yaml_2.2.1 zlibbioc_1.41.0 plyr_1.8.6#> [61] BiocFileCache_2.3.0 grid_4.2.0 blob_1.2.2#> [64] crayon_1.4.1 lattice_0.20-45 Biostrings_2.63.0#> [67] hms_1.1.1 KEGGREST_1.35.0 pillar_1.6.4#> [70] igraph_1.2.7 fastmatch_1.1-3 glue_1.4.2#> [73] evaluate_0.14 data.table_1.14.2 png_0.1-7# > [76] vctrs_0.3.8 tzdb_0.1.2 org.Mm.eg.db_3.14.0#> [79] purrr_0.3.4 tidyr_1.1.4 assertthat_0.2.1#> [82] cachem_1.0.6 xfun_0.27 viridisLite_0.4.0#> [85] tibble_3.1.5 memoise_2.0.0 ellipsis_0.3.2

参考文献