/HERMES

HERMES: A software package for simultaneous topological data analysis (persistent Betti numbers) and geometric data analysis (persistent eigenvalues).

Primary LanguageC++MIT LicenseMIT

HERMES

HERMES is a software package for simultaneous topological data analysis (persistent Betti numbers) and geometric data analysis (persistent eigenvalues). It is realized through persistent spectral graph theory. In the present release, we consider an implementation in the alpha complex and Vietoris–Rips complex.

Requirements

  • cmake 3.1 or higher
  • gcc 7.5.0
  • GNU Make 4.1
  • MATLAB
  • CGAL version 4.14

Install and Build

You can intall HERMES directly from the development repository:

git clone https://github.com/wangru25/HERMES.git

How to build the project:

mkdir build
cd build
cmake ..
make

Notice:

Please make sure the MATLAB directory in the CMakeLists.txt (Line 15 and Line 20) matches with yours.

Examples

There are several examples of projects in the examples.

How to run

./Snapshot InputData Filtration Num P Complex
  • InputData: The point cloud data is allowed
  • Filtration: The filtration parameters. Note: For alpha complex, the input filtration Filtration_alpha is actually radius^2. For Vietoris–Rips complex, the input filtration Filtration_rips is 2*radius, which match with the other open-source packages such as Ripser, Gudhi, and Diode.
  • Num: The number of eigenvalues that will be calculated
  • P: The persistent value, which describes the increase of radius.
  • Complex: Two choices: 1) Alpha complex 2) Vietoris–Rips complex

For example:

Alpha Complex

cd examples
./../build/Snapshot Test_C60.xyz filtration.txt 100 0.4 

Vietoris–Rips Complex

cd examples
./../build/Snapshot Test_C60.xyz filtration.txt 100 0.4 r
  • The spectra of the 0th-order 0.4-persistent Laplacian will be saved in examples/snapshots_vertex.txt. Each line presents harmonic or non-harmonic eigenvalues at a specific filtration value.
  • The spectra of the 1th-order 0.4-persistent will be saved in examples/snapshots_edge.txt. Each line presents harmonic or non-harmonic eigenvalues at a specific filtration value.
  • The spectra of the 2th-order 0.4-persistent will be saved in examples/snapshots_facet.txt. Each line presents harmonic or non-harmonic eigenvalues at a specific filtration value.

Documentation

Documentation for HERMES can be found here.

Citing

You may use the following bibtex entry to cite HERMES:

@article{wang2021hermes,
  title={HERMES: Persistent spectral graph software},
  author={Wang, Rui and Zhao, Rundong and Ribando-Gros, Emily and Chen, Jiahui and Tong, Yiying and Wei, Guo-Wei},
  journal={Foundations of data science (Springfield, Mo.)},
  volume={3},
  number={1},
  pages={67},
  year={2021},
  publisher={NIH Public Access}
}

References

Contributors

HERMES was developed by Rundong Zhao and is maintained by Yiying Tong, Emily Ribando-Gros, Jiahui Chen, Rui Wang, and Weilab at MSU Math.