- Notifications
You must be signed in to change notification settings - Fork33
OhmNet: Representation learning in multi-layer graphs
License
mims-harvard/ohmnet
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
TheOhmNet algorithm learns feature representationsfor nodes in any (un)directed, (un)weighted multi-layer network. Pleasecheck theproject page for more details.
To runOhmNet onhuman brain multi-layer network with nine layers,run the following command from the project home directory:
python2.7 main.py --input "data/brain.list" --outdir "tmp" --hierarchy "data/brain.hierarchy"
To checkOhmNet's running options, use:
python2.7 main.py --help
Results are saved to output directory specified by theout_dir
option.
The output fileleaf_vectors.emb
contains feature representationsfor nodes at the level of leaves in the hierarchy (i.e., leaves in thehierarchy correspond exactly to network layers).
The first line has the following format:
total_num_of_nodes_in_layers dim_of_representation
The nexttotal_num_of_nodes_in_layers
lines are as follows:
node_id dim1 dim2 ... dimd
where node_id is formatted as network_layer_name__node_id, and dim1, ... , dimd isthed-dimensional representation learned byOhmNet.
The output fileinternal_vectors.emb
contains feature representationsfor nodes at higher levels in the hierarchy (i.e., internal levels in thehierarchy contain feature representations at intermediate/higher scales).
The first line has the following format:
total_num_of_nodes_in_hierarchy dim_of_representation
wheretotal_num_of_nodes_in_hierarchy
is equal to (size_hierarchy -num_layers) * total_num_nodes.
The nexttotal_num_of_nodes_in_hierarchy
lines are as follows:
node_id dim1 dim2 ... dimd
where node_id is formatted as hierarchy_element_name__node_id, and dim1, ... , dimd isthed-dimensional representation learned byOhmNet.
If you findOhmNet useful for your research, please consider citingthe followingpaper presented at ISMB/ECCB 2017:
@article{Zitnik2017, title = {Predicting multicellular function through multi-layer tissue networks}, author = {Zitnik, Marinka and Leskovec, Jure}, journal = {Bioinformatics}, volume = {33}, number = {14}, pages = {190-198}, year = {2017}, publisher = {Oxford Journals}}
Please send any questions you might have about the code and/or thealgorithm tomarinka@cs.stanford.edu.
Note: This is a full Python implementation ofOhmNetalgorithm. A C++ implementation will be released as part of SNAP software.
OhmNet is tested to work under Python 2.7.
The required dependencies for OhmNet areNumPy >= 1.12, andNetworkX >= 1.11.
OhmNet is licensed under the MIT License.