Pyvolve

Latest version: v1.1.0

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

Scan your dependencies

Page 1 of 5

1.1.0

* Bug fixed related to random seed specification to `Evolver()`, including updating rng engine with `numpy` Generator method. (Issue 22)
* Added new feature to allow PAML amino-acid models to be directly provided as a model without needing to make a custom model (Issue 23)

1.0.3

A few small bug fixes:

+ Addresses deepcopy bug in model parameters
+ Ensures compatibility with Biopython >= 1.78 which has deprecated bio.alphabet (https://biopython.org/wiki/Alphabet)

1.0.2

Patch update to address a numerical tolerance bug in the ECMunrest model stationary frequencies.

1.0.1

Patch to fix a bug that caused pyvolve to crash when counting substitutions over branch lengths that are <=1e-8

1.0.0

A new major release of pyvolve! Key new features include..

1. When calling an Evolver instance, you can specify the *algorithm* of simulation to be the Gillespie ("jump chain") algorithm. Rather than exponentiating the matrix to simulate substitutions, this algorithm simulates waiting times for individual changes. **Activate with the argument `algorithm=1`**. The default (exponentiation) is `algorithm=0`.

2. Pyvolve will now track the number of substitutions which occur along each branch. These values are guaranteed to be accurate when setting `algorithm=1`, but will almost certainly be underestimates when `algorithm=0`. When `algorithm=1`, individual substitutions are directly recorded, but with `algorithm=0` the calculations are simply P-distance calculations, which might be correct at very small branch lengths but don't trust it. There are two ways to access this information:
+ call up the Evolver attribute, e.g. for a variable called `my_evolver`, as `my_evolver.branch_substitution_counts`. This will give a __dictionary__ of counts for each relevant class of substitutions (nucleotide, amino acid, synonymous changes, or custom if you are using a custom code) for each branch. If internal nodes are not labeled, `pyvolve` will do it for you; examine this by printing the processed tree with `print_tree()`.
+ specify a `countfile` when calling your Evolver instance, e.g. `countfile = "my_countfile.csv"`. This will write a CSV to that file containing all the information in the dictionary.

Happy pyvolving!

0.9.2

Identical to 0.9.1 but named to match PyPI.

Page 1 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.