Skip to content

Releases: althonos/pyhmmer

v0.10.5

16 Feb 14:49
v0.10.5
Compare
Choose a tag to compare

Added

  • Alignment properties to get the original lengths of the sequence and HMM being stored.
  • Hit.length property storing the length of the hit sequence (or HMM).
  • TopHits.query_length storing the length of the hit HMM (or query).
  • Alignment.posterior_probabilities property showing an encoded representation of posteriors (#59, by @arajkovic).
  • Trace.score method to compute a trace score from a given profile and sequence.
  • Alignment.__sizeof__ implementation leveraing p7_alidisplay_SizeOf.

Fixed

  • Cutoffs proxy objects not recording their owner to prevent deallocation.
  • Avoid GIL re-acquisition in GeneticCode.translate.
  • Query metadata not being recorded in Hits obtained from daemon.Client.
  • Empty MatrixU8 creation attempting zero-allocation.
  • VectorU8.zeros allocating 4x more memory than required.
  • Memory leak caused by string duplication in __getbuffer__ methods of Matrix and Vector types.

v0.10.4

29 Oct 15:31
Compare
Choose a tag to compare

Added

  • residue_markups argument to TextSequence and DigitalSequence constructors.
  • __reduce__ implementation to TextSequence, DigitalSequence, TextSequenceBlock and DigitalSequenceBlock.

Changed

  • Handling of easel I/O methods to avoid implicit GIL acquisition for error checking.

Fixed

  • Syntax errors in type annotation files.

v0.10.3

22 Oct 11:50
Compare
Choose a tag to compare

Added

  • Out-of-band pickle serialization of Bitfield objects.
  • Getters for float attributes and forward/backward parameters of OptimizedProfile.
  • InvalidHMM error raised by HMM.validate.

Changed

  • Mark HMM.zero method as noexcept.
  • Increase size of buffer for the query queue in the hmmer dispatcher.

Fixed

  • Unneeded semaphore in pyhmmer.hmmer message passing implementation.
  • Broken assertion in Bitfield._from_raw_bytes.
  • Relax tolerance of HMM validation in TraceAligner.align_traces.

v0.10.2

20 Aug 22:32
Compare
Choose a tag to compare

Fixed

  • Invalid buffer write in DigitalSequenceBlock.translate (#50).

v0.10.1

17 Aug 10:32
Compare
Choose a tag to compare

Added

  • HMM.set_consensus method to set the consensus for a method or compute it from the emission probabilities.

Fixed

  • Platform detection for MacOS and Armv7 platforms in setup.py.
  • pyhmmer.plan7.HMM constructor setting a consensus string forcefully.

v0.10.0

16 Aug 14:43
Compare
Choose a tag to compare

Added

  • Support for compiling wheels for Aarch64 and NEON-enabled Arm platforms.

Changed

Fixed

  • Patch missing PyInterpreterState_GetID preventing the package from working on PyPy 3.9.

v0.9.0

04 Aug 09:40
Compare
Choose a tag to compare

Added

  • TopHits.mode property showing from which pipeline mode (search or scan) the hits were obtained.

Changed

  • Updated the code for Cython v3.0.

Fixed

  • TopHits.merge not properly handling inclusion and reporting for domains (#46, #47, by @zdk123).

v0.8.2

07 Jun 22:30
Compare
Choose a tag to compare

Added

  • Bracket-style repr implementation to HMM, Profile and OptimizedProfile showing model alphabet, length and name.
  • MissingCutoffs and InvalidParameter exceptions inheriting ValueError.

Changed

  • Replace pthread locks with PyThread API for synchronizing models in OptimizedProfileBlock.

Fixed

  • Sequence length extraction in LongTargetsPipeline.search_hmm (#42).
  • LongTargetsPipeline.search_msa not building a HMM with Builder.build_msa.

v0.8.1

19 May 14:40
Compare
Choose a tag to compare

Added

  • HMM.validate method to ensure a HMM holds HMMER structural constraints.
  • plan7.Transitions enum with transition names for indexing HMM.transition_probabilities.

v0.8.0

01 May 14:58
Compare
Choose a tag to compare

PyHMMER has been accepted for publication in Bioinformatics. Paper accessible here: doi:10.1093/bioinformatics/btad214.

Added

  • pyhmmer.hmmer.jackhmmer function to run several JackHMMER iterative searches in parallel using multithreading (#35, by @zdk123).
  • HMM.to_profile shortcut method to allocate and configure a new Profile object.

Fixed

  • Type annotations of Pipeline.iterate_seq and Pipeline.iterate_hmm.
  • Potential memory leak on exceptions raised by HMMPressedFile.read.
  • Offsets.profile not recording offsets properly, causing pyhmmer.hmmer.hmmpress to produce invalid pressed files (#37).

Changed

  • HMM.__init__ and HMM.sample now take the Alphabet as the first argument, for consistency with the rest of the API.
  • HMM now require a name argument.

Removed

  • Deprecated ignore_gaps argument in SequenceFile.__init__.
  • Deprecated Sequence.taxonomy_id property.