[![Snakemake](https://img.shields.io/badge/snakemake-≥7.30.1-brightgreen.svg)](https://snakemake.bitbucket.io)
[![Documentation Status](https://readthedocs.org/projects/benchpressdocs/badge/?version=latest)](https://benchpressdocs.readthedocs.io/en/latest/?badge=latest)
[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
---
Benchpress [[1]](#1) is a [Snakemake](https://snakemake.readthedocs.io/en/stable/) workflow where structure learning (sometimes called causal discovery) algorithms, implemented in possibly different languages, can be executed and compared.
The computations scale seamlessly on multiple cores or *"... to server, cluster, grid and cloud environments, without the need to modify the workflow definition" - Snakemake*.
The documentation is found at https://benchpressdocs.readthedocs.io.
The following main functionalities are provided by Benchpress
* Benchmarks - Benchmark structure learning algorithms.
* Algorithm development - Benchmark your own algorithm along with the existing ones while developing.
* Data analysis - Estimate the underlying graph structure for your own dataset(s).
You may also have a look at [this Medium story](https://medium.com/@felixleopoldorios/structure-learning-using-benchpress-826847db0aa8) for an introduction.
## Citing
```
@misc{rios2021benchpress,
title={Benchpress: a scalable and versatile workflow for benchmarking structure learning algorithms for graphical models},
author={Felix L. Rios and Giusi Moffa and Jack Kuipers},
year={2021},
eprint={2107.03863},
archivePrefix={arXiv},
primaryClass={stat.ML}
}
```
## Contact
For problems, bug reporting, or questions please raise an issue or open a discussion thread.
## Contributing
Contributions are very welcomed. See [CONTRIBUTING.md](CONTRIBUTING.md) for instructions.
1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Open a pull request
## License
This project is licensed under the GPL-2.0 License - see the [LICENSE](LICENSE) file for details