Skip to content

Biotite 0.41.0

Compare
Choose a tag to compare
@padix-key padix-key released this 10 Jun 08:01
c29422e

Changelog

Additions

  • Improved MOL/SDF file support in biotite.structure.mol
    • CTAB V3000 blocks can be read and written in addition to V2000 in MOLFile (#575)
    • M CHG lines in CTAB V2000 block can can be read and written in MOLFile (#589)
    • Added biotite.structure.SDFile for full support of SD files (#589)
      • SD files with multiple records (i.e. multiple molecules) ca be read and written
      • Metadata in SD files can be read and written
  • Intra-residue bonds can now be read/written to CIF/BinaryCIF files in biotite.structure.io.pdbx (#567)
    The bonds are written to the chem_comp_bond category, if include_bonds=True in set_structure()
    • Previously Intra-residue bonds were obtained from the Chemical Component Dictionary which only works for residues in the PDB
  • Added repair functions for AtomArray objects with missing or irregular annotations
    • structure.create_continuous_res_ids() renumbers residue IDs to make them continuous for each chain (#576)
    • structure.infer_elements() guesses chemical elements from atom names in case the element annotation is missing (#576)
    • structure.create_atom_names() names atoms based on their element in case the atom_name annotation is missing (#581)
  • Canonical amino acids/nucleotides can be found for arbitrary residues
    • structure.info.one_letter_code() obtains the most appropriate one-letter code (if existing) for a residue name, based on information from the Chemical Component Dictionary (#572)
    • structure.to_sequence() converts an AtomArray into a Sequence based on codes obtained via structure.info.one_letter_code() (#587)
  • Added new superimposition functions (#587)
    • structure.superimpose_without_outliers() allows superimposition with iterative conformational outlier removal to decrease the RMSD of the remaining atoms
    • structure.superimpose_homologs() finds corresponding atoms via sequence alignment and optional outlier removal
      • This function is quite robust for simply superimposing homologous proteins/nucleic acids without the need of atom filtering
    • structure.AffineTransform can be converted into a 4x4 transformation matrix containing both, translation and rotation (#576)
  • sequence.align.write_alignment_to_cigar() now includes terminal gaps in the segment sequence (usually the shorter sequence) in the CIGAR string, if include_terminal_gaps is set to True (#563)
    • The default behavior is unchanged

Changes

  • Deprecated get_header() and set_header() in biotite.structure.io.mol.MOLFile
    • MOLFile.header attribute should be used instead (#589)
  • Deprecated structure.renumber_atom_ids() and structure.renumber_res_ids()
    • renumber_res_ids() can be substituted with create_continuous_res_ids()

Fixes

  • Fixed parsing multi-line values in PDBx NextGen files in structure.io.pdbx.CIFFile (#555)
  • Fixed parsing of some operation expressions in structure.io.pdbx.get_assembly() (#555)
  • structure.io.pdb.PDBFile.set_structure() checks if input annotations exceed the fixed number of columns, preventing writing malformed PDB files (#588)
  • Trying to write malformed CIF files with categories containing no rows now raises an exception (#586)
  • Added more descriptive error message, if structure.residue() cannot find the requested residue (#580)
  • sequence.io.fasta.get_sequence() converts pyrrolyine (O) into lysine (K) when creating the Sequence object (#587)
  • Fixed indexing with an Annotation in sequence.AnnotatedSequence if annotation is on the minus strand (#577)
  • Fixed exception in biotite.structure.base_pairs() and biotite.structure.dot_bracket_from_structure() if no base paris were found (#573)