Skip to main content

maffe

maffe is an exact and heuristic solver for maximum agreement forest for two or more rooted bifurcating phylogenetic trees. It won the first place in all three tracks (Exact, Heuristic, Lower Bound) of the PACE challenge 2026.

Acknowledgements The implementation was assisted by OpenAI’s Codex with GPT 5.4 and GPT 5.5. We extensively tested the solver with fuzzing and STRIDE instances and take responsibility for its correctness.

Dependencies

  • C++23 compiler
  • Meson >= 1.3
  • Ninja
  • CMake
  • Git
  • pkg-config
  • patch

The solver depends on SCIP Optimization Suite 10.0.2 and HiGHS 1.15.1. The competition build also uses ConicBundle for the heuristic binary. The Meson build script will automatically download and build all required solver dependencies. We optionally support Gurobi as (I)LP backend and expose Python bindings.

Build

On Debian/Ubuntu:

sudo apt-get update
sudo apt-get install -y build-essential meson ninja-build cmake git pkg-config patch

Configure and build:

meson setup build --buildtype=release
meson compile -C build

Run the solver with

./build/maffe < instance.trees

where instances.trees contains a list of bifurcating phylogenetic trees.

Competition Build

To build the competition binaries, which were submitted to optil.io and to the PACE Challenge 2026, use the Docker-based build script:

./scripts/build_competition.sh

This writes static binaries maffe-exact, maffe-heuristic, and maffe-lowerbound to dist-competition/. However, for non-competition use, we recommend the default build.

Metadata

Release files for maffe 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for maffe 0.1.1
File
maffe-0.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
maffe-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
maffe-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
maffe-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details

Total release size: 31.2 MB

Release files / maffe-0.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL maffe-0.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 7.8 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bc54554de791b361cbf78b041d4ca75da4ee7957c6370f230392afb1b563f102
BLAKE2b-256 checksum
How to use checksums
e8e651a63539659f6296cd5f9b1a4ffd2fc5013a06bf2b73af6b47106030a1f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / maffe-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL maffe-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 7.8 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8c572b44e45cc07d6199ad6bd46f5f2578b5ec5f2dea1cd11918722f1ce88971
BLAKE2b-256 checksum
How to use checksums
17b41dffd033dace0c8aabbad76358883bb3d705eeaa8e00c35b83a507a5a028
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / maffe-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL maffe-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 7.8 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c0d237beb6697fd13d002a772adfcc21c7bcefe1bdc5f78aa7602c991574a9d8
BLAKE2b-256 checksum
How to use checksums
b62b237ad9c0c34b894e5c7bdc331da47c4dfac931f9dcdee4ab085d6c56300c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / maffe-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL maffe-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 7.8 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
71ed28fe473a6d4a4b07e07dd107cdc68b5d30bb297317da1feff88f0210b3a1
BLAKE2b-256 checksum
How to use checksums
4cc2029dfb459ca89e3345fd6abfc4aef7bd948ab4e959a47b69ef0abbe32ac9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Security for maffe 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 4 files in this release have been uploaded with provenance metadata.

Select from 4 files

Attestation for maffe-0.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

4 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page