DESIGN AND IMPLEMENTATION

Protein software architecture

Extractor, prediction models and Reader


How the programs store atomic data, calculate predictions and display results.

Working draft

24 September 2026

Reading this book

The extractor calculates molecular properties from structures. The prediction models use those properties to estimate shielding tensors and chemical shifts. Reader displays the structures and their measurements. This book describes the main objects and calculations in each program.

The extractor’s core classes form a domain-specific language within C++. Calculators use these classes to identify atoms by chemical role, follow bonds and ring membership, and read or write values for a particular pose. Chapter 1 starts with a ring-current example to show how this vocabulary is used. The prediction software and Reader read the extracted data and build their own representations for learning and display.

  1. Extractor. Calculators read chemical types, connectivity and coordinates from the protein and its conformation. Some calculate values for one pose; others accumulate results across trajectory frames.

  2. Prediction models. An equivariant encoder represents each atom’s environment. Separate models use that representation to predict shielding tensors and chemical shifts.

  3. Reader. The application loads the extractor’s files into its own molecular objects. Qt signals notify the displays when the current frame or selection changes.

The appendices trace a prediction call through the code, report parameter counts for the fitted networks, and list the Reader source files behind the diagrams. Class and function names connect the explanations to the code. The diagrams show selected relationships rather than every class member.

Appendix D identifies the versions described and the files used to build this book.