Sure thing! This is the sample graph I've created, using the code at the end of this message: Here are a couple of observations: 1. get_in_neighbours() worked fine prior to purging the edges. 2. But once the edges are purged, the problem arises. Vertex 2, 3 and 4 should all have in neighbor 5, but g.get_in_neighbour(v) returns their own vertex index. 3. get_in_edges() is working as intended. Thanks a lot! from graph_tool import * # step 1: create a sample graph g = Graph() g.add_vertex(5) eprop_share = g.new_edge_property("double") eprop_majorShare = g.new_edge_property("boolean") i=0.05 for v in g.vertices(): e = g.add_edge(5,v) eprop_share[e]=i i=i+0.. # step 2: purge all edges with <0.2 share for e in g.edges(): if eprop_share[e] >= 0.2: eprop_majorShare[e] = True else: eprop_majorShare[e] = False g.set_edge_filter(eprop_majorShare) g.purge_edges() # step 3: understand why get_in_neighbours and get_in_edges give difference in neighbors for v in g.vertices(): print('') print("vertex id:") print(v) print('all out neighbors') print(g.get_out_neighbours(v)) print('all in neighbors') print(g.get_in_neighbours(v)) print('all in edges') print(g.get_in_edges(v)) raw_input() On Mon, Aug 21, 2017 at 6:21 AM, Tiago de Paula Peixoto <tiago@skewed.de> wrote:
On 18.08.2017 19:56, yu.zheng.columbia@gmail.com wrote:
I have a directed graph: <Graph object, directed, with 61560 vertices and 42858 edges, edges filtered by (<PropertyMap object with key type 'Edge' and value type 'bool', for Graph 0x11a5e9190, at 0x11a5e96d0>, False), vertices filtered by (<PropertyMap object with key type 'Vertex' and value type 'bool', for Graph 0x11a5e9190, at 0x11a5e9710>, False) at 0x11a5e9190>
I would like to get all in neighbors of a vertex, using the following codes: for v in g.vertices(): print('') print("vertex id:") print(v) print('all out neighbors') print(g.get_out_neighbours(v)) print('all in neighbors') print(g.get_in_neighbours(v)) print('all in edges') print(g.get_in_edges(v)) raw_input()
Here's the console output: vertex id: 0 all out neighbors [18099] all in neighbors [0] all in edges [[1 0 1]]
Output from get_in_edges() suggests that the in neighbor should be vertex 1; but get_int_neighbours() suggests that the in neighbors is itself. I am not sure what's going wrong. Any help would be appreciated. Thanks a lot!
Could you please provide a complete and minimal example that shows the problem? (I.e. both the data *and* the code)
Best, Tiago
-- Tiago de Paula Peixoto <tiago@skewed.de>
_______________________________________________ graph-tool mailing list graph-tool@skewed.de https://lists.skewed.de/mailman/listinfo/graph-tool