Skip to content

Releases: ihmwg/python-ihm

python-ihm 1.7 release

23 Oct 06:15
1.7
Compare
Choose a tag to compare
  • Sanity checks when writing out a file can now be disabled if desired, using the new check argument to ihm.dumper.write (#153).
  • Data that have been split over multiple mmCIF or BinaryCIF files can now be combined into a single ihm.System object using the new add_to_system argument to ihm.reader.read.
  • Input files that assign multiple ihm.location.Location objects to a single ihm.dataset.Dataset can now be read (#151).
  • Bugfix: multiple ihm.restraint.EM3DRestraint and ihm.restraint.SASRestraint objects can now be created for a single dataset, as long as they act on different assemblies, as allowed by the dictionary.
  • Bugfix: allow for non-standard residues in the struct_ref table (#154).

Full Changelog: 1.6...1.7

python-ihm 1.6 release

27 Sep 18:08
1.6
Compare
Choose a tag to compare
  • The new class ihm.model.NotModeledResidueRange allows for the annotation of residue ranges that were explicitly not modeled. These are written to the _ihm_residues_not_modeled mmCIF table, and any residue marked as not-modeled in all models will also be excluded from the pdbx_poly_seq_scheme table.
  • The make_mmcif utility script will now automatically add any missing ihm.model.NotModeledResidueRange objects for not-modeled residue ranges (#150).
  • Bugfix: the residue range checks introduced in version 1.5 broke the API used by python-modelcif. They have been reimplemented using the original API.
  • Bugfix: an unknown (?) value for pdbx_poly_seq_scheme.auth_seq_num is now preserved, not silently removed, when reading an mmCIF file.

Full Changelog: 1.5...1.6

python-ihm 1.5 release

06 Sep 21:22
1.5
Compare
Choose a tag to compare
  • Trying to create a ihm.Residue, ihm.EntityRange, or ihm.AsymUnitRange that references out-of-range residues (i.e. seq_id less than 1 or beyond the length of the ihm.Entity sequence) will now raise an error.
  • Bugfix: ihm.reference.Reference objects are no longer given erroneous duplicate IDs on output (#149).

Full Changelog: 1.4...1.5

python-ihm 1.4 release

30 Aug 22:47
1.4
Compare
Choose a tag to compare
  • ihm.metadata.CIFParser now extracts metadata from mmCIF starting models from Model Archive or compliant with the ModelCIF dictionary.
  • ihm.Citation.from_pubmed_id now takes an is_primary argument, to allow denoting the publication as the most pertinent for the modeling.
  • Duplicate references, pseudo sites, and features are now pruned on output (#148).
  • ihm.restraint.ResidueFeature now reports an error if it is given zero residue ranges (#147).
  • Bugfix: allow for ihm.startmodel.Template seq_id_range or template_seq_id_range to be empty.

Full Changelog: 1.3...1.4

python-ihm 1.3 release

16 Jul 17:35
1.3
Compare
Choose a tag to compare
  • The new class ihm.location.ProteomeXchangeLocation can be used for datasets stored in the ProteomeXchange database.
  • Support is added for changes in the IHMCIF dictionary, specifically the renaming of "CX-MS data" to "Crosslinking-MS data" and the _ihm_ordered_ensemble category to _ihm_ordered_model. python-ihm will output the new names, but for backwards compatibility will read both old and new names.
  • ihm.protocol.Protocol can now be given additional text to describe the protocol.
  • ihm.model.Atom now takes an alt_id argument to support alternate conformations (#146).
  • Support added for NumPy 2.0.

Full Changelog: 1.2...1.3

python-ihm 1.2 release

12 Jun 18:49
1.2
Compare
Choose a tag to compare
  • ihm.format.CifTokenReader allows for reading an mmCIF file and breaking it into tokens. This can be used for various housekeeping tasks directly on an mmCIF file, such as changing chain IDs or renaming categories or data items, while preserving most other formatting such as comments and whitespace (#141).
  • ihm.restraint.HDXRestraint adds support for restraints derived from Hydrogen-Deuterium Exchange experiments (#143).
  • The make_mmcif utility script now preserves more "orphan" data from the input file that is not referenced by other tables (#144).

Full Changelog: 1.1...1.2

python-ihm 1.1 release

09 May 19:58
1.1
Compare
Choose a tag to compare
  • ihm.System now allows for one or more official database IDs to be associated with the system using the new ihm.Database class. This maps to the mmCIF _database_2 category (#135).
  • ihm.location.FileLocation now allows for an optional file format to be specified (#139).
  • The util/make-mmcif.py script is now included in the installed package, so can be run if desired with python3 -m ihm.util.make_mmcif (#134).
  • Bugfix: allow for file sizes in input mmCIF files to be floating point values (#138).
  • Bugfix: the 'Other' content type is now handled correctly when reading information about external files from an mmCIF file (#139).

Full Changelog: 1.0...1.1

python-ihm 1.0 release

14 Feb 00:02
1.0
Compare
Choose a tag to compare
  • Support for multi-state schemes (such as kinetic rates and relaxation times for conversions between states) was added; see ihm.multi_state_scheme.
  • Residue numbering in non-polymer, water, and branched entities should now be better handled, no longer requiring the various scheme tables to precede atom_site. If you subclass ihm.model.Model, atoms may need to be renumbered; see ihm.model.Model.add_atom (#130).
  • Original author-provided numbering can now be provided for waters, using the orig_auth_seq_id_map argument to ihm.WaterAsymUnit.
  • The make-mmcif.py utility script now has basic functionality for combining multiple input files into one, relabeling chain IDs if necessary.
  • An ihm.Entity containing just a single sugar is now classified as a nonpolymer, not branched.

Full Changelog: 0.43...1.0

python-ihm 0.43 release

09 Dec 04:16
0.43
Compare
Choose a tag to compare
  • Branched and polymeric empty entities are now distinguished based on entity.type in the input file (previously, any empty entity would always be reported as a polymer) (#129).
  • Warn rather than reporting an error if the system contains one or more empty entities (#128).
  • If an input file contains multiple duplicated datasets, preserve them as is rather than consolidating into a single dataset (#127).
  • Allow for multiple branched entities to have the same composition (they could have different connectivity) (#126).

Full Changelog: 0.42...0.43

python-ihm 0.42 release

01 Dec 04:46
0.42
Compare
Choose a tag to compare
  • The ihm.metadata.CIFParser class now parses Modeller-specific CIF categories to add information about software and templates for Modeller-generated mmCIF starting models.
  • Basic support for original author-provided residue numbering is now provided in the ihm.AsymUnit class with a new orig_auth_seq_id_map argument. This information is read from and written to the various mmCIF tables such as pdbx_poly_seq_scheme (#124).

Full Changelog: 0.41...0.42