pdbtbx

A library to open/edit/save (crystallographic) Protein Data Bank (PDB) and mmCIF files in Rust.

MIT License

Downloads
20.3K
Stars
34
Committers
10
pdbtbx - v0.11.0 Latest Release

Published by douweschulte about 1 year ago

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

Published by douweschulte over 1 year ago

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

Published by douweschulte almost 2 years ago

  • Added more amino acids for is_amino_acid
  • Implemented Display for StrictnessLevel
pdbtbx - v0.10.0 Enumerated Elements

Published by douweschulte about 2 years ago

  • 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)
pdbtbx - v0.9.2

Published by douweschulte over 2 years ago

  • 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
pdbtbx - v0.9.1

Published by douweschulte over 2 years ago

  • 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
pdbtbx - v0.9.0 Structured search

Published by douweschulte almost 3 years ago

  • 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.
pdbtbx - v0.8.0 All the hierarchy

Published by douweschulte almost 3 years ago

  • 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.
pdbtbx - v0.7.0 Ecosystem integration

Published by douweschulte over 3 years ago

  • 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
pdbtbx - v0.6.3 Bug fixes

Published by douweschulte over 3 years ago

  • 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
pdbtbx - v0.6.2 Bug fixes

Published by douweschulte over 3 years ago

  • 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)
pdbtbx - v0.6.1 Bugfix

Published by douweschulte over 3 years ago

  • Fixed a bug arbitrarily constraining the maximum value of atom serial numbers in PDB files
pdbtbx - v0.6.0 Hetero atoms remastered

Published by douweschulte over 3 years ago

  • 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
pdbtbx - v0.5.1 Bug fixes

Published by douweschulte over 3 years ago

  • 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
pdbtbx - v0.5.0 Alternative location support

Published by douweschulte over 3 years ago

  • 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
pdbtbx - v0.4.1 Bug fixes + extend

Published by douweschulte over 3 years ago

  • 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
pdbtbx - v0.4.0 Basic mmCIF support

Published by douweschulte over 3 years ago

  • 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
pdbtbx - v0.3.3 Very basic CIF save

Published by douweschulte over 3 years ago

  • Added very basic exporting to mmCIF, it will only export the unit cell, symmetry and atomic data.
pdbtbx - v0.3.2 Saving of DBREF/SEQADV/SEQRES

Published by douweschulte over 3 years ago

  • 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
pdbtbx - v0.3.1 Wrapping distance & overlap detection

Published by douweschulte almost 4 years ago

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