All versions are properly annotated on github so there the source code for each version can be retrieved.
- Added more search terms
- Added angle and dihedral angle calculations on atoms (Thanks to DocKDE)
- Added extra examples (Thanks to DocKDE)
- Added support for DBREF1/2
- Improved PDB parsing performance (Thanks to DocKDE)
- Improved error message styling and merged common errors
- Additional code and documentation improvements
- Added
find
method on all levels in the PDB, this should allow for human friendly atom(s) searching.pdb.find(Term::ConformerName("ALA".to_string()) + Term::AtomName("CA".to_string()))
- Added
bounding_box
to the PDB struct. - Added
atom.overlaps_bound()
which uses covalent bond radii instead of unbound radii. (Thanks to raised issue) - Extended
atomic_number
to take the first character of the name if this is one of "CHONS" and the element is unset and the name is not an element name. - Updated covalent bond radii to work in Å as well (was picometers).
- Respecified the dependencies versions to allow cargo to more often reuse dependencies in complex projects.
- Added support for residue serial numbers over 9999 and atom serial numbers over 99999 for PDB files. (Thanks to DocKDE)
- Changed argument type of
save_pdb
fromPDB
to&PDB
. (Thanks to DocKDE) - Allow lack of chain name in PDB files. (Thanks to DocKDE)
- Added mutable structs to extend the use of
AtomWithHierarchy
alongside a refactor which created a struct for every hierarchy level. See the docs for more information. - Removed
Atom.pos_array()
and moved therstar::rtree
to use(f64, f64, f64)
instead of[f64; 3]
. This was made possible by the adoption of tuples as points in rstar.
- Added parallel iterators based on Rayon (Thanks to DocKDE)
- Added support for generating r*trees from Rstar, this has to be opted in by using the feature
rstar
- Added support for serialization using Serde, this has to be opted in using the feature
serde
- Added a new struct
AtomWithHierarchy
to have access to the containing layers of an atom in an easy way and added functions to generate and work with this struct - Added
binary_find_atom
to all hierarchies to find atoms in less time - Added more names for amino acids and backbone atoms (Thanks to DocKDE)
- Added support for bonds (can only read Disulfide bonds from PDBs for now)
- And many more small fixes and docs updates
- Added Anisotropic temperature factor support for mmCIF files
- Fixed an issue in the aniso matrix
- Added a
full_sort
function on PDB - Fixed small bugs in the PDB saving logic
- Fixed a bug in PDB b factor and occupancy validation which showed an error when the value was 0.00
- Fixed a bug in
atom.atomic_radius()
, it used to give the radius of the previous atom in the periodic table - Added more atomic radii (vanderwaals and covalent bonds)
- Fixed a bug arbitrarily constraining the maximum value of atom serial numbers in PDB files
- Reworked the library to handle Hetero atoms as normal atoms (with the
atom.hetero()
function returningtrue
) instead of saving them inmodel.hetero_chains()
- Implemented the standard traits (Clone/PartialEq/Eq/PartialOrd/Ord) for most structures
- Fixed conformers in
pdb.renumber()
they were disregarded before - The symmetry structure now also accepts and provides Hall symbols
- Fixed multiple bugs
- Added many more unit tests and started tracking test coverage
- Fixed bugs in
.remove_empty
to work better with hetero chains - Added support for negative residue sequence numbers
- Standardised the precision of floating points in the mmCIF output, at least 1 and at most 5 decimals will be shown
- Fixed an issue with the occupancy of atoms shared between multiple conformers, it will now add up to the original value
- Added
Conformer
which sits betweenResidue
andAtom
and is analogous toatom_group
in cctbx - Added editing functions for Conformers
- Added
HEADER
identifier support for parsing PDB and saving PDB and mmCIF - Reverted mmCIF output atom_site column ordering to v0.3.3, the newly introduced ordering gave issues with Phenix
- Added
remove_empty
functions on all structs, to remove all empty layers after large scale deletions
- All string based properties for atom/residue/chain are trimmed and converted to uppercase before being set
- A
.extend
function is provided for residue/chain/model/pdb to easily add an iterator to the list of children
- Added mmCIF/PDBx open support
- Changed
open
andsave
to determine the filetype based on the extension - Added
validate_pdb
to validate a PDB model before saving it in a PDB file - Added support for bigger serial numbers and names to allow for bigger models to be saved in mmCIF files
- Fixed some issues with mmCIF output
- Added very basic exporting to mmCIF, it will only export the unit cell, symmetry and atomic data.
- Added saving of
DBREF
/SEQADV
/SEQRES
- Generates default matrices for
SCALE
andORIGX
if not available and the strictness level on save isStrict
- Added constructor
scale
toTransformationMatrix
to have a magnifying matrix with 3 different factors
- Added
distance_wrapping
andoverlaps_wrapping
functions to Atom which wrap around the unit cell to find the shortest distance
- Added support for parsing and validating
DBREF
/SEQADV
/SEQRES
/MODRES
- Added saving of
MODRES
records, the other primary structure sections will follow soon - Added differential saving, which changes the output based on the
StrictnessLevel
provided - Redefined
overlaps
function on Atoms, the calculation was faulty before - Added
distance
function between two Atoms - Removed renumber on save
- Exported
save_raw
was created in v0.2.0 but not accessible - Added
ENDMDL
records after model definitions while saving making saved ensemble files valid in other software - Extended warnings for validation of ensemble files, it will now generate a
LooseWarning
ifHETATM
s do not correspond - Changed the implementation of the
.remove_*_by
functions to be 75% faster
- Made
add_child
methods for model/chain/residue public. - Extended saving it now validates and renumbers the given PDB. It fails upon generation of validation errors, while the user can specify the error levels to allow
- Added save_raw to save to a BufWriter. This function is called
save_raw
. - Extended parser error generation and handling. It now fails upon generation of errors, while the user can specify the error levels to allow
- Added parser from BufReader. This function is called
parse
and the function previously calledparse
is renamed toopen
. - Rewrote
pdb.total_*_count()
as the previous version was inaccurate - Saved 21.4 MB in the published crate by ignoring certain files (thanks Byron!)
- Finally fixed the full bug encountered in v0.1.3
- Fixed a bug in which strings that are too short cause setter functions of various character based properties of atoms/residues/chains to panic
- Fixed a mistake witch prevented valid characters from being used to set various character based properties of atoms/residues/chains
- Added
.join()
on PDB. - Added atomic data lookup (number & radius) on Atoms
- Added
.overlaps()
function to Atom, which uses the atomic radius to determine if two atoms overlap - Added support for the
MASTER
PDB Record both while reading and saving - Fixed the behaviour of
.join()
on Model/Chain/Residue
Textual changes to documentation
Initial release
- Basic PDB parsing, editing and saving functionality