Releases: althonos/pyhmmer
Releases · althonos/pyhmmer
0.4.1
Fixed
- Main buffer not being freed in
MatrixF.__dealloc__
andMatrixU8.__dealloc__
when created without owner.
Added
- Additional configuration values for
pyhmmer.plan7.Pipeline
as both constructor arguments and mutable properties. consensus
,consensus_structure
andoffsets
properties topyhmmer.plan7.Profile
objects.
Changed
- Make
OptimizedProfile.ssv_filter
check the alphabet of the given sequence.
0.4.0
Added
- Linear algebra primitives to expose 1D (
Vector
) and 2D (Matrix
) contiguous buffers containing numerical values topyhmmer.easel
. - Documentation for the
Z
anddomZ
parameters of thepyhmmer.plan7.Pipeline
constructor. pyhmmer.errors.AlphabetMismatch
exception deriving fromValueError
to specifically report mismatching Easel alphabets where applicable.scale
andnormalize
methods topyhmmer.plan7.HMM
objects.- Property to access
pyhmmer.plan7.Background
residue frequencies as aVectorF
object. - Property to access
pyhmmer.plan7.HMM
mean residue composition as aVectorF
object. - Property to access
pyhmmer.plan7.HMM
probabilities and emissions asMatrixF
objects. ssv_filter
methods topyhmmer.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 ofpyhmmer.plan7.Pipeline
constructor. pyhmmer.plan7.TopHits.clear
method which could lead to segfault if it was called while aHit
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 aVectorU8
.
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 byesl_msa_Copy
not digitizing on-the-fly likeesl_sq_Copy
. - Exceptions not being raised in some methods of
pyhmmer.plan7.Profile
andpyhmmer.plan7.TopHits
.
0.3.1
Added
Pipeline.scan_seq
method to query a database of profiles with one or more sequences.transition_probabilities
,match_emissions
,insert_emissions
properties to theHMM
class, providing access to the numerical parameters of the HMM.consensus_structure
andconsensus_accessibility
properties to theHMM
class to get consensus lines from the source alignment if the HMM was created from a MSA.nseq
andnseq_effective
properties to theHMM
class to get the number of training sequences and effective sequences used to build the HMM.
Changed
HMM.checksum
is nowNone
if thep7H_CHKSUM
flag is not set.Builder
methods will now recordsys.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 theZ
anddomZ
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
Added
easel.MSAFile
to read from a file containingaccession
,author
,name
anddescription
properties toeasel.MSA
objects.plan7.Builder.build_msa
to build a pHMM from a sequence alignment.- Additional methods to
easel.KeyHash
, allowing to use it as adict
/set
hybrid. Sequence.write
andMSA.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 thecollections.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
anddescription
properties toplan7.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 ashmmer.phmmer
, except it expects inputs with a DNA alphabet.
Fixed
plan7.Builder.copy
not copying some parameters correctly, causingpyhmmer.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
andeasel.DigitalMSA
, which can now be given an iterable ofeasel.Sequence
objects to store in the alignment.
Removed
- Unimplemented
easel.SequenceFile.fetch
andeasel.SequenceFile.fetchinto
methods.
0.2.2
0.2.1
0.2.0
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 forhmmsearch
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 toPipeline.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 ofhmmsearch
now only requires atyping.Collection[DigitalSequence]
instead of atyping.Collection[Sequence]
(not more__getitem__
needed).
Removed
hits
argument toPipeline.search_hmm
to reduce risk of issues withTopHits
reuse.- Broken alignment coordinates on
Domain
classes.
0.1.4
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.