Recent Releases of ihm

ihm - python-ihm 2.7 release

  • Representative models for ihm.model.ModelGroup can now be denoted using the ihm.model.ModelRepresentative class (#173).
  • Bugfix: fix reference counts of Python bool objects.

Full Changelog: https://github.com/ihmwg/python-ihm/compare/2.6...2.7

- Python
Published by benmwebb 11 months ago

ihm - python-ihm 2.6 release

  • The new ihm.License and ihm.Disclaimer classes allow describing how the data in the file can be used, and map to the pdbx_data_usage mmCIF table (#171).
    • Two ihm.Assembly classes are now considered equal if they contain the same set of constituents, even if those constituents are in differing orders or are split differently into domains (#170).
    • The new ihm.format.ChangeFuncValueFilter class allows modifying mmCIF values by passing them through an arbitrary Python function.
    • Checks for non-canonical atom names no longer use Ligand Expo to obtain CCD info, as it is being retired (#169).
    • ihm.metadata.CIFParser and ihm.metadata.BinaryCIFParser now return the same entity_source mapping that ihm.metadata.PDBParser does (#168).

Full Changelog: https://github.com/ihmwg/python-ihm/compare/2.5...2.6

- Python
Published by benmwebb 12 months ago

ihm - python-ihm 2.5 release

  • Assemblies are now checked at file-output time to ensure that each asym referenced in an assembly is represented by atoms and/or spheres in at least one model (#165).
  • make_mmcif has a new --check_atom_names option which, if set, will check for any non-canonical atom names (#166).
  • pip install should no longer fail to install if the C extension module cannot be built; it will fall back to use the slower pure Python implementation.

Full Changelog: https://github.com/ihmwg/python-ihm/compare/2.4...2.5

- Python
Published by benmwebb about 1 year ago

ihm - python-ihm 2.4 release

  • Add support for fits of model groups or ensembles to cross-links using the new ihm.restraint.CrossLinkGroupFit class.

Full Changelog: https://github.com/ihmwg/python-ihm/compare/2.3...2.4

- Python
Published by benmwebb about 1 year ago

ihm - python-ihm 2.3 release

  • The C-accelerated BinaryCIF parser now supports interval quantization encoding and a wider range of data types.
  • make_mmcif now has a new --histidines option to convert any non-standard histidine names to HIS (#164).
  • Bugfix: don't change name or description of the complete assembly in make_mmcif.
  • Bugfix: if ihm.reference.SeqDif is used to annotate an insertion or deletion, don't erroneously claim the alignment is incorrect.

Full Changelog: https://github.com/ihmwg/python-ihm/compare/2.2...2.3

- Python
Published by benmwebb about 1 year ago

ihm - python-ihm 2.2 release

  • The C-accelerated BinaryCIF parser now supports a wider range of data types.

Full Changelog: https://github.com/ihmwg/python-ihm/compare/2.1...2.2

- Python
Published by benmwebb over 1 year ago

ihm - python-ihm 2.1 release

  • Minor fixes to the C-accelerated BinaryCIF parser.

Full Changelog: https://github.com/ihmwg/python-ihm/compare/2.0...2.1

- Python
Published by benmwebb over 1 year ago

ihm - python-ihm 2.0 release

  • python-ihm no longer supports Python 2; the oldest supported version is now Python 3.6 (#161).
  • BinaryCIF files are now read in using a C-accelerated parser, which is faster and more memory efficient than the older Python parser (#160).
  • The tokenizers for mmCIF and BinaryCIF now return data of the correct type (int, float, bool, or string); previously, all values were returned as strings. ihm.reader.Handler subclasses now request data of the correct type using Python type annotations. The API of the C-accelerated parsers has changed accordingly (#162).
  • The new ihm.metadata.BinaryCIFParser class can extract metadata such as database IDs and template information from BinaryCIF files, in a similar fashion to the existing ihm.metadata.CIFParser.
  • Information about a deposited structure, such as the deposition date, can now be read from System.database_status (#163).
  • The new ihm.format.ReplaceCategoryFilter class can be used to completely replace or remove an mmCIF category when using ihm.format.CifTokenReader.

Full Changelog: https://github.com/ihmwg/python-ihm/compare/1.8...2.0

- Python
Published by benmwebb over 1 year ago

ihm - python-ihm 1.8 release

  • Support added for datasets containing EPR, X-ray diffraction, footprinting or predicted contacts using the ihm.dataset.EPRDataset, ihm.dataset.XRayDiffractionDataset, ihm.dataset.HydroxylRadicalFootprintingDataset, ihm.dataset.DNAFootprintingDataset and ihm.dataset.PredictedContactsDataset classes (#157).
  • Revision information (in the pdbx_audit_revision_* mmCIF tables) can now be read or written using the new ihm.Revision and ihm.RevisionDetails classes (#156).
  • The new ihm.location.BMRbigLocation class allows for referencing datasets stored in the BMRbig database.
  • All references to the old PDB-Dev database are now updated to PDB-IHM.

Full Changelog: https://github.com/ihmwg/python-ihm/compare/1.7...1.8

- Python
Published by benmwebb over 1 year ago

ihm - python-ihm 1.7 release

  • 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: https://github.com/ihmwg/python-ihm/compare/1.6...1.7

- Python
Published by benmwebb over 1 year ago

ihm - python-ihm 1.6 release

  • 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: https://github.com/ihmwg/python-ihm/compare/1.5...1.6

- Python
Published by benmwebb over 1 year ago

ihm - python-ihm 1.5 release

  • 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: https://github.com/ihmwg/python-ihm/compare/1.4...1.5

- Python
Published by benmwebb over 1 year ago

ihm - python-ihm 1.4 release

  • 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: https://github.com/ihmwg/python-ihm/compare/1.3...1.4

- Python
Published by benmwebb almost 2 years ago

ihm - python-ihm 1.3 release

  • 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: https://github.com/ihmwg/python-ihm/compare/1.2...1.3

- Python
Published by benmwebb almost 2 years ago

ihm - python-ihm 1.2 release

  • 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: https://github.com/ihmwg/python-ihm/compare/1.1...1.2

- Python
Published by benmwebb almost 2 years ago

ihm - python-ihm 1.1 release

  • 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: https://github.com/ihmwg/python-ihm/compare/1.0...1.1

- Python
Published by benmwebb about 2 years ago

ihm - python-ihm 1.0 release

  • 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: https://github.com/ihmwg/python-ihm/compare/0.43...1.0

- Python
Published by benmwebb over 2 years ago

ihm - python-ihm 0.43 release

  • 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: https://github.com/ihmwg/python-ihm/compare/0.42...0.43

- Python
Published by benmwebb over 2 years ago

ihm - python-ihm 0.42 release

  • 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: https://github.com/ihmwg/python-ihm/compare/0.41...0.42

- Python
Published by benmwebb over 2 years ago

ihm - python-ihm 0.41 release

  • More complete support for oligosaccharides, in particular correct numbering for atoms in atom_site, and the addition of some data items to the output which are required for full dictionary compliance.

Full Changelog: https://github.com/ihmwg/python-ihm/compare/0.40...0.41

- Python
Published by benmwebb over 2 years ago

ihm - python-ihm 0.40 release

  • Basic support for oligosaccharides is now provided. New classes are provided to describe saccharide chemical components (ihm.SaccharideChemComp and subclasses). Unlike polymers and non-polymers, oligosaccharides can be branched, and a new ihm.BranchLink class allows the linkage between individual components to be described.
  • A summary report of the system can now be produced by calling ihm.System.report. This can help to reveal errors or inconsistencies, and will warn about missing data that may not be technically required for a compliant mmCIF file, but is usually expected to be present.
  • ihm.metadata.MRCParser now uses the new EMDB API to extract version information and details for electron density map datasets.
  • RPM packages are now available for recent versions of Fedora and RedHat Enterprise Linux.

Full Changelog: https://github.com/ihmwg/python-ihm/compare/0.39...0.40

- Python
Published by benmwebb over 2 years ago

ihm - python-ihm 0.39 release

  • ihm.location.DatabaseLocation no longer accepts a db_name parameter. Derived classes (such as ihm.location.PDBLocation) should be used instead; the base class should only be used for "other" databases that are not described in the IHM dictionary (#116).
  • Bugfix: AlphaFold models in PDB format are no longer categorized by ihm.metadata.PDBParser as being deposited in the PDB database with an empty accession code.

Full Changelog: https://github.com/ihmwg/python-ihm/compare/0.38...0.39

- Python
Published by benmwebb almost 3 years ago

ihm - python-ihm 0.38 release

  • Convenience classes are added to describe datasets stored in the Model Archive, iProX, and AlphaFoldDB repositories (ihm.location.ModelArchiveLocation, ihm.location.IProXLocation, and ihm.location.AlphaFoldDBLocation respectively).
  • The new class ihm.metadata.CIFParser can be used to extract metadata from starting models in mmCIF format. It is currently in development and only supports model metadata from PDB or Model Archive at this time.
  • Line wrapping of output mmCIF files can now be turned if desired using ihm.dumper.set_line_wrap (by default files are wrapped to 80 characters if possible).
  • The make-mmcif.py utility script now allows for the name of the output mmCIF file to be overridden (#115).

Full Changelog: https://github.com/ihmwg/python-ihm/compare/0.37...0.38

- Python
Published by benmwebb about 3 years ago

ihm - python-ihm 0.37 release

  • Convenience classes are added to describe ensemble FRET datasets (ihm.dataset.EnsembleFRETDataset) and datasets stored in the jPOSTrepo repository (ihm.location.JPOSTLocation).
  • Related depositions can now be grouped using the ihm.Collection class.
  • The ihm.model.Ensemble class has a new superimposed attribute to indicate whether the grouped models are structurally aligned.

Full Changelog: https://github.com/ihmwg/python-ihm/compare/0.36...0.37

- Python
Published by benmwebb over 3 years ago

ihm - python-ihm 0.36 release

  • When reading a file that references external files, preserve any information on the size of those files (#104).
  • When reading a file containing models not in a model group, preserve any information on the number of models deposited (#105).
  • Bugfix: ihm.dictionary.read now correctly handles dictionaries that define a category after data items in that category (#107).

Full Changelog: https://github.com/ihmwg/python-ihm/compare/0.35...0.36

- Python
Published by benmwebb over 3 years ago

ihm - python-ihm 0.35 release

  • Author names now use PDB style ("Lastname, A.B.") by default rather than PubMed style ("Lastname AB") (#95).
  • Asyms containing multiple water molecules should now be correctly handled (previously every water molecule in the output atom_site table was given the same auth_seq_id). Use the new ihm.WaterAsymUnit class to create an asym containing waters (#98).
  • Masses for all elements are now included, so that _entity.formula_weight can be correctly populated for ligands (#99).
    • Bugfix: ihm.analysis.Analysis objects are now read correctly from input files when two objects share the same ID but are part of different protocols (#101).

Full Changelog: https://github.com/ihmwg/python-ihm/compare/0.34...0.35

- Python
Published by benmwebb over 3 years ago

ihm - python-ihm 0.34 release

  • Strings that start with STAR reserved words such as stop_ are now quoted to help some readers such as the GEMMI library (ihmwg/python-modelcif#25).
  • If an input file defines a chemical descriptor with an empty name but also defines linker_type, use that to fill in the name (#91).
  • ihm.ChemComp now allows for chemical components to be defined in a chemical component dictionary (CCD) outside of the wwPDB CCD. This is not used in python-ihm itself but can be used in python-modelcif.
  • Bugfix: if a read mmCIF file defines a complete assembly, do not overwrite its name and description on output (#92).
  • Bugfix: only allow clustering methods/features that are supported by the underlying IHM dictionary for ihm.model.Ensemble (#94).
  • Bugfix: categories such as _struct that are not typically looped now support multi-line strings (ihmwg/python-modelcif#27).

Full Changelog: https://github.com/ihmwg/python-ihm/compare/0.33...0.34

- Python
Published by benmwebb almost 4 years ago

ihm - python-ihm 0.33 release

  • Improve reading of mmCIF files with incomplete data (#86, #87) or with categories in an unexpected order (#85).
  • Bugfix: fix sanity check for multiple atoms with the same atomid and seqid to handle bulk water (where such duplicates are OK) (#88).

- Python
Published by benmwebb almost 4 years ago

ihm - python-ihm 0.32 release

  • ihm.protocol.Step now takes an ensemble flag, to indicate whether the modeling involved an ensemble, and which defaults to True if the system contains at least one ihm.model.Ensemble (#83).
  • When reading an incomplete mmCIF file, such as that generated by some versions of PyMOL, python-ihm will now fill in missing entity-related information by guessing the sequence from the atom_site table (#67).
  • Bugfix: ihm.flr.RefMeasurementGroup objects are now read from mmCIF files correctly.

- Python
Published by benmwebb about 4 years ago

ihm - python-ihm 0.31 release

  • The ihm.dumper.IgnoreVariant class can now be used to exclude selected categories from the mmCIF/BinaryCIF output.
  • The _pdbx_nonpoly_scheme CIF table should now fully comply with the PDBx dictionary.
  • Atoms are now checked at file-output time to ensure that a given model chain does not contain multiple atoms with the same atomid and seqid (#81).

- Python
Published by benmwebb about 4 years ago

ihm - python-ihm 0.30 release

  • Add support for a long description of the system (like an abstract) using struct.pdbxmodeldetails (#80).
  • Bugfix: correctly read mmCIF files with missing entity.type.

- Python
Published by benmwebb about 4 years ago

ihm - python-ihm 0.29 release

  • Output mmCIF files containing non-polymers should now validate against the PDBx dictionary (#76).
  • Bugfix: non-polymers that are erroneously marked as polymers in the input mmCIF can now be read in without causing a Python exception (#78).
  • Bugfix: strings starting with an underscore (e.g. chain names) are now quoted in mmCIF output to conform to the CIF syntax (#75).

- Python
Published by benmwebb about 4 years ago

ihm - python-ihm 0.28 release

  • ihm.Citation now takes a is_primary argument, which can be used to denote the most pertinent publication for the modeling.
  • Improved support for non-standard residues, and for standard amino acids used as nonpolymers.

- Python
Published by benmwebb about 4 years ago

ihm - python-ihm 0.27 release

  • Minor documentation improvements.
  • Add support for the _struct.pdbx_structure_determination_methodology mmCIF data item.

- Python
Published by benmwebb over 4 years ago

ihm - python-ihm 0.26 release

  • ihm.dumper.write and ihm.reader.read both now take a variant argument which can be used to control the set of tables that are read/written. This can be used by other libraries (such as python-ma) to support other mmCIF extensions.

- Python
Published by benmwebb over 4 years ago

ihm - python-ihm 0.25 release

  • ihm.dictionary.Dictionary.validate will now report errors for any keywords or categories in the file that are not present in the dictionary.
  • ihm.LPeptideAlphabet now supports the ASX and GLX ambiguous residue types.

- Python
Published by benmwebb over 4 years ago

ihm - python-ihm 0.24 release

  • ihm.AsymUnit now supports insertion codes in its auth_seq_id_map. The target of this mapping can either be an author-provided residue number (as previously) or a 2-element tuple containing this number and an insertion code.
  • ihm.AsymUnit now allows the PDB or author-provided strand/chain ID to be different from the regular ID.
  • Bugfix: if two ihm.dictionary.Dictionary objects both contain information about a given category, adding the two dictionaries together now combines the category information, rather than just using that from one dictionary.
  • Bugfix: ihm.dictionary.Dictionary should now be able to validate BinaryCIF files containing integer or float values (#66).

- Python
Published by benmwebb over 4 years ago

ihm - python-ihm 0.23 release

  • Bugfix: _struct_ref.pdbx_seq_one_letter_code is now treated as the subset of the reference (e.g. UniProt) sequence that overlaps with our Entities, not the entire sequence (#64).

- Python
Published by benmwebb over 4 years ago

ihm - python-ihm 0.22 release

  • The ihm.Software class now allows a citation for the software to be provided.
  • A new ihm.citations module contains citations for some packages that are commonly used in integrative modeling.

- Python
Published by benmwebb over 4 years ago

ihm - python-ihm 0.21 release

  • BinaryCIF files now use UTF8 msgpack strings for all text, rather than raw bytes. This should make python-ihm's BinaryCIF files interoperable with those used by, e.g., CoordinateServer.
  • Output mmCIF files now include author-provided numbering (authseqid) for atoms in the atomsite table. This should help packages that don't read the pdbxpolyseqscheme table to show the desired residue numbering (#61).

- Python
Published by benmwebb almost 5 years ago

ihm - python-ihm 0.20 release

  • Support for Python 2.6 has been dropped. The library needs Python 2.7 or Python 3.
  • Bugfix: correctly read in multiline reference sequence one-letter codes.
  • Bugfix: the reader is now more tolerant of omitted or unknown values (. or ?) in input mmCIF files.

- Python
Published by benmwebb about 5 years ago

ihm - python-ihm 0.19 release

  • A convenience class is added to describe datasets stored in the ProXL database (:class:ihm.location.ProXLLocation).

- Python
Published by benmwebb about 5 years ago

ihm - python-ihm 0.18 release

  • Update to match latest FLR dictionary.
  • Add a simple utility (util/make-mmcif.py) to make a minimal compliant IHM mmCIF file, given an mmCIF file (potentially just coordinates) as input.
  • Bugfix: the full residue range spanned by a starting model is now reported, rather than just the subset that is mapped to one or more templates (#55).
  • Bugfix: handle TrEMBL UniProt sequences (#57).

- Python
Published by benmwebb over 5 years ago

ihm - python-ihm 0.17 release

  • Convenience classes are added to describe hydrogen/deuterium exchange data (ihm.dataset.HDXDataset) and datasets stored in the PDB-Dev database (ihm.location.PDBDevLocation).
  • Multiple ihm.restraint.CrossLinkPseudoSite objects can now be assigned to a given ihm.restraint.CrossLink.
  • Bugfix: the ihm.dataset.Dataset base class now has a type of "Other" rather than "unspecified" to conform with the latest IHM dictionary.

- Python
Published by benmwebb almost 6 years ago

ihm - python-ihm 0.16 release

  • ihm.reader.read no longer discards models read from non-IHM mmCIF files; they are instead placed in their own ihm.model.ModelGroup.
  • Bugfix: both the pure Python and C-accelerated mmCIF readers are now more robust, able to handle files in binary mode (e.g. from opening a URL) and in Unicode (mmCIF files are supposed to be ASCII but python-ihm should handle any encoding Python supports).

- Python
Published by benmwebb about 6 years ago

ihm - python-ihm 0.15 release

  • ihm.dataset.Dataset objects that derive from another dataset can now record any transformation involved; see ihm.dataset.TransformedDataset.
  • ihm.metadata.PDBParser now extracts basic metadata from PDB files generated by SWISS-MODEL.
  • An ihm.Entity can now be linked to one or more reference databases (e.g. UniProt). See the classes in the :mod:ihm.reference module.

- Python
Published by benmwebb about 6 years ago

ihm - python-ihm 0.14 release

  • A cross-link can now use pseudo sites to represent one or both ends of the link. The new ihm.restraint.CrossLinkPseudoSite object is used when the end of the cross-link is not represented in the model but its position is known (e.g. it may have been approximated given the position of nearby residues).
  • ihm.restraint.PseudoSiteFeature now references an underlying ihm.restraint.PseudoSite, allowing a single pseudo site to be shared between a feature and a cross-link if desired.
  • ihm.model.Ensemble now supports describing subsamples from which the ensemble was constructed; see ihm.model.Subsample.
  • Bugfix: ihm.Citation.from_pubmed_id now works correctly when the journal volume or page range are empty, or the page "range" is just a single page.

- Python
Published by benmwebb over 6 years ago

ihm - python-ihm 0.13 release

  • ihm.reader.read has a new optional reject_old_file argument. If set, it will raise an exception if asked to read a file that conforms to too old a version of the IHM extension dictionary.
  • Definitions for the DHSO and BMSO cross-linkers are now provided in the ihm.cross_linkers module.

- Python
Published by benmwebb over 6 years ago

ihm - python-ihm 0.12 release

  • ihm.restraint.ResidueFeature objects can now act on one or more Residue objects, which act equivalently to 1-residue ranges (AsymUnitRange or EntityRange).
  • The new ihm.dataset.GeneticInteractionsDataset class and the mic_value argument to ihm.restraint.DerivedDistanceRestraint can be used to represent restraints from genetic interactions, such as point-mutant epistatic miniarray profile (pE-MAP) data.

- Python
Published by benmwebb over 6 years ago

ihm - python-ihm 0.11 release

  • ihm.Assembly objects can now only contain AsymUnit and AsymUnitRange objects (not Entity or EntityRange).
  • Bugfix: ensembles that don't reference a ihm.model.ModelGroup no longer cause the reader to create bogus empty model groups.

- Python
Published by benmwebb over 6 years ago

ihm - python-ihm 0.10 release

  • Features (ihm.restraint.AtomFeature, ihm.restraint.ResidueFeature, and ihm.restraint.NonPolyFeature), which previously could select part or all of an ihm.AsymUnit, can now also select parts of an Entity. A restraint acting on an entity-feature is assumed to apply to all instances of that entity.

- Python
Published by benmwebb almost 7 years ago

ihm - python-ihm 0.9 release

  • Add support for the latest version of the IHM dictionary.

- Python
Published by benmwebb about 7 years ago

ihm - python-ihm 0.8 release

  • ihm.reader.read can now be asked to warn if it encounters categories or keywords in the mmCIF or BinaryCIF file that it doesn't know about (and will ignore).
  • Predicted contacts (ihm.restraint.PredictedContactRestraint) are now supported.
  • ihm.reader.read will now read starting model coordinates and sequence difference information into the ihm.startmodel.StartingModel class. Applications that don't require coordinates can instruct the reader to ignore them with the new read_starting_model_coord flag.
  • The new ihm.flr module allows for information from Fluorescence / FRET experiments to be stored. This follows the definitions in the FLR dictionary.

- Python
Published by benmwebb about 7 years ago

ihm - python-ihm 0.7 release

  • Authors of the mmCIF file itself (_audit_author category) can now be set by manipulating ihm.System.authors. (If this list is empty on output, the set of all citation authors is used instead, as before.)
  • Any grants that supported the modeling can now be listed in ihm.System.grants.
  • A copy of SWIG is no longer needed to install stable releases of python-ihm (e.g. those installed via pip) as pre-generated SWIG outputs are included. SWIG is still needed to build directly from source code though.

- Python
Published by benmwebb about 7 years ago

ihm - python-ihm 0.6 release

  • Entity now takes an optional ihm.source.Source object to describe the method by which the sample for the entity was produced. ihm.metadata.PDBParser will also extract this information from input PDB files.
  • ihm.reader.read and ihm.dumper.write now support reading or writing additional user-defined mmCIF categories.

- Python
Published by benmwebb about 7 years ago

ihm - python-ihm 0.5 release

  • ihm.restraint.CrossLinkRestraint now takes an ihm.ChemDescriptor object rather than the name of the cross-linker used. This allows the use of novel cross-linkers (beyond those currently listed in a fixed enumeration in the IHM dictionary). ihm.ChemDescriptor allows for the chemical structure of the cross-linker to be uniquely specified, as a SMILES or INCHI string. The ihm.cross_linkers module provides chemical descriptors for some commonly-used cross-linkers.

  • Pseudo sites are now supported. ihm.restraint.PseudoSiteFeature allows points or spheres with arbitrary coordinates to be designated as features, which can then be used in ihm.restraint.DerivedDistanceRestraint.

- Python
Published by benmwebb over 7 years ago

ihm - python-ihm 0.4 release

  • Certain restraints can now be grouped using the ihm.restraint.RestraintGroup class. Due to limitations of the underlying dictionary, this only works for some restraint types (currently only ihm.restraint.DerivedDistanceRestraint) and all restraints in the group must be of the same type.
  • Bugfix: the the model's representation (see ihm.representation) need not be a strict subset of the model's ihm.Assembly. However, any ihm.model.Atom or ihm.model.Sphere objects must be covered by both the representation and the model's ihm.Assembly.
  • Bugfix: the reader no longer fails to read files that contain _entity.formula_weight.

- Python
Published by benmwebb over 7 years ago

ihm - python-ihm 0.3 release

  • The library now includes basic support for nonpolymers and water molecules. In addition to the previous support for polymers (amino or nucleic acid chains), ihm.Entity objects can now comprise ligands, water molecules, and user-defined chemical components.
  • The library can now read mmCIF dictionaries and validate mmCIF or BinaryCIF files against them. See ihm.dictionary.
  • Any ihm.model.Atom or ihm.model.Sphere objects are now checked against the model's representation (see ihm.representation); for example, an ihm.model.Atom must correspond to an ihm.representation.AtomicSegment. The representation in turn must be a subset of the model's ihm.Assembly.
  • More examples are now provided, of creating and using non-standard residue types (chemical components); representing nonpolymers; and using the C mmCIF parser in other C programs.

- Python
Published by benmwebb over 7 years ago

ihm - python-ihm 0.2 release

This release should fix installation of the package using pip: pip install ihm should now work correctly.

- Python
Published by benmwebb over 7 years ago

ihm - python-ihm 0.1 release

This is the first stable release of the python-ihm package.

This provides largely complete support for the current version of the wwPDB IHM mmCIF extension dictionary, and will read and write mmCIF and BinaryCIF files that are compliant with the PDBx and IHM dictionaries.

- Python
Published by benmwebb over 7 years ago