首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据基因表达值属性显示节点颜色

根据基因表达值属性显示节点颜色
EN

Stack Overflow用户
提问于 2014-10-03 09:51:47
回答 2查看 1.7K关注 0票数 0

我的值范围从-0.10100到0.28400 (总共120个连续值)。这个值代表120个基因的基因表达。在我的网络中,它们代表了TGFB1相互作用的基因。我正试着用照片库来规划我的网络。我想对我的节点颜色产生两种影响:第一种是:根据代表我属性的值范围,根据绿色的基因表达值(绿色是负值,红色是正的)对我的节点进行着色。然后,我想让红绿节点在-0.10100到0.04720之间变得透明。因为我不是一个R专家,我遇到了麻烦,对我的网络有这么多的影响。有人能帮我吗?

我的尝试:

tmp1= read.delim("mynet.txt",header= T) g <- graph.data.frame(tmp1,directed=FALSE) V(g)$name 1 "COL6A3“"PDGFRB”"COL3A1“"COL5A1”"LOXL1“公司名称(v/c),GEX (v/c),颜色(v/c) tmp2= read.delim(myattributes.txt,header= T)基因S2N COL6A3 0.28400 PDGFRB 0.28100 COL3A1 0.26300 ..V(G)$GEX=as.numeric(tmp2$S2N$name(V(G)$name,tmp2$基因)) V(g)$color=V(g)$GEX

不幸的是,我停了下来,不能继续下去了。有人能帮我吗?

最好的

EN

回答 2

Stack Overflow用户

发布于 2019-08-17 23:40:44

您可以为您的颜色创建到调色板的映射。假设您希望您的负值为绿色、零白色和正值红色,则此操作应该有效:

代码语言:javascript
复制
my_palette <- colorRampPalette(c("green", "white", "red"))(n = 10000)

sf <- max(abs(tmp2$S2N))
node.colors <- (tmp2$S2N+sf) / (2*sf) * 10000

plot(g, vertex.color=my_palette[node.colors])
票数 2
EN

Stack Overflow用户

发布于 2014-10-03 13:46:01

也许这不是一个最佳的解决方案,但让我们看看它是否对您有用。基本上,你必须给V(g)$color分配一个颜色,而不是你现在所做的数字。我的解决方案是在连续数据上定义间隔,并为每个间隔分配颜色。要将连续数据(即df$S2N)映射到分类数据,可以使用cut。下面是一个示例:

代码语言:javascript
复制
library(igraph)
library(org.Hs.eg.db) # Bioconductor annotation package for human.

set.seed(123)

# create toy network:
g <- barabasi.game(10, directed = FALSE)

# assign random gene ids.
V(g)$name <- sample(keys(org.Hs.eg.db), 10)

# assign the gene symbol to the label attribute:
V(g)$label <- select(org.Hs.eg.db, keys = V(g)$name, columns="SYMBOL")$SYMBOL
plot(g)

# generate toy dataset:
df <- data.frame(GENE=V(g)$label, S2N=sample(seq(-2,2,.1),10,replace=TRUE))

# if you are plotting e.g. fold changes, you may want dark blue for 
# FC between -2 and -1, blue for FC between -1 and -.5, grey for -.5 and .5, and so on.
# define colors:
col <- c("darkblue", "blue", "grey", "orange", "red")

# map your continuous data to the intervals you want:
(colc <- cut(df$S2N, breaks = c(-2, -1, -.5, .5, 1, 2), include.lowest = TRUE))

[1] (-1,-0.5]  (0.5,1]    (-0.5,0.5] (1,2]      (0.5,1]    (-0.5,0.5]
[7] (-0.5,0.5] (1,2]      (1,2]      [-2,-1]   
Levels: [-2,-1] (-1,-0.5] (-0.5,0.5] (0.5,1] (1,2]

# assign the colors to the network
V(g)$color=col[colc]
plot(g)

请注意,keysselect来自AnnotationDbi包,该包处理org.Hs.eg.db中的注释(它是一个依赖项),但在其他方面没有必要。这里只是为了这个例子而使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26176807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档