Skip to main content

Simulation of rooted phylogenetic trees under a given Multitype Birth–Death model.

Project description

treesimulator

Simulation of rooted phylogenetic trees under a given Multitype Birth–Death (MTBD) model. The MTBD models were introduced by Stadler & Bonhoeffer [Philos. Trans. R. Soc. B 2013].

We pay particular interest to the classical BD model, the BD Exposed-Infectious (BDEI) model, and BD with superspreading (BDSS), as they are described in [Voznica et al. 2021].

BD

3 parameters:

  • λ -- transmission rate
  • ψ -- removal rate
  • p -- sampling probability upon removal

Epidemiological parameters:

  • R0=λ/ψ -- reproduction number
  • 1/ψ -- infectious time

BDEI

2 compartments:

  • E, exposed, i.e. infected but not yet infectious
  • I, infectious

4 parameters:

  • μ -- transition rate from E to I (becoming infectious)
  • λ -- transmission rate from I to E
  • ψ -- removal rate of I
  • p -- sampling probability upon removal

Epidemiological parameters:

  • R0=λ/ψ -- reproduction number
  • 1/ψ -- infectious time
  • 1/μ -- incubation period

BDSS

2 compartments:

  • N, standard infectious individual
  • S, superspreader

6 parameters:

  • λnn -- transmission rate from N to N

  • λns -- transmission rate from N to S

  • λsn -- transmission rate from S to N

  • λss -- transmission rate from S to S

    (with a constraint that λssnssnnn)

  • ψ -- removal rate of S and of N (the same)

  • p -- sampling probability upon removal (the same for N and S)

Epidemiological parameters:

  • R0=(λnn + λss)/ψ -- reproduction number
  • 1/ψ -- infectious time
  • X=λssnssnnn -- super-spreading transmission ratio
  • f=λss/(λsn + λss) -- super-spreading fraction

Installation

To install treesimulator:

pip3 install treesimulator

Usage

Command line

BD

The following command simulates a tree with 200-500 tips under BD model, with λ=0.5, ψ=0.25, p=0.5, and saves it to a file tree.nwk, while saving the parameters to a comma-separated file params.csv:

generate_bd --min_tips 200 --max_tips 500 --la 0.5 --psi 0.25 --p 0.5 --nwk tree.nwk --log params.csv

To seee detailed options, run:

generate_bd --help

BDEI

The following command simulates a tree with 200-500 tips under BDEI model, with μ=1, λ=0.5, ψ=0.25, p=0.5, and saves it to a file tree.nwk, while saving the parameters to a comma-separated file params.csv:

generate_bdei --min_tips 200 --max_tips 500 --mu 1 --la 0.5 --psi 0.25 --p 0.5 --nwk tree.nwk --log params.csv

To seee detailed options, run:

generate_bdei --help

BDSS

The following command simulates a tree with 200-500 tips under BDSS model, with λnn=0.1, λns=0.3, λsn=0.5, λss=1.5, ψ=0.25, p=0.5, and saves it to a file tree.nwk, while saving the parameters to a comma-separated file params.csv:

generate_bdss --min_tips 200 --max_tips 500 --la_nn 0.1 --la_ns 0.3 --la_sn 0.5 --la_ss 1.5 --psi 0.25 --p 0.5 --nwk tree.nwk --log params.csv

To seee detailed options, run:

generate_bdss --help

User-defined MTBD model

The following command simulates a tree with 200-500 tips under a generic MTBD model, with two states A and B, with μaa=0.5, μab=0.6, μba=0.7, μbb=0.8, λaa=0.1, λab=0.2, λba=0.3, λbb=0.4, ψa=0.05, ψb=0.08, p=a0.15, p=b0.65, and saves it to a file tree.nwk, while saving the parameters to a comma-separated file params.csv:

generate_mtbd --min_tips 200 --max_tips 500 --nwk tree.nwk --log params.csv \
--states A B \
--transition_rates 0.5 0.6 0.7 0.8 \
--transmission_rates 0.1 0.2 0.3 0.4 \
--removal_rates 0.05 0.08 \
--sampling_probabilities 0.15 0.65

To seee detailed options, run:

generate_mtbd --help

Python3

To simulate trees with 200-500 tips under the above models and settings:

from treesimulator.generator import generate
from treesimulator import save_forest
from treesimulator.mtbd_models import Model, BirthDeathModel, BirthDeathExposedInfectiousModel, BirthDeathWithSuperSpreadingModel

bd_model = BirthDeathModel(p=0.5, la=0.5, psi=0.25)
print(bd_model.get_epidemiological_parameters())
[bd_tree], (bd_total_tips, _, bd_total_time) = generate(bd_model, min_tips=200, max_tips=500)
save_forest([bd_tree], 'BD_tree.nwk')

bdei_model = BirthDeathExposedInfectiousModel(p=0.5, mu=1, la=0.5, psi=0.25)
print(bdei_model.get_epidemiological_parameters())
[bdei_tree], (bdei_total_tips, _, bdei_total_time) = generate(bdei_model, min_tips=200, max_tips=500)
save_forest([bdei_tree], 'BDEI_tree.nwk')

bdss_model = BirthDeathWithSuperSpreadingModel(p=0.5, la_nn=0.1, la_ns=0.3, la_sn=0.5, la_ss=1.5, psi=0.25)
print(bdss_model.get_epidemiological_parameters())
[bdss_tree], (bdss_total_tips, _, bdss_total_time) = generate(bdss_model, min_tips=200, max_tips=500)
save_forest([bdss_tree], 'BDSS_tree.nwk')

mtbd_model = Model(states=['A', 'B'], transition_rates=[[0.5, 0.6], [0.7, 0.8]], 
                   transmission_rates=[[0.1, 0.2], [0.3, 0.4]],
                   removal_rates=[0.05, 0.08], ps=[0.15, 0.65])
[mtbd_tree], (mtbd_total_tips, _, mtbd_total_time) = generate(mtbd_model, min_tips=200, max_tips=500)
save_forest([mtbd_tree], 'MTBD_tree.nwk')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

treesimulator-0.1.22.tar.gz (28.0 kB view details)

Uploaded Source

Built Distribution

treesimulator-0.1.22-py3-none-any.whl (31.5 kB view details)

Uploaded Python 3

File details

Details for the file treesimulator-0.1.22.tar.gz.

File metadata

  • Download URL: treesimulator-0.1.22.tar.gz
  • Upload date:
  • Size: 28.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

File hashes

Hashes for treesimulator-0.1.22.tar.gz
Algorithm Hash digest
SHA256 2ea8d07b1ef98590b1477c322d8a06efabf63f39ac7d9ff0f75f6063e48898c8
MD5 eeb791429d02bc150df8cd10c4c20e7b
BLAKE2b-256 42fa3650ae720513aab5eff856b4f441b32f791661c6ff4472bb921cc3f685dd

See more details on using hashes here.

File details

Details for the file treesimulator-0.1.22-py3-none-any.whl.

File metadata

  • Download URL: treesimulator-0.1.22-py3-none-any.whl
  • Upload date:
  • Size: 31.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

File hashes

Hashes for treesimulator-0.1.22-py3-none-any.whl
Algorithm Hash digest
SHA256 0612469b4918fb0083c8265130edeb9bc3bb0fbfa4f8a87aed1f97bc48897994
MD5 340757fcaa202489f1711a434758b80d
BLAKE2b-256 8ed88491641183aacfcba96098c115185e9ddb56bf5da35d68adee0660f2a388

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page