ferritin_core/model/mod.rs
1//! Model layer (Layer 1): atomic hierarchy, conformation, and bond connectivity.
2//!
3//! This module provides the core data structures for representing molecular
4//! structures. It sits on top of the Layer 0 primitives in [`crate::data`].
5//!
6//! # Architecture
7//!
8//! ```text
9//! Model ──── Arc<AtomicHierarchy> (topology: atoms, residues, chains, bonds)
10//! └─── AtomicConformation (coordinates: x, y, z per atom)
11//! ```
12//!
13//! Multiple `Model`s (trajectory frames) share one `AtomicHierarchy` via `Arc`.
14
15pub mod bonds;
16pub mod conformation;
17mod error;
18pub mod hierarchy;
19pub mod model;
20pub mod symmetry;
21pub mod tables;
22
23pub use bonds::Bonds;
24pub use conformation::AtomicConformation;
25pub use error::ModelError;
26pub use hierarchy::AtomicHierarchy;
27pub use model::Model;
28pub use symmetry::{
29 Assembly, AssemblyUnit, CrystalSymmetry, IDENTITY_MAT4, Mat4, SymmetryData, SymmetryOperator,
30};
31pub use tables::{AtomsTable, ChainsTable, MISSING_SEQ_ID, ResidueGroup, ResiduesTable};