Skip to content

Latest commit

 

History

History
180 lines (150 loc) · 10.2 KB

changelog.md

File metadata and controls

180 lines (150 loc) · 10.2 KB

Changelog

All versions are properly annotated on github so there the source code for each version can be retrieved.

v0.12.0

  • Added unified file read logic, see ReadOptions (Thanks to y1zhou and OWisset)
    • This deprecates the original read functions open_gz (still around for ease of updating) and open_raw (fully removed in this update)
  • Added unique_conformer_names for a PDB (Thanks to rvhonorato)
  • Added chains_in_contact for a PDB (Thanks to rvhonorato)

v0.11.0

  • Added support for zipped (.gz) files (Thanks to OWisset)
  • Does not automatically convert chain names to uppercase anymore (Thanks to OWisset)

v0.10.2

  • Added remove_models_except and remove_models_except_first (Thanks to OWisset) (#103)
  • Improved some errors generated by pdbtbx
  • Fixed panic (#102)

v0.10.1

  • Added more amino acids for is_amino_acid
  • Implemented Display for StrictnessLevel

v0.10.0 'Enumerated Elements'

  • Moved from string based elements to enums see Element, this means that the Atom::set_element, Atom::element, and Term::element have changed
  • Deprecated the following functions Atom::atom_number, Atom::atomic_radius, Atom::covalent_bond_radii, and Atom::vanderwaals_radius the radius functions are replaced with Element::atomic_radius which contains all these measures in the struct AtomicRadius
  • Added Element::weight and Element::electro_negativity data
  • Implemented Extend for all levels in the PDB hierarchy
  • Implemented FromIterator for the PDB struct
  • Removed requirement for atom_site.pdbx_formal_charge, atom_site.group_PDB, atom_site.occupancy, and atom_site.B_iso_or_equiv for mmCIF files (thanks to #93)
  • Added support for SCALE, ORIGX, and MTRIX in mmCIF files (open and save)
  • Fixed ignoring some of the auth_* series of mmCIF columns, by giving them precedence over the label_* columns in seq_id and asym_id (thanks to #95)
  • Fixed remark-type-number 400 missing from the valid number list (thanks to #96)
  • Fixed a small bug in saving MtriX records (thanks to #96)

v0.9.2

  • Added open_mmcif_raw
  • Fixed a bug in atom parsing (#92)
  • Removed below precision errors in validation
  • Changed many functions to accept AsRef<str> instead of &str
  • Marked all applicable functions as const

v0.9.1

  • 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

v0.9.0 'Structured search'

  • 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.

v0.8.0 'All the hierarchy'

  • 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 from PDB 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 the rstar::rtree to use (f64, f64, f64) instead of [f64; 3]. This was made possible by the adoption of tuples as points in rstar.

v0.7.0 'Ecosystem integration'

  • 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

v0.6.3

  • 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

v0.6.2

  • 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)

v0.6.1

  • Fixed a bug arbitrarily constraining the maximum value of atom serial numbers in PDB files

v0.6.0 'Hetero atoms remastered'

  • Reworked the library to handle Hetero atoms as normal atoms (with the atom.hetero() function returning true) instead of saving them in model.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

v0.5.1

  • 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

v0.5.0 'Alternative location support'

  • Added Conformer which sits between Residue and Atom and is analogous to atom_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

v0.4.1

  • 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

v0.4.0 'basic mmCIF support'

  • Added mmCIF/PDBx open support
  • Changed open and save 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

v0.3.3

  • Added very basic exporting to mmCIF, it will only export the unit cell, symmetry and atomic data.

v0.3.2

  • Added saving of DBREF/SEQADV/SEQRES
  • Generates default matrices for SCALE and ORIGX if not available and the strictness level on save is Strict
  • Added constructor scale to TransformationMatrix to have a magnifying matrix with 3 different factors

v0.3.1

  • Added distance_wrapping and overlaps_wrapping functions to Atom which wrap around the unit cell to find the shortest distance

v0.3.0 'Primary Sequence Support'

  • 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

v0.2.1

  • 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 if HETATMs do not correspond
  • Changed the implementation of the .remove_*_by functions to be 75% faster

v0.2.0

  • 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 called parse is renamed to open.
  • Rewrote pdb.total_*_count() as the previous version was inaccurate
  • Saved 21.4 MB in the published crate by ignoring certain files (thanks Byron!)

v0.1.5

  • Finally fixed the full bug encountered in v0.1.3

v0.1.4 (yanked)

  • Fixed a bug in which strings that are too short cause setter functions of various character based properties of atoms/residues/chains to panic

v0.1.3 (yanked)

  • Fixed a mistake witch prevented valid characters from being used to set various character based properties of atoms/residues/chains

v0.1.2

  • 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

v0.1.1

Textual changes to documentation

v0.1.0

Initial release

  • Basic PDB parsing, editing and saving functionality