Skip to main content

A package for compartmental epidemic modelling

Project description

Пакет epidemmo

Пакет для создания эпидемиологических моделей. Структура создаваемых моделей основана на идеях компартментального моделирования.

Импорт пакета

import epidemmo

Использование стандартных моделей

Пакет содержит несколько стандартных эпидемиологических моделей.

Вы можете изменить стартовую численность каждой стадии, а также изменить значение параметров модели.

from epidemmo import Standard
from matplotlib import pyplot as plt


model = Standard.get_SIR_builder().build()

model.set_start_stages(S=9990, I=10)
model.set_factors(beta=0.5, gamma=0.2)

model.start(60, full_save=True, get_cis=True)

model.plot(draw_cis=True, draw_peaks=True)
plt.show()

sir example

Ручное создание простой SIR модели

from epidemmo import ModelBuilder
from matplotlib import pyplot as plt

builder = ModelBuilder()
builder.add_stage('S', 100).add_stage('I', 1).add_stage('R')
builder.add_factor('beta', 0.4).add_factor('gamma', 0.1)
builder.add_flow('S', 'I', 'beta', 'I').add_flow('I', 'R', 'gamma')

model = builder.build()
model.start(70)

Вывод и запись табличных результатов

После запуска модели Вы можете вывести результаты в виде таблицы (PrettyTable) в консоль.

from epidemmo import Standard

model = Standard.get_SIR_builder().build()
model.start(60)
model.print_result_table()

Вы можете записать результаты в csv файл, включая

  1. изменения численности каждой стадии
  2. изменения значений всех параметров во времени (опционально)
  3. изменения интенсивности потоков модели во времени (опционально)
from epidemmo import Standard

model = Standard.get_SIR_builder().build()
model.start(60, full_save=True)
model.write_results(write_flows=True, write_factors=True)

Получение системы LaTex уравнений

Вы можете получить LaTex уравнения модели. Для этого при добавлении факторов необходимо указать свойство latex_repr. Вы можете использовать параметр simplified для упрощения уравнений (представления в классическом варианте).

from epidemmo import ModelBuilder

builder = ModelBuilder()
builder.add_stage('S', 100).add_stage('I', 1).add_stage('R')
builder.add_factor('beta', 0.4, latex_repr=r'\beta').add_factor('gamma', 0.1, latex_repr=r'\gamma')
builder.add_flow('S', 'I', 'beta', 'I').add_flow('I', 'R', 'gamma')

model = builder.build()

latex_str = model.get_latex()
print(latex_str)

latex_str_simplified = model.get_latex(simplified=True)
print(latex_str_simplified)

Будут сформированы следующие системы дифференциальных уравнений:

\begin{equation}\label{eq:SIR_full}
    \begin{cases}
        \frac{dS}{dt} =  - S \cdot (1 - (1 - \frac{\beta}{N})^{I})\\
        \frac{dI}{dt} = S \cdot (1 - (1 - \frac{\beta}{N})^{I}) - I \cdot \gamma\\
        \frac{dR}{dt} = I \cdot \gamma\\
    \end{cases}
\end{equation}

\begin{equation}\label{eq:SIR_classic}
    \begin{cases}
        \frac{dS}{dt} =  - \frac{S \cdot \beta \cdot I}{N}\\
        \frac{dI}{dt} = \frac{S \cdot \beta \cdot I}{N} - I \cdot \gamma\\
        \frac{dR}{dt} = I \cdot \gamma\\
    \end{cases}
\end{equation}

Для компиляции необходимо подключить пакет amsmath Результат компиляции LaTex выглядит следующим образом: equation example

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

epidemmo-0.2.0.tar.gz (224.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

epidemmo-0.2.0-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

Details for the file epidemmo-0.2.0.tar.gz.

File metadata

  • Download URL: epidemmo-0.2.0.tar.gz
  • Upload date:
  • Size: 224.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for epidemmo-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4ef9c1b148bc28b3fae205d10c702006d57cd1336b1ebe861b495e4aa58a0af3
MD5 77ce2e1b766dd36d6fc32e6b5205f104
BLAKE2b-256 1bb72620030fe93cf1184fca0a29205d7596142eb98ef2a58fe39fc044eb7345

See more details on using hashes here.

File details

Details for the file epidemmo-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: epidemmo-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 23.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for epidemmo-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 55e72f54d7737c738482d81266eca701d09aae645d02dea0caca5f886394896c
MD5 f852ac6fd7bfe99f342f620d4c67341a
BLAKE2b-256 8f9cfcecf7096d14bd5be2bab688070c2fda799c0a104a8855a174b3fadd09bf

See more details on using hashes here.

Supported by

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