Table 2.
Executor | NetworkX | GrandIso | Neo4j | NeuPrint |
---|---|---|---|---|
Pure-Python? | Yes | Yes | No | No |
Larger-than-RAM graphs? | No | Yes | Yes | Yes |
Simultaneous searches? | No | No | Yes | Yes |
Export Cypher queries? | No | No | Yes | Yes |
All executors are capable of running any of the queries in this paper. Pure Python executors are desirable due to their low configuration and installation overhead, though they tend to be slower than graph databases. Searches in larger-than-RAM graphs are partially supported in the GrandIso executor with the use of the Grand library discussed in “Optimized interfaces for common graph libraries”. Graph databases support this by default. Both neuPrint and Neo4j run as a separate service, and both accept simultaneous client connections, whereas the Python executors cannot. The user can use these executors interchangeably, and may find that graph-database executors work better for specific types of motif searches.