{hook-printfun,回声= FALSE}库(knitr,静静地= TRUE)库(formatR,静静地= TRUE)美元knit_hooks组(printfun =函数(之前,选择,envir){如果()返回()三种=捕获。输出(转储(选择printfun美元”,envir = envir) # #重新格式化如果整洁= TRUE(选项整洁美元)txt =整洁。源(= txt文本,输出= FALSE,宽度。截止= 30 l, keep.comment = TRUE, keep.blank.line = FALSE)美元文本。整理粘贴(c (' \ n
r’, txt”,\ n”),崩溃= " \ n ")})
本文档包含说明如何使用圣包中包含的功能。圣诞老人构建雷普利的K-function之上,一个行之有效的方法在空间统计测量在飞机上点的聚类,将它应用于网络。使用这种方法,Knet
和Knode
函数定义。Knet
检测到集群的网络上为了测量的强度和表型之间的联系网络。Knode
排名基因根据距离来袭,提供一个自然的方式将顶点的后续分析。
圣诞老人地址两个互补的目标:它可以(i)功能注释实验推导出网络使用策划基因集,和(2)注释实验中基因集使用策划网络。
圣诞老人包还包含函数,可用于测量顶点对之间的距离(GraphDiffusion
和GraphMFPT
)和一个函数,可以想象Knet
函数(plot.Knet
)。“igraph}包是用于处理网络。
这个描述,连同圣包中提供的数据,是为了允许用户复制结果摘要所示:康沃尔,a .和Markowetz f (2014)圣诞老人:量化分子网络的功能内容。PLOS计算生物学,10:9 e1003808。减少所需的时间运行装饰图案,许多案例研究是建立与减少数量的试验运行,排列或基因集。这是表示在哪里以及如何案例研究与分析。圣诞老人包所使用的方法进一步解释。
牵连(GBA)交互的原则声明,基因更容易分享生物功能。例如,两个基因交互在合成基因阵列(SGA)更有可能编码产品参与相同的途径比两个基因没有看到或复杂的交互。Knet
使用这一原则来衡量的力量之间的联系网络和表型。通过测量聚类的基因在生物网络就可以确定最佳的网络解释背后的机制和过程。这一原则也使用Knode
优先跟进基因研究。如果一组基因已被确认为被关联到一个特定的细胞功能,然后GBA原则声明,基因与这组交互也可能参与功能。
Knet
函数的Knet
函数措施之间的关联强度量化集群网络和表型的较高的权重的网络上的顶点。高体重顶点代表那些基因的一部分设置或最密切相关的基因与表型。GBA原则意味着更强的集群、更好的网络是在解释表型产生和维持机制。
函数是基于Ripley K-statistic,从空间数据的工具,在飞机上点的聚类。里普利的K-statistic作品通过计算点的数量包含在圆圈的半径\ (\)定位在每一个点。的价值\ (\)增加和由此产生的曲线下的面积(雀)测量。如果点集群,那么他们将吞没内圈更快,功能会增加更快,雀将更大。通过交换之间的欧几里得距离飞机跨网络的测量距离,这个数据可以用于网络。我们调用这个函数Knet
函数。
不像Ripley K-statistic,Knet
函数可以测量一组顶点的集群或顶点权值的连续分布。如果正在使用生物网络,那么高重量将会表明,基因与表型的研究密切相关。在某些场景中,权重可能不是对所有顶点可用。顶点与失踪的权重可以包含在网络。然而,他们应该给NA},以确保他们的重量分布不影响意义分析。
集群的意义是通过交换顶点权重量化的整个网络。顶点与失踪的重量被排除在外。下的面积Knet
观察组函数是比下的面积Knet
功能的变更集和z检验是用来计算假定值。产生的假定值代表一个顶点聚类权重的概率至少一样强大的观察发生的顶点权重分布在网络上随机。
的Knet
函数是:
\ [K ^{净}(s) = \压裂{2}{酒吧(\ p {} n) ^ {2}} \ sum_{我}p_{我}\ sum_ {j} (p_ {j} - {p} \酒吧)~ \ textbf{我}(d ^ {g} (i, j) \ leq s) \]
在哪里\ (p_i \)表型观察到顶点吗我\ \ (),\ (\ textbf{我}(d ^ {g} (I, j) \ leq s) \)是一种恒等函数等于\ [1 \)如果顶点之间的距离我\ \ ()和\ (j \)小于\ (\),否则0,\(酒吧\ p{} = \压裂{1}{n} \ sum_ {i = 1} ^ n p_i \)。
Knode
函数内在的和Knet
方程可以排名较高的权重的顶点顶点的距离。我们调用这个函数Knode
函数。这个函数提供了一种自然的方式来优先跟进研究基因。
的Knode
函数是:
\ [K_{我}^{节点}(s) = \压裂{2}{p} \ sum_ {j} (p_ {j} - {p} \酒吧)~ \ textbf{我}(d ^ {g} (i, j) \ leq s) \]
圣诞老人包含三种方法测量对顶点之间的距离。每个方法包含网络的不同方面。
Knet
成功地用于模拟网络中识别聚类在本节中,我们将使用模拟网络来证明Knet
函数成功量化聚类的网络上。
为了演示Knet
函数可以用来衡量聚类的网络上,我们将模拟一个网络,应用点击不同的集群优势的集群网络,并使用Knet
函数来量化聚类的力量。
我们将使用优惠附件的Barabasi-Albert模型来模拟网络,因为它已经被观察到,这种方法生产的网络属性类似于许多现实世界的网络。500顶点的网络是大到足以包含集群的不同的优点和足够小,快速进行大量的试验。在Barabasi-Albert模型中,逐步添加顶点和顶点连接之前添加。这样做是在概率分布基于每个顶点的程度。如果\(功率= 1 \),那么概率分布和顶点度之间的关系是线性的。我们将使用此值,因为它创建了一个与多个高度网络中心,就像许多生物网络。每一个新的顶点相连\ \(米)之前添加顶点。为了创建一个moderately-dense网络,我们将设置\ (m = 1 \)。
#生成模拟网络需要(圣诞老人,静静地= TRUE)需要(igraph,静静地= TRUE) set.seed再现性g(1) # < -巴斯。游戏(n = 500 = 1, m = 1,导演= FALSE)
一个集群的模拟,首先随机选择一个种子点。网络中的所有其他顶点然后排名根据他们的距离从种子点。距离可以测量使用任何之前的距离度量(最短路径、扩散内核和MFPT)。在这个例子中,我们将使用最短路径度量,因为它是跑得最快的。然而,运行分析与其他方法会产生相同的结果。
#测量对g的顶点之间的距离dist.method <——“最短。路径“D < - DistGraph (g, dist.method = dist。方法详细= FALSE)
的Knet
函数计算每一对顶点之间的距离\ (g \)。然而,减少运行功能所需的时间,可以计算这些距离以外的功能。的Knet
函数不能运行在原始连续距离。因此,有必要对顶点到谨慎的垃圾箱。这是通过使用“BinGraph}函数。
#把距离谨慎进垃圾箱中B < - BinGraph (D, verbose = FALSE)
接下来,我们将产生集群的支安打,衡量集群强度使用Knet
函数。的\ (\)顶点位置最接近种子顶点形成样本集。从这个组,随机选择5顶点形成了集达到设定的大小。需要相比网络中顶点的数量。增加的价值\ (\)集群的强度降低。我们将测试的5种不同的值\ (\)为了模拟不同的集群优势。的值\ (\)等于网络中顶点的总数产生一组冲击包含顶点随机选择从整个网络。为每个值\ (\),我们将进行10试验。在相关的论文中,运行1000次试验。我们还将使用100种排列,而不是1000年,为了减少所需的时间。
集群。大小< - 5领域。使用< - c (10、20、50、100、500) n。试验< - 10 pvalues < -阵列(0,昏暗的c (n =。试验、长度(s.to.use)), dimnames =列表(NULL, as.character (s.to.use))) #运行试验为每个s.to.use (s)的s值为(我在1:n.trials){{#生成设置种子。顶点< -样本(vcount (g), 1) #识别种子样本。< -订单(D[种子。顶点,])[1:s]。< -样本(样本集。集,cluster.size) # g < - set.vertex测量协会的力量。属性(g, name =“击中”,价值= as.numeric (1: vcount (g) % % hit.set)) pvalues[我as.character (s)] < - Knet (g, nperm = 100, dist.method = dist。方法,顶点。attr =“击中”,B = B, verbose = FALSE) $ pval}}
图1包含仿真研究的结果。的Knet
函数正确标识使用较小的值创建的套打\ (\)作为集群更重要。
Knet
对密实度在下,我们将证明的有效性Knet
函数通过比较简单的度量。
Glaab等人定义密实度得分之间的平均距离对网络中。通过交换顶点属于组,对比观察密实度分数密实度分数permuted集,实证假设机率可以生产。这是很像Knet
。但是,与Knet
~,适应密实度分数不能用于连续分布的顶点权重,不包含顶点度在测量协会的重要性。这是在这个玩具的例子。
首先,我们创建一个网络。这个网络的顶点的度,让我们展示之间的差异Knet
和密实度
。我们将2套顶点权值,每一个都将包含两个互动。
#创建网络n。节点< < - c - 12边(1、2、1、3、1、4、2、3、2、4、3、4、1、5、5、6日,7日,7日,8日,4日,9日,9日,10日,3日,11日,11、12)weights1 < - weights2 < -代表(0,n.nodes) weights1 [c (1、2)] < - 1 weights2 [c (5、6)] < < - graph.empty (n - 1 g。节点,导演= FALSE) g < - add.edges g (g,边缘)< - set.vertex。属性(g,“weights1”,价值= weights1) g < - set.vertex。属性(g,“weights2”,价值= weights2)
图2显示了每组的位置点击网络。之间的距离在第一组和第二组是相同的。然而,直觉上我们希望设置2支安打的聚类更显著,随着冲击较少互动合作伙伴,因此不太可能观察到互动的机会。
现在我们将应用Knet
和密实度
每组支安打,以衡量集群的意义。我们将与100年运行功能排列。增加排列的数量增加功能的准确性。然而,它也增加了运行时间。1000排列被用来创建本文中所示的结果。将使用最短路径距离测量。然而,其他方法会产生相同的结果。
#设置1 Knet (g, nperm = 100,顶点。attr =“weights1 verbose = FALSE)美元pval密实度(g, nperm = 100,顶点。attr =“weights1 verbose = FALSE) $ pval # 2 Knet (g, nperm = 100,顶点。attr =“weights2 verbose = FALSE)美元pval密实度(g, nperm = 100,顶点。attr =“weights2 verbose = FALSE) pval美元
的密实度
功能不包含顶点度在测量了集群的重要性。出于这个原因,它输出一组类似的假定值每次攻击。Knet
包含顶点的全球分布,因此识别设置2作为集群显著高于组1。因此最好使用Knet
而不是密实度
当顶点的程度因网络而异。
Knet
证明在胃肠道相关概要文件生成功能更多的信息网络在本节中,我们将演示如何Knet
函数可以用来识别最有效的方式建立一个互动的网络。
有证据表明,蛋白质功能更接近全球相似性遗传交互(GI)配置文件比个体交互。为了验证这一点,我们将使用Knet
函数来量化关联的强度条件和两个美国酵母网络:网络的交互和网络从相关性交互创建概要文件。这两个将使用数据由创建使用et al。如果去更强烈与网络联系起来,这是表明网络功能的信息。
首先,我们将负载两个预处理网络的形式igraph
对象的圣诞老人
包中。圣诞老人
要求所有网络的形式igraph
对象。数据用来创建这些网络是可用的http://drygin.ccbr.utoronto.ca/ ~ costanzo2009 /和描述的方法是相关的圣诞老人。
Knet
也能够将不同的边缘距离的聚类量化较高的权重的顶点。边缘的距离可以代表不同的生物属性,如物理2基因产物之间的相互作用的强度,或在我们的2网络,遗传相互作用的强度。边距越小,更强或更重要的交互。在创建网络时,就将相关系数转换成距离的边缘\ (log10 \)的分数。这些距离已经储存在边缘属性距离
。
#负载igraph对象数据(g.costanzo.raw)数据(g.costanzo.cor)网络< -(原始= g.costanzo列表。生,软木= g.costanzo.cor) network.names < -名称(网络)网络。基因< - V(网络原始美元)$名字#基因相同的跨网络
基因之间的关联,条款将从基因本体论(去)获得项目使用org.Sc.sgd.db
包中。为了减少所需的时间运行这个分析,我们将只使用5项。然而,很容易运行这个分析更多的条款,完成相关的论文。
#从org.Sc.sgd获得GO术语关联。db包库(org.Sc.sgd。db,悄悄地= TRUE) xx < - as.list (org.Sc.sgdGO2ALLORFS)。条款< - c(“去:0000082”,“去:0003682”,“去:0007265”,“去:0040008”,“去:0090329”)#条款到网络申请(network.names名字){(走。任期go.terms){网络[[名字]]< - set.vertex。属性(网络[[名字]],name =。项,价值= as.numeric(网络。基因% % xx [[go.term]]))}}
现在我们将应用Knet
去每一个函数在每个网络为了量化协会的力量。如果一个基因与项将给定一个重量的1。如果它不相关,它会给你一个重量的0。现在我们将存储这些分数在2图顶点属性抽样
。由于所需的时间计算距离矩阵,排列的数量减少到10。建议运行至少1000排列。
结果< -列表()(network.names名字){结果[[名字]]< - Knet(网络[[名字]],nperm = 10, vertex.attr =。而言,优势。attr = "距离" verbose = FALSE)结果[[名字]]< -酸式焦磷酸钠([[名字]],结果函数(res) res pval美元)}
Knet
调查的功能重组酵母在应对MMS-treatment交互网络在本节中,我们将演示如何Knet
函数可以用来研究细胞的功能重新进行比较的力量协会2网络之间的基因集。
Bandyopadhyay等人映射遗传交互(GI)网络在酵母酵母在普通实验室条件下和暴露在能损伤dna剂甲基显示(MMS)。为了研究这些功能网络之间的差异,我们将使用Knet
函数量化一组基因协会的力量在应对DNA损伤。从这个例子中,虽然我们不能学习多组基因在其他进程也可以进行测试,以确定其他进程参与应对DNA损伤。
现在我们将加载两个交互网络。这些网络使用相关性在胃肠道概要文件创建,如前一节所述。这是因为,正如前面展示,利用相关性在胃肠道剖面边缘导致功能更多的信息网络。
#负载igraph对象数据(g.bandyopadhyay.treated)数据(g.bandyopadhyay.untreated)网络< -列表(= g.bandyopadhyay治疗。治疗,治疗= g.bandyopadhyay。未经处理的)network.names < -名称(网络)
我们将该基因本体论(去)项目识别这些基因参与应对DNA损伤。通过改变下面的代码,可以测量协会的基因集的力量参与不同的功能。在相关的论文中,我们测量协会194年的力量去接受每个网络。
#获取术语关联库(org.Sc.sgd去。db,悄悄地= TRUE) xx < - as.list (org.Sc.sgdGO2ALLORFS) #改变使用替代术语相关联。基因< - xx[[“去:0006974]]协会< -酸式焦磷酸钠(网络、函数(g) as.numeric (V (g)名字% % associated.genes美元),简化= FALSE)网络< -酸式焦磷酸钠(network.names,函数set.vertex(名字)。属性(网络[[名字]],“抽样”,价值=协会[[名字]]),简化= FALSE)
现在我们将应用Knet
函数的项在每个网络为了测量协会的力量。更大的数量排列来看,更大的假定值的准确性。
我们还将运行Knet
使用最短路径的方法来计算顶点对之间的距离。然而,相关的文章所示,扩散
和mfpt
距离措施产生相同的结果。这可以通过替换dist.method
论点下面的替代措施的距离。通过运行分析与附加条款,的健壮性Knet
可以看到在不同距离的措施。由于所需的时间计算距离矩阵,排列的数量减少到10。建议使用至少1000排列。
结果< -酸式焦磷酸钠(网络、函数(g) Knet (g, nperm = 10, dist.method = "最短。路径”,顶点。attr =“抽样”,edge.attr =“距离”),简化= FALSE) p。值< -酸式焦磷酸钠(结果,函数(res) res pval美元)p.values
自去项测试应对DNA损伤刺激
,毫不奇怪,更重要的是与治疗相关的基因集网络由较低的假定值(如图所示)。酵母接触能损伤dna的代理激活或调节通路参与应对代理,从而增加基因dna损伤与响应相关的基因之间的相互作用的强度。
Knet
调查的功能重组酵母交互网络以应对紫外线损伤在本节中,我们将进行类似的分析。然而,在本节中,我们将使用一个网络从GIs创建映射在酿酒酵母暴露于高剂量的紫外线和GIs绘制从未经处理的酵母。由于数量减少的交互绘制在这项研究中,是不可能建立网络从胃肠道的相关性。因此,网络是由原始的交互。
#负荷igraph对象数据(g.srivas.high)数据(g.srivas.untreated)网络(高= g.srivas < -列表。高,治疗= g.srivas。未经处理的)network.names < -名称(网络)
我们将再次测试只有一个学期(去:0000725重组修复)。在相关的论文中,更多的去测试。
#获取术语关联库(org.Sc.sgd去。db,悄悄地= TRUE) xx < - as.list (org.Sc.sgdGO2ALLORFS)相关联。基因< - xx[[“去:0000725]]协会< -酸式焦磷酸钠(网络、函数(g) as.numeric (V (g)名字% % associated.genes美元),简化= FALSE)网络< -酸式焦磷酸钠(network.names,函数set.vertex(名字)。属性(网络[[名字]],“dsbr”,价值=协会[[名字]]),简化= FALSE)
的Knet
函数将再次被用来比较协会的力量去与2网络术语。由于所需的时间计算距离矩阵,排列的数量减少到10。建议使用至少1000排列。
p。值< -酸式焦磷酸钠(网络、函数(g) Knet (g, nperm = 10, dist.method = "最短。路径”,顶点。attr =“dsbr edge.attr pval美元)p.values =“距离”)
正如所料,GO术语将更强烈与紫外线处理网络。这可能是由于功能重新布线时,发生在酵母能损伤dna的紫外线辐射。
Knet
确定网络信息最丰富的关于癌症细胞系在本节中,我们将顶点权值的连续分布,描述证据表明基因的力量参与维护癌症细胞系,两个网络,以确定最佳的网络解释背后的机制细胞系维护。
生物网络可以使用多种数据源,包括co-expression数据,数据物理交互或基因交互数据。网络也可以通过结合创建数据源。HumanNet网络相结合是由21个数据源。完整的网络使用策划创建物理数据交互。
在下一节中,我们将应用数据从预处理RNAi癌症细胞系作为顶点权重两个网络。GENE-E程序已经被用于每个成分的重要性分数转换成gene-wise假定值。这个假定值包含在加载数据集。我们还将这些假定值转化为顶点权重,可以应用于网络。以\ (-log_ {10} \)假定值,我们保证最基本的基因是给定顶点权重最高。
#进出口(rnai.cheung) RNAi RNAi数据转换数据。张< - log10 (rnai.cheung) rnai.cheung [! is.finite (rnai.cheung)] < - max (rnai.cheung [is.finite (rnai.cheung)]) (rnai rnai.cheung。张< 0]< - 0
接下来,我们将加载两个网络交互数据并创建一个igraph
为每个对象。没有边的权值给出了完整的网络。HumanNet网络中的每个交互关联到一个日志可能性评分(前),描述了使用的数据给出的功能交互发生的概率。为了减少网络的密度,相互作用的\(< 2 \前)已被移除。距离为其余边缘产生的重量除以最大重量和花\ (-log_ {10} \)这个分数。我们已经删除了所有的基因不是最大的集群从每个网络的一部分。
#导入和创建完整的网络数据(edgelist.intact) g.intact < - graph.edgelist (as.matrix (edgelist.intact),导演= FALSE) #导入数据和创建HumanNet网络数据(edgelist.humannet) g。humannet < - graph.edgelist (as.matrix (edgelist.humannet)[1:2],导演= FALSE) g。humannet < - set.edge.attribute (g。humannet,“距离”,价值= edgelist.humannet < - $距离)网络列表(完整= g.intact humannet = g.humannet)
接下来,我们将顶点权重应用于网络。并不是所有的网络基因顶点权重。
network.names < -名称(网络)网络。< -酸式焦磷酸钠(网络、get.vertex基因。=“name”属性,名称,简化rnai.cheung = FALSE)。癌症基因< - rownames (rnai.cheung) < - colnames (rnai.cheung)在癌症(癌症){network.names(名称){顶点。重量<代表(NA vcount(网络[[名字]]))(vertex.weights) < -网络名称。基因[[名字]]常见。< - rnai.cheung.genes [rnai.cheung基因。基因% %网络。基因[[名字]]]vertex.weights[常见。基因]< - rnai.cheung[常见。基因,癌症]网络[[名字]]< - set.vertex。属性(网络[[名字]],癌症,价值= vertex.weights)}}
现在我们将应用Knet
这些成绩功能。由于所需的时间计算距离矩阵,排列的数量减少到10。建议使用至少1000排列。
knet。res < -酸式焦磷酸钠(网络、Knet nperm = 10, dist.method = "最短。路径”,顶点。attr =癌症,优势。attr =“距离”,简化= FALSE) p。< -酸式焦磷酸钠(knet值。res、功能(i)酸式焦磷酸钠(我,函数(j) j pval美元))p.values
RNAi数据从结肠癌和卵巢癌细胞株强烈与网络联系起来。然而,他们将更强烈与HumanNet网络联系起来,表明HumanNet网络更好的解释了这些细胞系细胞机制参与维护。
本文档是使用:
sessionInfo ()