Installation ============ Conda environment ----------------- Install `Rust `_ first — the build is driven by `maturin `_, which compiles the Rust geometry kernel (``phenoms.phenoms_hbond_rs``) into the same wheel as the Python package. .. code-block:: bash conda env create -f environment.yml conda activate phenoms pip install -e . The editable install builds the Rust extension and registers the ``phenoms`` CLI entry point in one step. Detection uses the Rust geometry kernel when it's built; **Polars** speeds occupancy aggregation only (not the Baker–Hubbard kernel itself). Without a Rust toolchain at install time, PHENOMS falls back to MDTraj for detection. For local iteration on the Rust source, ``maturin develop --release`` from the repo root rebuilds just the extension without reinstalling dependencies. Using uv -------- .. code-block:: bash uv venv source .venv/bin/activate uv pip install -e . Optional extras --------------- .. code-block:: bash pip install -e ".[gromacs]" # MDAnalysis to read GROMACS .tpr topologies pip install -e ".[benchmark]" # MDAnalysis for kernel benchmarks BioPython (PDB B-factor writes via :func:`phenoms.write_pdb_bfactors`) is a core dependency and needs no extra. Verify ------ .. code-block:: bash python -c "import phenoms; print(phenoms.__version__)" phenoms --help