0

我对 R 非常陌生。我需要建立一个基因网络。我有一个基因列表及其相应的基序。我知道我的基因将是我的顶点,而图案将是我的边缘。我知道我必须先制作一个数据框。那么,如何制作可以从以下内容绘制的数据框?

>GENE1

hsa-miR-24-1-5p    
hsa-miR-24-2-5p    

>GENE2

hsa-miR-124-5p
hsa-miR-223-5p
hsa-miR-203a
hsa-miR-219-1-3p   

>GENE 3

hsa-miR-124-5p
hsa-miR-203a   

>GENE 4

hsa-miR-203a
hsa-miR-221-3p
hsa-miR-222-3p
hsa-miR-24-1-5p
hsa-miR-24-2-5p   

>GENE 5

hsa-miR-192-3p   

>GENE 6

hsa-miR-223-5p
hsa-miR-124-5p   

>GENE 7

hsa-miR-221-3p
hsa-miR-222-3p
hsa-miR-219-1-3p   
4

1 回答 1

1

你离得更近了,但你的数据看起来有点滑稽。有许多不同的方法可以以 igraph 可以解释的形式向 igraph 提供数据。你应该自己确定你喜欢哪个。我更喜欢 edgelist 格式,所以我在这里介绍它。这种格式要求您定义每条边的源和目标。您可以在下面的示例中看到,我使用 CSV 中的第三列向 igraph 提供属性数据,这允许我使用绘图功能标记边缘。

这是您可以编写的示例:

library(RCurl)
library(igraph)

el <- read.csv(text = "Source,Target,name
               GENE1,GENE2,hsa-miR-24-1-5p
               GENE2,GENE3,hsa-miR-124-5p
               GENE2,GENE4,hsa-miR-223-5p")
nodes <- read.csv(text = "Node
                  GENE1
                  GENE2
                  GENE3
                  GENE4")

g <- graph.data.frame(el,directed=TRUE, vertices=nodes)
plot(g, edge.label=E(g)$name)

边缘列表中有一些要求。第一列定义为源列,第二列定义为目标。在有向网络中,箭头是从源到目标绘制的。在无向网络中,这是无关紧要的。

所有边都需要源和目标。您需要检查您的网络以确保满足此要求。

是一个很好的资源。它对获取原始数据并将其转换为网络没有多大帮助,因为这些示例使用了内置网络。

于 2013-06-26T01:59:42.153 回答