igraph-help
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [igraph] question about vertex names


From: Tamás Nepusz
Subject: Re: [igraph] question about vertex names
Date: Wed, 11 Sep 2013 23:54:32 +0200

> I am using the "igraph_shortest_paths()" function, and I noticed that the 
> "from" and "to" should be vertex ids. Is there some way to use the gene 
> symbol list instead of their ids? That will be much more convenient.  
Well, that's why most people use igraph from R or Python because the higher 
level interfaces hide some of the complexities of the C core. One particular 
complexity is that the C layer identifies vertices and edges by numeric IDs, 
and vertex or edge attributes usually have no special meaning. If you know the 
name of the vertex in the C layer and you need the ID, you have to build some 
kind of a mapping from vertex names back to vertex IDs. In the simplest case, 
you can use an appropriate attribute handler macro in the C interface to get a 
vector that contains all the vertex names (ordered by the vertex IDs), and then 
you can run a linear search on the vector to find the name you are looking for; 
see this macro for instance:

http://igraph.sourceforge.net/doc/html/ch12s02.html#VASV

However, if you want to do this frequently and efficiently, you have to build a 
hash table or something like that which lets you obtain the ID of a vertex from 
its name faster than in linear time. Since C has no built-in hash table data 
structure, you have to build that yourself. In the R and Python interfaces, the 
mapping from vertex names to IDs is handled transparently behind the scenes, 
that's why you can supply vertex names instead of IDs to most functions.

-- 
T.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]