Pyhmmer

Latest version: v0.10.12

Safety actively analyzes 638361 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 9

0.6.1

Added
- `pickle` protocol support for `TopHits` objects, using the HMMER network serialization.
- `TopHits.write` method to write hits to a file in tabular format.
- `query_name` and `query_accession` properties to `TopHits` objects to access the name and accession of the query that produced the hits.

Fixed
- Extraction of filename from file-like objects in the `HMMFile` constructor.
- Use `os.cpu_count` instead of `multiprocessing.cpu_count` where applicable to preserve OS scheduling.
- Wrong return type in docstring of `HMM.insert_emissions`.
- `TopHits.searched_nodes` returning the searched number of residues instead of the searched number of model nodes.
- Unsound decoding of pickled `MatrixF` or `VectorF` when data comes from a source of different endianness.

Changed
- Rewrite `pyhmmer.hmmer` threading code using `Deque` instead of `collections.Queue` to store the queries and results.
- Reduce memory consumption of `pyhmmer.hmmer` by reducing the number of semaphores and event flags used concurrently.
- Make `pyhmmer.hmmer` main threads block on query insertion rather than result retrieval to make sure worker threads are never idling.

0.6.0

Added
- `pyhmmer.daemon` module with an client implementation to communicate to a `hmmpgmd` server.
- `Pipeline.arguments` methods to get a list of CLI arguments from the parameters used to initialize the `Pipeline`.
- Setters for `name`, `accession` and `description` properties of `plan7.Hit`.
- Constructor for individual `plan7.Trace` objects outside a `plan7.Traces` list.
- `plan7.Trace.from_sequence` constructor to create a faux trace from a single sequence.
- `manually_include` and `manually_drop` methods to `plan7.Hit` for manually selecting the inclusion status of a `Hit` in a `TopHits` instance.
- `compare_ranking` method to `plan7.TopHits` for comparing the order of the hits compared to a previous run on the same targets stored in an `easel.KeyHash` object.
- `Pipeline.iterate_seq` and `Pipeline.iterate_hmm` to run iterative queries like JackHMMER.
- `repr` implementations for `easel.MSAFile`, `easel.SequenceFile` and `easel.HMMFile` showing the path or file object they were created from.
- `repr` implementation for `easel.Randomness` showing the seed and the RNG algorithm in use.
- `str` implementation for `plan7.Alignment` using HMMER original code to display a domain alignment like in search/scan results.

Changed
- `plan7.Trace.posterior_probabilities` property may now be `None` in case no memory is allocated for the posteriors in the `P7_TRACE` struct.
- `TopHits.to_msa` can now add additional sequences passed as arguments to the alignment.
- `plan7.HMMPressedFile` now raises an exception on attempts to create a new instance manually.
- `ignore_gaps` argument of `easel.SequenceFile` is now deprecated.
- `repr` implementations for `easel` types now use the fully qualified class name.

Fixed
- `easel.SequenceFile.readinto` docstring not rendering properly in documentation.
- Type annotations of `hits_included` and `hits_reported` of `plan7.TopHits` marking these properties as `bool` instead of `int`.
- Setters of `name`, `accession`, `description` and `author` properties of `easel.MSA` crashing when given `None` values.
- Exception value raised from Easel code not being properly extracted.
- Plain strings being used in example for `easel.TextSequence` and `easel.TextMSA` constructors where byte strings are expected ([20](https://github.com/althonos/pyhmmer/pull/20)).

0.5.0

Added
- `plan7.PipelineSearchTargets` to reduce the overhead when searching the same sequences several times with different. query profiles.
- `TopHits.copy` method to duplicate a `TopHits` instance.
- `TopHits.merge` method to merge hits obtained with the same query on different targets.
- Buffer protocol implementation for `pyhmmer.easel.Bitfield`.

Changed
- Renamed `TopHits.included` and `TopHits.reported` properties to `TopHits.hits_included` and `TopHits.hits_included`.
- `MSAFile` and `SequenceFile` are now directly in digital mode if they are instantiated with `digital=True`.
- `SequenceFile.parse` can now return a sequence in digital mode.
- Reorganized tests to make then runnable from a site install.

Fixed
- Usage of `memcpy` in contexts where it may have had undefined behaviour.
- `VectorF.__eq__` crashing when comparing two empty objects.
- `SequenceFile` and `MSAFile` not closing file handles when raising an error in `__init__`.

0.4.11

Added
- `plan7.HMMFile.read` method to read a single `plan7.HMM` from an `plan7.HMMFile` (instead of using `next`).
- `closed` property on `easel.SequenceFile`, `easel.MSAFile` and `plan7.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 the `plan7.OptimizedProfile` entries in an `plan7.HMMFile` is there are associated pressed data available.
- Getters for the `name`, `accession`, `description`, `consensus`, `consensus_structure`, `evalue_parameters` and `cutoffs` properties of a `plan7.OptimizedProfile`.
- `plan7.OptimizedProfile.__eq__` implementation to compare two optimized profiles.
- `__sizeof__` implementations for `plan7.OptimizedProfile` and `plan7.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 for `plan7.Profile` or `plan7.OptimizedProfile` inputs where applicable.

0.4.10

Added
- `entropy` and `relative_entropy` methods to `easel.VectorF` to compute the Shannon entropy of a vector and the Kullback-Leibler divergence of two vectors.
- `mean_match_entropy`, `mean_match_information` and `mean_match_relative_entropy` methods to `plan7.HMM` to get information statistics of an HMM model.
- `match_occupancy` method to `plan7.HMM` to compute the occupancy for each match state as an `easel.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 an `Alphabet` object is a DNA, RNA, nucleotide or protein alphabet.
- `window_length` and `window_beta` arguments to `plan7.Builder` to set the max length of nucleotide `HMM` created by builder objects.

Changed
- `pyhmmer.hmmer.nhmmer` now uses a `LongTargetsPipeline` instead of a `Pipeline` to search the target sequences.
- `pyhmmer.hmmer.nhmmer` now supports `HMM` queries in addition to `DigitalSequence` and `DigitalMSA` queries.
- `pyhmmer.hmmer.phmmer` now always assumes protein queries.
- `Z` and `domZ` attributes of `plan7.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](https://github.com/althonos/pyhmmer/issues/12)).

Page 5 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.