Expand description
MolAR is a library for molecular modeling and analysis written in Rust with an emphasis on memory safety and performance. Molar is designed to simplify the analysis of molecular dynamics trajectories and to implement new analysis algorithms. Molar is intended to provide facilities, which are routinely used in all molecular analysis programs, namely input/output of popular file formats, powerful and flexible atom selections, geometry transformations, RMSD fitting and alignment, etc. MolAR is a logical successor of Pteros molecular modeling library, which is written in C++ and become hard to develop and maintain due to all C++ idiosyncrasies.
Re-exports§
pub use crate::io::*;
Modules§
- io
- IO handlers for different file formats and associated traits
- prelude
- Most useful public imports exposed to the users
- voronoi_
cell - 2D Voronoi diagrams
Macros§
- bind
- Convenience macro for binding several selections ar once
- bind_
mut - Convenience macro for binding several selections ar once mutably
Structs§
- Analysis
Context - Context passed to all frame processing methods
- Atom
- Information about the atom except its coordinates.
- Dssp
- DSSP secondary structure assignment result for a selection.
- NdxFile
- Representation of Gromacs index files
- ParSplit
- Collection of non-overlapping selections that could be mutated in parallel Selections don’t have access to shared fields such as box and bonds.
- Particle
- Holds immutable reference to Atom and Pos and particle id.
- Particle
Mut - Holds mutable reference to Atom and Pos and particle id.
- PbcDims
- Representation of periodic dimensions in 3D space.
- Periodic
Box - Periodic box allowing working with periodicity and computing periodic distances and images.
- Sasa
- Solvent-Accessible Surface Area calculator backed by the pure-Rust PowerSASA algorithm.
- Search
Connectivity - Contacts between atoms in the format of
atom -> neib1 neib2 neib3... - Search
Connectivity Iter - Iterator over SearchConnectivity entries
- Sel
- Selection index detached from any System. It is guaranteed to be non-empty.
- SelBound
- Read only selection that borrows its index Implements only read-only analysis traits
- SelBound
Mut - Read-write selection that borrows its index
- SelOwn
Bound - Read only subsystem that owns its index Implements only read-only analysis traits
- SelOwn
Bound Mut - Read-write bound subsystem having access to all fields of Topology and State
- SelPar
- Read-only subsystem for non-blocking parallel access to atoms and posisitons Doesn’t have access to shared fields such as box and bonds.
- SelPar
Mut - Read-write subsystem for non-blocking parallel access to atoms and posisitons Doesn’t have access to shared fields such as box and bonds.
- Selection
Expr - A compiled selection expression that can be used to select atoms based on various criteria
- State
- State of molecular system including its coordinates, time stamp and periodic box.
- System
- System that stores Topology and State
- Topology
- Topology of the molecular system: atoms, bonds, molecules, etc.
- Topology
State Sizes Error - Error for different sizes of topology and state
- Traj
Analysis Args - Standard trajectory processing arguments
Enums§
- Analysis
Error - Errors related to analysis task execution and trajectory processing
- Builder
Error - Errors related to builder sources
- Lipid
Order Error - Errors related to computing lipid order parameter
- Measure
Error - Errors that can occur during measurements
- NdxError
- Errors related to reading and manipulating Gromacs index files
- Order
Type - Type of order parameter calculation
- Periodic
BoxError - Errors related to periodic boxes and periodicity
- SS
- Secondary structure code assigned to a single residue.
- Selection
Error - Error related to creation of selections
- State
Error - Error type for missing optional state data (velocities or forces)
Constants§
Traits§
- Analysis
- Trait providing
splitandsplit_parfor selections that have full particle access. - Analysis
Task - Analysis task trait. Should be implemented by user’s types.
- Atom
Iterator - Convenience alias for iterator over atoms
- Atom
Like - Atom
MutIterator - Convenience alias for mutable iterator over atoms
- Atom
MutProvider - Element trait providing mutable access to atoms.
- Atom
Provider - Element trait providing immutable access to atoms via index.
- Bond
Provider - Element trait providing immutable access to bonds.
- BoxMut
Provider - Trait for providing mutable access to periodic box
- BoxProvider
- Trait for providing access to periodic box
- Distance
Search Output - Trait for the results of distance seacrh
- Force
Iterator - Convenience alias for iterator over forces
- Force
MutIterator - Convenience alias for mutable iterator over forces
- Force
MutProvider - Element trait providing mutable access to forces.
- Force
Provider - Element trait providing immutable access to forces via index.
- IdPos
Iterator - Convenience alias for iterator over index-position pairs
- IdPos
MutIterator - Convenience alias for mutable iterator over index-position pairs
- Index
Iterator - Convenience alias for iterator over indices
- Index
ParProvider - Trait for parallel iteration over indexes
- Index
Provider - Trait for selected indices
- Index
Slice Provider - Trait for entities that contain continuous slices of indices (selections and such)
- LenProvider
- Trait for providing length of provided data
- Measure
- Unified trait for all measurement operations on selections.
- Modify
- Unified trait for all modification operations on selections.
- MolProvider
- Element trait providing immutable access to molecules.
- Particle
Iter MutProvider - Trait for providing mutable iteration over particles
- Particle
Iter Provider - Provides iteration over (id, atom, pos) particles
- Particle
Iterator - Convenience alias for iterator over particles
- Particle
MutIterator - Convenience alias for mutable iterator over particles
- Particle
ParIter Provider - PosIterator
- Convenience alias for iterator over positions
- PosMut
Iterator - Convenience alias for mutable iterator over positions
- PosMut
Provider - Element trait providing mutable access to positions.
- PosProvider
- Element trait providing immutable access to positions via index.
- Selectable
- Trait for objects that support creating selections
- Selectable
Bound - Trait for objects that support creating bound selections
- Selection
Def - Trait for selection definitions. Implementors could be used as argumnets for selection creation methods.
- Selection
Logic - Trait for logical operations in any (borrowed or own) bound selections
- System
MutProvider - Trait for things containing mut reference to System (mostly selections)
- System
Provider - Trait for things containing reference to System (mostly selections)
- Time
MutProvider - Trait for setting simulation time
- Time
Provider - Trait for getting time
- TopLike
- VelIterator
- Convenience alias for iterator over velocities
- VelMut
Iterator - Convenience alias for mutable iterator over velocities
- VelMut
Provider - Element trait providing mutable access to velocities.
- VelProvider
- Element trait providing immutable access to velocities via index.
Functions§
- distance_
search_ double - Performs distance search between two sets of points within a given cutoff distance
- distance_
search_ double_ pbc - Performs distance search between two sets of points within periodic boundary conditions
- distance_
search_ double_ vdw - Performs distance search between two sets of points using van der Waals radii
- distance_
search_ double_ vdw_ pbc - Performs distance search between two sets of points using van der Waals radii with periodic boundaries
- distance_
search_ single - Performs distance search within a single set of points
- distance_
search_ single_ pbc - Performs distance search within a single set of points with periodic boundaries
- fit_
transform - Computes the transformation that best fits sel1 onto sel2
- fit_
transform_ at_ origin - Like fit_transform but assumes both selections are centered at origin
- fit_
transform_ matching - Computes the transformation that best fits sel1 onto sel2 taking into account only matching atoms. The sequences of atom names from both selections are aligned first with Needleman–Wunsch Global Alignment algorithm and then only the matching atoms are used to compute a fit transform
- get_
matching_ atoms_ by_ name - greeting
- Prints a welcome message for MolAR with package information and the specified tool name
- rmsd
- Calculates the Root Mean Square Deviation between two selections
- rmsd_mw
- Calculates the mass-weighted Root Mean Square Deviation between two selections