hpvsim 2.2.4__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.
Files changed (168) hide show
  1. {hpvsim-2.2.4 → hpvsim-2.2.6}/.github/workflows/pypi_release.yaml +2 -1
  2. {hpvsim-2.2.4 → hpvsim-2.2.6}/.github/workflows/tests.yaml +5 -1
  3. {hpvsim-2.2.4 → hpvsim-2.2.6}/.readthedocs.yaml +5 -2
  4. {hpvsim-2.2.4 → hpvsim-2.2.6}/CHANGELOG.rst +12 -0
  5. {hpvsim-2.2.4 → hpvsim-2.2.6}/LICENSE +1 -1
  6. {hpvsim-2.2.4/hpvsim.egg-info → hpvsim-2.2.6}/PKG-INFO +4 -4
  7. {hpvsim-2.2.4 → hpvsim-2.2.6}/README.rst +2 -2
  8. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/_templates/page.html +0 -9
  9. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/conf.py +0 -3
  10. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/requirements.txt +1 -1
  11. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/data/products_dx.csv +112 -0
  12. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/data/products_tx.csv +16 -0
  13. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/data/products_txvx.csv +4 -0
  14. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/data/products_vx.csv +6 -0
  15. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/interventions.py +3 -2
  16. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/parameters.py +66 -1
  17. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/version.py +3 -3
  18. {hpvsim-2.2.4 → hpvsim-2.2.6/hpvsim.egg-info}/PKG-INFO +4 -4
  19. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim.egg-info/SOURCES.txt +1 -1
  20. hpvsim-2.2.6/hpvsim.egg-info/entry_points.txt +2 -0
  21. {hpvsim-2.2.4 → hpvsim-2.2.6}/pyproject.toml +4 -1
  22. hpvsim-2.2.4/docs/robots.txt +0 -2
  23. {hpvsim-2.2.4 → hpvsim-2.2.6}/.gitignore +0 -0
  24. {hpvsim-2.2.4 → hpvsim-2.2.6}/CODE_OF_CONDUCT.rst +0 -0
  25. {hpvsim-2.2.4 → hpvsim-2.2.6}/MANIFEST.in +0 -0
  26. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/Makefile +0 -0
  27. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/README.md +0 -0
  28. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/_static/theme_overrides.css +0 -0
  29. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/_templates/custom-class-template.rst +0 -0
  30. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/_templates/custom-function-template.rst +0 -0
  31. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/_templates/custom-module-template.rst +0 -0
  32. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/_templates/footer_end.html +0 -0
  33. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/_templates/footer_start.html +0 -0
  34. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/_templates/navbar-side.html +0 -0
  35. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/api/index.rst +0 -0
  36. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/build_docs +0 -0
  37. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/images/favicon.ico +0 -0
  38. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/images/idm-logo-transparent.png +0 -0
  39. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/index.html +0 -0
  40. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/index.rst +0 -0
  41. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/overview.rst +0 -0
  42. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials/README.rst +0 -0
  43. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials/clean_outputs +0 -0
  44. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials/example_cancer_cases.csv +0 -0
  45. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials/nigeria_cancer_cases.csv +0 -0
  46. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials/nigeria_cancer_types.csv +0 -0
  47. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials/south_africa_age_pyramid.csv +0 -0
  48. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials/tut_analyzers.ipynb +0 -0
  49. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials/tut_calibration.ipynb +0 -0
  50. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials/tut_interventions.ipynb +0 -0
  51. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials/tut_intro.ipynb +0 -0
  52. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials/tut_people.ipynb +0 -0
  53. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials/tut_plotting.ipynb +0 -0
  54. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials/tut_running.ipynb +0 -0
  55. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/tutorials.rst +0 -0
  56. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/variables.txt +0 -0
  57. {hpvsim-2.2.4 → hpvsim-2.2.6}/docs/whats-new.rst +0 -0
  58. {hpvsim-2.2.4 → hpvsim-2.2.6}/examples/t05_screen_algorithms.py +0 -0
  59. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/__init__.py +0 -0
  60. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/analysis.py +0 -0
  61. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/base.py +0 -0
  62. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/calibration.py +0 -0
  63. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/data/__init__.py +0 -0
  64. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/data/downloaders.py +0 -0
  65. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/data/loaders.py +0 -0
  66. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/data/test_downloaders.py +0 -0
  67. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/data/test_loaders.py +0 -0
  68. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/defaults.py +0 -0
  69. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/hiv.py +0 -0
  70. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/immunity.py +0 -0
  71. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/misc.py +0 -0
  72. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/people.py +0 -0
  73. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/plotting.py +0 -0
  74. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/population.py +0 -0
  75. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/regression/pars_v0.2.6.json +0 -0
  76. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/regression/pars_v0.2.9.json +0 -0
  77. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/regression/pars_v0.3.0.json +0 -0
  78. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/regression/pars_v0.3.1.json +0 -0
  79. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/run.py +0 -0
  80. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/settings.py +0 -0
  81. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/sim.py +0 -0
  82. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim/utils.py +0 -0
  83. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim.egg-info/dependency_links.txt +0 -0
  84. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim.egg-info/requires.txt +0 -0
  85. {hpvsim-2.2.4 → hpvsim-2.2.6}/hpvsim.egg-info/top_level.txt +0 -0
  86. {hpvsim-2.2.4 → hpvsim-2.2.6}/setup.cfg +0 -0
  87. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/.coveragerc +0 -0
  88. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/README.rst +0 -0
  89. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/baseline.json +0 -0
  90. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/benchmark.json +0 -0
  91. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/benchmark_profile.py +0 -0
  92. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/check_coverage +0 -0
  93. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/check_hiv_data.py +0 -0
  94. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/hpv_test_pars.csv +0 -0
  95. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/multiscale_concept1.py +0 -0
  96. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/multiscale_concept2.py +0 -0
  97. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/multiscale_concept3.py +0 -0
  98. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/multiscale_test.df +0 -0
  99. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/mysql_hpvsim_test.py +0 -0
  100. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/mysql_test.py +0 -0
  101. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/network_dx.py +0 -0
  102. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/plot_nathx.py +0 -0
  103. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/setup_mysql +0 -0
  104. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_cancer_dysp.py +0 -0
  105. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_dt.py +0 -0
  106. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_hiv.py +0 -0
  107. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_latency.py +0 -0
  108. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_logistic.py +0 -0
  109. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_merge_scens.py +0 -0
  110. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_multiscale.py +0 -0
  111. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_multiscale_pars.py +0 -0
  112. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_networks.py +0 -0
  113. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_new_progs.py +0 -0
  114. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_parameter_exploration.py +0 -0
  115. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_popgrowth.py +0 -0
  116. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_popscale.py +0 -0
  117. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_sampler.py +0 -0
  118. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/test_txvx.py +0 -0
  119. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/devtests/tut_parameter_exploration.ipynb +0 -0
  120. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/hpvsim_v1.2.2.yml +0 -0
  121. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/pytest.ini +0 -0
  122. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/requirements.txt +0 -0
  123. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/run_tests +0 -0
  124. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/simple.py +0 -0
  125. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_analysis.py +0 -0
  126. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_baselines.py +0 -0
  127. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_calibration.py +0 -0
  128. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/RSA_data.csv +0 -0
  129. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/art_coverage_south_africa.csv +0 -0
  130. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/australia_age_pyramid.csv +0 -0
  131. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/hiv_incidence_south_africa.csv +0 -0
  132. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/india_cancer_cases.csv +0 -0
  133. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/india_cancer_deaths.csv +0 -0
  134. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/india_cancer_types.csv +0 -0
  135. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/india_cin_types.csv +0 -0
  136. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/india_data.csv +0 -0
  137. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/india_hpv_data.csv +0 -0
  138. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/india_hpv_prevalence.csv +0 -0
  139. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/kenya_age_pyramid.csv +0 -0
  140. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/kenya_cancer_incidence.csv +0 -0
  141. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/kenya_cancer_mortality.csv +0 -0
  142. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/kenya_data.csv +0 -0
  143. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/param_space.csv +0 -0
  144. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/param_space_filled.csv +0 -0
  145. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/south_africa_age_pyramid.csv +0 -0
  146. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/south_africa_art_coverage_by_age_females.csv +0 -0
  147. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/south_africa_art_coverage_by_age_males.csv +0 -0
  148. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/south_africa_cancer_data_2020.csv +0 -0
  149. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/south_africa_cancer_data_hiv_2020.csv +0 -0
  150. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/south_africa_cancer_incidence_by_age_no_hiv.csv +0 -0
  151. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/south_africa_cancer_incidence_by_age_with_hiv.csv +0 -0
  152. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/south_africa_female_hiv_mortality.csv +0 -0
  153. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/south_africa_hpv_data.csv +0 -0
  154. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/south_africa_male_hiv_mortality.csv +0 -0
  155. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/south_africa_target_data.csv +0 -0
  156. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/south_africa_type_distribution_cancer.csv +0 -0
  157. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/south_africa_type_distribution_high_grade_lesion.csv +0 -0
  158. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/tanzania_age_pyramid.csv +0 -0
  159. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/tanzania_data.csv +0 -0
  160. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/test_tx_assigner.csv +0 -0
  161. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/test_via.csv +0 -0
  162. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data/test_via_triage.csv +0 -0
  163. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_data.py +0 -0
  164. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_event_schedule.py +0 -0
  165. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_interventions.py +0 -0
  166. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_run.py +0 -0
  167. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/test_sim.py +0 -0
  168. {hpvsim-2.2.4 → hpvsim-2.2.6}/tests/update_baseline +0 -0
