Skip to content

Converting edgelist to symmetric matrix

3 messages · Shafique, M. (UNU-MERIT), Mike Marchywka

#
----------------------------------------
not find
I'm trying to do something related and found

?read.graph 

will format=ncol do what you need? This apparently creates a graph object that likely
has capacilities you need.? Again, I haven't actually used any of this
just found while trying to solve a different problem. 

'It is a simple text file
with one edge per line. An edge is defined by two symbolic vertex
names separated by whitespace. (The symbolic vertex names
themselves cannot contain whitespace. They might followed by an
optional number, this will be the weight of the edge; the number
can be negative and can be in scientific notation. If there is no
weight specified to an edge it is assumed to be zero. 
'
#
I'd replied earlier suggesting the ncol format, I'd like to follow up on
that as I have tried with some success but maybe someone else can comment
on alternatives and suggest ideas for plotting. I have a set of nodes or states
specified by two parameters ( these are isotopes specified by proton and mass connected
by decay paths with probability of that path being its weight). 
This seems to almost work for your needs( note that I have taken out a lot of extraneous stuff
and may have dropped somethimng important LOL, also setup for Rgraphviz is not simple 
on 'dohs as i had to manually edit env variable etc) ,

library("Rgraphviz")
library("QuACN")
nxg<-read.graph("ncol.txt",format="ncol")
nn<-igraph.to.graphNEL(nxg)
aasd<-adjacencyMatrix(nn)
?num [1:2561, 1:2561] 0 100 95.8 2.7 0 0 0 0 0 0 ...
?- attr(*, "dimnames")=List of 2
? ..$ : chr [1:2561] "17_10" "17_9" "16_9" "15_7" ...
? ..$ : chr [1:2561] "17_10" "17_9" "16_9" "15_7" ...


$ head ncol.txt
17_10 17_9 100
17_10 16_9 95.8
17_10 15_7 2.7
18_10 18_9 100
19_10 19_9 100
23_10 23_11 100
243_100 239_98 100
245_100 241_98 100
246_100 242_98 92
246_100 246_99 1


However, for my needs plotting has been a big problem. I apparently
have 2561 isotopes ( none of this has been validated yet LOL) that
are sparely connected by a few decay modes ( presumably acyclic directed
graph but DAG in searches didn't help much ). 





Any thoughts on which R classes to try to visualize this or even what I 
should be thinking about artistically? This is largely just a way to learn
R for some other things I want to do for analyzing data on wireless devices
but I am curious about this result too. 

Some of the things I did try are below,

library("Rgraphviz")
library("QuACN")
nxg<-read.graph("ncol.txt",format="ncol")
foo<-adjacencyMatrix(nxg)
?graphNEL
?NELgraph
df<-data.frame(nxg)
plot.igraph(nxg,layout=layout.svd)
rglplot.igraph(nxg,layout=layout.svd)
rglplot.igraph(nxg,layout=layout.svd)
rglplot.igraph(nxg)
tkplot.igraph(nxg)
library("tcltk")
tkplot.igraph(nxg)
tkplot(nxg)
dx<-decompose.graph(nxg)

nn<-igraph.to.graphNEL(nxg)
igraph.plotting(nxg)
library("sna")
gplot(nxg)
dx<-get.adjacency(nxg)
gplot(dx)
gplot3d(dx)
plot(nxg)
library("ElectroGraph")
eg<-electrograph(nxg)
eg<-electrograph(aasd)
plot(eg)




Thanks.