Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Unreleased¶
[v1.1.2] - 2022-08-31¶
Changed¶
Use the
vbicqArm intrinsic in the NEON implementation to combinevandqandvmvnq.
Fixed¶
Prevent direct instantiation of
NodeandGeneobjects from Python code.Configuration of platform-specific NEON flags in
setup.pynot being applied to the linker.
v1.1.1 - 2022-07-08¶
Fixed¶
Some
cpu_featuressource files not being included in source distribution.
v1.1.0 - 2022-06-09¶
Changed¶
OrfFinder.traincan now be given more than one sequence argument to train on contigs from an unclosed genome.Updated
cpu_featurestov0.7.0and added hardware detection of NEON features on Linux Aarch64 platforms.
v1.0.2 - 2022-05-13¶
Fixed¶
Detection of Arm64 platform in
setup.py(#16).
v1.0.1 - 2022-04-28¶
Changed¶
pyrodigal.clinow concatenates training sequences the same way as Prodigal does.
v1.0.0 - 2022-04-20¶
Stable version, to be published in the Journal of Open-Source Software.
Added¶
pickleprotocol implementation forNodes,TrainingInfo,OrfFinder,Sequence,MasksandGenesobjects.Buffer protocol implementation for
Sequence, allowing access to raw digits.__eq__and__repr__magic methods toMaskobjects.
Changed¶
Optimized code used for region masking to avoid searching for the same mask repeatedly.
TRANSLATION_TABLESandMETAGENOMIC_BINSare now exposed as constants in the toppyrodigalmodule.Refactored connection scoring into different functions based on the type (start/stop) and strand (direct/reverse) of the node being scored.
Changed the growth factor for dynamic arrays to be the same as the one used in CPython
listbuffers.
v0.7.3 - 2022-04-06¶
Added¶
Gene.scoreproperty to get the gene score as reported in the score data string.
Fixed¶
OrfFinder.find_genesnot producing consistent results across runs in meta mode (#13).OrfFinder.find_genesreturningNodeswith incomplete score information.
v0.7.2 - 2022-03-15¶
Changed¶
Improve performance of
mer_ndxandscore_connectionusing dedicated implementations with better branch prediction.Mark arguments as
constin C code where possible.
Fixed¶
Signatures of Cython classes not displaying properly because of the
embedsignaturedirective._sequence.hfunctions not being inlined as expected.
v0.7.1 - 2022-03-14¶
Changed¶
Rewrite internal
Sequencecode using inlined functions to increase performance when the strand is known.
Fixed¶
Nodes.copypotentially failing on empty collections after trying to allocate 0 bytes.TestGenes.test_write_scoresfailing on some machines because of float rounding issues.Gene.translateignoring theunknown_residueargument value and always using"X".Memory leak in
Pyrodigal.traincause by memory not being freed after building the GC frame plot.
v0.7.0 - 2022-03-12¶
Added¶
Support for setting a custom minimum gene length in
pyrodigal.OrfFinder.Genes.write_scoresmethod to write the node scores to a file.Gene.__repr__andNode.__repr__methods to display some useful attributes.Sequence.__str__method to get back a nucleotide string from aSequenceobject.
Changed¶
Use a more compact data structure to store
Genedata.
Fixed¶
Nodes._calc_orf_gcreading nucleotides after the sequence end when computing GC content for edge nodes.
Removed¶
pyrodigal.Pyrodigalclass (usepyrodigal.OrfFinderinstead).pyrodigal.Predictionsclass (functionality merged intopyrodigal.Genes).
v0.6.4 - 2021-12-23¶
Added¶
loadanddumpmethods toTrainingInfofor storing and loading a raw training info structure.Support for creating an
OrfFinderpre-configured with a training info.-tand-nflags to the CLI.
v0.6.3 - 2021-12-23¶
Added¶
pyrodigalcommand line script exposing a CLI mimicking the originalprodigalbinary.write_gff,write_genesandwrite_translationsmethods topyrodigal.Predictionsto write the predictions results to a file in different formats.Implementation for masking regions of unknown nucleotides in input sequences.
Changed¶
Renamed
pyrodigal.Pyrodigalclass topyrodigal.OrfFinder.
Fixed¶
setup.pybuild different SIMD implementations with the same set of feature flags, causing compilers to re-optimize the SIMD implementations.
v0.6.2 - 2021-09-25¶
Added¶
Sphinx documentation with small install guide and API reference.
Fixed¶
setup.pynot detecting SSE2 and AVX2 build support because of a linker error.
Changed¶
Build OSX extension without AVX2 support since runtime detection of AVX2 to avoid the
Illegal Instruction: 4bug on older CPUs.
v0.6.1 - 2021-09-24¶
Fixed¶
Source distribution lacking C files necessary for building
cpu_features.
v0.6.0 - 2021-09-23¶
Added¶
SIMD code to build an index of which connections can be skipped when scoring node connections in the dynamic programming routine (#6).
v0.5.4 - 2021-09-18¶
Added¶
Prediction.confidencemethod to compute the confidence for a prediction like reported in Prodigal’s GFF output.Prediction.sequencemethod get the nucleotide sequence of a predicted gene (#4).
Changed¶
Replaced internal storage of input sequences to use a byte array instead of a bitmap.
Fixed¶
Extract
Prediction.gc_contnumber directly from the start node instead of the text representation to get full accuracy.Prodigal bug causing nodes on the reverse strand to always receive a penalty instead of penalizing only small ORFs (hyattpd/Prodigal#88).
v0.5.3 - 2021-09-12¶
Fixed¶
Prediction.translatenot translating the last unknown codon properly for genes on the direct strand.
v0.5.2 - 2021-09-11¶
Changed¶
Make
Pyrodigal.trainreturn a reference to the newly createdTrainingInfofor inspection if needed.Reimplement
add_nodesandadd_genesto use a growable array instead of counting and pre-allocating the C arrays.
Fixed¶
Inconsistent handling of unknown nucleotides in input sequences and gene translations.
v0.5.1 - 2021-09-04¶
Added¶
Additional
Geneproperties to access the score
Changed¶
Use more efficient
PyUnicodemacros when reading or creating a string containing a nucleotide or a protein sequence.Release the GIL when creating a bitmap for an
strgiven as input toPyrodigal.find_genes.Release the GIL when creating the protein sequence returned by
Gene.translate.
Fixed¶
Pyrodigal.find_genesandGene.translatenot behaving like Prodigal when handling sequences with unknown nucleotides.
v0.5.0 - 2021-06-15¶
Added¶
pyrodigal.TrainingInfoclass exposing variables obtained during training as an attribute toPyrodigal,GeneandGenesinstance.Support for passing objects implementing the buffer protocol to
Pyrodigal.find_genesandPyrodigal.traininstead of requiringstrsequences.
Fixed¶
Potential data race on training info in case a
Gene.translatewith a non-default translation table was being translated at the same time as aPyrodigal.find_genescall.Spurious handling of Unicode strings causing potential issues on platform using a different base encoding.
v0.4.7 - 2021-04-09¶
Fixed¶
Pyrodigal.find_genessegfaulting on some sequences when called insinglemode (#2).MemoryErrorpotentially not being properly raised on allocation issues for sequence bitmaps.
v0.4.6 - 2021-03-05¶
Changed¶
Tests are now in the
pyrodigal.testsmodule and can be run after a site install.
Fixed¶
Pyrodigal.find_genesstalling on sequences shorter than 3 nucleotides.
v0.4.5 - 2021-03-03¶
Fixed¶
Compilation of OSX and Windows wheels.
v0.4.4 - 2021-03-03¶
Fixed¶
Mark package as OS-independent.
Added¶
Support for Python 3.5.
Compilation of PyPy wheels on OSX.
v0.4.3 - 2021-03-01¶
Fixed¶
Buffer overflow when running in
metamode on a sequence too small to have any dynamic programming nodes.
v0.4.2 - 2021-02-07¶
Fixed¶
Buffer overflow coming from the node array, caused by an incorrect estimation of the node count from the sequence length.
v0.4.1 - 2021-01-07¶
Removed¶
Python 3.5 from the project metadata (the code was only compatible with Python 3.6+ already because of f-strings).
Fixed¶
Broken linking of static
libprodigalagainst the_pyrodigalextension on some OSX environments (bioconda/bioconda-recipes#25568).
v0.4.0 - 2021-01-06¶
Changed¶
trans_tablekeyword argument toPyrodigal.trainhas been renamed totranslation_table.
Added¶
Option to change the translation table to any allowed number in
Gene.translate(#1).
v0.3.2 - 2020-11-27¶
Fixed¶
Broken compilation of PyPy wheels in Travis-CI.
v0.3.1 - 2020-11-27¶
Added¶
Link to Zenodo record in
README.md.Typing :: Typedclassifier to the PyPI metadata.Explicit support for Python 3.9.
Changed¶
Streamlined compilation process when building from source distribution.
v0.3.0 - 2020-09-07¶
Added¶
Thread-safety for all
Pyrodigalmethods
Fixed¶
Reduced total amount of memory used to allocated dynamic programming nodes for a given sequence.
v0.2.4 - 2020-09-04¶
Added¶
Precompiled wheels for Windows x86-64 platform.
Changed¶
Compilation of large
Prodigal/training.cfile is now done in chunks and usesstatic constto reduce build time.
v0.2.3 - 2020-08-09¶
Fixed¶
Buffer overflow issue with Pyrodigal in
closed=Falsemode.
v0.2.2 - 2020-07-14¶
Added¶
Access to the translation table of a
Geneobject.
v0.2.1 - 2020-05-29¶
Fixed¶
Memory issues causing PyPy to crash when using
Pyrodigalin single mode.
v0.2.0 - 2020-05-28¶
Added¶
Support for Prodigal’s single mode.
v0.1.1 - 2020-04-30¶
Added¶
Distribution of CPython wheels for ManyLinux2010 and OSX platforms.
v0.1.0 - 2020-04-27¶
Initial release.