NetworkAnalysis provides a python-based graph handling framework with a focus biomedical graphs capable of handling undirected heterogeneous graphs:
-
Graph initialization and handling: removing disconnected components, adding custom node-to-integer mappings, removing self-loops and duplicate interactions, custom node types, obtain N-order neighbours, find communities using Louvain algorithm, clustering, and much more.
-
Edge Samplinge: NetworkAnalysis offer a high level of granularity when it comes to edge sampling for Link Prediction. The user can choose between balanced, unbalanced or graph distance-based sampling strategies. Additionally, specific sets of interactions that are to be included or excluded in the train/test sets can be added.
-
Network Representaiton Learning (NRL) evaluation: Basic NRL methods are avaiable through OpenNE and include but are not limited to DeepWalk, Node2Vec and LINE. After the representations are learned these can be plotted, clustered or written to csv files.
Other functionalities such as handling of directed graphs will be added in future updates.
NetworkAnalysis functionalities have been tested through the appropriate pytests.
NetworkAnalysis is tested on Python 3.10
Option 1: Cloning this repository
git clone [email protected]:pstrybol/NetworkAnalysis.git
python setup.py install
Option 2: Through pip install -> TBA
The examples/
folder contains various jupter notebooks to assist in the usage of NetworkAnalysis functionalities. For now, NetworkAnalysis is offered solely as an API yet Command Line Interface (CLI) will be added in a future update.
Any suggestions or contributions to improving NetworkAnalysis are greatly appreciated. Feel free open issues tagged with the appropriate label ("feature request", "bug", etc.). Alternatively you can email me directly with feedback/suggestions at: [email protected]