@@ -1,6 +1,7 @@
1
- name: Publish to PyPI
1
+ name: Publish HPVsim to PyPI (manual)
2
2
 
3
3
  on:
4
+ workflow_dispatch:
4
5
  push:
5
6
  tags:
6
7
  - 'v*'
@@ -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.12' ]
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-20.04
10
+ os: ubuntu-24.04
11
11
  tools:
12
- python: "3.9"
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,18 @@ 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
+
12
24
  Version 2.2.4 (2025-08-20)
13
25
  ---------------------------
14
26
  - Fixes a bug in analyzer results for cancer by age and HIV status
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2023-2025 Bill & Melinda Gates Foundation
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.4
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/institutefordiseasemodeling/hpvsim/
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
@@ -65,7 +65,7 @@ HPVsim has been used for analyses in several countries. Academic papers that hav
65
65
  Installation
66
66
  ------------
67
67
 
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).
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.
69
69
 
70
70
 
71
71
  Usage and documentation
@@ -77,7 +77,7 @@ Documentation is available at https://docs.hpvsim.org. Additional usage examples
77
77
  Contributing
78
78
  ------------
79
79
 
80
- If you wish to contribute, please follow the Starsim style guide at: https://github.com/amath-idm/styleguide. See the code of conduct readme for more information.
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.
81
81
 
