[Top][All Lists]

[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:


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.


reply via email to

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