跳转到主要内容

基于隔室模型的动态系统工具箱,包括成本和优化

项目描述

Atomica

Build Status

PyPi version

Atomica是一个隔室模型的仿真引擎。它可以用于模拟疾病流行、医疗保健连锁反应以及许多其他事物。

有关详细文档,请访问https://atomica.tools/docs

安装

Atomica仅适用于Python 3。因为我们使用Python 3.7进行开发,因此字典顺序可能相关(尽管我们在顺序重要的地方努力使用通过Sciris的有序字典)。因此,我们只官方支持Python 3.7,因为这是第一个保证所有字典排序的Python版本。

Atomica通过PyPI分发,PyPI版本对应于此存储库的master分支。要通过PyPI安装,只需运行

pip install atomica

安装 numpyscipymatplotlib 将通过 pip 自动完成,因为它们是 Atomica 的依赖项。然而,在实际操作中,这些包可能需要系统级别的配置,因此通常最好事先单独安装它们。我们推荐使用 Anaconda,它便于跨平台安装二进制文件和依赖项,如 QT。我们还建议在 Anaconda 环境中工作。

您也可能希望在安装 numpy 等之前先安装 mkl 以提高性能。例如:

conda install mkl
conda install numpy scipy matplotlib

Git 安装

如果您想安装 Atomica 的不同分支,或者计划修改 Atomica 的源代码,您需要通过 Git 而不是通过 PyPI 安装 Atomica。这可以通过以下操作完成:

git clone https://github.com/atomicateam/atomica.git
cd atomica
pip install -e .

运行测试

Atomica 包含一系列测试,其中一些会自动运行,而其他则是手动使用的。自动测试套件可以使用 pytest 执行,并且可以使用 tox 在隔离环境中运行。要使用测试,您需要按照上述步骤执行“Git 安装”,因为测试不包括在 PyPI 发行版中。安装后,您可以从 tests 目录中运行单个测试脚本,例如:

python tests/testworkflow.py

注意,许多测试会在测试过程中打开 matplotlib 图形。如果测试脚本在没有显示器的机器上运行,将会引发错误。

_tkinter.TclError: couldn't connect to display "localhost:0.0"

在这种情况下,只需将 matplotlib 后端设置为 agg,这允许在存在显示的情况下成功调用。例如,运行:

export MPLBACKEND=agg
python tests/testworkflow.py

要运行自动套件,使用以下命令安装测试依赖项:

pip install -r requirements.txt

这将安装额外的开发依赖项。然后,要从根目录(包含 README.md 的目录)运行自动套件:

pytest

要在一个隔离的虚拟环境中运行测试,从根目录运行:

tox

如果您没有 tox,可以使用 pip install tox 安装它。默认配置期望系统中有 Python 3.6 和 Python 3.7。要仅针对特定版本进行测试,将 Python 版本作为参数传递给 tox,例如:

tox -e py37

仅测试 Python 3.7。

故障排除

安装失败,缺少 numpy

如果在新的环境中运行 pip install -e .,则必须在安装 scipy 之前安装 numpy。在某些情况下,由于缺少编译器选项,安装 numpy 可能会失败。在这种情况下,您可能希望通过 Anaconda 安装 numpy(通过 Anaconda 安装 Python,然后使用 conda install numpy scipy matplotlib)。一般来说,我们发现在 Anaconda 中设置 numpy 的 C 二进制文件和 matplotlib 的 QT 依赖项比通过系统(涉及每个平台上的不同步骤)要容易。

绘图挂起

在某些系统上,默认的 matplotlib 后端可能会挂起 - 这不是 Atomica 的问题。要解决这个问题,尝试在脚本非常开始处包含以下内容以更改后端:

import matplotlib
matplotlib.use("Qt5Agg")

对于您的系统可能需要不同的后端。您可以通过设置 matplotlibrc 文件来使更改持久化。

项目详情


下载文件

下载适合您平台的应用程序文件。如果您不确定该选择哪个,请了解更多关于安装包的信息

源代码分发

atomica-1.28.5.tar.gz (1.6 MB 查看哈希值)

上传时间 源代码

构建分发

atomica-1.28.5-py3-none-any.whl (1.6 MB 查看哈希值)

上传时间 Python 3

支持者