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.2.tar.gz (224.3 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.2-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: epidemmo-0.2.2.tar.gz
  • Upload date:
  • Size: 224.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for epidemmo-0.2.2.tar.gz
Algorithm Hash digest
SHA256 0f69b44d948fd4b2eb451447e7a8ae1fbeb7d7f8c536f4beb896a243da56a221
MD5 b3452ece6320ccfb6de7ce7ef814a78c
BLAKE2b-256 23760135ad7f57538f6115aa0595787026c6138469c9a533cd8d885d24c89e2c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: epidemmo-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 23.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for epidemmo-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d2f317374da632d5ad58d43ad6900aae4f8b3b80f72b7d270e88f42a64b01627
MD5 38c1b5ba48e3fcd15900ee8f451cdaf8
BLAKE2b-256 85efb4141c79991caa4016f41d692066f03abd48bfe09560545c2a5ee2e9a8a2

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