{"id":45181205,"url":"https://github.com/Pseudomanifold/Aleph","last_synced_at":"2026-03-05T08:01:22.780Z","repository":{"id":92125892,"uuid":"75167983","full_name":"Pseudomanifold/Aleph","owner":"Pseudomanifold","description":"A library for exploring persistent homology","archived":false,"fork":false,"pushed_at":"2023-01-20T19:55:28.000Z","size":1784,"stargazers_count":100,"open_issues_count":4,"forks_count":16,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-10T18:17:40.947Z","etag":null,"topics":["c-plus-plus-11","machine-learning","persistence","persistent-homology","topological-data-analysis"],"latest_commit_sha":null,"homepage":"https://pseudomanifold.github.io/Aleph/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pseudomanifold.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-11-30T08:42:10.000Z","updated_at":"2025-02-11T11:10:01.000Z","dependencies_parsed_at":"2023-03-10T19:45:56.274Z","dependency_job_id":null,"html_url":"https://github.com/Pseudomanifold/Aleph","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Pseudomanifold/Aleph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pseudomanifold%2FAleph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pseudomanifold%2FAleph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pseudomanifold%2FAleph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pseudomanifold%2FAleph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pseudomanifold","download_url":"https://codeload.github.com/Pseudomanifold/Aleph/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pseudomanifold%2FAleph/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30115662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T03:40:26.266Z","status":"ssl_error","status_checked_at":"2026-03-05T03:39:15.902Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus-11","machine-learning","persistence","persistent-homology","topological-data-analysis"],"created_at":"2026-02-20T10:00:30.840Z","updated_at":"2026-03-05T08:01:22.764Z","avatar_url":"https://github.com/Pseudomanifold.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/Pseudomanifold/Aleph.svg?branch=master)](https://travis-ci.org/Pseudomanifold/Aleph) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/972/badge)](https://bestpractices.coreinfrastructure.org/projects/972)\n\n![Aleph logo](Aleph.png \"The logo of Aleph in all its glory\")\n\n# Aleph \u0026mdash; A Library for Exploring Persistent Homology\n\nAleph is a C++ library for exploring and extending usages of [persistent\nhomology](https://en.wikipedia.org/wiki/Persistent_homology). Its main\ngoal is to provide users with a versatile, simple-to-use implementation\nthat quickly permits building prototype applications.\n\nAleph is inspired by [`DIPHA`](https://github.com/DIPHA/dipha) and\n[`PHAT`](https://bitbucket.org/phat-code/phat). In particular, Aleph\nborrowed the idea of keeping the *representation* of a boundary matrix\nseparate from the implementation.\n\nFor more information, please read the [original paper describing\n`PHAT`](https://people.mpi-inf.mpg.de/~mkerber/bkrw-pphat.pdf).\n\nSince its inception in late 2016, Aleph has been used to support the\nfollowing papers:\n\n- [Clique Community Persistence: A Topological Visual Analysis Approach for Complex Networks](https://pseudomanifold.github.io/Aleph/Rieck17d.html)\n- [Persistence Concepts for 2D Skeleton Evolution Analysis](https://pseudomanifold.github.io/Aleph/Rieck17b.html)\n- [Hierarchies and Ranks for Persistence Pairs](https://pseudomanifold.github.io/Aleph/Rieck17a.html)\n- [*Shall I compare thee to a network?*\u0026mdash;Visualizing the Topological\n  Structure of Shakespeare\u0026rsquo;s plays](https://pseudomanifold.github.io/Aleph/Rieck16b.html)\n\nPlease refer to [the list of\npublications](https://pseudomanifold.github.io/Aleph/publications) in the\ndocumentation of Aleph for more details. The documentation covers how to\nreproduce a subset of the results reported in the papers above.\n\nIf you want to contribute, please see the [contribution\nguidelines](CONTRIBUTING.md) for more details.\n\n# Features\n\nAleph contains numerous algorithms and helper classes that simplify\nworking with persistent homology. Here is a brief selection of the most\nimportant ones:\n\n* Easy-to-use and expressive simplex and simplicial complex class\n* Support for different input formats to read simplicial complexes from\n  a variety of input files\n    - 1D functions\n    - Edge lists\n    - GraphML\n    - GML\n    - HDF5\n    - Lexicographic triangulations\n    - Matrices\n    - NET (Pajek graphs)\n    - PLY\n    - VTK\n* Standard algorithm and *twisted* reduction algorithm for calculating\n  persistent homology\n* Support for *dualized* variants of both algorithms\n* Support for different boundary matrix representations\n* Persistence diagram class\n* Distance and kernel measures\n    - Bottleneck distance\n    - Multi-scale smoothing kernel\n    - Wasserstein distance\n* Algorithms for computing [*intersection homology*](http://www.math.ias.edu/~goresky/pdf/IH.pdf) and [*persistent intersection homology*](https://doi.org/10.1007/s10208-010-9081-1)\n* Basic support for *Čech complexes*\n* Support for *Dowker complexes*\n\n# Documentation\n\n[Documentation](https://pseudomanifold.github.io/Aleph) of the main\nfeatures, including some tutorials, is available on GitHub. If you want\nto delve into the code, the `examples` subdirectory is a good starting\npoint.\n\n# License\n\nAleph uses the MIT license. Please see the file [`LICENSE.md`](LICENSE.md)\nin the main directory of the repository for more details.\n\n# Requirements\n\n* A recent C++ compiler with support for C++11\n* `CMake`, preferably a recent version \u003e= 3.2\n* Several `Boost` dependencies for some of the data structures:\n  * `Boost.Functional`\n  * `Boost.Iterator`\n  * `Boost.MultiIndex`\n\n# Optional dependencies\n\n* [`Eigen3`](http://eigen.tuxfamily.org) for some auxiliary mathematical\n  functions\n* [`FLANN`](https://github.com/mariusmuja/flann) for fast nearest-neighbour queries\n* [`HDF5`](https://www.hdfgroup.org) for parsing `HDF5` input files\n* [`pybind11`](https://github.com/pybind/pybind11) for building the\n  Python bindings\n* [`RapidJSON`](http://rapidjson.org) for parsing JSON input files\n* [`TinyXML2`](https://github.com/leethomason/tinyxml2) for parsing\n  GraphML input files\n\n# Building Aleph\n\nAleph is meant to be used as a header-only library on top of which you\ncan develop your own projects based on persistent homology. However,\nAleph ships with numerous unit tests, some example programs, and tools\nrequired for my current research. For building them, please clone the\nrepository to some local directory on your computer. Running the\nfollowing commands within this directory should be sufficient in most\ncases:\n\n    $ mkdir build\n    $ cd build\n    $ cmake ../\n    $ make\n\nIt is advisable to test that Aleph works correctly on your system, so\nyou can run the unit tests with:\n\n    $ make test\n\nPlease submit any issues you may encounter.\n\nFor more information, including how to run tests, please refer to the\n[detailed build\ninstructions](https://pseudomanifold.github.io/Aleph/building) in the\ndocumentation.\n\n# Installing Aleph\n\nIf you want to install Aleph from source, simply issue\n\n    $ make install\n\nfrom the compilation directory. In general, this will require `root`\nprivileges, unless you change the `CMAKE_INSTALL_PREFIX` variable to\na *local directory*.\n\nIt is easier to install Aleph as a package. Currently, only packages\nfor Arch Linux are available. Use your favourite AUR helper tool for\ninstalling Aleph:\n\n    $ pacaur -S aleph-git # pacaur (deprecated)\n    $ trizen -S aleph-git # trizen\n    $ yaourt -S aleph-git # yaourt\n\nIf you want to volunteer and submit a package for your favourite Linux\ndistribution, please take a look at [issue #27](https://github.com/Pseudomanifold/Aleph/issues/27)\nand add your comments.\n\n# Installing the Python bindings\n\nIf your build instructions are configured to build the Python bindings,\ni.e. `BUILD_PYTHON_BINDINGS` follow these instructions to install them:\n\n    $ cd build/bindings/python/aleph\n    $ python3 setup.py install\n\nNote that this uses the old `setuptools` approach for installing the\npackage. A simpler installation based on `pip` is forthcoming.\n\n# Contact \u0026 contributors\n\nFor general discussion, questions, and comments, please contact the\nprincipal developer and maintainer Bastian Rieck (bastian.rieck@bsse.ethz.ch).\n\nThe following people have contributed code to Aleph:\n\n* [ExpectationMax](https://github.com/ExpectationMax) (Max Horn): fixes and\n  improvements to the Python bindings\n* [Filco306](https://github.com/Filco306) (Filip Cornell): `pybind11`\n  documentation, Docker tutorial\n* [macjohnny](https://github.com/macjohnny) (Esteban Gehring): documentation\n  updates\n* [Pseudomanifold](https://github.com/Pseudomanifold) (Bastian Rieck): principal developer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPseudomanifold%2FAleph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPseudomanifold%2FAleph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPseudomanifold%2FAleph/lists"}