Configuration Overview
Hedgehog uses a hierarchical YAML configuration system. The main config file (config.yml) controls global settings and references separate per-stage config files. Each pipeline stage reads its own configuration independently, making it easy to tune individual stages without touching the rest.
Config File Hierarchy
config.yml # Global settings
├── config_mol_prep.yml # Molecule preprocessing
├── config_descriptors.yml # Physicochemical descriptor calculation
├── config_structFilters.yml # Structural filters
├── config_synthesis.yml # Synthesis evaluation
├── config_docking.yml # Molecular docking with SMINA, GNINA, and Matcha
├── config_docking_filters.yml # Post-docking pose filters
└── config_moleval.yml # Generative metrics and reportingHow Configs Are Loaded
The CLI resolves the default config path relative to the installed package:
DEFAULT_CONFIG_PATH = str(Path(__file__).resolve().parent / "configs" / "config.yml")You can override the master config path at runtime with --config/-c:
uv run hedgehog --config path/to/config.ymlFilesystem paths in the master config are resolved in this order:
- absolute paths are used as-is
- relative to the master config file location
- relative to the source root for bundled
src/hedgehog/...paths - relative to the current working directory as a final fallback
For example:
# Absolute — used as-is
config_descriptors: /opt/hedgehog/configs/config_descriptors.yml
# Relative to the master config file when that file lives beside configs/
config_descriptors: config_descriptors.yml
# Bundled source-checkout path
config_descriptors: src/hedgehog/configs/config_descriptors.yml
Overriding Parameters
There are three common ways to customise the pipeline:
-
Create your own config files and pass them via
--config. Copy the default configs, edit them, then run:uv run hedgehog --config path/to/my_config.yml -
Override common paths via CLI flags. Use:
--mols/-mto overridegenerated_mols_path--out/-oto overridefolder_to_save
-
For quick experiments in a source checkout, edit copied config files. If installed via
PyPido not edit configs inside an installed package insite-packages; copy them into your project directory and pass the copied master config with--config.
uv run hedgehog --config my_config.ymlConfig Files
| File | Purpose |
|---|---|
config.yml | Global paths, parallelism, sample size, and references to all stage configs |
config_mol_prep.yml | Datamol-based molecule preprocessing and standardization |
config_descriptors.yml | Descriptor borders, filtering flags, plotting options |
config_structFilters.yml | Structural alerts, medchem filters, rulesets, SMARTS patterns inclusion/exclusion control |
config_synthesis.yml | Retrosynthesis toggle, enabled synthesis scorers, score thresholds |
config_docking.yml | Docking tool selection, receptor, autobox settings |
config_docking_filters.yml | Post-docking filters |
config_moleval.yml | Generative evaluation metrics |