- Create a virtual environment and install
python -m pip install -e '.[dev]'. - Add a focused test for every conversion or residue template change.
- Run
ruff check .andpytestbefore opening a pull request. - Document structural conventions, charge state, stereochemistry, and a primary reference for each new modification.
- Do not map a mass shift or ambiguous name to a structure without an explicit resolution rule.
Use a JSON registry first for laboratory- or project-specific chemistry; see
docs/modifications.md. A modification belongs in the built-in registry
only when it has a stable controlled-vocabulary or primary-literature reference and a broadly useful
structural interpretation.
Built-in proposals must document residue/terminus specificity, attachment semantics, formal charge, tautomer and stereochemical choices. Include RDKit sanitization plus formula or exact-mass tests. Aliases that resemble controlled-vocabulary accessions must be site-aware and traceable to the corresponding record. Never silently replace an existing definition.
Bug reports should include the exact input, requested formats, full error, Python version, and output
of moltranscode --version. Never include confidential structures in a public issue.