This document outlines the recommended organisation of the GitHub repository accompanying the manuscript "An exploration into how susceptibility distribution misspecifications impact epidemic forecasting".
susceptibility-distribution-misspecification/
├── README.md # Repository documentation
├── LICENSE.txt # MIT License
├── .gitignore # Git ignore rules for R projects
├── install_packages.R # Script to install required packages
├── 0_run_all.R # Driver script
├── R/ # Core functions
│ └── 1_helpers.R # Model, discretisation, likelihood, and fitting functions
├── scripts/ # Analysis scripts
│ ├── 2_single_epidemic_misspec_hom.R
│ ├── 3_two_epidemics_misspec_hom.R
│ ├── 4_distribution_level_validation.R
│ ├── 5_single_epidemic_CV_sweep.R
│ ├── 6_two_epidemics_CV_sweep.R
│ └── 7_gamma_reduced_trajectory_validation.R
├── results/ # Generated numerical results
│ ├── inference/
│ ├── cv_sensitivity/
│ ├── distribution_validation/
│ └── trajectory_validation/
├── figures/ # Generated plots and visualisations
│ ├── inference/
│ ├── cv_sensitivity/
│ ├── distribution_validation/
│ └── trajectory_validation/
└── paper/ # Manuscript files
├── misspec_main.pdf
└── misspec_p2_sm.pdf
Generalfun_mispec_distribution.R→R/1_helpers.RMLE_functions_paper.R→R/1_helpers.R
These two working files are combined into one helper file so that all analysis scripts call a single source file.
Single_Epidemic_misspec_hom.R→scripts/2_single_epidemic_misspec_hom.RTwo_Epidemics_misspec_hom.R→scripts/3_two_epidemics_misspec_hom.Rdistribution_level_analysis_LA_SM.R→scripts/4_distribution_level_validation.RSingle_Epidemic_CV_sweep.R→scripts/5_single_epidemic_CV_sweep.RTwo_Epidemics_CV_sweep.R→scripts/6_two_epidemics_CV_sweep.RMatch_hetsus_vs_reduced_ch5.R→scripts/7_gamma_reduced_trajectory_validation.R
misspec_main.pdf→paper/misspec_main.pdfmisspec_p2_sm.pdf→paper/misspec_p2_sm.pdf
This file should contain only reusable functions. It should not run the full simulation analysis automatically when sourced.
Each analysis script should contain:
- A header explaining the purpose of the script.
- Required library calls.
- A source statement for
R/1_helpers.Rwhere needed. - Parameter definitions.
- Simulation, fitting, analysis, and export sections.
- Clear output filenames.
The results/ and figures/ directories are included for organisation, but many scripts currently write output files to the working directory. This is intentional to preserve the original analysis logic. Outputs can be moved into subfolders after a run if desired.
For the baseline paper results:
source("scripts/2_single_epidemic_misspec_hom.R")
source("scripts/3_two_epidemics_misspec_hom.R")For full supporting analyses:
source("scripts/4_distribution_level_validation.R")
source("scripts/5_single_epidemic_CV_sweep.R")
source("scripts/6_two_epidemics_CV_sweep.R")
source("scripts/7_gamma_reduced_trajectory_validation.R")Or use:
RUN_DISTRIBUTION_VALIDATION=true RUN_TRAJECTORY_VALIDATION=true RUN_CV_SWEEPS=true Rscript 0_run_all.R