This is the data and code necessary to reproduce the results from the paper "Mutlilayer Network Backboning".

The code requires the following Python libraries: numpy, scipy, pandas, networkx.

The data from Wikipedia is included for ease of reproducibility. The data can be regenerated from scratch by using the pipline at https://github.com/wikinetbuild00/wikinetbuild. Note that the node and edge table included here is different from what you would get by running the pipeline. Here we have already filtered out the zero weighted edges, and dropped all nodes that do not have at least one edges in the network after this filter.

Each python script allows to reproduce a different part of the paper:

- 01_sec_4.py can generate all plots from Section 4 (synthetic experiments). By saving to disk the network produced by the function "generate_multilayer_sbm", one can reproduce Figure 2. The script requires two command line parameters, so it should be called as "python 01_sec_4.py par1 par2". par2 is simply the number of times each synthetic run should be repeated. par1 regulates which test is going to be run:
   - "noise" reproduces Figure 3a;
   - "corr" reproduces Figure 3b;
   - "commstrength" reproduces Figure 3c;
   - "density" reproduces Figure 3d;
   - "time_nodes" reproduces Figure 5a;
   - "time_density" reproduces Figure 5b;
   - "time_layer" reproduces Figure 5c;
   - "mutual_corrs" reproduces Figure 4.
- 02_sec_5.py can generate all plots from Section 5 (Wikipedia study). The script requires two command line parameters, so it should be called as "python 01_sec_4.py par1 par2". par2 regulates whether we are going to look at multilayer backbones if set to "multi", or single layer ones if set to "single". par1 regulates which node attributes we are going to be focused on when calculating the survival rates in the backbone:
   - "period" reproduces Figure 7;
   - "gender" reproduces Figure 8;
   - "origin" reproduces Figure 9.
