hpvsim 2.2.1__tar.gz → 2.2.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hpvsim-2.2.6/.github/workflows/pypi_release.yaml +38 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/.github/workflows/tests.yaml +5 -1
- {hpvsim-2.2.1 → hpvsim-2.2.6}/.readthedocs.yaml +5 -2
- {hpvsim-2.2.1 → hpvsim-2.2.6}/CHANGELOG.rst +30 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/LICENSE +1 -1
- {hpvsim-2.2.1/hpvsim.egg-info → hpvsim-2.2.6}/PKG-INFO +7 -4
- {hpvsim-2.2.1 → hpvsim-2.2.6}/README.rst +5 -2
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/_templates/page.html +0 -9
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/conf.py +0 -3
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/requirements.txt +1 -1
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/analysis.py +4 -2
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/calibration.py +1 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/data/loaders.py +2 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/data/products_dx.csv +112 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/data/products_tx.csv +16 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/data/products_txvx.csv +4 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/data/products_vx.csv +6 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/hiv.py +10 -10
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/immunity.py +1 -1
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/interventions.py +12 -13
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/parameters.py +66 -1
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/people.py +1 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/version.py +3 -3
- {hpvsim-2.2.1 → hpvsim-2.2.6/hpvsim.egg-info}/PKG-INFO +7 -4
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim.egg-info/SOURCES.txt +2 -1
- hpvsim-2.2.6/hpvsim.egg-info/entry_points.txt +2 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/pyproject.toml +4 -1
- hpvsim-2.2.6/tests/baseline.json +60 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/benchmark.json +3 -3
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_sim.py +0 -1
- hpvsim-2.2.1/docs/robots.txt +0 -2
- hpvsim-2.2.1/tests/baseline.json +0 -60
- {hpvsim-2.2.1 → hpvsim-2.2.6}/.gitignore +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/CODE_OF_CONDUCT.rst +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/MANIFEST.in +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/Makefile +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/README.md +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/_static/theme_overrides.css +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/_templates/custom-class-template.rst +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/_templates/custom-function-template.rst +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/_templates/custom-module-template.rst +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/_templates/footer_end.html +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/_templates/footer_start.html +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/_templates/navbar-side.html +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/api/index.rst +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/build_docs +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/images/favicon.ico +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/images/idm-logo-transparent.png +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/index.html +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/index.rst +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/overview.rst +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials/README.rst +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials/clean_outputs +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials/example_cancer_cases.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials/nigeria_cancer_cases.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials/nigeria_cancer_types.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials/south_africa_age_pyramid.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials/tut_analyzers.ipynb +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials/tut_calibration.ipynb +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials/tut_interventions.ipynb +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials/tut_intro.ipynb +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials/tut_people.ipynb +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials/tut_plotting.ipynb +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials/tut_running.ipynb +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/tutorials.rst +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/variables.txt +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/docs/whats-new.rst +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/examples/t05_screen_algorithms.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/__init__.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/base.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/data/__init__.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/data/downloaders.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/data/test_downloaders.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/data/test_loaders.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/defaults.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/misc.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/plotting.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/population.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/regression/pars_v0.2.6.json +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/regression/pars_v0.2.9.json +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/regression/pars_v0.3.0.json +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/regression/pars_v0.3.1.json +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/run.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/settings.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/sim.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim/utils.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim.egg-info/dependency_links.txt +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim.egg-info/requires.txt +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/hpvsim.egg-info/top_level.txt +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/setup.cfg +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/.coveragerc +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/README.rst +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/benchmark_profile.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/check_coverage +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/check_hiv_data.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/hpv_test_pars.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/multiscale_concept1.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/multiscale_concept2.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/multiscale_concept3.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/multiscale_test.df +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/mysql_hpvsim_test.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/mysql_test.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/network_dx.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/plot_nathx.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/setup_mysql +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_cancer_dysp.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_dt.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_hiv.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_latency.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_logistic.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_merge_scens.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_multiscale.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_multiscale_pars.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_networks.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_new_progs.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_parameter_exploration.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_popgrowth.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_popscale.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_sampler.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/test_txvx.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/devtests/tut_parameter_exploration.ipynb +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/hpvsim_v1.2.2.yml +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/pytest.ini +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/requirements.txt +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/run_tests +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/simple.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_analysis.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_baselines.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_calibration.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/RSA_data.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/art_coverage_south_africa.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/australia_age_pyramid.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/hiv_incidence_south_africa.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/india_cancer_cases.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/india_cancer_deaths.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/india_cancer_types.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/india_cin_types.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/india_data.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/india_hpv_data.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/india_hpv_prevalence.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/kenya_age_pyramid.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/kenya_cancer_incidence.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/kenya_cancer_mortality.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/kenya_data.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/param_space.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/param_space_filled.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/south_africa_age_pyramid.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/south_africa_art_coverage_by_age_females.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/south_africa_art_coverage_by_age_males.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/south_africa_cancer_data_2020.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/south_africa_cancer_data_hiv_2020.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/south_africa_cancer_incidence_by_age_no_hiv.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/south_africa_cancer_incidence_by_age_with_hiv.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/south_africa_female_hiv_mortality.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/south_africa_hpv_data.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/south_africa_male_hiv_mortality.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/south_africa_target_data.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/south_africa_type_distribution_cancer.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/south_africa_type_distribution_high_grade_lesion.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/tanzania_age_pyramid.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/tanzania_data.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/test_tx_assigner.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/test_via.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data/test_via_triage.csv +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_data.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_event_schedule.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_interventions.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/test_run.py +0 -0
- {hpvsim-2.2.1 → hpvsim-2.2.6}/tests/update_baseline +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: Publish HPVsim to PyPI (manual)
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
push:
|
|
6
|
+
tags:
|
|
7
|
+
- 'v*'
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build-and-publish:
|
|
11
|
+
name: Build and publish
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
id-token: write
|
|
16
|
+
contents: read
|
|
17
|
+
|
|
18
|
+
environment:
|
|
19
|
+
name: pypi
|
|
20
|
+
url: https://pypi.org/project/hpvsim/
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- name: Check out repository
|
|
24
|
+
uses: actions/checkout@v4
|
|
25
|
+
|
|
26
|
+
- name: Set up Python
|
|
27
|
+
uses: actions/setup-python@v5
|
|
28
|
+
with:
|
|
29
|
+
python-version: '3.x'
|
|
30
|
+
|
|
31
|
+
- name: Install build backend
|
|
32
|
+
run: python -m pip install build
|
|
33
|
+
|
|
34
|
+
- name: Build sdist and wheel
|
|
35
|
+
run: python -m build
|
|
36
|
+
|
|
37
|
+
- name: Publish
|
|
38
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
name: HPVsim CI tests
|
|
2
2
|
on:
|
|
3
|
+
workflow_call:
|
|
4
|
+
workflow_dispatch:
|
|
3
5
|
pull_request:
|
|
4
6
|
schedule:
|
|
5
7
|
- cron: "0 0 * * *"
|
|
@@ -12,7 +14,7 @@ jobs:
|
|
|
12
14
|
fail-fast: false
|
|
13
15
|
max-parallel: 8
|
|
14
16
|
matrix:
|
|
15
|
-
python-version: [ '3.
|
|
17
|
+
python-version: [ '3.13' ]
|
|
16
18
|
name: Install and test
|
|
17
19
|
steps:
|
|
18
20
|
- name: Checkout sources
|
|
@@ -23,6 +25,8 @@ jobs:
|
|
|
23
25
|
architecture: x64
|
|
24
26
|
- name: Install HPVsim
|
|
25
27
|
run: pip install -e .
|
|
28
|
+
- name: Download data on first load
|
|
29
|
+
run: hpvsim-download-data
|
|
26
30
|
- name: Install tests
|
|
27
31
|
working-directory: ./tests
|
|
28
32
|
run: pip install -r requirements.txt
|
|
@@ -7,9 +7,12 @@ version: 2
|
|
|
7
7
|
|
|
8
8
|
# Set the version of Python and other tools you might need
|
|
9
9
|
build:
|
|
10
|
-
os: ubuntu-
|
|
10
|
+
os: ubuntu-24.04
|
|
11
11
|
tools:
|
|
12
|
-
python: "3.
|
|
12
|
+
python: "3.13"
|
|
13
|
+
jobs:
|
|
14
|
+
post_install:
|
|
15
|
+
- hpvsim-download-data
|
|
13
16
|
|
|
14
17
|
# Build documentation in the docs/ directory with Sphinx
|
|
15
18
|
sphinx:
|
|
@@ -9,6 +9,36 @@ All notable changes to the codebase are documented in this file. Changes that ma
|
|
|
9
9
|
:depth: 1
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
Version 2.2.6 (2026-04-17)
|
|
13
|
+
---------------------------
|
|
14
|
+
- Reconcile different copies of repository
|
|
15
|
+
- *Github info* PR `75 <https://github.com/starsimhub/hpvsim/pull/75>`__
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Version 2.2.5 (2025-10-27)
|
|
19
|
+
---------------------------
|
|
20
|
+
- Small bugfix for campaign vaccination
|
|
21
|
+
- *Github info* PR `689 <https://github.com/starsimhub/hpvsim_orig/pull/689>`__
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
Version 2.2.4 (2025-08-20)
|
|
25
|
+
---------------------------
|
|
26
|
+
- Fixes a bug in analyzer results for cancer by age and HIV status
|
|
27
|
+
- *Github info* PR `687 <https://github.com/starsimhub/hpvsim_orig/pull/687>`__
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
Version 2.2.3 (2025-06-27)
|
|
31
|
+
---------------------------
|
|
32
|
+
- Small bugfixes and changes to HIV module parameterization
|
|
33
|
+
- *Github info* PR `685 <https://github.com/starsimhub/hpvsim_orig/pull/685>`__
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
Version 2.2.2 (2025-06-20)
|
|
37
|
+
---------------------------
|
|
38
|
+
- Bugfix to allow running simulations beyond 2100
|
|
39
|
+
- *Github info* PR `681 <https://github.com/starsimhub/hpvsim_orig/pull/681>`__
|
|
40
|
+
|
|
41
|
+
|
|
12
42
|
Version 2.2.1 (2025-05-29)
|
|
13
43
|
---------------------------
|
|
14
44
|
- Bugfix for running calibrations to prevent interventions being reinitialized
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2023-
|
|
3
|
+
Copyright (c) 2023-2026 Gates Foundation
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hpvsim
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.6
|
|
4
4
|
Summary: HPVsim: Human Papillomavirus Simulator
|
|
5
5
|
Author: Robyn Stuart, Jamie Cohen, Cliff Kerr, Romesh Abeysuriya, Mariah Boudreau, Daniel Klein, Hao Hu
|
|
6
6
|
Maintainer-email: HPVsim Team <info@hpvsim.org>
|
|
7
7
|
License-Expression: MIT
|
|
8
8
|
Project-URL: Website, https://hpvsim.org
|
|
9
|
-
Project-URL: Source, https://github.com/
|
|
9
|
+
Project-URL: Source, https://github.com/starsimhub/hpvsim/
|
|
10
10
|
Keywords: HPV,human papillomavirus,cervical cancer,agent-based model,disease modeling,simulation
|
|
11
11
|
Classifier: Intended Audience :: Science/Research
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
@@ -31,6 +31,9 @@ Dynamic: license-file
|
|
|
31
31
|
Human papillomavirus simulator (HPVsim)
|
|
32
32
|
=======================================
|
|
33
33
|
|
|
34
|
+
.. image:: https://badgen.net/pypi/v/hpvsim/?color=blue
|
|
35
|
+
:target: https://pypi.org/project/hpvsim
|
|
36
|
+
|
|
34
37
|
.. image:: https://github.com/institutefordiseasemodeling/hpvsim/actions/workflows/tests.yaml/badge.svg
|
|
35
38
|
:target: https://github.com/institutefordiseasemodeling/hpvsim/actions/workflows/tests.yaml
|
|
36
39
|
:alt: pipeline status
|
|
@@ -62,7 +65,7 @@ HPVsim has been used for analyses in several countries. Academic papers that hav
|
|
|
62
65
|
Installation
|
|
63
66
|
------------
|
|
64
67
|
|
|
65
|
-
The easiest way to install is simply via pip: ``pip install hpvsim``. Alternatively, you can clone this repository, then run ``pip install -e .`` (don't forget the dot!) in this folder to install ``hpvsim`` and its dependencies. This will make ``hpvsim`` available on the Python path. The first time HPVsim is imported, it will automatically download the required data files (~30 MB).
|
|
68
|
+
The easiest way to install is simply via pip: ``pip install hpvsim``. Alternatively, you can clone this repository, then run ``pip install -e .`` (don't forget the dot!) in this folder to install ``hpvsim`` and its dependencies. This will make ``hpvsim`` available on the Python path. The first time HPVsim is imported, it will automatically download the required data files (~30 MB). You can also download the data manually by running ``hpvsim-download-data`` from the terminal.
|
|
66
69
|
|
|
67
70
|
|
|
68
71
|
Usage and documentation
|
|
@@ -74,7 +77,7 @@ Documentation is available at https://docs.hpvsim.org. Additional usage examples
|
|
|
74
77
|
Contributing
|
|
75
78
|
------------
|
|
76
79
|
|
|
77
|
-
If you wish to contribute, please follow the Starsim style guide at: https://github.com/
|
|
80
|
+
If you wish to contribute, please follow the Starsim style guide at: https://github.com/starsimhub/styleguide. See the code of conduct readme for more information.
|
|
78
81
|
|
|
79
82
|
|
|
80
83
|
Disclaimer
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
Human papillomavirus simulator (HPVsim)
|
|
2
2
|
=======================================
|
|
3
3
|
|
|
4
|
+
.. image:: https://badgen.net/pypi/v/hpvsim/?color=blue
|
|
5
|
+
:target: https://pypi.org/project/hpvsim
|
|
6
|
+
|
|
4
7
|
.. image:: https://github.com/institutefordiseasemodeling/hpvsim/actions/workflows/tests.yaml/badge.svg
|
|
5
8
|
:target: https://github.com/institutefordiseasemodeling/hpvsim/actions/workflows/tests.yaml
|
|
6
9
|
:alt: pipeline status
|
|
@@ -32,7 +35,7 @@ HPVsim has been used for analyses in several countries. Academic papers that hav
|
|
|
32
35
|
Installation
|
|
33
36
|
------------
|
|
34
37
|
|
|
35
|
-
The easiest way to install is simply via pip: ``pip install hpvsim``. Alternatively, you can clone this repository, then run ``pip install -e .`` (don't forget the dot!) in this folder to install ``hpvsim`` and its dependencies. This will make ``hpvsim`` available on the Python path. The first time HPVsim is imported, it will automatically download the required data files (~30 MB).
|
|
38
|
+
The easiest way to install is simply via pip: ``pip install hpvsim``. Alternatively, you can clone this repository, then run ``pip install -e .`` (don't forget the dot!) in this folder to install ``hpvsim`` and its dependencies. This will make ``hpvsim`` available on the Python path. The first time HPVsim is imported, it will automatically download the required data files (~30 MB). You can also download the data manually by running ``hpvsim-download-data`` from the terminal.
|
|
36
39
|
|
|
37
40
|
|
|
38
41
|
Usage and documentation
|
|
@@ -44,7 +47,7 @@ Documentation is available at https://docs.hpvsim.org. Additional usage examples
|
|
|
44
47
|
Contributing
|
|
45
48
|
------------
|
|
46
49
|
|
|
47
|
-
If you wish to contribute, please follow the Starsim style guide at: https://github.com/
|
|
50
|
+
If you wish to contribute, please follow the Starsim style guide at: https://github.com/starsimhub/styleguide. See the code of conduct readme for more information.
|
|
48
51
|
|
|
49
52
|
|
|
50
53
|
Disclaimer
|
|
@@ -2,15 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
{% set css_files = css_files + ["_static/theme_overrides.css"] %}
|
|
4
4
|
|
|
5
|
-
{% block htmltitle %}
|
|
6
|
-
{{ super() }}
|
|
7
|
-
|
|
8
|
-
{% if not READTHEDOCS %}
|
|
9
|
-
<meta name="robots" content="none">
|
|
10
|
-
{% endif %}
|
|
11
|
-
|
|
12
|
-
{% endblock %}
|
|
13
|
-
|
|
14
5
|
{% block extrahead %}
|
|
15
6
|
|
|
16
7
|
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
@@ -101,9 +101,6 @@ html_context = {
|
|
|
101
101
|
},
|
|
102
102
|
"default_mode": "light",
|
|
103
103
|
}
|
|
104
|
-
# Add any extra paths that contain custom files
|
|
105
|
-
if not on_rtd:
|
|
106
|
-
html_extra_path = ['robots.txt']
|
|
107
104
|
|
|
108
105
|
|
|
109
106
|
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
|
@@ -785,9 +785,9 @@ class age_results(Analyzer):
|
|
|
785
785
|
if rdict.result_type == 'flow':
|
|
786
786
|
if not rdict.by_genotype: # Results across all genotypes
|
|
787
787
|
if rdict.by_hiv:
|
|
788
|
-
if rdict.hiv_attr:
|
|
788
|
+
if rdict.hiv_attr == 'with':
|
|
789
789
|
inds = ((ppl[rdict.date_attr] == sim.t) * (ppl[rdict.attr]) * (ppl['hiv'])).nonzero()[-1]
|
|
790
|
-
|
|
790
|
+
elif rdict.hiv_attr == 'no':
|
|
791
791
|
inds = ((ppl[rdict.date_attr] == sim.t) * (ppl[rdict.attr]) * (~ppl['hiv'])).nonzero()[-1]
|
|
792
792
|
else:
|
|
793
793
|
inds = ((ppl[rdict.date_attr] == sim.t) * (ppl[rdict.attr])).nonzero()[-1]
|
|
@@ -1111,6 +1111,7 @@ class age_causal_infection(Analyzer):
|
|
|
1111
1111
|
if self.start_year is None:
|
|
1112
1112
|
self.start_year = sim['start']
|
|
1113
1113
|
self.age_causal = []
|
|
1114
|
+
self.age_cin = []
|
|
1114
1115
|
self.age_cancer = []
|
|
1115
1116
|
self.dwelltime = dict()
|
|
1116
1117
|
for state in ['precin', 'cin', 'total']:
|
|
@@ -1127,6 +1128,7 @@ class age_causal_infection(Analyzer):
|
|
|
1127
1128
|
cin_time = (sim.t - date_cin) * sim['dt']
|
|
1128
1129
|
total_time = (sim.t - date_exposed) * sim['dt']
|
|
1129
1130
|
self.age_causal += (current_age - total_time).tolist()
|
|
1131
|
+
self.age_cin += (current_age - cin_time).tolist()
|
|
1130
1132
|
self.age_cancer += current_age.tolist()
|
|
1131
1133
|
self.dwelltime['precin'] += hpv_time.tolist()
|
|
1132
1134
|
self.dwelltime['cin'] += cin_time.tolist()
|
|
@@ -715,6 +715,7 @@ class Calibration(sc.prettyobj):
|
|
|
715
715
|
# Set title and labels
|
|
716
716
|
ax.set_xlabel('Age group')
|
|
717
717
|
ax.set_title(f'{self.result_args[resname].name}, {date}')
|
|
718
|
+
sc.setylim(data=[ydata, modeldf['values']], ax=ax)
|
|
718
719
|
ax.legend()
|
|
719
720
|
ax.set_xticks(x, age_labels[resname], rotation=45)
|
|
720
721
|
plot_count += 1
|
|
@@ -314,6 +314,8 @@ def get_birth_rates(location=None):
|
|
|
314
314
|
raise ValueError(errormsg) from E
|
|
315
315
|
|
|
316
316
|
raw_df = map_entries(birth_rate_data, location)
|
|
317
|
+
raw_df = raw_df.dropna()
|
|
317
318
|
df = sc.dataframe(raw_df).reset_index().rename(columns={'Time':'year', 'CBR':'cbr'})
|
|
319
|
+
|
|
318
320
|
return df
|
|
319
321
|
|
|
@@ -93,6 +93,12 @@ hpv,susceptible,hpv18,inadequate,0
|
|
|
93
93
|
hpv,susceptible,hi5,positive,0
|
|
94
94
|
hpv,susceptible,hi5,negative,1
|
|
95
95
|
hpv,susceptible,hi5,inadequate,0
|
|
96
|
+
hpv,susceptible,hpv45,positive,0
|
|
97
|
+
hpv,susceptible,hpv45,negative,1
|
|
98
|
+
hpv,susceptible,hpv45,inadequate,0
|
|
99
|
+
hpv,susceptible,hi4,positive,0
|
|
100
|
+
hpv,susceptible,hi4,negative,1
|
|
101
|
+
hpv,susceptible,hi4,inadequate,0
|
|
96
102
|
hpv,susceptible,ohr,positive,0
|
|
97
103
|
hpv,susceptible,ohr,negative,1
|
|
98
104
|
hpv,susceptible,ohr,inadequate,0
|
|
@@ -111,6 +117,12 @@ hpv,latent,hpv18,inadequate,0
|
|
|
111
117
|
hpv,latent,hi5,positive,0
|
|
112
118
|
hpv,latent,hi5,negative,1
|
|
113
119
|
hpv,latent,hi5,inadequate,0
|
|
120
|
+
hpv,latent,hpv45,positive,0
|
|
121
|
+
hpv,latent,hpv45,negative,1
|
|
122
|
+
hpv,latent,hpv45,inadequate,0
|
|
123
|
+
hpv,latent,hi4,positive,0
|
|
124
|
+
hpv,latent,hi4,negative,1
|
|
125
|
+
hpv,latent,hi4,inadequate,0
|
|
114
126
|
hpv,latent,ohr,positive,0
|
|
115
127
|
hpv,latent,ohr,negative,1
|
|
116
128
|
hpv,latent,ohr,inadequate,0
|
|
@@ -129,6 +141,12 @@ hpv,precin,hpv18,inadequate,0
|
|
|
129
141
|
hpv,precin,hi5,positive,0.9
|
|
130
142
|
hpv,precin,hi5,negative,0.1
|
|
131
143
|
hpv,precin,hi5,inadequate,0
|
|
144
|
+
hpv,precin,hpv45,positive,0.9
|
|
145
|
+
hpv,precin,hpv45,negative,0.1
|
|
146
|
+
hpv,precin,hpv45,inadequate,0
|
|
147
|
+
hpv,precin,hi4,positive,0.9
|
|
148
|
+
hpv,precin,hi4,negative,0.1
|
|
149
|
+
hpv,precin,hi4,inadequate,0
|
|
132
150
|
hpv,precin,ohr,positive,0.9
|
|
133
151
|
hpv,precin,ohr,negative,0.1
|
|
134
152
|
hpv,precin,ohr,inadequate,0
|
|
@@ -147,6 +165,12 @@ hpv,cin,hpv18,inadequate,0
|
|
|
147
165
|
hpv,cin,hi5,positive,0.9
|
|
148
166
|
hpv,cin,hi5,negative,0.1
|
|
149
167
|
hpv,cin,hi5,inadequate,0
|
|
168
|
+
hpv,cin,hpv45,positive,0.9
|
|
169
|
+
hpv,cin,hpv45,negative,0.1
|
|
170
|
+
hpv,cin,hpv45,inadequate,0
|
|
171
|
+
hpv,cin,hi4,positive,0.9
|
|
172
|
+
hpv,cin,hi4,negative,0.1
|
|
173
|
+
hpv,cin,hi4,inadequate,0
|
|
150
174
|
hpv,cin,ohr,positive,0.9
|
|
151
175
|
hpv,cin,ohr,negative,0.1
|
|
152
176
|
hpv,cin,ohr,inadequate,0
|
|
@@ -165,6 +189,12 @@ hpv,cancerous,hpv18,inadequate,0
|
|
|
165
189
|
hpv,cancerous,hi5,positive,0.9
|
|
166
190
|
hpv,cancerous,hi5,negative,0.1
|
|
167
191
|
hpv,cancerous,hi5,inadequate,0
|
|
192
|
+
hpv,cancerous,hpv45,positive,0.9
|
|
193
|
+
hpv,cancerous,hpv45,negative,0.1
|
|
194
|
+
hpv,cancerous,hpv45,inadequate,0
|
|
195
|
+
hpv,cancerous,hi4,positive,0.9
|
|
196
|
+
hpv,cancerous,hi4,negative,0.1
|
|
197
|
+
hpv,cancerous,hi4,inadequate,0
|
|
168
198
|
hpv,cancerous,ohr,positive,0.9
|
|
169
199
|
hpv,cancerous,ohr,negative,0.1
|
|
170
200
|
hpv,cancerous,ohr,inadequate,0
|
|
@@ -183,6 +213,12 @@ hpv1618,susceptible,hpv18,inadequate,0
|
|
|
183
213
|
hpv1618,susceptible,hi5,positive,0
|
|
184
214
|
hpv1618,susceptible,hi5,negative,1
|
|
185
215
|
hpv1618,susceptible,hi5,inadequate,0
|
|
216
|
+
hpv1618,susceptible,hpv45,positive,0
|
|
217
|
+
hpv1618,susceptible,hpv45,negative,1
|
|
218
|
+
hpv1618,susceptible,hpv45,inadequate,0
|
|
219
|
+
hpv1618,susceptible,hi4,positive,0
|
|
220
|
+
hpv1618,susceptible,hi4,negative,1
|
|
221
|
+
hpv1618,susceptible,hi4,inadequate,0
|
|
186
222
|
hpv1618,susceptible,ohr,positive,0
|
|
187
223
|
hpv1618,susceptible,ohr,negative,1
|
|
188
224
|
hpv1618,susceptible,ohr,inadequate,0
|
|
@@ -201,6 +237,12 @@ hpv1618,latent,hpv18,inadequate,0
|
|
|
201
237
|
hpv1618,latent,hi5,positive,0
|
|
202
238
|
hpv1618,latent,hi5,negative,1
|
|
203
239
|
hpv1618,latent,hi5,inadequate,0
|
|
240
|
+
hpv1618,latent,hpv45,positive,0
|
|
241
|
+
hpv1618,latent,hpv45,negative,1
|
|
242
|
+
hpv1618,latent,hpv45,inadequate,0
|
|
243
|
+
hpv1618,latent,hi4,positive,0
|
|
244
|
+
hpv1618,latent,hi4,negative,1
|
|
245
|
+
hpv1618,latent,hi4,inadequate,0
|
|
204
246
|
hpv1618,latent,ohr,positive,0
|
|
205
247
|
hpv1618,latent,ohr,negative,1
|
|
206
248
|
hpv1618,latent,ohr,inadequate,0
|
|
@@ -219,6 +261,12 @@ hpv1618,precin,hpv18,inadequate,0
|
|
|
219
261
|
hpv1618,precin,hi5,positive,0
|
|
220
262
|
hpv1618,precin,hi5,negative,1
|
|
221
263
|
hpv1618,precin,hi5,inadequate,0
|
|
264
|
+
hpv1618,precin,hpv45,positive,0
|
|
265
|
+
hpv1618,precin,hpv45,negative,1
|
|
266
|
+
hpv1618,precin,hpv45,inadequate,0
|
|
267
|
+
hpv1618,precin,hi4,positive,0
|
|
268
|
+
hpv1618,precin,hi4,negative,1
|
|
269
|
+
hpv1618,precin,hi4,inadequate,0
|
|
222
270
|
hpv1618,precin,ohr,positive,0
|
|
223
271
|
hpv1618,precin,ohr,negative,1
|
|
224
272
|
hpv1618,precin,ohr,inadequate,0
|
|
@@ -237,6 +285,12 @@ hpv1618,cin,hpv18,inadequate,0
|
|
|
237
285
|
hpv1618,cin,hi5,positive,0
|
|
238
286
|
hpv1618,cin,hi5,negative,1
|
|
239
287
|
hpv1618,cin,hi5,inadequate,0
|
|
288
|
+
hpv1618,cin,hpv45,positive,0
|
|
289
|
+
hpv1618,cin,hpv45,negative,1
|
|
290
|
+
hpv1618,cin,hpv45,inadequate,0
|
|
291
|
+
hpv1618,cin,hi4,positive,0
|
|
292
|
+
hpv1618,cin,hi4,negative,1
|
|
293
|
+
hpv1618,cin,hi4,inadequate,0
|
|
240
294
|
hpv1618,cin,ohr,positive,0
|
|
241
295
|
hpv1618,cin,ohr,negative,1
|
|
242
296
|
hpv1618,cin,ohr,inadequate,0
|
|
@@ -255,6 +309,24 @@ hpv1618,cancerous,hpv18,inadequate,0
|
|
|
255
309
|
hpv1618,cancerous,hrhpv,positive,0
|
|
256
310
|
hpv1618,cancerous,hrhpv,negative,1
|
|
257
311
|
hpv1618,cancerous,hrhpv,inadequate,0
|
|
312
|
+
hpv1618,cancerous,hi5,positive,0
|
|
313
|
+
hpv1618,cancerous,hi5,negative,1
|
|
314
|
+
hpv1618,cancerous,hi5,inadequate,0
|
|
315
|
+
hpv1618,cancerous,hpv45,positive,0
|
|
316
|
+
hpv1618,cancerous,hpv45,negative,1
|
|
317
|
+
hpv1618,cancerous,hpv45,inadequate,0
|
|
318
|
+
hpv1618,cancerous,hi4,positive,0
|
|
319
|
+
hpv1618,cancerous,hi4,negative,1
|
|
320
|
+
hpv1618,cancerous,hi4,inadequate,0
|
|
321
|
+
hpv1618,cancerous,ohr,positive,0
|
|
322
|
+
hpv1618,cancerous,ohr,negative,1
|
|
323
|
+
hpv1618,cancerous,ohr,inadequate,0
|
|
324
|
+
hpv1618,cancerous,hr,positive,0
|
|
325
|
+
hpv1618,cancerous,hr,negative,1
|
|
326
|
+
hpv1618,cancerous,hr,inadequate,0
|
|
327
|
+
hpv1618,cancerous,lr,positive,0
|
|
328
|
+
hpv1618,cancerous,lr,negative,1
|
|
329
|
+
hpv1618,cancerous,lr,inadequate,0
|
|
258
330
|
hpv_type,susceptible,hpv16,positive_1618,0
|
|
259
331
|
hpv_type,susceptible,hpv16,positive_ohr,0
|
|
260
332
|
hpv_type,susceptible,hpv16,negative,1
|
|
@@ -267,6 +339,14 @@ hpv_type,susceptible,hi5,positive_1618,0
|
|
|
267
339
|
hpv_type,susceptible,hi5,positive_ohr,0
|
|
268
340
|
hpv_type,susceptible,hi5,negative,1
|
|
269
341
|
hpv_type,susceptible,hi5,inadequate,0
|
|
342
|
+
hpv_type,susceptible,hpv45,positive_1618,0
|
|
343
|
+
hpv_type,susceptible,hpv45,positive_ohr,0
|
|
344
|
+
hpv_type,susceptible,hpv45,negative,1
|
|
345
|
+
hpv_type,susceptible,hpv45,inadequate,0
|
|
346
|
+
hpv_type,susceptible,hi4,positive_1618,0
|
|
347
|
+
hpv_type,susceptible,hi4,positive_ohr,0
|
|
348
|
+
hpv_type,susceptible,hi4,negative,1
|
|
349
|
+
hpv_type,susceptible,hi4,inadequate,0
|
|
270
350
|
hpv_type,susceptible,ohr,positive_1618,0
|
|
271
351
|
hpv_type,susceptible,ohr,positive_ohr,0
|
|
272
352
|
hpv_type,susceptible,ohr,negative,1
|
|
@@ -291,6 +371,14 @@ hpv_type,latent,hi5,positive_1618,0
|
|
|
291
371
|
hpv_type,latent,hi5,positive_ohr,0
|
|
292
372
|
hpv_type,latent,hi5,negative,1
|
|
293
373
|
hpv_type,latent,hi5,inadequate,0
|
|
374
|
+
hpv_type,latent,hpv45,positive_1618,0
|
|
375
|
+
hpv_type,latent,hpv45,positive_ohr,0
|
|
376
|
+
hpv_type,latent,hpv45,negative,1
|
|
377
|
+
hpv_type,latent,hpv45,inadequate,0
|
|
378
|
+
hpv_type,latent,hi4,positive_1618,0
|
|
379
|
+
hpv_type,latent,hi4,positive_ohr,0
|
|
380
|
+
hpv_type,latent,hi4,negative,1
|
|
381
|
+
hpv_type,latent,hi4,inadequate,0
|
|
294
382
|
hpv_type,latent,ohr,positive_1618,0
|
|
295
383
|
hpv_type,latent,ohr,positive_ohr,0
|
|
296
384
|
hpv_type,latent,ohr,negative,1
|
|
@@ -315,6 +403,14 @@ hpv_type,precin,hi5,positive_1618,0
|
|
|
315
403
|
hpv_type,precin,hi5,positive_ohr,0.9
|
|
316
404
|
hpv_type,precin,hi5,negative,0.1
|
|
317
405
|
hpv_type,precin,hi5,inadequate,0
|
|
406
|
+
hpv_type,precin,hpv45,positive_1618,0
|
|
407
|
+
hpv_type,precin,hpv45,positive_ohr,0.9
|
|
408
|
+
hpv_type,precin,hpv45,negative,0.1
|
|
409
|
+
hpv_type,precin,hpv45,inadequate,0
|
|
410
|
+
hpv_type,precin,hi4,positive_1618,0
|
|
411
|
+
hpv_type,precin,hi4,positive_ohr,0.9
|
|
412
|
+
hpv_type,precin,hi4,negative,0.1
|
|
413
|
+
hpv_type,precin,hi4,inadequate,0
|
|
318
414
|
hpv_type,precin,ohr,positive_1618,0
|
|
319
415
|
hpv_type,precin,ohr,positive_ohr,0.9
|
|
320
416
|
hpv_type,precin,ohr,negative,0.1
|
|
@@ -339,6 +435,14 @@ hpv_type,cin,hi5,positive_1618,0
|
|
|
339
435
|
hpv_type,cin,hi5,positive_ohr,0.9
|
|
340
436
|
hpv_type,cin,hi5,negative,0.1
|
|
341
437
|
hpv_type,cin,hi5,inadequate,0
|
|
438
|
+
hpv_type,cin,hpv45,positive_1618,0
|
|
439
|
+
hpv_type,cin,hpv45,positive_ohr,0.9
|
|
440
|
+
hpv_type,cin,hpv45,negative,0.1
|
|
441
|
+
hpv_type,cin,hpv45,inadequate,0
|
|
442
|
+
hpv_type,cin,hi4,positive_1618,0
|
|
443
|
+
hpv_type,cin,hi4,positive_ohr,0.9
|
|
444
|
+
hpv_type,cin,hi4,negative,0.1
|
|
445
|
+
hpv_type,cin,hi4,inadequate,0
|
|
342
446
|
hpv_type,cin,ohr,positive_1618,0
|
|
343
447
|
hpv_type,cin,ohr,positive_ohr,0.9
|
|
344
448
|
hpv_type,cin,ohr,negative,0.1
|
|
@@ -363,6 +467,14 @@ hpv_type,cancerous,hi5,positive_1618,0
|
|
|
363
467
|
hpv_type,cancerous,hi5,positive_ohr,0.9
|
|
364
468
|
hpv_type,cancerous,hi5,negative,0.1
|
|
365
469
|
hpv_type,cancerous,hi5,inadequate,0
|
|
470
|
+
hpv_type,cancerous,hpv45,positive_1618,0
|
|
471
|
+
hpv_type,cancerous,hpv45,positive_ohr,0.9
|
|
472
|
+
hpv_type,cancerous,hpv45,negative,0.1
|
|
473
|
+
hpv_type,cancerous,hpv45,inadequate,0
|
|
474
|
+
hpv_type,cancerous,hi4,positive_1618,0
|
|
475
|
+
hpv_type,cancerous,hi4,positive_ohr,0.9
|
|
476
|
+
hpv_type,cancerous,hi4,negative,0.1
|
|
477
|
+
hpv_type,cancerous,hi4,inadequate,0
|
|
366
478
|
hpv_type,cancerous,ohr,positive_1618,0
|
|
367
479
|
hpv_type,cancerous,ohr,positive_ohr,0.9
|
|
368
480
|
hpv_type,cancerous,ohr,negative,0.1
|
|
@@ -8,48 +8,64 @@ excision,cancerous,all,0
|
|
|
8
8
|
txvx1,latent,hpv16,0.01
|
|
9
9
|
txvx1,latent,hpv18,0.01
|
|
10
10
|
txvx1,latent,hi5,0.01
|
|
11
|
+
txvx1,latent,hpv45,0.01
|
|
12
|
+
txvx1,latent,hi4,0.01
|
|
11
13
|
txvx1,latent,ohr,0.01
|
|
12
14
|
txvx1,latent,hr,0.01
|
|
13
15
|
txvx1,latent,lr,0.01
|
|
14
16
|
txvx1,precin,hpv16,0.01
|
|
15
17
|
txvx1,precin,hpv18,0.01
|
|
16
18
|
txvx1,precin,hi5,0.01
|
|
19
|
+
txvx1,precin,hpv45,0.01
|
|
20
|
+
txvx1,precin,hi4,0.01
|
|
17
21
|
txvx1,precin,ohr,0.01
|
|
18
22
|
txvx1,precin,hr,0.01
|
|
19
23
|
txvx1,precin,lr,0.01
|
|
20
24
|
txvx1,cin,hpv16,0.01
|
|
21
25
|
txvx1,cin,hpv18,0.01
|
|
22
26
|
txvx1,cin,hi5,0.01
|
|
27
|
+
txvx1,cin,hpv45,0.01
|
|
28
|
+
txvx1,cin,hi4,0.01
|
|
23
29
|
txvx1,cin,ohr,0.01
|
|
24
30
|
txvx1,cin,hr,0.01
|
|
25
31
|
txvx1,cin,lr,0.01
|
|
26
32
|
txvx1,cancerous,hpv16,0
|
|
27
33
|
txvx1,cancerous,hpv18,0
|
|
28
34
|
txvx1,cancerous,hi5,0
|
|
35
|
+
txvx1,cancerous,hpv45,0
|
|
36
|
+
txvx1,cancerous,hi4,0
|
|
29
37
|
txvx1,cancerous,ohr,0
|
|
30
38
|
txvx1,cancerous,hr,0
|
|
31
39
|
txvx1,cancerous,lr,0
|
|
32
40
|
txvx2,latent,hpv16,0.9
|
|
33
41
|
txvx2,latent,hpv18,0.9
|
|
34
42
|
txvx2,latent,hi5,0.01
|
|
43
|
+
txvx2,latent,hpv45,0.01
|
|
44
|
+
txvx2,latent,hi4,0.01
|
|
35
45
|
txvx2,latent,ohr,0.01
|
|
36
46
|
txvx2,latent,hr,0.01
|
|
37
47
|
txvx2,latent,lr,0.01
|
|
38
48
|
txvx2,precin,hpv16,0.9
|
|
39
49
|
txvx2,precin,hpv18,0.9
|
|
40
50
|
txvx2,precin,hi5,0.01
|
|
51
|
+
txvx2,precin,hpv45,0.01
|
|
52
|
+
txvx2,precin,hi4,0.01
|
|
41
53
|
txvx2,precin,ohr,0.01
|
|
42
54
|
txvx2,precin,hr,0.01
|
|
43
55
|
txvx2,precin,lr,0.01
|
|
44
56
|
txvx2,cin,hpv16,0.5
|
|
45
57
|
txvx2,cin,hpv18,0.5
|
|
46
58
|
txvx2,cin,hi5,0.01
|
|
59
|
+
txvx2,cin,hpv45,0.01
|
|
60
|
+
txvx2,cin,hi4,0.01
|
|
47
61
|
txvx2,cin,ohr,0.01
|
|
48
62
|
txvx2,cin,hr,0.01
|
|
49
63
|
txvx2,cin,lr,0.01
|
|
50
64
|
txvx2,cancerous,hpv16,0
|
|
51
65
|
txvx2,cancerous,hpv18,0
|
|
52
66
|
txvx2,cancerous,hi5,0
|
|
67
|
+
txvx2,cancerous,hpv45,0
|
|
68
|
+
txvx2,cancerous,hi4,0
|
|
53
69
|
txvx2,cancerous,ohr,0
|
|
54
70
|
txvx2,cancerous,hr,0
|
|
55
71
|
txvx2,cancerous,lr,0
|
|
@@ -2,12 +2,16 @@ name,genotype,rel_imm
|
|
|
2
2
|
txvx1,hpv16,1
|
|
3
3
|
txvx1,hpv18,1
|
|
4
4
|
txvx1,hi5,0.5
|
|
5
|
+
txvx1,hpv45,0.5
|
|
6
|
+
txvx1,hi4,0.5
|
|
5
7
|
txvx1,ohr,0.5
|
|
6
8
|
txvx1,hr,0.5
|
|
7
9
|
txvx1,lr,0.3
|
|
8
10
|
txvx2,hpv16,1
|
|
9
11
|
txvx2,hpv18,1
|
|
10
12
|
txvx2,hi5,0.5
|
|
13
|
+
txvx2,hpv45,0.5
|
|
14
|
+
txvx2,hi4,0.5
|
|
11
15
|
txvx2,ohr,0.5
|
|
12
16
|
txvx2,hr,0.5
|
|
13
17
|
txvx2,lr,0.3
|
|
@@ -2,18 +2,24 @@ name,genotype,rel_imm
|
|
|
2
2
|
bivalent,hpv16,1
|
|
3
3
|
bivalent,hpv18,1
|
|
4
4
|
bivalent,hi5,0.5
|
|
5
|
+
bivalent,hpv45,0.5
|
|
6
|
+
bivalent,hi4,0.5
|
|
5
7
|
bivalent,ohr,0.1
|
|
6
8
|
bivalent,hr,0.3
|
|
7
9
|
bivalent,lr,0.3
|
|
8
10
|
quadrivalent,hpv16,1
|
|
9
11
|
quadrivalent,hpv18,1
|
|
10
12
|
quadrivalent,hi5,0.5
|
|
13
|
+
quadrivalent,hpv45,0.5
|
|
14
|
+
quadrivalent,hi4,0.5
|
|
11
15
|
quadrivalent,ohr,0.1
|
|
12
16
|
quadrivalent,hr,0.3
|
|
13
17
|
quadrivalent,lr,1
|
|
14
18
|
nonavalent,hpv16,1
|
|
15
19
|
nonavalent,hpv18,1
|
|
16
20
|
nonavalent,hi5,1
|
|
21
|
+
nonavalent,hpv45,1
|
|
22
|
+
nonavalent,hi4,1
|
|
17
23
|
nonavalent,ohr,0.1
|
|
18
24
|
nonavalent,hr,0.5
|
|
19
25
|
nonavalent,lr,1
|
|
@@ -45,15 +45,11 @@ class HIVsim(hpb.ParsObj):
|
|
|
45
45
|
"rel_reactivation_prob": 3, # Unused for now
|
|
46
46
|
"model_hiv_death": True, # whether or not to model HIV mortality. Typically only set to False for testing purposes
|
|
47
47
|
"time_to_hiv_death_shape": 2, # shape parameter for weibull distribution, based on https://royalsocietypublishing.org/action/downloadSupplement?doi=10.1098%2Frsif.2013.0613&file=rsif20130613supp1.pdf
|
|
48
|
-
"
|
|
49
|
-
- 0.2717
|
|
50
|
-
* a, # scale parameter for weibull distribution, based on https://royalsocietypublishing.org/action/downloadSupplement?doi=10.1098%2Frsif.2013.0613&file=rsif20130613supp1.pdf
|
|
48
|
+
"time_to_hiv_death_scale_pars": dict(m=21.182, b=-0.2717), # scale parameter for weibull distribution, based on https://royalsocietypublishing.org/action/downloadSupplement?doi=10.1098%2Frsif.2013.0613&file=rsif20130613supp1.pdf
|
|
51
49
|
"hiv_death_adj": 1,
|
|
52
50
|
"cd4_start": dict(dist="normal", par1=594, par2=20),
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
"cd4_reconstitution": lambda m: 15.584 * m
|
|
56
|
-
- 0.2113 * m**2, # growth in CD4 count following ART initiation
|
|
51
|
+
"cd4_pars": dict(m=24.363, b=-16.672), # based on https://docs.idmod.org/projects/emod-hiv/en/latest/hiv-model-healthcare-systems.html?highlight=art#art-s-impact-on-cd4-count
|
|
52
|
+
"cd4_reconstitution_pars": dict(b1=15.584, b2=-0.2113), # growth in CD4 count following ART initiation
|
|
57
53
|
"art_failure_prob": 0.0, # Percentage of people on ART who will fail treatment
|
|
58
54
|
"dt_art": 1.0, # Timestep for art updates (in years)
|
|
59
55
|
}
|
|
@@ -63,7 +59,9 @@ class HIVsim(hpb.ParsObj):
|
|
|
63
59
|
self.init_results(sim)
|
|
64
60
|
|
|
65
61
|
y = np.linspace(0, 1, 101)
|
|
66
|
-
|
|
62
|
+
# Calculate the CD4 trajectory based on the parameters
|
|
63
|
+
m, b = self["hiv_pars"]["cd4_pars"]["m"], self["hiv_pars"]["cd4_pars"]["b"]
|
|
64
|
+
cd4_decline = m + b* y # CD4 decline trajectory
|
|
67
65
|
self.cd4_decline_diff = np.diff(cd4_decline)
|
|
68
66
|
sim.pars["hiv_pars"]["mortality_rates"] = self.pars["mortality_rates"]
|
|
69
67
|
return
|
|
@@ -235,7 +233,8 @@ class HIVsim(hpb.ParsObj):
|
|
|
235
233
|
shape = self["hiv_pars"]["time_to_hiv_death_shape"]
|
|
236
234
|
dt = people.pars["dt"]
|
|
237
235
|
if self["hiv_pars"]["model_hiv_death"]:
|
|
238
|
-
|
|
236
|
+
m, b = self["hiv_pars"]["time_to_hiv_death_scale_pars"]["m"], self["hiv_pars"]["time_to_hiv_death_scale_pars"]["b"]
|
|
237
|
+
scale = m + b*people.age[inds]
|
|
239
238
|
adjust = self["hiv_pars"]["hiv_death_adj"]
|
|
240
239
|
scale = np.maximum(scale, 0)
|
|
241
240
|
time_to_hiv_death = adjust * weibull_min.rvs(
|
|
@@ -300,7 +299,8 @@ class HIVsim(hpb.ParsObj):
|
|
|
300
299
|
# Now take care of people successfully on ART (CD4 reconstitutes)
|
|
301
300
|
mpy = 12
|
|
302
301
|
months_on_ART = (people.t - people.date_art[art_success_inds]) * mpy
|
|
303
|
-
|
|
302
|
+
b1, b2 = self["hiv_pars"]["cd4_reconstitution_pars"]["b1"], self["hiv_pars"]["cd4_reconstitution_pars"]["b2"]
|
|
303
|
+
cd4_change = b1*months_on_ART + b2*months_on_ART**2
|
|
304
304
|
cd4_change[cd4_change < 0] = 0
|
|
305
305
|
people.cd4[art_success_inds] += cd4_change
|
|
306
306
|
|
|
@@ -212,7 +212,7 @@ def check_immunity(people):
|
|
|
212
212
|
Now suppose we have 3 people, whose immunity levels are
|
|
213
213
|
|
|
214
214
|
people.nab_imm = np.array([[0.9, 0.0, 0.0],
|
|
215
|
-
|
|
215
|
+
[0.0, 0.7, 0.0]])
|
|
216
216
|
|
|
217
217
|
This indicates that person 1 has a prior HPV16 infection, person 2 has a prior HPV18
|
|
218
218
|
infection, and person 3 has no history of infection.
|