引用

使用GAPGOM时,请注明以下内容:

简介

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

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

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

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

安装

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

表达式数据接口

ID的支持

从v0.2.7及更高版本开始,所有AnnotationDbi应该支持id。但是,我们建议使用EntrezID这是因为这是这个包和其他包中最广泛支持的ID。如果您发现与ID支持有关的问题,请在包存储库中通知此问题。如果希望(或必须)手动转换id,可以使用BiomaRt建议打包。但是,将id转换为其他类型是有损耗的,并且并不总是转换得很好。

表达式数据(FANTOM5)

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

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

手动指定ExpressionSet

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

最低要求ExpressionSet

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

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

随机表达式值生成;

#选择x个随机idx_entries < -1000go_data < -GAPGOM::set_go_data“人”“英国石油公司”computeIC =#>加载所需的包:org.Hs.eg.db#>加载所需的包:AnnotationDbi#>加载所需的包:stats4#>加载所需的包:BiocGenerics#>加载所需的包:并行# >#>附加包:“BiocGenerics”下面的对象从'package:parallel'中屏蔽:# >#> clusterApply, clusterApplyLB, clusterCall, clusterEvalQ#> clusterExport, clusterMap, parApply, parCapply, parApply,#> parapplylb, parRapply, parSapply, parSapplyLB下面的对象将从'package:stats'中屏蔽:# >#> IQR, mad, sd, var, xtabs下面的对象从'package:base'中屏蔽:# >#>过滤器,查找,映射,位置,减少,anyduplication,追加,#> as.data.frame, basename, cbind, colnames, dirname, do.call,#> duplicate, eval, evalq, get, grep, grepl, intersect, is。unsorted,#> lapply, mapply, match, mget, order,粘贴,pmax, pmax.int, pmin,#> pmin.int, rank, rbind, rownames, sapply, setdiff, sort, table#> tapply,联合,唯一,unsplit, which, which。马克斯,which.min#>加载所需的包:Biobase欢迎来到Bioconductor# >#>小插图包含介绍材料;视图与# > ' browseVignettes()”。要引用Bioconductor,请参见#> 'citation("Biobase")',对于软件包'citation("pkgname")'。#>加载所需的包:IRanges#>加载所需的包:S4Vectors# >#>附加包:“S4Vectors”下面的对象从'package:base'中屏蔽:# ># > expand.grid#>准备基因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 8915 1183.7462 1426.1496 1755.0593 448.31235 1500.9171 757.58789#> 2 51733 900.4911 2212.2052 1659.1253 56.55502 764.4681 168.45268#> 3 4974 106.3874 811.6239 527.8380 1104.52422 2934.8179 79.45184#> 4 51176 1418.0254 988.7687 532.2137 1530.41649 902.5002 343.05335#> 5 80045 229.9467 683.9647 717.5520 1358.10934 367.8914 511.48197#> 6 675 2452.4830 2666.4597 610.4293 316.60428 921.8110 1907.86966

将表达式数据框架转换为表达式集;

LNCRNA2GOA表达相似度

背景

LNCRNA2GOA(长非编码RNA to GO Annotation)或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 \)第Th微分算子。对于特殊情况\ (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)



现在,我们将费雪信息的一个著名表示定义为正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方法也可用于除lncRNAs外的其他新基因。

例子

分数+充实

下面的例子是一个任意的用例。这意味着这只是一个例子,并不(一定)意味着某个问题/现实生活用例。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)。Gene应该与表达式数据集中的相同。
  • 第二个科勒姆\ (\ \)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]来测试结果是否相同,制作了一个小脚本来重现相同的结果,位于下面的包安装目录中脚本.的脚本文件夹中还包含算法的两个原始脚本,但不一定包含算法的数据。数据(以及脚本)可以在以下网站上找到:

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

TopoICSim

背景

TopoICSim或拓扑信息内容相似性,是一种测量两个GO术语之间相似性的方法,给定GO DAG树的信息内容和拓扑结构。与其他类似的措施不同,它认为两者都是最短的而且两项之间的最长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的顶级节点是Root,它是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)



