pub struct AtomicConformation {
pub x: Vec<f32>,
pub y: Vec<f32>,
pub z: Vec<f32>,
pub occupancy: Option<Vec<f32>>,
pub b_iso: Option<Vec<f32>>,
pub confidence: Option<Vec<f32>>,
}Expand description
Per-model coordinate data — varies across trajectory frames.
Coordinates are stored as struct-of-arrays (SoA): x[i], y[i], z[i]
for atom i. This layout is cache-friendly for common operations that
process one coordinate component at a time (e.g., computing pairwise
distances, centroid calculations).
§Host-side only
Coordinates are plain Vec<f32> — no GPU tensors or device types.
ferritin-core is intentionally framework-agnostic.
Fields§
§x: Vec<f32>X coordinates (Å), one per atom.
y: Vec<f32>Y coordinates (Å), one per atom.
z: Vec<f32>Z coordinates (Å), one per atom.
occupancy: Option<Vec<f32>>Occupancy for each atom (0.0–1.0), or None if not recorded.
b_iso: Option<Vec<f32>>Isotropic B-factor (temperature factor) for each atom, or None.
For predicted structures use [confidence] instead to avoid semantic ambiguity.
confidence: Option<Vec<f32>>Per-atom confidence score (e.g. pLDDT from AlphaFold / ESM3), or None.
Kept separate from b_iso so callers can distinguish experimental
B-factors from model confidence without inspecting metadata.
Implementations§
Trait Implementations§
Source§impl Clone for AtomicConformation
impl Clone for AtomicConformation
Source§fn clone(&self) -> AtomicConformation
fn clone(&self) -> AtomicConformation
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for AtomicConformation
impl RefUnwindSafe for AtomicConformation
impl Send for AtomicConformation
impl Sync for AtomicConformation
impl Unpin for AtomicConformation
impl UnsafeUnpin for AtomicConformation
impl UnwindSafe for AtomicConformation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more