MultiXrank is a Python package for the exploration of heterogeneous multilayer networks, with random walk with restart method. It permits prioritization of nodes between full heterogeneous networks, whatever their complexities. If you use MultiXrank in scientific works, please cite the following article:
Baptista, A., González, A., Baudot, A. Universal multilayer network exploration by random walk with restart. Commun Phys 5, 170 (2022)
https://doi.org/10.1038/s42005-022-00937-9
The scripts used in the paper and adaptable for your own applications of MultiXrank are available there: https://github.com/anthbapt/multixrank-tools
Commands for a quick installation:
conda create --name multixrank python=3.10 -y
python3 -m pip install multixrank
Commands for a quick working example in the python console:
import multixrank
multixrank.Example().write(path="airport")
This generates a working example based on the "airport" multiplex:
`-- airport
|-- bipartite
| |-- 1_2.tsv
| |-- 1_3.tsv
| `-- 2_3.tsv
|-- config_minimal.yml
|-- multiplex
| |-- 1
| | |-- FR26.tsv
| | |-- FR3.tsv
| | |-- FR3_2.tsv
| | `-- FR7.tsv
| |-- 2
| | |-- UK15.tsv
| | |-- UK26.tsv
| | `-- UK3.tsv
| `-- 3
| |-- G1.tsv
| |-- G24.tsv
| `-- G6.tsv
`-- seeds.txt
The minimal configuration file 'config.yml' looks like this.
multiplex:
1:
layers:
- multiplex/1/FR26.tsv
- multiplex/1/FR3.tsv
- multiplex/1/FR7.tsv
2:
layers:
- multiplex/2/UK15.tsv
- multiplex/2/UK26.tsv
- multiplex/2/UK3.tsv
3:
layers:
- multiplex/3/G1.tsv
- multiplex/3/G24.tsv
- multiplex/3/G6.tsv
bipartite:
bipartite/1_2.tsv:
source: 1
target: 2
bipartite/1_3.tsv:
source: 1
target: 3
bipartite/2_3.tsv:
source: 2
target: 3
seed:
seeds.txt
import multixrank
multixrank_obj = multixrank.Multixrank(config="airport/config_minimal.yml", wdir="airport")
ranking_df = multixrank_obj.random_walk_rank()
multixrank_obj.write_ranking(ranking_df, path="output_airport")
multixrank_obj.to_sif(ranking_df, path="output_airport/airport_seed7_top3.sif", top=3)
This runs the software and writes the results to the output_airport folder:
$ ls output_airport/
airport_seed7_top3.sif multiplex_1.tsv multiplex_2.tsv multiplex_3.tsv
There is a ranking file for each multiplex:
$ head -n 4 output_airport/multiplex_1.tsv
multiplex node score
1 7 0.250002565842259
1 169 0.0025983048938841304
1 199 0.0018837852068513332
The MultiXrank documentation is hosted at ReadTheDocs.
MultiXrank is maintained by Anthony Baptista (anthony dot baptista at qmul dot ac dot uk)