我是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
答案 0 :(得分:1)
你离得更近,但你的数据看起来有点滑稽。有许多不同的方法可以以可以解释的形式向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)
边缘列表中有一些要求。第一列定义为源列,第二列定义为目标。在定向网络中,从源到目标绘制箭头。在无向网络中,这是无关紧要的。
所有边缘都需要源和目标。您需要检查您的网络以确保满意。
This是一个很好的资源。由于示例使用了内置网络,因此将原始数据转换为网络并没有多大帮助。