我们使用逆信息内容(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_\ mathm {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) \)所有直系子代的set for\ \ (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]。

例子

下面的示例使用Pfam氏族基因集测量集内相似性。对于单基因来说,EntrezID218和501进行比较。

去:0004028 去:0004029 去:0004030 去:0005515 去:0008106 去:0018479 去:0004043 去:0008802 去:0043878
去:0004028 1.000 0.899 NA NA NA NA 0.908 0.816 0.904
去:0004029 0.899 1.000 0.898 NA 0.117 0.805 0.903 0.808 0.898
去:0004030 NA 0.898 1.000 NA NA NA 0.907 0.815 0.903
去:0005515 NA NA NA 1 NA NA NA NA NA
去:0008106 NA 0.117 NA NA 1.000 NA 0.121 0.097 0.119
去:0018479 NA 0.805 NA NA NA 1.000 0.818 0.939 0.812
去:0004043 0.908 0.903 0.907 NA 0.121 0.818 1.000 NA NA
去:0008802 0.816 0.808 0.815 NA 0.097 0.939 NA 1.000 NA
去:0043878 0.904 0.898 0.903 NA 0.119 0.812 NA NA 1.000
去:0016620 去:0004028 去:0004030 去:0005515 去:0018477 去:0018479 去:0004029 去:0008106
去:0016620 1.000 0.685 0.683 NA 0.565 0.543 0.675 0.150
去:0004028 0.685 1.000 0.903 NA 0.830 0.813 0.899 0.119
去:0004030 0.683 0.903 1.000 NA 0.828 0.811 0.898 0.119
去:0005515 NA NA NA 1 NA NA NA NA
去:0018477 0.565 0.830 0.828 NA 1.000 0.722 0.822 0.099
去:0018479 0.543 0.813 0.811 NA 0.722 1.000 0.805 0.096
去:0004029 0.675 0.899 0.898 NA 0.822 0.805 1.000 0.117
去:0008106 0.150 0.119 0.119 NA 0.099 0.096 0.117 1.000
126133 221 218
126133 1.000 0.828 0.828
221 0.828 1.000 0.982
218 0.828 0.982 1.000

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

  • AllGoPairs

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

  • GeneSim

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

自定义的基因

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

