Releases: althonos/pyhmmer
Releases · althonos/pyhmmer
0.4.11
Added
plan7.HMMFile.read
method to read a singleplan7.HMM
from anplan7.HMMFile
(instead of usingnext
).closed
property oneasel.SequenceFile
,easel.MSAFile
andplan7.HMMFile
to mark whether a file object is closed.plan7.HMMFile.is_pressed
method to check whether a HMM file has associated pressed data.plan7.HMMFile.optimized_profiles
methods to read theplan7.OptimizedProfile
entries in anplan7.HMMFile
is there are associated pressed data available.- Getters for the
name
,accession
,description
,consensus
,consensus_structure
,evalue_parameters
andcutoffs
properties of aplan7.OptimizedProfile
. plan7.OptimizedProfile.__eq__
implementation to compare two optimized profiles.__sizeof__
implementations forplan7.OptimizedProfile
andplan7.Profile
to get the allocated size of a profile.
Fixed
- Double-free caused by the Cython cycle breaking feature on several view types (
easel.Randomness
,easel.Vector
,easel.Matrix
,plan7.Cutoffs
,plan7.EvalueParameters
,plan7.Offsets
,plan7.Trace
) plan7.Hit.description
using the pointer to the accession string erroneously, causing occasional NULL dereference.plan7.OptimizedProfile.copy
performing a shallow copy instead of a deep copy as expected.
Changed
pyhmmer.hmmer
type annotations now explicit support forplan7.Profile
orplan7.OptimizedProfile
inputs where applicable.
0.4.10
Added
entropy
andrelative_entropy
methods toeasel.VectorF
to compute the Shannon entropy of a vector and the Kullback-Leibler divergence of two vectors.mean_match_entropy
,mean_match_information
andmean_match_relative_entropy
methods toplan7.HMM
to get information statistics of an HMM model.match_occupancy
method toplan7.HMM
to compute the occupancy for each match state as aneasel.VectorF
.
Fixed
plan7.Builder.build_msa
using the gap-open and gap-extend probabilities instead of the MSA itself to compute the transition probabilities for the new HMM.
Changed
plan7.Builder.build
will now only load the score system once and reuse it unless a different score system is requested between calls.
0.4.9
Added
plan7.ScoreData
class to store the substitution scores and maximal extensions for a long target search.plan7.LongTargetsPipeline
to run searches on targets longer than 100,000 residues.Alphabet
methods to check whether anAlphabet
object is a DNA, RNA, nucleotide or protein alphabet.window_length
andwindow_beta
arguments toplan7.Builder
to set the max length of nucleotideHMM
created by builder objects.
Changed
pyhmmer.hmmer.nhmmer
now uses aLongTargetsPipeline
instead of aPipeline
to search the target sequences.pyhmmer.hmmer.nhmmer
now supportsHMM
queries in addition toDigitalSequence
andDigitalMSA
queries.pyhmmer.hmmer.phmmer
now always assumes protein queries.Z
anddomZ
attributes ofplan7.TopHits
objects is now read-only.
Fixed
nhmmer
now uses DNA as the default alphabet instead of amino acid alphabet like it did before (#12).
0.4.8
Added
- Constructor arguments and properties to
plan7.Pipeline
to support bit score thresholds instead to filter top hits. - Support for creating a
SequenceFile
and anMSAFile
using a Python file-like object instead of only supporting filenames. - Support for reading individual sequences from an MSA file with
SequenceFile
. TextMSA.alignment
to access the actual alignment as a tuple of strings.- Subtraction and division support for
easel.Vector
subclasses
Changed
plan7.Cutoffs
now support setting the bit score cutoffs, but requires both to be set or cleared at the same time.easel.Vector
will always allocate some memory when created manually to avoid having a special empty case in every vector method.pyhmmer.easel.AllocationError
now stores the size it failed to allocate, and the number of elements when allocating an array.
Fixed
TextSequence.digitize
will not raise aValueError
when the sequence contains invalid characters for the alphabet (previously was anUnexpectedError
).
0.4.7
Added
TraceAligner
,Trace
andTraces
classes topyhmmer.plan7
to get tracebacks after aligning several sequences against an HMM.pyhmmer.hmmalign
function with the same features as thehmmalign
binary from HMMER3.- Support for out-of-band pickling in
easel.Vector
andeasel.Matrix
.
Changed
- Allow creating an empty
Vector
orMatrix
by calling their constructor without arguments.
Fixed
- Potential unreported exceptions in
plan7.OptimizedProfile.write
and severalplan7.SSIWriter
methods.
0.4.6
Added
pickle
protocol foreasel.Alphabet
,easel.Bitfield
,easel.KeyHash
,easel.Vector
,easel.Matrix
andplan7.HMM
.taxonomy_id
andresidue_markups
properties toeasel.Sequence
.sum_score
property toplan7.Hit
.plan7.EvalueParameters
class to expose the e-value parameters of aplan7.HMM
or aplan7.Profile
.- Equality checks and slicing for
easel.Matrix
andeasel.Vector
. - Support for creating and manipulating zero-sized
easel
matrices and vectors. plan7.Cutoffs
class to expose the Pfam score cutoffs of aplan7.HMM
or aplan7.Profile
.- Keyword arguments to configure E-value thresholds when creating a
plan7.Pipeline
object. - Support for using model-specific thresholding options in
plan7.Pipeline
.
Changed
- Use the replace error handler when decoding error messages to skip potential decoding issues when already building an exception.
- Improve
pyhmmer.hmmer
to ensure background threads exit on aKeyboardInterrupt
. easel.VectorU8.__eq__
accepts any object implementing the buffer protocol.plan7.HMM.creation_time
now takes and returns adatetime.datetime
object, assuming the field is only ever set withasctime
.- Refactor
easel.Vector
andeasel.Matrix
and mark exposed memory as C-contiguous.
Fixed
easel.Alphabet
not reporting potential allocation errors.- Potential buffer overflow in
easel.Matrix
andeasel.Vector
when calling__init__
more than once.
0.4.5
Added
OptimizedProfile.convert
method to configure an optimized profile from aProfile
without reallocating a newP7_OPROFILE
struct.
Changed
- Rewrite the
plan7.Pipeline
search loop to avoid reacquiring the GIL between reference sequences. - Require the reference sequences to be stored in a collection (instead of an iterable) when passing them to the
search_hmm
,search_msa
andsearch_seq
methods ofplan7.Pipeline
. - Avoid reallocating a new
OptimizedProfile
every time a new HMM is passed toPipeline.search_hmm
. - Relax the GIL while sorting and thresholding
TopHits
inPipeline
search methods.
0.4.4
Added
ignore_gaps
parameter topyhmmer.plan7.SequenceFile
, allowing to skip the gap characters when reading a sequence from an ungapped format.__sizeof__
implementation for some- Dedicated check for sequence length before running the platform-specific code in
pyhmmer.plan7.Pipeline
.
Fixed
- Score system not being set in
pyhmmer.plan7.Builder.build_msa
. - Alphabet not being checked after the first sequence in
Pipeline
search and scan methods.
0.4.3
0.4.2
Added
pyhmmer.easel.Randomness
class exposing a deterministic random number generator.pyhmmer.plan7.Builder.randomness
andpyhmmer.plan7.Pipeline.randomness
attributes exposing the internal random number generator used by each object.pyhmmer.plan7.Hit.best_domain
property mapping to the highest scoring domain of a hit.pyhmmer.plan7.OptimizedProfile.rbv
property exposing match scores.pyhmmer.plan7.Domain.pvalue
andpyhmmer.plan7.Hit.pvalue
reporting the p-value for a domain or hit bitscore.
Fixed
- Dimensions of the
pyhmmer.plan7.OptimizedProfile.sbv
matrix not being properly set.