Releases: Ladme/groan_rs
Releases · Ladme/groan_rs
v0.4.2
- Introduced
System::group_create_from_geometries
for group creation with multiple geometry constraints. - Excluded test files from the
crates.io
crate distribution. - Removed unnecessary fields from several error variants.
- Added new test for
System::group_create_from_geometry
.
v0.4.1
- Added new
TrajMasterRead
trait that is implemented byTrajReader
,TrajRangeReader
,TrajStepReader
, andTrajRangeStepReader
allowing easier usage of these structures in generic functions. - All new traits and structures for trajectory reading are now properly included in the
prelude
.
v0.4.0
Changes to the Groan selection language
- Breaking Change: Group names can no longer include the characters '<', '>', or '='.
- Atom, residue, and group names can now be specified using regular expressions in the groan selection language.
- Operators (<, >, <=, and =>) have been introduced for open-ended ranges in the groan selection language.
- Added a new
@hydrogen
macro for automatic hydrogen atom detection. - Implemented a new tokenizer for atom and residue numbers in the groan selection language.
Changes to reading xtc and trr files
- Breaking Change: Traits for reading xtc and trr files have been completely redone. Most notably,
Xdr
* methods, traits, and errors have been renamed toTraj
*. - All trajectory readers must now implement
TrajRead
trait and do not have to be iterable. Trajectory iterator is constructed by wrapping theTrajRead
-implementing structure intoTrajReader
. - Introduced several structures for efficient partial reading of trajectory files:
TrajRangeReader
reads frames in a specified time range. Can be constructed for any structure implementingTrajRangeRead
usingwith_range
method.TrajStepReader
reads everystep
th frame of the trajectory. Can be constructed for any structure implementingTrajStepRead
usingwith_step
method.TrajRangeStepReader
reads everystep
th frame of the trajectory in a specified time range. Can be constructed for any structure implementing bothTrajRangeRead
andTrajStepRead
usingwith_range
andwith_step
methods.
Other changes
- Added
Atom::has_position
andSystem::has_positions
methods that check whether the atom or all atoms in the system, respectively, have non-zero position(s). - Added tests for reading double-precision trr files.
- Enhanced documentation for error variants within the
errors
module.
v0.3.3
v0.3.2
v0.3.1
v0.3.0
- Breaking Change: Renamed functions
System::group_by_resid
andSystem::group_by_resname
toSystem::atoms_split_by_resid
andSystem::atoms_split_by_resname
, respectively. - Breaking Change: Revised the return type of
System::group_create
fromResult<(), Box<dyn Error>>
toResult<(), GroupError>
. This change simplifies pattern matching when handling the result of the function. Additionally, the error typeSelectError
, previously returned by the function, is now encapsulated within the new error variantGroupError::InvalidQuery
. - Updated selection macros according to Gromacs definitions, and introduced new macros for identifying DNA (
@dna
) and RNA (@rna
). - Introduced new functions:
System::group_split_by_resid
for splitting groups of atoms by their residue ID andSystem::group_split_by_resname
for splitting by residue name. - Added functions
System::group_remove
for removing groups andSystem::group_rename
for renaming them. - Introduced
System::group_create_from_geometry
which allows to construct groups of atoms that are inside some geometric shape in the current simulation frame. - Restructured codebase:
- Split the
system.rs
file into multiple smaller files. - Grouped files related to IO operations into a dedicated directory.
- Organized files containing
System
-related methods into a separate directory. - Placed files defining fundamental data structures into their own directory.
- Split the
- Made minor documentation tweaks.
v0.2.0
- Added functionality to write atom groups into xtc and trr files using the
XdrGroupWriter
trait along with theXtcGroupWriter
andTrrGroupWriter
structures. - Introduced an optional property
chain
to theAtom
structure, allowing specification of the chain ID to which the atom belongs. This property is automatically loaded from pdb files containing chain identifiers and it can also be set manually using theAtom::with_chain
function. - When writing pdb files, if the
chain
property is set for theAtom
, it is now written into the pdb file. - A new keyword
chain
has been added to the Groan Selection Language (GSL) that allows to select atoms based on the chain they belong to. - Made the constructors for
AtomIterator
andMutAtomIterator
public. - Implemented operations for ndx-writable and ndx-nonwritable groups, including
System::group_make_writable
,System::group_make_nonwritable
, andSystem::group_names_writable
. - Performed small code refactors.
- Made minor documentation fixes.