82
82
 
83
83
  Disclaimer
@@ -35,7 +35,7 @@ HPVsim has been used for analyses in several countries. Academic papers that hav
35
35
  Installation
36
36
  ------------
37
37
 
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).
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.
39
39
 
40
40
 
41
41
  Usage and documentation
@@ -47,7 +47,7 @@ Documentation is available at https://docs.hpvsim.org. Additional usage examples
47
47
  Contributing
48
48
  ------------
49
49
 
50
- If you wish to contribute, please follow the Starsim style guide at: https://github.com/amath-idm/styleguide. See the code of conduct readme for more information.
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.
51
51
 
52
52
 
53
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.
@@ -6,7 +6,7 @@ pydata-sphinx-theme
6
6
  sphinx-design
7
7
  readthedocs-sphinx-search
8
8
  ipykernel # For tutorials
9
- nbconvert==7.13.0 # For tutorials; >=7.14 does not work
9
+ nbconvert==7.17.0 # For tutorials; >=7.14 does not work
10
10
  nbsphinx # For tutorials
11
11
  plantweb
12
12
  ipykernel
@@ -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
@@ -390,8 +390,9 @@ class CampaignDelivery(Intervention):
390
390
  elif len(self.prob) == 1:
391
391
  self.prob = np.array([self.prob[0]] * len(self.timepoints))
392
392
  else:
393
- errormsg = f'Length of years incompatible with length of probabilities: {len(self.years)} vs {len(self.prob)}'
394
- raise ValueError(errormsg)
393
+ if len(self.prob) != len(self.years):
394
+ errormsg = f'Length of years incompatible with length of probabilities: {len(self.years)} vs {len(self.prob)}'
395
+ raise ValueError(errormsg)
395
396
 
396
397
  # Lastly, adjust the annual probability by the sim's timestep, if it's an annual probability
397
398
  if self.annual_prob: self.prob = 1-(1-self.prob)**sim['dt']
