Skip to main content

A package for compartmental epidemic modelling

Project description

Пакет epidemmo

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

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

import epidemmo

Создание простой 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.print_result_table()

model.plot()

plt.show()

Результаты моделирования

sir example

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

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

from epidemmo import Standard

model = Standard.get_SIR_builder().build()
result = model.start(40)

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

from epidemmo import Standard

model = Standard.get_SIR_builder().build()
model.set_start_stages(S=1000, I=10, R=0)
model.set_factors(beta=0.5)

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

После запуска модели Вы можете вывести результаты в виде таблицы (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)
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.1.5.tar.gz (127.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.1.5-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for epidemmo-0.1.5.tar.gz
Algorithm Hash digest
SHA256 d4741c61e842735e3767f3ed917122ed0b956c1d3a7d27bd250a92e28356cad1
MD5 16b3bc9b549734c1c69baf6b68bfc8ba
BLAKE2b-256 3acef59ddb9b88fe6945e77fc4ea6a640c526067fa59111a8716a28878c99c72

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for epidemmo-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 62f33b359aabaad902afee440fce592765f3f829942a3f21b5d52576f2a81212
MD5 08334b19b661b8d62546617a6d23f2ae
BLAKE2b-256 9b619393dd80c4a7aad3be509c875ce9d1bae02a4eef01a36c3a51153540cfcf

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