我正在构建一个基因网络.我有一个两列数据框,我转换成和邻接矩阵,并在igraph中使用它.问题是我有自我循环的基因,我想摆脱自我循环,然后摆脱没有边缘(可能与网络隔离)的顶点.我尝试了一些东西,但不知怎的,它们不起作用.我的代码是
InnatedGraph <- graph.data.frame(innate,directed=FALSE)
V(InnatedGraph)$label.cex = 0.4
plot(InnatedGraph,vertex.label=V(InnatedGraph)$symbol, vertex.size=5)
Run Code Online (Sandbox Code Playgroud)
先天是我的两列数据框架.我已经尝试过度函数去除0度的顶点,但我猜不幸它不起作用(也许becoz自环基因有1度).
bad.vs<-V(InnatedGraph)[degree(InnatedGraph) == 0]
clean <-delete.vertices(InnatedGraph, bad.vs)
Run Code Online (Sandbox Code Playgroud)
我尝试使用包装BioNet"rmSelfLoops"中的另一个函数,借助它我可以移除自循环边但仍然无法移除没有边的顶点.
test<-rmSelfLoops(InnatedGraph)
Run Code Online (Sandbox Code Playgroud)
我正在使用igraph中的网络,我有一个网络,其中有短的连接节点,彼此重叠,所以我们不要exaclt看到边缘.我想删除这样的短连接节点,因为它们没有连接到主网络.由于节点不是0度,因此度数不起作用,它们要么连接到一个或多个基因,但仍然不在主网络中.即使主网络显示一些重叠基因,我也想纠正它.
net <- simplify(InnatedGraph, remove.multiple = T, remove.loops = T, )
bad.vs<-V(net)[degree(net) == 0]
net <-delete.vertices(net, bad.vs)
plot(net,vertex.label=NA, edge.curved=.1, edge.width = 1,edge.arrow.width = 0.3,vertex.size = 3,asp=-1,edge.arrow.size = 0.5,vertex.label.cex = 0.3)
Run Code Online (Sandbox Code Playgroud)
您在主网络周围看到的基因不是孤立的节点,而是连接到其他重叠的节点.是否有办法删除这些基因,防止在主网络中重叠.
我有一个在列中带有数字的数据框,这些数字是小数。我想删除列中的小数和蚂蚁整数。
我的数据框expsrs看起来像这样
ENSG00000226823.1 15 14.4947 22.5606 13.5819 5.09327 16.8503
ENSG00000266470.1 0 0 0 0 0 0
ENSG00000229435.2 0 0 0 0 0 0
ENSG00000277456.1 0 0 0 0 0 0
ENSG00000236077.2 0 0 0 0 0 0
ENSG00000280518.1 0 57.9833 30.4089 23.0059 4.85613 0
Run Code Online (Sandbox Code Playgroud)
我已经尝试过此代码,但是它删除了小数点,但也更改了值。
exprs$V1<-round(as.numeric(exprs$V1), 0)
Run Code Online (Sandbox Code Playgroud)
我想从所有列中删除小数,而不是从行名中删除。有人可以帮忙吗?