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.
- 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. Usually created indirectly by types implementing ParticleIterProvider.
- Particle
Mut - Holds mutable reference to Atom and Pos and particle id. Usually created indirectly by types implementing ParticleIterMutProvider.
- 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
- Selection
Error - Error related to creation of selections
Constants§
Traits§
- Analysis
Task - Analysis task trait. Should be implemented by user’s types.
- Atom
Iter MutProvider - Trait for providing mutable iteration over atoms
- Atom
Iter Provider - Trait for providing iteration over atoms
- Atom
Iterator - Convenience alias for iterator over atoms
- Atom
Like - Atom
MutIterator - Convenience alias for mutable iterator over atoms
- Atom
ParIter MutProvider - Trait for providing parallel mutable iteration over atoms
- Atom
ParIter Provider - Atom
PosAnalysis - Umbrella trait for implementing read-only analysis traits involving only atoms and positions.
- Atom
PosAnalysis Mut - Umbrella trait for implementing read-write analysis traits involving atoms and positions
- Bond
Iter Provider - 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
- 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 - Trair 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
- Mass
Iter Provider - Trait for providing iteration over atomic masses
- Measure
Atom Pos - Trait for analysis requiring both atom properties and positions.
- Measure
Masses - Trait for analysis requiring positions and masses
- Measure
Periodic - Trait for analysis requiring positions, masses and periodic boundary conditions
- Measure
Pos - Trait for analysis requiring only positions
- Measure
Random Access - Trait for modification requiring random access positions and pbc
- Modify
Atoms - Trait for modification requiring atoms
- Modify
Periodic - Trait for modification requiring positions and pbc
- Modify
Pos - Trait for modification requiring only positions
- Modify
Random Access - Trait for modification requiring random access positions and pbc
- Molecule
Iter Provider - NonAtom
PosAnalysis - Umbrella trait for implementing read-only analysis traits NOT involving atoms and positions
- NonAtom
PosAnalysis Mut - Umbrella trait for implementing read-write analysis traits NOT involving atoms and positions
- Particle
Iter MutProvider - Trait for providing mutable iteration over particles
- Particle
Iter Provider - Trait for providing iteration over particles
- Particle
ParIter MutProvider - Trait for providing parallel mutable iteration over particles
- Particle
ParIter Provider - PosIter
MutProvider - Trait for providing mutable iteration over positions
- PosIter
Provider - Trait for providing iteration over positions
- PosIterator
- Convenience alias for iterator over positions
- PosMut
Iterator - Convenience alias for mutable iterator over positions
- PosPar
Iter MutProvider - Trait for providing parallel mutable iteration over positions
- PosPar
Iter Provider - Trait for providing parallel iteration over positions
- Random
Atom MutProvider - Trait for providing mutable random access to atoms
- Random
Atom Provider - Trait for providing random access to atoms
- Random
Bond Provider - Trait for providing access to bonds
- Random
Molecule Provider - Trait for providing access to molecules (atoms subsets connected by bonds)
- Random
Particle MutProvider - Trait for providing mutable random access to particles
- Random
Particle Provider - Trait for providing random access to particles
- Random
PosMut Provider - Trait for providing mutable random access to positions
- Random
PosProvider - Trait for providing random access to positions
- 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
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