GoT-WAVE


CRACS | DCC | FCUP


Download


    All necessary files to run GoT-WAVE, as well as examples (both real and synthetic), can be downloaded here. The code was tested on Ubuntu 14.
    You have to install DynaWAVE in julia.

1) Extracting GoTs

    To extract the GoTs of a single network (e.g., a Erdos-Renyi random network), run:
    GoT/gtrieScanner -s 4 -m gtrie GoT/gtries/mygtrie -g generator/Erdos/n1
    Each line of output contains the GoTs of a single node.

    Example 4-node GoTs of node 1:
    (e.g., na_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32722 0 0 0 0 170 0 0 1 0 0 0 0 0 0 86958 0 0 0 0 549 180 2 0 0 0 0 0 0 0 183281 0 434 514 350 0 1 0 0 0 0 0 0 0 0 143542 385 0 441 303 0 1 0 0 0 0 0 0 0 0 4727 0 0 0 16 9 0 0 0 0 0 0 0 0 0 5)

2) Running GoT-WAVE

    To align two temporal networks using GoT-WAVE with pre-computed GoTs (e.g., the GoTs of two Random networks), run:
    julia DynaWAVE/dynawave_pca.jl 0.0 generator/Erdos/dyn1.ny generator/Erdos/dyn2.ny GoT/output/4_Erdos_1 GoT/output/4_Erdos_2 GoT/alignments/4_Erdos1_Erdos2


3) Reproduce results on synthetic data

    To compare GoT-WAVE against DynaWAVE on the same set of synthetic networks used on the paper, run:
    sh getResultsOnSynthetic.sh

    This will (a) extract DGDVs and GoTs, (b) align the networks and (c) compute Precision-Recall and ROC curves. At the end, the code outputs the AUROC and AUPR of DynaWAVE and GoT-WAVE, respectively.

4) Reproduce results on real data

    To compare GoT-WAVE against DynaWAVE on real networks (e.g., align the zebra network to randomized versions), first run to compute the alignments:
    sh getResultsOnReal.sh zebra 0.0

    Then, to obtain the node correctness and objective score results, run:
    sh GetEval.sh zebra 0.0