Skip to content

v0.12.0

Latest

Choose a tag to compare

@althonos althonos released this 22 Jan 19:25
· 12 commits to master since this release
v0.12.0

Added

  • Support for Windows AMD64 builds with MinGW (#92, see documentation).
  • SequenceBlock.write method to write all sequences from a block to a file.
  • SequenceBlock.total_length to compute the sum of lengths of sequences in a block.
  • Subclasses DNA, RNA and AA of pyhmmer.easel.Alphabet to allow marking the alphabet type with type annotations.
  • VectorI and MatrixI classes to pyhmmer.easel to store C int types (usually 32 bits).
  • OptimizedProfile.ssv_filter method for NEON target in addition to SSE.
  • msv_filter method to Profile and OptimizedProfile classes.
  • Background.null1 to compute the null1 lod score for an arbitrary Sequence.
  • HMMFile._file exposing the internal file-like object given to HMMFile constructor, if any (#89).
  • SSIReader.primary_keys exposing a read-only sequence of primary keys inside a SSI file.
  • SequenceFile.indexed and MSAFile.indexed to access data indexed with a SSI index (#85).

Changed

  • Setup compilation in Stable ABI mode for Python 3.12 and later.
  • Setup distribution to generate a CMake package file to facilitate usage with downstream scikit-build-core dependent packages.
  • breaking: Make most textual attributes and properties str rather than bytes (#88).
    • Turn the following properties of Sequence into str instead of bytes: accession, description, name, source.
    • Turn the following properties of MSA into str instead of bytes: accession, description, name, source, author, names, reference, model_mask, secondary_structure, surface_accessibility, posterior_probabilities.
    • Turn the following properties of HMM, Profile and OptimizedProfile into str instead of bytes: name, accession, description.
    • Turn the following properties of Alignment into str instead of bytes: hmm_name, hmm_accession, hmm_sequence, target_name, target_sequence.
    • Make SequenceBlock.indexed and MSA.indexed mapping use str for keys instead of bytes.
    • Make SSIReader and SSIWriter use str for keys and aliases instead of bytes.
  • Make DigitalSequence, DigitalSequenceBlock, DigitalMSA, SequenceFile, MSAFile, HMM, Profile, OptimizedProfileBlock, Background, Builder, Pipeline, HMMFile, HMMPressedFile generic over the alphabet type.
  • Reorganize setup so that Easel and HMMER libraries, C headers and Cython headers are installed to the Python site path.
  • Reorganize tests to skip tests in the absence of data files and remove larger test files from PyPI distributions.
  • Enforce detection of invalid buffer sizes in _from_raw_bytes class constructors of various objects.
  • Use PyUnicode_DecodeASCII to decode ASCII strings of known length instead of PyUnicode_FromString where applicable.
  • Allow passing a buffer-protocol object interpreted as an ASCII string to the TextSequence constructor.

Fixed

  • Remove hmmlogo.c from compiled HMMER sources to avoid an issue with the presence of a main function when linking.
  • Avoid using multiprocessing.Value in pyhmmer.hmmer while in single-threaded mode for improved compatibility.
  • Memory leak in Matrix caused by outdated allocation logic for zero dimensions.
  • Make HMMFile constructor pretend to stream when given a file-like object to prevent HMMER from calling fseek and ftell.
  • Incorrect declaration of Cython type declarations in various MSA property setters.
  • Ensure correct background alphabet in Pipeline constructor when given a Background as argument.
  • TopHits.merge potentially recomputing inclusion/reporting flags for hits obtained with bitscore cuttoffs.
  • SSIReader missing methods in type stubs (#85).

Removed

  • Outdated compatibility code for PyPy 3.6.
  • Support for positional arguments other than alphabet in TextMSA, DigitalMSA, TextSequence and DigitalSequence constructors.