自定义< -列表cus1 =c“去:0016787”“去:0042802”“去:0005524”))结果< -GAPGOM::topo_ic_sim_genes“人”“曼氏金融”“218”“501”custom_genes1 =自定义,滴=verbose =真正的progress_bar =准备topoICSim数据…#>准备术语数据。#>准备基因GO映射数据…#>准备IC数据…#>准备基因/基因集数据…#>开始计算所有go。过滤预计算值…解决共同祖先的问题…# >完成了!解析析取共同祖先…# >完成了!计算短路径…# >完成了!计算长路径…# >完成了!#>合并到all_go_pairs…# >完成了!#>合并基因(集)结果…# >完成了!#>计算时间(秒):# > 11.6093716621399结果# > GeneSim美元# > 501#> cus1 0.293#> 218 0.975# ># > AllGoPairs美元#> go:0004028 go:0004029 go:0004030 go:0005515 go:0008106 go:0018479#> go:0004028 1.000 0.899 na na na na#> go:0004029 0.899 1.000 0.898 na 0.117 0.805#> go:0004030 na 0.898 1.000 na na na#> go:0005515 na na na 1.000 na na#> go:0008106 na 0.117 na 1.000 na#> go:0018479 na 0.805 na na 1.000#> go:0004043 0.908 0.903 0.907 na 0.121 0.818#> go:0008802 0.816 0.808 0.815 na 0.097 0.939#> go:0043878 0.904 0.898 0.903 na 0.119 0.812#> go:0016787 0.046 0.045 0.046 na 0.034 0.036#> go:0042802 na na na 0.101 na na#> go:0005524 na na na 0.121 na na#> go:0004043 go:0008802 go:0043878 go:0016787 go:0042802 go:0005524#> go:0004028 0.908 0.816 0.904 0.046 na na#> go:0004029 0.903 0.808 0.898 0.045 na na#> go:0004030 0.907 0.815 0.903 0.046 na na#> go:0005515 na na na na 0.101 0.121#> go:0008106 0.121 0.097 0.119 0.034 na na#> go:0018479 0.818 0.939 0.812 0.036 na na#> go:0004043 1.000 0.822 0.908 0.046 na na#> go:0008802 0.822 1.000 0.816 0.036 na na#> go:0043878 0.908 0.816 1.000 0.046 na na#> go:0016787 0.046 0.036 0.046 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.DBPackages得到更新。出于这个原因,我们建议不要选择这个选项。您还可以使用自定义基因自己预先计算一些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()#> R版本4.0.0 (2020-04-24)#>平台:x86_64-pc-linux-gnu(64位)运行在Ubuntu 18.04.4 LTS下# >矩阵产品:默认值#> BLAS: /home/biocbuild/bbs-3.11-bioc/R/lib/libRblas.so#> LAPACK: /home/biocbuild/bbs-3.11-bioc/R/lib/libRlapack.so . cn# ># >语言环境:#> [1] LC_CTYPE=en_US。utf - 8 LC_NUMERIC = C#> [3] LC_TIME=en_US。utf - 8 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_phone = c#> [11] LC_MEASUREMENT=en_US。utf - 8 LC_IDENTIFICATION = C# >#>附加基础包:#> [1] parallel stats4 stats graphics grDevices utils数据集#>[8]方法基础# >#>其他附加包:#> [1] org.Hs.eg.db_3.10.0 AnnotationDbi_1.50.0 IRanges_2.22.0#> [4] S4Vectors_0.26.0 Biobase_2.48.0 BiocGenerics_0.34.0#> [7] GAPGOM_1.4.0 kableExtra_1.1.0 knitr_1.28# >#>通过命名空间加载(并且没有附加):#> [1] Rcpp_1.0.4.6 lattice_0.20-41 tidyr_1.0.2GO.db_3.10.0 assertthat_0.2.1 digest_0.6.25 . #> [4]#> [7] BiocFileCache_1.12.0 plyr_1.8.6 R6_2.4.1#> [10] org.Mm.eg.db_3.10.0 RSQLite_2.2.0 evaluate_0.14#> [13] highr_0.8 htr_1 .4.1 pillar_1.4.3 . ##> [16] rlang_0.4.5 curl_4.3 rstudioapi_0.11#> [19] data.table_1.12.8 blob_1.2.1 Matrix_1.2-18#> [22] rmarkdown_2.1 webshot_0.5.2 readr_1.3.1#> [25] string_1 .4.0 igraph_1.2.5 bit_1.1-15.2#> [28] munsell_0.5.0 compiler_4.0.0 xfun_0.13#> [31] pkgconfig_2.0.3 htmltools_0.4.0 tidyselect_1.0.0#> [34] tibble_3.0.1 GEOquery_2.56.0 matrixStats_0.56.0#> [37] viridisLite_0.3.0 crayon_1.3.4 dplyr_0.8.5#> [40] dbplyr_1.4.3 rappdirs_0.3.1 grid_4.0.0#> [43] RBGL_1.64.0 lifecycle_0.2.0 DBI_1.1.0#> [46] magrittr_1.5 scales_1.1.0 graph_1.66.0#> [49] stringi_1.4.6 GOSemSim_2.14.0 limma_3.44.0 . ##> [52] xml2_1.3.2 ellipsis_0.3.0 vctrs_0.2.4#> [55] fastmatch_1.1-0 tools_4.0.0 bit64_0.9-7#> [58] glue_1.4.0 purrr_0.3.4 hms_0.5.3#> [61] prettydoc_0.3.1 yaml_1 .2.1 colorspace_1.4-1#> [64] rvest_0.3.5 memoise_1.1.0

参考文献