Domanda diretta: Vorrei recuperare tutti i nodi connessi a un determinato nodo all'interno di un grafico NetworkX per creare un sottografo. Nell'esempio mostrato di seguito, voglio solo estrarre tutti i nodi all'interno del cerchio, dato il nome di uno qualsiasi di loro.Recupera i nodi connessi in un grafico NetworkX
Ho provato la seguente funzione ricorsiva, ma ha colpito limite di ricorsione di Python, anche se ci sono solo 91 nodi di questa rete.
Indipendentemente dal fatto che il codice riportato di seguito sia difettoso, qual è il modo migliore per fare ciò che sto cercando di ottenere? Farò funzionare questo codice su grafici di varie dimensioni e non saprò in anticipo quale sarà la profondità massima di ricorsione.
def fetch_connected_nodes(node, neighbors_list):
for neighbor in assembly.neighbors(node):
print(neighbor)
if len(assembly.neighbors(neighbor)) == 1:
neighbors_list.append(neighbor)
return neighbors_list
else:
neighbors_list.append(neighbor)
fetch_connected_nodes(neighbor, neighbors_list)
neighbors = []
starting_node = 'NODE_1_length_6578_cov_450.665_ID_16281'
connected_nodes = fetch_connected_nodes(starting_node, neighbors)
È un grafico diretto? o uno non diretto? –
@AbdallahSobehy Undirected, anche se è discutibile se i dati con cui ho a che fare siano diretti o meno. –