You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thank you for your work, this package has been very useful and I enjoy learning from your source code.
I was preparing a dataset using the RAGGraphBuilder and noticed that all my tissue graphs had edges that connected all the "background" or 0 instance map valued nodes in the graph.
Original RAG graph:
I noticed in the adjacency graph that the nth row and column correspond to the 0 instance map node, and that you can remove these edges by modifying the _build_topology method to: for instance_id in np.arange(1, len(instance_ids) + 1): mask = (instance_map == instance_id).astype(np.uint8) dilation = cv2.dilate(mask, kernel, iterations=1) boundary = dilation - mask idx = pd.unique(instance_map[boundary.astype(bool)]) instance_id -= 1 # because instance_map id starts from 1 idx -= 1 # because instance_map id starts from 1 idx = idx[idx >= 0] # remove background idx and prevents "end" node -1 from making edges adjacency[instance_id, idx] = 1
Modified RAG graph:
I am new to learning about GNNs and am not familiar with the pros or cons of having the graph connected this way originally or disconnected. I would think that having a connected graph with the "background" nodes connected by edges would allow the GNN to perform message passing through those edges, so the original method may be desirable.
More importantly, I was wondering if these edges between the 0 instance map nodes was the expected behavior for the method.
Thank you again!
Jack
The text was updated successfully, but these errors were encountered:
Hello,
Thank you for your work, this package has been very useful and I enjoy learning from your source code.
I was preparing a dataset using the RAGGraphBuilder and noticed that all my tissue graphs had edges that connected all the "background" or 0 instance map valued nodes in the graph.
Original RAG graph:
I noticed in the adjacency graph that the nth row and column correspond to the 0 instance map node, and that you can remove these edges by modifying the _build_topology method to:
for instance_id in np.arange(1, len(instance_ids) + 1):
mask = (instance_map == instance_id).astype(np.uint8)
dilation = cv2.dilate(mask, kernel, iterations=1)
boundary = dilation - mask
idx = pd.unique(instance_map[boundary.astype(bool)])
instance_id -= 1 # because instance_map id starts from 1
idx -= 1 # because instance_map id starts from 1
idx = idx[idx >= 0] # remove background idx and prevents "end" node -1 from making edges
adjacency[instance_id, idx] = 1
Modified RAG graph:
I am new to learning about GNNs and am not familiar with the pros or cons of having the graph connected this way originally or disconnected. I would think that having a connected graph with the "background" nodes connected by edges would allow the GNN to perform message passing through those edges, so the original method may be desirable.
More importantly, I was wondering if these edges between the 0 instance map nodes was the expected behavior for the method.
Thank you again!
Jack
The text was updated successfully, but these errors were encountered: