Skip to content

docs: add Doxygen API documentation for calculations and analysis headers (PR 7/10) - #1

Closed
CV-GPhL wants to merge 18 commits into
masterfrom
api-docs/calculations
Closed

CV-GPhL wants to merge 18 commits into
masterfrom
api-docs/calculations

Conversation

@CV-GPhL

@CV-GPhL CV-GPhL commented Apr 22, 2026

Copy link
Copy Markdown
Owner

Summary

Seventh PR in the incremental Doxygen API documentation series. Adds /// doc comments to 12 headers covering calculations, analysis, and structure factor computation, and wires them into docs/api.rst via doxygenfile:: directives.

Headers documented:

Calculations and Analysis

  • calculate.hpp — geometric calculations (angles, dihedrals, Ramachandran, mass, B-factors, TLS)
  • align.hpp — sequence alignment to SEQRES, label_seq_id assignment, QCP superposition
  • neighbor.hpp — cell-linked-list neighbour search (Model and SmallStructure)
  • contact.hpp — distance-based contact search with configurable ignore rules
  • assembly.hpp — biological assembly generation, NCS expansion, chain naming
  • select.hpp — CCP4-style atom/residue/chain selection expressions
  • modify.hpp — in-place structure modifications (remove H, altlocs, ANISOU; rename; deuterium handling)
  • polyheur.hpp — polymer type heuristics, entity/subchain assignment, connectivity checks
  • dssp.hpp — DSSP secondary structure assignment (helices, strands, turns, bends)

Structure Factor Calculations

  • sfcalc.hpp — direct (non-FFT) structure factor summation
  • ecalc.hpp — amplitude normalisation F→E (Karle approach)
  • scaling.hpp — anisotropic scaling with optional bulk-solvent correction

Also includes the infrastructure changes from PR project-gemmi#413 (conf.py guard, Doxyfile, CI docs-build job) as they are not yet merged into master.

Depends on

Part of the series starting with PR project-gemmi#413 (api-docs/infra).

Test plan

  • CI docs-build job passes (Doxygen + Sphinx/Breathe HTML build)
  • CI doctest job passes (no regressions in Python doctests)
  • docs/api.rst renders the two new sections without Breathe errors

🤖 Generated with Claude Code

C. Vonrhein and others added 18 commits April 22, 2026 22:47
Wires up Doxygen XML generation + Breathe Sphinx extension so that
C++ API documentation from header comments renders in the existing
Sphinx/readthedocs site at docs/api.rst.

- docs/Doxyfile: Doxygen config (XML-only output, internal headers excluded)
- docs/conf.py: runs Doxygen as subprocess, adds breathe extension
- docs/api.rst: stub C++ API reference page (expanded by subsequent PRs)
- docs/index.rst: replace external cxx-api link with internal api.rst
- docs/requirements.txt: add breathe >= 4.35
- .readthedocs.yaml: add apt_packages: [doxygen]
- .gitignore: exclude docs/_doxygen/ (generated)

Builds on prior work in project-gemmi#402 (Paul Emsley / pemsley).
Co-authored-by: C. Vonrhein / CV-GPhL
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add comprehensive Doxygen documentation comments to all public items in
the DSSP secondary structure assignment module:
- All enum types and values (SecondaryStructure, TurnType, HelixPosition,
  BridgeType, HydrogenMode, HBondDefinition)
- All public structs and their data members (Bridge, HBond,
  SecondaryStructureInfo, DsspOptions, DsspCalculator)
- All public methods with @PARAM, @return, and @brief tags
- The calculate_dssp convenience function
- Used @tparam and other tags as appropriate for clarity

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ons (PR 7)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@CV-GPhL CV-GPhL closed this Apr 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant