Skip to content

Releases: althonos/pyhmmer

0.4.1

06 Jun 11:52
Compare
Choose a tag to compare

Fixed

  • Main buffer not being freed in MatrixF.__dealloc__ and MatrixU8.__dealloc__ when created without owner.

Added

  • Additional configuration values for pyhmmer.plan7.Pipeline as both constructor arguments and mutable properties.
  • consensus, consensus_structure and offsets properties to pyhmmer.plan7.Profile objects.

Changed

  • Make OptimizedProfile.ssv_filter check the alphabet of the given sequence.

0.4.0

05 Jun 12:42
Compare
Choose a tag to compare

Added

  • Linear algebra primitives to expose 1D (Vector) and 2D (Matrix) contiguous buffers containing numerical values to pyhmmer.easel.
  • Documentation for the Z and domZ parameters of the pyhmmer.plan7.Pipeline constructor.
  • pyhmmer.errors.AlphabetMismatch exception deriving from ValueError to specifically report mismatching Easel alphabets where applicable.
  • scale and normalize methods to pyhmmer.plan7.HMM objects.
  • Property to access pyhmmer.plan7.Background residue frequencies as a VectorF object.
  • Property to access pyhmmer.plan7.HMM mean residue composition as a VectorF object.
  • Property to access pyhmmer.plan7.HMM probabilities and emissions as MatrixF objects.
  • ssv_filter methods to pyhmmer.plan7.OptimizedProfile to get the SSV filter score of the profile for a given sequence.
  • Several additional properties to access the pyhmmer.plan7.OptimizedProfile internals.

Removed

  • Unused report_e parameter of pyhmmer.plan7.Pipeline constructor.
  • pyhmmer.plan7.TopHits.clear method which could lead to segfault if it was called while a Hit is being held.

Changed

  • Multithreaded loop in pyhmmer.hmmer to reduce memory consumption while still yielding hits in order.
  • pyhmmer.easel.DigitalSequence.sequence property is now a VectorU8.

Fixed

  • Type annotations in pyhmmer.hmmer.
  • Potential double free in pyhmmer.plan7.HMM.command_line property setter.
  • Minor floating-point precision issues in pyhmmer.plan7.Builder constructor.
  • Segfault in TextMSA.digitize caused by esl_msa_Copy not digitizing on-the-fly like esl_sq_Copy.
  • Exceptions not being raised in some methods of pyhmmer.plan7.Profile and pyhmmer.plan7.TopHits.

0.3.1

08 May 20:29
Compare
Choose a tag to compare

Added

  • Pipeline.scan_seq method to query a database of profiles with one or more sequences.
  • transition_probabilities, match_emissions, insert_emissions properties to the HMM class, providing access to the numerical parameters of the HMM.
  • consensus_structure and consensus_accessibility properties to the HMM class to get consensus lines from the source alignment if the HMM was created from a MSA.
  • nseq and nseq_effective properties to the HMM class to get the number of training sequences and effective sequences used to build the HMM.

Changed

  • HMM.checksum is now None if the p7H_CHKSUM flag is not set.
  • Builder methods will now record sys.argv when creating a HMM.

Fixed

  • HMM.write(..., binary=False) crashing on HMMs without a consensus line. (#5). Fixed upstream in (EddyRivasLab/HMMER#236).
  • Pipeline.reset mishandling the Z and domZ values if those were detected from the number of targets.
  • pyhmmer.hmmer functions will not block until all results have been collected anymore when run in multithreaded mode.

0.3.0

11 Mar 00:04
Compare
Choose a tag to compare

Added

  • easel.MSAFile to read from a file containing
  • accession, author, name and description properties to easel.MSA objects.
  • plan7.Builder.build_msa to build a pHMM from a sequence alignment.
  • Additional methods to easel.KeyHash, allowing to use it as a dict/set hybrid.
  • Sequence.write and MSA.write methods to format a sequence or an alignment to a file handle.
  • plan7.TopHist.to_msa method to convert all the top hits of a query against a database into a multiple sequence alignment.
  • easel.MSA.sequences attribute to access individual sequences of an alignment using the collections.abc.Sequence interface.
  • easel.DigitalMSA.textize method to convert a multiple sequence alignment in digital mode to its text-mode counterpart.
  • Read-only name, accession and description properties to plan7.Profile showing attributes inherited from the HMM it was configured with.
  • plan7.HMM.consensus property, allowing to access the consensus sequence of a pHMM.
  • plan7.HMM equality implementation, using zero tolerance.
  • plan7.Pipeline.search_msa to query a MSA against a sequence database.
  • easel.Sequence.reverse_complement method allowing to reverse-complement inplace or to build a copy.
  • errors.AlphabetMismatch exception for use in cases where an alphabet is expected but not matched by the input.
  • hmmer.nhmmer function with the same behaviour as hmmer.phmmer, except it expects inputs with a DNA alphabet.

Fixed

  • plan7.Builder.copy not copying some parameters correctly, causing pyhmmer.hmmer.phmmer to give inconsistent results in multithreaded mode.
  • easel.Bitfield not properly handling index overflows.
  • Documentation not rendering for the __init__ method of all classes.

Changed

  • plan7.Builder gap-open and gap-extend probabilities are now set on instantiation and depend on the alphabet type.
  • Constructors for easel.TextMSA and easel.DigitalMSA, which can now be given an iterable of easel.Sequence objects to store in the alignment.

Removed

  • Unimplemented easel.SequenceFile.fetch and easel.SequenceFile.fetchinto methods.

0.2.2

04 Mar 01:37
Compare
Choose a tag to compare

Fixed

  • Linking issues on OSX caused by aggressive stripping of intermediate libraries.
  • plan7.Builder RNG not reseeding between different HMMs.

0.2.1

29 Jan 16:05
Compare
Choose a tag to compare

Added

  • pyhmmer.plan7.HMM.checksum property to get the 32-bit checksum of an HMM.

0.2.0

21 Jan 13:58
Compare
Choose a tag to compare

Added

  • pyhmmer.plan7.Builder class to handle building a HMM from a sequence.
  • Pipeline.search_seq to query a sequence against a sequence database.
  • psutil dependency to detect the most efficient thread count for hmmsearch based on the number of physical CPUs.
  • pyhmmer.hmmer.phmmer function to run a search of query sequences against a sequence database.

Changed

  • Pipeline.search was renamed to Pipeline.search_hmm for disambiguation.
  • libeasel.random sequences do not require the GIL anymore.
  • Public API now have proper signature annotations.

Fixed

  • Inaccurate exception messages in Pipeline.search_hmm.
  • Unneeded RNG reallocation, replaced with re-initialisation where possible.
  • SequenceFile.__next__ not working after being set in digital mode.
  • sequences argument of hmmsearch now only requires a typing.Collection[DigitalSequence] instead of a typing.Collection[Sequence] (not more __getitem__ needed).

Removed

  • hits argument to Pipeline.search_hmm to reduce risk of issues with TopHits reuse.
  • Broken alignment coordinates on Domain classes.

0.1.4

15 Jan 14:53
Compare
Choose a tag to compare

Added

  • DigitalSequence.textize to convert a digital sequence to a text sequence.
  • DigitalSequence.__init__ method allowing to create a digital sequence from any object implementing the buffer protocol.
  • Alignment.hmm_accession property to retrieve the accession of the HMM in an alignment.

0.1.3

08 Jan 14:13
v0.1.3
Compare
Choose a tag to compare

Fixed

  • Compilation issues in OSX-specific Cython code.

0.1.2

07 Jan 16:26
v0.1.2
Compare
Choose a tag to compare

Fixed

  • Required Cython files not being included in source distribution.