@@ -267,7 +267,9 @@ def get_genotype_choices():
267
267
  choices = {
268
268
  'hpv16': ['hpv16', '16'],
269
269
  'hpv18': ['hpv18', '18'],
270
+ 'hpv45': ['hpv45', '45'],
270
271
  'hi5': ['hi5hpv', 'hi5hpv', 'cross-protective'],
272
+ 'hi4': ['hi4', 'hi4hpv'],
271
273
  'ohr': ['ohrhpv', 'non-cross-protective'],
272
274
  'hr': ['allhr', 'allhrhpv', 'hrhpv', 'oncogenic', 'hr10', 'hi10'],
273
275
  'lo': ['lohpv'],
@@ -347,6 +349,16 @@ def get_genotype_pars(default=False, genotype=None):
347
349
  pars.hpv18.rel_beta = 0.75 # Relative transmissibility, current estimate from Harvard model calibration of m2f tx
348
350
  pars.hpv18.sero_prob = 0.56 # https://www.sciencedirect.com/science/article/pii/S2666679022000027#fig1
349
351
 
352
+ # using same parameter values as high-risk oncogenic types included in 9valent vaccine (31, 33, 45, 52, 58)
353
+ # Warning: this should not be used in conjuction with hi5 or hr
354
+ pars.hpv45 = sc.objdict()
355
+ pars.hpv45.dur_precin = dict(dist='lognormal', par1=2.5, par2=9) # Duration of infection prior to precancer
356
+ pars.hpv45.dur_cin = dict(dist='lognormal', par1=4.5, par2=20) # Duration of infection prior to cancer
357
+ pars.hpv45.cin_fn = dict(form='logf2', k=0.2, x_infl=0, ttc=50) # Function mapping duration of infection to probability of developing cin
358
+ pars.hpv45.cancer_fn = dict(method='cin_integral', transform_prob=1.5e-3) # Function mapping duration of infection to severity
359
+ pars.hpv45.rel_beta = 0.9 # placeholder
360
+ pars.hpv45.sero_prob = 0.60 # placeholder
361
+
350
362
  # High-risk oncogenic types included in 9valent vaccine: 31, 33, 45, 52, 58
351
363
  pars.hi5 = sc.objdict()
352
364
  pars.hi5.dur_precin = dict(dist='lognormal', par1=2.5, par2=9) # Duration of infection prior to precancer
@@ -356,6 +368,16 @@ def get_genotype_pars(default=False, genotype=None):
356
368
  pars.hi5.rel_beta = 0.9 # placeholder
357
369
  pars.hi5.sero_prob = 0.60 # placeholder
358
370
 
371
+ # High-risk oncogenic types included in 9valent vaccine, excluding 45: 31, 33, 52, 58
372
+ # Warning: this should not be used in conjunction with hi5 or hr
373
+ pars.hi4 = sc.objdict()
374
+ pars.hi4.dur_precin = dict(dist='lognormal', par1=2.5, par2=9) # Duration of infection prior to precancer
375
+ pars.hi4.dur_cin = dict(dist='lognormal', par1=4.5, par2=20) # Duration of infection prior to cancer
376
+ pars.hi4.cin_fn = dict(form='logf2', k=0.2, x_infl=0, ttc=50) # Function mapping duration of infection to probability of developing cin
377
+ pars.hi4.cancer_fn = dict(method='cin_integral', transform_prob=1.5e-3) # Function mapping duration of infection to severity
378
+ pars.hi4.rel_beta = 0.9 # placeholder
379
+ pars.hi4.sero_prob = 0.60 # placeholder
380
+
359
381
  # Other high-risk: oncogenic but not covered in 9valent vaccine: 35, 39, 51, 56, 59
360
382
  pars.ohr = sc.objdict()
361
383
  pars.ohr.dur_precin = dict(dist='lognormal', par1=2.5, par2=9) # Duration of infection prior to precancer
@@ -366,7 +388,7 @@ def get_genotype_pars(default=False, genotype=None):
366
388
  pars.ohr.sero_prob = 0.60 # placeholder
367
389
 
368
390
  # All other high-risk types: 31, 33, 35, 39, 45, 51, 52, 56, 58, 59
369
- # Warning: this should not be used in conjuction with hi5 or ohr
391
+ # Warning: this should not be used in conjuction with hi5, 45/hi4, or ohr
370
392
  pars.hr = sc.objdict()
371
393
  pars.hr.dur_precin = dict(dist='lognormal', par1=2, par2=10) # Duration of infection prior to precancer
372
394
  pars.hr.dur_cin = dict(dist='lognormal', par1=4, par2=4) # Duration of infection prior to cancer
@@ -396,7 +418,9 @@ def get_cross_immunity(cross_imm_med=None, cross_imm_high=None, own_imm_hr=None,
396
418
  hpv16 = dict(
397
419
  hpv16=1.0, # Default for own-immunity
398
420
  hpv18=cross_imm_high,
421
+ hpv45=cross_imm_med,
399
422
  hi5=cross_imm_med,
423
+ hi4=cross_imm_med,
400
424
  ohr=cross_imm_med,
401
425
  hr=cross_imm_med,
402
426
  lr=cross_imm_med,
@@ -405,7 +429,20 @@ def get_cross_immunity(cross_imm_med=None, cross_imm_high=None, own_imm_hr=None,
405
429
  hpv18 = dict(
406
430
  hpv16=cross_imm_high,
407
431
  hpv18=1.0, # Default for own-immunity
432
+ hpv45=cross_imm_med,
408
433
  hi5=cross_imm_med,
434
+ hi4=cross_imm_med,
435
+ ohr=cross_imm_med,
436
+ hr=cross_imm_med,
437
+ lr=cross_imm_med,
438
+ ),
439
+
440
+ hpv45 = dict(
441
+ hpv16=cross_imm_med,
442
+ hpv18=cross_imm_med,
443
+ hpv45=own_imm_hr,
444
+ hi5=cross_imm_med,
445
+ hi4=cross_imm_med,
409
446
  ohr=cross_imm_med,
410
447
  hr=cross_imm_med,
411
448
  lr=cross_imm_med,
@@ -414,7 +451,20 @@ def get_cross_immunity(cross_imm_med=None, cross_imm_high=None, own_imm_hr=None,
414
451
  hi5=dict(
415
452
  hpv16=cross_imm_med,
416
453
  hpv18=cross_imm_med,
454
+ hpv45=cross_imm_med,
417
455
  hi5=own_imm_hr,
456
+ hi4=cross_imm_med,
457
+ ohr=cross_imm_med,
458
+ hr=cross_imm_med,
459
+ lr=cross_imm_med,
460
+ ),
461
+
462
+ hi4=dict(
463
+ hpv16=cross_imm_med,
464
+ hpv18=cross_imm_med,
465
+ hpv45=cross_imm_med,
466
+ hi5=cross_imm_med,
467
+ hi4=own_imm_hr,
418
468
  ohr=cross_imm_med,
419
469
  hr=cross_imm_med,
420
470
  lr=cross_imm_med,
@@ -423,16 +473,31 @@ def get_cross_immunity(cross_imm_med=None, cross_imm_high=None, own_imm_hr=None,
423
473
  ohr=dict(
424
474
  hpv16=cross_imm_med,
425
475
  hpv18=cross_imm_med,
476
+ hpv45=cross_imm_med,
426
477
  hi5=cross_imm_med,
478
+ hi4=cross_imm_med,
427
479
  ohr=own_imm_hr,
428
480
  hr=cross_imm_med,
429
481
  lr=cross_imm_med,
430
482
  ),
431
483
 
484
+ hr=dict(
485
+ hpv16=cross_imm_med,
486
+ hpv18=cross_imm_med,
487
+ hpv45=cross_imm_med,
488
+ hi5=cross_imm_med,
489
+ hi4=cross_imm_med,
490
+ ohr=cross_imm_med,
491
+ hr=own_imm_hr,
492
+ lr=cross_imm_med,
493
+ ),
494
+
432
495
  lr=dict(
433
496
  hpv16=cross_imm_med,
434
497
  hpv18=cross_imm_med,
498
+ hpv45=cross_imm_med,
435
499
  hi5=cross_imm_med,
500
+ hi4=cross_imm_med,
436
501
  ohr=cross_imm_med,
437
502
  hr=cross_imm_med,
438
503
  lr=own_imm_hr,
@@ -4,6 +4,6 @@ Version and license information.
4
4
 
5
5
  __all__ = ['__version__', '__versiondate__', '__license__']
6
6
 
7
- __version__ = '2.2.4'
8
- __versiondate__ = '2025-08-20'
9
- __license__ = f'HPVsim {__version__} ({__versiondate__}) — © 2023-2025 by IDM'
7
+ __version__ = '2.2.6'
8
+ __versiondate__ = '2026-04-17'
9
+ __license__ = f'HPVsim {__version__} ({__versiondate__}) — © 2023-2026 by the Gates Foundation'