From eb6084e5f06e2e8a0dc90198382a1dadbfd9b105 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Fri, 29 Sep 2023 17:11:16 +0100 Subject: [PATCH 01/72] updated parameter library JSON to modular objects --- inst/extdata/parameters.json | 8828 +++++++++++++--------------------- 1 file changed, 3302 insertions(+), 5526 deletions(-) diff --git a/inst/extdata/parameters.json b/inst/extdata/parameters.json index 5f910722d..db2a58da1 100644 --- a/inst/extdata/parameters.json +++ b/inst/extdata/parameters.json @@ -3,7080 +3,4856 @@ "disease": "Adenovirus", "pathogen": "Adenovirus", "epi_distribution": "incubation_period", - "author": ["Justin Lessler", "Nicholas G. Reich", "Ron Brookmeyer", "Trish M. Perl", "Kenrad E. Nelson", "Derek A. T. Cummings"], - "title": "Incubation periods of acute respiratory viral infections: a systematic review", - "journal": "The Lancet Infectious Diseases", - "year": 2009, - "sample_size": 14, - "region": "USA", - "transmission_mode": "experimental", - "vector": null, - "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 4.8, - "median": 5.6, - "median_ci_limits": [4.8, 6.3], - "median_ci": 95, - "quantile_75": 6.5, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.26, - "dispersion_ci_limits": [1.13, 1.38], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Analysis on data from Commission on Acute Respiratory Disease. Experimental transmission of minor respiratory illness to human volunteers by filter-passing agents. I. Demonstration of two types of illness characterized by long and short incubation periods and diff erent clinical features. J Clin Invest 1947; 26: 957–82.", - "PMID": 19393959, - "DOI": "10.1016/S1473-3099(09)70069-6" + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.26, + "dispersion_ci_limits": [1.13, 1.38], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [4.8, 6.5], + "quantile_names": ["25", "75"], + "median": 5.6, + "median_ci_limits": [4.8, 6.3], + "median_ci": 95 + }, + "citation": { + "author": ["Justin Lessler", "Nicholas G. Reich", "Ron Brookmeyer", "Trish M. Perl", "Kenrad E. Nelson", "Derek A. T. Cummings"], + "title": "Incubation periods of acute respiratory viral infections: a systematic review", + "journal": "The Lancet Infectious Diseases", + "year": 2009, + "PMID": 19393959, + "DOI": "10.1016/S1473-3099(09)70069-6" + }, + "metadata": { + "sample_size": 14, + "region": "USA", + "transmission_mode": "experimental", + "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "Analysis on data from Commission on Acute Respiratory Disease. Experimental transmission of minor respiratory illness to human volunteers by filter-passing agents. I. Demonstration of two types of illness characterized by long and short incubation periods and diff erent clinical features. J Clin Invest 1947; 26: 957–82." }, { "disease": "Human Coronavirus", "pathogen": "Human_Cov", "epi_distribution": "incubation_period", - "author": ["Justin Lessler", "Nicholas G. Reich", "Ron Brookmeyer", "Trish M. Perl", "Kenrad E. Nelson", "Derek A. T. Cummings"], - "title": "Incubation periods of acute respiratory viral infections: a systematic review", - "journal": "The Lancet Infectious Diseases", - "year": 2009, - "sample_size": 13, - "region": "UK", - "transmission_mode": "experimental", - "vector": null, - "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "bayesian", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 2.9, - "median": 3.2, - "median_ci_limits": [2.8, 3.7], - "median_ci": 95, - "quantile_75": 3.5, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.15, - "dispersion_ci_limits": [1.07, 1.34], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Analysis on data from Bradburne AF, Bynoe ML, Tyrrell DA. Eff ects of a “new” human respiratory virus in volunteers. Br Med J 1967; 3: 767–69.", - "PMID": 19393959, - "DOI": "10.1016/S1473-3099(09)70069-7" + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.15, + "dispersion_ci_limits": [1.07, 1.34], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [2.9, 3.5], + "quantile_names": ["25", "75"], + "median": 3.2, + "median_ci_limits": [2.8, 3.7], + "median_ci": 95 + }, + "citation": { + "author": ["Justin Lessler", "Nicholas G. Reich", "Ron Brookmeyer", "Trish M. Perl", "Kenrad E. Nelson", "Derek A. T. Cummings"], + "title": "Incubation periods of acute respiratory viral infections: a systematic review", + "journal": "The Lancet Infectious Diseases", + "year": 2009, + "PMID": 19393959, + "DOI": "10.1016/S1473-3099(09)70069-7" + }, + "metadata": { + "sample_size": 13, + "region": "UK", + "transmission_mode": "experimental", + "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "Analysis on data from Bradburne AF, Bynoe ML, Tyrrell DA. Eff ects of a “new” human respiratory virus in volunteers. Br Med J 1967; 3: 767–69." }, { - "disease": "SARS", - "pathogen": "SARS-Cov-1", - "epi_distribution": "incubation_period", + "disease": "SARS", + "pathogen": "SARS-Cov-1", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.81, + "dispersion_ci_limits": [1.67, 1.95], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [1.5, 2.7, 5.9, 10.6], + "quantile_names": ["5", "25", "75", "95"], + "median": 4, + "median_ci_limits": [3.6, 4.4], + "median_ci": 95 + }, + "citation": { "author": ["Justin Lessler", "Nicholas G. Reich", "Ron Brookmeyer", "Trish M. Perl", "Kenrad E. Nelson", "Derek A. T. Cummings"], "title": "Incubation periods of acute respiratory viral infections: a systematic review", "journal": "The Lancet Infectious Diseases", "year": 2009, + "PMID": 19393959, + "DOI": "10.1016/S1473-3099(09)70069-8" + }, + "metadata": { "sample_size": 157, "region": "Mixed", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 1.5, - "quantile_25": 2.7, - "median": 4, - "median_ci_limits": [3.6, 4.4], - "median_ci": 95, - "quantile_75": 5.9, - "quantile_87.5": null, - "quantile_95": 10.6, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.81, - "dispersion_ci_limits": [1.67, 1.95], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets", - "PMID": 19393959, - "DOI": "10.1016/S1473-3099(09)70069-8" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets" +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.51, + "dispersion_ci_limits": [1.43, 1.6], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [0.7, 1.1, 1.9, 2.8], + "quantile_names": ["5", "25", "75", "95"], + "median": 1.4, + "median_ci_limits": [1.3, 1.5], + "median_ci": 95 + }, + "citation": { "author": ["Justin Lessler", "Nicholas G. Reich", "Ron Brookmeyer", "Trish M. Perl", "Kenrad E. Nelson", "Derek A. T. Cummings"], "title": "Incubation periods of acute respiratory viral infections: a systematic review", "journal": "The Lancet Infectious Diseases", "year": 2009, + "PMID": 19393959, + "DOI": "10.1016/S1473-3099(09)70069-9" + }, + "metadata": { "sample_size": 151, "region": "Mixed", "transmission_mode": "mixed", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 0.7, - "quantile_25": 1.1, - "median": 1.4, - "median_ci_limits": [1.3, 1.5], - "median_ci": 95, - "quantile_75": 1.9, - "quantile_87.5": null, - "quantile_95": 2.8, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.51, - "dispersion_ci_limits": [1.43, 1.6], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets", - "PMID": 19393959, - "DOI": "10.1016/S1473-3099(09)70069-9" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets" +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.23, + "dispersion_ci_limits": [1.17, 1.29], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [1.4, 1.7, 2.2, 2.7], + "quantile_names": ["5", "25", "75", "95"], + "median": 1.9, + "median_ci_limits": [1.8, 2], + "median_ci": 95 + }, + "citation": { "author": ["Justin Lessler", "Nicholas G. Reich", "Ron Brookmeyer", "Trish M. Perl", "Kenrad E. Nelson", "Derek A. T. Cummings"], "title": "Incubation periods of acute respiratory viral infections: a systematic review", "journal": "The Lancet Infectious Diseases", "year": 2009, + "PMID": 19393959, + "DOI": "10.1016/S1473-3099(09)70069-10" + }, + "metadata": { "sample_size": 90, "region": "Mixed", "transmission_mode": "mixed", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 1.4, - "quantile_25": 1.7, - "median": 1.9, - "median_ci_limits": [1.8, 2], - "median_ci": 95, - "quantile_75": 2.2, - "quantile_87.5": null, - "quantile_95": 2.7, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.23, - "dispersion_ci_limits": [1.17, 1.29], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "These estimates for the incubation period of influenza A from Lessler et al. 2009 are different from the estimates from the complete data, as they remove Henle et al. 1945 J Immunol, as it is an outlier in the dataset (n=61). Values found at the bottom Table 3.", - "PMID": 19393959, - "DOI": "10.1016/S1473-3099(09)70069-10" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-B", - "epi_distribution": "incubation_period", + "notes": "These estimates for the incubation period of influenza A from Lessler et al. 2009 are different from the estimates from the complete data, as they remove Henle et al. 1945 J Immunol, as it is an outlier in the dataset (n=61). Values found at the bottom Table 3." +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-B", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.51, + "dispersion_ci_limits": [1.37, 1.64], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [0.3, 0.4, 0.7, 1.1], + "quantile_names": ["5", "25", "75", "95"], + "median": 0.6, + "median_ci_limits": [0.5, 0.6], + "median_ci": 95 + }, + "citation": { "author": ["Justin Lessler", "Nicholas G. Reich", "Ron Brookmeyer", "Trish M. Perl", "Kenrad E. Nelson", "Derek A. T. Cummings"], "title": "Incubation periods of acute respiratory viral infections: a systematic review", "journal": "The Lancet Infectious Diseases", "year": 2009, - "sample_size": 78, - "region": "USA", - "transmission_mode": "experimental", - "vector": null, - "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 0.3, - "quantile_25": 0.4, - "median": 0.6, - "median_ci_limits": [0.5, 0.6], - "median_ci": 95, - "quantile_75": 0.7, - "quantile_87.5": null, - "quantile_95": 1.1, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.51, - "dispersion_ci_limits": [1.37, 1.64], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "PMID": 19393959, + "DOI": "10.1016/S1473-3099(09)70069-11" + }, + "metadata": { + "sample_size": 78, + "region": "USA", + "transmission_mode": "experimental", + "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets", - "PMID": 19393959, - "DOI": "10.1016/S1473-3099(09)70069-11" + "phase_bias_adjusted": false }, - { - "disease": "Measles", - "pathogen": "Measles Virus", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets" +}, +{ + "disease": "Measles", + "pathogen": "Measles Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.23, + "dispersion_ci_limits": [1.18, 1.28], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [8.9, 10.9, 14.4, 17.7], + "quantile_names": ["5", "25", "75", "95"], + "median": 12.5, + "median_ci_limits": [11.8, 13.3], + "median_ci": 95 + }, + "citation": { "author": ["Justin Lessler", "Nicholas G. Reich", "Ron Brookmeyer", "Trish M. Perl", "Kenrad E. Nelson", "Derek A. T. Cummings"], "title": "Incubation periods of acute respiratory viral infections: a systematic review", "journal": "The Lancet Infectious Diseases", "year": 2009, + "PMID": 19393959, + "DOI": "10.1016/S1473-3099(09)70069-12" + }, + "metadata": { "sample_size": 55, "region": "Mixed", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 8.9, - "quantile_25": 10.9, - "median": 12.5, - "median_ci_limits": [11.8, 13.3], - "median_ci": 95, - "quantile_75": 14.4, - "quantile_87.5": null, - "quantile_95": 17.7, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.23, - "dispersion_ci_limits": [1.18, 1.28], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets", - "PMID": 19393959, - "DOI": "10.1016/S1473-3099(09)70069-12" + "phase_bias_adjusted": false }, - { - "disease": "Parainfluenza", - "pathogen": "Parainfluenza Virus", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets" +}, +{ + "disease": "Parainfluenza", + "pathogen": "Parainfluenza Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.35, + "dispersion_ci_limits": [1.16, 1.55], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [2.1, 3.2], + "quantile_names": ["25", "75"], + "median": 2.6, + "median_ci_limits": [2.1, 3.1], + "median_ci": 95 + }, + "citation": { "author": ["Justin Lessler", "Nicholas G. Reich", "Ron Brookmeyer", "Trish M. Perl", "Kenrad E. Nelson", "Derek A. T. Cummings"], "title": "Incubation periods of acute respiratory viral infections: a systematic review", "journal": "The Lancet Infectious Diseases", "year": 2009, + "PMID": 19393959, + "DOI": "10.1016/S1473-3099(09)70069-13" + }, + "metadata": { "sample_size": 11, "region": "Mixed", "transmission_mode": "experimental", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 2.1, - "median": 2.6, - "median_ci_limits": [2.1, 3.1], - "median_ci": 95, - "quantile_75": 3.2, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.35, - "dispersion_ci_limits": [1.16, 1.55], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets", - "PMID": 19393959, - "DOI": "10.1016/S1473-3099(09)70069-13" + "phase_bias_adjusted": false }, - { - "disease": "RSV", - "pathogen": "RSV", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets" +}, +{ + "disease": "RSV", + "pathogen": "RSV", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.24, + "dispersion_ci_limits": [1.13, 1.35], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [3.1, 3.8, 5.1, 6.3], + "quantile_names": ["5", "25", "75", "95"], + "median": 4.4, + "median_ci_limits": [3.9, 4.9], + "median_ci": 95 + }, + "citation": { "author": ["Justin Lessler", "Nicholas G. Reich", "Ron Brookmeyer", "Trish M. Perl", "Kenrad E. Nelson", "Derek A. T. Cummings"], "title": "Incubation periods of acute respiratory viral infections: a systematic review", "journal": "The Lancet Infectious Diseases", "year": 2009, + "PMID": 19393959, + "DOI": "10.1016/S1473-3099(09)70069-14" + }, + "metadata": { "sample_size": 24, "region": "Mixed", "transmission_mode": "mixed", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 3.1, - "quantile_25": 3.8, - "median": 4.4, - "median_ci_limits": [3.9, 4.9], - "median_ci": 95, - "quantile_75": 5.1, - "quantile_87.5": null, - "quantile_95": 6.3, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.24, - "dispersion_ci_limits": [1.13, 1.35], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets", - "PMID": 19393959, - "DOI": "10.1016/S1473-3099(09)70069-14" + "phase_bias_adjusted": false }, - { - "disease": "Rhinovirus", - "pathogen": "Rhinovirus", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets" +}, +{ + "disease": "Rhinovirus", + "pathogen": "Rhinovirus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.68, + "dispersion_ci_limits": [1.36, 2.01], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [0.8, 1.3, 2.7, 4.5], + "quantile_names": ["5", "25", "75", "95"], + "median": 1.9, + "median_ci_limits": [1.4, 2.4], + "median_ci": 95 + }, + "citation": { "author": ["Justin Lessler", "Nicholas G. Reich", "Ron Brookmeyer", "Trish M. Perl", "Kenrad E. Nelson", "Derek A. T. Cummings"], "title": "Incubation periods of acute respiratory viral infections: a systematic review", "journal": "The Lancet Infectious Diseases", "year": 2009, + "PMID": 19393959, + "DOI": "10.1016/S1473-3099(09)70069-15" + }, + "metadata": { "sample_size": 28, "region": "USA", "transmission_mode": "experimental", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 0.8, - "quantile_25": 1.3, - "median": 1.9, - "median_ci_limits": [1.4, 2.4], - "median_ci": 95, - "quantile_75": 2.7, - "quantile_87.5": null, - "quantile_95": 4.5, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.68, - "dispersion_ci_limits": [1.36, 2.01], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets", - "PMID": 19393959, - "DOI": "10.1016/S1473-3099(09)70069-15" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets" +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.53, + "dispersion_ci_limits": [1.44, 1.61], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [0.73, 2.94], + "quantile_names": ["5", "95"], + "median": 1.46, + "median_ci_limits": [1.35, 1.57], + "median_ci": 95 + }, + "citation": { "author": ["Nicholas G. Reich", "Justin Lessler", "Derek A. T. Cummings", "Ron Brookmeyer"], "title": "Estimating incubation period distributions with coarse data", "journal": "Statistics in Medicine", "year": 2009, + "PMID": 19598148, + "DOI": "10.1002/sim.3659" + }, + "metadata": { "sample_size": 151, "region": "Mixed", "transmission_mode": "unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 0.73, - "quantile_25": null, - "median": 1.46, - "median_ci_limits": [1.35, 1.57], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 2.94, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.53, - "dispersion_ci_limits": [1.44, 1.61], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Data from Lessler et al 2009 using double interval-censored analysis. Not open source", - "PMID": 19598148, - "DOI": "10.1002/sim.3659" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A", - "epi_distribution": "incubation_period", + "notes": "Data from Lessler et al 2009 using double interval-censored analysis. Not open source" +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.51, + "dispersion_ci_limits": [1.43, 1.6], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [0.73, 2.83], + "quantile_names": ["5", "95"], + "median": 1.43, + "median_ci_limits": [1.33, 1.54], + "median_ci": 95 + }, + "citation": { "author": ["Nicholas G. Reich", "Justin Lessler", "Derek A. T. Cummings", "Ron Brookmeyer"], "title": "Estimating incubation period distributions with coarse data", "journal": "Statistics in Medicine", "year": 2009, - "sample_size": 151, - "region": "Mixed", - "transmission_mode": "unknown", - "vector": null, - "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 0.73, - "quantile_25": null, - "median": 1.43, - "median_ci_limits": [1.33, 1.54], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 2.83, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.51, - "dispersion_ci_limits": [1.43, 1.6], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "PMID": 19598148, + "DOI": "10.1002/sim.3659" + }, + "metadata": { + "sample_size": 151, + "region": "Mixed", + "transmission_mode": "unknown", + "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Data from Lessler et al 2009 using single interval-censored analysis. Not open source", - "PMID": 19598148, - "DOI": "10.1002/sim.3659" + "phase_bias_adjusted": false }, - { - "disease": "RSV", - "pathogen": "RSV", - "epi_distribution": "incubation_period", + "notes": "Data from Lessler et al 2009 using single interval-censored analysis. Not open source" +}, +{ + "disease": "RSV", + "pathogen": "RSV", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.25, + "dispersion_ci_limits": [1.14, 1.36], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [3.05, 6.39], + "quantile_names": ["5", "95"], + "median": 4.41, + "median_ci_limits": [3.9, 4.92], + "median_ci": 95 + }, + "citation": { "author": ["Nicholas G. Reich", "Justin Lessler", "Derek A. T. Cummings", "Ron Brookmeyer"], "title": "Estimating incubation period distributions with coarse data", "journal": "Statistics in Medicine", "year": 2009, - "sample_size": 24, - "region": "Mixed", - "transmission_mode": "unknown", - "vector": null, - "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 3.05, - "quantile_25": null, - "median": 4.41, - "median_ci_limits": [3.9, 4.92], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 6.39, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.25, - "dispersion_ci_limits": [1.14, 1.36], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Data from Lessler et al 2009 using double interval-censored analysis. Not open source", "PMID": 19598148, "DOI": "10.1002/sim.3659" }, - { - "disease": "RSV", - "pathogen": "RSV", - "epi_distribution": "incubation_period", + "metadata": { + "sample_size": 24, + "region": "Mixed", + "transmission_mode": "unknown", + "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "Data from Lessler et al 2009 using double interval-censored analysis. Not open source" +}, +{ + "disease": "RSV", + "pathogen": "RSV", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.24, + "dispersion_ci_limits": [1.12, 1.35], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [3.11, 6.26], + "quantile_names": ["5", "95"], + "median": 4.41, + "median_ci_limits": [3.89, 4.94], + "median_ci": 95 + }, + "citation": { "author": ["Nicholas G. Reich", "Justin Lessler", "Derek A. T. Cummings", "Ron Brookmeyer"], "title": "Estimating incubation period distributions with coarse data", "journal": "Statistics in Medicine", "year": 2009, + "PMID": 19598148, + "DOI": "10.1002/sim.3659" + }, + "metadata": { "sample_size": 24, "region": "Mixed", "transmission_mode": "unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 3.11, - "quantile_25": null, - "median": 4.41, - "median_ci_limits": [3.89, 4.94], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 6.26, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.24, - "dispersion_ci_limits": [1.12, 1.35], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Data from Lessler et al 2009 using single interval-censored analysis. Not open source", - "PMID": 19598148, - "DOI": "10.1002/sim.3659" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A-H1N1", - "epi_distribution": "incubation_period", + "notes": "Data from Lessler et al 2009 using single interval-censored analysis. Not open source" +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A-H1N1", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "gamma", + "parameters": { + "shape": 3.27, + "scale": 0.51 + } + }, + "summary_statistics": { + "quantile_values": [3.43], + "quantile_names": ["95"], + "median": 1.51, + "median_ci_limits": [1.47, 1.55], + "median_ci": 95 + }, + "citation": { "author": ["Hiroshi Nishiura", "Hisashi Inaba"], "title": "Estimation of the incubation period of influenza A (H1N1-2009) among imported cases: addressing censoring using outbreak data at the origin of importation", "journal": "Journal of Theoretical Biology", "year": 2011, + "PMID": 21168422, + "DOI": "10.1016/j.jtbi.2010.12.017" + }, + "metadata": { "sample_size": 72, "region": "Japan", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "gamma", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": 1.51, - "median_ci_limits": [1.47, 1.55], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 3.43, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": 3.27, - "shape_ci_limits": null, - "shape_ci": null, - "scale": 0.51, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": true, - "notes": "Gamma and weibull distributions had equally good fit to the data. This entry is the gamma distribution. Gamma, exponential. Not open source.", - "PMID": 21168422, - "DOI": "10.1016/j.jtbi.2010.12.017" + "phase_bias_adjusted": true }, - { - "disease": "Influenza", - "pathogen": "Influenza-A-H1N1", - "epi_distribution": "incubation_period", + "notes": "Gamma and weibull distributions had equally good fit to the data. This entry is the gamma distribution. Gamma, exponential. Not open source." +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A-H1N1", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "weibull", + "parameters": { + "shape": 1.74, + "scale": 1.83 + } + }, + "summary_statistics": { + "quantile_values": [3.18], + "quantile_names": ["95"], + "median": 1.43, + "median_ci_limits": [1.21, 1.65], + "median_ci": 95 + }, + "citation": { "author": ["Hiroshi Nishiura", "Hisashi Inaba"], "title": "Estimation of the incubation period of influenza A (H1N1-2009) among imported cases: addressing censoring using outbreak data at the origin of importation", "journal": "Journal of Theoretical Biology", "year": 2011, + "PMID": 21168422, + "DOI": "10.1016/j.jtbi.2010.12.017" + }, + "metadata": { "sample_size": 72, "region": "Japan", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "weibull", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": 1.43, - "median_ci_limits": [1.21, 1.65], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 3.18, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": 1.74, - "shape_ci_limits": null, - "shape_ci": null, - "scale": 1.83, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": true, - "notes": "Gamma and weibull distributions had equally good fit to the data. This entry is the weibull distribution. Weibull, exponential", - "PMID": 21168422, - "DOI": "10.1016/j.jtbi.2010.12.017" + "phase_bias_adjusted": true }, - { - "disease": "Influenza", - "pathogen": "Influenza-A-H7N9", - "epi_distribution": "incubation_period", + "notes": "Gamma and weibull distributions had equally good fit to the data. This entry is the weibull distribution. Weibull, exponential" +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A-H7N9", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "weibull", + "parameters": { } + }, + "summary_statistics": { + "mean": 3.4, + "mean_ci_limits": [3, 3.7], + "mean_ci": 95, + "sd": 1.7, + "quantile_values": [6.5], + "quantile_names": ["95"] + }, + "citation": { "author": ["Victor Virlogeux", "Ming Li", "Tim K. Tsang", "Luzhao Feng", "Vicky J. Fang", "Hui Jiang", "Peng Wu", "Jiandong Zheng", "Eric H. Y. Lau", "Yu Cao", "Ying Qin", "Qiaohong Liao", "Hongjie Yu", "Benjamin J. Cowling"], "title": "Estimating the Distribution of the Incubation Periods of Human Avian Influenza A(H7N9) Virus Infections", "journal": "American Journal of Epidemiology", "year": 2015, + "PMID": 26409239, + "DOI": "10.1093/aje/kwv115" + }, + "metadata": { "sample_size": 229, "region": "China", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "weibull", - "inference_method": "mle", - "mean": 3.4, - "mean_ci_limits": [3, 3.7], - "mean_ci": 95, - "sd": 1.7, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 6.5, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This study used an original data set and a modified data set. This weibull distribution was fitted to the modified data set and it is recommended to use this one.", - "PMID": 26409239, - "DOI": "10.1093/aje/kwv115" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A-H7N9", - "epi_distribution": "incubation_period", + "notes": "This study used an original data set and a modified data set. This weibull distribution was fitted to the modified data set and it is recommended to use this one." +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A-H7N9", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "gamma", + "parameters": { } + }, + "summary_statistics": { + "mean": 4.5, + "mean_ci_limits": [2.8, 16.2], + "mean_ci": 95, + "sd": 3.3, + "quantile_values": [11], + "quantile_names": ["95"] + }, + "citation": { "author": ["Victor Virlogeux", "Ming Li", "Tim K. Tsang", "Luzhao Feng", "Vicky J. Fang", "Hui Jiang", "Peng Wu", "Jiandong Zheng", "Eric H. Y. Lau", "Yu Cao", "Ying Qin", "Qiaohong Liao", "Hongjie Yu", "Benjamin J. Cowling"], "title": "Estimating the Distribution of the Incubation Periods of Human Avian Influenza A(H7N9) Virus Infections", "journal": "American Journal of Epidemiology", "year": 2015, + "PMID": 26409239, + "DOI": "10.1093/aje/kwv115" + }, + "metadata": { "sample_size": 229, "region": "China", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "gamma", - "inference_method": "mle", - "mean": 4.5, - "mean_ci_limits": [2.8, 16.2], - "mean_ci": 95, - "sd": 3.3, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 11, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This study used an original data set and a modified data set. This gamma distribution was fitted to the original data set and it is recommended to use the weibull distribution that was fitted to the modified data set.", - "PMID": 26409239, - "DOI": "10.1093/aje/kwv115" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A-H7N9", - "epi_distribution": "incubation_period", + "notes": "This study used an original data set and a modified data set. This gamma distribution was fitted to the original data set and it is recommended to use the weibull distribution that was fitted to the modified data set." +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A-H7N9", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "weibull", + "parameters": { } + }, + "summary_statistics": { + "mean": 3.5, + "mean_ci_limits": [3.2, 3.8], + "mean_ci": 95 + }, + "citation": { "author": ["Victor Virlogeux", "Juan Yang", "Vicky J Fang", "Luzhao Feng", "Tim K Tsang", "Hui Jiang", "Peng Wu", "Jiandong Zheng", "Eric H Y Lau", "Ying Qin", "Zhibin Peng", "J S Malik Peiris", "Hongjie Yu", "Benjamin J Cowling"], "title": "Association between the Severity of Influenza A(H7N9) Virus Infections and Length of the Incubation Period", "journal": "PLoS One", "year": 2016, + "PMID": 26885816, + "DOI": "10.1371/journal.pone.0148506" + }, + "metadata": { "sample_size": 395, "region": "China", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "weibull", - "inference_method": "bayesian", - "mean": 3.5, - "mean_ci_limits": [3.2, 3.8], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This study fit the weibull distribution to estimate the parameters for the complete data set, those who had a fatal outcome and those with a non-fatal outcome. This is the distribution fit to the complete unpartitioned data.", - "PMID": 26885816, - "DOI": "10.1371/journal.pone.0148506" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A-H7N9", - "epi_distribution": "incubation_period", + "notes": "This study fit the weibull distribution to estimate the parameters for the complete data set, those who had a fatal outcome and those with a non-fatal outcome. This is the distribution fit to the complete unpartitioned data." +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A-H7N9", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "weibull", + "parameters": { + "shape": 2.3, + "shape_ci_limits": [1.8, 2.89], + "shape_ci": 95, + "scale": 4.21, + "scale_ci_limits": [3.62, 4.85], + "scale_ci": 95 + } + }, + "summary_statistics": { + "mean": 3.7, + "mean_ci_limits": [3.4, 4.1], + "mean_ci": 95 + }, + "citation": { "author": ["Victor Virlogeux", "Juan Yang", "Vicky J. Fang", "Luzhao Feng", "Tim K. Tsang", "Hui Jiang", "Peng Wu", "Jiandong Zheng", "Eric H. Y. Lau", "Ying Qin", "Zhibin Peng", "J. S. Malik Peiris", "Hongjie Yu", "Benjamin J. Cowling"], "title": "Association between the Severity of Influenza A(H7N9) Virus Infections and Length of the Incubation Period", "journal": "PLoS One", "year": 2016, + "PMID": 26885816, + "DOI": "10.1371/journal.pone.0148506" + }, + "metadata": { "sample_size": 173, "region": "China", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "weibull", - "inference_method": "bayesian", - "mean": 3.7, - "mean_ci_limits": [3.4, 4.1], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": 2.3, - "shape_ci_limits": [1.8, 2.89], - "shape_ci": 95, - "scale": 4.21, - "scale_ci_limits": [3.62, 4.85], - "scale_ci": 95, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This study fit the weibull distribution to estimate the parameters for the complete data set, those who had a fatal outcome and those with a non-fatal outcome. This is the distribution fit to the fatal outcome data.", - "PMID": 26885816, - "DOI": "10.1371/journal.pone.0148506" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A-H7N9", - "epi_distribution": "incubation_period", + "notes": "This study fit the weibull distribution to estimate the parameters for the complete data set, those who had a fatal outcome and those with a non-fatal outcome. This is the distribution fit to the fatal outcome data." +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A-H7N9", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "weibull", + "parameters": { + "shape": 2.03, + "shape_ci_limits": [1.62, 2.52], + "shape_ci": 95, + "scale": 3.74, + "scale_ci_limits": [3.2, 4.36], + "scale_ci": 95 + } + }, + "summary_statistics": { + "mean": 3.3, + "mean_ci_limits": [2.9, 3.6], + "mean_ci": 95 + }, + "citation": { "author": ["Victor Virlogeux", "Juan Yang", "Vicky J. Fang", "Luzhao Feng", "Tim K. Tsang", "Hui Jiang", "Peng Wu", "Jiandong Zheng", "Eric H. Y. Lau", "Ying Qin", "Zhibin Peng", "J. S. Malik Peiris", "Hongjie Yu", "Benjamin J. Cowling"], "title": "Association between the Severity of Influenza A(H7N9) Virus Infections and Length of the Incubation Period", "journal": "PLoS One", "year": 2016, + "PMID": 26885816, + "DOI": "10.1371/journal.pone.0148506" + }, + "metadata": { "sample_size": 222, "region": "China", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "weibull", - "inference_method": "bayesian", - "mean": 3.3, - "mean_ci_limits": [2.9, 3.6], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": 2.03, - "shape_ci_limits": [1.62, 2.52], - "shape_ci": 95, - "scale": 3.74, - "scale_ci_limits": [3.2, 4.36], - "scale_ci": 95, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This study fit the weibull distribution to estimate the parameters for the complete data set, those who had a fatal outcome and those with a non-fatal outcome. This is the distribution fit to the non-fatal outcome data.", - "PMID": 26885816, - "DOI": "10.1371/journal.pone.0148506" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A-H1N1", - "epi_distribution": "incubation_period", + "notes": "This study fit the weibull distribution to estimate the parameters for the complete data set, those who had a fatal outcome and those with a non-fatal outcome. This is the distribution fit to the non-fatal outcome data." +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A-H1N1", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { } + }, + "summary_statistics": { + "mean": 4.3, + "mean_ci_limits": [2.6, 6.6], + "mean_ci": 95, + "median": 4 + }, + "citation": { "author": ["Ashleigh R Tuite", "Amy L Greer", "Michael Whelan", "Anne-Luise Winter", "Brenda Lee", "Ping Yan", "Jianhong Wu", "Seyed Moghadas", "David Buckeridge", "Babak Pourbohloul", "David N Fisman"], "title": "Estimated epidemiologic parameters and morbidity associated with pandemic H1N1 influenza", "journal": "Canadian Medical Association Journal", "year": 2010, + "PMID": 19959592, + "DOI": "10.1503/cmaj.091807" + }, + "metadata": { "sample_size": 316, "region": "Canada", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": null, - "mean": 4.3, - "mean_ci_limits": [2.6, 6.6], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": 4, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "The mid-point of the exposure time was used to approximate an exact exposure time instead of interval-censoring. This can lead to a possible bias (overestimation) in incubation times. It was ambiguously reported whether the mean is the mean of the distribution or the meanlog parameter of the lognormal distribution.", - "PMID": 19959592, - "DOI": "10.1503/cmaj.091807" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A-H1N1Pdm", - "epi_distribution": "incubation_period", + "notes": "The mid-point of the exposure time was used to approximate an exact exposure time instead of interval-censoring. This can lead to a possible bias (overestimation) in incubation times. It was ambiguously reported whether the mean is the mean of the distribution or the meanlog parameter of the lognormal distribution." +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A-H1N1Pdm", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "gamma", + "parameters": { } + }, + "summary_statistics": { + "mean": 2.05, + "sd": 0.49 + }, + "citation": { "author": ["Azra Ghani", "Marc Baguelin", "Jamie Griffin", "Stefan Flasche", "Albert Jan van Hoek", "Simon Cauchemez", "Christl Donnelly", "Chris Robertson", "Michael White", "James Truscott", "Christophe Fraser", "Tini Garske", "Peter White", "Steve Leach", "Ian Hall", "Helen Jenkins", "Neil Ferguson", "Ben Cooper"], "title": "The Early Transmission Dynamics of H1N1pdm Influenza in the United Kingdom", "journal": "PLoS Currents", "year": 2009, + "PMID": 20029668, + "DOI": "10.1371/currents.RRN1130" + }, + "metadata": { "sample_size": 16, "region": "UK", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "gamma", - "inference_method": "mle", - "mean": 2.05, - "mean_ci_limits": null, - "mean_ci": null, - "sd": 0.49, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "No additional notes", - "PMID": 20029668, - "DOI": "10.1371/currents.RRN1130" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A-H1N1Pdm", - "epi_distribution": "serial_interval", + "notes": "No additional notes" +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A-H1N1Pdm", + "epi_distribution": "serial_interval", + "probability_distribution": { + "prob_distribution": "gamma", + "parameters": { } + }, + "summary_statistics": { + "mean": 2.51, + "sd": 1.55 + }, + "citation": { "author": ["Azra Ghani", "Marc Baguelin", "Jamie Griffin", "Stefan Flasche", "Albert Jan van Hoek", "Simon Cauchemez", "Christl Donnelly", "Chris Robertson", "Michael White", "James Truscott", "Christophe Fraser", "Tini Garske", "Peter White", "Steve Leach", "Ian Hall", "Helen Jenkins", "Neil Ferguson", "Ben Cooper"], "title": "The Early Transmission Dynamics of H1N1pdm Influenza in the United Kingdom", "journal": "PLoS Currents", "year": 2009, + "PMID": 20029668, + "DOI": "10.1371/currents.RRN1130" + }, + "metadata": { "sample_size": 58, "region": "UK", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "gamma", - "inference_method": "mle", - "mean": 2.51, - "mean_ci_limits": null, - "mean_ci": null, - "sd": 1.55, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "No additional notes", - "PMID": 20029668, - "DOI": "10.1371/currents.RRN1130" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A-H1N1", - "epi_distribution": "incubation_period", + "notes": "No additional notes" +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A-H1N1", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { } + }, + "summary_statistics": { + "quantile_values": [0.9, 2.2], + "quantile_names": ["5", "95"], + "median": 1.4, + "median_ci_limits": [1, 1.8], + "median_ci": 95 + }, + "citation": { "author": ["Justin Lessler", "Nicholas G. Reich", "Derek A.T. Cummings", "New-York-City-Department-of-Health-and-Mental-Hygiene-Swine-Influenza-Investigation-Team"], "title": "Outbreak of 2009 Pandemic Influenza A (H1N1) at a New York City School", "journal": "The New England Journal of Medicine", "year": 2009, + "PMID": 20042754, + "DOI": "10.1056/NEJMoa0906089" + }, + "metadata": { "sample_size": 124, "region": "New York, USA", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 0.9, - "quantile_25": null, - "median": 1.4, - "median_ci_limits": [1, 1.8], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 2.2, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "No additional notes.", - "PMID": 20042754, - "DOI": "10.1056/NEJMoa0906089" + "phase_bias_adjusted": false }, - { - "disease": "Influenza", - "pathogen": "Influenza-A-H1N1", - "epi_distribution": "generation_time", + "notes": "No additional notes." +}, +{ + "disease": "Influenza", + "pathogen": "Influenza-A-H1N1", + "epi_distribution": "generation_time", + "probability_distribution": { + "prob_distribution": "weibull", + "parameters": { + "shape": 2.36, + "scale": 3.18 + } + }, + "summary_statistics": { + "quantile_values": [0.9, 5.1], + "quantile_names": ["5", "95"], + "median": 2.7, + "median_ci_limits": [2, 3.5], + "median_ci": 95 + }, + "citation": { "author": ["Justin Lessler", "Nicholas G. Reich", "Derek A.T. Cummings", "New-York-City-Department-of-Health-and-Mental-Hygiene-Swine-Influenza-Investigation-Team"], "title": "Outbreak of 2009 Pandemic Influenza A (H1N1) at a New York City School", "journal": "The New England Journal of Medicine", "year": 2009, + "PMID": 20042754, + "DOI": "10.1056/NEJMoa0906089" + }, + "metadata": { "sample_size": 16, "region": "New York, USA", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "weibull", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 0.9, - "quantile_25": null, - "median": 2.7, - "median_ci_limits": [2, 3.5], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 5.1, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": 2.36, - "shape_ci_limits": null, - "shape_ci": null, - "scale": 3.18, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "The parameters of the weibull are stated without reporting the uncertainty around them. The parameter estimates and sample size is reported in the supplementary appendix.", - "PMID": 20042754, - "DOI": "10.1056/NEJMoa0906089" + "phase_bias_adjusted": false }, - { - "disease": "Marburg Virus Disease", - "pathogen": "Marburg Virus", - "epi_distribution": "incubation_period", + "notes": "The parameters of the weibull are stated without reporting the uncertainty around them. The parameter estimates and sample size is reported in the supplementary appendix." +}, +{ + "disease": "Marburg Virus Disease", + "pathogen": "Marburg Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "lower_range": 2, + "upper_range": 26 + }, + "citation": { "author": ["Boris I. Pavlin"], "title": "Calculation of incubation period and serial interval from multiple outbreaks of Marburg virus disease", "journal": "BMC Research Notes", "year": 2014, + "PMID": 25495697, + "DOI": "10.1186/1756-0500-7-906" + }, + "metadata": { "sample_size": 76, "region": "Mixed", "transmission_mode": "mixed", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": 2, - "upper_range": 26, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This paper did not fit a distribution to the incubation period data and only reported a lower and upper range of the data. This is present in the database as there are no other studies that report the incubation period for Marburg virus. There is another incubation period reported from the same paper for a subset of the data which report the median and interquartile range but again do not fit a distribution to the data.", - "PMID": 25495697, - "DOI": "10.1186/1756-0500-7-906" + "phase_bias_adjusted": false }, - { - "disease": "Marburg Virus Disease", - "pathogen": "Marburg Virus", - "epi_distribution": "incubation_period", + "notes": "This paper did not fit a distribution to the incubation period data and only reported a lower and upper range of the data. This is present in the database as there are no other studies that report the incubation period for Marburg virus. There is another incubation period reported from the same paper for a subset of the data which report the median and interquartile range but again do not fit a distribution to the data." +}, +{ + "disease": "Marburg Virus Disease", + "pathogen": "Marburg Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "median": 7, + "lower_range": 2, + "upper_range": 13 + }, + "citation": { "author": ["Boris I. Pavlin"], "title": "Calculation of incubation period and serial interval from multiple outbreaks of Marburg virus disease", "journal": "BMC Research Notes", "year": 2014, + "PMID": 25495697, + "DOI": "10.1186/1756-0500-7-906" + }, + "metadata": { "sample_size": 18, "region": "Mixed", "transmission_mode": "mixed", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": 7, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": 2, - "upper_range": 13, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This paper did not fit a distribution to the incubation period data and only reported a median and range for a subset of the data. This is present in the database as there are no other studies that report the incubation period for Marburg virus. This paper also reports the maximum and minimum for the complete data set.", - "PMID": 25495697, - "DOI": "10.1186/1756-0500-7-906" + "phase_bias_adjusted": false }, - { - "disease": "Marburg Virus Disease", - "pathogen": "Marburg Virus", - "epi_distribution": "serial_interval", + "notes": "This paper did not fit a distribution to the incubation period data and only reported a median and range for a subset of the data. This is present in the database as there are no other studies that report the incubation period for Marburg virus. This paper also reports the maximum and minimum for the complete data set." +}, +{ + "disease": "Marburg Virus Disease", + "pathogen": "Marburg Virus", + "epi_distribution": "serial_interval", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "quantile_values": [8, 15], + "quantile_names": ["25", "75"], + "median": 11 + }, + "citation": { "author": ["Boris I. Pavlin"], "title": "Calculation of incubation period and serial interval from multiple outbreaks of Marburg virus disease", "journal": "BMC Research Notes", "year": 2014, + "PMID": 25495697, + "DOI": "10.1186/1756-0500-7-906" + }, + "metadata": { "sample_size": 38, "region": "Mixed", "transmission_mode": "mixed", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 8, - "median": 11, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": 15, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This paper did not fit a distribution to the serial interval data and only reported a median and interquartile range. This is present in the database as there are no other studies that report the serial interval for Marburg virus.", - "PMID": 25495697, - "DOI": "10.1186/1756-0500-7-906" + "phase_bias_adjusted": false }, - { - "disease": "Marburg Virus Disease", - "pathogen": "Marburg Virus", - "epi_distribution": "onset_to_death", + "notes": "This paper did not fit a distribution to the serial interval data and only reported a median and interquartile range. This is present in the database as there are no other studies that report the serial interval for Marburg virus." +}, +{ + "disease": "Marburg Virus Disease", + "pathogen": "Marburg Virus", + "epi_distribution": "onset_to_death", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "median": 8, + "lower_range": 2, + "upper_range": 16 + }, + "citation": { "author": ["Robert Colebunders", "Antoine Tshomba", "Maria D Van Kerkhove", "Daniel G Bausch", "Pat Campbell", "Modeste Libande", "Patricia Pirard", "Florimond Tshioko", "Simon Mardel", "Sabue Mulangu", "Hilde Sleurs", "Pierre E Rollin", "Jean-Jacques Muyembe-Tamfum", "Benjamin Jeffs", "Matthias Borchert", "International Scientific and Technical Committee 'DRC Watsa/Durba 1999 Marburg Outbreak Investigation Group'"], "title": "Marburg hemorrhagic fever in Durba and Watsa, Democratic Republic of the Congo: clinical documentation, features of illness, and treatment", "journal": "The Journal of Infectious Diseases", "year": 2007, + "PMID": 17940943, + "DOI": "10.1086/520543" + }, + "metadata": { "sample_size": 77, "region": "DR Congo", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": 8, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": 2, - "upper_range": 16, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This paper reports the median and range of the symptom onset to death delay but did not fit a parametric distribution to the data. This is included in the database as it is the only reported symptom onset to death reported in the literature", - "PMID": 17940943, - "DOI": "10.1086/520543" + "phase_bias_adjusted": false }, - { - "disease": "Marburg Virus Disease", - "pathogen": "Marburg Virus", - "epi_distribution": "serial_interval", - "author": ["Marco Ajelli", "Stefano Merler"], - "title": "Transmission Potential and Design of Adequate Control Measures for Marburg Hemorrhagic Fever", - "journal": "PLoS One", - "year": 2012, - "sample_size": 374, - "region": "Angola", - "transmission_mode": "natural_unknown", - "vector": null, - "extrinsic": false, + "notes": "This paper reports the median and range of the symptom onset to death delay but did not fit a parametric distribution to the data. This is included in the database as it is the only reported symptom onset to death reported in the literature" +}, +{ + "disease": "Marburg Virus Disease", + "pathogen": "Marburg Virus", + "epi_distribution": "serial_interval", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": null, + "parameters": { } + }, + "summary_statistics": { "mean": 9, "mean_ci_limits": [8.2, 10], "mean_ci": 95, "sd": 5.4, "sd_ci_limits": [3.9, 8.6], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "sd_ci": 95 + }, + "citation": { + "author": ["Marco Ajelli", "Stefano Merler"], + "title": "Transmission Potential and Design of Adequate Control Measures for Marburg Hemorrhagic Fever", + "journal": "PLoS One", + "year": 2012, + "PMID": 23251407, + "DOI": "10.1371/journal.pone.0050948" + }, + "metadata": { + "sample_size": 374, + "region": "Angola", + "transmission_mode": "natural_unknown", + "extrinsic": false, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "The generation time is estimated from non-human viral load data. This paper reports the generation time but assumes the generation time and serial interval are the same it is classified as serial interval here based on Van Kerkove et al. 2015 <10.1038/sdata.2015.19>. The sample size is take from Van Kerkove et al. 2015.", - "PMID": 23251407, - "DOI": "10.1371/journal.pone.0050948" + "phase_bias_adjusted": false }, - { - "disease": "SARS", - "pathogen": "SARS-Cov-1", - "epi_distribution": "offspring_distribution", + "notes": "The generation time is estimated from non-human viral load data. This paper reports the generation time but assumes the generation time and serial interval are the same it is classified as serial interval here based on Van Kerkove et al. 2015 <10.1038/sdata.2015.19>. The sample size is take from Van Kerkove et al. 2015." +}, +{ + "disease": "SARS", + "pathogen": "SARS-Cov-1", + "epi_distribution": "offspring_distribution", + "probability_distribution": { + "prob_distribution": "nbinom", + "parameters": { + "dispersion": 0.16, + "dispersion_ci_limits": [0.11, 0.64], + "dispersion_ci": 90 + } + }, + "summary_statistics": { + "mean": 1.63, + "mean_ci_limits": [0.54, 2.65], + "mean_ci": 90 + }, + "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], "title": "Superspreading and the effect of individual variation on disease emergence", "journal": "Nature", "year": 2005, + "PMID": 16292310, + "DOI": "10.1038/nature04153" + }, + "metadata": { "sample_size": 57, "region": "Singapore", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "nbinom", - "inference_method": "mle", - "mean": 1.63, - "mean_ci_limits": [0.54, 2.65], - "mean_ci": 90, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 0.16, - "dispersion_ci_limits": [0.11, 0.64], - "dispersion_ci": 90, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Parameter estimates are retrieved from the supplementary tables.", - "PMID": 16292310, - "DOI": "10.1038/nature04153" + "phase_bias_adjusted": false }, - { - "disease": "SARS", - "pathogen": "SARS-Cov-1", - "epi_distribution": "offspring_distribution", + "notes": "Parameter estimates are retrieved from the supplementary tables." +}, +{ + "disease": "SARS", + "pathogen": "SARS-Cov-1", + "epi_distribution": "offspring_distribution", + "probability_distribution": { + "prob_distribution": "nbinom", + "parameters": { + "dispersion": 0.17, + "dispersion_ci_limits": [0.1, 0.64], + "dispersion_ci": 90 + } + }, + "summary_statistics": { + "mean": 0.94, + "mean_ci_limits": [0.27, 1.51], + "mean_ci": 90 + }, + "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], "title": "Superspreading and the effect of individual variation on disease emergence", "journal": "Nature", "year": 2005, + "PMID": 16292310, + "DOI": "10.1038/nature04153" + }, + "metadata": { "sample_size": 33, "region": "Beijing", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "nbinom", - "inference_method": "mle", - "mean": 0.94, - "mean_ci_limits": [0.27, 1.51], - "mean_ci": 90, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 0.17, - "dispersion_ci_limits": [0.1, 0.64], - "dispersion_ci": 90, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "No additional notes", - "PMID": 16292310, - "DOI": "10.1038/nature04153" + "phase_bias_adjusted": false }, - { - "disease": "Smallpox", - "pathogen": "Smallpox-Variola-Major", - "epi_distribution": "offspring_distribution", + "notes": "No additional notes" +}, +{ + "disease": "Smallpox", + "pathogen": "Smallpox-Variola-Major", + "epi_distribution": "offspring_distribution", + "probability_distribution": { + "prob_distribution": "nbinom", + "parameters": { + "dispersion": 0.37, + "dispersion_ci_limits": [0.26, 0.69], + "dispersion_ci": 90 + } + }, + "summary_statistics": { + "mean": 3.19, + "mean_ci_limits": [1.66, 4.62], + "mean_ci": 90 + }, + "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], "title": "Superspreading and the effect of individual variation on disease emergence", "journal": "Nature", "year": 2005, + "PMID": 16292310, + "DOI": "10.1038/nature04153" + }, + "metadata": { "sample_size": 32, "region": "Europe", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "nbinom", - "inference_method": "mle", - "mean": 3.19, - "mean_ci_limits": [1.66, 4.62], - "mean_ci": 90, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 0.37, - "dispersion_ci_limits": [0.26, 0.69], - "dispersion_ci": 90, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "No additional notes", - "PMID": 16292310, - "DOI": "10.1038/nature04153" + "phase_bias_adjusted": false }, - { - "disease": "Smallpox", - "pathogen": "Smallpox-Variola-Major", - "epi_distribution": "offspring_distribution", + "notes": "No additional notes" +}, +{ + "disease": "Smallpox", + "pathogen": "Smallpox-Variola-Major", + "epi_distribution": "offspring_distribution", + "probability_distribution": { + "prob_distribution": "nbinom", + "parameters": { + "dispersion": 0.32, + "dispersion_ci_limits": [0.16, 1.76], + "dispersion_ci": 90 + } + }, + "summary_statistics": { + "mean": 0.8, + "mean_ci_limits": [0.32, 1.2], + "mean_ci": 90 + }, + "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], "title": "Superspreading and the effect of individual variation on disease emergence", "journal": "Nature", "year": 2005, + "PMID": 16292310, + "DOI": "10.1038/nature04153" + }, + "metadata": { "sample_size": 25, "region": "Benin", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "nbinom", - "inference_method": "mle", - "mean": 0.8, - "mean_ci_limits": [0.32, 1.2], - "mean_ci": 90, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 0.32, - "dispersion_ci_limits": [0.16, 1.76], - "dispersion_ci": 90, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "No additional notes", - "PMID": 16292310, - "DOI": "10.1038/nature04153" + "phase_bias_adjusted": false }, - { - "disease": "Smallpox", - "pathogen": "Smallpox-Variola-Minor", - "epi_distribution": "offspring_distribution", + "notes": "No additional notes" +}, +{ + "disease": "Smallpox", + "pathogen": "Smallpox-Variola-Minor", + "epi_distribution": "offspring_distribution", + "probability_distribution": { + "prob_distribution": "nbinom", + "parameters": { + "dispersion": 0.65, + "dispersion_ci_limits": [0.34, 2.32], + "dispersion_ci": 90 + } + }, + "summary_statistics": { + "mean": 1.6, + "mean_ci_limits": [0.88, 2.16], + "mean_ci": 90 + }, + "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], "title": "Superspreading and the effect of individual variation on disease emergence", "journal": "Nature", "year": 2005, + "PMID": 16292310, + "DOI": "10.1038/nature04153" + }, + "metadata": { "sample_size": 25, "region": "England", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "nbinom", - "inference_method": "mle", - "mean": 1.6, - "mean_ci_limits": [0.88, 2.16], - "mean_ci": 90, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 0.65, - "dispersion_ci_limits": [0.34, 2.32], - "dispersion_ci": 90, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "No additional notes", - "PMID": 16292310, - "DOI": "10.1038/nature04153" + "phase_bias_adjusted": false }, - { - "disease": "Smallpox", - "pathogen": "Smallpox-Variola-Minor", - "epi_distribution": "offspring_distribution", + "notes": "No additional notes" +}, +{ + "disease": "Smallpox", + "pathogen": "Smallpox-Variola-Minor", + "epi_distribution": "offspring_distribution", + "probability_distribution": { + "prob_distribution": "nbinom", + "parameters": { + "dispersion": 0.72, + "dispersion_ci_limits": [0.44, 2.05], + "dispersion_ci": 90 + } + }, + "summary_statistics": { + "mean": 1.49 + }, + "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], "title": "Superspreading and the effect of individual variation on disease emergence", "journal": "Nature", "year": 2005, + "PMID": 16292310, + "DOI": "10.1038/nature04153" + }, + "metadata": { "sample_size": 47, "region": "Pakistan", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "nbinom", - "inference_method": null, - "mean": 1.49, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 0.72, - "dispersion_ci_limits": [0.44, 2.05], - "dispersion_ci": 90, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Estimate of R0 taken from original study and CI of dispersion calculated mean of Z and proportion of zeros known ", - "PMID": 16292310, - "DOI": "10.1038/nature04153" + "phase_bias_adjusted": false }, - { - "disease": "Mpox", - "pathogen": "Monkeypox Virus", - "epi_distribution": "offspring_distribution", + "notes": "Estimate of R0 taken from original study and CI of dispersion calculated mean of Z and proportion of zeros known " +}, +{ + "disease": "Mpox", + "pathogen": "Monkeypox Virus", + "epi_distribution": "offspring_distribution", + "probability_distribution": { + "prob_distribution": "geom", + "parameters": { } + }, + "summary_statistics": { + "mean": 0.32 + }, + "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], "title": "Superspreading and the effect of individual variation on disease emergence", "journal": "Nature", "year": 2005, + "PMID": 16292310, + "DOI": "10.1038/nature04153" + }, + "metadata": { "sample_size": 147, "region": "Zaire", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "geom", - "inference_method": "mle", - "mean": 0.32, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Only the mean for the negative binomial is reported and this is used to approximate the mean of the geometric", - "PMID": 16292310, - "DOI": "10.1038/nature04153" + "phase_bias_adjusted": false }, - { - "disease": "Pneumonic Plague", - "pathogen": "Yersinia Pestis", - "epi_distribution": "offspring_distribution", + "notes": "Only the mean for the negative binomial is reported and this is used to approximate the mean of the geometric" +}, +{ + "disease": "Pneumonic Plague", + "pathogen": "Yersinia Pestis", + "epi_distribution": "offspring_distribution", + "probability_distribution": { + "prob_distribution": "geom", + "parameters": { } + }, + "summary_statistics": { + "mean": 1.32 + }, + "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], "title": "Superspreading and the effect of individual variation on disease emergence", "journal": "Nature", "year": 2005, + "PMID": 16292310, + "DOI": "10.1038/nature04153" + }, + "metadata": { "sample_size": 74, "region": "Mixed", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "geom", - "inference_method": "mle", - "mean": 1.32, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Only the mean for the negative binomial is reported and this is used to approximate the mean of the geometric", - "PMID": 16292310, - "DOI": "10.1038/nature04153" + "phase_bias_adjusted": false }, - { - "disease": "Hantavirus Pulmonary Syndrome", - "pathogen": "Hantavirus (Andes Virus)", - "epi_distribution": "offspring_distribution", + "notes": "Only the mean for the negative binomial is reported and this is used to approximate the mean of the geometric" +}, +{ + "disease": "Hantavirus Pulmonary Syndrome", + "pathogen": "Hantavirus (Andes Virus)", + "epi_distribution": "offspring_distribution", + "probability_distribution": { + "prob_distribution": "geom", + "parameters": { } + }, + "summary_statistics": { + "mean": 0.7 + }, + "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], "title": "Superspreading and the effect of individual variation on disease emergence", "journal": "Nature", "year": 2005, + "PMID": 16292310, + "DOI": "10.1038/nature04153" + }, + "metadata": { "sample_size": 20, "region": "Argentina", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "geom", - "inference_method": "mle", - "mean": 0.7, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Only the mean for the negative binomial is reported and this is used to approximate the mean of the geometric", - "PMID": 16292310, - "DOI": "10.1038/nature04153" + "phase_bias_adjusted": false }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "offspring_distribution", + "notes": "Only the mean for the negative binomial is reported and this is used to approximate the mean of the geometric" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "offspring_distribution", + "probability_distribution": { + "prob_distribution": "pois", + "parameters": { } + }, + "summary_statistics": { + "mean": 1.5 + }, + "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], "title": "Superspreading and the effect of individual variation on disease emergence", "journal": "Nature", "year": 2005, + "PMID": 16292310, + "DOI": "10.1038/nature04153" + }, + "metadata": { "sample_size": 13, "region": "Uganda", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "pois", - "inference_method": "mle", - "mean": 1.5, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Only the mean for the negative binomial is reported and this is used to approximate the mean of the poisson", - "PMID": 16292310, - "DOI": "10.1038/nature04153" + "phase_bias_adjusted": false }, - { - "disease": "Dengue", - "pathogen": "Dengue Virus", - "epi_distribution": "incubation_period", + "notes": "Only the mean for the negative binomial is reported and this is used to approximate the mean of the poisson" +}, +{ + "disease": "Dengue", + "pathogen": "Dengue Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { } + }, + "summary_statistics": { + "mean": 15, + "mean_ci_limits": [10, 20], + "mean_ci": 95, + "quantile_values": [5, 33], + "quantile_names": ["2.5", "97.5"] + }, + "citation": { "author": ["Miranda Chan", "Michael A. Johansson"], "title": "The Incubation Periods of Dengue Viruses", "journal": "PLoS One", "year": 2012, + "PMID": 23226436, + "DOI": "10.1371/journal.pone.0050972" + }, + "metadata": { "sample_size": 146, "region": "Mixed", "transmission_mode": "vector_borne", "vector": "Aedes aegypti and Aedes albopictus", "extrinsic": true, - "prob_distribution": "lnorm", - "inference_method": "bayesian", - "mean": 15, - "mean_ci_limits": [10, 20], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": 5, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": 33, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Extrinsic incubation period for data at 25 degrees celcius", - "PMID": 23226436, - "DOI": "10.1371/journal.pone.0050972" + "phase_bias_adjusted": false }, - { - "disease": "Dengue", - "pathogen": "Dengue Virus", - "epi_distribution": "incubation_period", + "notes": "Extrinsic incubation period for data at 25 degrees celcius" +}, +{ + "disease": "Dengue", + "pathogen": "Dengue Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "precision": 4.9, + "precision_ci_limits": [2.8, 7.5], + "precision_ci": 95 + } + }, + "summary_statistics": { + "mean": 6.5, + "mean_ci_limits": [4.8, 8.8], + "mean_ci": 95, + "quantile_values": [2.4, 15], + "quantile_names": ["2.5" ,"97.5"] + }, + "citation": { "author": ["Miranda Chan", "Michael A. Johansson"], "title": "The Incubation Periods of Dengue Viruses", "journal": "PLoS One", "year": 2012, + "PMID": 23226436, + "DOI": "10.1371/journal.pone.0050972" + }, + "metadata": { "sample_size": 146, "region": "Mixed", "transmission_mode": "vector_borne", "vector": "Aedes aegypti and Aedes albopictus", "extrinsic": true, - "prob_distribution": "lnorm", - "inference_method": "bayesian", - "mean": 6.5, - "mean_ci_limits": [4.8, 8.8], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": 2.4, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": 15, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": 4.9, - "precision_ci_limits": [2.8, 7.5], - "precision_ci": 95, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Extrinsic incubation period for data at 30 degrees celcius", - "PMID": 23226436, - "DOI": "10.1371/journal.pone.0050972" + "phase_bias_adjusted": false }, - { - "disease": "Dengue", - "pathogen": "Dengue Virus", - "epi_distribution": "incubation_period", + "notes": "Extrinsic incubation period for data at 30 degrees celcius" +}, +{ + "disease": "Dengue", + "pathogen": "Dengue Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "meanlog": 1.75, + "sdlog": 0.27, + "precision": 13.7, + "precision_ci_limits": [10.9, 16.9], + "precision_ci": 95 + } + }, + "summary_statistics": { + "mean": 5.97, + "mean_ci_limits": [5.5, 6.4], + "mean_ci": 95, + "sd": 1.64, + "quantile_values": [3.4, 10], + "quantile_names": ["2.5", "97.5"] + }, + "citation": { "author": ["Miranda Chan", "Michael A. Johansson"], "title": "The Incubation Periods of Dengue Viruses", "journal": "PLoS One", "year": 2012, + "PMID": 23226436, + "DOI": "10.1371/journal.pone.0050972" + }, + "metadata": { "sample_size": 153, "region": "Mixed", "transmission_mode": "vector_borne", "vector": "Aedes aegypti and Aedes albopictus", "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "bayesian", - "mean": 5.97, - "mean_ci_limits": [5.5, 6.4], - "mean_ci": 95, - "sd": 1.64, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": 3.4, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": 10, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": 1.75, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": 0.27, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": 13.7, - "precision_ci_limits": [10.9, 16.9], - "precision_ci": 95, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Standard deviation, meanlog and sdlog is taken from Siraj et al. 2017 <10.1371/journal.pntd.0005797>", - "PMID": 23226436, - "DOI": "10.1371/journal.pone.0050972" + "phase_bias_adjusted": false }, - { - "disease": "Zika Virus Disease", - "pathogen": "Zika Virus", - "epi_distribution": "incubation_period", + "notes": "Standard deviation, meanlog and sdlog is taken from Siraj et al. 2017 <10.1371/journal.pntd.0005797>" +}, +{ + "disease": "Zika Virus Disease", + "pathogen": "Zika Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.5, + "dispersion_ci_limits": [1.2, 1.9], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [3.2, 4.6, 7.6, 11.2], + "quantile_names": ["5" ,"25", "75", "95"], + "median": 5.9, + "median_ci_limits": [4.4, 7.6], + "median_ci": 95 + }, + "citation": { "author": ["Justin Lessler", "Cassandra T Ott", "Andrea C Carcelen", "Jacob M Konikoff", "Joe Williamson", "Qifang Bi", "Lauren M Kucirka", "Derek A. T. Cummings", "Nicholas G Reich", "Lelia H Chaisson"], "title": "Times to key events in Zika virus infection and implications for blood donation: a systematic review", "journal": "Bulletin of the World Health Organization", "year": 2016, + "PMID": 27821887, + "DOI": "10.2471/BLT.16.174540" + }, + "metadata": { "sample_size": 25, "region": "Mixed", "transmission_mode": "vector_borne", "vector": "Aedes aegypti and Aedes albopictus", "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "bayesian", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 3.2, - "quantile_25": 4.6, - "median": 5.9, - "median_ci_limits": [4.4, 7.6], - "median_ci": 95, - "quantile_75": 7.6, - "quantile_87.5": null, - "quantile_95": 11.2, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.5, - "dispersion_ci_limits": [1.2, 1.9], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Lessler et al. 2016 for references of datasets", - "PMID": 27821887, - "DOI": "10.2471/BLT.16.174540" + "phase_bias_adjusted": false }, - { - "disease": "Chikungunya", - "pathogen": "Chikungunya Virus", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Lessler et al. 2016 for references of datasets" +}, +{ + "disease": "Chikungunya", + "pathogen": "Chikungunya Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.04, + "dispersion_ci_limits": [1.04, 1.08], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [2.9, 3], + "quantile_names": ["25", "75"], + "median": 3, + "median_ci_limits": [0.5, 3.1], + "median_ci": 95 + }, + "citation": { "author": ["Kara E Rudolph", "Justin Lessler", "Rachael M Moloney", "Brittany Kmush", "Derek A T Cummings"], "title": "Incubation periods of mosquito-borne viral infections: a systematic review", "journal": "The American Journal of Tropical Medicine and Hygiene", "year": 2014, + "PMID": 24639305, + "DOI": "10.4269/ajtmh.13-0403" + }, + "metadata": { "sample_size": 21, "region": "Mixed", "transmission_mode": "vector_borne", "vector": "Aedes albopictus", "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 2.9, - "median": 3, - "median_ci_limits": [0.5, 3.1], - "median_ci": 95, - "quantile_75": 3, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.04, - "dispersion_ci_limits": [1.04, 1.08], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets", - "PMID": 24639305, - "DOI": "10.4269/ajtmh.13-0403" + "phase_bias_adjusted": false }, - { - "disease": "Dengue", - "pathogen": "Dengue Virus", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets" +}, +{ + "disease": "Dengue", + "pathogen": "Dengue Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.41, + "dispersion_ci_limits": [1.34, 1.5], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [4.5, 7.1], + "quantile_names": ["25", "75"], + "median": 5.6, + "median_ci_limits": [5.3, 6], + "median_ci": 95 + }, + "citation": { "author": ["Kara E Rudolph", "Justin Lessler", "Rachael M Moloney", "Brittany Kmush", "Derek A T Cummings"], "title": "Incubation periods of mosquito-borne viral infections: a systematic review", "journal": "The American Journal of Tropical Medicine and Hygiene", "year": 2014, + "PMID": 24639305, + "DOI": "10.4269/ajtmh.13-0403" + }, + "metadata": { "sample_size": 169, "region": "Mixed", "transmission_mode": "multiple", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 4.5, - "median": 5.6, - "median_ci_limits": [5.3, 6], - "median_ci": 95, - "quantile_75": 7.1, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.41, - "dispersion_ci_limits": [1.34, 1.5], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets", - "PMID": 24639305, - "DOI": "10.4269/ajtmh.13-0403" + "phase_bias_adjusted": false }, - { - "disease": "Dengue", - "pathogen": "Dengue Virus", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets" +}, +{ + "disease": "Dengue", + "pathogen": "Dengue Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.37, + "dispersion_ci_limits": [1.27, 1.52], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [4.3, 6.6], + "quantile_names": ["25", "75"], + "median": 5.3, + "median_ci_limits": [5, 5.7], + "median_ci": 95 + }, + "citation": { "author": ["Kara E Rudolph", "Justin Lessler", "Rachael M Moloney", "Brittany Kmush", "Derek A T Cummings"], "title": "Incubation periods of mosquito-borne viral infections: a systematic review", "journal": "The American Journal of Tropical Medicine and Hygiene", "year": 2014, + "PMID": 24639305, + "DOI": "10.4269/ajtmh.13-0403" + }, + "metadata": { "sample_size": 124, "region": "Mixed", "transmission_mode": "vector_borne", "vector": "Aedes aegypti and Aedes albopictus", "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 4.3, - "median": 5.3, - "median_ci_limits": [5, 5.7], - "median_ci": 95, - "quantile_75": 6.6, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.37, - "dispersion_ci_limits": [1.27, 1.52], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections", - "PMID": 24639305, - "DOI": "10.4269/ajtmh.13-0403" + "phase_bias_adjusted": false }, - { - "disease": "Japanese Encephalitis", - "pathogen": "Japanese Encephalitis Virus", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections" +}, +{ + "disease": "Japanese Encephalitis", + "pathogen": "Japanese Encephalitis Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.04, + "dispersion_ci_limits": [1.04, 1.05], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [8.1, 8.6], + "quantile_names": ["25", "75"], + "median": 8.4, + "median_ci_limits": [5.1, 9.4], + "median_ci": 95 + }, + "citation": { "author": ["Kara E Rudolph", "Justin Lessler", "Rachael M Moloney", "Brittany Kmush", "Derek A T Cummings"], "title": "Incubation periods of mosquito-borne viral infections: a systematic review", "journal": "The American Journal of Tropical Medicine and Hygiene", "year": 2014, + "PMID": 24639305, + "DOI": "10.4269/ajtmh.13-0403" + }, + "metadata": { "sample_size": 6, "region": "Mixed", "transmission_mode": "vector_borne", "vector": "mosquito", "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 8.1, - "median": 8.4, - "median_ci_limits": [5.1, 9.4], - "median_ci": 95, - "quantile_75": 8.6, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.04, - "dispersion_ci_limits": [1.04, 1.05], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets", - "PMID": 24639305, - "DOI": "10.4269/ajtmh.13-0403" + "phase_bias_adjusted": false }, - { - "disease": "Rift Valley Fever", - "pathogen": "Rift Valley Fever Virus", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets" +}, +{ + "disease": "Rift Valley Fever", + "pathogen": "Rift Valley Fever Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.5, + "dispersion_ci_limits": [1.22, 1.82], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [3.1, 5.3], + "quantile_names": ["25", "75"], + "median": 4, + "median_ci_limits": [3.4, 4.9], + "median_ci": 95 + }, + "citation": { "author": ["Kara E Rudolph", "Justin Lessler", "Rachael M Moloney", "Brittany Kmush", "Derek A T Cummings"], "title": "Incubation periods of mosquito-borne viral infections: a systematic review", "journal": "The American Journal of Tropical Medicine and Hygiene", "year": 2014, + "PMID": 24639305, + "DOI": "10.4269/ajtmh.13-0403" + }, + "metadata": { "sample_size": 23, "region": "Mixed", "transmission_mode": "vector_borne", "vector": "mosquito", "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 3.1, - "median": 4, - "median_ci_limits": [3.4, 4.9], - "median_ci": 95, - "quantile_75": 5.3, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.5, - "dispersion_ci_limits": [1.22, 1.82], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. Of the 18 samples at least 17 of them are not trasmitted by mosquitoes", - "PMID": 24639305, - "DOI": "10.4269/ajtmh.13-0403" + "phase_bias_adjusted": false }, - { - "disease": "West Nile Fever", - "pathogen": "West Nile Virus", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. Of the 18 samples at least 17 of them are not trasmitted by mosquitoes" +}, +{ + "disease": "West Nile Fever", + "pathogen": "West Nile Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.82, + "dispersion_ci_limits": [1.27, 2.67], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [1, 1.7, 3.8, 7], + "quantile_names": ["5", "25", "75", "95"], + "median": 2.6, + "median_ci_limits": [1.6, 3.5], + "median_ci": 95 + }, + "citation": { "author": ["Kara E Rudolph", "Justin Lessler", "Rachael M Moloney", "Brittany Kmush", "Derek A T Cummings"], "title": "Incubation periods of mosquito-borne viral infections: a systematic review", "journal": "The American Journal of Tropical Medicine and Hygiene", "year": 2014, + "PMID": 24639305, + "DOI": "10.4269/ajtmh.13-0403" + }, + "metadata": { "sample_size": 18, "region": "Mixed", "transmission_mode": "multiple", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 1, - "quantile_25": 1.7, - "median": 2.6, - "median_ci_limits": [1.6, 3.5], - "median_ci": 95, - "quantile_75": 3.8, - "quantile_87.5": null, - "quantile_95": 7, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.82, - "dispersion_ci_limits": [1.27, 2.67], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets", - "PMID": 24639305, - "DOI": "10.4269/ajtmh.13-0403" + "phase_bias_adjusted": false }, - { - "disease": "West Nile Fever", - "pathogen": "West Nile Virus", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets" +}, +{ + "disease": "West Nile Fever", + "pathogen": "West Nile Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.04, + "dispersion_ci_limits": [1.04, 1.29], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [2.8, 3], + "quantile_names": ["25", "75"], + "median": 2.9, + "median_ci_limits": [0.5, 3.1], + "median_ci": 95 + }, + "citation": { "author": ["Kara E Rudolph", "Justin Lessler", "Rachael M Moloney", "Brittany Kmush", "Derek A T Cummings"], "title": "Incubation periods of mosquito-borne viral infections: a systematic review", "journal": "The American Journal of Tropical Medicine and Hygiene", "year": 2014, + "PMID": 24639305, + "DOI": "10.4269/ajtmh.13-0403" + }, + "metadata": { "sample_size": 8, "region": "Mixed", "transmission_mode": "vector_borne", "vector": "mosquito", "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 2.8, - "median": 2.9, - "median_ci_limits": [0.5, 3.1], - "median_ci": 95, - "quantile_75": 3, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.04, - "dispersion_ci_limits": [1.04, 1.29], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections", - "PMID": 24639305, - "DOI": "10.4269/ajtmh.13-0403" + "phase_bias_adjusted": false }, - { - "disease": "West Nile Fever", - "pathogen": "West Nile Virus", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections" +}, +{ + "disease": "West Nile Fever", + "pathogen": "West Nile Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.35, + "dispersion_ci_limits": [1.12, 1.47], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [8.7, 13.3], + "quantile_names": ["25", "75"], + "median": 10.8, + "median_ci_limits": [8.4, 14.2], + "median_ci": 95 + }, + "citation": { "author": ["Kara E Rudolph", "Justin Lessler", "Rachael M Moloney", "Brittany Kmush", "Derek A T Cummings"], "title": "Incubation periods of mosquito-borne viral infections: a systematic review", "journal": "The American Journal of Tropical Medicine and Hygiene", "year": 2014, + "PMID": 24639305, + "DOI": "10.4269/ajtmh.13-0403" + }, + "metadata": { "sample_size": 6, "region": "Mixed", "transmission_mode": "organ_transplant", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 8.7, - "median": 10.8, - "median_ci_limits": [8.4, 14.2], - "median_ci": 95, - "quantile_75": 13.3, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.35, - "dispersion_ci_limits": [1.12, 1.47], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only tramsission by transplant or transfusion. ", - "PMID": 24639305, - "DOI": "10.4269/ajtmh.13-0403" + "phase_bias_adjusted": false }, - { - "disease": "Yellow Fever", - "pathogen": "Yellow Fever Viruses", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only tramsission by transplant or transfusion. " +}, +{ + "disease": "Yellow Fever", + "pathogen": "Yellow Fever Viruses", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.66, + "dispersion_ci_limits": [1.48, 1.82], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [1.9, 3.2, 6.3, 10.3], + "quantile_names": ["5", "25", "75", "95"], + "median": 4.4, + "median_ci_limits": [4, 5], + "median_ci": 95 + }, + "citation": { "author": ["Kara E Rudolph", "Justin Lessler", "Rachael M Moloney", "Brittany Kmush", "Derek A T Cummings"], "title": "Incubation periods of mosquito-borne viral infections: a systematic review", "journal": "The American Journal of Tropical Medicine and Hygiene", "year": 2014, + "PMID": 24639305, + "DOI": "10.4269/ajtmh.13-0403" + }, + "metadata": { "sample_size": 91, "region": "Mixed", "transmission_mode": "multiple", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 1.9, - "quantile_25": 3.2, - "median": 4.4, - "median_ci_limits": [4, 5], - "median_ci": 95, - "quantile_75": 6.3, - "quantile_87.5": null, - "quantile_95": 10.3, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.66, - "dispersion_ci_limits": [1.48, 1.82], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets", - "PMID": 24639305, - "DOI": "10.4269/ajtmh.13-0403" + "phase_bias_adjusted": false }, - { - "disease": "Yellow Fever", - "pathogen": "Yellow Fever Viruses", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets" +}, +{ + "disease": "Yellow Fever", + "pathogen": "Yellow Fever Viruses", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.67, + "dispersion_ci_limits": [1.47, 1.84], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "quantile_values": [1.9, 3.1, 6.2, 10.3], + "quantile_names": ["5", "25", "75", "95"], + "median": 4.4, + "median_ci_limits": [3.9, 5], + "median_ci": 95 + }, + "citation": { "author": ["Kara E Rudolph", "Justin Lessler", "Rachael M Moloney", "Brittany Kmush", "Derek A T Cummings"], "title": "Incubation periods of mosquito-borne viral infections: a systematic review", "journal": "The American Journal of Tropical Medicine and Hygiene", "year": 2014, + "PMID": 24639305, + "DOI": "10.4269/ajtmh.13-0403" + }, + "metadata": { "sample_size": 80, "region": "Mixed", "transmission_mode": "vector_borne", "vector": "mosquito", "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 1.9, - "quantile_25": 3.1, - "median": 4.4, - "median_ci_limits": [3.9, 5], - "median_ci": 95, - "quantile_75": 6.2, - "quantile_87.5": null, - "quantile_95": 10.3, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.67, - "dispersion_ci_limits": [1.47, 1.84], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections", - "PMID": 24639305, - "DOI": "10.4269/ajtmh.13-0403" + "phase_bias_adjusted": false }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "notes": "Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections" +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { } + }, + "summary_statistics": { + "mean": 9, + "mean_ci_limits": [6.6, 10.9], + "mean_ci": 95, + "quantile_values": [3.6, 4.2, 17.3, 19.9], + "quantile_names": ["2.5", "5", "95", "97.5"], + "median": 8.5, + "median_ci_limits": [6.6, 10.9], + "median_ci": 95 + }, + "citation": { "author": ["Fuminari Miura", "Catharina E van Ewijk", "Jantien A Backer", "Maria Xiridou", "Eelco Franz", "Eline Op de Coul", "Diederik Brandwagt", "Brigitte van Cleef", "Gini van Rijckevorsel", "Corien Swaan", "Susan van den Hof", "Jacco Wallinga"], "title": "Estimated incubation period for monkeypox cases confirmed in the Netherlands, May 2022", "journal": "Eurosurveillance", "year": 2022, + "PMID": 35713026, + "DOI": "10.2807/1560-7917.ES.2022.27.24.2200448" + }, + "metadata": { "sample_size": 18, "region": "Netherlands", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "bayesian", - "mean": 9, - "mean_ci_limits": [6.6, 10.9], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": 3.6, - "quantile_5": 4.2, - "quantile_25": null, - "median": 8.5, - "median_ci_limits": [6.6, 10.9], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 17.3, - "quantile_97.5": 19.9, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "No additional notes", - "PMID": 35713026, - "DOI": "10.2807/1560-7917.ES.2022.27.24.2200448" + "phase_bias_adjusted": false }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", - "author": ["Kelly Charniga", "Nina B. Masters", "Rachel B. Slayton", "Lucas Gosdin", "Faisal S. Minhaj", "David Philpott", "Dallas Smith", "Shannon Gearhart", "Francisco Alvarado-Ramy", "Clive Brown", "Michelle A. Waltenburg", "Christine M. Hughes", "Yoshinori Nakazawa"], - "title": "Estimating the incubation period of monkeypox virus during the 2022 multi-national outbreak", - "journal": "medRxiv", - "year": 2022, - "sample_size": 22, - "region": "USA", - "transmission_mode": "natural_natural_human_to_human", - "vector": null, - "extrinsic": false, + "notes": "No additional notes" +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { "prob_distribution": "lnorm", - "inference_method": "bayesian", + "parameters": { } + }, + "summary_statistics": { "mean": 7.6, "mean_ci_limits": [6.2, 9.7], "mean_ci": 95, "sd": 1.8, "sd_ci_limits": [1.6, 2.2], "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, + "quantile_values": [17.1], + "quantile_names": ["95"], "median": 6.4, "median_ci_limits": [5.1, 7.9], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 17.1, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "median_ci": 95 + }, + "citation": { + "author": ["Kelly Charniga", "Nina B. Masters", "Rachel B. Slayton", "Lucas Gosdin", "Faisal S. Minhaj", "David Philpott", "Dallas Smith", "Shannon Gearhart", "Francisco Alvarado-Ramy", "Clive Brown", "Michelle A. Waltenburg", "Christine M. Hughes", "Yoshinori Nakazawa"], + "title": "Estimating the incubation period of monkeypox virus during the 2022 multi-national outbreak", + "journal": "medRxiv", + "year": 2022, + "PMID": null, + "DOI": "10.1101/2022.06.22.22276713" + }, + "metadata": { + "sample_size": 22, + "region": "USA", + "transmission_mode": "natural_natural_human_to_human", + "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Uses the methods described by Lessler (10.2471/BLT.16.174540) and Reich (10.1002/sim.3659). Estimated from time from exposure to first symptom onset", - "PMID": null, - "DOI": "10.1101/2022.06.22.22276713" + "phase_bias_adjusted": false }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "notes": "Uses the methods described by Lessler (10.2471/BLT.16.174540) and Reich (10.1002/sim.3659). Estimated from time from exposure to first symptom onset" +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "gamma", + "parameters": { } + }, + "summary_statistics": { + "mean": 9.1, + "mean_ci_limits": [6.5, 10.9], + "mean_ci": 95, + "quantile_values": [2, 20], + "quantile_names": ["5", "95"] + }, + "citation": { "author": ["Giorgio Guzzetta", "Alessia Mammone", "Federica Ferraro", "Anna Caraglia", "Alessia Rapiti", "Valentina Marziano", "Piero Poletti", "Danilo Cereda", "Francesco Vairo", "Giovanna Mattei", "Francesco Maraglino", "Giovanni Rezza", "Stefano Merler"], "title": "Early Estimates of Monkeypox Incubation Period, Generation Time, and Reproduction Number, Italy, May-June 2022", "journal": "Emerging Infectious Diseases", "year": 2022, + "PMID": 35994726, + "DOI": "10.3201/eid2810.221126" + }, + "metadata": { "sample_size": 255, "region": "Italy", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "gamma", - "inference_method": "bayesian", - "mean": 9.1, - "mean_ci_limits": [6.5, 10.9], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 2, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 20, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "No additional notes", - "PMID": 35994726, - "DOI": "10.3201/eid2810.221126" + "phase_bias_adjusted": false }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", - "author": ["Zachary J. Madewell", "Kelly Charniga", "Nina B. Masters", "Jason Asher", "Lily Fahrenwald", "William Still", "Judy Chen", "Naama Kipperman", "David Bui", "Meghan Shea", "Lori Saathoff-Huber", "Shannon Johnson", "Khalil Harbi", "Abby L. Berns", "Taidy Perez", "Emily Gateley", "Ian H. Spicknall", "Yoshinori Nakazawa", "Thomas L. Gift", "2022-Monkeypox-Outbreak-Response-Team"], - "title": "Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2022", - "journal": "medRxiv", - "year": 2022, - "sample_size": 35, - "region": "USA", - "transmission_mode": "natural_natural_human_to_human", - "vector": null, - "extrinsic": false, + "notes": "No additional notes" +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { "prob_distribution": "lnorm", - "inference_method": "bayesian", + "parameters": { + "meanlog": 1.8, + "meanlog_ci_limits": [1.6, 2.1], + "meanlog_ci": 95, + "sdlog": 0.6, + "sdlog_ci_limits": [0.4, 0.8], + "sdlog_ci": 95 + } + }, + "summary_statistics": { "mean": 7.5, "mean_ci_limits": [6, 9.8], "mean_ci": 95, "sd": 4.9, "sd_ci_limits": [3.2, 8.8], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": 1.8, - "meanlog_ci_limits": [1.6, 2.1], - "meanlog_ci": 95, - "sdlog": 0.6, - "sdlog_ci_limits": [0.4, 0.8], - "sdlog_ci": 95, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": false, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Meanlog, sdlog, and fitted distribution from supplementary material. Uses cases from Charniga 2022 + extra cases. Incubation period as exposure to rash onset.", - "PMID": null, - "DOI": "10.1101/2022.10.26.22281516" + "sd_ci": 95 }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "citation": { "author": ["Zachary J. Madewell", "Kelly Charniga", "Nina B. Masters", "Jason Asher", "Lily Fahrenwald", "William Still", "Judy Chen", "Naama Kipperman", "David Bui", "Meghan Shea", "Lori Saathoff-Huber", "Shannon Johnson", "Khalil Harbi", "Abby L. Berns", "Taidy Perez", "Emily Gateley", "Ian H. Spicknall", "Yoshinori Nakazawa", "Thomas L. Gift", "2022-Monkeypox-Outbreak-Response-Team"], - "title": "Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2023", + "title": "Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2022", "journal": "medRxiv", "year": 2022, - "sample_size": 36, + "PMID": null, + "DOI": "10.1101/2022.10.26.22281516" + }, + "metadata": { + "sample_size": 35, "region": "USA", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": false, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "Meanlog, sdlog, and fitted distribution from supplementary material. Uses cases from Charniga 2022 + extra cases. Incubation period as exposure to rash onset." +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { "prob_distribution": "lnorm", - "inference_method": "bayesian", + "parameters": { + "meanlog": 1.5, + "meanlog_ci_limits": [1.2, 1.8], + "meanlog_ci": 95, + "sdlog": 0.7, + "sdlog_ci_limits": [0.5, 1], + "sdlog_ci": 95 + } + }, + "summary_statistics": { "mean": 5.6, "mean_ci_limits": [4.3, 7.8], "mean_ci": 95, "sd": 4.4, "sd_ci_limits": [2.8, 8.7], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": 1.5, - "meanlog_ci_limits": [1.2, 1.8], - "meanlog_ci": 95, - "sdlog": 0.7, - "sdlog_ci_limits": [0.5, 1], - "sdlog_ci": 95, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": false, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Meanlog, sdlog, and fitted distribution from supplementary material. Uses cases from Charniga 2022 + extra cases. Incubation period as exposure to symptom onset.", - "PMID": null, - "DOI": "10.1101/2022.10.26.22281516" + "sd_ci": 95 }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus", - "epi_distribution": "serial_interval", + "citation": { "author": ["Zachary J. Madewell", "Kelly Charniga", "Nina B. Masters", "Jason Asher", "Lily Fahrenwald", "William Still", "Judy Chen", "Naama Kipperman", "David Bui", "Meghan Shea", "Lori Saathoff-Huber", "Shannon Johnson", "Khalil Harbi", "Abby L. Berns", "Taidy Perez", "Emily Gateley", "Ian H. Spicknall", "Yoshinori Nakazawa", "Thomas L. Gift", "2022-Monkeypox-Outbreak-Response-Team"], - "title": "Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2024", + "title": "Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2023", "journal": "medRxiv", "year": 2022, - "sample_size": 57, + "PMID": null, + "DOI": "10.1101/2022.10.26.22281516" + }, + "metadata": { + "sample_size": 36, "region": "USA", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "gamma", - "inference_method": "bayesian", - "mean": 8.5, - "mean_ci_limits": [7.3, 9.9], - "mean_ci": 95, - "sd": 5, - "sd_ci_limits": [4, 6.4], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": 2.9, - "shape_ci_limits": [2, 4.1], - "shape_ci": 95, - "scale": 2.9, - "scale_ci_limits": [2, 4.4], - "scale_ci": 95, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Shape and scale from supp. material. Serial interval as exposure to symptom onset", - "PMID": null, - "DOI": "10.1101/2022.10.26.22281516" + "phase_bias_adjusted": false }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus", - "epi_distribution": "serial_interval", + "notes": "Meanlog, sdlog, and fitted distribution from supplementary material. Uses cases from Charniga 2022 + extra cases. Incubation period as exposure to symptom onset." +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus", + "epi_distribution": "serial_interval", + "probability_distribution": { + "prob_distribution": "gamma", + "parameters": { + "shape": 2.9, + "shape_ci_limits": [2, 4.1], + "shape_ci": 95, + "scale": 2.9, + "scale_ci_limits": [2, 4.4], + "scale_ci": 95 + } + }, + "summary_statistics": { + "mean": 8.5, + "mean_ci_limits": [7.3, 9.9], + "mean_ci": 95, + "sd": 5, + "sd_ci_limits": [4, 6.4], + "sd_ci": 95 + }, + "citation": { "author": ["Zachary J. Madewell", "Kelly Charniga", "Nina B. Masters", "Jason Asher", "Lily Fahrenwald", "William Still", "Judy Chen", "Naama Kipperman", "David Bui", "Meghan Shea", "Lori Saathoff-Huber", "Shannon Johnson", "Khalil Harbi", "Abby L. Berns", "Taidy Perez", "Emily Gateley", "Ian H. Spicknall", "Yoshinori Nakazawa", "Thomas L. Gift", "2022-Monkeypox-Outbreak-Response-Team"], - "title": "Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2025", + "title": "Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2024", "journal": "medRxiv", "year": 2022, - "sample_size": 40, + "PMID": null, + "DOI": "10.1101/2022.10.26.22281516" + }, + "metadata": { + "sample_size": 57, "region": "USA", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": false, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "Shape and scale from supp. material. Serial interval as exposure to symptom onset" +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus", + "epi_distribution": "serial_interval", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "bayesian", + "parameters": { + "shape": 2.8, + "shape_ci_limits": [1.8, 4.2], + "shape_ci": 95, + "scale": 2.5, + "scale_ci_limits": [2.5, 4], + "scale_ci": 95 + } + }, + "summary_statistics": { "mean": 7, "mean_ci_limits": [5.8, 8.4], "mean_ci": 95, "sd": 4.2, "sd_ci_limits": [3.2, 5.6], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": 2.8, - "shape_ci_limits": [1.8, 4.2], - "shape_ci": 95, - "scale": 2.5, - "scale_ci_limits": [2.5, 4], - "scale_ci": 95, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "sd_ci": 95 + }, + "citation": { + "author": ["Zachary J. Madewell", "Kelly Charniga", "Nina B. Masters", "Jason Asher", "Lily Fahrenwald", "William Still", "Judy Chen", "Naama Kipperman", "David Bui", "Meghan Shea", "Lori Saathoff-Huber", "Shannon Johnson", "Khalil Harbi", "Abby L. Berns", "Taidy Perez", "Emily Gateley", "Ian H. Spicknall", "Yoshinori Nakazawa", "Thomas L. Gift", "2022-Monkeypox-Outbreak-Response-Team"], + "title": "Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2025", + "journal": "medRxiv", + "year": 2022, + "PMID": null, + "DOI": "10.1101/2022.10.26.22281516" + }, + "metadata": { + "sample_size": 40, + "region": "USA", + "transmission_mode": "natural_natural_human_to_human", + "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Shape and scale from supp. material. Serial interval as exposure to rash onset", - "PMID": null, - "DOI": "10.1101/2022.10.26.22281516" + "phase_bias_adjusted": false }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus-Zaire Subtype", - "epi_distribution": "incubation_period", + "notes": "Shape and scale from supp. material. Serial interval as exposure to rash onset" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus-Zaire Subtype", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { } + }, + "summary_statistics": { + "mean": 12.7, + "sd": 4.31 + }, + "citation": { "author": ["Martin Eichner", "Scott F Dowell", "Nina Firese"], "title": "Incubation period of ebola hemorrhagic virus subtype zaire", "journal": "Osong Public Health and Research Perspectives", "year": 2011, + "PMID": 24159443, + "DOI": "10.1016/j.phrp.2011.04.001" + }, + "metadata": { "sample_size": 196, "region": "Kikwit, Democratic Republic of Congo", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": 12.7, - "mean_ci_limits": null, - "mean_ci": null, - "sd": 4.31, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "The paper reports lower and upper supported ranges for the mean and standard deviation but it is not clear if these are confidence intervals or not so are not included in the database", - "PMID": 24159443, - "DOI": "10.1016/j.phrp.2011.04.001" + "phase_bias_adjusted": false }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus-Zaire Subtype", - "epi_distribution": "onset_to_death", + "notes": "The paper reports lower and upper supported ranges for the mean and standard deviation but it is not clear if these are confidence intervals or not so are not included in the database" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus-Zaire Subtype", + "epi_distribution": "onset_to_death", + "probability_distribution": { + "prob_distribution": "gamma", + "parameters": { + "shape": 2.4, + "shape_ci_limits": [1.1, 4.5], + "shape_ci": 95, + "scale": 3.3333, + "scale_ci_limits": [2, 10], + "scale_ci": 95 + } + }, + "summary_statistics": { + "mean": 9.3, + "mean_ci_limits": [6.6, 13.6], + "mean_ci": 95, + "sd": 6, + "sd_ci_limits": [4, 11], + "sd_ci": 95 + }, + "citation": { "author": ["The-Ebola-Outbreak-Epidemiology-Team", "Ahmadou Barry", "Steve Ahuka-Mundeke", "Yahaya Ali Ahmed", "Yokouide Allarangar", "Julienne Anoko", "Brett Nicholas Archer", "Aaron Aruna Abedi", "Jayshree Bagaria", "Marie Roseline Darnycka Belizaire", "Sangeeta Bhatia", "Théophile Bokenge", "Emanuele Bruni", "Anne Cori", "Ernest Dabire", "Amadou Mouctar Diallo", "Boubacar Diallo", "Christl Ann Donnelly", "Ilaria Dorigatti", "Tshewang Choden Dorji", "Aura Rocio Escobar Corado Waeber", "Ibrahima Socé Fall", "Neil M Ferguson", "Richard Gareth FitzJohn", "Gervais Leon Folefack Tengomo", "Pierre Bernard Henri Formenty", "Alpha Forna", "Anne Fortin", "Tini Garske", "Katy AM Gaythorpe", "Celine Gurry", "Esther Hamblion", "Mamoudou Harouna Djingarey", "Christopher Haskew", "Stéphane Alexandre Louis Hugonnet", "Natsuko Imai", "Benido Impouma", "Guylain Kabongo", "Oly Ilunga Kalenga", "Emerencienne Kibangou", "Theresa Min-Hyung Lee", "Charles Okot Lukoya", "Ousmane Ly", "Sheila Makiala-Mandanda", "Augustin Mamba", "Placide Mbala-Kingebeni", "Franck Fortune Roland Mboussou", "Tamayi Mlanda", "Vital Mondonge Makuma", "Oliver Morgan", "Anastasie Mujinga Mulumba", "Patrick Mukadi Kakoni", "Daniel Mukadi-Bamuleka", "Jean-Jaques Muyembe", "Ndjoloko Tambwe Bathé", "Patricia Ndumbi Ngamala", "Roland Ngom", "Guillaume Ngoy", "Pierre Nouvellet", "Justus Nsio", "Kevin Babila Ousman", "Emilie Peron", "Jonathan Aaron Polonsky", "Michael J. Ryan", "Alhassane Touré", "Rodney Towner", "Gaston Tshapenda", "Reinhilde Van De Weerdt", "Maria Van Kerkhove", "Annika Wendland", "N'Da Konan Michel Yao", "Zabulon Yoti", "Etienne Yuma", "Guy Kalambayi Kabamba", "Jean de Dieu Lukwesa Mwati", "Gisele Mbuy", "Leopold Lubula", "Anny Mutombo", "Oscar Mavila", "Yyonne Lay", "Emma Kitenge"], "title": "Outbreak of Ebola virus disease in the Democratic Republic of the Congo, April–May, 2018: an epidemiological study", "journal": "The Lancet", "year": 2018, + "PMID": 30047375, + "DOI": "10.1016/S0140-6736(18)31387-4" + }, + "metadata": { "sample_size": 14, "region": "DR Congo", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "gamma", - "inference_method": "mle", - "mean": 9.3, - "mean_ci_limits": [6.6, 13.6], - "mean_ci": 95, - "sd": 6, - "sd_ci_limits": [4, 11], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": 2.4, - "shape_ci_limits": [1.1, 4.5], - "shape_ci": 95, - "scale": 3.3333, - "scale_ci_limits": [2, 10], - "scale_ci": 95, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Data extracted from Appendix. The mean, sd, shape and scale are taken from the paper, the conversion between the two does not match exactly. The data used to estimate the onset-to-death distribution is not from the DRC outbreak but from the west african outbreak.", - "PMID": 30047375, - "DOI": "10.1016/S0140-6736(18)31387-4" + "phase_bias_adjusted": false }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "incubation_period", - "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], - "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", - "journal": "The New England Journal of Medicine", - "year": 2015, - "sample_size": 1798, - "region": "West Africa", - "transmission_mode": "natural_natural_human_to_human", - "vector": null, - "extrinsic": false, + "notes": "Data extracted from Appendix. The mean, sd, shape and scale are taken from the paper, the conversion between the two does not match exactly. The data used to estimate the onset-to-death distribution is not from the DRC outbreak but from the west african outbreak." +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "mle", + "parameters": { } + }, + "summary_statistics": { "mean": 10.3, "mean_ci_limits": [9.9, 10.7], "mean_ci": 95, "sd": 8.2, "sd_ci_limits": [7.8, 8.6], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Data extracted from Appendix. This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "sd_ci": 95 }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "incubation_period", + "citation": { "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", "journal": "The New England Journal of Medicine", "year": 2015, - "sample_size": 49, - "region": "Guinea", + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { + "sample_size": 1798, + "region": "West Africa", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "Data extracted from Appendix. This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "mle", + "parameters": { } + }, + "summary_statistics": { "mean": 12.6, "mean_ci_limits": [9.1, 17.1], "mean_ci": 95, "sd": 13.1, "sd_ci_limits": [9.6, 19.6], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This data comes from the entire period of the Guinea ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "sd_ci": 95 }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "incubation_period", + "citation": { "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", "journal": "The New England Journal of Medicine", "year": 2015, - "sample_size": 957, - "region": "Liberia", + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { + "sample_size": 49, + "region": "Guinea", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This data comes from the entire period of the Guinea ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "mle", + "parameters": { } + }, + "summary_statistics": { "mean": 10, "mean_ci_limits": [9.6, 10.5], "mean_ci": 95, "sd": 7.6, "sd_ci_limits": [7.1, 8.1], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This data comes from the entire period of the Liberia ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "sd_ci": 95 }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "incubation_period", + "citation": { "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", "journal": "The New England Journal of Medicine", "year": 2015, - "sample_size": 792, - "region": "Sierra Leone", + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { + "sample_size": 957, + "region": "Liberia", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This data comes from the entire period of the Liberia ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "mle", + "parameters": { } + }, + "summary_statistics": { "mean": 10.4, "mean_ci_limits": [9.8, 11], "mean_ci": 95, "sd": 8.6, "sd_ci_limits": [8, 9.3], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This data comes from the entire period of the Seirra Leone ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "sd_ci": 95 }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "serial_interval", + "citation": { "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", "journal": "The New England Journal of Medicine", "year": 2015, - "sample_size": 305, - "region": "West Africa", + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { + "sample_size": 792, + "region": "Sierra Leone", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This data comes from the entire period of the Seirra Leone ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "serial_interval", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "mle", + "parameters": { } + }, + "summary_statistics": { "mean": 14.2, "mean_ci_limits": [13.1, 15.3], "mean_ci": 95, "sd": 9.6, "sd_ci_limits": [8.6, 10.7], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": false, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "sd_ci": 95 }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "serial_interval", + "citation": { "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", "journal": "The New England Journal of Medicine", "year": 2015, - "sample_size": 37, - "region": "Guinea", + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { + "sample_size": 305, + "region": "West Africa", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": false, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "serial_interval", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "mle", + "parameters": { } + }, + "summary_statistics": { "mean": 15.5, "mean_ci_limits": [13.4, 18.1], "mean_ci": 95, "sd": 7, "sd_ci_limits": [5.5, 9.4], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": false, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This data comes from the entire period of the Guinea ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "sd_ci": 95 }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "serial_interval", + "citation": { "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", "journal": "The New England Journal of Medicine", "year": 2015, - "sample_size": 147, - "region": "Liberia", + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { + "sample_size": 37, + "region": "Guinea", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": false, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This data comes from the entire period of the Guinea ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "serial_interval", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "mle", + "parameters": { } + }, + "summary_statistics": { "mean": 15.1, "mean_ci_limits": [13.5, 16.9], "mean_ci": 95, "sd": 10.5, "sd_ci_limits": [9.1, 12.5], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": false, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This data comes from the entire period of the Liberia ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "sd_ci": 95 }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "serial_interval", + "citation": { "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", "journal": "The New England Journal of Medicine", "year": 2015, - "sample_size": 112, - "region": "Sierra Leone", + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { + "sample_size": 147, + "region": "Liberia", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": false, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This data comes from the entire period of the Liberia ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "serial_interval", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "mle", + "parameters": { } + }, + "summary_statistics": { "mean": 12.4, "mean_ci_limits": [10.8, 14.2], "mean_ci": 95, "sd": 9, "sd_ci_limits": [7.5, 10.9], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": false, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This data comes from the entire period of the Sierra Leone ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "sd_ci": 95 }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "hospitalisation_to_death", + "citation": { "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", "journal": "The New England Journal of Medicine", "year": 2015, - "sample_size": 1167, - "region": "West Africa", + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { + "sample_size": 112, + "region": "Sierra Leone", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": false, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This data comes from the entire period of the Sierra Leone ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "hospitalisation_to_death", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "mle", + "parameters": { } + }, + "summary_statistics": { "mean": 4.3, "mean_ci_limits": [4.1, 4.5], "mean_ci": 95, "sd": 4, "sd_ci_limits": [3.8, 4.3], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": false, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "sd_ci": 95 }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "hospitalisation_to_discharge", + "citation": { "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", "journal": "The New England Journal of Medicine", "year": 2015, - "sample_size": 1004, + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { + "sample_size": 1167, "region": "West Africa", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": false, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "hospitalisation_to_discharge", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "mle", + "parameters": { } + }, + "summary_statistics": { "mean": 11.2, "mean_ci_limits": [10.8, 11.7], "mean_ci": 95, "sd": 7.2, "sd_ci_limits": [6.8, 7.6], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": false, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "sd_ci": 95 }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "notification_to_death", + "citation": { "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", "journal": "The New England Journal of Medicine", "year": 2015, - "sample_size": 2536, + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { + "sample_size": 1004, "region": "West Africa", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": false, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "notification_to_death", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "mle", + "parameters": { } + }, + "summary_statistics": { "mean": 3.5, "mean_ci_limits": [3.3, 3.7], "mean_ci": 95, "sd": 5, "sd_ci_limits": [4.7, 5.4], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": false, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "sd_ci": 95 }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "notification_to_discharge", + "citation": { "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", "journal": "The New England Journal of Medicine", "year": 2015, - "sample_size": 1324, + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { + "sample_size": 2536, "region": "West Africa", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": false, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "notification_to_discharge", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "mle", + "parameters": { } + }, + "summary_statistics": { "mean": 10.9, "mean_ci_limits": [10.5, 11.4], "mean_ci": 95, "sd": 8.2, "sd_ci_limits": [7.8, 8.7], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "sd_ci": 95 + }, + "citation": { + "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], + "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", + "journal": "The New England Journal of Medicine", + "year": 2015, + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { + "sample_size": 1324, + "region": "West Africa", + "transmission_mode": "natural_natural_human_to_human", + "extrinsic": false, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "phase_bias_adjusted": false }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "onset_to_death", + "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "onset_to_death", + "probability_distribution": { + "prob_distribution": "gamma", + "parameters": { } + }, + "summary_statistics": { + "mean": 8.2, + "mean_ci_limits": [7.9, 8.4], + "mean_ci": 95, + "sd": 6.4, + "sd_ci_limits": [6.1, 6.6], + "sd_ci": 95 + }, + "citation": { "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", "journal": "The New England Journal of Medicine", "year": 2015, + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { "sample_size": 2741, "region": "West Africa", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "gamma", - "inference_method": "mle", - "mean": 8.2, - "mean_ci_limits": [7.9, 8.4], - "mean_ci": 95, - "sd": 6.4, - "sd_ci_limits": [6.1, 6.6], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "phase_bias_adjusted": false }, - { - "disease": "Ebola Virus Disease", - "pathogen": "Ebola Virus", - "epi_distribution": "onset_to_discharge", + "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "Ebola Virus Disease", + "pathogen": "Ebola Virus", + "epi_distribution": "onset_to_discharge", + "probability_distribution": { + "prob_distribution": "gamma", + "parameters": { } + }, + "summary_statistics": { + "mean": 15.1, + "mean_ci_limits": [14.6, 15.6], + "mean_ci": 95, + "sd": 8.9, + "sd_ci_limits": [8.5, 9.3], + "sd_ci": 95 + }, + "citation": { "author": ["WHO-Ebola-Response-Team", "Junerlyn Agua-Agum", "Archchun Ariyarajah", "Bruce Aylward", "Isobel M. Blake", "Richard Brennan", "Anne Cori", "Christl A. Donnelly", "Ilaria Dorigatti", "Christopher Dye", "Tim Eckmanns", "Neil M. Ferguson", "Pierre Formenty", "Christophe Fraser", "Erika Garcia", "Tini Garske", "Wes Hinsley", "David Holmes", "Stéphane Hugonnet", "Swathi Iyengar", "Thibaut Jombart", "Ravi Krishnan", "Sascha Meijers", "Harriet L. Mills", "Yasmine Mohamed", "Gemma Nedjati-Gilani", "Emily Newton", "Pierre Nouvellet", "Louise Pelletier", "Devin Perkins", "Steven Riley", "Maria Sagrado", "Johannes Schnitzler", "Dirk Schumacher", "Anita Shah", "Maria D. Van Kerkhove", "Olivia Varsaneux", "Niluka Wijekoon Kannangarage"], "title": "West African Ebola Epidemic after One Year — Slowing but Not Yet under Control", "journal": "The New England Journal of Medicine", "year": 2015, + "PMID": 25539446, + "DOI": "10.1056/NEJMc1414992" + }, + "metadata": { "sample_size": 1335, "region": "West Africa", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "gamma", - "inference_method": "mle", - "mean": 15.1, - "mean_ci_limits": [14.6, 15.6], - "mean_ci": 95, - "sd": 8.9, - "sd_ci_limits": [8.5, 9.3], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100", - "PMID": 25539446, - "DOI": "10.1056/NEJMc1414992" + "phase_bias_adjusted": false }, - { - "disease": "MERS", - "pathogen": "MERS-Cov", - "epi_distribution": "incubation_period", + "notes": "This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100" +}, +{ + "disease": "MERS", + "pathogen": "MERS-Cov", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { } + }, + "summary_statistics": { + "quantile_values": [2.2, 12.4], + "quantile_names": ["5", "95"], + "median": 5.2, + "median_ci_limits": [1.9, 14.7], + "median_ci": null + }, + "citation": { "author": ["Abdullah Assiri", "Allison McGeer", "Trish M. Perl", "Connie S. Price", "Abdullah A. Al Rabeeah", "Derek A.T. Cummings", "Zaki N. Alabdullatif", "Maher Assad", "Abdulmohsen Almulhim", "Hatem Makhdoom", "Hossam Madani", "Rafat Alhakeem", "Jaffar A. Al-Tawfiq", "Matthew Cotten", "Simon J. Watson", "Paul Kellam", "Alimuddin I. Zumla", "Ziad A. Memish", "KSA-MERSCOV-Investigation-Team"], "title": "Hospital Outbreak of Middle East Respiratory Syndrome Coronavirus", "journal": "The New England Journal of Medicine", "year": 2013, + "PMID": 23782161, + "DOI": "10.1056/NEJMoa1306742" + }, + "metadata": { "sample_size": 23, "region": "Saudi Arabia", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 2.2, - "quantile_25": null, - "median": 5.2, - "median_ci_limits": [1.9, 14.7], - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 12.4, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "The sample size is not explicitly stated. The number of confirmed cases is 23 and there are 2 suspected cases, therefore it is not clear whether the 2 suspected cases were included in the estimation, the sample size is assumed to be 23.", - "PMID": 23782161, - "DOI": "10.1056/NEJMoa1306742" + "phase_bias_adjusted": false }, - { - "disease": "MERS", - "pathogen": "MERS-Cov", - "epi_distribution": "serial_interval", + "notes": "The sample size is not explicitly stated. The number of confirmed cases is 23 and there are 2 suspected cases, therefore it is not clear whether the 2 suspected cases were included in the estimation, the sample size is assumed to be 23." +}, +{ + "disease": "MERS", + "pathogen": "MERS-Cov", + "epi_distribution": "serial_interval", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { } + }, + "summary_statistics": { + "quantile_values": [3, 19.4], + "quantile_names": ["5", "95"], + "median": 7.6, + "median_ci_limits": [2.5, 23.1], + "median_ci": null + }, + "citation": { "author": ["Abdullah Assiri", "Allison McGeer", "Trish M. Perl", "Connie S. Price", "Abdullah A. Al Rabeeah", "Derek A.T. Cummings", "Zaki N. Alabdullatif", "Maher Assad", "Abdulmohsen Almulhim", "Hatem Makhdoom", "Hossam Madani", "Rafat Alhakeem", "Jaffar A. Al-Tawfiq", "Matthew Cotten", "Simon J. Watson", "Paul Kellam", "Alimuddin I. Zumla", "Ziad A. Memish", "KSA-MERSCOV-Investigation-Team"], "title": "Hospital Outbreak of Middle East Respiratory Syndrome Coronavirus", "journal": "The New England Journal of Medicine", "year": 2013, + "PMID": 23782161, + "DOI": "10.1056/NEJMoa1306742" + }, + "metadata": { "sample_size": 23, "region": "Saudi Arabia", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": 3, - "quantile_25": null, - "median": 7.6, - "median_ci_limits": [2.5, 23.1], - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 19.4, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "The sample size is not explicitly stated. The number of confirmed cases is 23 and there are 2 suspected cases, therefore it is not clear whether the 2 suspected cases were included in the estimation, the sample size is assumed to be 23.", - "PMID": 23782161, - "DOI": "10.1056/NEJMoa1306742" + "phase_bias_adjusted": false }, - { - "disease": "MERS", - "pathogen": "MERS-Cov", - "epi_distribution": "onset_to_hospitalisation", + "notes": "The sample size is not explicitly stated. The number of confirmed cases is 23 and there are 2 suspected cases, therefore it is not clear whether the 2 suspected cases were included in the estimation, the sample size is assumed to be 23." +}, +{ + "disease": "MERS", + "pathogen": "MERS-Cov", + "epi_distribution": "onset_to_hospitalisation", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "median": 5, + "lower_range": 1, + "upper_range": 10 + }, + "citation": { "author": ["Abdullah Assiri", "Allison McGeer", "Trish M. Perl", "Connie S. Price", "Abdullah A. Al Rabeeah", "Derek A.T. Cummings", "Zaki N. Alabdullatif", "Maher Assad", "Abdulmohsen Almulhim", "Hatem Makhdoom", "Hossam Madani", "Rafat Alhakeem", "Jaffar A. Al-Tawfiq", "Matthew Cotten", "Simon J. Watson", "Paul Kellam", "Alimuddin I. Zumla", "Ziad A. Memish", "KSA-MERSCOV-Investigation-Team"], "title": "Hospital Outbreak of Middle East Respiratory Syndrome Coronavirus", "journal": "The New England Journal of Medicine", "year": 2013, + "PMID": 23782161, + "DOI": "10.1056/NEJMoa1306742" + }, + "metadata": { "sample_size": 23, "region": "Saudi Arabia", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": 5, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": 1, - "upper_range": 10, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "A distribution was not fitted to the data, instead the median and range observed are reported. The sample size is not explicitly stated. The number of confirmed cases is 23 and there are 2 suspected cases, therefore it is not clear whether the 2 suspected cases were included in the estimation, the sample size is assumed to be 23.", - "PMID": 23782161, - "DOI": "10.1056/NEJMoa1306742" + "phase_bias_adjusted": false }, - { - "disease": "MERS", - "pathogen": "MERS-Cov", - "epi_distribution": "onset_to_death", + "notes": "A distribution was not fitted to the data, instead the median and range observed are reported. The sample size is not explicitly stated. The number of confirmed cases is 23 and there are 2 suspected cases, therefore it is not clear whether the 2 suspected cases were included in the estimation, the sample size is assumed to be 23." +}, +{ + "disease": "MERS", + "pathogen": "MERS-Cov", + "epi_distribution": "onset_to_death", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "median": 11, + "lower_range": 5, + "upper_range": 27 + }, + "citation": { "author": ["Abdullah Assiri", "Allison McGeer", "Trish M. Perl", "Connie S. Price", "Abdullah A. Al Rabeeah", "Derek A.T. Cummings", "Zaki N. Alabdullatif", "Maher Assad", "Abdulmohsen Almulhim", "Hatem Makhdoom", "Hossam Madani", "Rafat Alhakeem", "Jaffar A. Al-Tawfiq", "Matthew Cotten", "Simon J. Watson", "Paul Kellam", "Alimuddin I. Zumla", "Ziad A. Memish", "KSA-MERSCOV-Investigation-Team"], "title": "Hospital Outbreak of Middle East Respiratory Syndrome Coronavirus", "journal": "The New England Journal of Medicine", "year": 2013, + "PMID": 23782161, + "DOI": "10.1056/NEJMoa1306742" + }, + "metadata": { "sample_size": 23, "region": "Saudi Arabia", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": 11, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": 5, - "upper_range": 27, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "A distribution was not fitted to the data, instead the median and range observed are reported. The sample size is not explicitly stated. The number of confirmed cases is 23 and there are 2 suspected cases, therefore it is not clear whether the 2 suspected cases were included in the estimation, the sample size is assumed to be 23.", - "PMID": 23782161, - "DOI": "10.1056/NEJMoa1306742" + "phase_bias_adjusted": false }, - { - "disease": "MERS", - "pathogen": "MERS-Cov", - "epi_distribution": "onset_to_ventilation", + "notes": "A distribution was not fitted to the data, instead the median and range observed are reported. The sample size is not explicitly stated. The number of confirmed cases is 23 and there are 2 suspected cases, therefore it is not clear whether the 2 suspected cases were included in the estimation, the sample size is assumed to be 23." +}, +{ + "disease": "MERS", + "pathogen": "MERS-Cov", + "epi_distribution": "onset_to_ventilation", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "median": 7, + "lower_range": 3, + "upper_range": 11 + }, + "citation": { "author": ["Abdullah Assiri", "Allison McGeer", "Trish M. Perl", "Connie S. Price", "Abdullah A. Al Rabeeah", "Derek A.T. Cummings", "Zaki N. Alabdullatif", "Maher Assad", "Abdulmohsen Almulhim", "Hatem Makhdoom", "Hossam Madani", "Rafat Alhakeem", "Jaffar A. Al-Tawfiq", "Matthew Cotten", "Simon J. Watson", "Paul Kellam", "Alimuddin I. Zumla", "Ziad A. Memish", "KSA-MERSCOV-Investigation-Team"], "title": "Hospital Outbreak of Middle East Respiratory Syndrome Coronavirus", "journal": "The New England Journal of Medicine", "year": 2013, + "PMID": 23782161, + "DOI": "10.1056/NEJMoa1306742" + }, + "metadata": { "sample_size": 23, "region": "Saudi Arabia", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": 7, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": 3, - "upper_range": 11, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "A distribution was not fitted to the data, instead the median and range observed are reported. The sample size is not explicitly stated. The number of confirmed cases is 23 and there are 2 suspected cases, therefore it is not clear whether the 2 suspected cases were included in the estimation, the sample size is assumed to be 23.", - "PMID": 23782161, - "DOI": "10.1056/NEJMoa1306742" + "phase_bias_adjusted": false }, - { - "disease": "MERS", - "pathogen": "MERS-Cov", - "epi_distribution": "onset_to_death", + "notes": "A distribution was not fitted to the data, instead the median and range observed are reported. The sample size is not explicitly stated. The number of confirmed cases is 23 and there are 2 suspected cases, therefore it is not clear whether the 2 suspected cases were included in the estimation, the sample size is assumed to be 23." +}, +{ + "disease": "MERS", + "pathogen": "MERS-Cov", + "epi_distribution": "onset_to_death", + "probability_distribution": { + "prob_distribution": "gamma", + "parameters": { } + }, + "summary_statistics": { + "mean": 14.6, + "mean_ci_limits": [11.5, 19.5], + "mean_ci": 95, + "sd": 10.4, + "sd_ci_limits": [7.6, 16.2], + "sd_ci": 95 + }, + "citation": { "author": ["Kenji Mizumoto", "Akira Endo", "Gerardo Chowell", "Yuichiro Miyamatsu", "Masaya Saitoh", "Hiroshi Nishiura"], "title": "Real-time characterization of risks of death associated with the Middle East respiratory syndrome (MERS) in the Republic of Korea, 2015", "journal": "BMC Medicine", "year": 2015, + "PMID": 26420593, + "DOI": "10.1186/s12916-015-0468-3" + }, + "metadata": { "sample_size": 185, "region": "South Korea", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "gamma", - "inference_method": "mle", - "mean": 14.6, - "mean_ci_limits": [11.5, 19.5], - "mean_ci": 95, - "sd": 10.4, - "sd_ci_limits": [7.6, 16.2], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "The distribution parameters were jointly inferred with the risk factors of mortality.", - "PMID": 26420593, - "DOI": "10.1186/s12916-015-0468-3" + "phase_bias_adjusted": false }, - { - "disease": "MERS", - "pathogen": "MERS-Cov", - "epi_distribution": "incubation_period", + "notes": "The distribution parameters were jointly inferred with the risk factors of mortality." +}, +{ + "disease": "MERS", + "pathogen": "MERS-Cov", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "gamma", + "parameters": { } + }, + "summary_statistics": { + "mean": 6.7, + "mean_ci_limits": [6.1, 7.3], + "mean_ci": 95, + "median": 6.3, + "median_ci_limits": [5.7, 6.8], + "median_ci": 95, + "quantile_values": [12.1], + "quantile_names": ["95"] + }, + "citation": { "author": ["B J Cowling", "M Park", "V J Fang", "P Wu", "G M Leung", "J T Wu"], "title": "Preliminary epidemiological assessment of MERS-CoV outbreak in South Korea, May to June 2015", "journal": "Eurosurveillance", "year": 2015, + "PMID": 26132767, + "DOI": "10.2807/1560-7917.es2015.20.25.21163" + }, + "metadata": { "sample_size": 166, "region": "South Korea", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "gamma", - "inference_method": "bayesian", - "mean": 6.7, - "mean_ci_limits": [6.1, 7.3], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": 6.3, - "median_ci_limits": [5.7, 6.8], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 12.1, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "No additional notes", - "PMID": 26132767, - "DOI": "10.2807/1560-7917.es2015.20.25.21163" + "phase_bias_adjusted": false }, - { - "disease": "MERS", - "pathogen": "MERS-Cov", - "epi_distribution": "serial_interval", + "notes": "No additional notes" +}, +{ + "disease": "MERS", + "pathogen": "MERS-Cov", + "epi_distribution": "serial_interval", + "probability_distribution": { + "prob_distribution": "gamma", + "parameters": { } + }, + "summary_statistics": { + "mean": 12.6, + "mean_ci_limits": [12.1, 13.1], + "mean_ci": 95, + "sd": 2.8, + "sd_ci_limits": [2.4, 3.1], + "sd_ci": 95 + }, + "citation": { "author": ["B J Cowling", "M Park", "V J Fang", "P Wu", "G M Leung", "J T Wu"], "title": "Preliminary epidemiological assessment of MERS-CoV outbreak in South Korea, May to June 2016", "journal": "Eurosurveillance", "year": 2015, + "PMID": 26132767, + "DOI": "10.2807/1560-7917.es2015.20.25.21163" + }, + "metadata": { "sample_size": 99, "region": "South Korea", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": "gamma", - "inference_method": "bayesian", - "mean": 12.6, - "mean_ci_limits": [12.1, 13.1], - "mean_ci": 95, - "sd": 2.8, - "sd_ci_limits": [2.4, 3.1], - "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "No additional notes", - "PMID": 26132767, - "DOI": "10.2807/1560-7917.es2015.20.25.21163" + "phase_bias_adjusted": false }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", - "author": ["Ke Men", "Xia Wang", "Li Yihao", "Guangwei Zhang", "Jingjing Hu", "Yanyan Gao", "Henry Han"], - "title": "Estimate the incubation period of coronavirus 2019 (COVID-19)", - "journal": "medRxiv", - "year": 2020, - "sample_size": 59, - "region": "China", - "transmission_mode": "natural_natural_human_to_human", - "vector": null, - "extrinsic": false, + "notes": "No additional notes" +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { "prob_distribution": null, - "inference_method": null, + "parameters": { } + }, + "summary_statistics": { "mean": 5.84, "mean_ci_limits": [5.07, 6.55], "mean_ci": 95, "sd": 2.98, "sd_ci_limits": [2.31, 3.72], "sd_ci": 95, - "quantile_2.5": 2.69, - "quantile_5": null, - "quantile_25": null, + "quantile_values": [2.69, 12.89], + "quantile_names": ["2.5", "97.5"], "median": 5.01, "median_ci_limits": [4, 6], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": 12.89, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "median_ci": 95 + }, + "citation": { + "author": ["Ke Men", "Xia Wang", "Li Yihao", "Guangwei Zhang", "Jingjing Hu", "Yanyan Gao", "Henry Han"], + "title": "Estimate the incubation period of coronavirus 2019 (COVID-19)", + "journal": "medRxiv", + "year": 2020, + "PMID": null, + "DOI": "10.1101/2020.02.24.20027474" + }, + "metadata": { + "sample_size": 59, + "region": "China", + "transmission_mode": "natural_natural_human_to_human", + "extrinsic": false, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "The estimate of the incubation period is from a non-parametric bootstrap approach that does not fit a parametric distribution.", - "PMID": null, - "DOI": "10.1101/2020.02.24.20027474" + "phase_bias_adjusted": false }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "notes": "The estimate of the incubation period is from a non-parametric bootstrap approach that does not fit a parametric distribution." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "mean": 5.74, + "mean_ci_limits": [5.18, 6.3], + "mean_ci": 95 + }, + "citation": { "author": ["Balram Rai", "Anandi Shukla", "Laxmi Kant Dwivedi"], "title": "Incubation period for COVID-19: a systematic review and meta-analysis", "journal": "Zeitschrift fur Gesundheitswissenschaften", "year": 2022, + "PMID": 33643779, + "DOI": "10.1007/s10389-021-01478-1" + }, + "metadata": { "sample_size": 6241, "region": "Mixed", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": 5.74, - "mean_ci_limits": [5.18, 6.3], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This estimated mean incubation period is from a meta-analysis of 15 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model.", - "PMID": 33643779, - "DOI": "10.1007/s10389-021-01478-1" + "phase_bias_adjusted": false }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "notes": "This estimated mean incubation period is from a meta-analysis of 15 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "mean": 6.5, + "mean_ci_limits": [5.9, 7.1], + "mean_ci": 95 + }, + "citation": { "author": ["Muluneh Alene", "Leltework Yismaw", "Moges Agazhe Assemie", "Daniel Bekele Ketema", "Wodaje Gietaneh", "Tilahun Yemanu Birhan"], "title": "Serial interval and incubation period of COVID-19: a systematic review and meta-analysis", "journal": "BMC Infectious Diseases", "year": 2021, + "PMID": 33706702, + "DOI": "10.1186/s12879-021-05950-x" + }, + "metadata": { "sample_size": 1453, "region": "Mixed", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": 6.5, - "mean_ci_limits": [5.9, 7.1], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This estimated mean incubation period is from a meta-analysis of 14 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model.", - "PMID": 33706702, - "DOI": "10.1186/s12879-021-05950-x" + "phase_bias_adjusted": false }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "serial_interval", + "notes": "This estimated mean incubation period is from a meta-analysis of 14 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "serial_interval", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "mean": 5.2, + "mean_ci_limits": [4.9, 5.5], + "mean_ci": 95 + }, + "citation": { "author": ["Muluneh Alene", "Leltework Yismaw", "Moges Agazhe Assemie", "Daniel Bekele Ketema", "Wodaje Gietaneh", "Tilahun Yemanu Birhan"], "title": "Serial interval and incubation period of COVID-19: a systematic review and meta-analysis", "journal": "BMC Infectious Diseases", "year": 2021, + "PMID": 33706702, + "DOI": "10.1186/s12879-021-05950-x" + }, + "metadata": { "sample_size": 3924, "region": "Mixed", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": 5.2, - "mean_ci_limits": [4.9, 5.5], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This estimated mean serial interval is from a meta-analysis of 23 other serial interval estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model.", - "PMID": 33706702, - "DOI": "10.1186/s12879-021-05950-x" + "phase_bias_adjusted": false + }, + "notes": "This estimated mean serial interval is from a meta-analysis of 23 other serial interval estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "mean": 6.38, + "mean_ci_limits": [5.79, 6.97], + "mean_ci": 95 }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "citation": { "author": ["Christelle Elias", "Abel Sekri", "Pierre Leblanc", "Michel Cucherat", "Philippe Vanhems"], "title": "The incubation period of COVID-19: A meta-analysis", "journal": "International Journal of Infectious Diseases", "year": 2021, + "PMID": 33548553, + "DOI": "10.1016/j.ijid.2021.01.069" + }, + "metadata": { "sample_size": 28675, "region": "Mixed", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": 6.38, - "mean_ci_limits": [5.79, 6.97], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This estimated mean incubation period is from a meta-analysis of 99 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model.", - "PMID": 33548553, - "DOI": "10.1016/j.ijid.2021.01.069" + "phase_bias_adjusted": false }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "notes": "This estimated mean incubation period is from a meta-analysis of 99 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "weibull", + "parameters": { } + }, + "summary_statistics": { + "mean": 6.4, + "mean_ci_limits": [4.89, 8.5], + "mean_ci": 95, + "sd": 3.05, + "sd_ci_limits": [3.05, 5.3], + "sd_ci": 95, + "quantile_values": [1.35, 1.9, 11.9, 13.04], + "quantile_names": ["2.5", "5", "95", "97.5"], + "median": 6.1 + }, + "citation": { "author": ["Long V. Bui", "Ha T. Nguyen", "Hagai Levine", "Ha N. Nguyen", "Thu-Anh Nguyen", "Thuy P. Nguyen", "Truong T. Nguyen", "Toan T. T. Do", "Ngoc T. Pham", "My Hanh Bui"], "title": "Estimation of the incubation period of COVID-19 in Vietnam", "journal": "PLoS One", "year": 2020, + "PMID": 33362233, + "DOI": "10.1371/journal.pone.0243889" + }, + "metadata": { "sample_size": 19, "region": "Vietnam", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "weibull", - "inference_method": "bayesian", - "mean": 6.4, - "mean_ci_limits": [4.89, 8.5], - "mean_ci": 95, - "sd": 3.05, - "sd_ci_limits": [3.05, 5.3], - "sd_ci": 95, - "quantile_2.5": 1.35, - "quantile_5": 1.9, - "quantile_25": null, - "median": 6.1, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 11.9, - "quantile_97.5": 13.04, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "No additional notes", - "PMID": 33362233, - "DOI": "10.1371/journal.pone.0243889" + "phase_bias_adjusted": false }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "notes": "No additional notes" +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "meanlog": 1.66, + "meanlog_ci_limits": [1.55, 1.76], + "meanlog_ci": 95, + "sdlog": 0.48, + "sdlog_ci_limits": [0.42, 0.54], + "sdlog_ci": 95 + } + }, + "summary_statistics": { }, + "citation": { "author": ["Conor McAloon", "Áine Collins", "Kevin Hunt", "Ann Barber", "Andrew W Byrne", "Francis Butler", "Miriam Casey", "John Griffin", "Elizabeth Lane", "David McEvoy", "Patrick Wall", "Martin Green", "Luke O'Grady", "Simon J More"], "title": "Incubation period of COVID-19: a rapid systematic review and meta-analysis of observational research", "journal": "BMJ Open", "year": 2020, + "PMID": 32801208, + "DOI": "10.1136/bmjopen-2020-039652" + }, + "metadata": { "sample_size": 1357, "region": "Mixed", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": 1.66, - "meanlog_ci_limits": [1.55, 1.76], - "meanlog_ci": 95, - "sdlog": 0.48, - "sdlog_ci_limits": [0.42, 0.54], - "sdlog_ci": 95, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "The incubation period parameters are estimated from a meta-analysis of other studies that estimated the incubation period using a lognormal distribution. This is the full set of data (N=9).", - "PMID": 32801208, - "DOI": "10.1136/bmjopen-2020-039652" + "phase_bias_adjusted": false }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "notes": "The incubation period parameters are estimated from a meta-analysis of other studies that estimated the incubation period using a lognormal distribution. This is the full set of data (N=9)." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "meanlog": 1.63, + "meanlog_ci_limits": [1.51, 1.75], + "meanlog_ci": 95, + "sdlog": 0.5, + "sdlog_ci_limits": [0.46, 0.55], + "sdlog_ci": 95 + } + }, + "summary_statistics": { + "mean": 5.8, + "mean_ci_limits": [5, 6.7], + "mean_ci": 95, + "median": 5.1, + "median_ci_limits": [4.5, 5.8], + "median_ci": 95, + "quantile_values": [11.7], + "quantile_names": ["95"] + }, + "citation": { "author": ["Conor McAloon", "Áine Collins", "Kevin Hunt", "Ann Barber", "Andrew W Byrne", "Francis Butler", "Miriam Casey", "John Griffin", "Elizabeth Lane", "David McEvoy", "Patrick Wall", "Martin Green", "Luke O'Grady", "Simon J More"], "title": "Incubation period of COVID-19: a rapid systematic review and meta-analysis of observational research", "journal": "BMJ Open", "year": 2020, + "PMID": 32801208, + "DOI": "10.1136/bmjopen-2020-039652" + }, + "metadata": { "sample_size": 1269, "region": "Mixed", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": 5.8, - "mean_ci_limits": [5, 6.7], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": 5.1, - "median_ci_limits": [4.5, 5.8], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 11.7, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": 1.63, - "meanlog_ci_limits": [1.51, 1.75], - "meanlog_ci": 95, - "sdlog": 0.5, - "sdlog_ci_limits": [0.46, 0.55], - "sdlog_ci": 95, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "The incubation period parameters are estimated from a meta-analysis of other studies that estimated the incubation period using a lognormal distribution. This is the data set with Backer removed as they did not have a defined exposure window (N=8).", - "PMID": 32801208, - "DOI": "10.1136/bmjopen-2020-039652" + "phase_bias_adjusted": false }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", - "author": ["Natalie M. Linton", "Tetsuro Kobayashi", "Yichi Yang", "Katsuma Hayashi", "Andrei R. Akhmetzhanov", "Sung-mok Jung", "Baoyin Yuan", "Ryo Kinoshita", "Hiroshi Nishiura"], - "title": "Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data", - "journal": "Journal of Clinical Medicine", - "year": 2020, - "sample_size": 52, - "region": "China", - "transmission_mode": "natural_natural_human_to_human", - "vector": null, - "extrinsic": false, + "notes": "The incubation period parameters are estimated from a meta-analysis of other studies that estimated the incubation period using a lognormal distribution. This is the data set with Backer removed as they did not have a defined exposure window (N=8)." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { "prob_distribution": "lnorm", - "inference_method": "bayesian", + "parameters": { } + }, + "summary_statistics": { "mean": 5, "mean_ci_limits": [4.2, 6], "mean_ci": 95, "sd": 3, "sd_ci_limits": [2.1, 4.5], "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": 1.7, - "quantile_25": null, + "quantile_values": [1.7, 10.6], + "quantile_names": ["5", "95"], "median": 4.3, "median_ci_limits": [3.5, 5.1], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 10.6, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This dataset excludes Wuhan residents (to have a more precise exposure interval). This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions.", - "PMID": 32079150, - "DOI": "10.3390/jcm9020538" + "median_ci": 95 }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "citation": { "author": ["Natalie M. Linton", "Tetsuro Kobayashi", "Yichi Yang", "Katsuma Hayashi", "Andrei R. Akhmetzhanov", "Sung-mok Jung", "Baoyin Yuan", "Ryo Kinoshita", "Hiroshi Nishiura"], "title": "Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data", "journal": "Journal of Clinical Medicine", "year": 2020, - "sample_size": 158, + "PMID": 32079150, + "DOI": "10.3390/jcm9020538" + }, + "metadata": { + "sample_size": 52, "region": "China", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This dataset excludes Wuhan residents (to have a more precise exposure interval). This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { "prob_distribution": "lnorm", - "inference_method": "bayesian", + "parameters": { } + }, + "summary_statistics": { "mean": 5.6, "mean_ci_limits": [5, 6.3], "mean_ci": 95, "sd": 2.8, "sd_ci_limits": [2.2, 3.6], "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": 2.3, - "quantile_25": null, + "quantile_values": [2.3, 10.8], + "quantile_names": ["5", "95"], "median": 5, "median_ci_limits": [4.4, 5.6], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 10.8, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This dataset includes Wuhan residents (which have a less precise exposure interval). This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions.", - "PMID": 32079150, - "DOI": "10.3390/jcm9020538" + "median_ci": 95 }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "onset_to_hospitalisation", + "citation": { "author": ["Natalie M. Linton", "Tetsuro Kobayashi", "Yichi Yang", "Katsuma Hayashi", "Andrei R. Akhmetzhanov", "Sung-mok Jung", "Baoyin Yuan", "Ryo Kinoshita", "Hiroshi Nishiura"], "title": "Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data", "journal": "Journal of Clinical Medicine", "year": 2020, - "sample_size": 155, + "PMID": 32079150, + "DOI": "10.3390/jcm9020538" + }, + "metadata": { + "sample_size": 158, "region": "China", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This dataset includes Wuhan residents (which have a less precise exposure interval). This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "onset_to_hospitalisation", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "bayesian", + "parameters": { } + }, + "summary_statistics": { "mean": 3.3, "mean_ci_limits": [2.7, 4], "mean_ci": 95, "sd": 4.2, "sd_ci_limits": [3.3, 5.4], "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": 0, - "quantile_25": null, + "quantile_values": [0, 11.6], + "quantile_names": ["5", "95"], "median": 1.7, "median_ci_limits": [1.2, 2.2], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 11.6, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions.", - "PMID": 32079150, - "DOI": "10.3390/jcm9020538" + "median_ci": 95 }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "onset_to_hospitalisation", + "citation": { "author": ["Natalie M. Linton", "Tetsuro Kobayashi", "Yichi Yang", "Katsuma Hayashi", "Andrei R. Akhmetzhanov", "Sung-mok Jung", "Baoyin Yuan", "Ryo Kinoshita", "Hiroshi Nishiura"], "title": "Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data", "journal": "Journal of Clinical Medicine", "year": 2020, - "sample_size": 34, + "PMID": 32079150, + "DOI": "10.3390/jcm9020538" + }, + "metadata": { + "sample_size": 155, "region": "China", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "onset_to_hospitalisation", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "bayesian", + "parameters": { } + }, + "summary_statistics": { "mean": 6.5, "mean_ci_limits": [5.2, 8], "mean_ci": 95, "sd": 4.3, "sd_ci_limits": [2.9, 5.6], "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": 1.9, - "quantile_25": null, + "quantile_values": [1.9, 13.9], + "quantile_names": ["5", "95"], "median": 5.1, "median_ci_limits": [4.1, 6.3], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 13.9, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions.", - "PMID": 32079150, - "DOI": "10.3390/jcm9020538" + "median_ci": 95 }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "onset_to_death", + "citation": { "author": ["Natalie M. Linton", "Tetsuro Kobayashi", "Yichi Yang", "Katsuma Hayashi", "Andrei R. Akhmetzhanov", "Sung-mok Jung", "Baoyin Yuan", "Ryo Kinoshita", "Hiroshi Nishiura"], "title": "Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data", "journal": "Journal of Clinical Medicine", "year": 2020, + "PMID": 32079150, + "DOI": "10.3390/jcm9020538" + }, + "metadata": { "sample_size": 34, "region": "China", "transmission_mode": "natural_natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "onset_to_death", + "probability_distribution": { "prob_distribution": "lnorm", - "inference_method": "bayesian", + "parameters": { } + }, + "summary_statistics": { "mean": 14.5, "mean_ci_limits": [12.5, 17], "mean_ci": 95, "sd": 6.7, "sd_ci_limits": [4.9, 9.4], "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": 6.5, - "quantile_25": null, + "quantile_values": [6.5, 26.8], + "quantile_names": ["5", "95"], "median": 13.2, "median_ci_limits": [11.3, 15.3], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 26.8, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions.", - "PMID": 32079150, - "DOI": "10.3390/jcm9020538" + "median_ci": 95 }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "hospitalisation_to_death", + "citation": { "author": ["Natalie M. Linton", "Tetsuro Kobayashi", "Yichi Yang", "Katsuma Hayashi", "Andrei R. Akhmetzhanov", "Sung-mok Jung", "Baoyin Yuan", "Ryo Kinoshita", "Hiroshi Nishiura"], "title": "Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data", "journal": "Journal of Clinical Medicine", "year": 2020, - "sample_size": 39, + "PMID": 32079150, + "DOI": "10.3390/jcm9020538" + }, + "metadata": { + "sample_size": 34, "region": "China", - "transmission_mode": "natural_human_to_human", - "vector": null, + "transmission_mode": "natural_natural_human_to_human", "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "hospitalisation_to_death", + "probability_distribution": { "prob_distribution": "weibull", - "inference_method": "bayesian", + "parameters": { } + }, + "summary_statistics": { "mean": 8.9, "mean_ci_limits": [7.3, 10.4], "mean_ci": 95, "sd": 5.7, "sd_ci_limits": [4.3, 7.8], "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": 1.7, - "quantile_25": null, + "quantile_values": [1.7, 18.8], + "quantile_names": ["5", "95"], "median": 8, "median_ci_limits": [6.2, 9.8], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 18.8, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions.", - "PMID": 32079150, - "DOI": "10.3390/jcm9020538" + "median_ci": 95 }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "citation": { "author": ["Natalie M. Linton", "Tetsuro Kobayashi", "Yichi Yang", "Katsuma Hayashi", "Andrei R. Akhmetzhanov", "Sung-mok Jung", "Baoyin Yuan", "Ryo Kinoshita", "Hiroshi Nishiura"], "title": "Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data", "journal": "Journal of Clinical Medicine", "year": 2020, - "sample_size": 52, + "PMID": 32079150, + "DOI": "10.3390/jcm9020538" + }, + "metadata": { + "sample_size": 39, "region": "China", "transmission_mode": "natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": false, + "phase_bias_adjusted": false + }, + "notes": "This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { "prob_distribution": "lnorm", - "inference_method": "bayesian", + "parameters": { } + }, + "summary_statistics": { "mean": 5.6, "mean_ci_limits": [4.4, 4.8], "mean_ci": 95, "sd": 3.9, "sd_ci_limits": [2.4, 6.9], "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": 1.7, - "quantile_25": null, + "quantile_values": [1.7, 12.3], + "quantile_names": ["5", "95"], "median": 4.6, "median_ci_limits": [3.7, 5.7], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 12.3, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": true, - "phase_bias_adjusted": true, - "notes": "This is excluding Wuhan residents from the dataset as this provides a more precise exposure interval. This method applies right-truncation but only fits a lognormal distribution.", - "PMID": 32079150, - "DOI": "10.3390/jcm9020538" + "median_ci": 95 }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "onset_to_hospitalisation", + "citation": { "author": ["Natalie M. Linton", "Tetsuro Kobayashi", "Yichi Yang", "Katsuma Hayashi", "Andrei R. Akhmetzhanov", "Sung-mok Jung", "Baoyin Yuan", "Ryo Kinoshita", "Hiroshi Nishiura"], "title": "Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data", "journal": "Journal of Clinical Medicine", "year": 2020, - "sample_size": 155, + "PMID": 32079150, + "DOI": "10.3390/jcm9020538" + }, + "metadata": { + "sample_size": 52, "region": "China", "transmission_mode": "natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": true, + "phase_bias_adjusted": true + }, + "notes": "This is excluding Wuhan residents from the dataset as this provides a more precise exposure interval. This method applies right-truncation but only fits a lognormal distribution." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "onset_to_hospitalisation", + "probability_distribution": { "prob_distribution": "lnorm", - "inference_method": "bayesian", + "parameters": { } + }, + "summary_statistics": { "mean": 9.7, "mean_ci_limits": [5.4, 17], "mean_ci": 95, "sd": 35.2, "sd_ci_limits": [12.9, 84.5], "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": 0.2, - "quantile_25": null, + "quantile_values": [0.2, 35.1], + "quantile_names": ["5", "95"], "median": 2.6, "median_ci_limits": [1.9, 3.8], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 35.1, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": true, - "phase_bias_adjusted": true, - "notes": "This dataset includes only surviving patients. This method applies right-truncation but only fits a lognormal distribution.", - "PMID": 32079150, - "DOI": "10.3390/jcm9020538" + "median_ci": 95 }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "onset_to_hospitalisation", + "citation": { "author": ["Natalie M. Linton", "Tetsuro Kobayashi", "Yichi Yang", "Katsuma Hayashi", "Andrei R. Akhmetzhanov", "Sung-mok Jung", "Baoyin Yuan", "Ryo Kinoshita", "Hiroshi Nishiura"], "title": "Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data", "journal": "Journal of Clinical Medicine", "year": 2020, - "sample_size": 34, + "PMID": 32079150, + "DOI": "10.3390/jcm9020538" + }, + "metadata": { + "sample_size": 155, "region": "China", "transmission_mode": "natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": true, + "phase_bias_adjusted": true + }, + "notes": "This dataset includes only surviving patients. This method applies right-truncation but only fits a lognormal distribution." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "onset_to_hospitalisation", + "probability_distribution": { "prob_distribution": "lnorm", - "inference_method": "bayesian", + "parameters": { } + }, + "summary_statistics": { "mean": 6.6, "mean_ci_limits": [5.2, 8.8], "mean_ci": 95, "sd": 4.9, "sd_ci_limits": [3, 8.6], "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": 1.9, - "quantile_25": null, + "quantile_values": [1.9, 15], + "quantile_names": ["5", "95"], "median": 5.3, "median_ci_limits": [4.2, 6.8], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 15, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": true, - "phase_bias_adjusted": true, - "notes": "This dataset includes only deceased patients. This method applies right-truncation but only fits a lognormal distribution.", - "PMID": 32079150, - "DOI": "10.3390/jcm9020538" + "median_ci": 95 }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "onset_to_death", + "citation": { "author": ["Natalie M. Linton", "Tetsuro Kobayashi", "Yichi Yang", "Katsuma Hayashi", "Andrei R. Akhmetzhanov", "Sung-mok Jung", "Baoyin Yuan", "Ryo Kinoshita", "Hiroshi Nishiura"], "title": "Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data", "journal": "Journal of Clinical Medicine", "year": 2020, + "PMID": 32079150, + "DOI": "10.3390/jcm9020538" + }, + "metadata": { "sample_size": 34, "region": "China", "transmission_mode": "natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": true, + "phase_bias_adjusted": true + }, + "notes": "This dataset includes only deceased patients. This method applies right-truncation but only fits a lognormal distribution." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "onset_to_death", + "probability_distribution": { "prob_distribution": "lnorm", - "inference_method": "bayesian", + "parameters": { } + }, + "summary_statistics": { "mean": 20.2, "mean_ci_limits": [15.1, 29.5], "mean_ci": 95, "sd": 11.6, "sd_ci_limits": [6.6, 21.8], "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": 7.4, - "quantile_25": null, + "quantile_values": [7.4, 39.9], + "quantile_names": ["5", "95"], "median": 17.1, "median_ci_limits": [13.5, 24.1], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 39.9, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, - "truncation": null, - "discretised": false, - "censored": true, - "right_truncated": true, - "phase_bias_adjusted": true, - "notes": "This method applies right-truncation but only fits a lognormal distribution.", - "PMID": 32079150, - "DOI": "10.3390/jcm9020538" + "median_ci": 95 }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "hospitalisation_to_death", + "citation": { "author": ["Natalie M. Linton", "Tetsuro Kobayashi", "Yichi Yang", "Katsuma Hayashi", "Andrei R. Akhmetzhanov", "Sung-mok Jung", "Baoyin Yuan", "Ryo Kinoshita", "Hiroshi Nishiura"], "title": "Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data", "journal": "Journal of Clinical Medicine", "year": 2020, - "sample_size": 39, + "PMID": 32079150, + "DOI": "10.3390/jcm9020538" + }, + "metadata": { + "sample_size": 34, "region": "China", "transmission_mode": "natural_human_to_human", - "vector": null, "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { + "truncation": null, + "discretised": false, + "censored": true, + "right_truncated": true, + "phase_bias_adjusted": true + }, + "notes": "This method applies right-truncation but only fits a lognormal distribution." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "hospitalisation_to_death", + "probability_distribution": { "prob_distribution": "lnorm", - "inference_method": "bayesian", + "parameters": { } + }, + "summary_statistics": { "mean": 13, "mean_ci_limits": [8.7, 20.9], "mean_ci": 95, "sd": 12.7, "sd_ci_limits": [6.4, 26], "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": 2.5, - "quantile_25": null, + "quantile_values": [2.5, 33.1], + "quantile_names": ["5", "95"], "median": 9.1, "median_ci_limits": [6.7, 13.7], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 33.1, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "median_ci": 95 + }, + "citation": { + "author": ["Natalie M. Linton", "Tetsuro Kobayashi", "Yichi Yang", "Katsuma Hayashi", "Andrei R. Akhmetzhanov", "Sung-mok Jung", "Baoyin Yuan", "Ryo Kinoshita", "Hiroshi Nishiura"], + "title": "Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data", + "journal": "Journal of Clinical Medicine", + "year": 2020, + "PMID": 32079150, + "DOI": "10.3390/jcm9020538" + }, + "metadata": { + "sample_size": 39, + "region": "China", + "transmission_mode": "natural_human_to_human", + "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": true, - "phase_bias_adjusted": true, - "notes": "This method applies right-truncation but only fits a lognormal distribution.", - "PMID": 32079150, - "DOI": "10.3390/jcm9020538" + "phase_bias_adjusted": true }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "notes": "This method applies right-truncation but only fits a lognormal distribution." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { + "dispersion": 1.52, + "dispersion_ci_limits": [1.32, 1.72], + "dispersion_ci": 95 + } + }, + "summary_statistics": { + "mean": 5.5, + "quantile_values": [2.2, 11.5], + "quantile_names": ["2.5", "97.5"], + "median": 5.1, + "median_ci_limits": [4.5, 5.8], + "median_ci": 95 + }, + "citation": { "author": ["Stephen A Lauer", "Kyra H Grantz", "Qifang Bi", "Forrest K Jones", "Qulu Zheng", "Hannah R Meredith", "Andrew S Azman", "Nicholas G Reich", "Justin Lessler"], "title": "The Incubation Period of Coronavirus Disease 2019 (COVID-19) From Publicly Reported Confirmed Cases: Estimation and Application", "journal": "Annals of Internal Medicine", "year": 2020, + "PMID": 32150748, + "DOI": "10.7326/M20-0504" + }, + "metadata": { "sample_size": 181, "region": "Mixed", "transmission_mode": "natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": 5.5, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": 2.2, - "quantile_5": null, - "quantile_25": null, - "median": 5.1, - "median_ci_limits": [4.5, 5.8], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": 11.5, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": 1.52, - "dispersion_ci_limits": [1.32, 1.72], - "dispersion_ci": 95, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": true, - "notes": "This is the complete data set.", - "PMID": 32150748, - "DOI": "10.7326/M20-0504" + "phase_bias_adjusted": true }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "notes": "This is the complete data set." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { } + }, + "summary_statistics": { + "quantile_values": [2.6, 12.5], + "quantile_names": ["2.5", "97.5"], + "median": 5.7, + "median_ci_limits": [4.9, 6.8], + "median_ci": 95 + }, + "citation": { "author": ["Stephen A Lauer", "Kyra H Grantz", "Qifang Bi", "Forrest K Jones", "Qulu Zheng", "Hannah R Meredith", "Andrew S Azman", "Nicholas G Reich", "Justin Lessler"], "title": "The Incubation Period of Coronavirus Disease 2019 (COVID-19) From Publicly Reported Confirmed Cases: Estimation and Application", "journal": "Annals of Internal Medicine", "year": 2020, + "PMID": 32150748, + "DOI": "10.7326/M20-0504" + }, + "metadata": { "sample_size": 99, "region": "Mixed", "transmission_mode": "natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": 2.6, - "quantile_5": null, - "quantile_25": null, - "median": 5.7, - "median_ci_limits": [4.9, 6.8], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": 12.5, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": true, - "notes": "This is a subset of the data, including only those cases with a known onset of fever to be sure that the onset of symptoms is not from another pathogen.", - "PMID": 32150748, - "DOI": "10.7326/M20-0504" + "phase_bias_adjusted": true }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "notes": "This is a subset of the data, including only those cases with a known onset of fever to be sure that the onset of symptoms is not from another pathogen." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { } + }, + "summary_statistics": { + "quantile_values": [2.1, 14.7], + "quantile_names": ["2.5", "97.5"], + "median": 5.5, + "median_ci_limits": [4.4, 7], + "median_ci": 95 + }, + "citation": { "author": ["Stephen A Lauer", "Kyra H Grantz", "Qifang Bi", "Forrest K Jones", "Qulu Zheng", "Hannah R Meredith", "Andrew S Azman", "Nicholas G Reich", "Justin Lessler"], "title": "The Incubation Period of Coronavirus Disease 2019 (COVID-19) From Publicly Reported Confirmed Cases: Estimation and Application", "journal": "Annals of Internal Medicine", "year": 2020, + "PMID": 32150748, + "DOI": "10.7326/M20-0504" + }, + "metadata": { "sample_size": 108, "region": "Mixed", "transmission_mode": "natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": 2.1, - "quantile_5": null, - "quantile_25": null, - "median": 5.5, - "median_ci_limits": [4.4, 7], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": 14.7, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": true, - "notes": "This is a subset of the data, including only cases that are detected outside of mainland China.", - "PMID": 32150748, - "DOI": "10.7326/M20-0504" + "phase_bias_adjusted": true }, - { - "disease": "COVID-19", - "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "notes": "This is a subset of the data, including only cases that are detected outside of mainland China." +}, +{ + "disease": "COVID-19", + "pathogen": "SARS-CoV-2", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": "lnorm", + "parameters": { } + }, + "summary_statistics": { + "quantile_values": [2.5, 9.2], + "quantile_names": ["2.5", "97.5"], + "median": 4.8, + "median_ci_limits": [4.2, 5.6], + "median_ci": 95 + }, + "citation": { "author": ["Stephen A Lauer", "Kyra H Grantz", "Qifang Bi", "Forrest K Jones", "Qulu Zheng", "Hannah R Meredith", "Andrew S Azman", "Nicholas G Reich", "Justin Lessler"], "title": "The Incubation Period of Coronavirus Disease 2019 (COVID-19) From Publicly Reported Confirmed Cases: Estimation and Application", "journal": "Annals of Internal Medicine", "year": 2020, + "PMID": 32150748, + "DOI": "10.7326/M20-0504" + }, + "metadata": { "sample_size": 73, "region": "China", "transmission_mode": "natural_human_to_human", - "vector": null, "extrinsic": false, - "prob_distribution": "lnorm", - "inference_method": "mle", - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": 2.5, - "quantile_5": null, - "quantile_25": null, - "median": 4.8, - "median_ci_limits": [4.2, 5.6], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": 9.2, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": "mle" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": true, "right_truncated": false, - "phase_bias_adjusted": true, - "notes": "This is a subset of the data, including only cases that are detected inside mainland China.", - "PMID": 32150748, - "DOI": "10.7326/M20-0504" + "phase_bias_adjusted": true }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus", - "epi_distribution": "serial_interval", - "author": ["Zihao Guo", "Shi Zhao", "Shengzhi Sun", "Daihai He", "Ka Chun Chong", "Eng Kiong Yeoh"], - "title": "Estimation of the serial interval of monkeypox during the early outbreak in 2022", - "journal": "Journal of Medical Virology", - "year": 2022, - "sample_size": 42, - "region": "Mixed", - "transmission_mode": "mixed", - "vector": null, - "extrinsic": false, + "notes": "This is a subset of the data, including only cases that are detected inside mainland China." +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus", + "epi_distribution": "serial_interval", + "probability_distribution": { "prob_distribution": "gamma", - "inference_method": "bayesian", + "parameters": { } + }, + "summary_statistics": { "mean": 5.6, "mean_ci_limits": [1.7, 10.4], "mean_ci": 95, "sd": 1.5, "sd_ci_limits": [0.4, 2.4], "sd_ci": 95, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, + "quantile_values": [8.3], + "quantile_names": ["95"], "median": 5.5, "median_ci_limits": [1.4, 10.4], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 8.3, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "median_ci": 95 + }, + "citation": { + "author": ["Zihao Guo", "Shi Zhao", "Shengzhi Sun", "Daihai He", "Ka Chun Chong", "Eng Kiong Yeoh"], + "title": "Estimation of the serial interval of monkeypox during the early outbreak in 2022", + "journal": "Journal of Medical Virology", + "year": 2022, + "PMID": 36271480, + "DOI": "10.1002/jmv.28248" + }, + "metadata": { + "sample_size": 42, + "region": "Mixed", + "transmission_mode": "mixed", + "extrinsic": false, + "inference_method": "bayesian" + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": true, - "phase_bias_adjusted": true, - "notes": "Data from Kraemer et al 10.1016/S1473-3099(22)00359-0", - "PMID": 36271480, - "DOI": "10.1002/jmv.28248" + "phase_bias_adjusted": true }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus Clade I", - "epi_distribution": "serial_interval", + "notes": "Data from Kraemer et al 10.1016/S1473-3099(22)00359-0" +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus Clade I", + "epi_distribution": "serial_interval", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "quantile_values": [9.28, 10.05], + "quantile_names": ["25", "75"], + "median": 9.67 + }, + "citation": { "author": ["Shuqi Wang", "Fengdi Zhang", "Zhilu Yuan", "Mingda Xu", "Zhen Wang", "Chao Gao", "Renzhong Guo", "Zhanwei Du"], "title": "Serial intervals and incubation periods of the monkeypox virus clades", "journal": "Journal of Travel Medicine", "year": 2022, + "PMID": 36130210, + "DOI": "10.1093/jtm/taac105" + }, + "metadata": { "sample_size": 16, "region": "Congo", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 9.28, - "median": 9.67, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": 10.05, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Systematic review", - "PMID": 36130210, - "DOI": "10.1093/jtm/taac105" + "phase_bias_adjusted": false }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus", - "epi_distribution": "serial_interval", + "notes": "Systematic review" +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus", + "epi_distribution": "serial_interval", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "quantile_values": [8.9, 10.67], + "quantile_names": ["25", "75"], + "median": 9.78 + }, + "citation": { "author": ["Shuqi Wang", "Fengdi Zhang", "Zhilu Yuan", "Mingda Xu", "Zhen Wang", "Chao Gao", "Renzhong Guo", "Zhanwei Du"], "title": "Serial intervals and incubation periods of the monkeypox virus clades", "journal": "Journal of Travel Medicine", "year": 2022, + "PMID": 36130210, + "DOI": "10.1093/jtm/taac105" + }, + "metadata": { "sample_size": 34, "region": "Mixed", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 8.9, - "median": 9.78, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": 10.67, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Systematic review", - "PMID": 36130210, - "DOI": "10.1093/jtm/taac105" + "phase_bias_adjusted": false }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus Clade I", - "epi_distribution": "incubation_period", + "notes": "Systematic review" +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus Clade I", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "quantile_values": [8, 12.25], + "quantile_names": ["25", "75"], + "median": 9.5 + }, + "citation": { "author": ["Shuqi Wang", "Fengdi Zhang", "Zhilu Yuan", "Mingda Xu", "Zhen Wang", "Chao Gao", "Renzhong Guo", "Zhanwei Du"], "title": "Serial intervals and incubation periods of the monkeypox virus clades", "journal": "Journal of Travel Medicine", "year": 2022, + "PMID": 36130210, + "DOI": "10.1093/jtm/taac105" + }, + "metadata": { "sample_size": 16, "region": "Congo", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 8, - "median": 9.5, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": 12.25, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Systematic review", - "PMID": 36130210, - "DOI": "10.1093/jtm/taac105" + "phase_bias_adjusted": false }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus Clade IIa", - "epi_distribution": "incubation_period", + "notes": "Systematic review" +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus Clade IIa", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "quantile_values": [11.39, 23.91], + "quantile_names": ["25", "75"], + "median": 16.76 + }, + "citation": { "author": ["Shuqi Wang", "Fengdi Zhang", "Zhilu Yuan", "Mingda Xu", "Zhen Wang", "Chao Gao", "Renzhong Guo", "Zhanwei Du"], "title": "Serial intervals and incubation periods of the monkeypox virus clades", "journal": "Journal of Travel Medicine", "year": 2022, + "PMID": 36130210, + "DOI": "10.1093/jtm/taac105" + }, + "metadata": { "sample_size": 27, "region": "USA", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": 11.39, - "median": 16.76, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": 23.91, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Systematic review", - "PMID": 36130210, - "DOI": "10.1093/jtm/taac105" + "phase_bias_adjusted": false }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus Clade IIb", - "epi_distribution": "incubation_period", + "notes": "Systematic review" +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus Clade IIb", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "median": 8.26, + "median_ci_limits": [7.55, 8.97], + "median_ci": 95 + }, + "citation": { "author": ["Shuqi Wang", "Fengdi Zhang", "Zhilu Yuan", "Mingda Xu", "Zhen Wang", "Chao Gao", "Renzhong Guo", "Zhanwei Du"], "title": "Serial intervals and incubation periods of the monkeypox virus clades", "journal": "Journal of Travel Medicine", "year": 2022, + "PMID": 36130210, + "DOI": "10.1093/jtm/taac105" + }, + "metadata": { "sample_size": 114, "region": "mixed", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": null, - "mean_ci_limits": null, - "mean_ci": null, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": 8.26, - "median_ci_limits": [7.55, 8.97], - "median_ci": 95, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "Systematic review", - "PMID": 36130210, - "DOI": "10.1093/jtm/taac105" + "phase_bias_adjusted": false }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "notes": "Systematic review" +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "mean": 8.13, + "mean_ci_limits": [4.9, 19.5], + "mean_ci": 95 + }, + "citation": { "author": ["Fengying Wei", "Zhihang Peng", "Zhen Jin", "Jinjie Wang", "Ximing Xu", "Xinyan Zhang", "Jun Xu", "Zixiong Ren", "Yao Bai", "Xiaoli Wang", "Bulai Lu", "Zhaojun Wang", "Jianguo Xu", "Senzhong Huang"], "title": "Study and prediction of the 2022 global monkeypox epidemic", "journal": "Journal of Biosafety and Biosecurity", "year": 2022, + "PMID": 36573222, + "DOI": "10.1016/j.jobb.2022.12.001" + }, + "metadata": { "sample_size": null, "region": "USA", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": 8.13, - "mean_ci_limits": [4.9, 19.5], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "SEIR model from 10.1016/j.mbs.2008.06.005 where the IP is assumed to follow a gamma distribution", - "PMID": 36573222, - "DOI": "10.1016/j.jobb.2022.12.001" + "phase_bias_adjusted": false }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "notes": "SEIR model from 10.1016/j.mbs.2008.06.005 where the IP is assumed to follow a gamma distribution" +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "mean": 8.08, + "mean_ci_limits": [4.8, 21], + "mean_ci": 95 + }, + "citation": { "author": ["Fengying Wei", "Zhihang Peng", "Zhen Jin", "Jinjie Wang", "Ximing Xu", "Xinyan Zhang", "Jun Xu", "Zixiong Ren", "Yao Bai", "Xiaoli Wang", "Bulai Lu", "Zhaojun Wang", "Jianguo Xu", "Senzhong Huang"], "title": "Study and prediction of the 2022 global monkeypox epidemic", "journal": "Journal of Biosafety and Biosecurity", "year": 2022, + "PMID": 36573222, + "DOI": "10.1016/j.jobb.2022.12.001" + }, + "metadata": { "sample_size": null, "region": "Europe", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": 8.08, - "mean_ci_limits": [4.8, 21], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": null, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "SEIR model from 10.1016/j.mbs.2008.06.005 where the IP is assumed to follow a gamma distribution", - "PMID": 36573222, - "DOI": "10.1016/j.jobb.2022.12.001" + "phase_bias_adjusted": false }, - { - "disease": "Mpox", - "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "notes": "SEIR model from 10.1016/j.mbs.2008.06.005 where the IP is assumed to follow a gamma distribution" +}, +{ + "disease": "Mpox", + "pathogen": "Mpox Virus", + "epi_distribution": "incubation_period", + "probability_distribution": { + "prob_distribution": null, + "parameters": { } + }, + "summary_statistics": { + "mean": 8.23, + "mean_ci_limits": [4.9, 21.4], + "mean_ci": 95, + "quantile_values": [20], + "quantile_names": ["95"] + }, + "citation": { "author": ["Fengying Wei", "Zhihang Peng", "Zhen Jin", "Jinjie Wang", "Ximing Xu", "Xinyan Zhang", "Jun Xu", "Zixiong Ren", "Yao Bai", "Xiaoli Wang", "Bulai Lu", "Zhaojun Wang", "Jianguo Xu", "Senzhong Huang"], "title": "Study and prediction of the 2022 global monkeypox epidemic", "journal": "Journal of Biosafety and Biosecurity", "year": 2022, + "PMID": 36573222, + "DOI": "10.1016/j.jobb.2022.12.001" + }, + "metadata": { "sample_size": null, "region": "Global", "transmission_mode": "natural_unknown", - "vector": null, "extrinsic": false, - "prob_distribution": null, - "inference_method": null, - "mean": 8.23, - "mean_ci_limits": [4.9, 21.4], - "mean_ci": 95, - "sd": null, - "sd_ci_limits": null, - "sd_ci": null, - "quantile_2.5": null, - "quantile_5": null, - "quantile_25": null, - "median": null, - "median_ci_limits": null, - "median_ci": null, - "quantile_75": null, - "quantile_87.5": null, - "quantile_95": 20, - "quantile_97.5": null, - "lower_range": null, - "upper_range": null, - "shape": null, - "shape_ci_limits": null, - "shape_ci": null, - "scale": null, - "scale_ci_limits": null, - "scale_ci": null, - "meanlog": null, - "meanlog_ci_limits": null, - "meanlog_ci": null, - "sdlog": null, - "sdlog_ci_limits": null, - "sdlog_ci": null, - "dispersion": null, - "dispersion_ci_limits": null, - "dispersion_ci": null, - "precision": null, - "precision_ci_limits": null, - "precision_ci": null, + "inference_method": null + }, + "method_assessment": { "truncation": null, "discretised": false, "censored": false, "right_truncated": false, - "phase_bias_adjusted": false, - "notes": "SEIR model from 10.1016/j.mbs.2008.06.005 where the IP is assumed to follow a gamma distribution", - "PMID": 36573222, - "DOI": "10.1016/j.jobb.2022.12.001" - } + "phase_bias_adjusted": false + }, + "notes": "SEIR model from 10.1016/j.mbs.2008.06.005 where the IP is assumed to follow a gamma distribution" +} ] From 178818d78d8844833073101f902a7d1009498685 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Fri, 29 Sep 2023 17:14:15 +0100 Subject: [PATCH 02/72] updated data dictionary to test modular parameter library --- inst/extdata/data_dictionary.json | 611 +++++++++++++++--------------- 1 file changed, 313 insertions(+), 298 deletions(-) diff --git a/inst/extdata/data_dictionary.json b/inst/extdata/data_dictionary.json index 2f7842e27..c46d4532e 100644 --- a/inst/extdata/data_dictionary.json +++ b/inst/extdata/data_dictionary.json @@ -12,7 +12,7 @@ "type": "string" }, "pathogen": { - "description": "Causative agent of disease specified in study. NA if not specified in study.\n", + "description": "Causative agent of disease specified in study. NA if not specified in study.", "examples": ["SARS-CoV-2", "monkeypox virus"], "type": ["string", "null"] }, @@ -21,315 +21,330 @@ "examples": ["incubation period", "serial interval", "offspring distribution"], "type": "string" }, - "author": { - "description": "An array of characters where each character is an author. Authors names should be stated as any given name(s) and family name(s). Single author publications should still be stored as arrays. Give all authors of the publication.", - "examples": [["John Smith"], ["John Smith", "Amy Jones"]], - "type": "array", - "items": { - "type": "string" - } - }, - "title": { - "description": "The title of the article that published the epidemiological parameters.", - "examples": ["Incubation period of COVID-19", "Serial internval of Ebola"], - "type": "string" - }, - "journal": { - "description": "The name of the journal that published the article that published the epidemiological parameters. This can also be a pre-print server, e.g., medRxiv.", - "examples": ["The Lancet", "PLoS One", "medRxiv"], - "type": "string" - }, - "year": { - "description": "The year the paper or report was published.", - "examples": ["2019", "2020"], - "type": "number", - "exclusiveMinimum": 0 - }, - "sample_size": { - "description": "The sample of the data used to fit the delay distribution. This is usually the number of people with data on a primary and possibly secondary event of interest. In cases where the sample size is not stated NA can be used.", - "examples": [25, 150], - "type": ["number", "null"] - }, - "region": { - "description": "The geographical location the data was collected. This can either be given at sub-national, national, continental. Multiple nested regions can be given and are comma separated. When the region is not specified NA can be given.", - "examples": ["England", "Wuhan, China"], - "type": ["string", "null"] - }, - "transmission_mode": { - "description": "A character string defining the mode of transmission of the infectious agent, specific to the data used in the study. The defines whether a pathogen is vector-borne (i.e. is transmitted between humans through a intermediate vector), is transmitted from human-to-human ( natural_human_to_human) or other. If multiple modes of transmission are recorded then mixed can be given. In cases where no mode of transmission if known or given in the study unknown can be stated.", - "examples": ["vector_borne", "natural_human_to_human", "unknown"], - "type": "string" - }, - "vector": { - "description": "The name of the vector transmitting the vector-borne disease. This can be a common name, or a latin binomial name of a specific vector species (see examples). Both the common name and taxonomic name can be given with one given in parentheses. When a disease is not vector-borne NA should be given.", - "examples": ["mosquito", "Aedes aegypti", "mosquito (Aedes aegypti)", "Aedes aegypti (mosquito)"], - "type": ["string", "null"] - }, - "extrinsic": { - "description": "A boolean value defining whether the data entry is an extrinsic delay distribution, such as the extrinsic incubation period. This field is required because intrinsic and extrinsic delay distributions are stored as separate entries in the database and can be linked. When the disease is not vector-borne FALSE should be given.", - "examples": [true, false], - "type": "boolean" - }, - "prob_distribution": { - "description": "The probability distribution fit to the data and reported in the paper. Abbreviations of distributions cannot be used, multiple words should be separated by an underscore (see examples). A probability distribution can be null in cases when there are no available distributions for a certain disease.", - "examples": ["gamma", "lognormal", "negative_binomial"], - "type": ["string", "null"] - }, - "inference_method": { - "description": "The type of inference used to fit the delay distribution to the data. Abbreviations of model fitting techniques can be specified as long as they are non-ambiguous. This field is only used to determine whether the uncertainty intervals possibly specified in the other fields are: confidence intervals (in the case of maximum likelihood), or credible intervals (in the case of bayesian inference). Uncertainty bounds for another types of inference methods, or if the inference method is unstated are assumed to be confidence intervals. When the inference method is unknown or a disease does not have a probability distribution NA can be given.", - "examples": ["bayesian", "maximum likelihood", "mle"], - "type": ["string", "null"] - }, - "mean": { - "description": "The mean value (expectation) of the distribution. If the mean is not reported put NA.", - "examples": [5, 3.2], - "type": ["number", "null"] - }, - "mean_ci_limits": { - "description": "The confidence interval of the distribution mean specified by two numbers in an array.", - "examples": [[3.1, 5.5], [2, 4.2]], - "type": ["array", "null"], - "items": { + "probability_distribution": { + "description": "An object containing the name of the probability distribution and its porameters if available.", + "type": "object", + "properties": { + "prob_distribution": { + "description": "The name of the probability distribution, following R language distribution naming. A probability distribution can be null in cases when summary statistics are reported by a distribution is not given.", + "examples": ["lnorm", "gamma"], + "type": ["string", "null"], + "enum": ["lnorm", "gamma", "weibull", "nbinom", "geom", "pois", null] + }, + "parameters": { + "type": "object", + "properties": { + "shape": { + "description": "The shape parameter of either the gamma or Weibull distribution.", + "examples": [2.0, 4.5], + "type": "number" + }, + "shape_ci_limits": { + "description": "The confidence interval of the distribution's shape parameter, specified by two numbers in an array.", + "examples": [[0.3, 3.2],[0.5, 0.7]], + "type": "array", + "items": { + "type": "number" + } + }, + "shape_ci": { + "description": "The interval of the uncertainty around the shape parameter of the distribution, for example 95% confidence interval would be 95.", + "examples": [95, 90, 80], + "type": "number" + }, + "scale": { + "description": "The scale parameter of either the gamma or Weibull distribution.", + "examples": [0.9, 1.1], + "type": "number" + }, + "scale_ci_limits": { + "description": "The confidence interval of the distribution's scale parameter, specified by two numbers in an array.", + "examples": [[0.2, 0.5], [1.1, 1.7]], + "type": "array", + "items": { + "type": "number" + } + }, + "scale_ci": { + "description": "The interval of the uncertainty around the scale parameter of the distribution, for example 95% confidence interval would be 95.", + "examples": [95, 90, 80], + "type": "number" + }, + "meanlog": { + "description": "The meanlog parameter of the lognormal distribution.", + "examples": [4.3, 7], + "type": "number" + }, + "meanlog_ci_limits": { + "description": "The confidence interval of the distribution's meanlog parameter, specified by two numbers in an array.", + "examples": [[0.4, 0.9], [1.5, 3.2]], + "type": "array", + "items": { + "type": "number" + } + }, + "meanlog_ci": { + "description": "The interval of the uncertainty around the meanlog parameter of the distribution, for example 95% confidence interval would be 95.", + "examples": [95, 90, 80], + "type": "number" + }, + "sdlog": { + "description": "The sdlog parameter of the lognormal distribution.", + "examples": [1.2, 1.4], + "type": "number" + }, + "sdlog_ci_limits": { + "description": "The confidence interval of the distribution's sdlog parameter, specified by two numbers in an array.", + "examples": [[0.3, 0.8], [1.4, 1.45]], + "type": "array", + "items": { + "type": "number" + } + }, + "sdlog_ci": { + "description": "The interval of the uncertainty around the sdlog parameter of the distribution, for example 95% confidence interval would be 95.", + "examples": [95, 90, 80], + "type": ["number", "null"] + }, + "dispersion": { + "description": "The dispersion factor of the lognormal distribution. This can be used with the median to calculate the bounds that contain approximately two-thirds of The data.", + "examples": [1.2, 1.4], + "type": "number" + }, + "dispersion_ci_limits": { + "description": "The confidence interval of the distribution's dispersion, specified by two numbers in an array.", + "examples": [[0.3, 0.8], [1.4, 1.45]], + "type": ["array", "null"], + "items": { + "type": "number" + } + }, + "dispersion_ci": { + "description": "The interval of the uncertainty around the dispersion of the distribution, for example 95% confidence interval would be 95.", + "examples": [95, 90, 80], + "type": "number" + }, + "precision": { + "description": "The precision parameter of a distribution. It is common to parameterise a distribution using the precision parameter in Bayesian inference.", + "examples": [1.2, 1.4], + "type": ["number", "null"] + }, + "precision_ci_limits": { + "description": "The confidence interval of the distribution's precision parameter, specified by two numbers in an array.", + "examples": [[0.3, 0.8], [1.4, 1.45]], + "type": ["array", "null"], + "items": { + "type": "number" + } + }, + "precision_ci": { + "description": "The interval of the uncertainty around the precision parameter, for example 95% confidence interval would be 95.", + "examples": [95, 90, 80], + "type": ["number", "null"] + } + } + } + }, + "required": ["prob_distribution"] + }, + "summary_statistics": { + "type": "object", + "properties": { + "mean": { + "description": "The mean value (expectation) of the distribution. If the mean is not reported put NA.", + "examples": [5, 3.2], + "type": "number" + }, + "mean_ci_limits": { + "description": "The confidence interval of the distribution mean specified by two numbers in an array.", + "examples": [[3.1, 5.5], [2, 4.2]], + "type": "array", + "items": { + "type": "number" + } + }, + "mean_ci": { + "description": "The interval of the uncertainty around the mean of the distribution, for example 95% confidence interval would be 95.", + "examples": [95, 90, 80], + "type": ["number", "null"] + }, + "sd": { + "description": "The standard deviation of the distribution.", + "examples": [2.3, 0.5], + "type": "number" + }, + "sd_ci_limits": { + "description": "The confidence interval of the distribution standard deviation specified by two numbers in an array.", + "examples": [[0.2, 0.9], [0.8, 1.2]], + "type": "array", + "items": { + "type": "number" + } + }, + "sd_ci": { + "description": "The interval of the uncertainty around the standard deviation of the distribution, for example 95% confidence interval would be 95.", + "examples": [95, 90, 80], + "type": "number" + }, + "median": { + "description": "The 50th quantile (or median) of the distribution.", + "examples": [1.7, 2.5], + "type": ["number", "null"] + }, + "median_ci_limits": { + "description": "The confidence interval of the distribution median specified by two numbers in an array.", + "examples": [[2.1, 2.2], [4.5, 5.1]], + "type": "array", + "items": { + "type": "number" + } + }, + "median_ci": { + "description": "The interval of the uncertainty around the median of the distribution, for example 95% confidence interval would be 95.", + "examples": [95, 90, 80], + "type": ["number", "null"] + }, + "quantile_values": { + "description": "The values at the quantiles of the distribution.", + "examples": [[2.1, 5.5], [4.3, 9.2]], + "type": "array", + "items": { + "type": "number" + } + }, + "quantile_names": { + "description": "The names of the quantiles of the distribution, for example 50 is the median and 95 is the 95th quantile of the distribution. These names need to correspond to the quantile values. The first element in quantile_values is named by the first element in quantile_names, etc.", + "examples": [["2.5", "97.5"], ["25", "75"]], + "type": "array", + "items": { + "type": "string" + } + }, + "lower_range": { + "description": "The lower bound of the range of the data which is used to infer the parameters of the distribution when they are not specified.", + "examples": [0.2, 0.4], + "type": "number" + }, + "upper_range": { + "description": "The upper bound of the range of the data which is used to infer the parameters of the distribution when they are not specified.", + "examples": [4.5, 6.7], "type": "number" } - }, - "mean_ci": { - "description": "The interval of the uncertainty around the mean of the distribution, for example 95% confidence interval would be 95.", - "examples": [95, 90, 80], - "type": ["number", "null"] - }, - "sd": { - "description": "The standard deviation of the distribution.", - "examples": [2.3, 0.5], - "type": ["number", "null"] - }, - "sd_ci_limits": { - "description": "The confidence interval of the distribution standard deviation specified by two numbers in an array.", - "examples": [[0.2, 0.9], [0.8, 1.2]], - "type": ["array", "null"], - "items": { - "type": ["number", "null"] } }, - "sd_ci": { - "description": "The interval of the uncertainty around the standard deviation of the distribution, for example 95% confidence interval would be 95.", - "examples": [95, 90, 80], - "type": ["number", "null"] - }, - "quantile_2.5": { - "description": "The 2.5th quantile of the distribution.", - "examples": [0.3, 0.45], - "type": ["number", "null"] - }, - "quantile_5": { - "description": "The 5th quantile of the distribution.", - "examples": [0.3, 0.45], - "type": ["number", "null"] - }, - "quantile_25": { - "description": "The 25th quantile of the distribution.", - "examples": [0.3, 0.45], - "type": ["number", "null"] - }, - "median": { - "description": "The 50th quantile (or median) of the distribution.", - "examples": [1.7, 2.5], - "type": ["number", "null"] - }, - "median_ci_limits": { - "description": "The confidence interval of the distribution median specified by two numbers in an array.", - "examples": [[2.1, 2.2], [4.5, 5.1]], - "type": ["array", "null"], - "items": { - "type": "number" - } - }, - "median_ci": { - "description": "The interval of the uncertainty around the median of the distribution, for example 95% confidence interval would be 95.", - "examples": [95, 90, 80], - "type": ["number", "null"] - }, - "quantile_75": { - "description": "The 75th quantile of the distribution.", - "examples": [0.8, 1.2], - "type": ["number", "null"] - }, - "quantile_87.5": { - "description": "The 87.5th quantile of the distribution.", - "examples": [0.9, 1.1], - "type": ["number", "null"] - }, - "quantile_95": { - "description": "The 95th quantile of the distribution.", - "examples": [1.3, 1.5], - "type": ["number", "null"] - }, - "quantile_97.5": { - "description": "The 97.5th quantile of the distribution.", - "examples": [1.5, 1.8], - "type": ["number", "null"] - }, - "lower_range": { - "description": "The lower bound of the range of the data which is used to infer the parameters of the distribution when they are not specified.", - "examples": [0.2, 0.4], - "type": ["number", "null"] - }, - "upper_range": { - "description": "The upper bound of the range of the data which is used to infer the parameters of the distribution when they are not specified.", - "examples": [4.5, 6.7], - "type": ["number", "null"] - }, - "shape": { - "description": "The shape parameter of the distribution. This can be the shape parameter of the gamma or Weibull distribution depending on what is specified in the distribution field.", - "examples": [4.2, 5.5], - "type": ["number", "null"] - }, - "shape_ci_limits": { - "description": "The confidence interval of the distribution's shape parameter, specified by two numbers in an array.", - "examples": [[0.3, 3.2],[0.5, 0.7]], - "type": ["array", "null"], - "items": { - "type": "number" - } - }, - "shape_ci": { - "description": "The interval of the uncertainty around the shape parameter of the distribution, for example 95% confidence interval would be 95.", - "examples": [95, 90, 80], - "type": ["number", "null"] - }, - "scale": { - "description": "The scale parameter of the distribution. This can be the shape of the gamma or Weibull distribution depending on what is specified in the distribution field.", - "examples": [0.9, 1.1], - "type": ["number", "null"] - }, - "scale_ci_limits": { - "description": "The confidence interval of the distribution's scale parameter, specified by two numbers in an array.", - "examples": [[0.2, 0.5], [1.1, 1.7]], - "type": ["array", "null"], - "items": { - "type": "number" - } - }, - "scale_ci": { - "description": "The interval of the uncertainty around the scale parameter of the distribution, for example 95% confidence interval would be 95.", - "examples": [95, 90, 80], - "type": ["number", "null"] - }, - "meanlog": { - "description": "The meanlog parameter of the lognormal distribution.", - "examples": [4.3, 7], - "type": ["number", "null"] - }, - "meanlog_ci_limits": { - "description": "The confidence interval of the distribution's meanlog parameter, specified by two numbers in an array.", - "examples": [[0.4, 0.9], [1.5, 3.2]], - "type": ["array", "null"], - "items": { - "type": "number" - } - }, - "meanlog_ci": { - "description": "The interval of the uncertainty around the meanlog parameter of the distribution, for example 95% confidence interval would be 95.", - "examples": [95, 90, 80], - "type": ["number", "null"] - }, - "sdlog": { - "description": "The sdlog parameter of the lognormal distribution.\n", - "examples": [1.2, 1.4], - "type": ["number", "null"] - }, - "sdlog_ci_limits": { - "description": "The confidence interval of the distribution's sdlog parameter, specified by two numbers in an array.", - "examples": [[0.3, 0.8], [1.4, 1.45]], - "type": ["array", "null"], - "items": { - "type": "number" - } - }, - "sdlog_ci": { - "description": "The interval of the uncertainty around the sdlog parameter of the distribution, for example 95% confidence interval would be 95.", - "examples": [95, 90, 80], - "type": ["number", "null"] - }, - "dispersion": { - "description": "The dispersion factor of the lognormal distribution. This can be used with the median to calculate the bounds that contain approximately two-thirds of The data.", - "examples": [1.2, 1.4], - "type": ["number", "null"] - }, - "dispersion_ci_limits": { - "description": "The confidence interval of the distribution's dispersion, specified by two numbers in an array.", - "examples": [[0.3, 0.8], [1.4, 1.45]], - "type": ["array", "null"], - "items": { - "type": "number" + "citation": { + "type": "object", + "properties": { + "author": { + "description": "An array of characters where each character is an author. Authors names should be stated as any given name(s) and family name(s). Single author publications should still be stored as arrays. Give all authors of the publication.", + "examples": [["John Smith"], ["John Smith", "Amy Jones"]], + "type": "array", + "items": { + "type": "string" + } + }, + "title": { + "description": "The title of the article that published the epidemiological parameters.", + "examples": ["Incubation period of COVID-19", "Serial internval of Ebola"], + "type": "string" + }, + "journal": { + "description": "The name of the journal that published the article that published the epidemiological parameters. This can also be a pre-print server, e.g., medRxiv.", + "examples": ["The Lancet", "PLoS One", "medRxiv"], + "type": "string" + }, + "year": { + "description": "The year the paper or report was published.", + "examples": ["2019", "2020"], + "type": "number", + "exclusiveMinimum": 0 + }, + "PMID": { + "description": "A PubMed unique identifier number assigned to papers to give them a unique identifier within PubMed.", + "examples": [18183754, 23749571], + "type": ["number", "null"] + }, + "DOI": { + "description": "A Digital Object Identifier (DOI) assigned to papers which are unique to each paper.", + "examples": ["doi:10.1080/02626667.2018.1560449", "https://doi.org/10.1111/hex.12487", "https://dx.doi.org/10.1080/02626667.2018.1560449", "https://doi.org/10.1016/j.jpsychires.2017.11.014"], + "type": "string" + } + }, + "required": ["author", "title", "journal", "year", "DOI"] + }, + "metadata": { + "type": "object", + "properties": { + "sample_size": { + "description": "The sample of the data used to fit the delay distribution. This is usually the number of people with data on a primary and possibly secondary event of interest. In cases where the sample size is not stated NA can be used.", + "examples": [25, 150], + "type": ["number", "null"] + }, + "region": { + "description": "The geographical location the data was collected. This can either be given at sub-national, national, continental. Multiple nested regions can be given and are comma separated. When the region is not specified NA can be given.", + "examples": ["England", "Wuhan, China"], + "type": ["string", "null"] + }, + "transmission_mode": { + "description": "A character string defining the mode of transmission of the infectious agent, specific to the data used in the study. The defines whether a pathogen is vector-borne (i.e. is transmitted between humans through a intermediate vector), is transmitted from human-to-human ( natural_human_to_human) or other. If multiple modes of transmission are recorded then mixed can be given. In cases where no mode of transmission if known or given in the study unknown can be stated.", + "examples": ["vector_borne", "natural_human_to_human", "unknown"], + "type": "string" + }, + "vector": { + "description": "The name of the vector transmitting the vector-borne disease. This can be a common name, or a latin binomial name of a specific vector species (see examples). Both the common name and taxonomic name can be given with one given in parentheses. When a disease is not vector-borne NA should be given.", + "examples": ["mosquito", "Aedes aegypti", "mosquito (Aedes aegypti)", "Aedes aegypti (mosquito)"], + "type": "string" + }, + "extrinsic": { + "description": "A boolean value defining whether the data entry is an extrinsic delay distribution, such as the extrinsic incubation period. This field is required because intrinsic and extrinsic delay distributions are stored as separate entries in the database and can be linked. When the disease is not vector-borne FALSE should be given.", + "examples": [true, false], + "type": "boolean" + }, + "inference_method": { + "description": "The type of inference used to fit the delay distribution to the data. Abbreviations of model fitting techniques can be specified as long as they are non-ambiguous. This field is only used to determine whether the uncertainty intervals possibly specified in the other fields are: confidence intervals (in the case of maximum likelihood), or credible intervals (in the case of bayesian inference). Uncertainty bounds for another types of inference methods, or if the inference method is unstated are assumed to be confidence intervals. When the inference method is unknown or a disease does not have a probability distribution NA can be given.", + "examples": ["bayesian", "maximum likelihood", "mle"], + "type": ["string", "null"], + "enum": ["mle", "bayesian", null] + } } }, - "dispersion_ci": { - "description": "The interval of the uncertainty around the dispersion of the distribution, for example 95% confidence interval would be 95.", - "examples": [95, 90, 80], - "type": ["number", "null"] - }, - "precision": { - "description": "The precision parameter of a distribution. It is common to parameterise a distribution using the precision parameter in Bayesian inference.", - "examples": [1.2, 1.4], - "type": ["number", "null"] - }, - "precision_ci_limits": { - "description": "The confidence interval of the distribution's precision parameter, specified by two numbers in an array.", - "examples": [[0.3, 0.8], [1.4, 1.45]], - "type": ["array", "null"], - "items": { - "type": "number" + "method_assessment": { + "type": "object", + "properties": { + "truncation": { + "description": "The truncation point for the distribution when right-truncation is used to account for the bias in survival data when fitting the distribution.", + "examples": [10, 15.5], + "type": ["number", "null"] + }, + "discretised": { + "description": "A boolean indicating whether the distribution fit to the data was discretised. If discretisation is not mentioned in the paper it is assumed the distribution fit to the data was continuous.", + "examples": [true, false], + "type": "boolean" + }, + "censored": { + "description": "A boolean indicating whether the distribution fit to the data correctly handled censored data. This is where the timing of events is either not known with precision or is known by recorded to a coarse level.", + "examples": [true, false], + "type": ["boolean", "null"] + }, + "right_truncated": { + "description": "A boolean indicating whether the distribution fit to the data correctly handled right-truncation to account for the fact that people in the cohort that experienced a primary event did not experience a secondary event and so shorter delay times are over-represented in the data.", + "examples": [true, false], + "type": ["boolean", "null"] + }, + "phase_bias_adjusted": { + "description": "A boolean indicating whether the distribution fit took into account whether the outbreak was in a stage of growth or decline which can bias the results.", + "examples": [true, false], + "type": ["boolean", "null"] + } } }, - "precision_ci": { - "description": "The interval of the uncertainty around the precision parameter, for example 95% confidence interval would be 95.", - "examples": [95, 90, 80], - "type": ["number", "null"] - }, - "truncation": { - "description": "The truncation point for the distribution when right-truncation is used to account for the bias in survival data when fitting the distribution.", - "examples": [10, 15.5], - "type": ["number", "null"] - }, - "discretised": { - "description": "A boolean indicating whether the distribution fit to the data was discretised. If discretisation is not mentioned in the paper it is assumed the distribution fit to the data was continuous.", - "examples": [true, false], - "type": "boolean" - }, - "censored": { - "description": "A boolean indicating whether the distribution fit to the data correctly handled censored data. This is where the timing of events is either not known with precision or is known by recorded to a coarse level.", - "examples": [true, false], - "type": ["boolean", "null"] - }, - "right_truncated": { - "description": "A boolean indicating whether the distribution fit to the data correctly handled right-truncation to account for the fact that people in the cohort that experienced a primary event did not experience a secondary event and so shorter delay times are over-represented in the data.", - "examples": [true, false], - "type": ["boolean", "null"] - }, - "phase_bias_adjusted": { - "description": "A boolean indicating whether the distribution fit took into account whether the outbreak was in a stage of growth or decline which can bias the results.", - "examples": [true, false], - "type": ["boolean", "null"] - }, "notes": { "description": "A notes field to add extra information that can be used to inform the user of the data but could not be recorded in one of the previous fields. When no notes are given use NA.", "examples": ["No additional notes", "Pooled data from many papers was used to fit distribution"], - "type": "string" - }, - "PMID": { - "description": "A PubMed unique identifier number assigned to papers to give them a unique identifier within PubMed.", - "examples": [18183754, 23749571], - "type": ["number", "null"] - }, - "DOI": { - "description": "A Digital Object Identifier (DOI) assigned to papers which are unique to each paper.", - "examples": ["doi:10.1080/02626667.2018.1560449", "https://doi.org/10.1111/hex.12487", "https://dx.doi.org/10.1080/02626667.2018.1560449", "https://doi.org/10.1016/j.jpsychires.2017.11.014"], - "type": "string" - + "type": ["string", "null"] } }, - "required": ["disease", "pathogen", "epi_distribution", "author", "year", "sample_size", "region", "transmission_mode", "vector", "extrinsic", "prob_distribution", "inference_method", "mean", "mean_ci_limits", "mean_ci", "sd", "sd_ci_limits", "sd_ci", "quantile_2.5", "quantile_5", "quantile_25", "median", "median_ci_limits", "median_ci", "quantile_75", "quantile_87.5", "quantile_95", "quantile_97.5", "lower_range", "upper_range", "shape", "shape_ci_limits", "shape_ci", "scale", "scale_ci_limits", "scale_ci", "meanlog", "meanlog_ci_limits", "meanlog_ci", "sdlog", "sdlog_ci_limits", "sdlog_ci", "dispersion", "dispersion_ci_limits", "dispersion_ci", "precision", "precision_ci_limits", "precision_ci", "truncation", "discretised", "censored", "right_truncated", "phase_bias_adjusted", "notes", "PMID", "DOI"], "additionalProperties": false + "required": ["disease", "epi_distribution", "summary_statistics", "citation", "metadata", "method_assessment", "notes"], + "additionalProperties": false } } - From 0a6669c477f41cab0109c503a645b3f85860543c Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Fri, 29 Sep 2023 18:26:07 +0100 Subject: [PATCH 03/72] added enum to validate epi distributions and updated database to be valid --- inst/extdata/data_dictionary.json | 5 +- inst/extdata/parameters.json | 236 +++++++++++++++--------------- 2 files changed, 121 insertions(+), 120 deletions(-) diff --git a/inst/extdata/data_dictionary.json b/inst/extdata/data_dictionary.json index c46d4532e..0b8dd3212 100644 --- a/inst/extdata/data_dictionary.json +++ b/inst/extdata/data_dictionary.json @@ -17,9 +17,10 @@ "type": ["string", "null"] }, "epi_distribution": { - "description": "The name of the epidemiological distribution type", + "description": "The name of the epidemiological distribution type. Names should be whitespace separated within each string.", "examples": ["incubation period", "serial interval", "offspring distribution"], - "type": "string" + "type": "string", + "enum": ["incubation period", "onset to hospitalisation", "onset to death", "serial interval", "generation time", "offspring distribution", "hospitalisation to death", "hospitalisation to discharge", "notification to death", "notification to discharge", "onset to discharge", "onset to ventilation"] }, "probability_distribution": { "description": "An object containing the name of the probability distribution and its porameters if available.", diff --git a/inst/extdata/parameters.json b/inst/extdata/parameters.json index db2a58da1..b277d0b4d 100644 --- a/inst/extdata/parameters.json +++ b/inst/extdata/parameters.json @@ -2,7 +2,7 @@ { "disease": "Adenovirus", "pathogen": "Adenovirus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -45,7 +45,7 @@ { "disease": "Human Coronavirus", "pathogen": "Human_Cov", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -88,7 +88,7 @@ { "disease": "SARS", "pathogen": "SARS-Cov-1", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -131,7 +131,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -174,7 +174,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -217,7 +217,7 @@ { "disease": "Influenza", "pathogen": "Influenza-B", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -260,7 +260,7 @@ { "disease": "Measles", "pathogen": "Measles Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -303,7 +303,7 @@ { "disease": "Parainfluenza", "pathogen": "Parainfluenza Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -346,7 +346,7 @@ { "disease": "RSV", "pathogen": "RSV", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -389,7 +389,7 @@ { "disease": "Rhinovirus", "pathogen": "Rhinovirus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -432,7 +432,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -475,7 +475,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -518,7 +518,7 @@ { "disease": "RSV", "pathogen": "RSV", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -561,7 +561,7 @@ { "disease": "RSV", "pathogen": "RSV", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -604,7 +604,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A-H1N1", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "gamma", "parameters": { @@ -646,7 +646,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A-H1N1", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "weibull", "parameters": { @@ -688,7 +688,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A-H7N9", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "weibull", "parameters": { } @@ -728,7 +728,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A-H7N9", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -768,7 +768,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A-H7N9", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "weibull", "parameters": { } @@ -805,7 +805,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A-H7N9", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "weibull", "parameters": { @@ -849,7 +849,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A-H7N9", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "weibull", "parameters": { @@ -893,7 +893,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A-H1N1", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -931,7 +931,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A-H1N1Pdm", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -967,7 +967,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A-H1N1Pdm", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -1003,7 +1003,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A-H1N1", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -1042,7 +1042,7 @@ { "disease": "Influenza", "pathogen": "Influenza-A-H1N1", - "epi_distribution": "generation_time", + "epi_distribution": "generation time", "probability_distribution": { "prob_distribution": "weibull", "parameters": { @@ -1084,7 +1084,7 @@ { "disease": "Marburg Virus Disease", "pathogen": "Marburg Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -1120,7 +1120,7 @@ { "disease": "Marburg Virus Disease", "pathogen": "Marburg Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -1157,7 +1157,7 @@ { "disease": "Marburg Virus Disease", "pathogen": "Marburg Virus", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -1194,7 +1194,7 @@ { "disease": "Marburg Virus Disease", "pathogen": "Marburg Virus", - "epi_distribution": "onset_to_death", + "epi_distribution": "onset to death", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -1231,7 +1231,7 @@ { "disease": "Marburg Virus Disease", "pathogen": "Marburg Virus", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -1271,7 +1271,7 @@ { "disease": "SARS", "pathogen": "SARS-Cov-1", - "epi_distribution": "offspring_distribution", + "epi_distribution": "offspring distribution", "probability_distribution": { "prob_distribution": "nbinom", "parameters": { @@ -1312,7 +1312,7 @@ { "disease": "SARS", "pathogen": "SARS-Cov-1", - "epi_distribution": "offspring_distribution", + "epi_distribution": "offspring distribution", "probability_distribution": { "prob_distribution": "nbinom", "parameters": { @@ -1353,7 +1353,7 @@ { "disease": "Smallpox", "pathogen": "Smallpox-Variola-Major", - "epi_distribution": "offspring_distribution", + "epi_distribution": "offspring distribution", "probability_distribution": { "prob_distribution": "nbinom", "parameters": { @@ -1394,7 +1394,7 @@ { "disease": "Smallpox", "pathogen": "Smallpox-Variola-Major", - "epi_distribution": "offspring_distribution", + "epi_distribution": "offspring distribution", "probability_distribution": { "prob_distribution": "nbinom", "parameters": { @@ -1435,7 +1435,7 @@ { "disease": "Smallpox", "pathogen": "Smallpox-Variola-Minor", - "epi_distribution": "offspring_distribution", + "epi_distribution": "offspring distribution", "probability_distribution": { "prob_distribution": "nbinom", "parameters": { @@ -1476,7 +1476,7 @@ { "disease": "Smallpox", "pathogen": "Smallpox-Variola-Minor", - "epi_distribution": "offspring_distribution", + "epi_distribution": "offspring distribution", "probability_distribution": { "prob_distribution": "nbinom", "parameters": { @@ -1515,7 +1515,7 @@ { "disease": "Mpox", "pathogen": "Monkeypox Virus", - "epi_distribution": "offspring_distribution", + "epi_distribution": "offspring distribution", "probability_distribution": { "prob_distribution": "geom", "parameters": { } @@ -1550,7 +1550,7 @@ { "disease": "Pneumonic Plague", "pathogen": "Yersinia Pestis", - "epi_distribution": "offspring_distribution", + "epi_distribution": "offspring distribution", "probability_distribution": { "prob_distribution": "geom", "parameters": { } @@ -1585,7 +1585,7 @@ { "disease": "Hantavirus Pulmonary Syndrome", "pathogen": "Hantavirus (Andes Virus)", - "epi_distribution": "offspring_distribution", + "epi_distribution": "offspring distribution", "probability_distribution": { "prob_distribution": "geom", "parameters": { } @@ -1620,7 +1620,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "offspring_distribution", + "epi_distribution": "offspring distribution", "probability_distribution": { "prob_distribution": "pois", "parameters": { } @@ -1655,7 +1655,7 @@ { "disease": "Dengue", "pathogen": "Dengue Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -1695,7 +1695,7 @@ { "disease": "Dengue", "pathogen": "Dengue Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -1739,7 +1739,7 @@ { "disease": "Dengue", "pathogen": "Dengue Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -1786,7 +1786,7 @@ { "disease": "Zika Virus Disease", "pathogen": "Zika Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -1830,7 +1830,7 @@ { "disease": "Chikungunya", "pathogen": "Chikungunya Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -1874,7 +1874,7 @@ { "disease": "Dengue", "pathogen": "Dengue Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -1917,7 +1917,7 @@ { "disease": "Dengue", "pathogen": "Dengue Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -1961,7 +1961,7 @@ { "disease": "Japanese Encephalitis", "pathogen": "Japanese Encephalitis Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -2005,7 +2005,7 @@ { "disease": "Rift Valley Fever", "pathogen": "Rift Valley Fever Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -2049,7 +2049,7 @@ { "disease": "West Nile Fever", "pathogen": "West Nile Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -2092,7 +2092,7 @@ { "disease": "West Nile Fever", "pathogen": "West Nile Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -2136,7 +2136,7 @@ { "disease": "West Nile Fever", "pathogen": "West Nile Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -2179,7 +2179,7 @@ { "disease": "Yellow Fever", "pathogen": "Yellow Fever Viruses", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -2222,7 +2222,7 @@ { "disease": "Yellow Fever", "pathogen": "Yellow Fever Viruses", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -2266,7 +2266,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -2308,7 +2308,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -2353,7 +2353,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -2392,7 +2392,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -2439,7 +2439,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -2486,7 +2486,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": "gamma", "parameters": { @@ -2533,7 +2533,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": "gamma", "parameters": { @@ -2580,7 +2580,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus-Zaire Subtype", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -2616,7 +2616,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus-Zaire Subtype", - "epi_distribution": "onset_to_death", + "epi_distribution": "onset to death", "probability_distribution": { "prob_distribution": "gamma", "parameters": { @@ -2663,7 +2663,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -2703,7 +2703,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -2743,7 +2743,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -2783,7 +2783,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -2823,7 +2823,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -2863,7 +2863,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -2903,7 +2903,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -2943,7 +2943,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -2983,7 +2983,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "hospitalisation_to_death", + "epi_distribution": "hospitalisation to death", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -3023,7 +3023,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "hospitalisation_to_discharge", + "epi_distribution": "hospitalisation to discharge", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -3063,7 +3063,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "notification_to_death", + "epi_distribution": "notification to death", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -3103,7 +3103,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "notification_to_discharge", + "epi_distribution": "notification to discharge", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -3143,7 +3143,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "onset_to_death", + "epi_distribution": "onset to death", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -3183,7 +3183,7 @@ { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", - "epi_distribution": "onset_to_discharge", + "epi_distribution": "onset to discharge", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -3223,7 +3223,7 @@ { "disease": "MERS", "pathogen": "MERS-Cov", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -3262,7 +3262,7 @@ { "disease": "MERS", "pathogen": "MERS-Cov", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -3301,7 +3301,7 @@ { "disease": "MERS", "pathogen": "MERS-Cov", - "epi_distribution": "onset_to_hospitalisation", + "epi_distribution": "onset to hospitalisation", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -3338,7 +3338,7 @@ { "disease": "MERS", "pathogen": "MERS-Cov", - "epi_distribution": "onset_to_death", + "epi_distribution": "onset to death", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -3375,7 +3375,7 @@ { "disease": "MERS", "pathogen": "MERS-Cov", - "epi_distribution": "onset_to_ventilation", + "epi_distribution": "onset to ventilation", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -3412,7 +3412,7 @@ { "disease": "MERS", "pathogen": "MERS-Cov", - "epi_distribution": "onset_to_death", + "epi_distribution": "onset to death", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -3452,7 +3452,7 @@ { "disease": "MERS", "pathogen": "MERS-Cov", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -3494,7 +3494,7 @@ { "disease": "MERS", "pathogen": "MERS-Cov", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -3534,7 +3534,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -3579,7 +3579,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -3616,7 +3616,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -3653,7 +3653,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -3690,7 +3690,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -3727,7 +3727,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "weibull", "parameters": { } @@ -3770,7 +3770,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -3810,7 +3810,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -3859,7 +3859,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -3904,7 +3904,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -3949,7 +3949,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "onset_to_hospitalisation", + "epi_distribution": "onset to hospitalisation", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -3994,7 +3994,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "onset_to_hospitalisation", + "epi_distribution": "onset to hospitalisation", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -4039,7 +4039,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "onset_to_death", + "epi_distribution": "onset to death", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -4084,7 +4084,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "hospitalisation_to_death", + "epi_distribution": "hospitalisation to death", "probability_distribution": { "prob_distribution": "weibull", "parameters": { } @@ -4129,7 +4129,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -4174,7 +4174,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "onset_to_hospitalisation", + "epi_distribution": "onset to hospitalisation", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -4219,7 +4219,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "onset_to_hospitalisation", + "epi_distribution": "onset to hospitalisation", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -4264,7 +4264,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "onset_to_death", + "epi_distribution": "onset to death", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -4309,7 +4309,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "hospitalisation_to_death", + "epi_distribution": "hospitalisation to death", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -4354,7 +4354,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { @@ -4398,7 +4398,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -4437,7 +4437,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -4476,7 +4476,7 @@ { "disease": "COVID-19", "pathogen": "SARS-CoV-2", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": "lnorm", "parameters": { } @@ -4515,7 +4515,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": "gamma", "parameters": { } @@ -4560,7 +4560,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus Clade I", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -4597,7 +4597,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus", - "epi_distribution": "serial_interval", + "epi_distribution": "serial interval", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -4634,7 +4634,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus Clade I", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -4671,7 +4671,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus Clade IIa", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -4708,7 +4708,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus Clade IIb", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -4745,7 +4745,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -4782,7 +4782,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": null, "parameters": { } @@ -4819,7 +4819,7 @@ { "disease": "Mpox", "pathogen": "Mpox Virus", - "epi_distribution": "incubation_period", + "epi_distribution": "incubation period", "probability_distribution": { "prob_distribution": null, "parameters": { } From ed91b522c91759f003b9492c3f34b038cf2cec12 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 12:14:39 +0100 Subject: [PATCH 04/72] added .format_epidist function --- R/epidist_db.R | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/R/epidist_db.R b/R/epidist_db.R index 67228bdc7..7dc2eb07f 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -213,3 +213,77 @@ epidist_db <- function(disease, # return epidist edist } + +#' Format data from JSON database into `` objects +#' +#' @param x A single entry (element/object) from the database. +#' +#' @return An `` object. +#' @keywords internal +#' @noRd +.format_epidist <- function(x) { + # convert nulls to NA + null2na <- function(l) { + if (is.list(l)) l <- lapply(l, null2na) else if (is.null(l)) l <- NA + l + } + x <- lapply(x, null2na) + + # format parameters and parameter uncertainty + params_uncertainty <- .format_params(x) + params <- params_uncertainty$params + uncertainty <- params_uncertainty$uncertainty + + # format summary statistics + ss <- lapply(x$summary_statistics, unlist) + names(ss$quantile_values) <- ss$quantile_names + ss$quantile_names <- NULL + names(ss)[names(ss) == "quantile_values"] <- "quantiles" + + # format citation + cit <- lapply(x$citation, unlist) + cit$PMID <- ifelse(is.null(cit$PMID), yes = NA_real_, no = cit$PMID) + cit <- suppressMessages( + create_epidist_citation( + author = cit$author, + year = cit$year, + title = cit$title, + journal = cit$journal, + DOI = cit$DOI, + PMID = cit$PMID + ) + ) + + # format metadata + meta <- create_epidist_metadata() + meta[names(x$metadata)] <- x$metadata + + # format method assessment + method <- create_epidist_method_assess() + truncation <- ifelse( + is.null(x$method_assessment$truncation), + yes = NA_real_, + no = x$method_assessment$truncation + ) + discretised <- x$method_assessment$discretised + x$method_assessment[c("truncation", "discretised")] <- NULL + method[names(x$method_assessment)] <- x$method_assessment + + # return + epidist( + disease = x$disease, + pathogen = x$pathogen, + epi_dist = x$epi_distribution, + prob_distribution = x$probability_distribution$prob_distribution, + prob_distribution_params = params, + uncertainty = uncertainty, + summary_stats = ss, + auto_calc_params = TRUE, + citation = cit, + metadata = meta, + method_assess = method, + discretise = discretised, + truncation = truncation, + notes = x$notes + ) +} From 31e277b5561829f0d15d56101e22c806ebd92437 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 12:15:57 +0100 Subject: [PATCH 05/72] added .format_params function --- R/epidist_db.R | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/R/epidist_db.R b/R/epidist_db.R index 7dc2eb07f..7605c6a7f 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -287,3 +287,91 @@ epidist_db <- function(disease, notes = x$notes ) } + +#' Format parameters and their uncertainty +#' +#' @param x A single entry (element/object) from the database. +#' +#' @return A list with parameters (`$params`) and uncertainty (`$uncertainty`). +#' @keywords internal +#' @noRd +.format_params <- function(x) { + params <- lapply(x$probability_distribution$parameters, unlist) + + # return unparameterised + if (length(params) == 0) { + return( + list( + params = NA, + uncertainty = create_epidist_uncertainty() + ) + ) + } + + # return params without uncertainty + if (!any(grepl(pattern = "ci", x = names(params)))) { + uncertainty <- lapply( + vector(mode = "list", length = length(params)), + function(x) x <- create_epidist_uncertainty() + ) + names(uncertainty) <- names(params) + return( + list( + params = unlist(params), + uncertainty = uncertainty + ) + ) + } + + # add ci to params without for consistent data struct + params_ <- vector(mode = "list") + for (i in seq_along(params)) { + nm <- names(params)[i] + nms <- names(params)[grepl(pattern = nm, x = names(params))] + if (!any(grepl(pattern = "_ci", x = nms))) { + params_ci <- list(params[[i]], c(NA_real_, NA_real_), NA_real_) + names(params_ci) <- c(nm, paste0(nm, "_ci_limits"), paste0(nm, "_ci")) + params_ <- append(params_, params_ci) + } else { + params_ <- append(params_, params[i]) + } + } + params <- params_ + + # params and uncertainty + ci_limits <- params[grepl(pattern = "ci_limits$", x = names(params))] + ci <- params[grepl(pattern = "ci$", x = names(params))] + ci_type <- switch(x$metadata$inference_method, + "mle" = "confidence_interval", + "bayesian" = "credible_interval", + NA_character_ + ) + + # separate parameters and uncertainty + ci_idx <- grepl(pattern = "_ci", x = names(params)) + uncertainty <- params[ci_idx] + params <- params[!ci_idx] + + # default uncertainty for each parameters + uncertainty <- lapply( + vector(mode = "list", length = length(params)), + function(x) x <- create_epidist_uncertainty() + ) + + for (i in seq_along(ci_limits)) { + uncertainty[[i]] <- list( + ci_limits = ci_limits[[i]], + ci = ci[[i]], + ci_type = ci_type + ) + } + + params <- unlist(params) + names(uncertainty) <- names(params) + + # return params and uncertainty + list( + params = params, + uncertainty = uncertainty + ) +} From 102ee0ca2af88af7f7011d1348ac3b55982312ba Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 12:16:59 +0100 Subject: [PATCH 06/72] added .read_epidist_db function --- R/epidist_db.R | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/R/epidist_db.R b/R/epidist_db.R index 7605c6a7f..97f783297 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -214,6 +214,42 @@ epidist_db <- function(disease, edist } +#' Reads in parameter library and formats data to +#' +#' @inheritParams epidist_db +#' +#' @return `` object (i.e. a list of `` with nicer +#' printing) +#' @keywords internal +#' @noRd +.read_epidist_db <- function(epi_dist = c( + "all", + "incubation_period", + "onset_to_hospitalisation", + "onset_to_death", + "serial_interval", + "generation_time", + "offspring_distribution" +)) { + paramsJSON <- jsonlite::read_json( + path = system.file( + "extdata", + "parameters.json", + package = "epiparameter", + mustWork = TRUE + ) + ) + + # suppress individual constructor messages + multi_epidist <- suppressMessages(lapply(paramsJSON, .format_epidist)) + + # create and return class + structure( + multi_epidist, + class = "multi_epidist" + ) +} + #' Format data from JSON database into `` objects #' #' @param x A single entry (element/object) from the database. From 9261f4b9df010cd2153a7f16064b31602be0f26d Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 12:18:38 +0100 Subject: [PATCH 07/72] added .is_cond_epidist function --- R/epidist_db.R | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/R/epidist_db.R b/R/epidist_db.R index 97f783297..47e35c398 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -411,3 +411,22 @@ epidist_db <- function(disease, uncertainty = uncertainty ) } + +#' Check `` based on condition +#' +#' @return list of logical booleans. +#' @keywords internal +#' @noRd +.is_cond_epidist <- function(lst, condition, nse_subject) { + # check input + stopifnot(is_epidist(lst)) + # apply condition to name matching elements + lapply(lst, function(x) { + if (nse_subject %in% names(x)) { + # is only nested once so no need for recursive search + eval(expr = condition, envir = x) + } else { + FALSE + } + }) +} From 02ae1a152dbae498b81c9dd605decb57df758e82 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 12:20:39 +0100 Subject: [PATCH 08/72] updated epidist_db to read in from JSON db and work with list instead of df --- R/epidist_db.R | 150 +++++++++++++++++++++++++++++-------------------- 1 file changed, 90 insertions(+), 60 deletions(-) diff --git a/R/epidist_db.R b/R/epidist_db.R index 47e35c398..a93b70394 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -18,9 +18,25 @@ #' `` object(s) desired. To subset based on multiple variables separate #' each expression with `&`. #' +#' List of epidemiological distributions: +#' +#' * "all" (default, returns all entries in library) +#' * "incubation period" +#' * "onset to hospitalisation" +#' * "onset to death" +#' * "serial interval" +#' * "generation time" +#' * "offspring distribution" +#' * "hospitalisation to death" +#' * "hospitalisation to discharge" +#' * "notification to death" +#' * "notification to discharge" +#' * "onset to discharge" +#' * "onset to ventilation" +#' #' @param disease A `character` string specifying the disease. #' @param epi_dist A `character` string specifying the epidemiological -#' distribution. +#' distribution. See details for full list of epidemiological distributions. #' @param author A `character` string specifying the author of the study #' reporting the distribution. Only the first author will be matched. It is #' recommended to use the family name as first names may or may not be @@ -93,20 +109,23 @@ #' single_epidist = TRUE #' ) epidist_db <- function(disease, - epi_dist = c( - "incubation_period", - "onset_to_hospitalisation", - "onset_to_death", - "serial_interval", - "generation_time", - "offspring_distribution" - ), + epi_dist = "all", author = NULL, subset = NULL, single_epidist = FALSE) { # check input checkmate::assert_string(disease) - epi_dist <- match.arg(arg = epi_dist, several.ok = FALSE) + epi_dist <- match.arg( + arg = epi_dist, + choices = c( + "all", "incubation period", "onset to hospitalisation", "onset to death", + "serial interval", "generation time", "offspring distribution", + "hospitalisation to death", "hospitalisation to discharge", + "notification to death", "notification to discharge", + "onset to discharge", "onset to ventilation" + ), + several.ok = FALSE + ) checkmate::assert_logical(single_epidist, len = 1) # capture expression from subset and check type @@ -120,25 +139,38 @@ epidist_db <- function(disease, } # read in database - eparam <- epiparam(epi_dist = epi_dist) + multi_epidist <- .read_epidist_db(epi_dist = epi_dist) + attrib <- attributes(multi_epidist) - if (!any(grepl(pattern = disease, x = eparam$disease, ignore.case = TRUE))) { + disease_db <- vapply( + multi_epidist, function(x) x$disease$disease, + FUN.VALUE = character(1) + ) + if (!any(grepl(pattern = disease, x = disease_db, ignore.case = TRUE))) { stop(epi_dist, " distribution not available for ", disease, call. = FALSE) } # match disease names against data disease <- match.arg( arg = clean_disease(disease), - choices = clean_disease(unique(eparam$disease)), + choices = clean_disease(unique(disease_db)), several.ok = FALSE ) # filter based on pathogen and delay distribution - eparam <- eparam[clean_disease(eparam$disease) == disease, ] + multi_epidist <- Filter(f = function(x) { + grepl( + pattern = disease, + x = clean_disease(x$disease$disease), + ignore.case = TRUE + ) + }, multi_epidist) # extract study by author if given if (!is.null(author)) { - first_author <- lapply(eparam$author, "[[", 1) + first_author <- lapply(multi_epidist, function(x) { + x$citation$author[1] + }) author_set <- grepl(pattern = author, x = first_author, ignore.case = TRUE) if (!any(author_set)) { @@ -149,69 +181,67 @@ epidist_db <- function(disease, } # subset by authors - eparam <- subset(eparam, author_set) + multi_epidist <- subset(multi_epidist, author_set) } # subset by subset conditions if (is.call(expr)) { - set <- eval(expr = expr, envir = eparam, enclos = parent.frame()) - eparam <- eparam[set, ] + nse_subject <- as.character(expr)[2] + cond_list <- lapply(multi_epidist, .is_cond_epidist, expr, nse_subject) + set <- vapply(cond_list, function(x) any(unlist(x)), FUN.VALUE = logical(1)) + multi_epidist <- multi_epidist[set] } else if (is.function(subset)) { - set <- do.call(subset, args = list(eparam)) - eparam <- eparam[set, ] + set <- vapply(multi_epidist, subset, FUN.VALUE = logical(1)) + multi_epidist <- multi_epidist[set] } - if (nrow(eparam) == 0) { + attributes(multi_epidist) <- attrib + + if (length(multi_epidist) == 0) { stop( "No entries in the database meet the subset criteria.", call. = FALSE ) } - # convert epiparam to epidist - if (nrow(eparam) == 1) { - edist <- as_epidist(x = eparam) - validate_epidist(edist) - } else { - edist <- suppressMessages(as_epidist(x = eparam)) - is_param <- vapply(edist, is_parameterised, FUN.VALUE = logical(1)) - - if (single_epidist) { - # select parameterised entries - if (sum(is_param) >= 1) { - edist <- edist[is_param] - } - # select largest sample size - idx <- which.max( - vapply( - edist, - function(x) x$metadata$sample_size, - FUN.VALUE = numeric(1) - ) - ) - edist <- edist[[idx]] - validate_epidist(edist) + lapply(multi_epidist, validate_epidist) + is_param <- vapply(multi_epidist, is_parameterised, FUN.VALUE = logical(1)) - message( - "Using ", format(get_citation(edist)), ". \n", - "To retrieve the short citation use the 'get_citation' function" - ) - } else { - lapply(edist, validate_epidist) - - message( - "Returning ", nrow(eparam), " results that match the criteria ", - "(", sum(is_param), " are parameterised). \n", - "Use subset to filter by entry variables or ", - "single_epidist to return a single entry. \n", - "To retrieve the short citation for each use the ", - "'get_citation' function" - ) + if (single_epidist) { + # select parameterised entries + if (sum(is_param) >= 1) { + edist <- multi_epidist[is_param] } + # select largest sample size + idx <- which.max( + vapply( + multi_epidist, + function(x) x$metadata$sample_size, + FUN.VALUE = numeric(1) + ) + ) + edist <- multi_epidist[[idx]] + + message( + "Using ", format(get_citation(edist)), ". \n", + "To retrieve the short citation use the 'get_citation' function" + ) + + return(edist) } + message( + "Returning ", length(multi_epidist), " results that match the criteria ", + "(", sum(is_param), " are parameterised). \n", + "Use subset to filter by entry variables or ", + "single_epidist to return a single entry. \n", + "To retrieve the short citation for each use the ", + "'get_citation' function" + ) + + # return epidist - edist + multi_epidist } #' Reads in parameter library and formats data to From 2d3ce8b01386a1b3075f6dbcb333c72818cd07a6 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 12:21:08 +0100 Subject: [PATCH 09/72] updated epidist_db documentation --- man/epidist_db.Rd | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/man/epidist_db.Rd b/man/epidist_db.Rd index 3bcd3ce7f..124ddb73f 100644 --- a/man/epidist_db.Rd +++ b/man/epidist_db.Rd @@ -7,8 +7,7 @@ \usage{ epidist_db( disease, - epi_dist = c("incubation_period", "onset_to_hospitalisation", "onset_to_death", - "serial_interval", "generation_time", "offspring_distribution"), + epi_dist = "all", author = NULL, subset = NULL, single_epidist = FALSE @@ -18,7 +17,7 @@ epidist_db( \item{disease}{A \code{character} string specifying the disease.} \item{epi_dist}{A \code{character} string specifying the epidemiological -distribution.} +distribution. See details for full list of epidemiological distributions.} \item{author}{A \code{character} string specifying the author of the study reporting the distribution. Only the first author will be matched. It is @@ -72,6 +71,23 @@ as these are the most common variables to subset the parameter library by. The \code{subset} argument facilitates all other subsetting of rows to select the \verb{} object(s) desired. To subset based on multiple variables separate each expression with \code{&}. + +List of epidemiological distributions: +\itemize{ +\item "all" (default, returns all entries in library) +\item "incubation period" +\item "onset to hospitalisation" +\item "onset to death" +\item "serial interval" +\item "generation time" +\item "offspring distribution" +\item "hospitalisation to death" +\item "hospitalisation to discharge" +\item "notification to death" +\item "notification to discharge" +\item "onset to discharge" +\item "onset to ventilation" +} } \examples{ epidist_db(disease = "influenza", epi_dist = "serial_interval") From 4bba713ab6a22f29d8b66774a04eb74361b4ab16 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 12:22:17 +0100 Subject: [PATCH 10/72] added print method for multi_epidist class --- NAMESPACE | 1 + R/epidist_db.R | 37 +++++++++++++++++++++++++++++++++++++ man/print.multi_epidist.Rd | 19 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 man/print.multi_epidist.Rd diff --git a/NAMESPACE b/NAMESPACE index 45410bd3c..b11fa48f9 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -27,6 +27,7 @@ S3method(plot,epidist) S3method(plot,vb_epidist) S3method(print,epidist) S3method(print,epiparam) +S3method(print,multi_epidist) S3method(print,vb_epidist) S3method(quantile,epidist) S3method(quantile,vb_epidist) diff --git a/R/epidist_db.R b/R/epidist_db.R index a93b70394..b86fdec1e 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -460,3 +460,40 @@ epidist_db <- function(disease, } }) } + +#' Print method for `` class +#' +#' @param x A `` object. +#' @inheritParams print.epidist +#' +#' @return Invisibly returns a ``. Called for side-effects. +#' @export +print.multi_epidist <- function(x, ...) { + if (length(x) <= 5) { + NextMethod() + } else { + chkDots(...) + writeLines( + c( + sprintf("List of objects"), + sprintf(" Number of entries in library: %s", length(x)), + sprintf( + " Number of studies in library: %s", + length(unique( + vapply( + x, function(y) y$citation$DOI, + FUN.VALUE = character(1) + ) + )) + ), + sprintf( + " Number of diseases: %s", + length(unique( + vapply(x, function(y) y$disease$disease, FUN.VALUE = character(1)) + )) + ) + ) + ) + invisible(x) + } +} diff --git a/man/print.multi_epidist.Rd b/man/print.multi_epidist.Rd new file mode 100644 index 000000000..b623f0302 --- /dev/null +++ b/man/print.multi_epidist.Rd @@ -0,0 +1,19 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/epidist_db.R +\name{print.multi_epidist} +\alias{print.multi_epidist} +\title{Print method for \verb{} class} +\usage{ +\method{print}{multi_epidist}(x, ...) +} +\arguments{ +\item{x}{A \verb{} object.} + +\item{...}{\link{dots} Extra arguments passed to or from other methods.} +} +\value{ +Invisibly returns a \verb{}. Called for side-effects. +} +\description{ +Print method for \verb{} class +} From 74bfa1111b25b503ee4a131101acfc76aa541f2f Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 12:23:59 +0100 Subject: [PATCH 11/72] added has_r_params function and updated epidist constructor --- R/epidist.R | 5 +++-- R/epidist_utils.R | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/R/epidist.R b/R/epidist.R index 6c667775f..16db4afd4 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -63,9 +63,10 @@ new_epidist <- function(disease = list(), ) # calculate parameters if not provided - if (!is.na(prob_dist) && anyNA(prob_dist_params) && auto_calc_params) { + if (!has_r_params(prob_dist, prob_dist_params) && auto_calc_params) { prob_dist_params <- calc_dist_params( prob_dist = prob_dist, + prob_dist_params = prob_dist_params, summary_stats = summary_stats, sample_size = metadata$sample_size ) @@ -282,7 +283,7 @@ epidist <- function(disease, checkmate::assert_list(uncertainty, names = "unique") checkmate::assert_list( summary_stats, - types = c("list", "double", "logical", "null"), + types = c("list", "double", "integer", "logical", "null"), names = "unique" ) checkmate::assert_class(citation, classes = "bibentry") diff --git a/R/epidist_utils.R b/R/epidist_utils.R index 17d3eb355..9c0e5cba1 100644 --- a/R/epidist_utils.R +++ b/R/epidist_utils.R @@ -798,3 +798,36 @@ clean_disease <- function(x) { checkmate::assert_character(x) gsub(pattern = "-| ", replacement = "_", x = tolower(x)) } + +#' Check if the parameters match the parameterisation used in R +#' +#' @description Parameter names need to match exactly, vector of parameters +#' can include others and parameters of interest can be a subset (i.e. checked +#' using [%in%]). +#' +#' @inheritParams new_epidist +#' +#' @return Boolean logical. +#' @keywords internal +#' @noRd +has_r_params <- function(prob_dist, prob_dist_params) { + if (is.na(prob_dist) || anyNA(prob_dist_params)) { + return(FALSE) + } + if (prob_dist %in% c("gamma", "weibull")) { + out <- all(c("shape", "scale") %in% names(prob_dist_params)) + return(out) + } + if (prob_dist == "lnorm") { + out <- all(c("meanlog", "sdlog") %in% names(prob_dist_params)) + return(out) + } + if (prob_dist == "nbinom") { + out <- all(c("mean", "dispersion") %in% names(prob_dist_params)) + return(out) + } + if (prob_dist %in% c("geom", "pois")) { + out <- "mean" %in% names(prob_dist_params) + return(out) + } + return(FALSE) From e8ac6484fb35f6422e04e8b2465254e5bec2b214 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 12:24:29 +0100 Subject: [PATCH 12/72] updated epidist helper functions (removed outdated nesting) --- R/epidist_utils.R | 62 +++++++++++++++-------------------------------- 1 file changed, 20 insertions(+), 42 deletions(-) diff --git a/R/epidist_utils.R b/R/epidist_utils.R index 9c0e5cba1..b18f08747 100644 --- a/R/epidist_utils.R +++ b/R/epidist_utils.R @@ -290,23 +290,9 @@ create_epidist_summary_stats <- function(mean = NA_real_, NA_real_ ), median_ci = NA_real_, - dispersion = NA_real_, - dispersion_ci_limits = c( - NA_real_, - NA_real_ - ), - dispersion_ci = NA_real_, lower_range = NA_real_, upper_range = NA_real_, - quantiles = c( - q_2.5 = NA_real_, - q_5 = NA_real_, - q_25 = NA_real_, - q_50 = NA_real_, - q_75 = NA_real_, - q_95 = NA_real_, - q_97.5 = NA_real_ - )) { + quantiles = NA_real_) { # check input checkmate::assert_number(mean, na.ok = TRUE) checkmate::assert_numeric(mean_ci_limits, len = 2, any.missing = TRUE) @@ -317,39 +303,26 @@ create_epidist_summary_stats <- function(mean = NA_real_, checkmate::assert_number(median, na.ok = TRUE) checkmate::assert_numeric(median_ci_limits, len = 2, any.missing = TRUE) checkmate::assert_number(median_ci, na.ok = TRUE) - checkmate::assert_number(dispersion, na.ok = TRUE) - checkmate::assert_numeric(dispersion_ci_limits, len = 2, any.missing = TRUE) - checkmate::assert_number(dispersion_ci, na.ok = TRUE) checkmate::assert_number(lower_range, na.ok = TRUE) checkmate::assert_number(upper_range, na.ok = TRUE) checkmate::assert_numeric(quantiles) - - stopifnot( - "quantiles vector should have names with 'q_' prefix" = - !is.null(names(quantiles)) && - all(startsWith(x = names(quantiles), prefix = "q_")) - ) + if (!is.na(quantiles)) { + checkmate::assert_named(quantiles) + } # return list of summary stats list( - centre_spread = list( - mean = mean, - mean_ci_limits = mean_ci_limits, - mean_ci = mean_ci, - sd = sd, - sd_ci_limits = sd_ci_limits, - sd_ci = sd_ci, - median = median, - median_ci_limits = median_ci_limits, - median_ci = median_ci - ), + mean = mean, + mean_ci_limits = mean_ci_limits, + mean_ci = mean_ci, + sd = sd, + sd_ci_limits = sd_ci_limits, + sd_ci = sd_ci, + median = median, + median_ci_limits = median_ci_limits, + median_ci = median_ci, quantiles = quantiles, - range = list(lower_range = lower_range, upper_range = upper_range), - dispersion = list( - dispersion = dispersion, - dispersion_ci_limits = dispersion_ci_limits, - dispersion_ci = dispersion_ci - ) + range = c(lower_range, upper_range) ) } @@ -585,6 +558,10 @@ clean_epidist_params.lnorm <- function(prob_dist_params) { return(prob_dist_params) } if (all(c("meanlog", "sdlog") %in% names(prob_dist_params))) { + # remove extra parameters + param_idx <- names(prob_dist_params) %in% c("meanlog", "sdlog") + prob_dist_params <- prob_dist_params[param_idx] + # remove class attribute from prob_dist_params prob_dist_params <- unclass(prob_dist_params) @@ -785,7 +762,7 @@ clean_epidist_params.default <- function(prob_dist_params) { #' clean_epidist_name("Incubation_period") clean_epidist_name <- function(epi_dist) { out <- gsub(pattern = "_", replacement = " ", x = epi_dist, fixed = TRUE) - tolower(out) + trimws(tolower(out)) } #' Standardise the names of diseases @@ -831,3 +808,4 @@ has_r_params <- function(prob_dist, prob_dist_params) { return(out) } return(FALSE) +} From 6ef378446fba49959f759ae12028ad9d8212b66f Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 12:25:25 +0100 Subject: [PATCH 13/72] added median and dispersion conversion to calc_dist_params --- R/calc_dist_params.R | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/R/calc_dist_params.R b/R/calc_dist_params.R index 27ea5d209..7c19b66dd 100644 --- a/R/calc_dist_params.R +++ b/R/calc_dist_params.R @@ -48,24 +48,34 @@ #' ) #' } calc_dist_params <- function(prob_dist, + prob_dist_params, summary_stats, sample_size = NA) { - # extract mean and sd to see if conversion is possible - mean_sd <- c( - mean = summary_stats$centre_spread$mean, - sd = summary_stats$centre_spread$sd - ) - - # convert percentile names to numbers - percentiles <- get_percentiles(summary_stats$quantiles) + if (is.na(prob_dist)) { + message( + "No adequate summary statistics available to calculate the parameters ", + "of the ", prob_dist, " distribution" + ) + return(NA) + } + if (!is.null(summary_stats$quantiles)) { + # convert percentile names to numbers + percentiles <- get_percentiles(summary_stats$quantiles) + } else { + percentiles <- NA + } # extract median and range to calculate parameters as third choice median_range <- c( - median = summary_stats$centre_spread$median, + median = summary_stats$median, unlist(summary_stats$range) ) - if (!anyNA(mean_sd)) { + # extract dispersion + disp <- unname(prob_dist_params[names(prob_dist_params) == "dispersion"]) + + # convert from mean and sd + if (is.numeric(summary_stats$mean) && is.numeric(summary_stats$sd)) { # unlist and remove NAs summary_stats_ <- unlist(summary_stats) summary_stats_ <- summary_stats_[!is.na(summary_stats_)] @@ -87,6 +97,11 @@ calc_dist_params <- function(prob_dist, convert_summary_stats_to_params, args = args )) + } else if (is.numeric(summary_stats$median) && is.numeric(disp)) { + med <- summary_stats$median + meanlog <- log(med / sqrt(1 + disp^2)) + sdlog <- sqrt(log(1 + disp^2)) + prob_dist_params <- c(meanlog = meanlog, sdlog = sdlog) } else if (!anyNA(percentiles)) { # calculate the parameters from the percentiles # percentiles required to be [0, 1] so divide by 100 @@ -96,7 +111,8 @@ calc_dist_params <- function(prob_dist, distribution = prob_dist, percentiles = as.numeric(names(percentiles)) / 100 ) - } else if (!anyNA(median_range) && !is.na(sample_size)) { + } else if (all(is.numeric(median_range)) && length(median_range) == 3 && + !is.na(sample_size)) { prob_dist_params <- extract_param( type = "range", values = median_range, @@ -113,4 +129,4 @@ calc_dist_params <- function(prob_dist, # return params prob_dist_params -} +} \ No newline at end of file From 67ab1f2ee82c1ecdddb9c14ad04b20b584fd855a Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 12:25:39 +0100 Subject: [PATCH 14/72] updated calc_dist_params documentation --- man/calc_dist_params.Rd | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/man/calc_dist_params.Rd b/man/calc_dist_params.Rd index c31fae687..a9c95ddfa 100644 --- a/man/calc_dist_params.Rd +++ b/man/calc_dist_params.Rd @@ -5,7 +5,7 @@ \title{Calculate the parameters of a probability distribution from a list of summary statistics} \usage{ -calc_dist_params(prob_dist, summary_stats, sample_size = NA) +calc_dist_params(prob_dist, prob_dist_params, summary_stats, sample_size = NA) } \arguments{ \item{prob_dist}{A character string specifying the probability @@ -13,6 +13,9 @@ distribution. This should match the R naming convention of probability distributions (e.g. lognormal is lnorm, negative binomial is nbinom, and geometric is geom).} +\item{prob_dist_params}{A named vector of probability distribution +parameters.} + \item{summary_stats}{A list of summary statistics, use \code{\link[=create_epidist_summary_stats]{create_epidist_summary_stats()}} to create list. This list can include summary statistics about the inferred distribution such as it's mean and From d959b5551a0fb850d7e7f27ae5f31e63f2acf76a Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 12:26:12 +0100 Subject: [PATCH 15/72] removed outdated percentiles formatting in get_percentiles (no longer needed since db update) --- R/get_percentiles.R | 9 --------- 1 file changed, 9 deletions(-) diff --git a/R/get_percentiles.R b/R/get_percentiles.R index 09fed8845..ac51b23f5 100644 --- a/R/get_percentiles.R +++ b/R/get_percentiles.R @@ -31,15 +31,6 @@ get_percentiles <- function(percentiles) { # check input checkmate::assert_numeric(percentiles, names = "unique") - - # change percentile names to give correct numbers - names(percentiles) <- gsub( - pattern = "q_", - replacement = "", - x = names(percentiles), - fixed = TRUE - ) - checkmate::assert_numeric( as.numeric(names(percentiles)), lower = 0, From 83bec1870d31e72bfdd1c62c533ce41ea2a0f12c Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 12:26:27 +0100 Subject: [PATCH 16/72] updated create_epidist_summary_stats documentation --- man/create_epidist_summary_stats.Rd | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/man/create_epidist_summary_stats.Rd b/man/create_epidist_summary_stats.Rd index c98174ed1..52030f736 100644 --- a/man/create_epidist_summary_stats.Rd +++ b/man/create_epidist_summary_stats.Rd @@ -14,13 +14,9 @@ create_epidist_summary_stats( median = NA_real_, median_ci_limits = c(NA_real_, NA_real_), median_ci = NA_real_, - dispersion = NA_real_, - dispersion_ci_limits = c(NA_real_, NA_real_), - dispersion_ci = NA_real_, lower_range = NA_real_, upper_range = NA_real_, - quantiles = c(q_2.5 = NA_real_, q_5 = NA_real_, q_25 = NA_real_, q_50 = NA_real_, q_75 - = NA_real_, q_95 = NA_real_, q_97.5 = NA_real_) + quantiles = NA_real_ ) } \arguments{ @@ -50,14 +46,6 @@ interval around the median.} \item{median_ci}{A \code{numeric} specifying the confidence interval width of the median.} -\item{dispersion}{A \code{numeric} of the dispersion parameter of a distribution.} - -\item{dispersion_ci_limits}{A \code{numeric} vector of length two of the -confidence interval around the dispersion.} - -\item{dispersion_ci}{A \code{numeric} specifying the confidence interval -width of the dispersion parameter.} - \item{lower_range}{The lower range of the data, used to infer the parameters of the distribution when not provided.} @@ -67,6 +55,14 @@ of the distribution when not provided.} \item{quantiles}{A \code{numeric} vector of the quantiles for the distribution. If quantiles are not provided a default empty vector with the 2.5th, 5th, 25th, 75th, 95th, 97.5th quantiles are supplied.} + +\item{dispersion}{A \code{numeric} of the dispersion parameter of a distribution.} + +\item{dispersion_ci_limits}{A \code{numeric} vector of length two of the +confidence interval around the dispersion.} + +\item{dispersion_ci}{A \code{numeric} specifying the confidence interval +width of the dispersion parameter.} } \value{ A nested list of summary statistics. The highest level are From 3f33977438ee90ee4319ce7f2d7a19630bdb994c Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 14:23:15 +0100 Subject: [PATCH 17/72] removed epiparam functions (constructor, validator, print, format, is_epiparam, summary, head, tail) --- R/epiparam.R | 349 --------------------------------------- man/epiparam.Rd | 53 ------ man/format.epiparam.Rd | 23 --- man/head.epiparam.Rd | 26 --- man/is_epiparam.Rd | 23 --- man/new_epiparam.Rd | 23 --- man/print.epiparam.Rd | 23 --- man/summary.epiparam.Rd | 23 --- man/validate_epiparam.Rd | 24 --- 9 files changed, 567 deletions(-) delete mode 100644 man/epiparam.Rd delete mode 100644 man/format.epiparam.Rd delete mode 100644 man/head.epiparam.Rd delete mode 100644 man/is_epiparam.Rd delete mode 100644 man/new_epiparam.Rd delete mode 100644 man/print.epiparam.Rd delete mode 100644 man/summary.epiparam.Rd delete mode 100644 man/validate_epiparam.Rd diff --git a/R/epiparam.R b/R/epiparam.R index b5d6d3868..6f1304e48 100644 --- a/R/epiparam.R +++ b/R/epiparam.R @@ -1,352 +1,3 @@ -#' Constructor for `` class -#' -#' @description The constructor reads the data stored internally in the package -#' and subsets by epidemiological distribution (`epi_dist`). -#' -#' @inheritParams epidist -#' -#' @inherit epiparam return -#' @keywords internal -#' -#' @examples -#' eparam <- epiparameter:::new_epiparam("all") -new_epiparam <- function(epi_dist) { - # check input - checkmate::assert_string(epi_dist) - - # read in library - paramsJSON <- jsonlite::read_json( - path = system.file( - "extdata", - "parameters.json", - package = "epiparameter", - mustWork = TRUE - ) - ) - - # collapse nested lists into vectors (JSON arrays) - paramsJSON <- lapply(paramsJSON, function(x) { # nolint - lapply(x, unlist) - }) - - # convert nulls to NA - paramsJSON <- lapply(paramsJSON, function(x) { # nolint - lapply(x, function(y) if (is.null(y)) NA else y) - }) - - # pre-allocate data.frame - num_col <- length(names(paramsJSON[[1]])) - num_row <- length(paramsJSON) - params <- as.data.frame(matrix( - nrow = num_row, - ncol = num_col, - dimnames = list(NULL, names(paramsJSON[[1]])) - )) - - # col-wise filling to accommodate nested cells - for (i in seq_along(paramsJSON[[1]])) { - params[[i]] <- I(lapply(paramsJSON, "[[", i)) - } - - # ensure type and length correctness - numeric_col <- epiparam_col_type(epiparam = params, col_type = "numeric") - params[numeric_col] <- vapply( - params[numeric_col], - FUN = as.numeric, FUN.VALUE = numeric(nrow(params)) - ) - char_col <- epiparam_col_type(params, col_type = "character") - params[char_col] <- vapply( - params[char_col], - FUN = function(x) as.character(unlist(x)), - FUN.VALUE = character(nrow(params)) - ) - logic_col <- epiparam_col_type(params, col_type = "logical") - params[logic_col] <- vapply( - params[logic_col], - FUN = as.logical, FUN.VALUE = logical(nrow(params)) - ) - ci_cols_index <- grep(pattern = "_ci_limits$", colnames(params)) - for (i in ci_cols_index) { - params[[i]] <- lapply(params[[i]], function(x) { - if (all(is.na(x)) || length(x) == 1) { - c(NA_real_, NA_real_) - } else { - as.numeric(x) - } - }) - } - - # order params by pathogen, delay dist and study - params <- params[order( - tolower(params$disease), - tolower(params$epi_distribution), - tolower(params$author), - method = "radix" - ), ] - - if (epi_dist != "all") { - # filter by delay distribution - params <- params[params$epi_distribution == epi_dist, ] - } - - # reset indexing of rows - rownames(params) <- NULL - - structure(params, class = c("epiparam", "data.frame")) -} - -#' Create an `` object -#' -#' @description The `` class holds information on epidemiological -#' distribution and their estimated parameters as well as other information and -#' metadata. This library of epidemiological parameters is compiled from -#' primary literature sources. An `` object can be used to compare the -#' availability of distribution for a certain disease or pathogen, or refine -#' by, for example, region or sample size. Additionally, the `` class -#' can be subset and converted into `` or `` objects to -#' the be used in epidemiological analysis in which a delay distribution or -#' offspring distribution is required. -#' -#' The [epiparam()] function reads the library of epidemiological parameters -#' from `{epiparameter}` into memory and stores it as an `` object. -#' -#' @details The `` object has certain protected fields, and thus if -#' one of these protected fields is removed when subsetting columns an error -#' will be returned. The subsetting checks are carried out by -#' [validate_epiparam()]. -#' -#' Data can be added to `` objects by using [bind_epiparam()], this -#' can add information from ``, ``, ``, lists -#' of `` objects, or data frames with the correct columns to an -#' existing `` object. -#' -#' @inheritParams epidist -#' -#' @return An `` object. -#' @export -#' -#' @examples -#' # the object can be made without arguments -#' eparam <- epiparam() -#' -#' # specifying incubation periods -#' incub_eparam <- epiparam("incubation") -#' -#' # subset by disease -#' influenza_dists <- eparam[eparam$disease == "influenza", ] -epiparam <- function(epi_dist = c( - "all", - "incubation_period", - "onset_to_hospitalisation", - "onset_to_death", - "serial_interval", - "generation_time", - "offspring_distribution" - )) { - # check input - epi_dist <- match.arg(arg = epi_dist, several.ok = FALSE) - - # create epiparam object - epiparam <- new_epiparam(epi_dist = epi_dist) - - # validate epiparam object - validate_epiparam(epiparam) - - # return epiparam object - epiparam -} - -#' Validator for `` class -#' -#' @param epiparam An `` object. -#' @param reconstruct A boolean `logical` determining whether the validation -#' should be class specific. When `TRUE` the input object must be of type -#' `` (default), when `FALSE` the input object can be of another -#' class, e.g. data frame. This argument is used in reconstruction operations -#' see [`epiparam_reconstruct()`]. -#' -#' @return Invisibly returns an ``. Called for side-effects -#' (errors when invalid `` object is provided). -validate_epiparam <- function(epiparam, reconstruct = FALSE) { - if (!is_epiparam(epiparam) && isFALSE(reconstruct)) { - stop("Object should be of class epiparam", call. = FALSE) - } - - col_type <- vapply(epiparam, class, FUN.VALUE = character(1)) - # check for class invariants - stopifnot( - "epiparam object does not contain the correct columns" = - epiparam_fields() %in% colnames(epiparam), - "incorrect data type in character fields" = - all( - "character" == - col_type[epiparam_col_type(epiparam, col_type = "character")] - ), - "incorrect data type in numeric fields" = - all( - col_type[epiparam_col_type(epiparam, col_type = "numeric")] %in% - c("numeric", "integer") - ), - "incorrect data type in boolean logical fields" = - all( - "logical" == col_type[epiparam_col_type(epiparam, col_type = "logical")] - ), - "year needs to be greater than 0" = - all(epiparam$year > 0 | is.na(epiparam$year)) - ) - - check_limits <- apply(epiparam, - MARGIN = 2, FUN = function(x) { # nolint - vapply(x, function(y) { - length(y) == 2 && is.numeric(y) - }, FUN.VALUE = logical(1)) - }, - simplify = FALSE - ) - - check_limits <- all(unlist( - check_limits[grep(pattern = "_limits$", x = names(check_limits))] - )) - - if (!check_limits) { - stop("incorrect data type in CI limits fields", call. = FALSE) - } - - invisible(epiparam) -} - -#' Print method for `` class -#' -#' @param x An `` object. -#' @inheritParams print.epidist -#' -#' @return Invisibly returns an ``. Called for side-effects. -#' @export -#' -#' @examples -#' epiparam <- epiparam() -#' epiparam -print.epiparam <- function(x, ...) { - format(x, ...) -} - -#' Format method for `` class -#' -#' @inheritParams print.epiparam -#' -#' @return Invisibly returns an ``. Called for printing side-effects. -#' @export -#' -#' @examples -#' x <- epiparam() -#' format(x) -format.epiparam <- function(x, ...) { - validate_epiparam(x) - summ <- summary(x) - writeLines( - c( - sprintf("Epiparam object"), - sprintf("Number of distributions in library: %s", summ$num_entries), - sprintf("Number of diseases: %s", summ$num_diseases), - sprintf("Number of delay distributions: %s", summ$num_delay_dist), - sprintf("Number of offspring distributions: %s", summ$num_offspring_dist), - sprintf("Number of studies in library: %s", summ$num_studies), - sprintf("") - ) - ) - print(head(x)[c("disease", "epi_distribution", "prob_distribution")]) - remaining_rows <- max(0, nrow(x) - 6) - remaining_cols <- max(0, ncol(x) - 3) - writeLines( - sprintf( - "<%s more rows & %s more cols not shown>", - remaining_rows, - remaining_cols - ) - ) - invisible(x) -} - -#' Check object is an `` -#' -#' @inheritParams is_epidist -#' -#' @return A boolean `logical`, `TRUE` if the object is an `` and -#' `FALSE` if not. -#' @export -#' -#' @examples -#' eparam <- epiparam() -#' -#' is_epiparam(eparam) -is_epiparam <- function(x) { - inherits(x, "epiparam") -} - -#' Summary method for `` class -#' -#' @param object An `` object. -#' @inheritParams is_parameterised -#' -#' @return data frame of information -#' @export -#' -#' @examples -#' x <- epiparam() -#' summary(x) -summary.epiparam <- function(object, ...) { - chkDots(...) - num_entries <- nrow(object) - num_diseases <- length(unique(object$disease)) - num_delay_dist <- sum( - object$epi_distribution %in% c( - "incubation_period", "generation_time", - "serial_interval", "onset_to_death" - ) - ) - num_offspring_dist <- sum( - object$epi_distribution == "offspring_distribution" - ) - num_studies <- length(unique(object$DOI)) - num_cont_dist <- nrow(object) - sum(object$discretised) - num_disc_dist <- sum(object$discetised) - num_vector_borne <- sum(object$extrinsic) - # return epiparam summary - list( - num_entries = num_entries, - num_diseases = num_diseases, - num_delay_dist = num_delay_dist, - num_offspring_dist = num_offspring_dist, - num_studies = num_studies, - num_continuous_distributions = num_cont_dist, - num_discrete_distributions = num_disc_dist, - num_vector_borne_diseases = num_vector_borne - ) -} - -#' [head()] and [tail()] methods for `` class -#' -#' @inheritParams print.epiparam -#' -#' @return Data frame -#' @export -#' -#' @importFrom utils head -#' @importFrom utils tail -#' -#' @examples -#' head(epiparam()) -#' tail(epiparam()) -head.epiparam <- function(x, ...) { - utils::head(as.data.frame(x), ...) -} - -#' @rdname head.epiparam -#' @export -tail.epiparam <- function(x, ...) { - utils::tail(as.data.frame(x), ...) -} - #' State column names of an `` object #' #' @return `Character` vector. diff --git a/man/epiparam.Rd b/man/epiparam.Rd deleted file mode 100644 index ef6479177..000000000 --- a/man/epiparam.Rd +++ /dev/null @@ -1,53 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam.R -\name{epiparam} -\alias{epiparam} -\title{Create an \verb{} object} -\usage{ -epiparam( - epi_dist = c("all", "incubation_period", "onset_to_hospitalisation", "onset_to_death", - "serial_interval", "generation_time", "offspring_distribution") -) -} -\arguments{ -\item{epi_dist}{A \code{character} string with the name of the -epidemiological distribution type.} -} -\value{ -An \verb{} object. -} -\description{ -The \verb{} class holds information on epidemiological -distribution and their estimated parameters as well as other information and -metadata. This library of epidemiological parameters is compiled from -primary literature sources. An \verb{} object can be used to compare the -availability of distribution for a certain disease or pathogen, or refine -by, for example, region or sample size. Additionally, the \verb{} class -can be subset and converted into \verb{} or \verb{} objects to -the be used in epidemiological analysis in which a delay distribution or -offspring distribution is required. - -The \code{\link[=epiparam]{epiparam()}} function reads the library of epidemiological parameters -from \code{{epiparameter}} into memory and stores it as an \verb{} object. -} -\details{ -The \verb{} object has certain protected fields, and thus if -one of these protected fields is removed when subsetting columns an error -will be returned. The subsetting checks are carried out by -\code{\link[=validate_epiparam]{validate_epiparam()}}. - -Data can be added to \verb{} objects by using \code{\link[=bind_epiparam]{bind_epiparam()}}, this -can add information from \verb{}, \verb{}, \verb{}, lists -of \verb{} objects, or data frames with the correct columns to an -existing \verb{} object. -} -\examples{ -# the object can be made without arguments -eparam <- epiparam() - -# specifying incubation periods -incub_eparam <- epiparam("incubation") - -# subset by disease -influenza_dists <- eparam[eparam$disease == "influenza", ] -} diff --git a/man/format.epiparam.Rd b/man/format.epiparam.Rd deleted file mode 100644 index b57e13924..000000000 --- a/man/format.epiparam.Rd +++ /dev/null @@ -1,23 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam.R -\name{format.epiparam} -\alias{format.epiparam} -\title{Format method for \verb{} class} -\usage{ -\method{format}{epiparam}(x, ...) -} -\arguments{ -\item{x}{An \verb{} object.} - -\item{...}{\link{dots} Extra arguments passed to or from other methods.} -} -\value{ -Invisibly returns an \verb{}. Called for printing side-effects. -} -\description{ -Format method for \verb{} class -} -\examples{ -x <- epiparam() -format(x) -} diff --git a/man/head.epiparam.Rd b/man/head.epiparam.Rd deleted file mode 100644 index 7ca77d26c..000000000 --- a/man/head.epiparam.Rd +++ /dev/null @@ -1,26 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam.R -\name{head.epiparam} -\alias{head.epiparam} -\alias{tail.epiparam} -\title{\code{\link[=head]{head()}} and \code{\link[=tail]{tail()}} methods for \verb{} class} -\usage{ -\method{head}{epiparam}(x, ...) - -\method{tail}{epiparam}(x, ...) -} -\arguments{ -\item{x}{An \verb{} object.} - -\item{...}{\link{dots} Extra arguments passed to or from other methods.} -} -\value{ -Data frame -} -\description{ -\code{\link[=head]{head()}} and \code{\link[=tail]{tail()}} methods for \verb{} class -} -\examples{ -head(epiparam()) -tail(epiparam()) -} diff --git a/man/is_epiparam.Rd b/man/is_epiparam.Rd deleted file mode 100644 index 7d347a085..000000000 --- a/man/is_epiparam.Rd +++ /dev/null @@ -1,23 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam.R -\name{is_epiparam} -\alias{is_epiparam} -\title{Check object is an \verb{}} -\usage{ -is_epiparam(x) -} -\arguments{ -\item{x}{An \R object.} -} -\value{ -A boolean \code{logical}, \code{TRUE} if the object is an \verb{} and -\code{FALSE} if not. -} -\description{ -Check object is an \verb{} -} -\examples{ -eparam <- epiparam() - -is_epiparam(eparam) -} diff --git a/man/new_epiparam.Rd b/man/new_epiparam.Rd deleted file mode 100644 index 5d9523c45..000000000 --- a/man/new_epiparam.Rd +++ /dev/null @@ -1,23 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam.R -\name{new_epiparam} -\alias{new_epiparam} -\title{Constructor for \verb{} class} -\usage{ -new_epiparam(epi_dist) -} -\arguments{ -\item{epi_dist}{A \code{character} string with the name of the -epidemiological distribution type.} -} -\value{ -An \verb{} object. -} -\description{ -The constructor reads the data stored internally in the package -and subsets by epidemiological distribution (\code{epi_dist}). -} -\examples{ -eparam <- epiparameter:::new_epiparam("all") -} -\keyword{internal} diff --git a/man/print.epiparam.Rd b/man/print.epiparam.Rd deleted file mode 100644 index 60a31fad7..000000000 --- a/man/print.epiparam.Rd +++ /dev/null @@ -1,23 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam.R -\name{print.epiparam} -\alias{print.epiparam} -\title{Print method for \verb{} class} -\usage{ -\method{print}{epiparam}(x, ...) -} -\arguments{ -\item{x}{An \verb{} object.} - -\item{...}{\link{dots} Extra arguments passed to or from other methods.} -} -\value{ -Invisibly returns an \verb{}. Called for side-effects. -} -\description{ -Print method for \verb{} class -} -\examples{ -epiparam <- epiparam() -epiparam -} diff --git a/man/summary.epiparam.Rd b/man/summary.epiparam.Rd deleted file mode 100644 index a5024521e..000000000 --- a/man/summary.epiparam.Rd +++ /dev/null @@ -1,23 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam.R -\name{summary.epiparam} -\alias{summary.epiparam} -\title{Summary method for \verb{} class} -\usage{ -\method{summary}{epiparam}(object, ...) -} -\arguments{ -\item{object}{An \verb{} object.} - -\item{...}{\link{dots} not used, extra arguments supplied will cause a warning.} -} -\value{ -data frame of information -} -\description{ -Summary method for \verb{} class -} -\examples{ -x <- epiparam() -summary(x) -} diff --git a/man/validate_epiparam.Rd b/man/validate_epiparam.Rd deleted file mode 100644 index 303efd059..000000000 --- a/man/validate_epiparam.Rd +++ /dev/null @@ -1,24 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam.R -\name{validate_epiparam} -\alias{validate_epiparam} -\title{Validator for \verb{} class} -\usage{ -validate_epiparam(epiparam, reconstruct = FALSE) -} -\arguments{ -\item{epiparam}{An \verb{} object.} - -\item{reconstruct}{A boolean \code{logical} determining whether the validation -should be class specific. When \code{TRUE} the input object must be of type -\verb{} (default), when \code{FALSE} the input object can be of another -class, e.g. data frame. This argument is used in reconstruction operations -see \code{\link[=epiparam_reconstruct]{epiparam_reconstruct()}}.} -} -\value{ -Invisibly returns an \verb{}. Called for side-effects -(errors when invalid \verb{} object is provided). -} -\description{ -Validator for \verb{} class -} From c0aa33dda78e3334ca496b3d048222282fb3c8b1 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 14:26:12 +0100 Subject: [PATCH 18/72] removed epiparam_fields and epiparam_col_type functions --- R/epiparam.R | 71 ---------------------------------------------------- 1 file changed, 71 deletions(-) delete mode 100644 R/epiparam.R diff --git a/R/epiparam.R b/R/epiparam.R deleted file mode 100644 index 6f1304e48..000000000 --- a/R/epiparam.R +++ /dev/null @@ -1,71 +0,0 @@ -#' State column names of an `` object -#' -#' @return `Character` vector. -#' @keywords internal -#' @noRd -epiparam_fields <- function() { - c( - "disease", "pathogen", "epi_distribution", "author", "title", "journal", - "year", "sample_size", "region", "transmission_mode", "vector", - "extrinsic", "prob_distribution", "inference_method", "mean", - "mean_ci_limits", "mean_ci", "sd", "sd_ci_limits", "sd_ci", "quantile_2.5", - "quantile_5", "quantile_25", "median", "median_ci_limits", "median_ci", - "quantile_75", "quantile_87.5", "quantile_95", "quantile_97.5", - "lower_range", "upper_range", "shape", "shape_ci_limits", "shape_ci", - "scale", "scale_ci_limits", "scale_ci", "meanlog", "meanlog_ci_limits", - "meanlog_ci", "sdlog", "sdlog_ci_limits", "sdlog_ci", "dispersion", - "dispersion_ci_limits", "dispersion_ci", "precision", - "precision_ci_limits", "precision_ci", "truncation", "discretised", - "censored", "right_truncated", "phase_bias_adjusted", "notes", "PMID", - "DOI" - ) -} - -#' State which columns of `` object contain specified data type -#' -#' @return `Numeric` vector. -#' @keywords internal -#' @noRd -epiparam_col_type <- function(epiparam, - col_type = c( - "numeric", - "character", - "logical", - "list" - )) { - col_type <- match.arg(col_type) - - out <- switch(col_type, - numeric = which( - colnames(epiparam) %in% c( - "year", "sample_size", "mean", "mean_ci", "sd", "sd_ci", "quantile_2.5", - "quantile_5", "quantile_25", "median", "median_ci", "quantile_75", - "quantile_87.5", "quantile_95", "quantile_97.5", "lower_range", - "upper_range", "shape", "shape_ci", "scale", "scale_ci", "meanlog", - "meanlog_ci", "sdlog", "sdlog_ci", "dispersion", "dispersion_ci", - "precision", "precision_ci", "truncation", "PMID" - ) - ), - character = which( - colnames(epiparam) %in% c( - "disease", "pathogen", "epi_distribution", "title", "journal", - "region", "transmission_mode", "vector", "prob_distribution", - "inference_method", "notes", "DOI" - ) - ), - logical = which( - colnames(epiparam) %in% c( - "extrinsic", "discretised", "censored", "right_truncated", - "phase_bias_adjusted" - ) - ), - list = which( - colnames(epiparam) %in% c( - "author", "mean_ci_limits", "sd_ci_limits", "median_ci_limits", - "shape_ci_limits", "scale_ci_limits", "meanlog_ci_limits", - "sdlog_ci_limits", "dispersion_ci_limits", "precision_ci_limits" - ) - ) - ) - out -} From 697d0a2e4b3b4f4a93702075e1de1cbd7bf7bb64 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 14:37:28 +0100 Subject: [PATCH 19/72] removed epiparam utility functions (as_epidist, make_epidist, as_epiparam, add_ci_limits) --- R/epiparam_utils.R | 433 -------------------------------------------- man/as_epidist.Rd | 29 --- man/as_epiparam.Rd | 26 --- man/make_epidist.Rd | 21 --- 4 files changed, 509 deletions(-) delete mode 100644 man/as_epidist.Rd delete mode 100644 man/as_epiparam.Rd delete mode 100644 man/make_epidist.Rd diff --git a/R/epiparam_utils.R b/R/epiparam_utils.R index f1a2f2aa9..4ef0e4bdd 100644 --- a/R/epiparam_utils.R +++ b/R/epiparam_utils.R @@ -1,436 +1,3 @@ -#' Convert `` to `` -#' -#' @description Convert the entries (rows) of an `` object to one or -#' list of several `` objects. -#' -#' Epidemiological distributions and parameters can be converted from database -#' entries (i.e. rows in ``) into `` objects in order -#' use the distribution functions (see `?epidist_distribution_functions`) and -#' and other methods of the `` class. -#' -#' @param x A `` object. -#' -#' @return An `` object or a list of `` objects. -#' @export -#' -#' @examples -#' \donttest{ -#' eparam <- epiparam() -#' as_epidist(eparam[1, ]) -#' } -as_epidist <- function(x) { - # check input - validate_epiparam(x) - - # convert each epiparam row into an epidist object - out <- apply(x, 1, make_epidist) - - # remove names of list - names(out) <- NULL - - # unpack from list if only one epidist - if (length(out) == 1) out <- out[[1]] - - # return list of epidist objects - out -} - -#' Create an `` object from a list of input from an -#' `` object -#' -#' @description Unpacks list of inputs from an `` object into -#' the `` helper, including the parameters and uncertainty from -#' the correct type of probability distribution. -#' -#' @param x List of data to be used to construct an `` object. -#' -#' @inherit epidist return -#' @keywords internal -make_epidist <- function(x) { - # determine parameters - if (x$prob_distribution %in% c("gamma", "weibull")) { - parameters <- c(shape = x$shape, scale = x$scale) - uncertainty <- list( - shape = create_epidist_uncertainty( - ci_limits = x$shape_ci_limits, - ci = x$shape_ci, - ci_type = ifelse( - test = x$inference_method == "mle", - yes = "confidence interval", - no = "credible interval" - ) - ), - scale = create_epidist_uncertainty( - ci_limits = x$scale_ci_limits, - ci = x$scale_ci, - ci_type = ifelse( - test = x$inference_method == "mle", - yes = "confidence interval", - no = "credible interval" - ) - ) - ) - } else if (x$prob_distribution %in% "lnorm") { - parameters <- c(meanlog = x$meanlog, sdlog = x$sdlog) - uncertainty <- list( - meanlog = create_epidist_uncertainty( - ci_limits = x$meanlog_ci_limits, - ci = x$meanlog_ci, - ci_type = ifelse( - test = x$inference_method == "mle", - yes = "confidence interval", - no = "credible interval" - ) - ), - sdlog = create_epidist_uncertainty( - ci_limits = x$sdlog_ci_limits, - ci = x$sdlog_ci, - ci_type = ifelse( - test = x$inference_method == "mle", - yes = "confidence interval", - no = "credible interval" - ) - ) - ) - } else if (x$prob_distribution %in% "nbinom") { - parameters <- c(mean = x$mean, dispersion = x$dispersion) - uncertainty <- list( - mean = create_epidist_uncertainty( - ci_limits = x$mean_ci_limits, - ci = x$mean_ci, - ci_type = ifelse( - test = x$inference_method == "mle", - yes = "confidence interval", - no = "credible interval" - ) - ), - dispersion = create_epidist_uncertainty( - ci_limits = x$dispersion_ci_limits, - ci = x$dispersion_ci, - ci_type = ifelse( - test = x$inference_method == "mle", - yes = "confidence interval", - no = "credible interval" - ) - ) - ) - } else if (x$prob_distribution %in% c("pois", "geom")) { - parameters <- c(mean = x$mean) - uncertainty <- list( - mean = create_epidist_uncertainty( - ci_limits = x$mean_ci_limits, - ci = x$mean_ci, - ci_type = ifelse( - test = x$inference_method == "mle", - yes = "confidence interval", - no = "credible interval" - ) - ) - ) - } else if (is.na(x$prob_distribution)) { - parameters <- NA_real_ - uncertainty <- create_epidist_uncertainty() - } else { - stop("Distribution in epiparam object not recognised", call. = FALSE) - } - - epidist( - disease = x$disease, - pathogen = x$pathogen, - epi_dist = x$epi_distribution, - prob_distribution = x$prob_distribution, - prob_distribution_params = parameters, - uncertainty = uncertainty, - summary_stats = create_epidist_summary_stats( - mean = x$mean, - mean_ci_limits = x$mean_ci_limits, - mean_ci = x$mean_ci, - sd = x$sd, - sd_ci_limits = x$sd_ci_limits, - sd_ci = x$sd_ci, - median = x$median, - median_ci_limits = x$median_ci_limits, - median_ci = x$median_ci, - dispersion = x$dispersion, - dispersion_ci_limits = x$dispersion_ci_limits, - dispersion_ci = x$dispersion_ci, - lower_range = x$lower_range, - upper_range = x$upper_range, - quantiles = c( - q_2.5 = x$quantile_2.5, - q_5 = x$quantile_5, - q_25 = x$quantile_25, - q_75 = x$quantile_75, - q_87.5 = x$quantile_87.5, - q_95 = x$quantile_95, - q_97.5 = x$quantile_97.5 - ) - ), - citation = create_epidist_citation( - author = x$author, - year = x$year, - title = x$title, - journal = x$journal, - DOI = x$DOI, - PMID = x$PMID - ), - metadata = create_epidist_metadata( - sample_size = x$sample_size, - region = x$region, - transmission_mode = x$transmission_mode, - vector = x$vector - ), - method_assess = create_epidist_method_assess( - censored = x$censored, - right_truncated = x$right_truncated, - phase_bias_adjusted = x$phase_bias_adjusted - ), - discretise = x$discretised, - truncation = x$truncation, - notes = x$notes - ) -} - -#' Convert an `` object to an `` object -#' -#' @inheritParams print.epidist -#' -#' @return An `` object. -#' @export -#' -#' @examples -#' edist <- epidist( -#' disease = "ebola", -#' epi_dist = "incubation_period", -#' prob_distribution = "lnorm", -#' prob_distribution_params = c(meanlog = 1, sdlog = 1) -#' ) -#' as_epiparam(edist) -as_epiparam <- function(x) { - # for vb_epidist or list of epidists call as_epiparam recursively - if (!is_epidist(x)) { - eparam <- as.data.frame(matrix(nrow = length(x), ncol = 58)) - for (i in seq_along(x)) { - if (i == 1) colnames(eparam) <- colnames(as_epiparam(x[[i]])) - eparam[i, ] <- as_epiparam(x[[i]]) - } - class(eparam) <- c("epiparam", "data.frame") - return(eparam) - } - - # check input - validate_epidist(x) - - params <- get_parameters(x) - prob_dist <- family(x) - - if (inherits(x$prob_dist, "distcrete")) { - discretised <- TRUE - truncation <- NA_real_ - } else { - discretised <- FALSE - if (!("upper" %in% names(params))) { - truncation <- NA_real_ - } else { - truncation <- params[["upper"]] - } - } - - # standardise distribution parameterisation - class(params) <- prob_dist - params <- clean_epidist_params(prob_dist_params = params) - - if (anyNA(x$uncertainty)) { - x$uncertainty <- lapply( - x$uncertainty, - function(x) { - list(ci_limits = NA_real_, ci = NA_real_, ci_type = NA_character_) - } - ) - } - - author <- ifelse( - test = is.null(x$citation$author), - yes = NA_character_, - no = Reduce( - f = function(x, y) { - paste(x, y, sep = "_") - }, - x = x$citation$author - ) - ) - - ## TODO: look into redudancy of median and quantile 50 in epidist and - ## epiparam class - - eparam <- data.frame( - disease = x$disease$disease, - pathogen = x$disease$pathogen, - epi_distribution = x$epi_dist, - author = author, - title = ifelse( - test = is.null(x$citation$title), - yes = NA_character_, - no = x$citation$title - ), - journal = ifelse( - test = is.null(x$citation$journal), - yes = NA_character_, - no = x$citation$journal - ), - year = ifelse( - test = is.null(x$citation$year), - yes = NA_integer_, - no = as.numeric(x$citation$year) - ), - sample_size = x$metadata$sample_size, - region = x$metadata$region, - transmission_mode = x$metadata$transmission_mode, - vector = x$metadata$vector, - extrinsic = x$metadata$extrinsic, - prob_distribution = prob_dist, - inference_method = x$metadata$inference_method, - mean = x$summary_stats$centre_spread$mean, - mean_ci_limits = I(list(x$summary_stats$centre_spread$mean_ci_limits)), - mean_ci = x$summary_stats$centre_spread$mean_ci, - sd = x$summary_stats$centre_spread$sd, - sd_ci_limits = I(list(x$summary_stats$centre_spread$sd_ci_limits)), - sd_ci = x$summary_stats$centre_spread$sd_ci, - quantile_2.5 = unname(x$summary_stats$quantiles["q_2.5"]), - quantile_5 = unname(x$summary_stats$quantiles["q_5"]), - quantile_25 = unname(x$summary_stats$quantiles["q_25"]), - median = x$summary_stats$centre_spread$median, - median_ci_limits = I(list(x$summary_stats$centre_spread$median_ci_limits)), - median_ci = x$summary_stats$centre_spread$median_ci, - quantile_75 = unname(x$summary_stats$quantiles["q_75"]), - quantile_87.5 = unname(x$summary_stats$quantiles["q_87.5"]), - quantile_95 = unname(x$summary_stats$quantiles["q_95"]), - quantile_97.5 = unname(x$summary_stats$quantiles["q_97.5"]), - lower_range = x$summary_stats$range$lower_range, - upper_range = x$summary_stats$range$upper_range, - shape = unname(params["shape"]), - shape_ci_limits = NA, - shape_ci = ifelse( - test = is.null(x$uncertainty[["shape"]]), - yes = NA_real_, - no = x$uncertainty$shape$ci - ), - scale = unname(params["scale"]), - scale_ci_limits = NA, - scale_ci = ifelse( - test = is.null(x$uncertainty[["scale"]]), - yes = NA_real_, - no = x$uncertainty$scale$ci - ), - meanlog = unname(params["meanlog"]), - meanlog_ci_limits = NA, - meanlog_ci = ifelse( - test = is.null(x$uncertainty[["meanlog"]]), - yes = NA_real_, - no = x$uncertainty$meanlog$ci - ), - sdlog = unname(params["sdlog"]), - sdlog_ci_limits = NA, - sdlog_ci = ifelse( - test = is.null(x$uncertainty[["sdlog"]]), - yes = NA_real_, - no = x$uncertainty$sdlog$ci - ), - dispersion = unname(params["dispersion"]), - dispersion_ci_limits = NA, - dispersion_ci = ifelse( - test = is.null(x$uncertainty[["dispersion"]]), - yes = NA_real_, - no = x$uncertainty$dispersion$ci - ), - precision = unname(params["precision"]), - precision_ci_limits = NA, - precision_ci = ifelse( - test = is.null(x$uncertainty[["precision"]]), - yes = NA_real_, - no = x$uncertainty$precision$ci - ), - truncation = truncation, - discretised = discretised, - censored = x$method_assess$censored, - right_truncated = x$method_assess$right_truncated, - phase_bias_adjusted = x$method_assess$phase_bias_adjusted, - notes = x$notes, - PMID = ifelse( - test = is.null(x$citation$PMID), - yes = NA_integer_, - no = as.numeric(x$citation$PMID) - ), - DOI = ifelse( - test = is.null(x$citation$doi), - yes = NA_character_, - no = x$citation$doi - ) - ) - - # create lists for epiparam vector columns - eparam <- add_ci_limits(eparam = eparam, x = x) - - # make data an epiparam object - class(eparam) <- c("epiparam", "data.frame") - - # validate new epiparam object - validate_epiparam(eparam) - - # return epiparam object - eparam -} - -#' Adds confidence interval limits from an `epidist` object to an `epiparam` -#' data frame -#' -#' @param eparam A data frame with `` data -#' @inheritParams print.epidist -#' -#' @return A data frame containing `` data -#' @keywords internal -#' @noRd -add_ci_limits <- function(eparam, x) { - if (is.null(x$uncertainty[["shape"]])) { - eparam$shape_ci_limits <- I(list(c(NA_real_, NA_real_))) - } else { - eparam$shape_ci_limits <- list(x$uncertainty$shape$ci) - } - - if (is.null(x$uncertainty[["scale"]])) { - eparam$scale_ci_limits <- I(list(c(NA_real_, NA_real_))) - } else { - eparam$scale_ci_limits <- list(x$uncertainty$scale$ci) - } - - if (is.null(x$uncertainty[["meanlog"]])) { - eparam$meanlog_ci_limits <- I(list(c(NA_real_, NA_real_))) - } else { - eparam$meanlog_ci_limits <- list(x$uncertainty$meanlog$ci) - } - - if (is.null(x$uncertainty[["sdlog"]])) { - eparam$sdlog_ci_limits <- I(list(c(NA_real_, NA_real_))) - } else { - eparam$sdlog_ci_limits <- list(x$uncertainty$sdlog$ci) - } - - if (is.null(x$uncertainty[["dispersion"]])) { - eparam$dispersion_ci_limits <- I(list(c(NA_real_, NA_real_))) - } else { - eparam$dispersion_ci_limits <- list(x$uncertainty$dispersion$ci) - } - - if (is.null(x$uncertainty[["precision"]])) { - eparam$precision_ci_limits <- I(list(c(NA_real_, NA_real_))) - } else { - eparam$precision_ci_limits <- list(x$uncertainty$precision$ci) - } - - # return epiparam - eparam -} - #' Subset method for `` class #' #' @description If the subsetting invalidates the `` object (defined diff --git a/man/as_epidist.Rd b/man/as_epidist.Rd deleted file mode 100644 index 179dc5317..000000000 --- a/man/as_epidist.Rd +++ /dev/null @@ -1,29 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam_utils.R -\name{as_epidist} -\alias{as_epidist} -\title{Convert \verb{} to \verb{}} -\usage{ -as_epidist(x) -} -\arguments{ -\item{x}{A \verb{} object.} -} -\value{ -An \verb{} object or a list of \verb{} objects. -} -\description{ -Convert the entries (rows) of an \verb{} object to one or -list of several \verb{} objects. - -Epidemiological distributions and parameters can be converted from database -entries (i.e. rows in \verb{}) into \verb{} objects in order -use the distribution functions (see \code{?epidist_distribution_functions}) and -and other methods of the \verb{} class. -} -\examples{ -\donttest{ -eparam <- epiparam() -as_epidist(eparam[1, ]) -} -} diff --git a/man/as_epiparam.Rd b/man/as_epiparam.Rd deleted file mode 100644 index 5689f5082..000000000 --- a/man/as_epiparam.Rd +++ /dev/null @@ -1,26 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam_utils.R -\name{as_epiparam} -\alias{as_epiparam} -\title{Convert an \verb{} object to an \verb{} object} -\usage{ -as_epiparam(x) -} -\arguments{ -\item{x}{An \verb{} object.} -} -\value{ -An \verb{} object. -} -\description{ -Convert an \verb{} object to an \verb{} object -} -\examples{ -edist <- epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "lnorm", - prob_distribution_params = c(meanlog = 1, sdlog = 1) -) -as_epiparam(edist) -} diff --git a/man/make_epidist.Rd b/man/make_epidist.Rd deleted file mode 100644 index 0a38f1464..000000000 --- a/man/make_epidist.Rd +++ /dev/null @@ -1,21 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam_utils.R -\name{make_epidist} -\alias{make_epidist} -\title{Create an \verb{} object from a list of input from an -\verb{} object} -\usage{ -make_epidist(x) -} -\arguments{ -\item{x}{List of data to be used to construct an \verb{} object.} -} -\value{ -An \verb{} object. -} -\description{ -Unpacks list of inputs from an \verb{} object into -the \verb{} helper, including the parameters and uncertainty from -the correct type of probability distribution. -} -\keyword{internal} From 8ec2c53abbaa71a05693f87985a7c444a1b3f331 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 14:43:25 +0100 Subject: [PATCH 20/72] removed epiparam methods ([, names, $, epiparam_reconstruct, epiparam_can_reconstruct, df_reconstruct, dplyr_reconstruct.epiparam) --- R/epiparam_utils.R | 111 -------------------------------- man/cash-set-.epiparam.Rd | 27 -------- man/df_reconstruct.Rd | 21 ------ man/epiparam_can_reconstruct.Rd | 22 ------- man/epiparam_reconstruct.Rd | 23 ------- man/names-set-.epiparam.Rd | 24 ------- man/sub-.epiparam.Rd | 23 ------- 7 files changed, 251 deletions(-) delete mode 100644 R/epiparam_utils.R delete mode 100644 man/cash-set-.epiparam.Rd delete mode 100644 man/df_reconstruct.Rd delete mode 100644 man/epiparam_can_reconstruct.Rd delete mode 100644 man/epiparam_reconstruct.Rd delete mode 100644 man/names-set-.epiparam.Rd delete mode 100644 man/sub-.epiparam.Rd diff --git a/R/epiparam_utils.R b/R/epiparam_utils.R deleted file mode 100644 index 4ef0e4bdd..000000000 --- a/R/epiparam_utils.R +++ /dev/null @@ -1,111 +0,0 @@ -#' Subset method for `` class -#' -#' @description If the subsetting invalidates the `` object (defined -#' by its invariants, and encoded in [validate_epiparam()]) the subsetting -#' will return a data frame with a message to console stating the class of the -#' object has been converted to `data.frame` with the other attributes of the -#' class preserved. -#' -#' @inheritParams validate_epiparam -#' @inheritParams base::subset -#' -#' @return An `epiparam` object or a `data.frame` -#' @export -`[.epiparam` <- function(epiparam, ...) { - out <- NextMethod() - epiparam_reconstruct(out, epiparam) -} - -#' Set names for `` class -#' -#' @description If the modifying the names invalidates the `` object -#' (defined by its invariants, and encoded in [validate_epiparam()]) the -#' subsetting will return a data frame with a message to console stating the -#' class of the object has been converted to data frame with the other -#' attributes of the class preserved. -#' -#' @inheritParams base::names -#' -#' @return An `epiparam` object or a `data.frame` -#' @export -`names<-.epiparam` <- function(x, value) { - out <- NextMethod() - epiparam_reconstruct(out, x) -} - -#' Set accessor for `epiparam` class -#' -#' @param x An `epiparam` object -#' @inheritParams base::Extract -#' -#' @return An `epiparam` object or a `data.frame` -#' @export -`$<-.epiparam` <- function(x, name, value) { - out <- NextMethod() - epiparam_reconstruct(out, x) -} - -#' Decide whether `` object can be reconstructed from input -#' -#' @description Uses [epiparam_can_reconstruct()] to determine whether the -#' data input can be reconstructed in a valid `` object. If it can -#' not, it is returned as a data frame. -#' -#' @param x A `data.frame` or subclass of `data.frame` (e.g. `` or -#' ``). -#' @param to The reference object, in this case an `` object. -#' -#' @return An `` object (if the input is valid) or a `data.frame`. -#' @keywords internal -epiparam_reconstruct <- function(x, to) { - if (epiparam_can_reconstruct(x)) { - df_reconstruct(x, to) - } else { - x <- as.data.frame(x) - message("Removing crucial column in `` returning ``") - x - } -} - -#' Check whether the `` object is valid -#' -#' @description This is a wrapper for [validate_epiparam()] in a [tryCatch()] -#' in order to not error if the input object is invalid and returns `TRUE` or -#' `FALSE` on if the object is valid. If the object is valid it can be -#' "reconstructed" and not downgraded to a `data.frame`. -#' -#' @inheritParams epiparam_reconstruct -#' -#' @return A boolean `logical`. -#' @keywords internal -epiparam_can_reconstruct <- function(x) { - # check whether input is valid, ignoring its class - out <- tryCatch( - { - validate_epiparam(x, reconstruct = TRUE) - }, - error = function(cnd) FALSE - ) - - # return boolean - !isFALSE(out) -} - -#' Transplant the attributes of one input (`to`) to the other input (`x`) -#' -#' @inheritParams epiparam_reconstruct -#' -#' @inherit epiparam return -#' @keywords internal -df_reconstruct <- function(x, to) { - attrs <- attributes(to) - attrs$names <- names(x) - attrs$row.names <- .row_names_info(x, type = 0L) - attributes(x) <- attrs - x -} - -#' @exportS3Method dplyr::dplyr_reconstruct -dplyr_reconstruct.epiparam <- function(data, template) { - epiparam_reconstruct(data, template) -} diff --git a/man/cash-set-.epiparam.Rd b/man/cash-set-.epiparam.Rd deleted file mode 100644 index a7375aaf3..000000000 --- a/man/cash-set-.epiparam.Rd +++ /dev/null @@ -1,27 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam_utils.R -\name{$<-.epiparam} -\alias{$<-.epiparam} -\title{Set accessor for \code{epiparam} class} -\usage{ -\method{$}{epiparam}(x, name) <- value -} -\arguments{ -\item{x}{An \code{epiparam} object} - -\item{name}{ - A literal character string or a \link[base]{name} (possibly \link[base]{backtick} - quoted). For extraction, this is normally (see under - \sQuote{Environments}) partially matched to the \code{\link[base]{names}} - of the object. - } - -\item{value}{typically an array-like \R object of a similar class as - \code{x}.} -} -\value{ -An \code{epiparam} object or a \code{data.frame} -} -\description{ -Set accessor for \code{epiparam} class -} diff --git a/man/df_reconstruct.Rd b/man/df_reconstruct.Rd deleted file mode 100644 index 9f481bbde..000000000 --- a/man/df_reconstruct.Rd +++ /dev/null @@ -1,21 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam_utils.R -\name{df_reconstruct} -\alias{df_reconstruct} -\title{Transplant the attributes of one input (\code{to}) to the other input (\code{x})} -\usage{ -df_reconstruct(x, to) -} -\arguments{ -\item{x}{A \code{data.frame} or subclass of \code{data.frame} (e.g. \verb{} or -\verb{}).} - -\item{to}{The reference object, in this case an \verb{} object.} -} -\value{ -An \verb{} object. -} -\description{ -Transplant the attributes of one input (\code{to}) to the other input (\code{x}) -} -\keyword{internal} diff --git a/man/epiparam_can_reconstruct.Rd b/man/epiparam_can_reconstruct.Rd deleted file mode 100644 index 089d992b2..000000000 --- a/man/epiparam_can_reconstruct.Rd +++ /dev/null @@ -1,22 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam_utils.R -\name{epiparam_can_reconstruct} -\alias{epiparam_can_reconstruct} -\title{Check whether the \verb{} object is valid} -\usage{ -epiparam_can_reconstruct(x) -} -\arguments{ -\item{x}{A \code{data.frame} or subclass of \code{data.frame} (e.g. \verb{} or -\verb{}).} -} -\value{ -A boolean \code{logical}. -} -\description{ -This is a wrapper for \code{\link[=validate_epiparam]{validate_epiparam()}} in a \code{\link[=tryCatch]{tryCatch()}} -in order to not error if the input object is invalid and returns \code{TRUE} or -\code{FALSE} on if the object is valid. If the object is valid it can be -"reconstructed" and not downgraded to a \code{data.frame}. -} -\keyword{internal} diff --git a/man/epiparam_reconstruct.Rd b/man/epiparam_reconstruct.Rd deleted file mode 100644 index 4c8aea217..000000000 --- a/man/epiparam_reconstruct.Rd +++ /dev/null @@ -1,23 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam_utils.R -\name{epiparam_reconstruct} -\alias{epiparam_reconstruct} -\title{Decide whether \verb{} object can be reconstructed from input} -\usage{ -epiparam_reconstruct(x, to) -} -\arguments{ -\item{x}{A \code{data.frame} or subclass of \code{data.frame} (e.g. \verb{} or -\verb{}).} - -\item{to}{The reference object, in this case an \verb{} object.} -} -\value{ -An \verb{} object (if the input is valid) or a \code{data.frame}. -} -\description{ -Uses \code{\link[=epiparam_can_reconstruct]{epiparam_can_reconstruct()}} to determine whether the -data input can be reconstructed in a valid \verb{} object. If it can -not, it is returned as a data frame. -} -\keyword{internal} diff --git a/man/names-set-.epiparam.Rd b/man/names-set-.epiparam.Rd deleted file mode 100644 index d5a0b0d54..000000000 --- a/man/names-set-.epiparam.Rd +++ /dev/null @@ -1,24 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam_utils.R -\name{names<-.epiparam} -\alias{names<-.epiparam} -\title{Set names for \verb{} class} -\usage{ -\method{names}{epiparam}(x) <- value -} -\arguments{ -\item{x}{an \R object.} - -\item{value}{a character vector of up to the same length as \code{x}, or - \code{NULL}.} -} -\value{ -An \code{epiparam} object or a \code{data.frame} -} -\description{ -If the modifying the names invalidates the \verb{} object -(defined by its invariants, and encoded in \code{\link[=validate_epiparam]{validate_epiparam()}}) the -subsetting will return a data frame with a message to console stating the -class of the object has been converted to data frame with the other -attributes of the class preserved. -} diff --git a/man/sub-.epiparam.Rd b/man/sub-.epiparam.Rd deleted file mode 100644 index 4b62ed9c4..000000000 --- a/man/sub-.epiparam.Rd +++ /dev/null @@ -1,23 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epiparam_utils.R -\name{[.epiparam} -\alias{[.epiparam} -\title{Subset method for \verb{} class} -\usage{ -\method{[}{epiparam}(epiparam, ...) -} -\arguments{ -\item{epiparam}{An \verb{} object.} - -\item{...}{further arguments to be passed to or from other methods.} -} -\value{ -An \code{epiparam} object or a \code{data.frame} -} -\description{ -If the subsetting invalidates the \verb{} object (defined -by its invariants, and encoded in \code{\link[=validate_epiparam]{validate_epiparam()}}) the subsetting -will return a data frame with a message to console stating the class of the -object has been converted to \code{data.frame} with the other attributes of the -class preserved. -} From 7741bc8ba5f79ccdf3e1c61532568542a0871a8a Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 16:15:07 +0100 Subject: [PATCH 21/72] removed bind_epiparam function --- R/bind_epiparam.R | 80 -------------------------------------------- man/bind_epiparam.Rd | 47 -------------------------- 2 files changed, 127 deletions(-) delete mode 100644 R/bind_epiparam.R delete mode 100644 man/bind_epiparam.Rd diff --git a/R/bind_epiparam.R b/R/bind_epiparam.R deleted file mode 100644 index 94b3f12ff..000000000 --- a/R/bind_epiparam.R +++ /dev/null @@ -1,80 +0,0 @@ -#' Bind an epi object to an `` object -#' -#' Bind any epi data class in \pkg{epiparameter} (``, -#' ``, ``) or data frame to an `` object. -#' -#' @details The `` class holds the library of epidemiological -#' parameters that is stored in the \pkg{epiparameter} R package and can be -#' manipulated. The [bind_epiparam()] function allows users to add entries to -#' the library by binding them to the bottom of an existing `` object -#' loaded in R. -#' -#' The `` returned by [bind_epiparam()] contains the matching -#' columns of the input objects. Therefore, if one of the input objects -#' contains extra columns which are not present in the other input object -#' these will be missing from the returned object. This also applies whether -#' binding other `` or `` objects. When binding -#' `` objects missing data fields are given a default value before -#' binding. -#' -#' @inheritParams validate_epiparam -#' @param epi_obj Either an ``, ``, `` or list -#' of `` objects. It can also be a data frame as long as the columns -#' conform to the columns of an `` object. -#' -#' @inherit epiparam return -#' @export -#' -#' @examples -#' eparam <- epiparam() -#' edist <- epidist( -#' disease = "ebola", -#' epi_dist = "incubation_period", -#' prob_distribution = "lnorm", -#' prob_distribution_params = c(meanlog = 1, sdlog = 1) -#' ) -#' bind_epiparam(eparam, edist) -bind_epiparam <- function(epiparam, epi_obj) { - # check input - validate_epiparam(epiparam) - if (is_epidist(epi_obj)) { - validate_epidist(epi_obj) - } else if (inherits(epi_obj, "list")) { - lapply(epi_obj, validate_epidist) - } else if (is_vb_epidist(epi_obj)) { - validate_vb_epidist(epi_obj) - } else if (is_epiparam(epi_obj)) { - validate_epiparam(epi_obj) - } else if (is.data.frame(epi_obj)) { - stopifnot( - " given must include all columns in " = - all(colnames(epiparam) %in% colnames(epi_obj)) - ) - # subset epi_obj cols to those in epiparam - epi_obj <- epi_obj[, colnames(epiparam)] - } else { - stop( - "Only , , or ", - " can bind to ", - call. = FALSE - ) - } - - # convert epidist to epiparam object - if (is_epidist(epi_obj) || inherits(epi_obj, "list") || - is_vb_epidist(epi_obj)) { - epi_obj <- as_epiparam(x = epi_obj) - } - - # keep matching columns between objects - epiparam <- epiparam[, intersect(colnames(epiparam), colnames(epi_obj))] - - # bind epidist to epi - out <- rbind(epiparam, epi_obj) - - # validate new epiparam object - validate_epiparam(out) - - # return new epiparam object - out -} diff --git a/man/bind_epiparam.Rd b/man/bind_epiparam.Rd deleted file mode 100644 index d3b2a9801..000000000 --- a/man/bind_epiparam.Rd +++ /dev/null @@ -1,47 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/bind_epiparam.R -\name{bind_epiparam} -\alias{bind_epiparam} -\title{Bind an epi object to an \verb{} object} -\usage{ -bind_epiparam(epiparam, epi_obj) -} -\arguments{ -\item{epiparam}{An \verb{} object.} - -\item{epi_obj}{Either an \verb{}, \verb{}, \verb{} or list -of \verb{} objects. It can also be a data frame as long as the columns -conform to the columns of an \verb{} object.} -} -\value{ -An \verb{} object. -} -\description{ -Bind any epi data class in \pkg{epiparameter} (\verb{}, -\verb{}, \verb{}) or data frame to an \verb{} object. -} -\details{ -The \verb{} class holds the library of epidemiological -parameters that is stored in the \pkg{epiparameter} R package and can be -manipulated. The \code{\link[=bind_epiparam]{bind_epiparam()}} function allows users to add entries to -the library by binding them to the bottom of an existing \verb{} object -loaded in R. - -The \verb{} returned by \code{\link[=bind_epiparam]{bind_epiparam()}} contains the matching -columns of the input objects. Therefore, if one of the input objects -contains extra columns which are not present in the other input object -these will be missing from the returned object. This also applies whether -binding other \verb{} or \verb{} objects. When binding -\verb{} objects missing data fields are given a default value before -binding. -} -\examples{ -eparam <- epiparam() -edist <- epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "lnorm", - prob_distribution_params = c(meanlog = 1, sdlog = 1) -) -bind_epiparam(eparam, edist) -} From ae582049d07ce8ff2c34a352a9b218ba05aeda80 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 16:16:59 +0100 Subject: [PATCH 22/72] updated multi_epidist print method --- R/epidist_db.R | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/R/epidist_db.R b/R/epidist_db.R index b86fdec1e..6dd83a6dc 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -491,6 +491,24 @@ print.multi_epidist <- function(x, ...) { length(unique( vapply(x, function(y) y$disease$disease, FUN.VALUE = character(1)) )) + ), + sprintf( + " Number of delay distributions: %s", + sum( + vapply( + x, function(y) y$epi_dist != "offspring distribution", + FUN.VALUE = logical(1) + ) + ) + ), + sprintf( + " Number of offspring distributions: %s", + sum( + vapply( + x, function(y) y$epi_dist == "offspring distribution", + FUN.VALUE = logical(1) + ) + ) ) ) ) From 48eca716cc65a27163b8495ad17e412c7bd31342 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 16:18:02 +0100 Subject: [PATCH 23/72] updated epidist_db documentation --- R/epidist_db.R | 27 +++++++-------------------- man/epidist_db.Rd | 27 +++++++-------------------- 2 files changed, 14 insertions(+), 40 deletions(-) diff --git a/R/epidist_db.R b/R/epidist_db.R index 6dd83a6dc..7ed3173bd 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -1,9 +1,11 @@ #' Create an `` object(s) directly from the epiparameter library #' (database) #' -#' @description Extract an `` object(s) directly from -#' the library of epidemiological parameters. This bypasses the need to -#' read in an `` object and convert to an `` object. +#' @description Extract `` object(s) directly from +#' the library of epidemiological parameters. The \package{epiparameter} +#' library of epidemiological parameters is compiled from primary literature +#' sources. The list output from [epidist_db()] can be subset by disease, +#' pathogen, epidemiological distribution, sample size, or region. #' #' If a distribution from a specific study is required, the `author` argument #' can be specified. @@ -42,8 +44,8 @@ #' recommended to use the family name as first names may or may not be #' initialised. #' @param subset Either `NULL` or a valid R expressions that evaluates to -#' logicals to subset the rows of ``, or a function that can be -#' applied directly to an `` object. +#' logicals to subset the list of ``, or a function that can be +#' applied over a list of `` objects. #' #' This argument allows general `` subsetting that can be combined #' with the subsetting done with the `disease` and `epidist` arguments @@ -73,21 +75,6 @@ #' @examples #' epidist_db(disease = "influenza", epi_dist = "serial_interval") #' -#' # comparison between using `epidist_db()` and `epiparam()` with -#' # `as_epidist()` -#' -#' # load influenza serial interval from database -#' edist <- epidist_db(disease = "influenza", epi_dist = "serial_interval") -#' -#' # load database of serial intervals -#' eparam <- epiparam(epi_dist = "serial_interval") -#' # subset database to only influenza entries -#' eparam <- eparam[clean_disease(eparam$disease) == "influenza", ] -#' # convert to `epidist` -#' edist2 <- as_epidist(eparam) -#' # check the two methods produce the same `epidist` object -#' identical(edist, edist2) -#' #' # example using custom subsetting #' eparam <- epidist_db( #' disease = "SARS", diff --git a/man/epidist_db.Rd b/man/epidist_db.Rd index 124ddb73f..a469d2504 100644 --- a/man/epidist_db.Rd +++ b/man/epidist_db.Rd @@ -25,8 +25,8 @@ recommended to use the family name as first names may or may not be initialised.} \item{subset}{Either \code{NULL} or a valid R expressions that evaluates to -logicals to subset the rows of \verb{}, or a function that can be -applied directly to an \verb{} object. +logicals to subset the list of \verb{}, or a function that can be +applied over a list of \verb{} objects. This argument allows general \verb{} subsetting that can be combined with the subsetting done with the \code{disease} and \code{epidist} arguments @@ -54,9 +54,11 @@ be returned.} An \verb{} object or list of \verb{} objects. } \description{ -Extract an \verb{} object(s) directly from -the library of epidemiological parameters. This bypasses the need to -read in an \verb{} object and convert to an \verb{} object. +Extract \verb{} object(s) directly from +the library of epidemiological parameters. The \package{epiparameter} +library of epidemiological parameters is compiled from primary literature +sources. The list output from \code{\link[=epidist_db]{epidist_db()}} can be subset by disease, +pathogen, epidemiological distribution, sample size, or region. If a distribution from a specific study is required, the \code{author} argument can be specified. @@ -92,21 +94,6 @@ List of epidemiological distributions: \examples{ epidist_db(disease = "influenza", epi_dist = "serial_interval") -# comparison between using `epidist_db()` and `epiparam()` with -# `as_epidist()` - -# load influenza serial interval from database -edist <- epidist_db(disease = "influenza", epi_dist = "serial_interval") - -# load database of serial intervals -eparam <- epiparam(epi_dist = "serial_interval") -# subset database to only influenza entries -eparam <- eparam[clean_disease(eparam$disease) == "influenza", ] -# convert to `epidist` -edist2 <- as_epidist(eparam) -# check the two methods produce the same `epidist` object -identical(edist, edist2) - # example using custom subsetting eparam <- epidist_db( disease = "SARS", From 93946cc121298c5ac0d6bd9f133cc24a473452b8 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 16:18:51 +0100 Subject: [PATCH 24/72] add filter by disease to .read_epidist_db --- R/epidist_db.R | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/R/epidist_db.R b/R/epidist_db.R index 7ed3173bd..a2e2208b4 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -144,7 +144,7 @@ epidist_db <- function(disease, several.ok = FALSE ) - # filter based on pathogen and delay distribution + # filter based on disease multi_epidist <- Filter(f = function(x) { grepl( pattern = disease, @@ -239,15 +239,7 @@ epidist_db <- function(disease, #' printing) #' @keywords internal #' @noRd -.read_epidist_db <- function(epi_dist = c( - "all", - "incubation_period", - "onset_to_hospitalisation", - "onset_to_death", - "serial_interval", - "generation_time", - "offspring_distribution" -)) { +.read_epidist_db <- function(epi_dist) { paramsJSON <- jsonlite::read_json( path = system.file( "extdata", @@ -260,6 +252,14 @@ epidist_db <- function(disease, # suppress individual constructor messages multi_epidist <- suppressMessages(lapply(paramsJSON, .format_epidist)) + # filter by disease + if (epi_dist != "all") { + multi_epidist <- Filter( + f = function(x) x$epi_dist == epi_dist, + x = multi_epidist + ) + } + # create and return class structure( multi_epidist, @@ -355,7 +355,7 @@ epidist_db <- function(disease, if (length(params) == 0) { return( list( - params = NA, + params = NA_real_, uncertainty = create_epidist_uncertainty() ) ) From bae37cc87ed7980d6f26114d22be529e37b2d770 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 16:56:10 +0100 Subject: [PATCH 25/72] removed bind_epiparam tests --- tests/testthat/test-bind_epiparam.R | 447 ---------------------------- 1 file changed, 447 deletions(-) delete mode 100644 tests/testthat/test-bind_epiparam.R diff --git a/tests/testthat/test-bind_epiparam.R b/tests/testthat/test-bind_epiparam.R deleted file mode 100644 index aa5f24212..000000000 --- a/tests/testthat/test-bind_epiparam.R +++ /dev/null @@ -1,447 +0,0 @@ -test_that("bind_epiparam works as expected for binding continuous epidist", { - eparam <- epiparam() - # message about missing citation suppressed - edist <- suppressMessages(epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1) - )) - - new_eparam <- bind_epiparam(epiparam = eparam, epi_obj = edist) - - expect_s3_class(new_eparam, "epiparam") - expect_identical(nrow(new_eparam), nrow(eparam) + 1L) - # check epidist info has been added - expect_identical(new_eparam[nrow(new_eparam), ]$disease, "ebola") - expect_identical( - new_eparam[nrow(new_eparam), ]$epi_distribution, - "incubation_period" - ) - expect_identical(new_eparam[nrow(new_eparam), ]$prob_distribution, "gamma") - expect_identical(new_eparam[nrow(new_eparam), ]$shape, 1) - expect_identical(new_eparam[nrow(new_eparam), ]$scale, 1) - # check some defaults missing from epidist - expect_true(is.na(new_eparam[nrow(new_eparam), ]$author)) - expect_true(is.na(new_eparam[nrow(new_eparam), ]$sample_size)) - expect_false(new_eparam[nrow(new_eparam), ]$discretised) - expect_type(new_eparam[nrow(new_eparam), ]$notes, "character") -}) - -test_that("bind_epiparam works as expected for binding discrete epidist", { - eparam <- epiparam() - # message about missing citation suppressed - edist <- suppressMessages(epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - discretise = TRUE - )) - - new_eparam <- bind_epiparam(epiparam = eparam, epi_obj = edist) - - expect_s3_class(new_eparam, "epiparam") - expect_identical(nrow(new_eparam), nrow(eparam) + 1L) - # check epidist info has been added - expect_identical(new_eparam[nrow(new_eparam), ]$disease, "ebola") - expect_identical( - new_eparam[nrow(new_eparam), ]$epi_distribution, - "incubation_period" - ) - expect_identical(new_eparam[nrow(new_eparam), ]$prob_distribution, "gamma") - expect_identical(new_eparam[nrow(new_eparam), ]$shape, 1) - expect_identical(new_eparam[nrow(new_eparam), ]$scale, 1) - expect_true(new_eparam[nrow(new_eparam), ]$discretised) - # check some defaults missing from epidist - expect_true(is.na(new_eparam[nrow(new_eparam), ]$author)) - expect_true(is.na(new_eparam[nrow(new_eparam), ]$sample_size)) - expect_type(new_eparam[nrow(new_eparam), ]$notes, "character") -}) - -test_that("bind_epiparam works as expected for binding list of epidist", { - eparam <- epiparam() - # message about missing citation suppressed - edist_list <- suppressMessages( - list( - epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1) - ), - epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "lnorm", - prob_distribution_params = c(meanlog = 2, sdlog = 2) - ), - epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "weibull", - prob_distribution_params = c(shape = 3, scale = 3) - ) - ) - ) - - new_eparam <- bind_epiparam(epiparam = eparam, epi_obj = edist_list) - - expect_s3_class(new_eparam, "epiparam") - expect_identical(nrow(new_eparam), nrow(eparam) + 3L) - # check epidist info has been added - expect_identical(new_eparam[nrow(new_eparam) - 2, ]$disease, "ebola") - expect_identical(new_eparam[nrow(new_eparam) - 1, ]$disease, "ebola") - expect_identical(new_eparam[nrow(new_eparam), ]$disease, "ebola") - expect_identical( - new_eparam[nrow(new_eparam) - 2, ]$epi_distribution, - "incubation_period" - ) - expect_identical( - new_eparam[nrow(new_eparam) - 1, ]$epi_distribution, - "incubation_period" - ) - expect_identical( - new_eparam[nrow(new_eparam), ]$epi_distribution, - "incubation_period" - ) - expect_identical( - new_eparam[nrow(new_eparam) - 2, ]$prob_distribution, - "gamma" - ) - expect_identical( - new_eparam[nrow(new_eparam) - 1, ]$prob_distribution, - "lnorm" - ) - expect_identical(new_eparam[nrow(new_eparam), ]$prob_distribution, "weibull") - expect_identical(new_eparam[nrow(new_eparam) - 2, ]$shape, 1) - expect_identical(new_eparam[nrow(new_eparam) - 1, ]$meanlog, 2) - expect_identical(new_eparam[nrow(new_eparam), ]$shape, 3) - expect_identical(new_eparam[nrow(new_eparam) - 2, ]$scale, 1) - expect_identical(new_eparam[nrow(new_eparam) - 1, ]$sdlog, 2) - expect_identical(new_eparam[nrow(new_eparam), ]$scale, 3) - # check some defaults missing from epidist - expect_true(is.na(new_eparam[nrow(new_eparam) - 2, ]$author)) - expect_true(is.na(new_eparam[nrow(new_eparam) - 1, ]$author)) - expect_true(is.na(new_eparam[nrow(new_eparam), ]$author)) - expect_true(is.na(new_eparam[nrow(new_eparam) - 2, ]$sample_size)) - expect_true(is.na(new_eparam[nrow(new_eparam) - 1, ]$sample_size)) - expect_true(is.na(new_eparam[nrow(new_eparam), ]$sample_size)) - expect_false(new_eparam[nrow(new_eparam) - 2, ]$discretised) - expect_false(new_eparam[nrow(new_eparam) - 1, ]$discretised) - expect_false(new_eparam[nrow(new_eparam), ]$discretised) - expect_type(new_eparam[nrow(new_eparam) - 2, ]$notes, "character") - expect_type(new_eparam[nrow(new_eparam) - 1, ]$notes, "character") - expect_type(new_eparam[nrow(new_eparam), ]$notes, "character") -}) - -test_that("bind_epiparam works as expected for binding vb_epidist", { - eparam <- epiparam() - # message about missing citation suppressed - vb_edist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation_period", - prob_distribution = "lnorm", - prob_distribution_params = c(meanlog = 1, sdlog = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation_period", - prob_distribution = "lnorm", - prob_distribution_params = c(meanlog = 2, sdlog = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - )) - - new_eparam <- bind_epiparam(epiparam = eparam, epi_obj = vb_edist) - - expect_s3_class(new_eparam, "epiparam") - expect_identical(nrow(new_eparam), nrow(eparam) + 2L) - # check epidist info has been added for intrinsic - expect_identical(new_eparam[nrow(new_eparam) - 1, ]$disease, "dengue") - expect_identical( - new_eparam[nrow(new_eparam) - 1, ]$epi_distribution, - "incubation_period" - ) - expect_identical( - new_eparam[nrow(new_eparam) - 1, ]$prob_distribution, - "lnorm" - ) - expect_identical(new_eparam[nrow(new_eparam) - 1, ]$meanlog, 1) - expect_identical(new_eparam[nrow(new_eparam) - 1, ]$sdlog, 1) - expect_identical( - new_eparam[nrow(new_eparam) - 1, ]$transmission_mode, - "vector_borne" - ) - expect_false(new_eparam[nrow(new_eparam) - 1, ]$extrinsic) - # check some defaults missing from intrinsic epidist - expect_true(is.na(new_eparam[nrow(new_eparam) - 1, ]$author)) - expect_true(is.na(new_eparam[nrow(new_eparam) - 1, ]$sample_size)) - expect_false(new_eparam[nrow(new_eparam) - 1, ]$discretised) - expect_type(new_eparam[nrow(new_eparam) - 1, ]$notes, "character") - # check epidist info has been added for extrinsic - expect_identical(new_eparam[nrow(new_eparam), ]$disease, "dengue") - expect_identical( - new_eparam[nrow(new_eparam), ]$epi_distribution, - "incubation_period" - ) - expect_identical( - new_eparam[nrow(new_eparam), ]$prob_distribution, - "lnorm" - ) - expect_identical(new_eparam[nrow(new_eparam), ]$meanlog, 2) - expect_identical(new_eparam[nrow(new_eparam), ]$sdlog, 2) - expect_identical( - new_eparam[nrow(new_eparam), ]$transmission_mode, - "vector_borne" - ) - expect_true(new_eparam[nrow(new_eparam), ]$extrinsic) - # check some defaults missing from intrinsic epidist - expect_true(is.na(new_eparam[nrow(new_eparam), ]$author)) - expect_true(is.na(new_eparam[nrow(new_eparam), ]$sample_size)) - expect_false(new_eparam[nrow(new_eparam), ]$discretised) - expect_type(new_eparam[nrow(new_eparam), ]$notes, "character") -}) - -test_that("bind_epiparam works as expected for binding epiparam", { - eparam <- epiparam() - eparam2 <- epiparam() - - new_eparam <- bind_epiparam(epiparam = eparam, epi_obj = eparam2) - - expect_s3_class(new_eparam, "epiparam") - expect_identical(nrow(new_eparam), nrow(eparam) * 2L) - # check last row matches last row of original epiparam - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$disease, - new_eparam[nrow(new_eparam), ]$disease - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$epi_distribution, - new_eparam[nrow(new_eparam), ]$epi_distribution - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$prob_distribution, - new_eparam[nrow(new_eparam), ]$prob_distribution - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$shape, - new_eparam[nrow(new_eparam), ]$shape - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$scale, - new_eparam[nrow(new_eparam), ]$scale - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$author, - new_eparam[nrow(new_eparam), ]$author - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$sample_size, - new_eparam[nrow(new_eparam), ]$sample_size - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$discretised, - new_eparam[nrow(new_eparam), ]$discretised - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$notes, - new_eparam[nrow(new_eparam), ]$notes - ) -}) - -test_that("bind_epiparam works as expected for binding data.frame", { - eparam <- epiparam() - eparam2 <- epiparam() - class(eparam2) <- "data.frame" - - new_eparam <- bind_epiparam(epiparam = eparam, epi_obj = eparam2) - - expect_s3_class(new_eparam, "epiparam") - expect_identical(nrow(new_eparam), nrow(eparam) * 2L) - # check last row matches last row of original epiparam - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$disease, - new_eparam[nrow(new_eparam), ]$disease - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$epi_distribution, - new_eparam[nrow(new_eparam), ]$epi_distribution - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$prob_distribution, - new_eparam[nrow(new_eparam), ]$prob_distribution - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$shape, - new_eparam[nrow(new_eparam), ]$shape - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$scale, - new_eparam[nrow(new_eparam), ]$scale - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$author, - new_eparam[nrow(new_eparam), ]$author - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$sample_size, - new_eparam[nrow(new_eparam), ]$sample_size - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$discretised, - new_eparam[nrow(new_eparam), ]$discretised - ) - expect_identical( - new_eparam[nrow(new_eparam) / 2, ]$notes, - new_eparam[nrow(new_eparam), ]$notes - ) -}) - -test_that("bind_epiparam fails as expected for binding corrupt epidist", { - eparam <- epiparam() - # message about missing citation suppressed - edist <- suppressMessages(epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1) - )) - edist$disease <- NULL - - expect_error( - bind_epiparam(epiparam = eparam, epi_obj = edist), - regexp = "epidist object does not contain the correct attributes" - ) -}) - -test_that("bind_epiparam fails as expected for binding corrupt epidist list", { - eparam <- epiparam() - # message about missing citation suppressed - edist_list <- suppressMessages( - list( - epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1) - ), - epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "lnorm", - prob_distribution_params = c(meanlog = 2, sdlog = 2) - ), - epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "weibull", - prob_distribution_params = c(shape = 3, scale = 3) - ) - ) - ) - edist_list[[1]]$disease <- NULL - - expect_error( - bind_epiparam(epiparam = eparam, epi_obj = edist_list), - regexp = "epidist object does not contain the correct attributes" - ) -}) - -test_that("bind_epiparam fails as expected for binding list without epidist", { - eparam <- epiparam() - # message about missing citation suppressed - edist_list <- suppressMessages( - list( - epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1) - ), - epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "lnorm", - prob_distribution_params = c(meanlog = 2, sdlog = 2) - ), - c(1, 2) - ) - ) - - expect_error( - bind_epiparam(epiparam = eparam, epi_obj = edist_list), - regexp = "Object should be of class epidist" - ) -}) - -test_that("bind_epiparam fails as expected for binding corrupt vb_epidist", { - eparam <- epiparam() - # message about missing citation suppressed - vb_edist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation_period", - prob_distribution = "lnorm", - prob_distribution_params = c(meanlog = 1, sdlog = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation_period", - prob_distribution = "lnorm", - prob_distribution_params = c(meanlog = 2, sdlog = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - )) - - vb_edist$intrinsic$disease <- NULL - - expect_error( - bind_epiparam(epiparam = eparam, epi_obj = vb_edist), - regexp = "diseases in intrinsic and extrinsic distribution are different" - ) -}) - -test_that("bind_epiparam fails as expected for binding corrupt epiparam", { - eparam <- epiparam() - eparam2 <- epiparam() - # suppress message about converting to data.frame - suppressMessages(eparam2$disease <- NULL) # nolint - # convert back to epiparam for testing bind_epiparam - class(eparam2) <- c("epiparam", "data.frame") - expect_error( - bind_epiparam(epiparam = eparam, epi_obj = eparam2), - regexp = "epiparam object does not contain the correct columns" - ) -}) - -test_that("bind_epiparam fails as expected for binding incorrect data.frame", { - eparam <- epiparam() - eparam2 <- epiparam() - class(eparam2) <- "data.frame" - eparam2$disease <- NULL - - expect_error( - bind_epiparam(epiparam = eparam, epi_obj = eparam2), - regexp = " given must include all columns in " - ) -}) - -test_that("bind_epiparam fails as expected for incorrect epi_obj class", { - eparam <- epiparam() - eparam2 <- c(1, 2) - - expect_error( - bind_epiparam(epiparam = eparam, epi_obj = eparam2), - regexp = "(Only )*()*(can bind to )" - ) -}) From ae3e61ae55f536d77963630245a363f7d6f2de3a Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 17:00:55 +0100 Subject: [PATCH 26/72] removed epiparam tests --- tests/testthat/test-epiparam.R | 196 --------------------------------- 1 file changed, 196 deletions(-) delete mode 100644 tests/testthat/test-epiparam.R diff --git a/tests/testthat/test-epiparam.R b/tests/testthat/test-epiparam.R deleted file mode 100644 index a2ffd90f7..000000000 --- a/tests/testthat/test-epiparam.R +++ /dev/null @@ -1,196 +0,0 @@ -test_that("epiparam works as expected", { - eparam <- epiparam() - - expect_s3_class(eparam, "epiparam") - expect_identical(dim(eparam), c(118L, 58L)) -}) - -test_that("epiparam works with all epi distributions", { - eparam <- epiparam(epi_dist = "all") - - expect_s3_class(eparam, "epiparam") - expect_identical(dim(eparam), c(118L, 58L)) -}) - -test_that("epiparam works with incubation period", { - eparam <- epiparam(epi_dist = "incubation_period") - - expect_s3_class(eparam, "epiparam") - expect_identical(dim(eparam), c(72L, 58L)) -}) - -test_that("epiparam works with onset-to-hospitalisation", { - eparam <- epiparam(epi_dist = "onset_to_hospitalisation") - - expect_s3_class(eparam, "epiparam") - expect_identical(dim(eparam), c(5L, 58L)) -}) - -test_that("epiparam works with onset-to-death", { - eparam <- epiparam(epi_dist = "onset_to_death") - - expect_s3_class(eparam, "epiparam") - expect_identical(dim(eparam), c(7L, 58L)) -}) - -test_that("epiparam works with serial interval", { - eparam <- epiparam(epi_dist = "serial_interval") - - expect_s3_class(eparam, "epiparam") - expect_identical(dim(eparam), c(15L, 58L)) -}) - -test_that("epiparam works with generation time", { - eparam <- epiparam(epi_dist = "generation_time") - - expect_s3_class(eparam, "epiparam") - expect_identical(dim(eparam), c(1L, 58L)) -}) - -test_that("epiparam fails when expected", { - expect_error( - epiparam(epi_dist = "delay_dist"), - regexp = "('arg' should be one of)*(all)*(incubation_period)" - ) -}) - -test_that("epiparam print & format method works as expected", { - expect_snapshot(epiparam()) - - expect_output(print(epiparam())) - expect_snapshot(print(epiparam())) - - expect_output(format(epiparam())) - expect_snapshot(format(epiparam())) -}) - -test_that("epiparam summary method works as expected", { - epiparam_summary <- summary(epiparam()) - - expect_type(epiparam_summary, "list") - expect_length(epiparam_summary, 8) - expect_true(all(vapply(epiparam_summary, is.numeric, FUN.VALUE = logical(1)))) - expect_named( - epiparam_summary, - c( - "num_entries", "num_diseases", "num_delay_dist", "num_offspring_dist", - "num_studies", "num_continuous_distributions", - "num_discrete_distributions", "num_vector_borne_diseases" - ) - ) -}) - -test_that("epiparam head & tails methods works as expected", { - expect_snapshot(head(epiparam())) - - expect_snapshot(tail(epiparam())) -}) - -test_that("new_epiparam works as expected", { - eparam <- new_epiparam(epi_dist = "all") - expect_s3_class(eparam, "epiparam") - expect_identical(dim(eparam), c(118L, 58L)) -}) - -test_that("new_epiparam works with filtering by epi dist", { - eparam <- new_epiparam(epi_dist = "incubation_period") - - expect_s3_class(eparam, "epiparam") - expect_identical(dim(eparam), c(72L, 58L)) -}) - -test_that("new_epiparam fails when expected", { - expect_error( - new_epiparam(epi_dist = c("incubation_period", "serial_interval")), - regexp = "(Assertion on 'epi_dist' failed)" - ) -}) - -test_that("validate_epiparam passes when expected", { - eparam <- new_epiparam(epi_dist = "all") - - expect_silent(validate_epiparam(epiparam = eparam)) -}) - -test_that("validate_epidist catches class faults when expected", { - eparam <- new_epiparam(epi_dist = "all") - # suppress message about converting to data.frame - suppressMessages(eparam <- eparam[, -1]) # nolint - expect_error( - validate_epiparam(epiparam = eparam), - regexp = "Object should be of class epiparam" - ) - - eparam <- new_epiparam(epi_dist = "all") - # suppress message about converting to data.frame - suppressMessages(eparam$epi_distribution <- NULL) # nolint - # convert back to `epiparam` to check validation - class(eparam) <- c("epiparam", "data.frame") - expect_error( - validate_epiparam(epiparam = eparam), - regexp = "epiparam object does not contain the correct columns" - ) - - eparam <- new_epiparam(epi_dist = "all") - # suppress message about converting to data.frame - suppressMessages(eparam$disease <- 1) # nolint - # convert back to `epiparam` to check validation - class(eparam) <- c("epiparam", "data.frame") - expect_error( - validate_epiparam(epiparam = eparam), - regexp = "incorrect data type in character fields" - ) -}) - -test_that("validate_epidist fails when expected for reconstructed = TRUE", { - eparam <- new_epiparam(epi_dist = "all") - # suppress message about converting to data.frame - suppressMessages(eparam <- eparam[, -1]) # nolint - expect_error( - validate_epiparam(epiparam = eparam, reconstruct = TRUE), - regexp = "epiparam object does not contain the correct columns" - ) -}) - -test_that("validate_epiparam fails as expected with input class", { - expect_error( - validate_epiparam(epiparam = 1), - regexp = "Object should be of class epiparam" - ) -}) - -test_that("is_epiparam returns TRUE when expected", { - eparam <- epiparam() - - expect_true(is_epiparam(eparam)) -}) - -test_that("is_epiparam returns FALSE when expected", { - eparam <- epiparam() - eparam <- unclass(eparam) - - expect_false(is_epiparam(eparam)) -}) - -test_that("epiparam_fields returns vector as expected", { - expect_vector(object = epiparam_fields(), ptype = character(0), size = 58) -}) - -test_that("epiparam_col_type returns vector as expected", { - eparam <- epiparam() - expect_vector( - object = epiparam_col_type(eparam, col_type = "character"), - ptype = integer(0), - size = 12 - ) - expect_vector( - object = epiparam_col_type(eparam, col_type = "numeric"), - ptype = integer(0), - size = 31 - ) - expect_vector( - object = epiparam_col_type(eparam, col_type = "logical"), - ptype = integer(0), - size = 5 - ) -}) From a2bfa8318bc1a1ba0060cba3a0a5e4c0f5be1f1a Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 2 Oct 2023 18:06:21 +0100 Subject: [PATCH 27/72] removed epiparam utility function tests --- tests/testthat/test-epiparam_utils.R | 404 --------------------------- 1 file changed, 404 deletions(-) delete mode 100644 tests/testthat/test-epiparam_utils.R diff --git a/tests/testthat/test-epiparam_utils.R b/tests/testthat/test-epiparam_utils.R deleted file mode 100644 index 2f3f5a914..000000000 --- a/tests/testthat/test-epiparam_utils.R +++ /dev/null @@ -1,404 +0,0 @@ -test_that("as_epidist works as expected", { - eparam <- epiparam() - # suppress message about citation - edist <- suppressMessages(as_epidist(x = eparam[12, ])) - - expect_s3_class(edist, "epidist") -}) - -test_that("as_epidist fails as expected when given invalidated epiparam", { - eparam <- epiparam() - # suppress message about returning data.frame - suppressMessages(eparam$disease <- NULL) # nolint - expect_error( - as_epidist(x = eparam[12, ]), - regexp = "Object should be of class epiparam" - ) -}) - -test_that("make_epidist works as expected for gamma", { - # suppress message about citation - edist <- suppressMessages( - make_epidist(x = list( - disease = "influenza", - pathogen = "influenza-A-H1N1pdm", - epi_distribution = "incubation_period", - author = "Ghani_etal", - title = "Incubation period of influenza", - journal = "Journal of Epi", - year = 2009, - sample_size = 16, - region = "UK", - transmission_mode = "natural_human_to_human", - vector = NA, - extrinsic = FALSE, - prob_distribution = "gamma", - inference_method = "mle", - mean = 2.05, - mean_ci_limits = c(NA, NA), - mean_ci = NA, - sd = 0.49, - sd_ci_limits = c(NA, NA), - sd_ci = NA, - quantile_2.5 = NA, - quantile_5 = NA, - quantile_25 = NA, - median = NA, - median_ci_limits = c(NA, NA), - median_ci = NA, - quantile_75 = NA, - quantile_87.5 = NA, - quantile_95 = NA, - quantile_97.5 = NA, - lower_range = NA, - upper_range = NA, - shape = NA, - shape_ci_limits = c(NA, NA), - shape_ci = NA, - scale = NA, - scale_ci_limits = c(NA, NA), - scale_ci = NA, - meanlog = NA, - meanlog_ci_limits = c(NA, NA), - meanlog_ci = NA, - sdlog = NA, - sdlog_ci_limits = c(NA, NA), - sdlog_ci = NA, - dispersion = NA, - dispersion_ci_limits = c(NA, NA), - dispersion_ci = NA, - precision = NA, - precision_ci_limits = c(NA, NA), - precision_ci = NA, - truncation = NA, - discretised = FALSE, - censored = NA, - right_truncated = NA, - phase_bias_adjusted = NA, - notes = "", - PMID = 20029668, - DOI = "10.1371/currents.RRN1130" # nolint - )) - ) - - expect_s3_class(edist, "epidist") - expect_identical(family(edist), "gamma") -}) - -test_that("make_epidist works as expected for Weibull", { - # suppress message about numerical approximation - edist <- suppressMessages(make_epidist(x = list( - disease = "influenza", - pathogen = "influenza-A-H1N1pdm", - epi_distribution = "incubation_period", - author = "Ghani_etal", - title = "Dynamics of H1N1pdm Influenza", - journal = "PLoS Current", - year = 2009, - sample_size = 16, - region = "UK", - transmission_mode = "natural_human_to_human", - vector = NA, - extrinsic = FALSE, - prob_distribution = "weibull", - inference_method = "mle", - mean = 2.05, - mean_ci_limits = c(NA, NA), - mean_ci = NA, - sd = 0.49, - sd_ci_limits = c(NA, NA), - sd_ci = NA, - quantile_2.5 = NA, - quantile_5 = NA, - quantile_25 = NA, - median = NA, - median_ci_limits = c(NA, NA), - median_ci = NA, - quantile_75 = NA, - quantile_87.5 = NA, - quantile_95 = NA, - quantile_97.5 = NA, - lower_range = NA, - upper_range = NA, - shape = NA, - shape_ci_limits = c(NA, NA), - shape_ci = NA, - scale = NA, - scale_ci_limits = c(NA, NA), - scale_ci = NA, - meanlog = NA, - meanlog_ci_limits = c(NA, NA), - meanlog_ci = NA, - sdlog = NA, - sdlog_ci_limits = c(NA, NA), - sdlog_ci = NA, - dispersion = NA, - dispersion_ci_limits = c(NA, NA), - dispersion_ci = NA, - precision = NA, - precision_ci_limits = c(NA, NA), - precision_ci = NA, - truncation = NA, - discretised = FALSE, - censored = NA, - right_truncated = NA, - phase_bias_adjusted = NA, - notes = "", - PMID = 20029668, - DOI = "10.1371/currents.RRN1130" # nolint - ))) - - expect_s3_class(edist, "epidist") - expect_identical(family(edist), "weibull") -}) - -test_that("make_epidist works as expected for lognormal", { - edist <- suppressMessages(make_epidist(x = list( - disease = "influenza", - pathogen = "influenza-A-H1N1pdm", - epi_distribution = "incubation_period", - author = "Ghani_etal", - title = "Dynamics of H1N1pdm Influenza", - journal = "PLoS Current", - year = 2009, - sample_size = 16, - region = "UK", - transmission_mode = "natural_human_to_human", - vector = NA, - extrinsic = FALSE, - prob_distribution = "lnorm", - inference_method = "mle", - mean = 2.05, - mean_ci_limits = c(NA, NA), - mean_ci = NA, - sd = 0.49, - sd_ci_limits = c(NA, NA), - sd_ci = NA, - quantile_2.5 = NA, - quantile_5 = NA, - quantile_25 = NA, - median = NA, - median_ci_limits = c(NA, NA), - median_ci = NA, - quantile_75 = NA, - quantile_87.5 = NA, - quantile_95 = NA, - quantile_97.5 = NA, - lower_range = NA, - upper_range = NA, - shape = NA, - shape_ci_limits = c(NA, NA), - shape_ci = NA, - scale = NA, - scale_ci_limits = c(NA, NA), - scale_ci = NA, - meanlog = NA, - meanlog_ci_limits = c(NA, NA), - meanlog_ci = NA, - sdlog = NA, - sdlog_ci_limits = c(NA, NA), - sdlog_ci = NA, - dispersion = NA, - dispersion_ci_limits = c(NA, NA), - dispersion_ci = NA, - precision = NA, - precision_ci_limits = c(NA, NA), - precision_ci = NA, - truncation = NA, - discretised = FALSE, - censored = NA, - right_truncated = NA, - phase_bias_adjusted = NA, - notes = "", - PMID = 20029668, - DOI = "10.1371/currents.RRN1130" # nolint - ))) - - expect_s3_class(edist, "epidist") - expect_identical(family(edist), "lnorm") -}) - -test_that("make_epidist works as expected for negative binomial", { - # suppress message about citation - edist <- suppressMessages( - make_epidist(x = list( - disease = "influenza", - pathogen = NA, - epi_distribution = "offspring_distribution", - author = "Smith_etal", - title = "Dynamics of H1N1pdm Influenza", - journal = "PLoS Current", - year = 2002, - sample_size = 45, - region = "UK", - transmission_mode = "natural_human_to_human", - vector = NA, - extrinsic = FALSE, - prob_distribution = "nbinom", - inference_method = "mle", - mean = 2.05, - mean_ci_limits = c(NA, NA), - mean_ci = NA, - sd = NA, - sd_ci_limits = c(NA, NA), - sd_ci = NA, - quantile_2.5 = NA, - quantile_5 = NA, - quantile_25 = NA, - median = NA, - median_ci_limits = c(NA, NA), - median_ci = NA, - quantile_75 = NA, - quantile_87.5 = NA, - quantile_95 = NA, - quantile_97.5 = NA, - lower_range = NA, - upper_range = NA, - shape = NA, - shape_ci_limits = c(NA, NA), - shape_ci = NA, - scale = NA, - scale_ci_limits = c(NA, NA), - scale_ci = NA, - meanlog = NA, - meanlog_ci_limits = c(NA, NA), - meanlog_ci = NA, - sdlog = NA, - sdlog_ci_limits = c(NA, NA), - sdlog_ci = NA, - dispersion = 0.6, - dispersion_ci_limits = c(NA, NA), - dispersion_ci = NA, - precision = NA, - precision_ci_limits = c(NA, NA), - precision_ci = NA, - truncation = NA, - discretised = FALSE, - censored = NA, - right_truncated = NA, - phase_bias_adjusted = NA, - notes = "", - PMID = NA, - DOI = "10.4824/216536228" # nolint - )) - ) - expect_s3_class(edist, "epidist") - expect_identical(family(edist), "nbinom") -}) - -test_that("make_epidist works as expected for geometric", { - # suppress message about citation - edist <- suppressMessages( - make_epidist(x = list( - disease = "influenza", - pathogen = NA, - epi_distribution = "offspring_distribution", - author = "Smith_etal", - title = "Dynamics of H1N1pdm Influenza", - journal = "PLoS Current", - year = 2002, - sample_size = 45, - region = "UK", - transmission_mode = "natural_human_to_human", - vector = NA, - extrinsic = FALSE, - prob_distribution = "geom", - inference_method = "mle", - mean = 2.05, - mean_ci_limits = c(NA, NA), - mean_ci = NA, - sd = NA, - sd_ci_limits = c(NA, NA), - sd_ci = NA, - quantile_2.5 = NA, - quantile_5 = NA, - quantile_25 = NA, - median = NA, - median_ci_limits = c(NA, NA), - median_ci = NA, - quantile_75 = NA, - quantile_87.5 = NA, - quantile_95 = NA, - quantile_97.5 = NA, - lower_range = NA, - upper_range = NA, - shape = NA, - shape_ci_limits = c(NA, NA), - shape_ci = NA, - scale = NA, - scale_ci_limits = c(NA, NA), - scale_ci = NA, - meanlog = NA, - meanlog_ci_limits = c(NA, NA), - meanlog_ci = NA, - sdlog = NA, - sdlog_ci_limits = c(NA, NA), - sdlog_ci = NA, - dispersion = NA, - dispersion_ci_limits = c(NA, NA), - dispersion_ci = NA, - precision = NA, - precision_ci_limits = c(NA, NA), - precision_ci = NA, - truncation = NA, - discretised = FALSE, - censored = NA, - right_truncated = NA, - phase_bias_adjusted = NA, - notes = "", - PMID = NA, - DOI = "10.4824/216536228" # nolint - )) - ) - - expect_s3_class(edist, "epidist") - expect_identical(family(edist), "geom") -}) - -test_that("as_epiparam works as expected", { - # suppress message about citation - edist <- suppressMessages(epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1) - )) - eparam <- as_epiparam(x = edist) - - expect_s3_class(eparam, "epiparam") - expect_identical(nrow(eparam), 1L) -}) - -test_that("as_epiparam fails as expected", { - # suppress message about citation - edist <- suppressMessages(epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1) - )) - edist$disease <- NULL - expect_error( - as_epiparam(x = edist), - regexp = "epidist object does not contain the correct attributes" - ) -}) - -test_that("epiparam subsetting works as expected", { - eparam <- epiparam() - eparam <- suppressMessages(dplyr::bind_cols(eparam, extra_col = NA_real_)) - # remove extra col - eparam <- eparam[, -ncol(eparam)] - - expect_s3_class(eparam, "epiparam") - expect_identical(ncol(eparam), 58L) -}) - -test_that("epiparam subsetting converts to data frame as expected", { - eparam <- epiparam() - expect_message( - res <- eparam[, -1], # nolint - regexp = "Removing crucial column in `` returning ``" - ) - expect_s3_class(res, class = "data.frame") -}) From 8a3eb520018ae1f926b55fcd01af012344455678 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Tue, 3 Oct 2023 10:27:03 +0100 Subject: [PATCH 28/72] update epidist mean method for new summary stats list --- R/epidist.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/epidist.R b/R/epidist.R index 16db4afd4..2b1c4077c 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -956,7 +956,7 @@ is_truncated <- function(x) { mean.epidist <- function(x, ...) { # extract mean if given - mean <- x$summary_stats$centre_spread$mean + mean <- x$summary_stats$mean # if mean is not given try and convert from parameters if (is.na(mean) && is_parameterised(x)) { From df115ca061b0589e2004dea752aa39f845d5141f Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 11:55:40 +0100 Subject: [PATCH 29/72] updated get_citation methods to work with multi_epidist and not epiparam --- R/accessors.R | 47 ++++++++++++++------------------------------- man/get_citation.Rd | 24 +++++++++++------------ 2 files changed, 25 insertions(+), 46 deletions(-) diff --git a/R/accessors.R b/R/accessors.R index e52ac56e8..dc7129aeb 100644 --- a/R/accessors.R +++ b/R/accessors.R @@ -45,32 +45,31 @@ get_parameters.epidist <- function(x, ...) { params } -#' Extract citation information from `` or `` objects +#' Extract citation information from `` or list of `` objects #' -#' @param x An `` or `` object. -#' @param ... Extra arguments to be passed to the method. +#' @param x An `` or list of `` objects. +#' @inheritParams is_parameterised #' #' @return A single character string or list of character string citations. -#' Length of list output is equal to number of rows in the `` object -#' passed to the function. +#' Length of list output is equal to number of elements in the `` +#' object passed to the function. #' @export #' #' @examples -#' -#' # example with epidist -#' eparam <- epiparam() -#' edist <- as_epidist(eparam[12, ]) +#' # example with +#' edist <- epidist_db(single_epidist = TRUE) #' get_citation(edist) #' -#' # example with epiparam -#' eparam <- epiparam() -#' get_citation(eparam) +#' # example with list of +#' edist <- epidist_db() +#' get_citation(edist) get_citation <- function(x, ...) { UseMethod("get_citation") } #' @export get_citation.epidist <- function(x, ...) { + chkDots(...) if (!inherits(x$citation, "bibentry")) { stop("Citation should be a ", call. = FALSE) } @@ -80,27 +79,9 @@ get_citation.epidist <- function(x, ...) { } #' @export -get_citation.epiparam <- function(x, ...) { - citation_list <- apply(x, - MARGIN = 1, FUN = function(y) { - # suppressing message as users do not need reminding of citation when - # retrieving citation - suppressMessages( - create_epidist_citation( - author = y$author, - year = y$year, - title = y$title, - journal = y$journal, - DOI = y$DOI, - PMID = y$PMID - ) - ) - }, - simplify = FALSE - ) - - # remove names from list - citation_list <- unname(citation_list) +get_citation.multi_epidist <- function(x, ...) { + chkDots(...) + citation_list <- lapply(x, get_citation) # return citation list citation_list diff --git a/man/get_citation.Rd b/man/get_citation.Rd index 6f72c1f63..d824b4a00 100644 --- a/man/get_citation.Rd +++ b/man/get_citation.Rd @@ -2,31 +2,29 @@ % Please edit documentation in R/accessors.R \name{get_citation} \alias{get_citation} -\title{Extract citation information from \verb{} or \verb{} objects} +\title{Extract citation information from \verb{} or list of \verb{} objects} \usage{ get_citation(x, ...) } \arguments{ -\item{x}{An \verb{} or \verb{} object.} +\item{x}{An \verb{} or list of \verb{} objects.} -\item{...}{Extra arguments to be passed to the method.} +\item{...}{\link{dots} not used, extra arguments supplied will cause a warning.} } \value{ A single character string or list of character string citations. -Length of list output is equal to number of rows in the \verb{} object -passed to the function. +Length of list output is equal to number of elements in the \verb{} +object passed to the function. } \description{ -Extract citation information from \verb{} or \verb{} objects +Extract citation information from \verb{} or list of \verb{} objects } \examples{ - -# example with epidist -eparam <- epiparam() -edist <- as_epidist(eparam[12, ]) +# example with +edist <- epidist_db(single_epidist = TRUE) get_citation(edist) -# example with epiparam -eparam <- epiparam() -get_citation(eparam) +# example with list of +edist <- epidist_db() +get_citation(edist) } From a2925ebf1a24d563c8e6b1ccf56b2c8acc4e730a Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 12:02:20 +0100 Subject: [PATCH 30/72] updated is_parameterised methods to work with multi_epidist and not epiparam --- R/checkers.R | 64 ++++++++++++----------------------------- man/is_parameterised.Rd | 23 ++++++++------- 2 files changed, 32 insertions(+), 55 deletions(-) diff --git a/R/checkers.R b/R/checkers.R index 1da2a3922..01f83abc8 100644 --- a/R/checkers.R +++ b/R/checkers.R @@ -1,15 +1,13 @@ -#' Check if `` or `` object contain a distribution and -#' distribution parameters +#' Check if `` or list of `` objects contains a distribution +#' and distribution parameters #' -#' -#' @param x An `` or `` object. +#' @param x An `` or list of `` objects. #' @param ... [dots] not used, extra arguments supplied will cause a warning. #' -#' @return A single boolean `logical` for `` or vector of boolean -#' `logical`s with length equal to the number of rows in the ``. -#' If the `` object or a row in the `` is missing either -#' a probability distribution or parameters for the probability distribution -#' returns `FALSE`, otherwise it returns `TRUE`. +#' @return A single boolean `logical` for `` or vector of `logical`s +#' equal in length to the list of `` objects input. If the `` +#' object is missing either a probability distribution or parameters for +#' the probability distribution returns `FALSE`, otherwise it returns `TRUE`. #' @export #' #' @examples @@ -28,46 +26,14 @@ #' epi_dist = "incubation" #' ) #' is_parameterised(edist) +#' +#' # list of +#' edist <- epidist_db() +#' is_parameterised(edist) is_parameterised <- function(x, ...) { UseMethod("is_parameterised") } -#' @export -is_parameterised.epiparam <- function(x, ...) { - chkDots(...) - - has_params <- vapply( - as.data.frame(t(x)), - FUN = function(y) { - if (is.na(y$prob_distribution)) { - return(FALSE) - } - if (y$prob_distribution %in% c("gamma", "weibull")) { - out <- !is.na(y$shape) && !is.na(y$scale) - return(out) - } - if (y$prob_distribution == "lnorm") { - out <- !is.na(y$meanlog) && !is.na(y$sdlog) - return(out) - } - if (y$prob_distribution == "nbinom") { - out <- !is.na(y$mean) && !is.na(y$dispersion) - return(out) - } - if (y$prob_distribution %in% c("geom", "pois")) { - out <- !is.na(y$mean) - return(out) - } - return(FALSE) - }, - FUN.VALUE = logical(1), - USE.NAMES = FALSE - ) - - # return result - has_params -} - #' @export is_parameterised.epidist <- function(x, ...) { chkDots(...) @@ -79,3 +45,11 @@ is_parameterised.epidist <- function(x, ...) { return(FALSE) } + +#' @export +is_parameterised.multi_epidist <- function(x, ...) { + chkDots(...) + + # return logical vector + vapply(x, is_parameterised, FUN.VALUE = logical(1)) +} diff --git a/man/is_parameterised.Rd b/man/is_parameterised.Rd index e3c1bceb6..1451dc61f 100644 --- a/man/is_parameterised.Rd +++ b/man/is_parameterised.Rd @@ -2,26 +2,25 @@ % Please edit documentation in R/checkers.R \name{is_parameterised} \alias{is_parameterised} -\title{Check if \verb{} or \verb{} object contain a distribution and -distribution parameters} +\title{Check if \verb{} or list of \verb{} objects contains a distribution +and distribution parameters} \usage{ is_parameterised(x, ...) } \arguments{ -\item{x}{An \verb{} or \verb{} object.} +\item{x}{An \verb{} or list of \verb{} objects.} \item{...}{\link{dots} not used, extra arguments supplied will cause a warning.} } \value{ -A single boolean \code{logical} for \verb{} or vector of boolean -\code{logical}s with length equal to the number of rows in the \verb{}. -If the \verb{} object or a row in the \verb{} is missing either -a probability distribution or parameters for the probability distribution -returns \code{FALSE}, otherwise it returns \code{TRUE}. +A single boolean \code{logical} for \verb{} or vector of \code{logical}s +equal in length to the list of \verb{} objects input. If the \verb{} +object is missing either a probability distribution or parameters for +the probability distribution returns \code{FALSE}, otherwise it returns \code{TRUE}. } \description{ -Check if \verb{} or \verb{} object contain a distribution and -distribution parameters +Check if \verb{} or list of \verb{} objects contains a distribution +and distribution parameters } \examples{ # parameterised @@ -39,4 +38,8 @@ edist <- epidist( epi_dist = "incubation" ) is_parameterised(edist) + +# list of +edist <- epidist_db() +is_parameterised(edist) } From 95ac6f40d18435eafe5d33291eee28365d43d32d Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 12:02:55 +0100 Subject: [PATCH 31/72] get_citation inherits more params from is_parameterised --- R/accessors.R | 1 - 1 file changed, 1 deletion(-) diff --git a/R/accessors.R b/R/accessors.R index dc7129aeb..1bcefb1d9 100644 --- a/R/accessors.R +++ b/R/accessors.R @@ -47,7 +47,6 @@ get_parameters.epidist <- function(x, ...) { #' Extract citation information from `` or list of `` objects #' -#' @param x An `` or list of `` objects. #' @inheritParams is_parameterised #' #' @return A single character string or list of character string citations. From 0fe45276f8263d04250792437060727cfee45343 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 12:08:06 +0100 Subject: [PATCH 32/72] updated is_epidist_params to include functionality of has_r_params and removed has_r_params --- R/epidist_utils.R | 66 ++++++++++------------------------------ man/is_epidist_params.Rd | 7 ++++- 2 files changed, 22 insertions(+), 51 deletions(-) diff --git a/R/epidist_utils.R b/R/epidist_utils.R index b18f08747..9716ad4b9 100644 --- a/R/epidist_utils.R +++ b/R/epidist_utils.R @@ -454,38 +454,38 @@ create_epidist_method_assess <- function(censored = NA, #' #' @examples #' is_epidist_params(prob_dist_params = c(shape = 2, scale = 1)) -is_epidist_params <- function(prob_dist_params) { +is_epidist_params <- function(prob_dist, prob_dist_params) { + + if (is.na(prob_dist) || anyNA(prob_dist_params)) { + return(FALSE) + } + # check input checkmate::assert_numeric( prob_dist_params, min.len = 1, - max.len = 2, names = "unique" ) # create dictionary of valid parameter combinations possible_params <- list( - c("shape", "scale"), - c("shape", "rate"), - c("meanlog", "sdlog"), - c("mu", "sigma"), - "mean", - "prob", - c("mean", "dispersion"), - c("mean", "k") + gamma = list(c("shape", "scale"), c("shape", "rate")), + weibull = list(c("shape", "scale")), + lnorm = list(c("meanlog", "sdlog"), c("mu", "sigma")), + nbinom = list(c("mean", "dispersion"), c("mean", "k"), c("n", "p")), + geom = list("mean", "p", "prob"), + pois = list("mean", "l") ) + possible_params <- possible_params[[prob_dist]] # check whether any combinations are valid matches <- vapply( - possible_params, - setequal, - y = names(prob_dist_params), + possible_params, setequal, y = names(prob_dist_params), FUN.VALUE = logical(1) ) - is_valid_params <- any(matches) - # return check result - is_valid_params + # return whether check for valid params result + any(matches) } clean_epidist_params <- function(prob_dist_params, ...) { @@ -775,37 +775,3 @@ clean_disease <- function(x) { checkmate::assert_character(x) gsub(pattern = "-| ", replacement = "_", x = tolower(x)) } - -#' Check if the parameters match the parameterisation used in R -#' -#' @description Parameter names need to match exactly, vector of parameters -#' can include others and parameters of interest can be a subset (i.e. checked -#' using [%in%]). -#' -#' @inheritParams new_epidist -#' -#' @return Boolean logical. -#' @keywords internal -#' @noRd -has_r_params <- function(prob_dist, prob_dist_params) { - if (is.na(prob_dist) || anyNA(prob_dist_params)) { - return(FALSE) - } - if (prob_dist %in% c("gamma", "weibull")) { - out <- all(c("shape", "scale") %in% names(prob_dist_params)) - return(out) - } - if (prob_dist == "lnorm") { - out <- all(c("meanlog", "sdlog") %in% names(prob_dist_params)) - return(out) - } - if (prob_dist == "nbinom") { - out <- all(c("mean", "dispersion") %in% names(prob_dist_params)) - return(out) - } - if (prob_dist %in% c("geom", "pois")) { - out <- "mean" %in% names(prob_dist_params) - return(out) - } - return(FALSE) -} diff --git a/man/is_epidist_params.Rd b/man/is_epidist_params.Rd index 7c015b5fc..b09a1a298 100644 --- a/man/is_epidist_params.Rd +++ b/man/is_epidist_params.Rd @@ -5,9 +5,14 @@ \title{Check whether the vector of parameters for the probability distribution are in the set of possible parameters used in the epiparameter package} \usage{ -is_epidist_params(prob_dist_params) +is_epidist_params(prob_dist, prob_dist_params) } \arguments{ +\item{prob_dist}{A character string specifying the probability +distribution. This should match the R naming convention of probability +distributions (e.g. lognormal is lnorm, negative binomial is nbinom, and +geometric is geom).} + \item{prob_dist_params}{A named vector of probability distribution parameters.} } From ca47c790870f0f72d8c7ec7359090c383b134f7b Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 12:12:35 +0100 Subject: [PATCH 33/72] updated name cleaning functions --- R/epidist_utils.R | 13 +++++++------ man/{clean_epidist_name.Rd => clean_epi_dist.Rd} | 10 +++++----- 2 files changed, 12 insertions(+), 11 deletions(-) rename man/{clean_epidist_name.Rd => clean_epi_dist.Rd} (62%) diff --git a/R/epidist_utils.R b/R/epidist_utils.R index 9716ad4b9..48f5da195 100644 --- a/R/epidist_utils.R +++ b/R/epidist_utils.R @@ -753,16 +753,17 @@ clean_epidist_params.default <- function(prob_dist_params) { #' Standardise the names of epidemiological distributions #' -#' @param epi_dist A `character` string with the name of the distribution. +#' @param x A `character` string with the name of the distribution. #' #' @return A `character` vector of equal length to the input. #' @export #' #' @examples -#' clean_epidist_name("Incubation_period") -clean_epidist_name <- function(epi_dist) { - out <- gsub(pattern = "_", replacement = " ", x = epi_dist, fixed = TRUE) - trimws(tolower(out)) +#' clean_epi_dist("Incubation_period") +clean_epi_dist <- function(x) { + checkmate::assert_character(x) + gsub(pattern = "_|-", replacement = " ", x = trimws(tolower(x))) + } #' Standardise the names of diseases @@ -773,5 +774,5 @@ clean_epidist_name <- function(epi_dist) { #' @export clean_disease <- function(x) { checkmate::assert_character(x) - gsub(pattern = "-| ", replacement = "_", x = tolower(x)) + gsub(pattern = "_|-", replacement = " ", x = trimws(tolower(x))) } diff --git a/man/clean_epidist_name.Rd b/man/clean_epi_dist.Rd similarity index 62% rename from man/clean_epidist_name.Rd rename to man/clean_epi_dist.Rd index 2155dd180..4405c9cc3 100644 --- a/man/clean_epidist_name.Rd +++ b/man/clean_epi_dist.Rd @@ -1,13 +1,13 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/epidist_utils.R -\name{clean_epidist_name} -\alias{clean_epidist_name} +\name{clean_epi_dist} +\alias{clean_epi_dist} \title{Standardise the names of epidemiological distributions} \usage{ -clean_epidist_name(epi_dist) +clean_epi_dist(x) } \arguments{ -\item{epi_dist}{A \code{character} string with the name of the distribution.} +\item{x}{A \code{character} string with the name of the distribution.} } \value{ A \code{character} vector of equal length to the input. @@ -16,5 +16,5 @@ A \code{character} vector of equal length to the input. Standardise the names of epidemiological distributions } \examples{ -clean_epidist_name("Incubation_period") +clean_epi_dist("Incubation_period") } From 15cc66a52e64da6eb876212403642cb96c35ad31 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 12:14:02 +0100 Subject: [PATCH 34/72] removed check for NAs in param cleaning functions --- R/epidist_utils.R | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/R/epidist_utils.R b/R/epidist_utils.R index 48f5da195..d0a60556b 100644 --- a/R/epidist_utils.R +++ b/R/epidist_utils.R @@ -499,12 +499,6 @@ clean_epidist_params <- function(prob_dist_params, ...) { #' @return Named `numeric` vector of parameters. #' @keywords internal clean_epidist_params.gamma <- function(prob_dist_params) { - # if unparameterised return named vector of NAs - if (isTRUE(is.na(prob_dist_params))) { - prob_dist_params <- c(shape = NA_real_, scale = NA_real_) - return(prob_dist_params) - } - # if shape and rate are provided convert to shape and scale if (all(c("shape", "rate") %in% names(prob_dist_params))) { prob_dist_params[["rate"]] <- 1 / prob_dist_params[["rate"]] @@ -538,12 +532,6 @@ clean_epidist_params.gamma <- function(prob_dist_params) { #' @return Named `numeric` vector of parameters. #' @keywords internal clean_epidist_params.lnorm <- function(prob_dist_params) { - # if unparameterised return named vector of NAs - if (isTRUE(is.na(prob_dist_params))) { - prob_dist_params <- c(meanlog = NA_real_, sdlog = NA_real_) - return(prob_dist_params) - } - # if mu and sigma are provided convert to meanlog and sdlog if (all(c("mu", "sigma") %in% names(prob_dist_params))) { # find index so parameters can be in any order @@ -582,12 +570,6 @@ clean_epidist_params.lnorm <- function(prob_dist_params) { #' @return Named `numeric` vector of parameters. #' @keywords internal clean_epidist_params.weibull <- function(prob_dist_params) { - # if unparameterised return named vector of NAs - if (isTRUE(is.na(prob_dist_params))) { - prob_dist_params <- c(shape = NA_real_, scale = NA_real_) - return(prob_dist_params) - } - if (all(c("shape", "scale") %in% names(prob_dist_params))) { # remove class attribute from prob_dist_params prob_dist_params <- unclass(prob_dist_params) @@ -609,12 +591,6 @@ clean_epidist_params.weibull <- function(prob_dist_params) { #' @return Named `numeric` vector of parameters. #' @keywords internal clean_epidist_params.nbinom <- function(prob_dist_params) { - # if unparameterised return named vector of NAs - if (isTRUE(is.na(prob_dist_params))) { - prob_dist_params <- c(mean = NA_real_, dispersion = NA_real_) - return(prob_dist_params) - } - if (all(c("n", "p") %in% names(prob_dist_params))) { # convert prob to mean prob_dist_params[["p"]] <- convert_params_to_summary_stats( @@ -658,12 +634,6 @@ clean_epidist_params.nbinom <- function(prob_dist_params) { #' @return Named `numeric` vector of parameters. #' @keywords internal clean_epidist_params.geom <- function(prob_dist_params) { - # if unparameterised return named NA - if (isTRUE(is.na(prob_dist_params))) { - prob_dist_params <- c(prob = NA_real_) - return(prob_dist_params) - } - # if mean is provided convert to prob if ("mean" %in% names(prob_dist_params)) { prob_dist_params[["mean"]] <- 1 / prob_dist_params[["mean"]] @@ -712,12 +682,6 @@ clean_epidist_params.geom <- function(prob_dist_params) { #' @return Named `numeric` vector of parameters. #' @keywords internal clean_epidist_params.pois <- function(prob_dist_params) { - # if unparameterised return named NA - if (isTRUE(is.na(prob_dist_params))) { - prob_dist_params <- c(mean = NA_real_) - return(prob_dist_params) - } - if (names(prob_dist_params) %in% c("mean", "l")) { names(prob_dist_params) <- "mean" From c7774af2068092332cd2438a2c95d4c8170ffa28 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 12:15:40 +0100 Subject: [PATCH 35/72] check if all quantiles are NA in create_epidist_summary_stats --- R/epidist_utils.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/epidist_utils.R b/R/epidist_utils.R index d0a60556b..75013ef24 100644 --- a/R/epidist_utils.R +++ b/R/epidist_utils.R @@ -306,7 +306,7 @@ create_epidist_summary_stats <- function(mean = NA_real_, checkmate::assert_number(lower_range, na.ok = TRUE) checkmate::assert_number(upper_range, na.ok = TRUE) checkmate::assert_numeric(quantiles) - if (!is.na(quantiles)) { + if (!all(is.na(quantiles))) { checkmate::assert_named(quantiles) } From 10a7c2d62ac57e3c74da0188602560bdf80ab257 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 13:26:47 +0100 Subject: [PATCH 36/72] moved epidist db filtering into .filter_epidist_db --- R/epidist_db.R | 134 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 88 insertions(+), 46 deletions(-) diff --git a/R/epidist_db.R b/R/epidist_db.R index a2e2208b4..91938a86c 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -95,24 +95,14 @@ #' epi_dist = "offspring_distribution", #' single_epidist = TRUE #' ) -epidist_db <- function(disease, +epidist_db <- function(disease = "all", epi_dist = "all", author = NULL, subset = NULL, single_epidist = FALSE) { # check input checkmate::assert_string(disease) - epi_dist <- match.arg( - arg = epi_dist, - choices = c( - "all", "incubation period", "onset to hospitalisation", "onset to death", - "serial interval", "generation time", "offspring distribution", - "hospitalisation to death", "hospitalisation to discharge", - "notification to death", "notification to discharge", - "onset to discharge", "onset to ventilation" - ), - several.ok = FALSE - ) + checkmate::assert_string(epi_dist) checkmate::assert_logical(single_epidist, len = 1) # capture expression from subset and check type @@ -126,33 +116,15 @@ epidist_db <- function(disease, } # read in database - multi_epidist <- .read_epidist_db(epi_dist = epi_dist) + multi_epidist <- .read_epidist_db() attrib <- attributes(multi_epidist) - disease_db <- vapply( - multi_epidist, function(x) x$disease$disease, - FUN.VALUE = character(1) - ) - if (!any(grepl(pattern = disease, x = disease_db, ignore.case = TRUE))) { - stop(epi_dist, " distribution not available for ", disease, call. = FALSE) - } - - # match disease names against data - disease <- match.arg( - arg = clean_disease(disease), - choices = clean_disease(unique(disease_db)), - several.ok = FALSE + multi_epidist <- .filter_epidist_db( + multi_epidist = multi_epidist, + disease = disease, + epi_dist = epi_dist ) - # filter based on disease - multi_epidist <- Filter(f = function(x) { - grepl( - pattern = disease, - x = clean_disease(x$disease$disease), - ignore.case = TRUE - ) - }, multi_epidist) - # extract study by author if given if (!is.null(author)) { first_author <- lapply(multi_epidist, function(x) { @@ -161,8 +133,11 @@ epidist_db <- function(disease, author_set <- grepl(pattern = author, x = first_author, ignore.case = TRUE) if (!any(author_set)) { + disease_str <- ifelse( + test = disease == "all", yes = "", no = paste(" for", disease) + ) stop( - "Parameters by ", author, " are not available for ", disease, + "Parameters by ", author, " are not available", disease_str, call. = FALSE ) } @@ -176,6 +151,7 @@ epidist_db <- function(disease, nse_subject <- as.character(expr)[2] cond_list <- lapply(multi_epidist, .is_cond_epidist, expr, nse_subject) set <- vapply(cond_list, function(x) any(unlist(x)), FUN.VALUE = logical(1)) + set[is.na(set)] <- FALSE multi_epidist <- multi_epidist[set] } else if (is.function(subset)) { set <- vapply(multi_epidist, subset, FUN.VALUE = logical(1)) @@ -186,7 +162,7 @@ epidist_db <- function(disease, if (length(multi_epidist) == 0) { stop( - "No entries in the database meet the subset criteria.", + "No entries in the database meet the search criteria.", call. = FALSE ) } @@ -226,7 +202,6 @@ epidist_db <- function(disease, "'get_citation' function" ) - # return epidist multi_epidist } @@ -239,7 +214,7 @@ epidist_db <- function(disease, #' printing) #' @keywords internal #' @noRd -.read_epidist_db <- function(epi_dist) { +.read_epidist_db <- function() { paramsJSON <- jsonlite::read_json( path = system.file( "extdata", @@ -252,19 +227,86 @@ epidist_db <- function(disease, # suppress individual constructor messages multi_epidist <- suppressMessages(lapply(paramsJSON, .format_epidist)) - # filter by disease + # create and return class + structure( + multi_epidist, + class = "multi_epidist" + ) +} + +#' Filter a list of `` objects by disease and epi distribution +#' +#' @param multi_epidist A list of `` objects. +#' @inheritParams epidist_db +#' +#' @return A list of `` objects. +#' @keywords internal +#' @noRd +.filter_epidist_db <- function(multi_epidist, disease, epi_dist) { + # copy of user input + disease_ <- disease + epi_dist_ <- epi_dist + + # clean input strings + disease <- clean_disease(disease) + epi_dist <- clean_epi_dist(epi_dist) + + # get valid options from db + disease_db <- vapply( + multi_epidist, function(x) x$disease$disease, + FUN.VALUE = character(1) + ) + epi_dist_db <- vapply( + multi_epidist, function(x) x$epi_dist, + FUN.VALUE = character(1) + ) + disease_db <- c("all", clean_disease(unique(disease_db))) + epi_dist_db <- c("all", clean_epi_dist(unique(epi_dist_db))) + + # partial matching and custom error msg + tryCatch( + error = function(cnd) { + disease_str <- ifelse( + test = disease == "all", yes = "", no = paste(" for", disease_) + ) + epi_dist_str <- ifelse(test = epi_dist == "all", yes = "", no = epi_dist_) + stop( + epi_dist_str, " distribution not available", disease_str, + call. = FALSE + ) + }, + { + disease <- match.arg( + arg = disease, + choices = disease_db, + several.ok = FALSE + ) + epi_dist <- match.arg( + arg = epi_dist, + choices = epi_dist_db, + several.ok = FALSE + ) + } + ) + + # filter based on disease + if (disease != "all") { + multi_epidist <- Filter( + f = function(x) clean_disease(x$disease$disease) == disease, + x = multi_epidist + ) + } + + # filter by epi dist if (epi_dist != "all") { multi_epidist <- Filter( - f = function(x) x$epi_dist == epi_dist, + f = function(x) clean_epi_dist(x$epi_dist) == epi_dist, x = multi_epidist ) } - # create and return class - structure( - multi_epidist, - class = "multi_epidist" - ) + # return multi_epidist + multi_epidist } #' Format data from JSON database into `` objects From b739895a60b3b02d627f3e3c0773fedeecbf21a7 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 13:30:20 +0100 Subject: [PATCH 37/72] unpack single epidist in epidist_db and updated documentation --- R/epidist_db.R | 33 ++++++++++++++++++++++++--------- man/epidist_db.Rd | 31 +++++++++++++++++++++---------- 2 files changed, 45 insertions(+), 19 deletions(-) diff --git a/R/epidist_db.R b/R/epidist_db.R index 91938a86c..d3aa887bd 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -1,11 +1,12 @@ -#' Create an `` object(s) directly from the epiparameter library +#' Create `` object(s) directly from the epiparameter library #' (database) #' #' @description Extract `` object(s) directly from #' the library of epidemiological parameters. The \package{epiparameter} #' library of epidemiological parameters is compiled from primary literature -#' sources. The list output from [epidist_db()] can be subset by disease, -#' pathogen, epidemiological distribution, sample size, or region. +#' sources. The list output from [epidist_db()] can be subset by the data it +#' contains, for example by: disease, pathogen, epidemiological distribution, +#' sample size, region, etc. #' #' If a distribution from a specific study is required, the `author` argument #' can be specified. @@ -47,15 +48,25 @@ #' logicals to subset the list of ``, or a function that can be #' applied over a list of `` objects. #' -#' This argument allows general `` subsetting that can be combined -#' with the subsetting done with the `disease` and `epidist` arguments -#' (and `author` if specified). If left as `NULL` (default) no subsetting is -#' carried out. +#' Subsetting (using `subset`) can be combined with the subsetting done with +#' the `disease` and `epidist` arguments (and `author` if specified). If left +#' as `NULL` (default) no subsetting is carried out. +#' +#' The `subset` argument is similar to subsetting a ``, but the +#' difference is that fixed comparisons and not vectorised comparisons are +#' needed. For example `sample_size > 10` is a valid subset expression, but +#' `sample_size == max(sample_size)`, which would be a valid subset expression +#' for a `` does not work. The vectorised expression will often +#' not error, but will likely return unexpected results. For the +#' `sample_size == max(sample_size)` example it will always return `TRUE` +#' (except for `NA`s) as it is a single numeric so will be equal to it's +#' max value. #' #' The expression should be specified without using the data object name #' (e.g. `df$var`) and instead just `var` should be supplied. In -#' other words, this argument works the same as the `subset` argument in -#' [subset()]. It is similar to `` using by the `dplyr` package. +#' other words, this argument uses non-standard evaluation, just as the +#' `subset` argument in [subset()], and is similar to `` used +#' by the `dplyr` package. #' #' @param single_epidist A boolean `logical` determining whether a single #' `` or multiple entries from the library can be returned if @@ -202,6 +213,10 @@ epidist_db <- function(disease = "all", "'get_citation' function" ) + if (length(multi_epidist) == 1) { + multi_epidist <- multi_epidist[[1]] + } + # return epidist multi_epidist } diff --git a/man/epidist_db.Rd b/man/epidist_db.Rd index a469d2504..b8fcd89df 100644 --- a/man/epidist_db.Rd +++ b/man/epidist_db.Rd @@ -2,11 +2,11 @@ % Please edit documentation in R/epidist_db.R \name{epidist_db} \alias{epidist_db} -\title{Create an \verb{} object(s) directly from the epiparameter library +\title{Create \verb{} object(s) directly from the epiparameter library (database)} \usage{ epidist_db( - disease, + disease = "all", epi_dist = "all", author = NULL, subset = NULL, @@ -28,15 +28,25 @@ initialised.} logicals to subset the list of \verb{}, or a function that can be applied over a list of \verb{} objects. -This argument allows general \verb{} subsetting that can be combined -with the subsetting done with the \code{disease} and \code{epidist} arguments -(and \code{author} if specified). If left as \code{NULL} (default) no subsetting is -carried out. +Subsetting (using \code{subset}) can be combined with the subsetting done with +the \code{disease} and \code{epidist} arguments (and \code{author} if specified). If left +as \code{NULL} (default) no subsetting is carried out. + +The \code{subset} argument is similar to subsetting a \verb{}, but the +difference is that fixed comparisons and not vectorised comparisons are +needed. For example \code{sample_size > 10} is a valid subset expression, but +\code{sample_size == max(sample_size)}, which would be a valid subset expression +for a \verb{} does not work. The vectorised expression will often +not error, but will likely return unexpected results. For the +\code{sample_size == max(sample_size)} example it will always return \code{TRUE} +(except for \code{NA}s) as it is a single numeric so will be equal to it's +max value. The expression should be specified without using the data object name (e.g. \code{df$var}) and instead just \code{var} should be supplied. In -other words, this argument works the same as the \code{subset} argument in -\code{\link[=subset]{subset()}}. It is similar to \verb{} using by the \code{dplyr} package.} +other words, this argument uses non-standard evaluation, just as the +\code{subset} argument in \code{\link[=subset]{subset()}}, and is similar to \verb{} used +by the \code{dplyr} package.} \item{single_epidist}{A boolean \code{logical} determining whether a single \verb{} or multiple entries from the library can be returned if @@ -57,8 +67,9 @@ An \verb{} object or list of \verb{} objects. Extract \verb{} object(s) directly from the library of epidemiological parameters. The \package{epiparameter} library of epidemiological parameters is compiled from primary literature -sources. The list output from \code{\link[=epidist_db]{epidist_db()}} can be subset by disease, -pathogen, epidemiological distribution, sample size, or region. +sources. The list output from \code{\link[=epidist_db]{epidist_db()}} can be subset by the data it +contains, for example by: disease, pathogen, epidemiological distribution, +sample size, region, etc. If a distribution from a specific study is required, the \code{author} argument can be specified. From 6759ce73778a003b26800cd1668bf1b3b8a9af02 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 13:32:53 +0100 Subject: [PATCH 38/72] updated cleaning function name in epidist format method --- R/epidist.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/epidist.R b/R/epidist.R index 2b1c4077c..762370e2f 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -425,7 +425,7 @@ format.epidist <- function(x, header = TRUE, vb = NULL, ...) { c( sprintf("Disease: %s", x$disease$disease), sprintf("Pathogen: %s", x$disease$pathogen), - sprintf("Epi Distribution: %s", clean_epidist_name(x$epi_dist)), + sprintf("Epi Distribution: %s", clean_epi_dist(x$epi_dist)), sprintf("Study: %s", format(x$citation)) ) ) From b8b5e05a58e82793c56f9486e487235ab959bf82 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 13:33:18 +0100 Subject: [PATCH 39/72] added more checks to epidist validator --- R/epidist.R | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/R/epidist.R b/R/epidist.R index 762370e2f..fcef00049 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -367,7 +367,12 @@ validate_epidist <- function(epidist) { is.list(epidist$metadata) ), "epidist must contain a citation" = - inherits(epidist$citation, "bibentry") + inherits(epidist$citation, "bibentry"), + "epidist distribution must be either or " = + inherits(epidist$prob_dist, c("distribution", "distcrete")) || + is.na(epidist$prob_dist) || is.character(epidist$prob_dist), + "epidist notes must be a character string" = + is.character(epidist$notes) && length(epidist$notes) == 1 ) invisible(epidist) From 4365399201eb2823d6cc27ae215a9de6fb55d5a2 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 13:33:55 +0100 Subject: [PATCH 40/72] restructured epidist constructor --- R/epidist.R | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/R/epidist.R b/R/epidist.R index fcef00049..e5ec74ee8 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -62,8 +62,22 @@ new_epidist <- function(disease = list(), identical(names(prob_dist_params), names(uncertainty)) ) - # calculate parameters if not provided - if (!has_r_params(prob_dist, prob_dist_params) && auto_calc_params) { + # include mean in prob_dist_params + if (!is.null(summary_stats$mean) && !is.na(summary_stats$mean)) { + prob_dist_params <- c( + prob_dist_params[!is.na(prob_dist_params)], + mean = summary_stats$mean + ) + } + + if (is_epidist_params(prob_dist, prob_dist_params)) { + # standardise common distribution parameters + class(prob_dist_params) <- prob_dist + prob_dist_params <- clean_epidist_params( + prob_dist_params = prob_dist_params + ) + } else if (auto_calc_params) { + # calculate parameters if not provided prob_dist_params <- calc_dist_params( prob_dist = prob_dist, prob_dist_params = prob_dist_params, @@ -75,20 +89,6 @@ new_epidist <- function(disease = list(), if (anyNA(prob_dist_params)) { message("Unparameterised object") } else { - # standardise distribution parameter names - class(prob_dist_params) <- prob_dist - prob_dist_params <- clean_epidist_params( - prob_dist_params = prob_dist_params - ) - - # check the params - checkmate::assert_numeric(prob_dist_params, names = "unique") - stopifnot( - "distribution parameters must have valid names, - see epidist() documentation for valid names" = - is_epidist_params(prob_dist_params) - ) - # create a S3 object holding the probability distribution prob_dist <- create_prob_dist( prob_dist = prob_dist, From 95bbcbf150cafc1661eebcf85005d97e6ea48f75 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 13:36:26 +0100 Subject: [PATCH 41/72] rewrote list_distributions to work with new db and data structures, and updated documentation --- R/list_distributions.R | 127 ++++++++++++++++++++++---------------- man/list_distributions.Rd | 52 ++++++---------- 2 files changed, 93 insertions(+), 86 deletions(-) diff --git a/R/list_distributions.R b/R/list_distributions.R index 7ef81f823..061725de9 100644 --- a/R/list_distributions.R +++ b/R/list_distributions.R @@ -1,71 +1,90 @@ -#' List epidemiological distributions stored in an `epiparam` object +#' List epidemiological distributions stored in the epiparameter library #' -#' @description This function subsets an `epiparam` object to return only the -#' chosen epidemiological distribution. The results are returned as a data -#' frame to better see all of the returned distributions. -#' -#' By default the resulting data frame is subset to only return the disease, -#' epidemiological distribution, probability distribution, author of the study -#' and the year of publication as well as the sample size of the study. If the -#' all columns of the database are required set `subset_db = FALSE`. +#' @description This function subsets the epidemiological parameter library to +#' return only the chosen epidemiological distribution. The results are +#' returned as a data frame containing the disease, epidemiological +#' distribution, probability distribution, author of the study, and the year +#' of publication. #' #' @details The `` returned by [list_distributions()] contains some #' vector columns and some list columns. For example, the `author` column is a #' list as each paper can contain multiple authors. #' -#' @inheritParams validate_epiparam -#' @param epi_dist A character defining parameter to be listed: -#' `"incubation"`, `"onset_to_hospitalisation"`, `"onset_to_death"`, or -#' `"serial_interval"`. `"incubation_period"` is the default `epi_dist` so if no -#' `epi_dist` is specified the incubation periods will be returned. -#' @param subset_db A boolean logical that determines whether a subset, defaults -#' is TRUE. +#' @inheritParams epidist +#' @param multi_epidist Either an `` object or a list of `` +#' objects. #' -#' @keywords distributions #' @author Adam Kucharski, Joshua W. Lambert #' @export #' @examples -#' eparam <- epiparam() -#' list_distributions(epiparam = eparam, epi_dist = "incubation_period") -#' # the default for list_distributions() without any arguments is to return the -#' # incubation period -#' list_distributions(epiparam = eparam) -#' # this same process can be achieved when loading the library -#' eparam <- epiparam(epi_dist = "incubation_period") +#' list_distributions(disease = "COVID-19", epi_dist = "incubation_period") +#' +#' # example using list of `` objects in memory +#' epidist_lst <- epidist_db(disease = "COVID-19") +#' list_distributions(multi_epidist = epidist_lst) #' -#' # filtering for onset to death -#' list_distributions(epiparam = eparam, epi_dist = "onset_to_death") -list_distributions <- function(epiparam, - epi_dist = c( - "incubation_period", - "onset_to_hospitalisation", - "onset_to_death", - "serial_interval", - "generation_time", - "offspring_distribution" - ), - subset_db = TRUE) { - # check input - validate_epiparam(epiparam) - epi_dist <- match.arg(arg = epi_dist, several.ok = FALSE) - checkmate::assert_logical(subset_db, len = 1) +#' # example filtering an existing list to incubation periods +#' epidist_lst <- epidist_db(disease = "COVID-19") +#' list_distributions(multi_epidist = epidist_lst, epi_dist = "incubation period") +list_distributions <- function(disease = "all", + epi_dist = "all", + ..., + multi_epidist) { + # read in data if not given + if (missing(multi_epidist)) { + multi_epidist <- epidist_db(disease = disease, epi_dist = epi_dist, ...) + } - # subset to chosen distribution - epiparam <- epiparam[epiparam$epi_distribution == epi_dist, ] + # wrap in list for apply functions + if (is_epidist(multi_epidist)) { + multi_epidist <- list(multi_epidist) + } - # strip epiparam class to return data frame - class(epiparam) <- "data.frame" + # check data + stopifnot( + "List of objects should be supplied to multi_epidist" = + all(vapply(multi_epidist, is_epidist, FUN.VALUE = logical(1))) && + length(multi_epidist) != 0 + ) - if (subset_db) { - epiparam <- epiparam[, c( - "disease", "epi_distribution", "prob_distribution", "author", "year", - "sample_size" - )] - } + multi_epidist <- .filter_epidist_db( + multi_epidist = multi_epidist, + disease = disease, + epi_dist = epi_dist + ) - # reset indexing of rows - rownames(epiparam) <- NULL + disease <- vapply( + multi_epidist, + function(x) x$disease$disease, + FUN.VALUE = character(1) + ) + epi_dist <- vapply( + multi_epidist, "[[", "epi_dist", + FUN.VALUE = character(1) + ) + prob_dist <- vapply( + multi_epidist, function(x) { + switch(class(x$prob_dist)[1], + "distcrete" = family(x), + "distribution" = family(x), + "character" = x$prob_dist, + "logical" = NA_character_ + ) + }, + FUN.VALUE = character(1) + ) + author <- lapply(multi_epidist, function(x) x$citation$author) + year <- vapply( + multi_epidist, function(x) as.numeric(x$citation$year), + FUN.VALUE = numeric(1) + ) - # return epiparam data frame - epiparam + # return data frame + data.frame( + disease = disease, + epi_distribution = epi_dist, + prob_distribution = prob_dist, + author = I(author), + year = year + ) } diff --git a/man/list_distributions.Rd b/man/list_distributions.Rd index a57e9eca7..3fa7073d6 100644 --- a/man/list_distributions.Rd +++ b/man/list_distributions.Rd @@ -2,35 +2,25 @@ % Please edit documentation in R/list_distributions.R \name{list_distributions} \alias{list_distributions} -\title{List epidemiological distributions stored in an \code{epiparam} object} +\title{List epidemiological distributions stored in the epiparameter library} \usage{ -list_distributions( - epiparam, - epi_dist = c("incubation_period", "onset_to_hospitalisation", "onset_to_death", - "serial_interval", "generation_time", "offspring_distribution"), - subset_db = TRUE -) +list_distributions(disease = "all", epi_dist = "all", ..., multi_epidist) } \arguments{ -\item{epiparam}{An \verb{} object.} +\item{disease}{A \code{character} string with name of the infectious disease.} -\item{epi_dist}{A character defining parameter to be listed: -\code{"incubation"}, \code{"onset_to_hospitalisation"}, \code{"onset_to_death"}, or -\code{"serial_interval"}. \code{"incubation_period"} is the default \code{epi_dist} so if no -\code{epi_dist} is specified the incubation periods will be returned.} +\item{epi_dist}{A \code{character} string with the name of the +epidemiological distribution type.} -\item{subset_db}{A boolean logical that determines whether a subset, defaults -is TRUE.} +\item{multi_epidist}{Either an \verb{} object or a list of \verb{} +objects.} } \description{ -This function subsets an \code{epiparam} object to return only the -chosen epidemiological distribution. The results are returned as a data -frame to better see all of the returned distributions. - -By default the resulting data frame is subset to only return the disease, -epidemiological distribution, probability distribution, author of the study -and the year of publication as well as the sample size of the study. If the -all columns of the database are required set \code{subset_db = FALSE}. +This function subsets the epidemiological parameter library to +return only the chosen epidemiological distribution. The results are +returned as a data frame containing the disease, epidemiological +distribution, probability distribution, author of the study, and the year +of publication. } \details{ The \verb{} returned by \code{\link[=list_distributions]{list_distributions()}} contains some @@ -38,18 +28,16 @@ vector columns and some list columns. For example, the \code{author} column is a list as each paper can contain multiple authors. } \examples{ -eparam <- epiparam() -list_distributions(epiparam = eparam, epi_dist = "incubation_period") -# the default for list_distributions() without any arguments is to return the -# incubation period -list_distributions(epiparam = eparam) -# this same process can be achieved when loading the library -eparam <- epiparam(epi_dist = "incubation_period") +list_distributions(disease = "COVID-19", epi_dist = "incubation_period") + +# example using list of `` objects in memory +epidist_lst <- epidist_db(disease = "COVID-19") +list_distributions(multi_epidist = epidist_lst) -# filtering for onset to death -list_distributions(epiparam = eparam, epi_dist = "onset_to_death") +# example filtering an existing list to incubation periods +epidist_lst <- epidist_db(disease = "COVID-19") +list_distributions(multi_epidist = epidist_lst, epi_dist = "incubation period") } \author{ Adam Kucharski, Joshua W. Lambert } -\keyword{distributions} From 59a4e1cc3f4621a1f717e48af03386086becaadf Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 13:37:07 +0100 Subject: [PATCH 42/72] updated Lloyd-Smith et al entries in db to use nbinom and params as reported --- inst/extdata/parameters.json | 52 +++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/inst/extdata/parameters.json b/inst/extdata/parameters.json index b277d0b4d..7d15e40f6 100644 --- a/inst/extdata/parameters.json +++ b/inst/extdata/parameters.json @@ -1517,11 +1517,17 @@ "pathogen": "Monkeypox Virus", "epi_distribution": "offspring distribution", "probability_distribution": { - "prob_distribution": "geom", - "parameters": { } + "prob_distribution": "nbinom", + "parameters": { + "dispersion": 0.58, + "dispersion_ci_limits": [0.32, 3.57], + "dispersion_ci": 90 + } }, "summary_statistics": { - "mean": 0.32 + "mean": 0.32, + "mean_ci_limits": [0.22, 0.40], + "mean_ci": 90 }, "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], @@ -1545,18 +1551,24 @@ "right_truncated": false, "phase_bias_adjusted": false }, - "notes": "Only the mean for the negative binomial is reported and this is used to approximate the mean of the geometric" + "notes": "In the model comparison the geometric model was the better fit to the monkeypox data, however, only the parameters of the negative binomial were reported as so are stored in the database." }, { "disease": "Pneumonic Plague", "pathogen": "Yersinia Pestis", "epi_distribution": "offspring distribution", "probability_distribution": { - "prob_distribution": "geom", - "parameters": { } + "prob_distribution": "nbinom", + "parameters": { + "dispersion": 1.37, + "dispersion_ci_limits": [0.88, 3.53], + "dispersion_ci": 90 + } }, "summary_statistics": { - "mean": 1.32 + "mean": 1.32, + "mean_ci_limits": [1.01, 1.61], + "mean_ci": 90 }, "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], @@ -1580,18 +1592,22 @@ "right_truncated": false, "phase_bias_adjusted": false }, - "notes": "Only the mean for the negative binomial is reported and this is used to approximate the mean of the geometric" + "notes": "In the model comparison the geometric model was the better fit to the Pneumonic Plague data, however, only the parameters of the negative binomial were reported as so are stored in the database." }, { "disease": "Hantavirus Pulmonary Syndrome", "pathogen": "Hantavirus (Andes Virus)", "epi_distribution": "offspring distribution", "probability_distribution": { - "prob_distribution": "geom", - "parameters": { } + "prob_distribution": "nbinom", + "parameters": { + "dispersion": 1.66 + } }, "summary_statistics": { - "mean": 0.7 + "mean": 0.7, + "mean_ci_limits": [0.20, 1.05], + "mean_ci": 90 }, "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], @@ -1615,18 +1631,22 @@ "right_truncated": false, "phase_bias_adjusted": false }, - "notes": "Only the mean for the negative binomial is reported and this is used to approximate the mean of the geometric" + "notes": "In the model comparison the geometric model was the better fit to the Hantavirus data, however, only the parameters of the negative binomial were reported as so are stored in the database. The uncertainty for the dispersion parameter is currently not stored in the database as the upper bound for the confidence interval is infinite, and currently infinite values are not supported." }, { "disease": "Ebola Virus Disease", "pathogen": "Ebola Virus", "epi_distribution": "offspring distribution", "probability_distribution": { - "prob_distribution": "pois", - "parameters": { } + "prob_distribution": "nbinom", + "parameters": { + "dispersion": 5.10 + } }, "summary_statistics": { - "mean": 1.5 + "mean": 1.5, + "mean_ci_limits": [0.85, 2.08], + "mean_ci": 90 }, "citation": { "author": ["J. O. Lloyd-Smith", "S. J. Schreiber", "P. E. Kopp", "W. M. Getz"], @@ -1650,7 +1670,7 @@ "right_truncated": false, "phase_bias_adjusted": false }, - "notes": "Only the mean for the negative binomial is reported and this is used to approximate the mean of the poisson" + "notes": "In the model comparison the poisson model was the better fit to the Ebola data, however, only the parameters of the negative binomial were reported as so are stored in the database. The uncertainty for the dispersion parameter is currently not stored in the database as the upper bound for the confidence interval is infinite, and currently infinite values are not supported." }, { "disease": "Dengue", From fbcf4dca8e1a92ea7a99c0874a4c1fed026339f5 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 13:37:32 +0100 Subject: [PATCH 43/72] updated get_percentiles documentation to use new naming convention --- R/get_percentiles.R | 10 +++++----- man/get_percentiles.Rd | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/R/get_percentiles.R b/R/get_percentiles.R index ac51b23f5..ecb0b4eeb 100644 --- a/R/get_percentiles.R +++ b/R/get_percentiles.R @@ -11,9 +11,9 @@ #' It also formats the vector names so that they can be correctly converted to #' numeric using `as.numeric()`. #' -#' @details The name format is "q_" followed by the value. Numbers with -#' decimal places should have the decimal point in the name (e.g. -#' `c(2.5 = 1, 97.5 = 10)`). +#' @details The name format is a character of the value of the percentile. +#' Numbers with decimal places should have the decimal point in the name (e.g. +#' `c("2.5" = 1, "97.5" = 10)`). #' #' @param percentiles A named vector of values at percentiles with the names the #' percentiles. See Details for the accepted vector name format. @@ -24,9 +24,9 @@ #' @examples #' \dontrun{ #' # 90th interval -#' get_percentiles(c(q_5 = 1, q_95 = 10)) +#' get_percentiles(c("5" = 1, "95" = 10)) #' # 95th interval -#' get_percentiles(c(q_2.5 = 1, q_97.5 = 10)) +#' get_percentiles(c("2.5" = 1, "97.5" = 10)) #' } get_percentiles <- function(percentiles) { # check input diff --git a/man/get_percentiles.Rd b/man/get_percentiles.Rd index f9cc32e6a..2ffaadcd9 100644 --- a/man/get_percentiles.Rd +++ b/man/get_percentiles.Rd @@ -26,16 +26,16 @@ It also formats the vector names so that they can be correctly converted to numeric using \code{as.numeric()}. } \details{ -The name format is "q_" followed by the value. Numbers with -decimal places should have the decimal point in the name (e.g. -\verb{c(2.5 = 1, 97.5 = 10)}). +The name format is a character of the value of the percentile. +Numbers with decimal places should have the decimal point in the name (e.g. +\code{c("2.5" = 1, "97.5" = 10)}). } \examples{ \dontrun{ # 90th interval -get_percentiles(c(q_5 = 1, q_95 = 10)) +get_percentiles(c("5" = 1, "95" = 10)) # 95th interval -get_percentiles(c(q_2.5 = 1, q_97.5 = 10)) +get_percentiles(c("2.5" = 1, "97.5" = 10)) } } \keyword{internal} From e4a85b4bfab4e23650bba14bcca4a71618a97cab Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 13:39:54 +0100 Subject: [PATCH 44/72] updated calc_dist_params if statements and documentation --- R/calc_dist_params.R | 20 ++++++++++++-------- man/calc_dist_params.Rd | 4 ++-- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/R/calc_dist_params.R b/R/calc_dist_params.R index 7c19b66dd..216dbc4e1 100644 --- a/R/calc_dist_params.R +++ b/R/calc_dist_params.R @@ -34,7 +34,7 @@ #' calc_dist_params( #' prob_dist = "gamma", #' summary_stats = create_epidist_summary_stats( -#' quantiles = c(q_2.5 = 0.2, q_97.5 = 9.2) +#' quantiles = c("2.5" = 0.2, "97.5" = 9.2) #' ), #' sample_size = NA #' ) @@ -50,7 +50,7 @@ calc_dist_params <- function(prob_dist, prob_dist_params, summary_stats, - sample_size = NA) { + sample_size) { if (is.na(prob_dist)) { message( "No adequate summary statistics available to calculate the parameters ", @@ -58,7 +58,8 @@ calc_dist_params <- function(prob_dist, ) return(NA) } - if (!is.null(summary_stats$quantiles)) { + + if (!is.null(summary_stats$quantiles) && any(!is.na(summary_stats$quantiles))) { # convert percentile names to numbers percentiles <- get_percentiles(summary_stats$quantiles) } else { @@ -73,10 +74,13 @@ calc_dist_params <- function(prob_dist, # extract dispersion disp <- unname(prob_dist_params[names(prob_dist_params) == "dispersion"]) + median_disp <- c(median = summary_stats$median, dispersion = disp) + + # extract mean and sd + mean_sd <- c(summary_stats$mean, summary_stats$sd) # convert from mean and sd - if (is.numeric(summary_stats$mean) && is.numeric(summary_stats$sd)) { - # unlist and remove NAs + if (all(is.numeric(mean_sd)) && !anyNA(mean_sd) && length(mean_sd) == 2) { summary_stats_ <- unlist(summary_stats) summary_stats_ <- summary_stats_[!is.na(summary_stats_)] # remove name prefixes from unlisting @@ -97,7 +101,7 @@ calc_dist_params <- function(prob_dist, convert_summary_stats_to_params, args = args )) - } else if (is.numeric(summary_stats$median) && is.numeric(disp)) { + } else if (all(is.numeric(median_disp) && length(median_disp) == 2)) { med <- summary_stats$median meanlog <- log(med / sqrt(1 + disp^2)) sdlog <- sqrt(log(1 + disp^2)) @@ -112,7 +116,7 @@ calc_dist_params <- function(prob_dist, percentiles = as.numeric(names(percentiles)) / 100 ) } else if (all(is.numeric(median_range)) && length(median_range) == 3 && - !is.na(sample_size)) { + !is.na(sample_size)) { prob_dist_params <- extract_param( type = "range", values = median_range, @@ -129,4 +133,4 @@ calc_dist_params <- function(prob_dist, # return params prob_dist_params -} \ No newline at end of file +} diff --git a/man/calc_dist_params.Rd b/man/calc_dist_params.Rd index a9c95ddfa..0c4b711c5 100644 --- a/man/calc_dist_params.Rd +++ b/man/calc_dist_params.Rd @@ -5,7 +5,7 @@ \title{Calculate the parameters of a probability distribution from a list of summary statistics} \usage{ -calc_dist_params(prob_dist, prob_dist_params, summary_stats, sample_size = NA) +calc_dist_params(prob_dist, prob_dist_params, summary_stats, sample_size) } \arguments{ \item{prob_dist}{A character string specifying the probability @@ -59,7 +59,7 @@ provided the lowest value is used for the calculation. calc_dist_params( prob_dist = "gamma", summary_stats = create_epidist_summary_stats( - quantiles = c(q_2.5 = 0.2, q_97.5 = 9.2) + quantiles = c("2.5" = 0.2, "97.5" = 9.2) ), sample_size = NA ) From 964646b19d2a7ffb38783c7852b509f64efd42b1 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 13:40:10 +0100 Subject: [PATCH 45/72] updated NAMESPACE --- NAMESPACE | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index b11fa48f9..4bbe3b49f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,44 +1,32 @@ # Generated by roxygen2: do not edit by hand -S3method("$<-",epiparam) -S3method("[",epiparam) -S3method("names<-",epiparam) S3method(cdf,epidist) S3method(cdf,vb_epidist) S3method(density,epidist) S3method(density,vb_epidist) S3method(discretise,default) S3method(discretise,epidist) -S3method(dplyr::dplyr_reconstruct,epiparam) S3method(family,epidist) S3method(format,epidist) -S3method(format,epiparam) S3method(format,vb_epidist) S3method(generate,epidist) S3method(generate,vb_epidist) S3method(get_citation,epidist) -S3method(get_citation,epiparam) +S3method(get_citation,multi_epidist) S3method(get_parameters,epidist) -S3method(head,epiparam) S3method(is_parameterised,epidist) -S3method(is_parameterised,epiparam) +S3method(is_parameterised,multi_epidist) S3method(mean,epidist) S3method(plot,epidist) S3method(plot,vb_epidist) S3method(print,epidist) -S3method(print,epiparam) S3method(print,multi_epidist) S3method(print,vb_epidist) S3method(quantile,epidist) S3method(quantile,vb_epidist) -S3method(summary,epiparam) -S3method(tail,epiparam) -export(as_epidist) -export(as_epiparam) -export(bind_epiparam) export(calc_disc_dist_quantile) export(clean_disease) -export(clean_epidist_name) +export(clean_epi_dist) export(convert_params_to_summary_stats) export(convert_summary_stats_to_params) export(create_epidist_citation) @@ -50,13 +38,11 @@ export(create_epidist_uncertainty) export(discretise) export(epidist) export(epidist_db) -export(epiparam) export(extract_param) export(get_citation) export(get_parameters) export(is_epidist) export(is_epidist_params) -export(is_epiparam) export(is_parameterised) export(is_truncated) export(is_vb_epidist) @@ -69,5 +55,3 @@ importFrom(distributional,generate) importFrom(stats,density) importFrom(stats,family) importFrom(stats,quantile) -importFrom(utils,head) -importFrom(utils,tail) From e332a5fbbed5a4eb0244bb4deb0dda64d4f1230d Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 13:45:53 +0100 Subject: [PATCH 46/72] always use snake_case var names --- R/epidist_db.R | 6 +++--- man/epidist_db.Rd | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/R/epidist_db.R b/R/epidist_db.R index d3aa887bd..1e4c84225 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -2,7 +2,7 @@ #' (database) #' #' @description Extract `` object(s) directly from -#' the library of epidemiological parameters. The \package{epiparameter} +#' the library of epidemiological parameters. The epiparameter #' library of epidemiological parameters is compiled from primary literature #' sources. The list output from [epidist_db()] can be subset by the data it #' contains, for example by: disease, pathogen, epidemiological distribution, @@ -230,7 +230,7 @@ epidist_db <- function(disease = "all", #' @keywords internal #' @noRd .read_epidist_db <- function() { - paramsJSON <- jsonlite::read_json( + params_json <- jsonlite::read_json( path = system.file( "extdata", "parameters.json", @@ -240,7 +240,7 @@ epidist_db <- function(disease = "all", ) # suppress individual constructor messages - multi_epidist <- suppressMessages(lapply(paramsJSON, .format_epidist)) + multi_epidist <- suppressMessages(lapply(params_json, .format_epidist)) # create and return class structure( diff --git a/man/epidist_db.Rd b/man/epidist_db.Rd index b8fcd89df..9f2b25390 100644 --- a/man/epidist_db.Rd +++ b/man/epidist_db.Rd @@ -65,7 +65,7 @@ An \verb{} object or list of \verb{} objects. } \description{ Extract \verb{} object(s) directly from -the library of epidemiological parameters. The \package{epiparameter} +the library of epidemiological parameters. The epiparameter library of epidemiological parameters is compiled from primary literature sources. The list output from \code{\link[=epidist_db]{epidist_db()}} can be subset by the data it contains, for example by: disease, pathogen, epidemiological distribution, From 50128041f670ba1fb038186fdde96a9a968ef82f Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 13:46:08 +0100 Subject: [PATCH 47/72] fixed is_epidist_params example --- R/epidist_utils.R | 5 ++++- man/is_epidist_params.Rd | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/R/epidist_utils.R b/R/epidist_utils.R index 75013ef24..20ca2fdc8 100644 --- a/R/epidist_utils.R +++ b/R/epidist_utils.R @@ -453,7 +453,10 @@ create_epidist_method_assess <- function(censored = NA, #' @export #' #' @examples -#' is_epidist_params(prob_dist_params = c(shape = 2, scale = 1)) +#' is_epidist_params( +#' prob_dist = "gamma", +#' prob_dist_params = c(shape = 2, scale = 1) +#' ) is_epidist_params <- function(prob_dist, prob_dist_params) { if (is.na(prob_dist) || anyNA(prob_dist_params)) { diff --git a/man/is_epidist_params.Rd b/man/is_epidist_params.Rd index b09a1a298..a1dbbd033 100644 --- a/man/is_epidist_params.Rd +++ b/man/is_epidist_params.Rd @@ -24,5 +24,8 @@ Check whether the vector of parameters for the probability distribution are in the set of possible parameters used in the epiparameter package } \examples{ -is_epidist_params(prob_dist_params = c(shape = 2, scale = 1)) +is_epidist_params( + prob_dist = "gamma", + prob_dist_params = c(shape = 2, scale = 1) +) } From 3f5eefae53735534489d37a287551e04a0203423 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Wed, 4 Oct 2023 22:00:50 +0100 Subject: [PATCH 48/72] updated accessors tests --- tests/testthat/test-accessors.R | 97 +++++++++++++++++++++++++++++++++ tests/testthat/test-cite.R | 56 ------------------- 2 files changed, 97 insertions(+), 56 deletions(-) create mode 100644 tests/testthat/test-accessors.R delete mode 100644 tests/testthat/test-cite.R diff --git a/tests/testthat/test-accessors.R b/tests/testthat/test-accessors.R new file mode 100644 index 000000000..b7c681de5 --- /dev/null +++ b/tests/testthat/test-accessors.R @@ -0,0 +1,97 @@ +test_that("get_parameters works as expected for epidist from db", { + # suppress message about return + edist <- suppressMessages(epidist_db(disease = "SARS", single_epidist = TRUE)) + params <- get_parameters(edist) + expect_vector(params, ptype = numeric(1), size = 2) + expect_named(params, c("meanlog", "sdlog")) +}) + +test_that("get_parameters works as expected for unparameterised epidist", { + edist <- suppressMessages( + epidist( + disease = "Ebola", + epi_dist = "incubation period", + prob_distribution = "gamma" + ) + ) + expect_true(is.na(get_parameters(edist))) +}) + +test_that("get_parameters works as expected for continuous epidist", { + edist <- suppressMessages( + epidist( + disease = "Ebola", + epi_dist = "incubation period", + prob_distribution = "gamma", + prob_distribution_params = c(shape = 1, scale = 1) + ) + ) + params <- get_parameters(edist) + expect_vector(params, ptype = numeric(1), size = 2) + expect_named(params, c("shape", "scale")) +}) + +test_that("get_parameters works as expected for discretised epidist", { + edist <- suppressMessages( + epidist( + disease = "Ebola", + epi_dist = "incubation period", + prob_distribution = "gamma", + prob_distribution_params = c(shape = 1, scale = 1), + discretise = TRUE + ) + ) + params <- get_parameters(edist) + expect_vector(params, ptype = numeric(1), size = 2) + expect_named(params, c("shape", "scale")) +}) + +test_that("get_citation works as expected for epidist from db", { + # suppress message about return + edist <- suppressMessages(epidist_db()) + citation <- get_citation(edist) + expect_true(is.list(citation)) + expect_length(citation, length(edist)) +}) + +test_that("get_citation works as expected for one entry from db", { + edist <- suppressMessages(epidist_db(single_epidist = TRUE)) + citation <- get_citation(edist) + expect_s3_class(citation, "bibentry") +}) + +test_that("get_citation works as expected for manual epidist", { + # suppress message about citation + edist <- suppressMessages( + epidist( + disease = "ebola", + epi_dist = "incubation_period", + prob_distribution = "gamma", + prob_distribution_params = c(shape = 1, scale = 1), + citation = create_epidist_citation( + author = "Smith_etal", + year = 2000, + title = "Incubation period of COVID", + journal = "Journal of Epi", + DOI = "10.19832/j.1366-9516.2012.09147.x" # nolint + ) + ) + ) + expect_s3_class(get_citation(edist), "bibentry") +}) + +test_that("get_citation works as expected for epidist missing citation", { + # suppress message about citation + edist <- suppressMessages( + epidist( + disease = "ebola", + epi_dist = "incubation_period", + prob_distribution = "gamma", + prob_distribution_params = c(shape = 1, scale = 1) + ) + ) + citation <- get_citation(edist) + expect_s3_class(citation, "bibentry") + expect_null(citation$year) + expect_identical(citation$title, "No citation") +}) diff --git a/tests/testthat/test-cite.R b/tests/testthat/test-cite.R deleted file mode 100644 index 1dda0c411..000000000 --- a/tests/testthat/test-cite.R +++ /dev/null @@ -1,56 +0,0 @@ -test_that("get_citation works as expected for epidist from db", { - eparam <- epiparam() - # suppress message about citation - edist <- suppressMessages(as_epidist(eparam[12, ])) - expect_s3_class(get_citation(edist), "bibentry") -}) - -test_that("get_citation works as expected for manual epidist", { - # suppress message about citation - edist <- suppressMessages( - epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - citation = create_epidist_citation( - author = "Smith_etal", - year = 2000, - title = "Incubation period of COVID", - journal = "Journal of Epi", - DOI = "10.19832/j.1366-9516.2012.09147.x" # nolint - ) - ) - ) - expect_s3_class(get_citation(edist), "bibentry") -}) - -test_that("get_citation works as expected for epidist missing citation", { - # suppress message about citation - edist <- suppressMessages( - epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1) - ) - ) - citation <- get_citation(edist) - expect_s3_class(citation, "bibentry") - expect_null(citation$year) - expect_identical(citation$title, "No citation") -}) - -test_that("get_citation works as expected for epiparam", { - eparam <- epiparam() - citation <- get_citation(eparam) - expect_type(citation, "list") - expect_length(citation, nrow(eparam)) -}) - -test_that("get_citation works as expected for epiparam with one entry", { - eparam <- epiparam() - citation <- get_citation(eparam[12, ]) - expect_type(citation, "list") - expect_length(citation, nrow(eparam[12, ])) -}) From 09408cefddadd3ee495427ebc9cf687adfecf84a Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 9 Oct 2023 12:02:35 +0100 Subject: [PATCH 49/72] fixed bug in epidist_db when single_epidist = TRUE --- R/epidist_db.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/epidist_db.R b/R/epidist_db.R index 1e4c84225..5f2355f0c 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -184,7 +184,7 @@ epidist_db <- function(disease = "all", if (single_epidist) { # select parameterised entries if (sum(is_param) >= 1) { - edist <- multi_epidist[is_param] + multi_epidist <- multi_epidist[is_param] } # select largest sample size idx <- which.max( @@ -194,14 +194,14 @@ epidist_db <- function(disease = "all", FUN.VALUE = numeric(1) ) ) - edist <- multi_epidist[[idx]] + single_epidist <- multi_epidist[[idx]] message( - "Using ", format(get_citation(edist)), ". \n", + "Using ", format(get_citation(single_epidist)), ". \n", "To retrieve the short citation use the 'get_citation' function" ) - return(edist) + return(single_epidist) } message( From 8338a4a55a62e591e91e20bc2c09e9dfab468a9b Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 9 Oct 2023 12:02:51 +0100 Subject: [PATCH 50/72] updated README --- README.Rmd | 16 ++++++++++------ man/figures/README-plot-epidist-1.png | Bin 12745 -> 38349 bytes 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.Rmd b/README.Rmd index d9e14b290..f3aea6fa6 100644 --- a/README.Rmd +++ b/README.Rmd @@ -47,16 +47,20 @@ library(epiparameter) To load the library of epidemiological parameters into `R`: ```{r load-data} -eparams <- epiparam() -eparams +epidists <- epidist_db() +epidists ``` -The library is an `` class, which underneath is a data frame. +This results a list of database entries. Each entry of the library is an `` object. -Each entry of the library can be converted into an `` object to be used. +The results can be filtered by disease and epidemiological distribution. Here we set `single_epidist = TRUE` as we only want a single database entry returned, and by default (`single_epidist = FALSE`) it will return all database entries that match the disease (`disease`) and epidemiological distribution (`epi_dist`). -```{r convert-epiparam} -influenza_incubation <- as_epidist(eparams[12, ]) +```{r load-single-epidist} +influenza_incubation <- epidist_db( + disease = "influenza", + epi_dist = "incubation period", + single_epidist = TRUE +) influenza_incubation ``` diff --git a/man/figures/README-plot-epidist-1.png b/man/figures/README-plot-epidist-1.png index e9c81341f562f8e55bb741a0109dbbb581d3f242..4ff32b97ff8a27b8ff32be132e8ac8ea5c9db626 100644 GIT binary patch literal 38349 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

+HlO9%@pRB+epmYh>fwDN>&9!ei$(CcF9xcud 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 literal 12745 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 Date: Mon, 9 Oct 2023 15:39:52 +0100 Subject: [PATCH 51/72] updated epiparameter vignette --- vignettes/epiparameter.Rmd | 157 ++++++++++++++++++------------------- 1 file changed, 75 insertions(+), 82 deletions(-) diff --git a/vignettes/epiparameter.Rmd b/vignettes/epiparameter.Rmd index 561078a2b..1e6aa3c8c 100644 --- a/vignettes/epiparameter.Rmd +++ b/vignettes/epiparameter.Rmd @@ -42,49 +42,39 @@ library(distributional) ## Working with {epiparameter} data -{epiparameter} introduces three new classes for working with epidemiological parameters in R: +{epiparameter} introduces two new classes for working with epidemiological parameters in R: -- ``: library of epidemiological parameters -- ``: singular set of epidemiological parameters -- ``: a singular set of epidemiological parameters for a vector-borne disease containing both an extrinsic and intrinsic distribution. This object contains two sets of parameters, one for the human (intrinsic) and one for the vector (extrinsic). +- ``: Contains the name of the disease, the name of the epidemiological distribution, parameters (if available) and citation information of parameter source, as well as other information. +- ``: A list of two `` objects for a vector-borne disease. One for the human (intrinsic) distribution, and one for the vector (extrinsic). ### Library of epidemiological parameters -First, we will introduce the library, or database, of epidemiological parameters available from {epiparameter}. The `` class is introduced to enable users to easily explore the range of parameters that are available. The library can be read into R using the `epiparam()` function. By default all entries in the library are supplied. +First, we will introduce the library, or database, of epidemiological parameters available from {epiparameter}. The library is stored in the package as a JSON file and can be read into R using the `epidist_db()` function. By default all entries in the library are supplied. ```{r read-in-library} -epi_dist_db <- epiparam() +epi_dist_db <- epidist_db() epi_dist_db ``` -The `` class has a custom printing method which gives a summary of the information included in the database including the number of distributions, number of diseases, number of different studies among other summary metrics, as well as the first six rows of the diseases, epidemiological distributions (`epi_distribution`) and probability distribution (`prob_distribution`). +The output is a list of `` objects, where each element in the list corresponds to an entry in the parameter database. *Technical note*: the reason the object does not look like a regular R list is because it uses a custom print method which will print a summary of the data to the console when there are more than 5 entries to prevent a large list flooding the console. When the number of database entries returned is less than or equal to 5 the print will look like a standard R list. -The `` class is based (i.e. inherits from) the data frame, and therefore the same subsetting and manipulation can be carried out, including the `head()` and `tail()` of the database. +To see a full list of the diseases and distributions stored in the library use the +`list_distributions()` function. Here we show the first six rows of the output. -```{r, subsetting-head-tail-epiparam} -head(epi_dist_db)[, 1:4] -tail(epi_dist_db)[, 1:4] +```{r, list-distributions} +head(list_distributions(multi_epidist = epi_dist_db)) ``` -The epidemiological library contains multiple columns, each storing different features of the parameter: +If the `list_distributions()` function is not supplied with a list of `` objects it can fetch the entries from the database. -```{r, epiparam-cols} -colnames(epi_dist_db) +```{r, list-distribution-read-db} +head(list_distributions()) ``` -If subsetting of the `` object removes one of the essential columns then the object is -converted to a data frame. For example, removing the `disease` column causes the below `` object -to be converted to a data frame. See the Epiverse-TRACE [blog post on extending data frames](https://epiverse-trace.github.io/posts/extend-dataframes/) for a more technical description. +`list_distributions()` can also subet the database, when either supplied to the function (first example) or when the entries are fetched directly from the database (second example). -```{r, epiparam-subset-disease} -epi_dist_df <- epi_dist_db[colnames(epi_dist_db) != "disease"] -``` - -To see a full list of the diseases and distributions stored in the library use the -`list_distributions()` function. Here we show the first six rows of the output. - -```{r, list_distributions} -head(list_distributions(epi_dist_db)) +```{r, list-distributions-subset} +list_distributions(disease = "Ebola") ``` More details on the data collation and the library of parameters can be found in @@ -92,89 +82,96 @@ the [Data Collation and Synthesis Protocol vignette](https://epiverse-trace.gith ### Single set of epidemiological parameters -The second class introduced in the {epiparameter} package is the `` class. This holds a single set of epidemiological parameters. +The core data structure introduced in the {epiparameter} package is the `` class. This holds a single set of epidemiological parameters. -An `` object can be converted from one of the rows of the `` object or can be created manually. First we will show the conversion of `` → ``. This uses the `as_epidist()` function. +An `` object can be: -```{r convert-epiparam-epidist} -# find entry for COVID-19 -epi_dist_covid <- epi_dist_db[epi_dist_db$disease == "COVID-19", ] +1. Pulled from database (`epidist_db()`) +2. Created manually (using the class constructor function: `epidist()`) -# find entry for COVID-19 incubation period -epi_dist_covid_incub <- epi_dist_covid[epi_dist_covid$epi_distribution == "incubation_period", ] # nolint +```{r convert-epiparam-epidist} +# from database + +# fetch for COVID-19 incubation period from database +# return only a single +covid_incubation <- epidist_db( + disease = "COVID-19", + epi_dist = "incubation period", + single_epidist = TRUE +) +covid_incubation + +# using constructor function +covid_incubation <- epidist( + disease = "COVID-19", + pathogen = "SARS-CoV-2", + epi_dist = "incubation period", + prob_distribution = "gamma", + prob_distribution_params = c(shape = 2, scale = 1), + summary_stats = create_epidist_summary_stats(mean = 2), + citation = create_epidist_citation( + author = c("John Smith", "Amy Jones"), + year = 2022, + title = "COVID Incubation Period", + journal = "Epi Journal", + DOI = "10.27861182.x" + ) +) +covid_incubation +``` -# select one of the COVID-19 incubation period -covid_incub <- epi_dist_covid_incub[10, ] +Not all arguments are specified in the example using the class constructor (`epidist()`) above, for example the `metadata` or parameter uncertainty (`uncertainty`) is not provided. See the help documentation for the `epidist()` function using `?epidist` to see each argument. Also see documentation for `` helper functions, e.g., `?create_epidist_citation()`. -# convert epiparam entry to epidist -covid_incub <- as_epidist(covid_incub) -covid_incub -``` +Manually creating `` objects can be especially useful if new parameter estimates become available but are not yet incorporated into the {epiparameter} library. -The `` object also has a custom printing method which shows the disease, pathogen (if known), the epidemiological distribution, a citation of the study the parameters are from and the probability distribution and parameter of that distribution (if available). +As seen in the examples in this vignette, the `` class has a custom printing method which shows the disease, pathogen (if known), the epidemiological distribution, a citation of the study the parameters are from and the probability distribution and parameter of that distribution (if available). -The opposite conversion from `` to `` can also be achieved using `as_epiparam()`. +::: {.alert .alert-success} +### Benefit of `` -```{r convert-epidist-epiparam} -as_epiparam(covid_incub) -``` +By providing a consistent and robust object to store epidemiological parameters, `` objects can be applied in epidemiological pipelines, for example [{episoap}](https://github.com/epiverse-trace/episoap). The data contained within the object (e.g. parameter values, pathogen type, etc.) can be modified but the pipeline will continue to operate because the class is unchanged. +::: -There are two alternatives to reading in `` objects and subsetting to ``. +The probability distribution (`prob_distribution`) argument requires the distribution specified in the standard R naming. In some cases these are the same as the distribution's name, e.g., `gamma` and `weibull`. Examples of where the distribution name and R name differ are lognormal and `lnorm`, negative binomial and `nbinom`, geometric and `geom`, and poisson and `pois`. -1. Extract an `` directly from the library with `epidist_db()`. -2. Create `` manually with constructor function. +## Subsetting database -The `epidist_db()` allows direct subsetting of the library and returns an `` of a -single set of epidemiological parameters. +The database can be subset directly by `epidist_db()`. Here the results can be subset by author. It is recommended to use the family name of the first author instead of the full name. Only the first author will be matching when the entrie is from a source with multiple authors. -```{r epidist_db} +```{r epidist-db-subset-author} epidist_db( disease = "COVID-19", - epi_dist = "incubation_period", - author = "Bui" -) -``` - -Additionally to using entries from the {epiparameter} library, `` objects can be manually created. -This may be especially useful if new parameter estimates become available but are not yet incorporated into the library. - -```{r} -ebola_incubation <- epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "lnorm", - prob_distribution_params = c(meanlog = 1, sdlog = 1) + epi_dist = "incubation period", + author = "Linton" ) ``` -::: {.alert .alert-success} -### Benefit of `` - -By providing a consistent and robust object to store epidemiological parameters, `` objects can be applied in epidemiological pipelines, for example [{episoap}](https://github.com/epiverse-trace/episoap). The data contained within the object (e.g. parameter values, pathogen type, etc.) can be modified but the pipeline will continue to operate because the class is unchanged. -::: +The results can be further subset using the `subset` argument, for example `subset = sample_size > 100` will return entries with a sample size greater than 100. See `?epidist_db()` for details on how to use this argument to subset which database entries get returned. -The probability distribution (`prob_distribution`) argument requires the distribution specified in the standard R naming. In some cases these are the same as the distribution's name, e.g., `gamma` and `weibull`. Examples of where the distribution name and R name differ are lognormal and `lnorm`, negative binomial and `nbinom`, geometric and `geom`, and poisson and `pois`. Extra arguments are also available in `epidist()` to add information on uncertainty and citation information. - -## Adding library entries +## Adding library entries and contributing to {epiparameter} If a set of epidemiological parameter has been inferred and is known to the user but has not yet been incorporated into the {epiparameter} database, these parameters can be manually added to the library. -To add entries to the library we provide a function to bind data to `` objects: `bind_epiparam()`. This function is provided as multiple data types (classes) can be bound to an existing `` object (which itself is a subclass of a ``). `bind_epiparam()` can bind ``, `` (including ``), `` and `lists`. - ```{r add-to-library} -bind_epiparam(epiparam = epi_dist_db, epi_obj = ebola_incubation) -bind_epiparam(epiparam = epi_dist_db, epi_obj = as_epiparam(ebola_incubation)) +# wrap in list to append to database +new_db <- append(epi_dist_db, list(covid_incubation)) ``` -Note that this only adds the parameters to the library (`` object) in the environment, and does not save to the database file in the package. +Note that this only adds the parameters to the library in the environment, and does not save to the database file in the package. -For binding columns to `` use either `tibble::add_column()` or `dplyr::bind_cols()`. Using `cbind()` will unclass the `` object (i.e. convert an `` to a ``). Note that `dplyr::bind_cols()` will print a message that a `` is being returned, but this is not the case. +The library of epidemiological parameters is a living database, as new studies are published we hope to incorporate these. Due to the large time requirement of searching for and recording parameters in the database we welcome others to add parameters by either making a pull request to the package or adding information to the contributing spreadsheet. These will be incorporated into the database by the package maintainers. See the [Data Collation and Synthesis Protocol](https://epiverse-trace.github.io/epiparameter/articles/data_protocol.html) vignette on information about contributing to the library of epidemiological parameters. ## Distribution functions `` objects store distributions, and mathematical functions of these distribution can easily be extracted directly from them. It is often useful to access the probability density function, cumulative distribution function, quantiles of the distribution, or generate random numbers from the distribution in the `` object. The distribution functions in {epiparameter} allow users to easily use these. ```{r epidist-dist-methods} +ebola_incubation <- epidist_db( + disease = "Ebola", + epi_dist = "incubation period", + single_epidist = TRUE +) + density(ebola_incubation, at = 0.5) cdf(ebola_incubation, q = 0.5) quantile(ebola_incubation, p = 0.5) @@ -206,7 +203,3 @@ Parameters are often reported in the literature as mean and standard deviation ( ### Extraction The functions `extract_param()` handles all the extraction of parameter estimates from summary statistics. The two extractions currently supported in {epiparameter} are from percentiles and from median and range. - -## Contributing to {epiparameter} - -The library of epidemiological parameters is a living database, as new studies are published we hope to incorporate these. Due to the large time requirement of searching for and recording parameters in the database we welcome others to add parameters to the contributing spreadsheet. These will be incorporated into the database by the package maintainers. See the [Data Collation and Synthesis Protocol](https://epiverse-trace.github.io/epiparameter/articles/data_protocol.html) vignette on information about contributing to the library of epidemiological parameters. From 2abbb795ab6870f172557c9dd1b2f083d370389d Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 9 Oct 2023 15:40:20 +0100 Subject: [PATCH 52/72] updated data_protocol vignette --- vignettes/data_protocol.Rmd | 66 ++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 38 deletions(-) diff --git a/vignettes/data_protocol.Rmd b/vignettes/data_protocol.Rmd index fd7e16e78..7099b7cc9 100644 --- a/vignettes/data_protocol.Rmd +++ b/vignettes/data_protocol.Rmd @@ -20,11 +20,15 @@ knitr::opts_chunk$set( ) ``` +```{r, load-epiparameter, echo=FALSE} +library(epiparameter) +``` + ## About the package -The [`{epiparameter}` R package](https://github.com/epiverse-trace/epiparameter) contains a library of epidemiological distribution data and functions that read and handle this data. The delay distributions describe the time between two events in epidemiology, for example incubation period, serial interval and onset-to-death; while the offspring distributions describe the number of secondary infections from a primary infection in disease transmission. The library is compiled by a process of collecting, reviewing and extracting data from peer-reviewed literature[^1], including research articles, systematic reviews and meta-analyses. +The [`{epiparameter}` R package](https://github.com/epiverse-trace/epiparameter) contains a library of epidemiological parameter data and functions that read and handle this data. The delay distributions describe the time between two events in epidemiology, for example incubation period, serial interval and onset-to-death; while the offspring distributions describe the number of secondary infections from a primary infection in disease transmission. The library is compiled by a process of collecting, reviewing and extracting data from peer-reviewed literature[^1], including research articles, systematic reviews and meta-analyses. -The `{epiparameter}` package will act as a 'living systematic review' (*sensu* @elliottLivingSystematicReviews2014) which will be actively updated and maintained to provide a reliable source of data on epidemiological distributions. To prevent bias in the collection or assessment of the data, a well-defined methodology of searching and refining is required. This document aims to provide transparency on the methodology used by the `{epiparameter}` maintainers by outlining the steps taken at each stage of the data handling. It can also serve as a guide to contributors wanting to search and provide epidemiological parameters currently missing from the library. Contributions can be added to [this google sheet](https://docs.google.com/spreadsheets/d/1zVpaaKkQ7aeMdRN2r0p-W4d2TtccL5HcIOp_w-lfkEQ/edit?usp=sharing). This protocol should also facilitate reproducibility in the searches, results and appraisal steps. +The `{epiparameter}` package will act as a 'living systematic review' (*sensu* @elliottLivingSystematicReviews2014) which will be actively updated and maintained to provide a reliable source of data on epidemiological distributions. To prevent bias in the collection or assessment of the data, a well-defined methodology of searching and refining is required. This document aims to provide transparency on the methodology used by the `{epiparameter}` maintainers by outlining the steps taken at each stage of the data handling. It can also serve as a guide to contributors wanting to search and provide epidemiological parameters currently missing from the library. This protocol should also facilitate reproducibility in the searches, results and appraisal steps. There is a large body of work on the methods to best conduct literature searches and data collection as part of systematic reviews and meta-analyses[^2], which we use as the basis for our protocol. These sources are: @@ -33,19 +37,26 @@ There is a large body of work on the methods to best conduct literature searches ## Objective of `{epiparameter}` -As defined by the PRISMA guidelines, having a clearly stated objective helps to refine the goal of the project. `{epiparameter}`'s objective is to provide a collection of distributions for a range of infectious diseases that is as accurate, unbiased and as comprehensive as possible. Such distributions will enable outbreak analysts to easily access these distributions for routine analysis. For example, delay distributions are necessary for: calculating case fatality rates adjusting for delay to outcome, quantifying implications of different screening measures and quarantine periods, estimating reproduction numbers, and scenario modelling using transmission dynamic models. +As defined by the PRISMA guidelines, having a clearly stated objective helps to refine the goal of the project. `{epiparameter}`'s objective is to provide information for a collection of distributions for a range of infectious diseases that is as accurate, unbiased and as comprehensive as possible. Such distributions will enable outbreak analysts to easily access these distributions for routine analysis. For example, delay distributions are necessary for: calculating case fatality rates adjusting for delay to outcome, quantifying implications of different screening measures and quarantine periods, estimating reproduction numbers, and scenario modelling using transmission dynamic models. + +## Contributing to the package + +To contribute to the `{epiparameter}` library of epidemiological parameter information, added your data to [this google sheet](https://docs.google.com/spreadsheets/d/1zVpaaKkQ7aeMdRN2r0p-W4d2TtccL5HcIOp_w-lfkEQ/edit?usp=sharing). This will then be integrated into the `{epiparameter}` library by the package maintainers, and the information will then be accessible to all `{epiparameter}` package users. ## Scope of package The `{epiparameter}` package spans a range of infectious diseases, including several distributions for each disease when available. The pathogens and diseases that are currently systematically searched for and included in the package library are: ```{r show-diseases, echo=FALSE} -db <- epiparameter::epiparam() -dupl_rows <- duplicated(db$disease) & duplicated(db$pathogen) +db <- epidist_db() +x <- lapply(db, "[[", "disease") +x <- unique(lapply(x, Reduce, f = c)) +disease <- sapply(x, "[[", 1) +pathogen <- sapply(x, "[[", 2) knitr::kable( data.frame( - Disease = db$disease[!dupl_rows], - Pathogen = db$pathogen[!dupl_rows] + Disease = disease, + Pathogen = pathogen ), align = "cc" ) @@ -54,11 +65,10 @@ knitr::kable( The distributions currently included in the literature search for each pathogen/disease are: ```{r, show-epidists, echo=FALSE} -db <- epiparameter::epiparam() -dupl_rows <- duplicated(db$epi_distribution) -epidist <- epiparameter::clean_epidist_name(db$epi_distribution[!dupl_rows]) +db <- epidist_db() +epi_dist <- clean_epi_dist(unique(sapply(db, "[[", "epi_dist"))) knitr::kable( - data.frame(epidist), + data.frame(epi_dist), align = "cc", col.names = "Epidemiological Distribution" ) @@ -84,7 +94,7 @@ Or if Web of Science is being used: This should refine the results to a more suitable set of literature. -1. **Literature search engines**: using a selection of search engines to prevent one source potentially omitting papers. Suggested search sites are: Google Scholar, Web of Science, PubMed, and Scopus. Across each site we performed the same search. +1. **Literature search engines**: using a selection of search engines to prevent one source potentially omitting papers. Suggested search sites are: Google Scholar, Web of Science, PubMed, and Scopus. 1. **Adding papers**: in addition to the database entries from papers that have been identified in a literature search, entries can be supplemented by recommendations (i.e. from the community) or through being cited by a paper in the literature search. Papers may be recommended by experts in research or public health communities. We plan to use two methods of community engagement. Firstly a [open-access Google sheet](https://docs.google.com/spreadsheets/d/1zVpaaKkQ7aeMdRN2r0p-W4d2TtccL5HcIOp_w-lfkEQ/edit?usp=sharing) allows people to add their distribution data which will then be reviewed by one of the `{epiparameter}` maintainers and incorporated if it meets quality checks. The second method - not yet implemented - involves community members uploading their data to [zenodo](https://zenodo.org/), which can then be read and loaded into R using `{epiparameter}` once checked. @@ -94,7 +104,7 @@ This should refine the results to a more suitable set of literature. 1. **Removing duplicates**: the library of parameters does not contain duplicates of studies, but multiple entries per study can be included if a paper reports multiple results (e.g. from the full data set and then a subset of the data). Studies that use the same data, subsets or supersets of data used in other papers in the library are included. -1. **Abstract and methods screening**: once a number of unique sources have been identified, each should be reviewed for its suitability by reviewing the abstract and searching for words or phrases in the paper that indicate it reports the parameters or summary statistics of a distribution, this can include searching the methods section for words on types of distributions (e.g. lognormal), fitting procedures (e.g. maximum likelihood or bayesian), or searching the results for parameter estimates. The `{epiparameter}` library includes entries where parameters or summary statistics are reported but a distribution is not specified. +1. **Abstract and methods screening**: once a number of unique sources have been identified, each should be reviewed for its suitability by reviewing the abstract and searching for words or phrases in the paper that indicate it reports the parameters or summary statistics of a distribution, this can include searching the methods section for words on types of distributions (e.g. lognormal), fitting procedures (e.g. maximum likelihood or bayesian), or searching the results for parameter estimates. The `{epiparameter}` library includes entries where parameters or summary statistics are reported but a distribution is not specified, and entries where the distribution is specified but the parameters are not reported. A database of unsuitable papers will be kept to remind maintainers which papers have not been included and aids in the updating of the database (see below) by preventing redundant reviewing a previously rejected paper. @@ -112,37 +122,17 @@ Note: systematic reviews focusing on effect sizes can be subject to publication **Extracting parameters**: for any underlying distributions (e.g. gamma, lognormal), parameters (e.g. shape/scale, meanlog/sdlog), and summary statistics (e.g. mean, standard deviation, median, range or quantiles) given in the paper, values should be recorded verbatim from the paper into the database. When these are read into R using the `{epiparameter}` package, other aspects of the distribution are automatically calculated and available. For example if the mean and standard deviation of a gamma distribution is reported for a serial interval these values will be stored in the database. But once in R, the shape and scale parameters of the gamma distribution will be automatically reconstructed and the resulting distribution available for use. -The `{epiparameter}` library exactly reflects the literature. By which we mean that information not present in the paper should not be imputed from prior knowledge (e.g. vector of a disease is known but not stated), or but performing calculating with reported values. This prevents the issue of not having clear provenance for the data in the library. +The `{epiparameter}` library exactly reflects the literature. By which we mean that information not present in the paper should not be imputed from prior knowledge (e.g. vector of a disease is known but not stated), or by performing calculating with reported values. This prevents the issue of not having clear provenance for the data in the library. -The minimal dataset that is required to be included in the `{epiparameter}` library is: +The requirements of each entry in the database is defined by the data dictionary. Here we outline the minimal dataset that is required to be included in the `{epiparameter}` library is: - Name of disease - Type of distribution -- Author(s) of the paper -- The year of publication -- The transmission mode of the pathogen (i.e. directly transmitted or vector-borne) +- Citation information (author(s) of the paper, the year of publication, publication title and journal, and DOI) - Whether the distribution is extrinsic (e.g. extrinsic incubation period). If the disease is not vector-borne this should be NA. -- The type of distribution fitted, either the only distribution fit or the best-fit from a set of candidate distributions -- Parameters or summary statistics for the distribution, these must be one of: - - Parameter of the distribution (e.g. shape and scale in the case of gamma, meanlog and sdlog in the case of lognormal, etc.) - - Mean and standard deviation (or equivalently variance or coefficient of variation) - - Median and range - - Any two quantiles. Ideally there would be a lower quantile (q < 0.5) and an upper quantile (q > 0.5) to ensure reliable estimation of parameters - Whether the distribution fitted was discretised, this is a boolean (true or false). -- The Digital Object Identifier (DOI) of the paper - -Data that are recommended but not essential: - -- Name of pathogen -- Sample size of data used to fit the distribution -- The region the data was collected, at either a national, continental or global level -- Type of vector -- Uncertainty in the estimated parameters or summary statistics, this needs to be provided with the type inference used (e.g. maximum likelihood or bayesian) to avoid potential misuse of uncertainty (e.g. mistaking confidence interval for credible interval) -- Additional unique identifiers for a paper, for example PubMed ID (PMID) -- Whether the distribution fitted adjusted for phase bias -- Whether the distribution used interval-censoring -- Whether the distribution was right-truncated and the truncation point -- 'Notes': this can include general statements about the distribution or methodology used in the paper. These notes can be accessed when using the package to make users aware of possible limitations in the distribution parameters that may not fit in other categories + +All other information for each database entry is non-essential. See the data dictionary included in `{epiparameter}` for all database fields with a description of each and the range of possible values each field can take. From 3069a88622b5c97c63cac1ef7f74ef78392f944e Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 9 Oct 2023 15:43:14 +0100 Subject: [PATCH 53/72] fix handling of NULL mean in mean.epidist --- R/epidist.R | 10 ++++++---- man/mean.epidist.Rd | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/R/epidist.R b/R/epidist.R index e5ec74ee8..e515166bf 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -954,14 +954,18 @@ is_truncated <- function(x) { #' @examples #' edist <- epidist_db( #' disease = "COVID-19", -#' epi_dist = "incubation_period", +#' epi_dist = "incubation period", #' single_epidist = TRUE #' ) #' mean(edist) mean.epidist <- function(x, ...) { # extract mean if given - mean <- x$summary_stats$mean + if (utils::hasName(x$summary_stats, "mean")) { + mean <- x$summary_stats$mean + } else { + return(NA) + } # if mean is not given try and convert from parameters if (is.na(mean) && is_parameterised(x)) { @@ -970,8 +974,6 @@ mean.epidist <- function(x, ...) { args <- c(dist, as.list(params)) summary_stats <- do.call(convert_params_to_summary_stats, args = args) mean <- summary_stats$mean - } else if (is.null(mean)) { - mean <- NA } # return mean or NA diff --git a/man/mean.epidist.Rd b/man/mean.epidist.Rd index 9d0a31649..de9405f81 100644 --- a/man/mean.epidist.Rd +++ b/man/mean.epidist.Rd @@ -20,7 +20,7 @@ Mean method for \verb{} class \examples{ edist <- epidist_db( disease = "COVID-19", - epi_dist = "incubation_period", + epi_dist = "incubation period", single_epidist = TRUE ) mean(edist) From 32e6cdb22b6304ead976877164a812b178bbcd2d Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 9 Oct 2023 15:43:42 +0100 Subject: [PATCH 54/72] params can be match subset in is_epidist_params --- R/epidist_utils.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/R/epidist_utils.R b/R/epidist_utils.R index 20ca2fdc8..e62386d4c 100644 --- a/R/epidist_utils.R +++ b/R/epidist_utils.R @@ -483,7 +483,9 @@ is_epidist_params <- function(prob_dist, prob_dist_params) { # check whether any combinations are valid matches <- vapply( - possible_params, setequal, y = names(prob_dist_params), + possible_params, + function(x, y) all(utils::hasName(y, name = x)), + y = prob_dist_params, FUN.VALUE = logical(1) ) From c7d5584216deda3f043c6b4055b842007c4b278f Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 9 Oct 2023 15:44:01 +0100 Subject: [PATCH 55/72] suppress epidist_db message in list_distributions --- R/list_distributions.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/R/list_distributions.R b/R/list_distributions.R index 061725de9..30774ad91 100644 --- a/R/list_distributions.R +++ b/R/list_distributions.R @@ -32,7 +32,9 @@ list_distributions <- function(disease = "all", multi_epidist) { # read in data if not given if (missing(multi_epidist)) { - multi_epidist <- epidist_db(disease = disease, epi_dist = epi_dist, ...) + multi_epidist <- suppressMessages( + epidist_db(disease = disease, epi_dist = epi_dist, ...) + ) } # wrap in list for apply functions From 9374b8d397bd4867685407e2769cc5bf8dcfadfc Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 9 Oct 2023 16:18:47 +0100 Subject: [PATCH 56/72] updated epidist documentation --- R/epidist.R | 3 +-- man/epidist.Rd | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/R/epidist.R b/R/epidist.R index e515166bf..238cc1322 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -137,8 +137,7 @@ new_epidist <- function(disease = list(), #' plug into epidemiological pipelines. Obtaining an `` object can be #' achieved in two main ways: #' 1. The epidemiological distribution is stored in -#' the `{epiparameter}` library and can be accessed by [epiparam()] and -#' [as_epidist()]. +#' the `{epiparameter}` library and can be accessed by [epidist_db()]. #' 2. The alternative method is when you have information #' (e.g. disease and distribution parameter estimates) and would like to input #' this into an `` object in order to work in existing analysis diff --git a/man/epidist.Rd b/man/epidist.Rd index 515f42840..59d372f32 100644 --- a/man/epidist.Rd +++ b/man/epidist.Rd @@ -99,8 +99,7 @@ plug into epidemiological pipelines. Obtaining an \verb{} object can be achieved in two main ways: \enumerate{ \item The epidemiological distribution is stored in -the \code{{epiparameter}} library and can be accessed by \code{\link[=epiparam]{epiparam()}} and -\code{\link[=as_epidist]{as_epidist()}}. +the \code{{epiparameter}} library and can be accessed by \code{\link[=epidist_db]{epidist_db()}}. \item The alternative method is when you have information (e.g. disease and distribution parameter estimates) and would like to input this into an \verb{} object in order to work in existing analysis From 0c3339d9bc9e05dd4e4a77d6eb28a1497c3e9200 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 9 Oct 2023 16:19:11 +0100 Subject: [PATCH 57/72] updated spelling and documentation --- NEWS.md | 2 +- R/epidist_utils.R | 5 ----- R/list_distributions.R | 1 + inst/WORDLIST | 2 ++ man/create_epidist_summary_stats.Rd | 8 -------- man/list_distributions.Rd | 2 ++ vignettes/epiparameter.Rmd | 4 ++-- 7 files changed, 8 insertions(+), 16 deletions(-) diff --git a/NEWS.md b/NEWS.md index e80e714f1..600ff5679 100644 --- a/NEWS.md +++ b/NEWS.md @@ -10,7 +10,7 @@ Initial release of {epiparameter}, an R package to work with epidemiological par * The package contains a few utility functions. * Four vignettes are included in this initial release. One as an introduction to the package (`epiparameter.Rmd`), one as an tutorial on converting and extracting parameters (`extract_convert.Rmd`), one on the protocol used to collect entries for the library of epidemiological parameters (`data_protocol.Rmd`) and a supplementary vignette which quantifies the bias from using the parameter extraction (`extract_param()`) from {epiparameter} (`extract-bias.Rmd`). * Unit tests and documentation files. -* Continuous integration workflows for R package checks, rendering the README.md, calculating test coverage, deploying the pkgdown website, updates the package citation, and validatingt the parameter library JSON file. +* Continuous integration workflows for R package checks, rendering the README.md, calculating test coverage, deploying the pkgdown website, updates the package citation, and validating the parameter library JSON file. ## Breaking changes diff --git a/R/epidist_utils.R b/R/epidist_utils.R index e62386d4c..2010e0928 100644 --- a/R/epidist_utils.R +++ b/R/epidist_utils.R @@ -238,11 +238,6 @@ create_epidist_region <- function(continent = NA_character_, #' interval around the median. #' @param median_ci A `numeric` specifying the confidence interval width #' of the median. -#' @param dispersion A `numeric` of the dispersion parameter of a distribution. -#' @param dispersion_ci_limits A `numeric` vector of length two of the -#' confidence interval around the dispersion. -#' @param dispersion_ci A `numeric` specifying the confidence interval -#' width of the dispersion parameter. #' @param lower_range The lower range of the data, used to infer the parameters #' of the distribution when not provided. #' @param upper_range The upper range of the data, used to infer the parameters diff --git a/R/list_distributions.R b/R/list_distributions.R index 30774ad91..046e69bb3 100644 --- a/R/list_distributions.R +++ b/R/list_distributions.R @@ -13,6 +13,7 @@ #' @inheritParams epidist #' @param multi_epidist Either an `` object or a list of `` #' objects. +#' @param ... [dots] Extra arguments to be passed to [epidist_db()]. #' #' @author Adam Kucharski, Joshua W. Lambert #' @export diff --git a/inst/WORDLIST b/inst/WORDLIST index 7531de3dd..ab36594a7 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -27,6 +27,7 @@ etal etc extdata lnorm +md meanlog medRxiv monkeypox @@ -34,6 +35,7 @@ mpox nbinom parameterisations parameterised +pkgdown poisson prob sd diff --git a/man/create_epidist_summary_stats.Rd b/man/create_epidist_summary_stats.Rd index 52030f736..364ced115 100644 --- a/man/create_epidist_summary_stats.Rd +++ b/man/create_epidist_summary_stats.Rd @@ -55,14 +55,6 @@ of the distribution when not provided.} \item{quantiles}{A \code{numeric} vector of the quantiles for the distribution. If quantiles are not provided a default empty vector with the 2.5th, 5th, 25th, 75th, 95th, 97.5th quantiles are supplied.} - -\item{dispersion}{A \code{numeric} of the dispersion parameter of a distribution.} - -\item{dispersion_ci_limits}{A \code{numeric} vector of length two of the -confidence interval around the dispersion.} - -\item{dispersion_ci}{A \code{numeric} specifying the confidence interval -width of the dispersion parameter.} } \value{ A nested list of summary statistics. The highest level are diff --git a/man/list_distributions.Rd b/man/list_distributions.Rd index 3fa7073d6..27dfa283d 100644 --- a/man/list_distributions.Rd +++ b/man/list_distributions.Rd @@ -12,6 +12,8 @@ list_distributions(disease = "all", epi_dist = "all", ..., multi_epidist) \item{epi_dist}{A \code{character} string with the name of the epidemiological distribution type.} +\item{...}{\link{dots} Extra arguments to be passed to \code{\link[=epidist_db]{epidist_db()}}.} + \item{multi_epidist}{Either an \verb{} object or a list of \verb{} objects.} } diff --git a/vignettes/epiparameter.Rmd b/vignettes/epiparameter.Rmd index 1e6aa3c8c..047a3a732 100644 --- a/vignettes/epiparameter.Rmd +++ b/vignettes/epiparameter.Rmd @@ -71,7 +71,7 @@ If the `list_distributions()` function is not supplied with a list of ` head(list_distributions()) ``` -`list_distributions()` can also subet the database, when either supplied to the function (first example) or when the entries are fetched directly from the database (second example). +`list_distributions()` can also subset the database, when either supplied to the function (first example) or when the entries are fetched directly from the database (second example). ```{r, list-distributions-subset} list_distributions(disease = "Ebola") @@ -136,7 +136,7 @@ The probability distribution (`prob_distribution`) argument requires the distrib ## Subsetting database -The database can be subset directly by `epidist_db()`. Here the results can be subset by author. It is recommended to use the family name of the first author instead of the full name. Only the first author will be matching when the entrie is from a source with multiple authors. +The database can be subset directly by `epidist_db()`. Here the results can be subset by author. It is recommended to use the family name of the first author instead of the full name. Only the first author will be matched when the entry is from a source with multiple authors. ```{r epidist-db-subset-author} epidist_db( From 2610e3be9d39a4f65492aa9f7110043de15bd8f1 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 9 Oct 2023 16:35:52 +0100 Subject: [PATCH 58/72] updated _pkgdown yaml --- _pkgdown.yml | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/_pkgdown.yml b/_pkgdown.yml index a29bdf450..d9e7a9301 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -14,13 +14,7 @@ reference: - ends_with("\\.epidist") - -has_keyword("epidist_distribution_functions") - validate_epidist - - - subtitle: epiparam object - desc: Class constructor, validator, and methods - contents: - - epiparam - - matches("\\.epiparam$") - - validate_epiparam + - ends_with("\\.multi_epidist") - subtitle: vb_epdist object desc: Class constructor, validator, and methods @@ -66,37 +60,20 @@ reference: contents: - starts_with("convert_") - - title: Calculate parameters from summary statistics - desc: Uses either extraction or conversion function to get distribution parameters - contents: - - calc_dist_params - - - title: Epi object conversion - desc: Convert between {epiparameter} classes - contents: - - as_epidist - - as_epiparam - - title: Epi object checking desc: Check an object is of a certain type or feature contents: - is_epidist - is_epidist_params - - is_epiparam - is_truncated - is_vb_epidist - is_parameterised - - title: Bind to epiparam - desc: Add entries to object - contents: - - bind_epiparam - - title: Cleaning desc: Standardise name of disease or epidist object contents: - clean_disease - - clean_epidist_name + - clean_epi_dist - title: Utility function contents: From 3e590b7189857719508ced5c4a2115a35ee4303f Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Tue, 10 Oct 2023 09:24:02 +0100 Subject: [PATCH 59/72] styling and linting --- R/calc_dist_params.R | 5 +++-- R/epidist.R | 1 - R/epidist_db.R | 17 +++++++++-------- R/epidist_utils.R | 2 -- R/list_distributions.R | 5 ++++- README.Rmd | 4 ++-- man/list_distributions.Rd | 5 ++++- vignettes/data_protocol.Rmd | 8 +++++--- vignettes/epiparameter.Rmd | 28 ++++++++++++++-------------- 9 files changed, 41 insertions(+), 34 deletions(-) diff --git a/R/calc_dist_params.R b/R/calc_dist_params.R index 216dbc4e1..84f7040bd 100644 --- a/R/calc_dist_params.R +++ b/R/calc_dist_params.R @@ -47,7 +47,7 @@ #' sample_size = 25 #' ) #' } -calc_dist_params <- function(prob_dist, +calc_dist_params <- function(prob_dist, # nolint cyclocomp prob_dist_params, summary_stats, sample_size) { @@ -59,7 +59,8 @@ calc_dist_params <- function(prob_dist, return(NA) } - if (!is.null(summary_stats$quantiles) && any(!is.na(summary_stats$quantiles))) { + if (!is.null(summary_stats$quantiles) && + !all(is.na(summary_stats$quantiles))) { # convert percentile names to numbers percentiles <- get_percentiles(summary_stats$quantiles) } else { diff --git a/R/epidist.R b/R/epidist.R index 238cc1322..d128ba693 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -958,7 +958,6 @@ is_truncated <- function(x) { #' ) #' mean(edist) mean.epidist <- function(x, ...) { - # extract mean if given if (utils::hasName(x$summary_stats, "mean")) { mean <- x$summary_stats$mean diff --git a/R/epidist_db.R b/R/epidist_db.R index 5f2355f0c..c81838445 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -419,7 +419,7 @@ epidist_db <- function(disease = "all", } # return params without uncertainty - if (!any(grepl(pattern = "ci", x = names(params)))) { + if (!any(grepl(pattern = "ci", x = names(params), fixed = TRUE))) { uncertainty <- lapply( vector(mode = "list", length = length(params)), function(x) x <- create_epidist_uncertainty() @@ -438,7 +438,7 @@ epidist_db <- function(disease = "all", for (i in seq_along(params)) { nm <- names(params)[i] nms <- names(params)[grepl(pattern = nm, x = names(params))] - if (!any(grepl(pattern = "_ci", x = nms))) { + if (!any(grepl(pattern = "_ci", x = nms, fixed = TRUE))) { params_ci <- list(params[[i]], c(NA_real_, NA_real_), NA_real_) names(params_ci) <- c(nm, paste0(nm, "_ci_limits"), paste0(nm, "_ci")) params_ <- append(params_, params_ci) @@ -449,16 +449,17 @@ epidist_db <- function(disease = "all", params <- params_ # params and uncertainty - ci_limits <- params[grepl(pattern = "ci_limits$", x = names(params))] - ci <- params[grepl(pattern = "ci$", x = names(params))] + ci_limits <- params[!is.na(names(params)) & + endsWith(names(params), suffix = "ci_limits")] + ci <- params[!is.na(names(params)) & endsWith(names(params), suffix = "ci")] ci_type <- switch(x$metadata$inference_method, - "mle" = "confidence_interval", - "bayesian" = "credible_interval", - NA_character_ + "mle" = "confidence_interval", + "bayesian" = "credible_interval", + NA_character_ ) # separate parameters and uncertainty - ci_idx <- grepl(pattern = "_ci", x = names(params)) + ci_idx <- grepl(pattern = "_ci", x = names(params), fixed = TRUE) uncertainty <- params[ci_idx] params <- params[!ci_idx] diff --git a/R/epidist_utils.R b/R/epidist_utils.R index 2010e0928..7470e378a 100644 --- a/R/epidist_utils.R +++ b/R/epidist_utils.R @@ -453,7 +453,6 @@ create_epidist_method_assess <- function(censored = NA, #' prob_dist_params = c(shape = 2, scale = 1) #' ) is_epidist_params <- function(prob_dist, prob_dist_params) { - if (is.na(prob_dist) || anyNA(prob_dist_params)) { return(FALSE) } @@ -727,7 +726,6 @@ clean_epidist_params.default <- function(prob_dist_params) { clean_epi_dist <- function(x) { checkmate::assert_character(x) gsub(pattern = "_|-", replacement = " ", x = trimws(tolower(x))) - } #' Standardise the names of diseases diff --git a/R/list_distributions.R b/R/list_distributions.R index 046e69bb3..dedff8f2f 100644 --- a/R/list_distributions.R +++ b/R/list_distributions.R @@ -26,7 +26,10 @@ #' #' # example filtering an existing list to incubation periods #' epidist_lst <- epidist_db(disease = "COVID-19") -#' list_distributions(multi_epidist = epidist_lst, epi_dist = "incubation period") +#' list_distributions( +#' multi_epidist = epidist_lst, +#' epi_dist = "incubation period" +#' ) list_distributions <- function(disease = "all", epi_dist = "all", ..., diff --git a/README.Rmd b/README.Rmd index f3aea6fa6..5110497f9 100644 --- a/README.Rmd +++ b/README.Rmd @@ -57,8 +57,8 @@ The results can be filtered by disease and epidemiological distribution. Here we ```{r load-single-epidist} influenza_incubation <- epidist_db( - disease = "influenza", - epi_dist = "incubation period", + disease = "influenza", + epi_dist = "incubation period", single_epidist = TRUE ) influenza_incubation diff --git a/man/list_distributions.Rd b/man/list_distributions.Rd index 27dfa283d..c9f4812dc 100644 --- a/man/list_distributions.Rd +++ b/man/list_distributions.Rd @@ -38,7 +38,10 @@ list_distributions(multi_epidist = epidist_lst) # example filtering an existing list to incubation periods epidist_lst <- epidist_db(disease = "COVID-19") -list_distributions(multi_epidist = epidist_lst, epi_dist = "incubation period") +list_distributions( + multi_epidist = epidist_lst, + epi_dist = "incubation period" +) } \author{ Adam Kucharski, Joshua W. Lambert diff --git a/vignettes/data_protocol.Rmd b/vignettes/data_protocol.Rmd index 7099b7cc9..876789a2f 100644 --- a/vignettes/data_protocol.Rmd +++ b/vignettes/data_protocol.Rmd @@ -51,8 +51,8 @@ The `{epiparameter}` package spans a range of infectious diseases, including sev db <- epidist_db() x <- lapply(db, "[[", "disease") x <- unique(lapply(x, Reduce, f = c)) -disease <- sapply(x, "[[", 1) -pathogen <- sapply(x, "[[", 2) +disease <- vapply(x, "[[", FUN.VALUE = character(1), 1) +pathogen <- vapply(x, "[[", FUN.VALUE = character(1), 2) knitr::kable( data.frame( Disease = disease, @@ -66,7 +66,9 @@ The distributions currently included in the literature search for each pathogen/ ```{r, show-epidists, echo=FALSE} db <- epidist_db() -epi_dist <- clean_epi_dist(unique(sapply(db, "[[", "epi_dist"))) +epi_dist <- clean_epi_dist(unique( + vapply(db, "[[", FUN.VALUE = character(1), "epi_dist") +)) knitr::kable( data.frame(epi_dist), align = "cc", diff --git a/vignettes/epiparameter.Rmd b/vignettes/epiparameter.Rmd index 047a3a732..6cd6adb46 100644 --- a/vignettes/epiparameter.Rmd +++ b/vignettes/epiparameter.Rmd @@ -95,25 +95,25 @@ An `` object can be: # fetch for COVID-19 incubation period from database # return only a single covid_incubation <- epidist_db( - disease = "COVID-19", - epi_dist = "incubation period", + disease = "COVID-19", + epi_dist = "incubation period", single_epidist = TRUE ) covid_incubation # using constructor function covid_incubation <- epidist( - disease = "COVID-19", - pathogen = "SARS-CoV-2", + disease = "COVID-19", + pathogen = "SARS-CoV-2", epi_dist = "incubation period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 1), - summary_stats = create_epidist_summary_stats(mean = 2), + prob_distribution = "gamma", + prob_distribution_params = c(shape = 2, scale = 1), + summary_stats = create_epidist_summary_stats(mean = 2), citation = create_epidist_citation( - author = c("John Smith", "Amy Jones"), - year = 2022, - title = "COVID Incubation Period", - journal = "Epi Journal", + author = c("John Smith", "Amy Jones"), + year = 2022, + title = "COVID Incubation Period", + journal = "Epi Journal", DOI = "10.27861182.x" ) ) @@ -141,7 +141,7 @@ The database can be subset directly by `epidist_db()`. Here the results can be s ```{r epidist-db-subset-author} epidist_db( disease = "COVID-19", - epi_dist = "incubation period", + epi_dist = "incubation period", author = "Linton" ) ``` @@ -167,8 +167,8 @@ The library of epidemiological parameters is a living database, as new studies a ```{r epidist-dist-methods} ebola_incubation <- epidist_db( - disease = "Ebola", - epi_dist = "incubation period", + disease = "Ebola", + epi_dist = "incubation period", single_epidist = TRUE ) From fd471effda3f4750276dda8a7e60e29945aab204 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Tue, 10 Oct 2023 09:24:56 +0100 Subject: [PATCH 60/72] updated tests and snaps --- tests/testthat/_snaps/epidist_db.md | 52 + tests/testthat/_snaps/epiparam.md | 264 -- tests/testthat/_snaps/list_distributions.md | 3724 +++++-------------- tests/testthat/test-accessors.R | 22 +- tests/testthat/test-calc_dist_params.R | 26 +- tests/testthat/test-checkers.R | 55 +- tests/testthat/test-epidist.R | 26 +- tests/testthat/test-epidist_db.R | 53 +- tests/testthat/test-epidist_utils.R | 101 +- tests/testthat/test-get_percentiles.R | 8 +- tests/testthat/test-list_distributions.R | 277 +- 11 files changed, 1236 insertions(+), 3372 deletions(-) create mode 100644 tests/testthat/_snaps/epidist_db.md delete mode 100644 tests/testthat/_snaps/epiparam.md diff --git a/tests/testthat/_snaps/epidist_db.md b/tests/testthat/_snaps/epidist_db.md new file mode 100644 index 000000000..d136b4def --- /dev/null +++ b/tests/testthat/_snaps/epidist_db.md @@ -0,0 +1,52 @@ +# epidist_db print method works as expected for > 5 + + Code + epidist_db() + Message + Returning 118 results that match the criteria (95 are parameterised). + Use subset to filter by entry variables or single_epidist to return a single entry. + To retrieve the short citation for each use the 'get_citation' function + Output + List of objects + Number of entries in library: 118 + Number of studies in library: 45 + Number of diseases: 23 + Number of delay distributions: 108 + Number of offspring distributions: 10 + +# epidist_db print method works as expected for <= 5 + + Code + epidist_db(disease = "SARS", epi_dist = "offspring distribution") + Message + Returning 2 results that match the criteria (2 are parameterised). + Use subset to filter by entry variables or single_epidist to return a single entry. + To retrieve the short citation for each use the 'get_citation' function + Output + [[1]] + Disease: SARS + Pathogen: SARS-Cov-1 + Epi Distribution: offspring distribution + Study: Lloyd-Smith JO, Schreiber SJ, Kopp PE, Getz WM (2005). "Superspreading + and the effect of individual variation on disease emergence." _Nature_. + doi:10.1038/nature04153 . + Distribution: nbinom + Parameters: + mean: 1.630 + dispersion: 0.160 + + [[2]] + Disease: SARS + Pathogen: SARS-Cov-1 + Epi Distribution: offspring distribution + Study: Lloyd-Smith JO, Schreiber SJ, Kopp PE, Getz WM (2005). "Superspreading + and the effect of individual variation on disease emergence." _Nature_. + doi:10.1038/nature04153 . + Distribution: nbinom + Parameters: + mean: 0.940 + dispersion: 0.170 + + attr(,"class") + [1] "multi_epidist" + diff --git a/tests/testthat/_snaps/epiparam.md b/tests/testthat/_snaps/epiparam.md deleted file mode 100644 index c12e2f373..000000000 --- a/tests/testthat/_snaps/epiparam.md +++ /dev/null @@ -1,264 +0,0 @@ -# epiparam print & format method works as expected - - Code - epiparam() - Output - Epiparam object - Number of distributions in library: 118 - Number of diseases: 23 - Number of delay distributions: 95 - Number of offspring distributions: 10 - Number of studies in library: 45 - - disease epi_distribution prob_distribution - 1 Adenovirus incubation_period lnorm - 2 Chikungunya incubation_period lnorm - 3 COVID-19 hospitalisation_to_death weibull - 4 COVID-19 hospitalisation_to_death lnorm - 5 COVID-19 incubation_period - 6 COVID-19 incubation_period - <112 more rows & 55 more cols not shown> - ---- - - Code - print(epiparam()) - Output - Epiparam object - Number of distributions in library: 118 - Number of diseases: 23 - Number of delay distributions: 95 - Number of offspring distributions: 10 - Number of studies in library: 45 - - disease epi_distribution prob_distribution - 1 Adenovirus incubation_period lnorm - 2 Chikungunya incubation_period lnorm - 3 COVID-19 hospitalisation_to_death weibull - 4 COVID-19 hospitalisation_to_death lnorm - 5 COVID-19 incubation_period - 6 COVID-19 incubation_period - <112 more rows & 55 more cols not shown> - ---- - - Code - format(epiparam()) - Output - Epiparam object - Number of distributions in library: 118 - Number of diseases: 23 - Number of delay distributions: 95 - Number of offspring distributions: 10 - Number of studies in library: 45 - - disease epi_distribution prob_distribution - 1 Adenovirus incubation_period lnorm - 2 Chikungunya incubation_period lnorm - 3 COVID-19 hospitalisation_to_death weibull - 4 COVID-19 hospitalisation_to_death lnorm - 5 COVID-19 incubation_period - 6 COVID-19 incubation_period - <112 more rows & 55 more cols not shown> - -# epiparam head & tails methods works as expected - - Code - head(epiparam()) - Output - disease pathogen epi_distribution author - 1 Adenovirus Adenovirus incubation_period Justin L.... - 2 Chikungunya Chikungunya Virus incubation_period Kara E R.... - 3 COVID-19 SARS-CoV-2 hospitalisation_to_death Natalie .... - 4 COVID-19 SARS-CoV-2 hospitalisation_to_death Natalie .... - 5 COVID-19 SARS-CoV-2 incubation_period Balram R.... - 6 COVID-19 SARS-CoV-2 incubation_period Christel.... - title - 1 Incubation periods of acute respiratory viral infections: a systematic review - 2 Incubation periods of mosquito-borne viral infections: a systematic review - 3 Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data - 4 Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data - 5 Incubation period for COVID-19: a systematic review and meta-analysis - 6 The incubation period of COVID-19: A meta-analysis - journal year sample_size region - 1 The Lancet Infectious Diseases 2009 14 USA - 2 The American Journal of Tropical Medicine and Hygiene 2014 21 Mixed - 3 Journal of Clinical Medicine 2020 39 China - 4 Journal of Clinical Medicine 2020 39 China - 5 Zeitschrift fur Gesundheitswissenschaften 2022 6241 Mixed - 6 International Journal of Infectious Diseases 2021 28675 Mixed - transmission_mode vector extrinsic prob_distribution - 1 experimental FALSE lnorm - 2 vector_borne Aedes albopictus FALSE lnorm - 3 natural_human_to_human FALSE weibull - 4 natural_human_to_human FALSE lnorm - 5 natural_natural_human_to_human FALSE - 6 natural_natural_human_to_human FALSE - inference_method mean mean_ci_limits mean_ci sd sd_ci_limits sd_ci - 1 mle NA NA, NA NA NA NA, NA NA - 2 mle NA NA, NA NA NA NA, NA NA - 3 bayesian 8.90 7.3, 10.4 95 5.7 4.3, 7.8 95 - 4 bayesian 13.00 8.7, 20.9 95 12.7 6.4, 26.0 95 - 5 5.74 5.18, 6.30 95 NA NA, NA NA - 6 6.38 5.79, 6.97 95 NA NA, NA NA - quantile_2.5 quantile_5 quantile_25 median median_ci_limits median_ci - 1 NA NA 4.8 5.6 4.8, 6.3 95 - 2 NA NA 2.9 3.0 0.5, 3.1 95 - 3 NA 1.7 NA 8.0 6.2, 9.8 95 - 4 NA 2.5 NA 9.1 6.7, 13.7 95 - 5 NA NA NA NA NA, NA NA - 6 NA NA NA NA NA, NA NA - quantile_75 quantile_87.5 quantile_95 quantile_97.5 lower_range upper_range - 1 6.5 NA NA NA NA NA - 2 3.0 NA NA NA NA NA - 3 NA NA 18.8 NA NA NA - 4 NA NA 33.1 NA NA NA - 5 NA NA NA NA NA NA - 6 NA NA NA NA NA NA - shape shape_ci_limits shape_ci scale scale_ci_limits scale_ci meanlog - 1 NA NA, NA NA NA NA, NA NA NA - 2 NA NA, NA NA NA NA, NA NA NA - 3 NA NA, NA NA NA NA, NA NA NA - 4 NA NA, NA NA NA NA, NA NA NA - 5 NA NA, NA NA NA NA, NA NA NA - 6 NA NA, NA NA NA NA, NA NA NA - meanlog_ci_limits meanlog_ci sdlog sdlog_ci_limits sdlog_ci dispersion - 1 NA, NA NA NA NA, NA NA 1.26 - 2 NA, NA NA NA NA, NA NA 1.04 - 3 NA, NA NA NA NA, NA NA NA - 4 NA, NA NA NA NA, NA NA NA - 5 NA, NA NA NA NA, NA NA NA - 6 NA, NA NA NA NA, NA NA NA - dispersion_ci_limits dispersion_ci precision precision_ci_limits precision_ci - 1 1.13, 1.38 95 NA NA, NA NA - 2 1.04, 1.08 95 NA NA, NA NA - 3 NA, NA NA NA NA, NA NA - 4 NA, NA NA NA NA, NA NA - 5 NA, NA NA NA NA, NA NA - 6 NA, NA NA NA NA, NA NA - truncation discretised censored right_truncated phase_bias_adjusted - 1 NA FALSE TRUE FALSE FALSE - 2 NA FALSE TRUE FALSE FALSE - 3 NA FALSE TRUE FALSE FALSE - 4 NA FALSE TRUE TRUE TRUE - 5 NA FALSE FALSE FALSE FALSE - 6 NA FALSE FALSE FALSE FALSE - notes - 1 Analysis on data from Commission on Acute Respiratory Disease. Experimental transmission of minor respiratory illness to human volunteers by filter-passing agents. I. Demonstration of two types of illness characterized by long and short incubation periods and diff erent clinical features. J Clin Invest 1947; 26: 957–82. - 2 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets - 3 This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions. - 4 This method applies right-truncation but only fits a lognormal distribution. - 5 This estimated mean incubation period is from a meta-analysis of 15 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model. - 6 This estimated mean incubation period is from a meta-analysis of 99 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model. - PMID DOI - 1 19393959 10.1016/S1473-3099(09)70069-6 - 2 24639305 10.4269/ajtmh.13-0403 - 3 32079150 10.3390/jcm9020538 - 4 32079150 10.3390/jcm9020538 - 5 33643779 10.1007/s10389-021-01478-1 - 6 33548553 10.1016/j.ijid.2021.01.069 - ---- - - Code - tail(epiparam()) - Output - disease pathogen epi_distribution author - 113 West Nile Fever West Nile Virus incubation_period Kara E R.... - 114 West Nile Fever West Nile Virus incubation_period Kara E R.... - 115 West Nile Fever West Nile Virus incubation_period Kara E R.... - 116 Yellow Fever Yellow Fever Viruses incubation_period Kara E R.... - 117 Yellow Fever Yellow Fever Viruses incubation_period Kara E R.... - 118 Zika Virus Disease Zika Virus incubation_period Justin L.... - title - 113 Incubation periods of mosquito-borne viral infections: a systematic review - 114 Incubation periods of mosquito-borne viral infections: a systematic review - 115 Incubation periods of mosquito-borne viral infections: a systematic review - 116 Incubation periods of mosquito-borne viral infections: a systematic review - 117 Incubation periods of mosquito-borne viral infections: a systematic review - 118 Times to key events in Zika virus infection and implications for blood donation: a systematic review - journal year sample_size - 113 The American Journal of Tropical Medicine and Hygiene 2014 18 - 114 The American Journal of Tropical Medicine and Hygiene 2014 8 - 115 The American Journal of Tropical Medicine and Hygiene 2014 6 - 116 The American Journal of Tropical Medicine and Hygiene 2014 91 - 117 The American Journal of Tropical Medicine and Hygiene 2014 80 - 118 Bulletin of the World Health Organization 2016 25 - region transmission_mode vector extrinsic - 113 Mixed multiple FALSE - 114 Mixed vector_borne mosquito FALSE - 115 Mixed organ_transplant FALSE - 116 Mixed multiple FALSE - 117 Mixed vector_borne mosquito FALSE - 118 Mixed vector_borne Aedes aegypti and Aedes albopictus FALSE - prob_distribution inference_method mean mean_ci_limits mean_ci sd - 113 lnorm mle NA NA, NA NA NA - 114 lnorm mle NA NA, NA NA NA - 115 lnorm mle NA NA, NA NA NA - 116 lnorm mle NA NA, NA NA NA - 117 lnorm mle NA NA, NA NA NA - 118 lnorm bayesian NA NA, NA NA NA - sd_ci_limits sd_ci quantile_2.5 quantile_5 quantile_25 median - 113 NA, NA NA NA 1.0 1.7 2.6 - 114 NA, NA NA NA NA 2.8 2.9 - 115 NA, NA NA NA NA 8.7 10.8 - 116 NA, NA NA NA 1.9 3.2 4.4 - 117 NA, NA NA NA 1.9 3.1 4.4 - 118 NA, NA NA NA 3.2 4.6 5.9 - median_ci_limits median_ci quantile_75 quantile_87.5 quantile_95 - 113 1.6, 3.5 95 3.8 NA 7.0 - 114 0.5, 3.1 95 3.0 NA NA - 115 8.4, 14.2 95 13.3 NA NA - 116 4, 5 95 6.3 NA 10.3 - 117 3.9, 5.0 95 6.2 NA 10.3 - 118 4.4, 7.6 95 7.6 NA 11.2 - quantile_97.5 lower_range upper_range shape shape_ci_limits shape_ci scale - 113 NA NA NA NA NA, NA NA NA - 114 NA NA NA NA NA, NA NA NA - 115 NA NA NA NA NA, NA NA NA - 116 NA NA NA NA NA, NA NA NA - 117 NA NA NA NA NA, NA NA NA - 118 NA NA NA NA NA, NA NA NA - scale_ci_limits scale_ci meanlog meanlog_ci_limits meanlog_ci sdlog - 113 NA, NA NA NA NA, NA NA NA - 114 NA, NA NA NA NA, NA NA NA - 115 NA, NA NA NA NA, NA NA NA - 116 NA, NA NA NA NA, NA NA NA - 117 NA, NA NA NA NA, NA NA NA - 118 NA, NA NA NA NA, NA NA NA - sdlog_ci_limits sdlog_ci dispersion dispersion_ci_limits dispersion_ci - 113 NA, NA NA 1.82 1.27, 2.67 95 - 114 NA, NA NA 1.04 1.04, 1.29 95 - 115 NA, NA NA 1.35 1.12, 1.47 95 - 116 NA, NA NA 1.66 1.48, 1.82 95 - 117 NA, NA NA 1.67 1.47, 1.84 95 - 118 NA, NA NA 1.50 1.2, 1.9 95 - precision precision_ci_limits precision_ci truncation discretised censored - 113 NA NA, NA NA NA FALSE TRUE - 114 NA NA, NA NA NA FALSE TRUE - 115 NA NA, NA NA NA FALSE TRUE - 116 NA NA, NA NA NA FALSE TRUE - 117 NA NA, NA NA NA FALSE TRUE - 118 NA NA, NA NA NA FALSE TRUE - right_truncated phase_bias_adjusted - 113 FALSE FALSE - 114 FALSE FALSE - 115 FALSE FALSE - 116 FALSE FALSE - 117 FALSE FALSE - 118 FALSE FALSE - notes - 113 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets - 114 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections - 115 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only tramsission by transplant or transfusion. - 116 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets - 117 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections - 118 Pooled analysis on several data sets, see Lessler et al. 2016 for references of datasets - PMID DOI - 113 24639305 10.4269/ajtmh.13-0403 - 114 24639305 10.4269/ajtmh.13-0403 - 115 24639305 10.4269/ajtmh.13-0403 - 116 24639305 10.4269/ajtmh.13-0403 - 117 24639305 10.4269/ajtmh.13-0403 - 118 27821887 10.2471/BLT.16.174540 - diff --git a/tests/testthat/_snaps/list_distributions.md b/tests/testthat/_snaps/list_distributions.md index ae97cde79..c2ee50786 100644 --- a/tests/testthat/_snaps/list_distributions.md +++ b/tests/testthat/_snaps/list_distributions.md @@ -1,2920 +1,856 @@ -# list_distributions works as expected with defaults +# list_distributions works as expected supplied with db Code - list_distributions(epiparam = eparam) + dist_tbl Output - disease epi_distribution prob_distribution author year - 1 Adenovirus incubation_period lnorm Justin L.... 2009 - 2 Chikungunya incubation_period lnorm Kara E R.... 2014 - 3 COVID-19 incubation_period Balram R.... 2022 - 4 COVID-19 incubation_period Christel.... 2021 - 5 COVID-19 incubation_period lnorm Conor Mc.... 2020 - 6 COVID-19 incubation_period lnorm Conor Mc.... 2020 - 7 COVID-19 incubation_period Ke Men, .... 2020 - 8 COVID-19 incubation_period weibull Long V. .... 2020 - 9 COVID-19 incubation_period Muluneh .... 2021 - 10 COVID-19 incubation_period lnorm Natalie .... 2020 - 11 COVID-19 incubation_period lnorm Natalie .... 2020 - 12 COVID-19 incubation_period lnorm Natalie .... 2020 - 13 COVID-19 incubation_period lnorm Stephen .... 2020 - 14 COVID-19 incubation_period lnorm Stephen .... 2020 - 15 COVID-19 incubation_period lnorm Stephen .... 2020 - 16 COVID-19 incubation_period lnorm Stephen .... 2020 - 17 Dengue incubation_period lnorm Kara E R.... 2014 - 18 Dengue incubation_period lnorm Kara E R.... 2014 - 19 Dengue incubation_period lnorm Miranda .... 2012 - 20 Dengue incubation_period lnorm Miranda .... 2012 - 21 Dengue incubation_period lnorm Miranda .... 2012 - 22 Ebola Virus Disease incubation_period lnorm Martin E.... 2011 - 23 Ebola Virus Disease incubation_period gamma WHO-Ebol.... 2015 - 24 Ebola Virus Disease incubation_period gamma WHO-Ebol.... 2015 - 25 Ebola Virus Disease incubation_period gamma WHO-Ebol.... 2015 - 26 Ebola Virus Disease incubation_period gamma WHO-Ebol.... 2015 - 27 Human Coronavirus incubation_period lnorm Justin L.... 2009 - 28 Influenza incubation_period lnorm Ashleigh.... 2010 - 29 Influenza incubation_period gamma Azra Gha.... 2009 - 30 Influenza incubation_period gamma Hiroshi .... 2011 - 31 Influenza incubation_period weibull Hiroshi .... 2011 - 32 Influenza incubation_period lnorm Justin L.... 2009 - 33 Influenza incubation_period lnorm Justin L.... 2009 - 34 Influenza incubation_period lnorm Justin L.... 2009 - 35 Influenza incubation_period lnorm Justin L.... 2009 - 36 Influenza incubation_period lnorm Nicholas.... 2009 - 37 Influenza incubation_period lnorm Nicholas.... 2009 - 38 Influenza incubation_period weibull Victor V.... 2016 - 39 Influenza incubation_period weibull Victor V.... 2016 - 40 Influenza incubation_period weibull Victor V.... 2016 - 41 Influenza incubation_period weibull Victor V.... 2015 - 42 Influenza incubation_period gamma Victor V.... 2015 - 43 Japanese Encephalitis incubation_period lnorm Kara E R.... 2014 - 44 Marburg Virus Disease incubation_period Boris I..... 2014 - 45 Marburg Virus Disease incubation_period Boris I..... 2014 - 46 Measles incubation_period lnorm Justin L.... 2009 - 47 MERS incubation_period lnorm Abdullah.... 2013 - 48 MERS incubation_period gamma B J Cowl.... 2015 - 49 Mpox incubation_period Fengying.... 2022 - 50 Mpox incubation_period Fengying.... 2022 - 51 Mpox incubation_period Fengying.... 2022 - 52 Mpox incubation_period lnorm Fuminari.... 2022 - 53 Mpox incubation_period gamma Giorgio .... 2022 - 54 Mpox incubation_period lnorm Kelly Ch.... 2022 - 55 Mpox incubation_period Shuqi Wa.... 2022 - 56 Mpox incubation_period Shuqi Wa.... 2022 - 57 Mpox incubation_period Shuqi Wa.... 2022 - 58 Mpox incubation_period lnorm Zachary .... 2022 - 59 Mpox incubation_period lnorm Zachary .... 2022 - 60 Parainfluenza incubation_period lnorm Justin L.... 2009 - 61 Rhinovirus incubation_period lnorm Justin L.... 2009 - 62 Rift Valley Fever incubation_period lnorm Kara E R.... 2014 - 63 RSV incubation_period lnorm Justin L.... 2009 - 64 RSV incubation_period lnorm Nicholas.... 2009 - 65 RSV incubation_period lnorm Nicholas.... 2009 - 66 SARS incubation_period lnorm Justin L.... 2009 - 67 West Nile Fever incubation_period lnorm Kara E R.... 2014 - 68 West Nile Fever incubation_period lnorm Kara E R.... 2014 - 69 West Nile Fever incubation_period lnorm Kara E R.... 2014 - 70 Yellow Fever incubation_period lnorm Kara E R.... 2014 - 71 Yellow Fever incubation_period lnorm Kara E R.... 2014 - 72 Zika Virus Disease incubation_period lnorm Justin L.... 2016 - sample_size - 1 14 - 2 21 - 3 6241 - 4 28675 - 5 1357 - 6 1269 - 7 59 - 8 19 - 9 1453 - 10 52 - 11 158 - 12 52 - 13 181 - 14 99 - 15 108 - 16 73 - 17 169 - 18 124 - 19 146 - 20 146 - 21 153 - 22 196 - 23 1798 - 24 49 - 25 957 - 26 792 - 27 13 - 28 316 - 29 16 - 30 72 - 31 72 - 32 124 - 33 151 - 34 90 - 35 78 - 36 151 - 37 151 - 38 395 - 39 173 - 40 222 - 41 229 - 42 229 - 43 6 - 44 76 - 45 18 - 46 55 - 47 23 - 48 166 - 49 NA - 50 NA - 51 NA - 52 18 - 53 255 - 54 22 - 55 16 - 56 27 - 57 114 - 58 35 - 59 36 - 60 11 - 61 28 - 62 23 - 63 24 - 64 24 - 65 24 - 66 157 - 67 18 - 68 8 - 69 6 - 70 91 - 71 80 - 72 25 + disease epi_distribution + 1 Adenovirus incubation period + 2 Human Coronavirus incubation period + 3 SARS incubation period + 4 Influenza incubation period + 5 Influenza incubation period + 6 Influenza incubation period + 7 Measles incubation period + 8 Parainfluenza incubation period + 9 RSV incubation period + 10 Rhinovirus incubation period + 11 Influenza incubation period + 12 Influenza incubation period + 13 RSV incubation period + 14 RSV incubation period + 15 Influenza incubation period + 16 Influenza incubation period + 17 Influenza incubation period + 18 Influenza incubation period + 19 Influenza incubation period + 20 Influenza incubation period + 21 Influenza incubation period + 22 Influenza incubation period + 23 Influenza incubation period + 24 Influenza serial interval + 25 Influenza incubation period + 26 Influenza generation time + 27 Marburg Virus Disease incubation period + 28 Marburg Virus Disease incubation period + 29 Marburg Virus Disease serial interval + 30 Marburg Virus Disease onset to death + 31 Marburg Virus Disease serial interval + 32 SARS offspring distribution + 33 SARS offspring distribution + 34 Smallpox offspring distribution + 35 Smallpox offspring distribution + 36 Smallpox offspring distribution + 37 Smallpox offspring distribution + 38 Mpox offspring distribution + 39 Pneumonic Plague offspring distribution + 40 Hantavirus Pulmonary Syndrome offspring distribution + 41 Ebola Virus Disease offspring distribution + 42 Dengue incubation period + 43 Dengue incubation period + 44 Dengue incubation period + 45 Zika Virus Disease incubation period + 46 Chikungunya incubation period + 47 Dengue incubation period + 48 Dengue incubation period + 49 Japanese Encephalitis incubation period + 50 Rift Valley Fever incubation period + 51 West Nile Fever incubation period + 52 West Nile Fever incubation period + 53 West Nile Fever incubation period + 54 Yellow Fever incubation period + 55 Yellow Fever incubation period + 56 Mpox incubation period + 57 Mpox incubation period + 58 Mpox incubation period + 59 Mpox incubation period + 60 Mpox incubation period + 61 Mpox serial interval + 62 Mpox serial interval + 63 Ebola Virus Disease incubation period + 64 Ebola Virus Disease onset to death + 65 Ebola Virus Disease incubation period + 66 Ebola Virus Disease incubation period + 67 Ebola Virus Disease incubation period + 68 Ebola Virus Disease incubation period + 69 Ebola Virus Disease serial interval + 70 Ebola Virus Disease serial interval + 71 Ebola Virus Disease serial interval + 72 Ebola Virus Disease serial interval + 73 Ebola Virus Disease hospitalisation to death + 74 Ebola Virus Disease hospitalisation to discharge + 75 Ebola Virus Disease notification to death + 76 Ebola Virus Disease notification to discharge + 77 Ebola Virus Disease onset to death + 78 Ebola Virus Disease onset to discharge + 79 MERS incubation period + 80 MERS serial interval + 81 MERS onset to hospitalisation + 82 MERS onset to death + 83 MERS onset to ventilation + 84 MERS onset to death + 85 MERS incubation period + 86 MERS serial interval + 87 COVID-19 incubation period + 88 COVID-19 incubation period + 89 COVID-19 incubation period + 90 COVID-19 serial interval + 91 COVID-19 incubation period + 92 COVID-19 incubation period + 93 COVID-19 incubation period + 94 COVID-19 incubation period + 95 COVID-19 incubation period + 96 COVID-19 incubation period + 97 COVID-19 onset to hospitalisation + 98 COVID-19 onset to hospitalisation + 99 COVID-19 onset to death + 100 COVID-19 hospitalisation to death + 101 COVID-19 incubation period + 102 COVID-19 onset to hospitalisation + 103 COVID-19 onset to hospitalisation + 104 COVID-19 onset to death + 105 COVID-19 hospitalisation to death + 106 COVID-19 incubation period + 107 COVID-19 incubation period + 108 COVID-19 incubation period + 109 COVID-19 incubation period + 110 Mpox serial interval + 111 Mpox serial interval + 112 Mpox serial interval + 113 Mpox incubation period + 114 Mpox incubation period + 115 Mpox incubation period + 116 Mpox incubation period + 117 Mpox incubation period + 118 Mpox incubation period + prob_distribution author year + 1 lnorm Justin L.... 2009 + 2 lnorm Justin L.... 2009 + 3 lnorm Justin L.... 2009 + 4 lnorm Justin L.... 2009 + 5 lnorm Justin L.... 2009 + 6 lnorm Justin L.... 2009 + 7 lnorm Justin L.... 2009 + 8 lnorm Justin L.... 2009 + 9 lnorm Justin L.... 2009 + 10 lnorm Justin L.... 2009 + 11 lnorm Nicholas.... 2009 + 12 lnorm Nicholas.... 2009 + 13 lnorm Nicholas.... 2009 + 14 lnorm Nicholas.... 2009 + 15 gamma Hiroshi .... 2011 + 16 weibull Hiroshi .... 2011 + 17 weibull Victor V.... 2015 + 18 gamma Victor V.... 2015 + 19 weibull Victor V.... 2016 + 20 weibull Victor V.... 2016 + 21 weibull Victor V.... 2016 + 22 lnorm Ashleigh.... 2010 + 23 gamma Azra Gha.... 2009 + 24 gamma Azra Gha.... 2009 + 25 lnorm Justin L.... 2009 + 26 weibull Justin L.... 2009 + 27 Boris I..... 2014 + 28 Boris I..... 2014 + 29 Boris I..... 2014 + 30 Robert C.... 2007 + 31 gamma Marco Aj.... 2012 + 32 nbinom J. O. Ll.... 2005 + 33 nbinom J. O. Ll.... 2005 + 34 nbinom J. O. Ll.... 2005 + 35 nbinom J. O. Ll.... 2005 + 36 nbinom J. O. Ll.... 2005 + 37 nbinom J. O. Ll.... 2005 + 38 nbinom J. O. Ll.... 2005 + 39 nbinom J. O. Ll.... 2005 + 40 nbinom J. O. Ll.... 2005 + 41 nbinom J. O. Ll.... 2005 + 42 lnorm Miranda .... 2012 + 43 lnorm Miranda .... 2012 + 44 lnorm Miranda .... 2012 + 45 lnorm Justin L.... 2016 + 46 lnorm Kara E R.... 2014 + 47 lnorm Kara E R.... 2014 + 48 lnorm Kara E R.... 2014 + 49 lnorm Kara E R.... 2014 + 50 lnorm Kara E R.... 2014 + 51 lnorm Kara E R.... 2014 + 52 lnorm Kara E R.... 2014 + 53 lnorm Kara E R.... 2014 + 54 lnorm Kara E R.... 2014 + 55 lnorm Kara E R.... 2014 + 56 lnorm Fuminari.... 2022 + 57 lnorm Kelly Ch.... 2022 + 58 gamma Giorgio .... 2022 + 59 lnorm Zachary .... 2022 + 60 lnorm Zachary .... 2022 + 61 gamma Zachary .... 2022 + 62 gamma Zachary .... 2022 + 63 lnorm Martin E.... 2011 + 64 gamma The-Ebol.... 2018 + 65 gamma WHO-Ebol.... 2015 + 66 gamma WHO-Ebol.... 2015 + 67 gamma WHO-Ebol.... 2015 + 68 gamma WHO-Ebol.... 2015 + 69 gamma WHO-Ebol.... 2015 + 70 gamma WHO-Ebol.... 2015 + 71 gamma WHO-Ebol.... 2015 + 72 gamma WHO-Ebol.... 2015 + 73 gamma WHO-Ebol.... 2015 + 74 gamma WHO-Ebol.... 2015 + 75 gamma WHO-Ebol.... 2015 + 76 gamma WHO-Ebol.... 2015 + 77 gamma WHO-Ebol.... 2015 + 78 gamma WHO-Ebol.... 2015 + 79 lnorm Abdullah.... 2013 + 80 lnorm Abdullah.... 2013 + 81 Abdullah.... 2013 + 82 Abdullah.... 2013 + 83 Abdullah.... 2013 + 84 gamma Kenji Mi.... 2015 + 85 gamma B J Cowl.... 2015 + 86 gamma B J Cowl.... 2015 + 87 Ke Men, .... 2020 + 88 Balram R.... 2022 + 89 Muluneh .... 2021 + 90 Muluneh .... 2021 + 91 Christel.... 2021 + 92 weibull Long V. .... 2020 + 93 lnorm Conor Mc.... 2020 + 94 lnorm Conor Mc.... 2020 + 95 lnorm Natalie .... 2020 + 96 lnorm Natalie .... 2020 + 97 gamma Natalie .... 2020 + 98 gamma Natalie .... 2020 + 99 lnorm Natalie .... 2020 + 100 weibull Natalie .... 2020 + 101 lnorm Natalie .... 2020 + 102 lnorm Natalie .... 2020 + 103 lnorm Natalie .... 2020 + 104 lnorm Natalie .... 2020 + 105 lnorm Natalie .... 2020 + 106 lnorm Stephen .... 2020 + 107 lnorm Stephen .... 2020 + 108 lnorm Stephen .... 2020 + 109 lnorm Stephen .... 2020 + 110 gamma Zihao Gu.... 2022 + 111 Shuqi Wa.... 2022 + 112 Shuqi Wa.... 2022 + 113 Shuqi Wa.... 2022 + 114 Shuqi Wa.... 2022 + 115 Shuqi Wa.... 2022 + 116 Fengying.... 2022 + 117 Fengying.... 2022 + 118 Fengying.... 2022 -# list_distributions works as expected with subset_db = FALSE +# list_distributions works as expected without db Code - list_distributions(epiparam = eparam, subset_db = FALSE) + dist_tbl Output - disease pathogen epi_distribution - 1 Adenovirus Adenovirus incubation_period - 2 Chikungunya Chikungunya Virus incubation_period - 3 COVID-19 SARS-CoV-2 incubation_period - 4 COVID-19 SARS-CoV-2 incubation_period - 5 COVID-19 SARS-CoV-2 incubation_period - 6 COVID-19 SARS-CoV-2 incubation_period - 7 COVID-19 SARS-CoV-2 incubation_period - 8 COVID-19 SARS-CoV-2 incubation_period - 9 COVID-19 SARS-CoV-2 incubation_period - 10 COVID-19 SARS-CoV-2 incubation_period - 11 COVID-19 SARS-CoV-2 incubation_period - 12 COVID-19 SARS-CoV-2 incubation_period - 13 COVID-19 SARS-CoV-2 incubation_period - 14 COVID-19 SARS-CoV-2 incubation_period - 15 COVID-19 SARS-CoV-2 incubation_period - 16 COVID-19 SARS-CoV-2 incubation_period - 17 Dengue Dengue Virus incubation_period - 18 Dengue Dengue Virus incubation_period - 19 Dengue Dengue Virus incubation_period - 20 Dengue Dengue Virus incubation_period - 21 Dengue Dengue Virus incubation_period - 22 Ebola Virus Disease Ebola Virus-Zaire Subtype incubation_period - 23 Ebola Virus Disease Ebola Virus incubation_period - 24 Ebola Virus Disease Ebola Virus incubation_period - 25 Ebola Virus Disease Ebola Virus incubation_period - 26 Ebola Virus Disease Ebola Virus incubation_period - 27 Human Coronavirus Human_Cov incubation_period - 28 Influenza Influenza-A-H1N1 incubation_period - 29 Influenza Influenza-A-H1N1Pdm incubation_period - 30 Influenza Influenza-A-H1N1 incubation_period - 31 Influenza Influenza-A-H1N1 incubation_period - 32 Influenza Influenza-A-H1N1 incubation_period - 33 Influenza Influenza-A incubation_period - 34 Influenza Influenza-A incubation_period - 35 Influenza Influenza-B incubation_period - 36 Influenza Influenza-A incubation_period - 37 Influenza Influenza-A incubation_period - 38 Influenza Influenza-A-H7N9 incubation_period - 39 Influenza Influenza-A-H7N9 incubation_period - 40 Influenza Influenza-A-H7N9 incubation_period - 41 Influenza Influenza-A-H7N9 incubation_period - 42 Influenza Influenza-A-H7N9 incubation_period - 43 Japanese Encephalitis Japanese Encephalitis Virus incubation_period - 44 Marburg Virus Disease Marburg Virus incubation_period - 45 Marburg Virus Disease Marburg Virus incubation_period - 46 Measles Measles Virus incubation_period - 47 MERS MERS-Cov incubation_period - 48 MERS MERS-Cov incubation_period - 49 Mpox Mpox Virus incubation_period - 50 Mpox Mpox Virus incubation_period - 51 Mpox Mpox Virus incubation_period - 52 Mpox Mpox Virus incubation_period - 53 Mpox Mpox Virus incubation_period - 54 Mpox Mpox Virus incubation_period - 55 Mpox Mpox Virus Clade I incubation_period - 56 Mpox Mpox Virus Clade IIa incubation_period - 57 Mpox Mpox Virus Clade IIb incubation_period - 58 Mpox Mpox Virus incubation_period - 59 Mpox Mpox Virus incubation_period - 60 Parainfluenza Parainfluenza Virus incubation_period - 61 Rhinovirus Rhinovirus incubation_period - 62 Rift Valley Fever Rift Valley Fever Virus incubation_period - 63 RSV RSV incubation_period - 64 RSV RSV incubation_period - 65 RSV RSV incubation_period - 66 SARS SARS-Cov-1 incubation_period - 67 West Nile Fever West Nile Virus incubation_period - 68 West Nile Fever West Nile Virus incubation_period - 69 West Nile Fever West Nile Virus incubation_period - 70 Yellow Fever Yellow Fever Viruses incubation_period - 71 Yellow Fever Yellow Fever Viruses incubation_period - 72 Zika Virus Disease Zika Virus incubation_period - author - 1 Justin L.... - 2 Kara E R.... - 3 Balram R.... - 4 Christel.... - 5 Conor Mc.... - 6 Conor Mc.... - 7 Ke Men, .... - 8 Long V. .... - 9 Muluneh .... - 10 Natalie .... - 11 Natalie .... - 12 Natalie .... - 13 Stephen .... - 14 Stephen .... - 15 Stephen .... - 16 Stephen .... - 17 Kara E R.... - 18 Kara E R.... - 19 Miranda .... - 20 Miranda .... - 21 Miranda .... - 22 Martin E.... - 23 WHO-Ebol.... - 24 WHO-Ebol.... - 25 WHO-Ebol.... - 26 WHO-Ebol.... - 27 Justin L.... - 28 Ashleigh.... - 29 Azra Gha.... - 30 Hiroshi .... - 31 Hiroshi .... - 32 Justin L.... - 33 Justin L.... - 34 Justin L.... - 35 Justin L.... - 36 Nicholas.... - 37 Nicholas.... - 38 Victor V.... - 39 Victor V.... - 40 Victor V.... - 41 Victor V.... - 42 Victor V.... - 43 Kara E R.... - 44 Boris I..... - 45 Boris I..... - 46 Justin L.... - 47 Abdullah.... - 48 B J Cowl.... - 49 Fengying.... - 50 Fengying.... - 51 Fengying.... - 52 Fuminari.... - 53 Giorgio .... - 54 Kelly Ch.... - 55 Shuqi Wa.... - 56 Shuqi Wa.... - 57 Shuqi Wa.... - 58 Zachary .... - 59 Zachary .... - 60 Justin L.... - 61 Justin L.... - 62 Kara E R.... - 63 Justin L.... - 64 Nicholas.... - 65 Nicholas.... - 66 Justin L.... - 67 Kara E R.... - 68 Kara E R.... - 69 Kara E R.... - 70 Kara E R.... - 71 Kara E R.... - 72 Justin L.... - title - 1 Incubation periods of acute respiratory viral infections: a systematic review - 2 Incubation periods of mosquito-borne viral infections: a systematic review - 3 Incubation period for COVID-19: a systematic review and meta-analysis - 4 The incubation period of COVID-19: A meta-analysis - 5 Incubation period of COVID-19: a rapid systematic review and meta-analysis of observational research - 6 Incubation period of COVID-19: a rapid systematic review and meta-analysis of observational research - 7 Estimate the incubation period of coronavirus 2019 (COVID-19) - 8 Estimation of the incubation period of COVID-19 in Vietnam - 9 Serial interval and incubation period of COVID-19: a systematic review and meta-analysis - 10 Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data - 11 Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data - 12 Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data - 13 The Incubation Period of Coronavirus Disease 2019 (COVID-19) From Publicly Reported Confirmed Cases: Estimation and Application - 14 The Incubation Period of Coronavirus Disease 2019 (COVID-19) From Publicly Reported Confirmed Cases: Estimation and Application - 15 The Incubation Period of Coronavirus Disease 2019 (COVID-19) From Publicly Reported Confirmed Cases: Estimation and Application - 16 The Incubation Period of Coronavirus Disease 2019 (COVID-19) From Publicly Reported Confirmed Cases: Estimation and Application - 17 Incubation periods of mosquito-borne viral infections: a systematic review - 18 Incubation periods of mosquito-borne viral infections: a systematic review - 19 The Incubation Periods of Dengue Viruses - 20 The Incubation Periods of Dengue Viruses - 21 The Incubation Periods of Dengue Viruses - 22 Incubation period of ebola hemorrhagic virus subtype zaire - 23 West African Ebola Epidemic after One Year — Slowing but Not Yet under Control - 24 West African Ebola Epidemic after One Year — Slowing but Not Yet under Control - 25 West African Ebola Epidemic after One Year — Slowing but Not Yet under Control - 26 West African Ebola Epidemic after One Year — Slowing but Not Yet under Control - 27 Incubation periods of acute respiratory viral infections: a systematic review - 28 Estimated epidemiologic parameters and morbidity associated with pandemic H1N1 influenza - 29 The Early Transmission Dynamics of H1N1pdm Influenza in the United Kingdom - 30 Estimation of the incubation period of influenza A (H1N1-2009) among imported cases: addressing censoring using outbreak data at the origin of importation - 31 Estimation of the incubation period of influenza A (H1N1-2009) among imported cases: addressing censoring using outbreak data at the origin of importation - 32 Outbreak of 2009 Pandemic Influenza A (H1N1) at a New York City School - 33 Incubation periods of acute respiratory viral infections: a systematic review - 34 Incubation periods of acute respiratory viral infections: a systematic review - 35 Incubation periods of acute respiratory viral infections: a systematic review - 36 Estimating incubation period distributions with coarse data - 37 Estimating incubation period distributions with coarse data - 38 Association between the Severity of Influenza A(H7N9) Virus Infections and Length of the Incubation Period - 39 Association between the Severity of Influenza A(H7N9) Virus Infections and Length of the Incubation Period - 40 Association between the Severity of Influenza A(H7N9) Virus Infections and Length of the Incubation Period - 41 Estimating the Distribution of the Incubation Periods of Human Avian Influenza A(H7N9) Virus Infections - 42 Estimating the Distribution of the Incubation Periods of Human Avian Influenza A(H7N9) Virus Infections - 43 Incubation periods of mosquito-borne viral infections: a systematic review - 44 Calculation of incubation period and serial interval from multiple outbreaks of Marburg virus disease - 45 Calculation of incubation period and serial interval from multiple outbreaks of Marburg virus disease - 46 Incubation periods of acute respiratory viral infections: a systematic review - 47 Hospital Outbreak of Middle East Respiratory Syndrome Coronavirus - 48 Preliminary epidemiological assessment of MERS-CoV outbreak in South Korea, May to June 2015 - 49 Study and prediction of the 2022 global monkeypox epidemic - 50 Study and prediction of the 2022 global monkeypox epidemic - 51 Study and prediction of the 2022 global monkeypox epidemic - 52 Estimated incubation period for monkeypox cases confirmed in the Netherlands, May 2022 - 53 Early Estimates of Monkeypox Incubation Period, Generation Time, and Reproduction Number, Italy, May-June 2022 - 54 Estimating the incubation period of monkeypox virus during the 2022 multi-national outbreak - 55 Serial intervals and incubation periods of the monkeypox virus clades - 56 Serial intervals and incubation periods of the monkeypox virus clades - 57 Serial intervals and incubation periods of the monkeypox virus clades - 58 Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2022 - 59 Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2023 - 60 Incubation periods of acute respiratory viral infections: a systematic review - 61 Incubation periods of acute respiratory viral infections: a systematic review - 62 Incubation periods of mosquito-borne viral infections: a systematic review - 63 Incubation periods of acute respiratory viral infections: a systematic review - 64 Estimating incubation period distributions with coarse data - 65 Estimating incubation period distributions with coarse data - 66 Incubation periods of acute respiratory viral infections: a systematic review - 67 Incubation periods of mosquito-borne viral infections: a systematic review - 68 Incubation periods of mosquito-borne viral infections: a systematic review - 69 Incubation periods of mosquito-borne viral infections: a systematic review - 70 Incubation periods of mosquito-borne viral infections: a systematic review - 71 Incubation periods of mosquito-borne viral infections: a systematic review - 72 Times to key events in Zika virus infection and implications for blood donation: a systematic review - journal year sample_size - 1 The Lancet Infectious Diseases 2009 14 - 2 The American Journal of Tropical Medicine and Hygiene 2014 21 - 3 Zeitschrift fur Gesundheitswissenschaften 2022 6241 - 4 International Journal of Infectious Diseases 2021 28675 - 5 BMJ Open 2020 1357 - 6 BMJ Open 2020 1269 - 7 medRxiv 2020 59 - 8 PLoS One 2020 19 - 9 BMC Infectious Diseases 2021 1453 - 10 Journal of Clinical Medicine 2020 52 - 11 Journal of Clinical Medicine 2020 158 - 12 Journal of Clinical Medicine 2020 52 - 13 Annals of Internal Medicine 2020 181 - 14 Annals of Internal Medicine 2020 99 - 15 Annals of Internal Medicine 2020 108 - 16 Annals of Internal Medicine 2020 73 - 17 The American Journal of Tropical Medicine and Hygiene 2014 169 - 18 The American Journal of Tropical Medicine and Hygiene 2014 124 - 19 PLoS One 2012 146 - 20 PLoS One 2012 146 - 21 PLoS One 2012 153 - 22 Osong Public Health and Research Perspectives 2011 196 - 23 The New England Journal of Medicine 2015 1798 - 24 The New England Journal of Medicine 2015 49 - 25 The New England Journal of Medicine 2015 957 - 26 The New England Journal of Medicine 2015 792 - 27 The Lancet Infectious Diseases 2009 13 - 28 Canadian Medical Association Journal 2010 316 - 29 PLoS Currents 2009 16 - 30 Journal of Theoretical Biology 2011 72 - 31 Journal of Theoretical Biology 2011 72 - 32 The New England Journal of Medicine 2009 124 - 33 The Lancet Infectious Diseases 2009 151 - 34 The Lancet Infectious Diseases 2009 90 - 35 The Lancet Infectious Diseases 2009 78 - 36 Statistics in Medicine 2009 151 - 37 Statistics in Medicine 2009 151 - 38 PLoS One 2016 395 - 39 PLoS One 2016 173 - 40 PLoS One 2016 222 - 41 American Journal of Epidemiology 2015 229 - 42 American Journal of Epidemiology 2015 229 - 43 The American Journal of Tropical Medicine and Hygiene 2014 6 - 44 BMC Research Notes 2014 76 - 45 BMC Research Notes 2014 18 - 46 The Lancet Infectious Diseases 2009 55 - 47 The New England Journal of Medicine 2013 23 - 48 Eurosurveillance 2015 166 - 49 Journal of Biosafety and Biosecurity 2022 NA - 50 Journal of Biosafety and Biosecurity 2022 NA - 51 Journal of Biosafety and Biosecurity 2022 NA - 52 Eurosurveillance 2022 18 - 53 Emerging Infectious Diseases 2022 255 - 54 medRxiv 2022 22 - 55 Journal of Travel Medicine 2022 16 - 56 Journal of Travel Medicine 2022 27 - 57 Journal of Travel Medicine 2022 114 - 58 medRxiv 2022 35 - 59 medRxiv 2022 36 - 60 The Lancet Infectious Diseases 2009 11 - 61 The Lancet Infectious Diseases 2009 28 - 62 The American Journal of Tropical Medicine and Hygiene 2014 23 - 63 The Lancet Infectious Diseases 2009 24 - 64 Statistics in Medicine 2009 24 - 65 Statistics in Medicine 2009 24 - 66 The Lancet Infectious Diseases 2009 157 - 67 The American Journal of Tropical Medicine and Hygiene 2014 18 - 68 The American Journal of Tropical Medicine and Hygiene 2014 8 - 69 The American Journal of Tropical Medicine and Hygiene 2014 6 - 70 The American Journal of Tropical Medicine and Hygiene 2014 91 - 71 The American Journal of Tropical Medicine and Hygiene 2014 80 - 72 Bulletin of the World Health Organization 2016 25 - region transmission_mode - 1 USA experimental - 2 Mixed vector_borne - 3 Mixed natural_natural_human_to_human - 4 Mixed natural_natural_human_to_human - 5 Mixed natural_natural_human_to_human - 6 Mixed natural_natural_human_to_human - 7 China natural_natural_human_to_human - 8 Vietnam natural_natural_human_to_human - 9 Mixed natural_natural_human_to_human - 10 China natural_natural_human_to_human - 11 China natural_natural_human_to_human - 12 China natural_human_to_human - 13 Mixed natural_human_to_human - 14 Mixed natural_human_to_human - 15 Mixed natural_human_to_human - 16 China natural_human_to_human - 17 Mixed multiple - 18 Mixed vector_borne - 19 Mixed vector_borne - 20 Mixed vector_borne - 21 Mixed vector_borne - 22 Kikwit, Democratic Republic of Congo natural_natural_human_to_human - 23 West Africa natural_natural_human_to_human - 24 Guinea natural_natural_human_to_human - 25 Liberia natural_natural_human_to_human - 26 Sierra Leone natural_natural_human_to_human - 27 UK experimental - 28 Canada natural_unknown - 29 UK natural_unknown - 30 Japan natural_unknown - 31 Japan natural_unknown - 32 New York, USA natural_unknown - 33 Mixed mixed - 34 Mixed mixed - 35 USA experimental - 36 Mixed unknown - 37 Mixed unknown - 38 China natural_unknown - 39 China natural_unknown - 40 China natural_unknown - 41 China natural_unknown - 42 China natural_unknown - 43 Mixed vector_borne - 44 Mixed mixed - 45 Mixed mixed - 46 Mixed natural_unknown - 47 Saudi Arabia natural_natural_human_to_human - 48 South Korea natural_unknown - 49 USA natural_unknown - 50 Europe natural_unknown - 51 Global natural_unknown - 52 Netherlands natural_natural_human_to_human - 53 Italy natural_natural_human_to_human - 54 USA natural_natural_human_to_human - 55 Congo natural_unknown - 56 USA natural_unknown - 57 mixed natural_unknown - 58 USA natural_natural_human_to_human - 59 USA natural_natural_human_to_human - 60 Mixed experimental - 61 USA experimental - 62 Mixed vector_borne - 63 Mixed mixed - 64 Mixed unknown - 65 Mixed unknown - 66 Mixed natural_unknown - 67 Mixed multiple - 68 Mixed vector_borne - 69 Mixed organ_transplant - 70 Mixed multiple - 71 Mixed vector_borne - 72 Mixed vector_borne - vector extrinsic prob_distribution - 1 FALSE lnorm - 2 Aedes albopictus FALSE lnorm - 3 FALSE - 4 FALSE - 5 FALSE lnorm - 6 FALSE lnorm - 7 FALSE - 8 FALSE weibull - 9 FALSE - 10 FALSE lnorm - 11 FALSE lnorm - 12 FALSE lnorm - 13 FALSE lnorm - 14 FALSE lnorm - 15 FALSE lnorm - 16 FALSE lnorm - 17 FALSE lnorm - 18 Aedes aegypti and Aedes albopictus FALSE lnorm - 19 Aedes aegypti and Aedes albopictus TRUE lnorm - 20 Aedes aegypti and Aedes albopictus TRUE lnorm - 21 Aedes aegypti and Aedes albopictus FALSE lnorm - 22 FALSE lnorm - 23 FALSE gamma - 24 FALSE gamma - 25 FALSE gamma - 26 FALSE gamma - 27 FALSE lnorm - 28 FALSE lnorm - 29 FALSE gamma - 30 FALSE gamma - 31 FALSE weibull - 32 FALSE lnorm - 33 FALSE lnorm - 34 FALSE lnorm - 35 FALSE lnorm - 36 FALSE lnorm - 37 FALSE lnorm - 38 FALSE weibull - 39 FALSE weibull - 40 FALSE weibull - 41 FALSE weibull - 42 FALSE gamma - 43 mosquito FALSE lnorm - 44 FALSE - 45 FALSE - 46 FALSE lnorm - 47 FALSE lnorm - 48 FALSE gamma - 49 FALSE - 50 FALSE - 51 FALSE - 52 FALSE lnorm - 53 FALSE gamma - 54 FALSE lnorm - 55 FALSE - 56 FALSE - 57 FALSE - 58 FALSE lnorm - 59 FALSE lnorm - 60 FALSE lnorm - 61 FALSE lnorm - 62 mosquito FALSE lnorm - 63 FALSE lnorm - 64 FALSE lnorm - 65 FALSE lnorm - 66 FALSE lnorm - 67 FALSE lnorm - 68 mosquito FALSE lnorm - 69 FALSE lnorm - 70 FALSE lnorm - 71 mosquito FALSE lnorm - 72 Aedes aegypti and Aedes albopictus FALSE lnorm - inference_method mean mean_ci_limits mean_ci sd sd_ci_limits sd_ci - 1 mle NA NA, NA NA NA NA, NA NA - 2 mle NA NA, NA NA NA NA, NA NA - 3 5.74 5.18, 6.30 95 NA NA, NA NA - 4 6.38 5.79, 6.97 95 NA NA, NA NA - 5 mle NA NA, NA NA NA NA, NA NA - 6 mle 5.80 5.0, 6.7 95 NA NA, NA NA - 7 5.84 5.07, 6.55 95 2.98 2.31, 3.72 95 - 8 bayesian 6.40 4.89, 8.50 95 3.05 3.05, 5.30 95 - 9 6.50 5.9, 7.1 95 NA NA, NA NA - 10 bayesian 5.00 4.2, 6.0 95 3.00 2.1, 4.5 95 - 11 bayesian 5.60 5.0, 6.3 95 2.80 2.2, 3.6 95 - 12 bayesian 5.60 4.4, 4.8 95 3.90 2.4, 6.9 95 - 13 mle 5.50 NA, NA NA NA NA, NA NA - 14 mle NA NA, NA NA NA NA, NA NA - 15 mle NA NA, NA NA NA NA, NA NA - 16 mle NA NA, NA NA NA NA, NA NA - 17 mle NA NA, NA NA NA NA, NA NA - 18 mle NA NA, NA NA NA NA, NA NA - 19 bayesian 15.00 10, 20 95 NA NA, NA NA - 20 bayesian 6.50 4.8, 8.8 95 NA NA, NA NA - 21 bayesian 5.97 5.5, 6.4 95 1.64 NA, NA NA - 22 mle 12.70 NA, NA NA 4.31 NA, NA NA - 23 mle 10.30 9.9, 10.7 95 8.20 7.8, 8.6 95 - 24 mle 12.60 9.1, 17.1 95 13.10 9.6, 19.6 95 - 25 mle 10.00 9.6, 10.5 95 7.60 7.1, 8.1 95 - 26 mle 10.40 9.8, 11.0 95 8.60 8.0, 9.3 95 - 27 bayesian NA NA, NA NA NA NA, NA NA - 28 4.30 2.6, 6.6 95 NA NA, NA NA - 29 mle 2.05 NA, NA NA 0.49 NA, NA NA - 30 mle NA NA, NA NA NA NA, NA NA - 31 mle NA NA, NA NA NA NA, NA NA - 32 mle NA NA, NA NA NA NA, NA NA - 33 mle NA NA, NA NA NA NA, NA NA - 34 mle NA NA, NA NA NA NA, NA NA - 35 mle NA NA, NA NA NA NA, NA NA - 36 mle NA NA, NA NA NA NA, NA NA - 37 mle NA NA, NA NA NA NA, NA NA - 38 bayesian 3.50 3.2, 3.8 95 NA NA, NA NA - 39 bayesian 3.70 3.4, 4.1 95 NA NA, NA NA - 40 bayesian 3.30 2.9, 3.6 95 NA NA, NA NA - 41 mle 3.40 3.0, 3.7 95 1.70 NA, NA NA - 42 mle 4.50 2.8, 16.2 95 3.30 NA, NA NA - 43 mle NA NA, NA NA NA NA, NA NA - 44 NA NA, NA NA NA NA, NA NA - 45 NA NA, NA NA NA NA, NA NA - 46 mle NA NA, NA NA NA NA, NA NA - 47 mle NA NA, NA NA NA NA, NA NA - 48 bayesian 6.70 6.1, 7.3 95 NA NA, NA NA - 49 8.13 4.9, 19.5 95 NA NA, NA NA - 50 8.08 4.8, 21.0 95 NA NA, NA NA - 51 8.23 4.9, 21.4 95 NA NA, NA NA - 52 bayesian 9.00 6.6, 10.9 95 NA NA, NA NA - 53 bayesian 9.10 6.5, 10.9 95 NA NA, NA NA - 54 bayesian 7.60 6.2, 9.7 95 1.80 1.6, 2.2 95 - 55 NA NA, NA NA NA NA, NA NA - 56 NA NA, NA NA NA NA, NA NA - 57 NA NA, NA NA NA NA, NA NA - 58 bayesian 7.50 6.0, 9.8 95 4.90 3.2, 8.8 95 - 59 bayesian 5.60 4.3, 7.8 95 4.40 2.8, 8.7 95 - 60 mle NA NA, NA NA NA NA, NA NA - 61 mle NA NA, NA NA NA NA, NA NA - 62 mle NA NA, NA NA NA NA, NA NA - 63 mle NA NA, NA NA NA NA, NA NA - 64 mle NA NA, NA NA NA NA, NA NA - 65 mle NA NA, NA NA NA NA, NA NA - 66 mle NA NA, NA NA NA NA, NA NA - 67 mle NA NA, NA NA NA NA, NA NA - 68 mle NA NA, NA NA NA NA, NA NA - 69 mle NA NA, NA NA NA NA, NA NA - 70 mle NA NA, NA NA NA NA, NA NA - 71 mle NA NA, NA NA NA NA, NA NA - 72 bayesian NA NA, NA NA NA NA, NA NA - quantile_2.5 quantile_5 quantile_25 median median_ci_limits median_ci - 1 NA NA 4.80 5.60 4.8, 6.3 95 - 2 NA NA 2.90 3.00 0.5, 3.1 95 - 3 NA NA NA NA NA, NA NA - 4 NA NA NA NA NA, NA NA - 5 NA NA NA NA NA, NA NA - 6 NA NA NA 5.10 4.5, 5.8 95 - 7 2.69 NA NA 5.01 4, 6 95 - 8 1.35 1.90 NA 6.10 NA, NA NA - 9 NA NA NA NA NA, NA NA - 10 NA 1.70 NA 4.30 3.5, 5.1 95 - 11 NA 2.30 NA 5.00 4.4, 5.6 95 - 12 NA 1.70 NA 4.60 3.7, 5.7 95 - 13 2.20 NA NA 5.10 4.5, 5.8 95 - 14 2.60 NA NA 5.70 4.9, 6.8 95 - 15 2.10 NA NA 5.50 4.4, 7.0 95 - 16 2.50 NA NA 4.80 4.2, 5.6 95 - 17 NA NA 4.50 5.60 5.3, 6.0 95 - 18 NA NA 4.30 5.30 5.0, 5.7 95 - 19 5.00 NA NA NA NA, NA NA - 20 2.40 NA NA NA NA, NA NA - 21 3.40 NA NA NA NA, NA NA - 22 NA NA NA NA NA, NA NA - 23 NA NA NA NA NA, NA NA - 24 NA NA NA NA NA, NA NA - 25 NA NA NA NA NA, NA NA - 26 NA NA NA NA NA, NA NA - 27 NA NA 2.90 3.20 2.8, 3.7 95 - 28 NA NA NA 4.00 NA, NA NA - 29 NA NA NA NA NA, NA NA - 30 NA NA NA 1.51 1.47, 1.55 95 - 31 NA NA NA 1.43 1.21, 1.65 95 - 32 NA 0.90 NA 1.40 1.0, 1.8 95 - 33 NA 0.70 1.10 1.40 1.3, 1.5 95 - 34 NA 1.40 1.70 1.90 1.8, 2.0 95 - 35 NA 0.30 0.40 0.60 0.5, 0.6 95 - 36 NA 0.73 NA 1.46 1.35, 1.57 95 - 37 NA 0.73 NA 1.43 1.33, 1.54 95 - 38 NA NA NA NA NA, NA NA - 39 NA NA NA NA NA, NA NA - 40 NA NA NA NA NA, NA NA - 41 NA NA NA NA NA, NA NA - 42 NA NA NA NA NA, NA NA - 43 NA NA 8.10 8.40 5.1, 9.4 95 - 44 NA NA NA NA NA, NA NA - 45 NA NA NA 7.00 NA, NA NA - 46 NA 8.90 10.90 12.50 11.8, 13.3 95 - 47 NA 2.20 NA 5.20 1.9, 14.7 NA - 48 NA NA NA 6.30 5.7, 6.8 95 - 49 NA NA NA NA NA, NA NA - 50 NA NA NA NA NA, NA NA - 51 NA NA NA NA NA, NA NA - 52 3.60 4.20 NA 8.50 6.6, 10.9 95 - 53 NA 2.00 NA NA NA, NA NA - 54 NA NA NA 6.40 5.1, 7.9 95 - 55 NA NA 8.00 9.50 NA, NA NA - 56 NA NA 11.39 16.76 NA, NA NA - 57 NA NA NA 8.26 7.55, 8.97 95 - 58 NA NA NA NA NA, NA NA - 59 NA NA NA NA NA, NA NA - 60 NA NA 2.10 2.60 2.1, 3.1 95 - 61 NA 0.80 1.30 1.90 1.4, 2.4 95 - 62 NA NA 3.10 4.00 3.4, 4.9 95 - 63 NA 3.10 3.80 4.40 3.9, 4.9 95 - 64 NA 3.05 NA 4.41 3.90, 4.92 95 - 65 NA 3.11 NA 4.41 3.89, 4.94 95 - 66 NA 1.50 2.70 4.00 3.6, 4.4 95 - 67 NA 1.00 1.70 2.60 1.6, 3.5 95 - 68 NA NA 2.80 2.90 0.5, 3.1 95 - 69 NA NA 8.70 10.80 8.4, 14.2 95 - 70 NA 1.90 3.20 4.40 4, 5 95 - 71 NA 1.90 3.10 4.40 3.9, 5.0 95 - 72 NA 3.20 4.60 5.90 4.4, 7.6 95 - quantile_75 quantile_87.5 quantile_95 quantile_97.5 lower_range upper_range - 1 6.50 NA NA NA NA NA - 2 3.00 NA NA NA NA NA - 3 NA NA NA NA NA NA - 4 NA NA NA NA NA NA - 5 NA NA NA NA NA NA - 6 NA NA 11.70 NA NA NA - 7 NA NA NA 12.89 NA NA - 8 NA NA 11.90 13.04 NA NA - 9 NA NA NA NA NA NA - 10 NA NA 10.60 NA NA NA - 11 NA NA 10.80 NA NA NA - 12 NA NA 12.30 NA NA NA - 13 NA NA NA 11.50 NA NA - 14 NA NA NA 12.50 NA NA - 15 NA NA NA 14.70 NA NA - 16 NA NA NA 9.20 NA NA - 17 7.10 NA NA NA NA NA - 18 6.60 NA NA NA NA NA - 19 NA NA NA 33.00 NA NA - 20 NA NA NA 15.00 NA NA - 21 NA NA NA 10.00 NA NA - 22 NA NA NA NA NA NA - 23 NA NA NA NA NA NA - 24 NA NA NA NA NA NA - 25 NA NA NA NA NA NA - 26 NA NA NA NA NA NA - 27 3.50 NA NA NA NA NA - 28 NA NA NA NA NA NA - 29 NA NA NA NA NA NA - 30 NA NA 3.43 NA NA NA - 31 NA NA 3.18 NA NA NA - 32 NA NA 2.20 NA NA NA - 33 1.90 NA 2.80 NA NA NA - 34 2.20 NA 2.70 NA NA NA - 35 0.70 NA 1.10 NA NA NA - 36 NA NA 2.94 NA NA NA - 37 NA NA 2.83 NA NA NA - 38 NA NA NA NA NA NA - 39 NA NA NA NA NA NA - 40 NA NA NA NA NA NA - 41 NA NA 6.50 NA NA NA - 42 NA NA 11.00 NA NA NA - 43 8.60 NA NA NA NA NA - 44 NA NA NA NA 2 26 - 45 NA NA NA NA 2 13 - 46 14.40 NA 17.70 NA NA NA - 47 NA NA 12.40 NA NA NA - 48 NA NA 12.10 NA NA NA - 49 NA NA NA NA NA NA - 50 NA NA NA NA NA NA - 51 NA NA 20.00 NA NA NA - 52 NA NA 17.30 19.90 NA NA - 53 NA NA 20.00 NA NA NA - 54 NA NA 17.10 NA NA NA - 55 12.25 NA NA NA NA NA - 56 23.91 NA NA NA NA NA - 57 NA NA NA NA NA NA - 58 NA NA NA NA NA NA - 59 NA NA NA NA NA NA - 60 3.20 NA NA NA NA NA - 61 2.70 NA 4.50 NA NA NA - 62 5.30 NA NA NA NA NA - 63 5.10 NA 6.30 NA NA NA - 64 NA NA 6.39 NA NA NA - 65 NA NA 6.26 NA NA NA - 66 5.90 NA 10.60 NA NA NA - 67 3.80 NA 7.00 NA NA NA - 68 3.00 NA NA NA NA NA - 69 13.30 NA NA NA NA NA - 70 6.30 NA 10.30 NA NA NA - 71 6.20 NA 10.30 NA NA NA - 72 7.60 NA 11.20 NA NA NA - shape shape_ci_limits shape_ci scale scale_ci_limits scale_ci meanlog - 1 NA NA, NA NA NA NA, NA NA NA - 2 NA NA, NA NA NA NA, NA NA NA - 3 NA NA, NA NA NA NA, NA NA NA - 4 NA NA, NA NA NA NA, NA NA NA - 5 NA NA, NA NA NA NA, NA NA 1.66 - 6 NA NA, NA NA NA NA, NA NA 1.63 - 7 NA NA, NA NA NA NA, NA NA NA - 8 NA NA, NA NA NA NA, NA NA NA - 9 NA NA, NA NA NA NA, NA NA NA - 10 NA NA, NA NA NA NA, NA NA NA - 11 NA NA, NA NA NA NA, NA NA NA - 12 NA NA, NA NA NA NA, NA NA NA - 13 NA NA, NA NA NA NA, NA NA NA - 14 NA NA, NA NA NA NA, NA NA NA - 15 NA NA, NA NA NA NA, NA NA NA - 16 NA NA, NA NA NA NA, NA NA NA - 17 NA NA, NA NA NA NA, NA NA NA - 18 NA NA, NA NA NA NA, NA NA NA - 19 NA NA, NA NA NA NA, NA NA NA - 20 NA NA, NA NA NA NA, NA NA NA - 21 NA NA, NA NA NA NA, NA NA 1.75 - 22 NA NA, NA NA NA NA, NA NA NA - 23 NA NA, NA NA NA NA, NA NA NA - 24 NA NA, NA NA NA NA, NA NA NA - 25 NA NA, NA NA NA NA, NA NA NA - 26 NA NA, NA NA NA NA, NA NA NA - 27 NA NA, NA NA NA NA, NA NA NA - 28 NA NA, NA NA NA NA, NA NA NA - 29 NA NA, NA NA NA NA, NA NA NA - 30 3.27 NA, NA NA 0.51 NA, NA NA NA - 31 1.74 NA, NA NA 1.83 NA, NA NA NA - 32 NA NA, NA NA NA NA, NA NA NA - 33 NA NA, NA NA NA NA, NA NA NA - 34 NA NA, NA NA NA NA, NA NA NA - 35 NA NA, NA NA NA NA, NA NA NA - 36 NA NA, NA NA NA NA, NA NA NA - 37 NA NA, NA NA NA NA, NA NA NA - 38 NA NA, NA NA NA NA, NA NA NA - 39 2.30 1.80, 2.89 95 4.21 3.62, 4.85 95 NA - 40 2.03 1.62, 2.52 95 3.74 3.20, 4.36 95 NA - 41 NA NA, NA NA NA NA, NA NA NA - 42 NA NA, NA NA NA NA, NA NA NA - 43 NA NA, NA NA NA NA, NA NA NA - 44 NA NA, NA NA NA NA, NA NA NA - 45 NA NA, NA NA NA NA, NA NA NA - 46 NA NA, NA NA NA NA, NA NA NA - 47 NA NA, NA NA NA NA, NA NA NA - 48 NA NA, NA NA NA NA, NA NA NA - 49 NA NA, NA NA NA NA, NA NA NA - 50 NA NA, NA NA NA NA, NA NA NA - 51 NA NA, NA NA NA NA, NA NA NA - 52 NA NA, NA NA NA NA, NA NA NA - 53 NA NA, NA NA NA NA, NA NA NA - 54 NA NA, NA NA NA NA, NA NA NA - 55 NA NA, NA NA NA NA, NA NA NA - 56 NA NA, NA NA NA NA, NA NA NA - 57 NA NA, NA NA NA NA, NA NA NA - 58 NA NA, NA NA NA NA, NA NA 1.80 - 59 NA NA, NA NA NA NA, NA NA 1.50 - 60 NA NA, NA NA NA NA, NA NA NA - 61 NA NA, NA NA NA NA, NA NA NA - 62 NA NA, NA NA NA NA, NA NA NA - 63 NA NA, NA NA NA NA, NA NA NA - 64 NA NA, NA NA NA NA, NA NA NA - 65 NA NA, NA NA NA NA, NA NA NA - 66 NA NA, NA NA NA NA, NA NA NA - 67 NA NA, NA NA NA NA, NA NA NA - 68 NA NA, NA NA NA NA, NA NA NA - 69 NA NA, NA NA NA NA, NA NA NA - 70 NA NA, NA NA NA NA, NA NA NA - 71 NA NA, NA NA NA NA, NA NA NA - 72 NA NA, NA NA NA NA, NA NA NA - meanlog_ci_limits meanlog_ci sdlog sdlog_ci_limits sdlog_ci dispersion - 1 NA, NA NA NA NA, NA NA 1.26 - 2 NA, NA NA NA NA, NA NA 1.04 - 3 NA, NA NA NA NA, NA NA NA - 4 NA, NA NA NA NA, NA NA NA - 5 1.55, 1.76 95 0.48 0.42, 0.54 95 NA - 6 1.51, 1.75 95 0.50 0.46, 0.55 95 NA - 7 NA, NA NA NA NA, NA NA NA - 8 NA, NA NA NA NA, NA NA NA - 9 NA, NA NA NA NA, NA NA NA - 10 NA, NA NA NA NA, NA NA NA - 11 NA, NA NA NA NA, NA NA NA - 12 NA, NA NA NA NA, NA NA NA - 13 NA, NA NA NA NA, NA NA 1.52 - 14 NA, NA NA NA NA, NA NA NA - 15 NA, NA NA NA NA, NA NA NA - 16 NA, NA NA NA NA, NA NA NA - 17 NA, NA NA NA NA, NA NA 1.41 - 18 NA, NA NA NA NA, NA NA 1.37 - 19 NA, NA NA NA NA, NA NA NA - 20 NA, NA NA NA NA, NA NA NA - 21 NA, NA NA 0.27 NA, NA NA NA - 22 NA, NA NA NA NA, NA NA NA - 23 NA, NA NA NA NA, NA NA NA - 24 NA, NA NA NA NA, NA NA NA - 25 NA, NA NA NA NA, NA NA NA - 26 NA, NA NA NA NA, NA NA NA - 27 NA, NA NA NA NA, NA NA 1.15 - 28 NA, NA NA NA NA, NA NA NA - 29 NA, NA NA NA NA, NA NA NA - 30 NA, NA NA NA NA, NA NA NA - 31 NA, NA NA NA NA, NA NA NA - 32 NA, NA NA NA NA, NA NA NA - 33 NA, NA NA NA NA, NA NA 1.51 - 34 NA, NA NA NA NA, NA NA 1.23 - 35 NA, NA NA NA NA, NA NA 1.51 - 36 NA, NA NA NA NA, NA NA 1.53 - 37 NA, NA NA NA NA, NA NA 1.51 - 38 NA, NA NA NA NA, NA NA NA - 39 NA, NA NA NA NA, NA NA NA - 40 NA, NA NA NA NA, NA NA NA - 41 NA, NA NA NA NA, NA NA NA - 42 NA, NA NA NA NA, NA NA NA - 43 NA, NA NA NA NA, NA NA 1.04 - 44 NA, NA NA NA NA, NA NA NA - 45 NA, NA NA NA NA, NA NA NA - 46 NA, NA NA NA NA, NA NA 1.23 - 47 NA, NA NA NA NA, NA NA NA - 48 NA, NA NA NA NA, NA NA NA - 49 NA, NA NA NA NA, NA NA NA - 50 NA, NA NA NA NA, NA NA NA - 51 NA, NA NA NA NA, NA NA NA - 52 NA, NA NA NA NA, NA NA NA - 53 NA, NA NA NA NA, NA NA NA - 54 NA, NA NA NA NA, NA NA NA - 55 NA, NA NA NA NA, NA NA NA - 56 NA, NA NA NA NA, NA NA NA - 57 NA, NA NA NA NA, NA NA NA - 58 1.6, 2.1 95 0.60 0.4, 0.8 95 NA - 59 1.2, 1.8 95 0.70 0.5, 1.0 95 NA - 60 NA, NA NA NA NA, NA NA 1.35 - 61 NA, NA NA NA NA, NA NA 1.68 - 62 NA, NA NA NA NA, NA NA 1.50 - 63 NA, NA NA NA NA, NA NA 1.24 - 64 NA, NA NA NA NA, NA NA 1.25 - 65 NA, NA NA NA NA, NA NA 1.24 - 66 NA, NA NA NA NA, NA NA 1.81 - 67 NA, NA NA NA NA, NA NA 1.82 - 68 NA, NA NA NA NA, NA NA 1.04 - 69 NA, NA NA NA NA, NA NA 1.35 - 70 NA, NA NA NA NA, NA NA 1.66 - 71 NA, NA NA NA NA, NA NA 1.67 - 72 NA, NA NA NA NA, NA NA 1.50 - dispersion_ci_limits dispersion_ci precision precision_ci_limits - 1 1.13, 1.38 95 NA NA, NA - 2 1.04, 1.08 95 NA NA, NA - 3 NA, NA NA NA NA, NA - 4 NA, NA NA NA NA, NA - 5 NA, NA NA NA NA, NA - 6 NA, NA NA NA NA, NA - 7 NA, NA NA NA NA, NA - 8 NA, NA NA NA NA, NA - 9 NA, NA NA NA NA, NA - 10 NA, NA NA NA NA, NA - 11 NA, NA NA NA NA, NA - 12 NA, NA NA NA NA, NA - 13 1.32, 1.72 95 NA NA, NA - 14 NA, NA NA NA NA, NA - 15 NA, NA NA NA NA, NA - 16 NA, NA NA NA NA, NA - 17 1.34, 1.50 95 NA NA, NA - 18 1.27, 1.52 95 NA NA, NA - 19 NA, NA NA NA NA, NA - 20 NA, NA NA 4.9 2.8, 7.5 - 21 NA, NA NA 13.7 10.9, 16.9 - 22 NA, NA NA NA NA, NA - 23 NA, NA NA NA NA, NA - 24 NA, NA NA NA NA, NA - 25 NA, NA NA NA NA, NA - 26 NA, NA NA NA NA, NA - 27 1.07, 1.34 95 NA NA, NA - 28 NA, NA NA NA NA, NA - 29 NA, NA NA NA NA, NA - 30 NA, NA NA NA NA, NA - 31 NA, NA NA NA NA, NA - 32 NA, NA NA NA NA, NA - 33 1.43, 1.60 95 NA NA, NA - 34 1.17, 1.29 95 NA NA, NA - 35 1.37, 1.64 95 NA NA, NA - 36 1.44, 1.61 95 NA NA, NA - 37 1.43, 1.60 95 NA NA, NA - 38 NA, NA NA NA NA, NA - 39 NA, NA NA NA NA, NA - 40 NA, NA NA NA NA, NA - 41 NA, NA NA NA NA, NA - 42 NA, NA NA NA NA, NA - 43 1.04, 1.05 95 NA NA, NA - 44 NA, NA NA NA NA, NA - 45 NA, NA NA NA NA, NA - 46 1.18, 1.28 95 NA NA, NA - 47 NA, NA NA NA NA, NA - 48 NA, NA NA NA NA, NA - 49 NA, NA NA NA NA, NA - 50 NA, NA NA NA NA, NA - 51 NA, NA NA NA NA, NA - 52 NA, NA NA NA NA, NA - 53 NA, NA NA NA NA, NA - 54 NA, NA NA NA NA, NA - 55 NA, NA NA NA NA, NA - 56 NA, NA NA NA NA, NA - 57 NA, NA NA NA NA, NA - 58 NA, NA NA NA NA, NA - 59 NA, NA NA NA NA, NA - 60 1.16, 1.55 95 NA NA, NA - 61 1.36, 2.01 95 NA NA, NA - 62 1.22, 1.82 95 NA NA, NA - 63 1.13, 1.35 95 NA NA, NA - 64 1.14, 1.36 95 NA NA, NA - 65 1.12, 1.35 95 NA NA, NA - 66 1.67, 1.95 95 NA NA, NA - 67 1.27, 2.67 95 NA NA, NA - 68 1.04, 1.29 95 NA NA, NA - 69 1.12, 1.47 95 NA NA, NA - 70 1.48, 1.82 95 NA NA, NA - 71 1.47, 1.84 95 NA NA, NA - 72 1.2, 1.9 95 NA NA, NA - precision_ci truncation discretised censored right_truncated - 1 NA NA FALSE TRUE FALSE - 2 NA NA FALSE TRUE FALSE - 3 NA NA FALSE FALSE FALSE - 4 NA NA FALSE FALSE FALSE - 5 NA NA FALSE FALSE FALSE - 6 NA NA FALSE FALSE FALSE - 7 NA NA FALSE FALSE FALSE - 8 NA NA FALSE TRUE FALSE - 9 NA NA FALSE FALSE FALSE - 10 NA NA FALSE TRUE FALSE - 11 NA NA FALSE TRUE FALSE - 12 NA NA FALSE TRUE TRUE - 13 NA NA FALSE TRUE FALSE - 14 NA NA FALSE TRUE FALSE - 15 NA NA FALSE TRUE FALSE - 16 NA NA FALSE TRUE FALSE - 17 NA NA FALSE TRUE FALSE - 18 NA NA FALSE TRUE FALSE - 19 NA NA FALSE TRUE FALSE - 20 95 NA FALSE TRUE FALSE - 21 95 NA FALSE TRUE FALSE - 22 NA NA FALSE FALSE FALSE - 23 NA NA FALSE TRUE FALSE - 24 NA NA FALSE TRUE FALSE - 25 NA NA FALSE TRUE FALSE - 26 NA NA FALSE TRUE FALSE - 27 NA NA FALSE TRUE FALSE - 28 NA NA FALSE FALSE FALSE - 29 NA NA FALSE TRUE FALSE - 30 NA NA FALSE TRUE FALSE - 31 NA NA FALSE TRUE FALSE - 32 NA NA FALSE TRUE FALSE - 33 NA NA FALSE TRUE FALSE - 34 NA NA FALSE TRUE FALSE - 35 NA NA FALSE TRUE FALSE - 36 NA NA FALSE TRUE FALSE - 37 NA NA FALSE TRUE FALSE - 38 NA NA FALSE TRUE FALSE - 39 NA NA FALSE TRUE FALSE - 40 NA NA FALSE TRUE FALSE - 41 NA NA FALSE TRUE FALSE - 42 NA NA FALSE TRUE FALSE - 43 NA NA FALSE TRUE FALSE - 44 NA NA FALSE FALSE FALSE - 45 NA NA FALSE FALSE FALSE - 46 NA NA FALSE TRUE FALSE - 47 NA NA FALSE TRUE FALSE - 48 NA NA FALSE TRUE FALSE - 49 NA NA FALSE FALSE FALSE - 50 NA NA FALSE FALSE FALSE - 51 NA NA FALSE FALSE FALSE - 52 NA NA FALSE FALSE FALSE - 53 NA NA FALSE FALSE FALSE - 54 NA NA FALSE TRUE FALSE - 55 NA NA FALSE FALSE FALSE - 56 NA NA FALSE FALSE FALSE - 57 NA NA FALSE FALSE FALSE - 58 NA NA FALSE FALSE FALSE - 59 NA NA FALSE FALSE FALSE - 60 NA NA FALSE TRUE FALSE - 61 NA NA FALSE TRUE FALSE - 62 NA NA FALSE TRUE FALSE - 63 NA NA FALSE TRUE FALSE - 64 NA NA FALSE TRUE FALSE - 65 NA NA FALSE TRUE FALSE - 66 NA NA FALSE TRUE FALSE - 67 NA NA FALSE TRUE FALSE - 68 NA NA FALSE TRUE FALSE - 69 NA NA FALSE TRUE FALSE - 70 NA NA FALSE TRUE FALSE - 71 NA NA FALSE TRUE FALSE - 72 NA NA FALSE TRUE FALSE - phase_bias_adjusted - 1 FALSE - 2 FALSE - 3 FALSE - 4 FALSE - 5 FALSE - 6 FALSE - 7 FALSE - 8 FALSE - 9 FALSE - 10 FALSE - 11 FALSE - 12 TRUE - 13 TRUE - 14 TRUE - 15 TRUE - 16 TRUE - 17 FALSE - 18 FALSE - 19 FALSE - 20 FALSE - 21 FALSE - 22 FALSE - 23 FALSE - 24 FALSE - 25 FALSE - 26 FALSE - 27 FALSE - 28 FALSE - 29 FALSE - 30 TRUE - 31 TRUE - 32 FALSE - 33 FALSE - 34 FALSE - 35 FALSE - 36 FALSE - 37 FALSE - 38 FALSE - 39 FALSE - 40 FALSE - 41 FALSE - 42 FALSE - 43 FALSE - 44 FALSE - 45 FALSE - 46 FALSE - 47 FALSE - 48 FALSE - 49 FALSE - 50 FALSE - 51 FALSE - 52 FALSE - 53 FALSE - 54 FALSE - 55 FALSE - 56 FALSE - 57 FALSE - 58 FALSE - 59 FALSE - 60 FALSE - 61 FALSE - 62 FALSE - 63 FALSE - 64 FALSE - 65 FALSE - 66 FALSE - 67 FALSE - 68 FALSE - 69 FALSE - 70 FALSE - 71 FALSE - 72 FALSE - notes - 1 Analysis on data from Commission on Acute Respiratory Disease. Experimental transmission of minor respiratory illness to human volunteers by filter-passing agents. I. Demonstration of two types of illness characterized by long and short incubation periods and diff erent clinical features. J Clin Invest 1947; 26: 957–82. - 2 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets - 3 This estimated mean incubation period is from a meta-analysis of 15 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model. - 4 This estimated mean incubation period is from a meta-analysis of 99 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model. - 5 The incubation period parameters are estimated from a meta-analysis of other studies that estimated the incubation period using a lognormal distribution. This is the full set of data (N=9). - 6 The incubation period parameters are estimated from a meta-analysis of other studies that estimated the incubation period using a lognormal distribution. This is the data set with Backer removed as they did not have a defined exposure window (N=8). - 7 The estimate of the incubation period is from a non-parametric bootstrap approach that does not fit a parametric distribution. - 8 No additional notes - 9 This estimated mean incubation period is from a meta-analysis of 14 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model. - 10 This dataset excludes Wuhan residents (to have a more precise exposure interval). This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions. - 11 This dataset includes Wuhan residents (which have a less precise exposure interval). This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions. - 12 This is excluding Wuhan residents from the dataset as this provides a more precise exposure interval. This method applies right-truncation but only fits a lognormal distribution. - 13 This is the complete data set. - 14 This is a subset of the data, including only those cases with a known onset of fever to be sure that the onset of symptoms is not from another pathogen. - 15 This is a subset of the data, including only cases that are detected outside of mainland China. - 16 This is a subset of the data, including only cases that are detected inside mainland China. - 17 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets - 18 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections - 19 Extrinsic incubation period for data at 25 degrees celcius - 20 Extrinsic incubation period for data at 30 degrees celcius - 21 Standard deviation, meanlog and sdlog is taken from Siraj et al. 2017 <10.1371/journal.pntd.0005797> - 22 The paper reports lower and upper supported ranges for the mean and standard deviation but it is not clear if these are confidence intervals or not so are not included in the database - 23 Data extracted from Appendix. This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100 - 24 This data comes from the entire period of the Guinea ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100 - 25 This data comes from the entire period of the Liberia ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100 - 26 This data comes from the entire period of the Seirra Leone ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100 - 27 Analysis on data from Bradburne AF, Bynoe ML, Tyrrell DA. Eff ects of a “new” human respiratory virus in volunteers. Br Med J 1967; 3: 767–69. - 28 The mid-point of the exposure time was used to approximate an exact exposure time instead of interval-censoring. This can lead to a possible bias (overestimation) in incubation times. It was ambiguously reported whether the mean is the mean of the distribution or the meanlog parameter of the lognormal distribution. - 29 No additional notes - 30 Gamma and weibull distributions had equally good fit to the data. This entry is the gamma distribution. Gamma, exponential. Not open source. - 31 Gamma and weibull distributions had equally good fit to the data. This entry is the weibull distribution. Weibull, exponential - 32 No additional notes. - 33 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 34 These estimates for the incubation period of influenza A from Lessler et al. 2009 are different from the estimates from the complete data, as they remove Henle et al. 1945 J Immunol, as it is an outlier in the dataset (n=61). Values found at the bottom Table 3. - 35 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 36 Data from Lessler et al 2009 using double interval-censored analysis. Not open source - 37 Data from Lessler et al 2009 using single interval-censored analysis. Not open source - 38 This study fit the weibull distribution to estimate the parameters for the complete data set, those who had a fatal outcome and those with a non-fatal outcome. This is the distribution fit to the complete unpartitioned data. - 39 This study fit the weibull distribution to estimate the parameters for the complete data set, those who had a fatal outcome and those with a non-fatal outcome. This is the distribution fit to the fatal outcome data. - 40 This study fit the weibull distribution to estimate the parameters for the complete data set, those who had a fatal outcome and those with a non-fatal outcome. This is the distribution fit to the non-fatal outcome data. - 41 This study used an original data set and a modified data set. This weibull distribution was fitted to the modified data set and it is recommended to use this one. - 42 This study used an original data set and a modified data set. This gamma distribution was fitted to the original data set and it is recommended to use the weibull distribution that was fitted to the modified data set. - 43 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets - 44 This paper did not fit a distribution to the incubation period data and only reported a lower and upper range of the data. This is present in the database as there are no other studies that report the incubation period for Marburg virus. There is another incubation period reported from the same paper for a subset of the data which report the median and interquartile range but again do not fit a distribution to the data. - 45 This paper did not fit a distribution to the incubation period data and only reported a median and range for a subset of the data. This is present in the database as there are no other studies that report the incubation period for Marburg virus. This paper also reports the maximum and minimum for the complete data set. - 46 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 47 The sample size is not explicitly stated. The number of confirmed cases is 23 and there are 2 suspected cases, therefore it is not clear whether the 2 suspected cases were included in the estimation, the sample size is assumed to be 23. - 48 No additional notes - 49 SEIR model from 10.1016/j.mbs.2008.06.005 where the IP is assumed to follow a gamma distribution - 50 SEIR model from 10.1016/j.mbs.2008.06.005 where the IP is assumed to follow a gamma distribution - 51 SEIR model from 10.1016/j.mbs.2008.06.005 where the IP is assumed to follow a gamma distribution - 52 No additional notes - 53 No additional notes - 54 Uses the methods described by Lessler (10.2471/BLT.16.174540) and Reich (10.1002/sim.3659). Estimated from time from exposure to first symptom onset - 55 Systematic review - 56 Systematic review - 57 Systematic review - 58 Meanlog, sdlog, and fitted distribution from supplementary material. Uses cases from Charniga 2022 + extra cases. Incubation period as exposure to rash onset. - 59 Meanlog, sdlog, and fitted distribution from supplementary material. Uses cases from Charniga 2022 + extra cases. Incubation period as exposure to symptom onset. - 60 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 61 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 62 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. Of the 18 samples at least 17 of them are not trasmitted by mosquitoes - 63 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 64 Data from Lessler et al 2009 using double interval-censored analysis. Not open source - 65 Data from Lessler et al 2009 using single interval-censored analysis. Not open source - 66 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 67 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets - 68 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections - 69 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only tramsission by transplant or transfusion. - 70 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets - 71 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections - 72 Pooled analysis on several data sets, see Lessler et al. 2016 for references of datasets - PMID DOI - 1 19393959 10.1016/S1473-3099(09)70069-6 - 2 24639305 10.4269/ajtmh.13-0403 - 3 33643779 10.1007/s10389-021-01478-1 - 4 33548553 10.1016/j.ijid.2021.01.069 - 5 32801208 10.1136/bmjopen-2020-039652 - 6 32801208 10.1136/bmjopen-2020-039652 - 7 NA 10.1101/2020.02.24.20027474 - 8 33362233 10.1371/journal.pone.0243889 - 9 33706702 10.1186/s12879-021-05950-x - 10 32079150 10.3390/jcm9020538 - 11 32079150 10.3390/jcm9020538 - 12 32079150 10.3390/jcm9020538 - 13 32150748 10.7326/M20-0504 - 14 32150748 10.7326/M20-0504 - 15 32150748 10.7326/M20-0504 - 16 32150748 10.7326/M20-0504 - 17 24639305 10.4269/ajtmh.13-0403 - 18 24639305 10.4269/ajtmh.13-0403 - 19 23226436 10.1371/journal.pone.0050972 - 20 23226436 10.1371/journal.pone.0050972 - 21 23226436 10.1371/journal.pone.0050972 - 22 24159443 10.1016/j.phrp.2011.04.001 - 23 25539446 10.1056/NEJMc1414992 - 24 25539446 10.1056/NEJMc1414992 - 25 25539446 10.1056/NEJMc1414992 - 26 25539446 10.1056/NEJMc1414992 - 27 19393959 10.1016/S1473-3099(09)70069-7 - 28 19959592 10.1503/cmaj.091807 - 29 20029668 10.1371/currents.RRN1130 - 30 21168422 10.1016/j.jtbi.2010.12.017 - 31 21168422 10.1016/j.jtbi.2010.12.017 - 32 20042754 10.1056/NEJMoa0906089 - 33 19393959 10.1016/S1473-3099(09)70069-9 - 34 19393959 10.1016/S1473-3099(09)70069-10 - 35 19393959 10.1016/S1473-3099(09)70069-11 - 36 19598148 10.1002/sim.3659 - 37 19598148 10.1002/sim.3659 - 38 26885816 10.1371/journal.pone.0148506 - 39 26885816 10.1371/journal.pone.0148506 - 40 26885816 10.1371/journal.pone.0148506 - 41 26409239 10.1093/aje/kwv115 - 42 26409239 10.1093/aje/kwv115 - 43 24639305 10.4269/ajtmh.13-0403 - 44 25495697 10.1186/1756-0500-7-906 - 45 25495697 10.1186/1756-0500-7-906 - 46 19393959 10.1016/S1473-3099(09)70069-12 - 47 23782161 10.1056/NEJMoa1306742 - 48 26132767 10.2807/1560-7917.es2015.20.25.21163 - 49 36573222 10.1016/j.jobb.2022.12.001 - 50 36573222 10.1016/j.jobb.2022.12.001 - 51 36573222 10.1016/j.jobb.2022.12.001 - 52 35713026 10.2807/1560-7917.ES.2022.27.24.2200448 - 53 35994726 10.3201/eid2810.221126 - 54 NA 10.1101/2022.06.22.22276713 - 55 36130210 10.1093/jtm/taac105 - 56 36130210 10.1093/jtm/taac105 - 57 36130210 10.1093/jtm/taac105 - 58 NA 10.1101/2022.10.26.22281516 - 59 NA 10.1101/2022.10.26.22281516 - 60 19393959 10.1016/S1473-3099(09)70069-13 - 61 19393959 10.1016/S1473-3099(09)70069-15 - 62 24639305 10.4269/ajtmh.13-0403 - 63 19393959 10.1016/S1473-3099(09)70069-14 - 64 19598148 10.1002/sim.3659 - 65 19598148 10.1002/sim.3659 - 66 19393959 10.1016/S1473-3099(09)70069-8 - 67 24639305 10.4269/ajtmh.13-0403 - 68 24639305 10.4269/ajtmh.13-0403 - 69 24639305 10.4269/ajtmh.13-0403 - 70 24639305 10.4269/ajtmh.13-0403 - 71 24639305 10.4269/ajtmh.13-0403 - 72 27821887 10.2471/BLT.16.174540 + disease epi_distribution + 1 Adenovirus incubation period + 2 Human Coronavirus incubation period + 3 SARS incubation period + 4 Influenza incubation period + 5 Influenza incubation period + 6 Influenza incubation period + 7 Measles incubation period + 8 Parainfluenza incubation period + 9 RSV incubation period + 10 Rhinovirus incubation period + 11 Influenza incubation period + 12 Influenza incubation period + 13 RSV incubation period + 14 RSV incubation period + 15 Influenza incubation period + 16 Influenza incubation period + 17 Influenza incubation period + 18 Influenza incubation period + 19 Influenza incubation period + 20 Influenza incubation period + 21 Influenza incubation period + 22 Influenza incubation period + 23 Influenza incubation period + 24 Influenza serial interval + 25 Influenza incubation period + 26 Influenza generation time + 27 Marburg Virus Disease incubation period + 28 Marburg Virus Disease incubation period + 29 Marburg Virus Disease serial interval + 30 Marburg Virus Disease onset to death + 31 Marburg Virus Disease serial interval + 32 SARS offspring distribution + 33 SARS offspring distribution + 34 Smallpox offspring distribution + 35 Smallpox offspring distribution + 36 Smallpox offspring distribution + 37 Smallpox offspring distribution + 38 Mpox offspring distribution + 39 Pneumonic Plague offspring distribution + 40 Hantavirus Pulmonary Syndrome offspring distribution + 41 Ebola Virus Disease offspring distribution + 42 Dengue incubation period + 43 Dengue incubation period + 44 Dengue incubation period + 45 Zika Virus Disease incubation period + 46 Chikungunya incubation period + 47 Dengue incubation period + 48 Dengue incubation period + 49 Japanese Encephalitis incubation period + 50 Rift Valley Fever incubation period + 51 West Nile Fever incubation period + 52 West Nile Fever incubation period + 53 West Nile Fever incubation period + 54 Yellow Fever incubation period + 55 Yellow Fever incubation period + 56 Mpox incubation period + 57 Mpox incubation period + 58 Mpox incubation period + 59 Mpox incubation period + 60 Mpox incubation period + 61 Mpox serial interval + 62 Mpox serial interval + 63 Ebola Virus Disease incubation period + 64 Ebola Virus Disease onset to death + 65 Ebola Virus Disease incubation period + 66 Ebola Virus Disease incubation period + 67 Ebola Virus Disease incubation period + 68 Ebola Virus Disease incubation period + 69 Ebola Virus Disease serial interval + 70 Ebola Virus Disease serial interval + 71 Ebola Virus Disease serial interval + 72 Ebola Virus Disease serial interval + 73 Ebola Virus Disease hospitalisation to death + 74 Ebola Virus Disease hospitalisation to discharge + 75 Ebola Virus Disease notification to death + 76 Ebola Virus Disease notification to discharge + 77 Ebola Virus Disease onset to death + 78 Ebola Virus Disease onset to discharge + 79 MERS incubation period + 80 MERS serial interval + 81 MERS onset to hospitalisation + 82 MERS onset to death + 83 MERS onset to ventilation + 84 MERS onset to death + 85 MERS incubation period + 86 MERS serial interval + 87 COVID-19 incubation period + 88 COVID-19 incubation period + 89 COVID-19 incubation period + 90 COVID-19 serial interval + 91 COVID-19 incubation period + 92 COVID-19 incubation period + 93 COVID-19 incubation period + 94 COVID-19 incubation period + 95 COVID-19 incubation period + 96 COVID-19 incubation period + 97 COVID-19 onset to hospitalisation + 98 COVID-19 onset to hospitalisation + 99 COVID-19 onset to death + 100 COVID-19 hospitalisation to death + 101 COVID-19 incubation period + 102 COVID-19 onset to hospitalisation + 103 COVID-19 onset to hospitalisation + 104 COVID-19 onset to death + 105 COVID-19 hospitalisation to death + 106 COVID-19 incubation period + 107 COVID-19 incubation period + 108 COVID-19 incubation period + 109 COVID-19 incubation period + 110 Mpox serial interval + 111 Mpox serial interval + 112 Mpox serial interval + 113 Mpox incubation period + 114 Mpox incubation period + 115 Mpox incubation period + 116 Mpox incubation period + 117 Mpox incubation period + 118 Mpox incubation period + prob_distribution author year + 1 lnorm Justin L.... 2009 + 2 lnorm Justin L.... 2009 + 3 lnorm Justin L.... 2009 + 4 lnorm Justin L.... 2009 + 5 lnorm Justin L.... 2009 + 6 lnorm Justin L.... 2009 + 7 lnorm Justin L.... 2009 + 8 lnorm Justin L.... 2009 + 9 lnorm Justin L.... 2009 + 10 lnorm Justin L.... 2009 + 11 lnorm Nicholas.... 2009 + 12 lnorm Nicholas.... 2009 + 13 lnorm Nicholas.... 2009 + 14 lnorm Nicholas.... 2009 + 15 gamma Hiroshi .... 2011 + 16 weibull Hiroshi .... 2011 + 17 weibull Victor V.... 2015 + 18 gamma Victor V.... 2015 + 19 weibull Victor V.... 2016 + 20 weibull Victor V.... 2016 + 21 weibull Victor V.... 2016 + 22 lnorm Ashleigh.... 2010 + 23 gamma Azra Gha.... 2009 + 24 gamma Azra Gha.... 2009 + 25 lnorm Justin L.... 2009 + 26 weibull Justin L.... 2009 + 27 Boris I..... 2014 + 28 Boris I..... 2014 + 29 Boris I..... 2014 + 30 Robert C.... 2007 + 31 gamma Marco Aj.... 2012 + 32 nbinom J. O. Ll.... 2005 + 33 nbinom J. O. Ll.... 2005 + 34 nbinom J. O. Ll.... 2005 + 35 nbinom J. O. Ll.... 2005 + 36 nbinom J. O. Ll.... 2005 + 37 nbinom J. O. Ll.... 2005 + 38 nbinom J. O. Ll.... 2005 + 39 nbinom J. O. Ll.... 2005 + 40 nbinom J. O. Ll.... 2005 + 41 nbinom J. O. Ll.... 2005 + 42 lnorm Miranda .... 2012 + 43 lnorm Miranda .... 2012 + 44 lnorm Miranda .... 2012 + 45 lnorm Justin L.... 2016 + 46 lnorm Kara E R.... 2014 + 47 lnorm Kara E R.... 2014 + 48 lnorm Kara E R.... 2014 + 49 lnorm Kara E R.... 2014 + 50 lnorm Kara E R.... 2014 + 51 lnorm Kara E R.... 2014 + 52 lnorm Kara E R.... 2014 + 53 lnorm Kara E R.... 2014 + 54 lnorm Kara E R.... 2014 + 55 lnorm Kara E R.... 2014 + 56 lnorm Fuminari.... 2022 + 57 lnorm Kelly Ch.... 2022 + 58 gamma Giorgio .... 2022 + 59 lnorm Zachary .... 2022 + 60 lnorm Zachary .... 2022 + 61 gamma Zachary .... 2022 + 62 gamma Zachary .... 2022 + 63 lnorm Martin E.... 2011 + 64 gamma The-Ebol.... 2018 + 65 gamma WHO-Ebol.... 2015 + 66 gamma WHO-Ebol.... 2015 + 67 gamma WHO-Ebol.... 2015 + 68 gamma WHO-Ebol.... 2015 + 69 gamma WHO-Ebol.... 2015 + 70 gamma WHO-Ebol.... 2015 + 71 gamma WHO-Ebol.... 2015 + 72 gamma WHO-Ebol.... 2015 + 73 gamma WHO-Ebol.... 2015 + 74 gamma WHO-Ebol.... 2015 + 75 gamma WHO-Ebol.... 2015 + 76 gamma WHO-Ebol.... 2015 + 77 gamma WHO-Ebol.... 2015 + 78 gamma WHO-Ebol.... 2015 + 79 lnorm Abdullah.... 2013 + 80 lnorm Abdullah.... 2013 + 81 Abdullah.... 2013 + 82 Abdullah.... 2013 + 83 Abdullah.... 2013 + 84 gamma Kenji Mi.... 2015 + 85 gamma B J Cowl.... 2015 + 86 gamma B J Cowl.... 2015 + 87 Ke Men, .... 2020 + 88 Balram R.... 2022 + 89 Muluneh .... 2021 + 90 Muluneh .... 2021 + 91 Christel.... 2021 + 92 weibull Long V. .... 2020 + 93 lnorm Conor Mc.... 2020 + 94 lnorm Conor Mc.... 2020 + 95 lnorm Natalie .... 2020 + 96 lnorm Natalie .... 2020 + 97 gamma Natalie .... 2020 + 98 gamma Natalie .... 2020 + 99 lnorm Natalie .... 2020 + 100 weibull Natalie .... 2020 + 101 lnorm Natalie .... 2020 + 102 lnorm Natalie .... 2020 + 103 lnorm Natalie .... 2020 + 104 lnorm Natalie .... 2020 + 105 lnorm Natalie .... 2020 + 106 lnorm Stephen .... 2020 + 107 lnorm Stephen .... 2020 + 108 lnorm Stephen .... 2020 + 109 lnorm Stephen .... 2020 + 110 gamma Zihao Gu.... 2022 + 111 Shuqi Wa.... 2022 + 112 Shuqi Wa.... 2022 + 113 Shuqi Wa.... 2022 + 114 Shuqi Wa.... 2022 + 115 Shuqi Wa.... 2022 + 116 Fengying.... 2022 + 117 Fengying.... 2022 + 118 Fengying.... 2022 -# list_distributions works for incubation period +# list_distributions works for incubation period with db Code - list_distributions(epiparam = eparam, epi_dist = "incubation_period") + incub_tbl Output disease epi_distribution prob_distribution author year - 1 Adenovirus incubation_period lnorm Justin L.... 2009 - 2 Chikungunya incubation_period lnorm Kara E R.... 2014 - 3 COVID-19 incubation_period Balram R.... 2022 - 4 COVID-19 incubation_period Christel.... 2021 - 5 COVID-19 incubation_period lnorm Conor Mc.... 2020 - 6 COVID-19 incubation_period lnorm Conor Mc.... 2020 - 7 COVID-19 incubation_period Ke Men, .... 2020 - 8 COVID-19 incubation_period weibull Long V. .... 2020 - 9 COVID-19 incubation_period Muluneh .... 2021 - 10 COVID-19 incubation_period lnorm Natalie .... 2020 - 11 COVID-19 incubation_period lnorm Natalie .... 2020 - 12 COVID-19 incubation_period lnorm Natalie .... 2020 - 13 COVID-19 incubation_period lnorm Stephen .... 2020 - 14 COVID-19 incubation_period lnorm Stephen .... 2020 - 15 COVID-19 incubation_period lnorm Stephen .... 2020 - 16 COVID-19 incubation_period lnorm Stephen .... 2020 - 17 Dengue incubation_period lnorm Kara E R.... 2014 - 18 Dengue incubation_period lnorm Kara E R.... 2014 - 19 Dengue incubation_period lnorm Miranda .... 2012 - 20 Dengue incubation_period lnorm Miranda .... 2012 - 21 Dengue incubation_period lnorm Miranda .... 2012 - 22 Ebola Virus Disease incubation_period lnorm Martin E.... 2011 - 23 Ebola Virus Disease incubation_period gamma WHO-Ebol.... 2015 - 24 Ebola Virus Disease incubation_period gamma WHO-Ebol.... 2015 - 25 Ebola Virus Disease incubation_period gamma WHO-Ebol.... 2015 - 26 Ebola Virus Disease incubation_period gamma WHO-Ebol.... 2015 - 27 Human Coronavirus incubation_period lnorm Justin L.... 2009 - 28 Influenza incubation_period lnorm Ashleigh.... 2010 - 29 Influenza incubation_period gamma Azra Gha.... 2009 - 30 Influenza incubation_period gamma Hiroshi .... 2011 - 31 Influenza incubation_period weibull Hiroshi .... 2011 - 32 Influenza incubation_period lnorm Justin L.... 2009 - 33 Influenza incubation_period lnorm Justin L.... 2009 - 34 Influenza incubation_period lnorm Justin L.... 2009 - 35 Influenza incubation_period lnorm Justin L.... 2009 - 36 Influenza incubation_period lnorm Nicholas.... 2009 - 37 Influenza incubation_period lnorm Nicholas.... 2009 - 38 Influenza incubation_period weibull Victor V.... 2016 - 39 Influenza incubation_period weibull Victor V.... 2016 - 40 Influenza incubation_period weibull Victor V.... 2016 - 41 Influenza incubation_period weibull Victor V.... 2015 - 42 Influenza incubation_period gamma Victor V.... 2015 - 43 Japanese Encephalitis incubation_period lnorm Kara E R.... 2014 - 44 Marburg Virus Disease incubation_period Boris I..... 2014 - 45 Marburg Virus Disease incubation_period Boris I..... 2014 - 46 Measles incubation_period lnorm Justin L.... 2009 - 47 MERS incubation_period lnorm Abdullah.... 2013 - 48 MERS incubation_period gamma B J Cowl.... 2015 - 49 Mpox incubation_period Fengying.... 2022 - 50 Mpox incubation_period Fengying.... 2022 - 51 Mpox incubation_period Fengying.... 2022 - 52 Mpox incubation_period lnorm Fuminari.... 2022 - 53 Mpox incubation_period gamma Giorgio .... 2022 - 54 Mpox incubation_period lnorm Kelly Ch.... 2022 - 55 Mpox incubation_period Shuqi Wa.... 2022 - 56 Mpox incubation_period Shuqi Wa.... 2022 - 57 Mpox incubation_period Shuqi Wa.... 2022 - 58 Mpox incubation_period lnorm Zachary .... 2022 - 59 Mpox incubation_period lnorm Zachary .... 2022 - 60 Parainfluenza incubation_period lnorm Justin L.... 2009 - 61 Rhinovirus incubation_period lnorm Justin L.... 2009 - 62 Rift Valley Fever incubation_period lnorm Kara E R.... 2014 - 63 RSV incubation_period lnorm Justin L.... 2009 - 64 RSV incubation_period lnorm Nicholas.... 2009 - 65 RSV incubation_period lnorm Nicholas.... 2009 - 66 SARS incubation_period lnorm Justin L.... 2009 - 67 West Nile Fever incubation_period lnorm Kara E R.... 2014 - 68 West Nile Fever incubation_period lnorm Kara E R.... 2014 - 69 West Nile Fever incubation_period lnorm Kara E R.... 2014 - 70 Yellow Fever incubation_period lnorm Kara E R.... 2014 - 71 Yellow Fever incubation_period lnorm Kara E R.... 2014 - 72 Zika Virus Disease incubation_period lnorm Justin L.... 2016 - sample_size - 1 14 - 2 21 - 3 6241 - 4 28675 - 5 1357 - 6 1269 - 7 59 - 8 19 - 9 1453 - 10 52 - 11 158 - 12 52 - 13 181 - 14 99 - 15 108 - 16 73 - 17 169 - 18 124 - 19 146 - 20 146 - 21 153 - 22 196 - 23 1798 - 24 49 - 25 957 - 26 792 - 27 13 - 28 316 - 29 16 - 30 72 - 31 72 - 32 124 - 33 151 - 34 90 - 35 78 - 36 151 - 37 151 - 38 395 - 39 173 - 40 222 - 41 229 - 42 229 - 43 6 - 44 76 - 45 18 - 46 55 - 47 23 - 48 166 - 49 NA - 50 NA - 51 NA - 52 18 - 53 255 - 54 22 - 55 16 - 56 27 - 57 114 - 58 35 - 59 36 - 60 11 - 61 28 - 62 23 - 63 24 - 64 24 - 65 24 - 66 157 - 67 18 - 68 8 - 69 6 - 70 91 - 71 80 - 72 25 + 1 Adenovirus incubation period lnorm Justin L.... 2009 + 2 Human Coronavirus incubation period lnorm Justin L.... 2009 + 3 SARS incubation period lnorm Justin L.... 2009 + 4 Influenza incubation period lnorm Justin L.... 2009 + 5 Influenza incubation period lnorm Justin L.... 2009 + 6 Influenza incubation period lnorm Justin L.... 2009 + 7 Measles incubation period lnorm Justin L.... 2009 + 8 Parainfluenza incubation period lnorm Justin L.... 2009 + 9 RSV incubation period lnorm Justin L.... 2009 + 10 Rhinovirus incubation period lnorm Justin L.... 2009 + 11 Influenza incubation period lnorm Nicholas.... 2009 + 12 Influenza incubation period lnorm Nicholas.... 2009 + 13 RSV incubation period lnorm Nicholas.... 2009 + 14 RSV incubation period lnorm Nicholas.... 2009 + 15 Influenza incubation period gamma Hiroshi .... 2011 + 16 Influenza incubation period weibull Hiroshi .... 2011 + 17 Influenza incubation period weibull Victor V.... 2015 + 18 Influenza incubation period gamma Victor V.... 2015 + 19 Influenza incubation period weibull Victor V.... 2016 + 20 Influenza incubation period weibull Victor V.... 2016 + 21 Influenza incubation period weibull Victor V.... 2016 + 22 Influenza incubation period lnorm Ashleigh.... 2010 + 23 Influenza incubation period gamma Azra Gha.... 2009 + 24 Influenza incubation period lnorm Justin L.... 2009 + 25 Marburg Virus Disease incubation period Boris I..... 2014 + 26 Marburg Virus Disease incubation period Boris I..... 2014 + 27 Dengue incubation period lnorm Miranda .... 2012 + 28 Dengue incubation period lnorm Miranda .... 2012 + 29 Dengue incubation period lnorm Miranda .... 2012 + 30 Zika Virus Disease incubation period lnorm Justin L.... 2016 + 31 Chikungunya incubation period lnorm Kara E R.... 2014 + 32 Dengue incubation period lnorm Kara E R.... 2014 + 33 Dengue incubation period lnorm Kara E R.... 2014 + 34 Japanese Encephalitis incubation period lnorm Kara E R.... 2014 + 35 Rift Valley Fever incubation period lnorm Kara E R.... 2014 + 36 West Nile Fever incubation period lnorm Kara E R.... 2014 + 37 West Nile Fever incubation period lnorm Kara E R.... 2014 + 38 West Nile Fever incubation period lnorm Kara E R.... 2014 + 39 Yellow Fever incubation period lnorm Kara E R.... 2014 + 40 Yellow Fever incubation period lnorm Kara E R.... 2014 + 41 Mpox incubation period lnorm Fuminari.... 2022 + 42 Mpox incubation period lnorm Kelly Ch.... 2022 + 43 Mpox incubation period gamma Giorgio .... 2022 + 44 Mpox incubation period lnorm Zachary .... 2022 + 45 Mpox incubation period lnorm Zachary .... 2022 + 46 Ebola Virus Disease incubation period lnorm Martin E.... 2011 + 47 Ebola Virus Disease incubation period gamma WHO-Ebol.... 2015 + 48 Ebola Virus Disease incubation period gamma WHO-Ebol.... 2015 + 49 Ebola Virus Disease incubation period gamma WHO-Ebol.... 2015 + 50 Ebola Virus Disease incubation period gamma WHO-Ebol.... 2015 + 51 MERS incubation period lnorm Abdullah.... 2013 + 52 MERS incubation period gamma B J Cowl.... 2015 + 53 COVID-19 incubation period Ke Men, .... 2020 + 54 COVID-19 incubation period Balram R.... 2022 + 55 COVID-19 incubation period Muluneh .... 2021 + 56 COVID-19 incubation period Christel.... 2021 + 57 COVID-19 incubation period weibull Long V. .... 2020 + 58 COVID-19 incubation period lnorm Conor Mc.... 2020 + 59 COVID-19 incubation period lnorm Conor Mc.... 2020 + 60 COVID-19 incubation period lnorm Natalie .... 2020 + 61 COVID-19 incubation period lnorm Natalie .... 2020 + 62 COVID-19 incubation period lnorm Natalie .... 2020 + 63 COVID-19 incubation period lnorm Stephen .... 2020 + 64 COVID-19 incubation period lnorm Stephen .... 2020 + 65 COVID-19 incubation period lnorm Stephen .... 2020 + 66 COVID-19 incubation period lnorm Stephen .... 2020 + 67 Mpox incubation period Shuqi Wa.... 2022 + 68 Mpox incubation period Shuqi Wa.... 2022 + 69 Mpox incubation period Shuqi Wa.... 2022 + 70 Mpox incubation period Fengying.... 2022 + 71 Mpox incubation period Fengying.... 2022 + 72 Mpox incubation period Fengying.... 2022 -# list_distributions works for incubation, subset_db = FALSE +# list_distributions works for incubation period without db Code - list_distributions(epiparam = eparam, epi_dist = "incubation", subset_db = FALSE) + incub_tbl Output - disease pathogen epi_distribution - 1 Adenovirus Adenovirus incubation_period - 2 Chikungunya Chikungunya Virus incubation_period - 3 COVID-19 SARS-CoV-2 incubation_period - 4 COVID-19 SARS-CoV-2 incubation_period - 5 COVID-19 SARS-CoV-2 incubation_period - 6 COVID-19 SARS-CoV-2 incubation_period - 7 COVID-19 SARS-CoV-2 incubation_period - 8 COVID-19 SARS-CoV-2 incubation_period - 9 COVID-19 SARS-CoV-2 incubation_period - 10 COVID-19 SARS-CoV-2 incubation_period - 11 COVID-19 SARS-CoV-2 incubation_period - 12 COVID-19 SARS-CoV-2 incubation_period - 13 COVID-19 SARS-CoV-2 incubation_period - 14 COVID-19 SARS-CoV-2 incubation_period - 15 COVID-19 SARS-CoV-2 incubation_period - 16 COVID-19 SARS-CoV-2 incubation_period - 17 Dengue Dengue Virus incubation_period - 18 Dengue Dengue Virus incubation_period - 19 Dengue Dengue Virus incubation_period - 20 Dengue Dengue Virus incubation_period - 21 Dengue Dengue Virus incubation_period - 22 Ebola Virus Disease Ebola Virus-Zaire Subtype incubation_period - 23 Ebola Virus Disease Ebola Virus incubation_period - 24 Ebola Virus Disease Ebola Virus incubation_period - 25 Ebola Virus Disease Ebola Virus incubation_period - 26 Ebola Virus Disease Ebola Virus incubation_period - 27 Human Coronavirus Human_Cov incubation_period - 28 Influenza Influenza-A-H1N1 incubation_period - 29 Influenza Influenza-A-H1N1Pdm incubation_period - 30 Influenza Influenza-A-H1N1 incubation_period - 31 Influenza Influenza-A-H1N1 incubation_period - 32 Influenza Influenza-A-H1N1 incubation_period - 33 Influenza Influenza-A incubation_period - 34 Influenza Influenza-A incubation_period - 35 Influenza Influenza-B incubation_period - 36 Influenza Influenza-A incubation_period - 37 Influenza Influenza-A incubation_period - 38 Influenza Influenza-A-H7N9 incubation_period - 39 Influenza Influenza-A-H7N9 incubation_period - 40 Influenza Influenza-A-H7N9 incubation_period - 41 Influenza Influenza-A-H7N9 incubation_period - 42 Influenza Influenza-A-H7N9 incubation_period - 43 Japanese Encephalitis Japanese Encephalitis Virus incubation_period - 44 Marburg Virus Disease Marburg Virus incubation_period - 45 Marburg Virus Disease Marburg Virus incubation_period - 46 Measles Measles Virus incubation_period - 47 MERS MERS-Cov incubation_period - 48 MERS MERS-Cov incubation_period - 49 Mpox Mpox Virus incubation_period - 50 Mpox Mpox Virus incubation_period - 51 Mpox Mpox Virus incubation_period - 52 Mpox Mpox Virus incubation_period - 53 Mpox Mpox Virus incubation_period - 54 Mpox Mpox Virus incubation_period - 55 Mpox Mpox Virus Clade I incubation_period - 56 Mpox Mpox Virus Clade IIa incubation_period - 57 Mpox Mpox Virus Clade IIb incubation_period - 58 Mpox Mpox Virus incubation_period - 59 Mpox Mpox Virus incubation_period - 60 Parainfluenza Parainfluenza Virus incubation_period - 61 Rhinovirus Rhinovirus incubation_period - 62 Rift Valley Fever Rift Valley Fever Virus incubation_period - 63 RSV RSV incubation_period - 64 RSV RSV incubation_period - 65 RSV RSV incubation_period - 66 SARS SARS-Cov-1 incubation_period - 67 West Nile Fever West Nile Virus incubation_period - 68 West Nile Fever West Nile Virus incubation_period - 69 West Nile Fever West Nile Virus incubation_period - 70 Yellow Fever Yellow Fever Viruses incubation_period - 71 Yellow Fever Yellow Fever Viruses incubation_period - 72 Zika Virus Disease Zika Virus incubation_period - author - 1 Justin L.... - 2 Kara E R.... - 3 Balram R.... - 4 Christel.... - 5 Conor Mc.... - 6 Conor Mc.... - 7 Ke Men, .... - 8 Long V. .... - 9 Muluneh .... - 10 Natalie .... - 11 Natalie .... - 12 Natalie .... - 13 Stephen .... - 14 Stephen .... - 15 Stephen .... - 16 Stephen .... - 17 Kara E R.... - 18 Kara E R.... - 19 Miranda .... - 20 Miranda .... - 21 Miranda .... - 22 Martin E.... - 23 WHO-Ebol.... - 24 WHO-Ebol.... - 25 WHO-Ebol.... - 26 WHO-Ebol.... - 27 Justin L.... - 28 Ashleigh.... - 29 Azra Gha.... - 30 Hiroshi .... - 31 Hiroshi .... - 32 Justin L.... - 33 Justin L.... - 34 Justin L.... - 35 Justin L.... - 36 Nicholas.... - 37 Nicholas.... - 38 Victor V.... - 39 Victor V.... - 40 Victor V.... - 41 Victor V.... - 42 Victor V.... - 43 Kara E R.... - 44 Boris I..... - 45 Boris I..... - 46 Justin L.... - 47 Abdullah.... - 48 B J Cowl.... - 49 Fengying.... - 50 Fengying.... - 51 Fengying.... - 52 Fuminari.... - 53 Giorgio .... - 54 Kelly Ch.... - 55 Shuqi Wa.... - 56 Shuqi Wa.... - 57 Shuqi Wa.... - 58 Zachary .... - 59 Zachary .... - 60 Justin L.... - 61 Justin L.... - 62 Kara E R.... - 63 Justin L.... - 64 Nicholas.... - 65 Nicholas.... - 66 Justin L.... - 67 Kara E R.... - 68 Kara E R.... - 69 Kara E R.... - 70 Kara E R.... - 71 Kara E R.... - 72 Justin L.... - title - 1 Incubation periods of acute respiratory viral infections: a systematic review - 2 Incubation periods of mosquito-borne viral infections: a systematic review - 3 Incubation period for COVID-19: a systematic review and meta-analysis - 4 The incubation period of COVID-19: A meta-analysis - 5 Incubation period of COVID-19: a rapid systematic review and meta-analysis of observational research - 6 Incubation period of COVID-19: a rapid systematic review and meta-analysis of observational research - 7 Estimate the incubation period of coronavirus 2019 (COVID-19) - 8 Estimation of the incubation period of COVID-19 in Vietnam - 9 Serial interval and incubation period of COVID-19: a systematic review and meta-analysis - 10 Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data - 11 Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data - 12 Incubation Period and Other Epidemiological Characteristics of 2019 Novel Coronavirus Infections with Right Truncation: A Statistical Analysis of Publicly Available Case Data - 13 The Incubation Period of Coronavirus Disease 2019 (COVID-19) From Publicly Reported Confirmed Cases: Estimation and Application - 14 The Incubation Period of Coronavirus Disease 2019 (COVID-19) From Publicly Reported Confirmed Cases: Estimation and Application - 15 The Incubation Period of Coronavirus Disease 2019 (COVID-19) From Publicly Reported Confirmed Cases: Estimation and Application - 16 The Incubation Period of Coronavirus Disease 2019 (COVID-19) From Publicly Reported Confirmed Cases: Estimation and Application - 17 Incubation periods of mosquito-borne viral infections: a systematic review - 18 Incubation periods of mosquito-borne viral infections: a systematic review - 19 The Incubation Periods of Dengue Viruses - 20 The Incubation Periods of Dengue Viruses - 21 The Incubation Periods of Dengue Viruses - 22 Incubation period of ebola hemorrhagic virus subtype zaire - 23 West African Ebola Epidemic after One Year — Slowing but Not Yet under Control - 24 West African Ebola Epidemic after One Year — Slowing but Not Yet under Control - 25 West African Ebola Epidemic after One Year — Slowing but Not Yet under Control - 26 West African Ebola Epidemic after One Year — Slowing but Not Yet under Control - 27 Incubation periods of acute respiratory viral infections: a systematic review - 28 Estimated epidemiologic parameters and morbidity associated with pandemic H1N1 influenza - 29 The Early Transmission Dynamics of H1N1pdm Influenza in the United Kingdom - 30 Estimation of the incubation period of influenza A (H1N1-2009) among imported cases: addressing censoring using outbreak data at the origin of importation - 31 Estimation of the incubation period of influenza A (H1N1-2009) among imported cases: addressing censoring using outbreak data at the origin of importation - 32 Outbreak of 2009 Pandemic Influenza A (H1N1) at a New York City School - 33 Incubation periods of acute respiratory viral infections: a systematic review - 34 Incubation periods of acute respiratory viral infections: a systematic review - 35 Incubation periods of acute respiratory viral infections: a systematic review - 36 Estimating incubation period distributions with coarse data - 37 Estimating incubation period distributions with coarse data - 38 Association between the Severity of Influenza A(H7N9) Virus Infections and Length of the Incubation Period - 39 Association between the Severity of Influenza A(H7N9) Virus Infections and Length of the Incubation Period - 40 Association between the Severity of Influenza A(H7N9) Virus Infections and Length of the Incubation Period - 41 Estimating the Distribution of the Incubation Periods of Human Avian Influenza A(H7N9) Virus Infections - 42 Estimating the Distribution of the Incubation Periods of Human Avian Influenza A(H7N9) Virus Infections - 43 Incubation periods of mosquito-borne viral infections: a systematic review - 44 Calculation of incubation period and serial interval from multiple outbreaks of Marburg virus disease - 45 Calculation of incubation period and serial interval from multiple outbreaks of Marburg virus disease - 46 Incubation periods of acute respiratory viral infections: a systematic review - 47 Hospital Outbreak of Middle East Respiratory Syndrome Coronavirus - 48 Preliminary epidemiological assessment of MERS-CoV outbreak in South Korea, May to June 2015 - 49 Study and prediction of the 2022 global monkeypox epidemic - 50 Study and prediction of the 2022 global monkeypox epidemic - 51 Study and prediction of the 2022 global monkeypox epidemic - 52 Estimated incubation period for monkeypox cases confirmed in the Netherlands, May 2022 - 53 Early Estimates of Monkeypox Incubation Period, Generation Time, and Reproduction Number, Italy, May-June 2022 - 54 Estimating the incubation period of monkeypox virus during the 2022 multi-national outbreak - 55 Serial intervals and incubation periods of the monkeypox virus clades - 56 Serial intervals and incubation periods of the monkeypox virus clades - 57 Serial intervals and incubation periods of the monkeypox virus clades - 58 Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2022 - 59 Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2023 - 60 Incubation periods of acute respiratory viral infections: a systematic review - 61 Incubation periods of acute respiratory viral infections: a systematic review - 62 Incubation periods of mosquito-borne viral infections: a systematic review - 63 Incubation periods of acute respiratory viral infections: a systematic review - 64 Estimating incubation period distributions with coarse data - 65 Estimating incubation period distributions with coarse data - 66 Incubation periods of acute respiratory viral infections: a systematic review - 67 Incubation periods of mosquito-borne viral infections: a systematic review - 68 Incubation periods of mosquito-borne viral infections: a systematic review - 69 Incubation periods of mosquito-borne viral infections: a systematic review - 70 Incubation periods of mosquito-borne viral infections: a systematic review - 71 Incubation periods of mosquito-borne viral infections: a systematic review - 72 Times to key events in Zika virus infection and implications for blood donation: a systematic review - journal year sample_size - 1 The Lancet Infectious Diseases 2009 14 - 2 The American Journal of Tropical Medicine and Hygiene 2014 21 - 3 Zeitschrift fur Gesundheitswissenschaften 2022 6241 - 4 International Journal of Infectious Diseases 2021 28675 - 5 BMJ Open 2020 1357 - 6 BMJ Open 2020 1269 - 7 medRxiv 2020 59 - 8 PLoS One 2020 19 - 9 BMC Infectious Diseases 2021 1453 - 10 Journal of Clinical Medicine 2020 52 - 11 Journal of Clinical Medicine 2020 158 - 12 Journal of Clinical Medicine 2020 52 - 13 Annals of Internal Medicine 2020 181 - 14 Annals of Internal Medicine 2020 99 - 15 Annals of Internal Medicine 2020 108 - 16 Annals of Internal Medicine 2020 73 - 17 The American Journal of Tropical Medicine and Hygiene 2014 169 - 18 The American Journal of Tropical Medicine and Hygiene 2014 124 - 19 PLoS One 2012 146 - 20 PLoS One 2012 146 - 21 PLoS One 2012 153 - 22 Osong Public Health and Research Perspectives 2011 196 - 23 The New England Journal of Medicine 2015 1798 - 24 The New England Journal of Medicine 2015 49 - 25 The New England Journal of Medicine 2015 957 - 26 The New England Journal of Medicine 2015 792 - 27 The Lancet Infectious Diseases 2009 13 - 28 Canadian Medical Association Journal 2010 316 - 29 PLoS Currents 2009 16 - 30 Journal of Theoretical Biology 2011 72 - 31 Journal of Theoretical Biology 2011 72 - 32 The New England Journal of Medicine 2009 124 - 33 The Lancet Infectious Diseases 2009 151 - 34 The Lancet Infectious Diseases 2009 90 - 35 The Lancet Infectious Diseases 2009 78 - 36 Statistics in Medicine 2009 151 - 37 Statistics in Medicine 2009 151 - 38 PLoS One 2016 395 - 39 PLoS One 2016 173 - 40 PLoS One 2016 222 - 41 American Journal of Epidemiology 2015 229 - 42 American Journal of Epidemiology 2015 229 - 43 The American Journal of Tropical Medicine and Hygiene 2014 6 - 44 BMC Research Notes 2014 76 - 45 BMC Research Notes 2014 18 - 46 The Lancet Infectious Diseases 2009 55 - 47 The New England Journal of Medicine 2013 23 - 48 Eurosurveillance 2015 166 - 49 Journal of Biosafety and Biosecurity 2022 NA - 50 Journal of Biosafety and Biosecurity 2022 NA - 51 Journal of Biosafety and Biosecurity 2022 NA - 52 Eurosurveillance 2022 18 - 53 Emerging Infectious Diseases 2022 255 - 54 medRxiv 2022 22 - 55 Journal of Travel Medicine 2022 16 - 56 Journal of Travel Medicine 2022 27 - 57 Journal of Travel Medicine 2022 114 - 58 medRxiv 2022 35 - 59 medRxiv 2022 36 - 60 The Lancet Infectious Diseases 2009 11 - 61 The Lancet Infectious Diseases 2009 28 - 62 The American Journal of Tropical Medicine and Hygiene 2014 23 - 63 The Lancet Infectious Diseases 2009 24 - 64 Statistics in Medicine 2009 24 - 65 Statistics in Medicine 2009 24 - 66 The Lancet Infectious Diseases 2009 157 - 67 The American Journal of Tropical Medicine and Hygiene 2014 18 - 68 The American Journal of Tropical Medicine and Hygiene 2014 8 - 69 The American Journal of Tropical Medicine and Hygiene 2014 6 - 70 The American Journal of Tropical Medicine and Hygiene 2014 91 - 71 The American Journal of Tropical Medicine and Hygiene 2014 80 - 72 Bulletin of the World Health Organization 2016 25 - region transmission_mode - 1 USA experimental - 2 Mixed vector_borne - 3 Mixed natural_natural_human_to_human - 4 Mixed natural_natural_human_to_human - 5 Mixed natural_natural_human_to_human - 6 Mixed natural_natural_human_to_human - 7 China natural_natural_human_to_human - 8 Vietnam natural_natural_human_to_human - 9 Mixed natural_natural_human_to_human - 10 China natural_natural_human_to_human - 11 China natural_natural_human_to_human - 12 China natural_human_to_human - 13 Mixed natural_human_to_human - 14 Mixed natural_human_to_human - 15 Mixed natural_human_to_human - 16 China natural_human_to_human - 17 Mixed multiple - 18 Mixed vector_borne - 19 Mixed vector_borne - 20 Mixed vector_borne - 21 Mixed vector_borne - 22 Kikwit, Democratic Republic of Congo natural_natural_human_to_human - 23 West Africa natural_natural_human_to_human - 24 Guinea natural_natural_human_to_human - 25 Liberia natural_natural_human_to_human - 26 Sierra Leone natural_natural_human_to_human - 27 UK experimental - 28 Canada natural_unknown - 29 UK natural_unknown - 30 Japan natural_unknown - 31 Japan natural_unknown - 32 New York, USA natural_unknown - 33 Mixed mixed - 34 Mixed mixed - 35 USA experimental - 36 Mixed unknown - 37 Mixed unknown - 38 China natural_unknown - 39 China natural_unknown - 40 China natural_unknown - 41 China natural_unknown - 42 China natural_unknown - 43 Mixed vector_borne - 44 Mixed mixed - 45 Mixed mixed - 46 Mixed natural_unknown - 47 Saudi Arabia natural_natural_human_to_human - 48 South Korea natural_unknown - 49 USA natural_unknown - 50 Europe natural_unknown - 51 Global natural_unknown - 52 Netherlands natural_natural_human_to_human - 53 Italy natural_natural_human_to_human - 54 USA natural_natural_human_to_human - 55 Congo natural_unknown - 56 USA natural_unknown - 57 mixed natural_unknown - 58 USA natural_natural_human_to_human - 59 USA natural_natural_human_to_human - 60 Mixed experimental - 61 USA experimental - 62 Mixed vector_borne - 63 Mixed mixed - 64 Mixed unknown - 65 Mixed unknown - 66 Mixed natural_unknown - 67 Mixed multiple - 68 Mixed vector_borne - 69 Mixed organ_transplant - 70 Mixed multiple - 71 Mixed vector_borne - 72 Mixed vector_borne - vector extrinsic prob_distribution - 1 FALSE lnorm - 2 Aedes albopictus FALSE lnorm - 3 FALSE - 4 FALSE - 5 FALSE lnorm - 6 FALSE lnorm - 7 FALSE - 8 FALSE weibull - 9 FALSE - 10 FALSE lnorm - 11 FALSE lnorm - 12 FALSE lnorm - 13 FALSE lnorm - 14 FALSE lnorm - 15 FALSE lnorm - 16 FALSE lnorm - 17 FALSE lnorm - 18 Aedes aegypti and Aedes albopictus FALSE lnorm - 19 Aedes aegypti and Aedes albopictus TRUE lnorm - 20 Aedes aegypti and Aedes albopictus TRUE lnorm - 21 Aedes aegypti and Aedes albopictus FALSE lnorm - 22 FALSE lnorm - 23 FALSE gamma - 24 FALSE gamma - 25 FALSE gamma - 26 FALSE gamma - 27 FALSE lnorm - 28 FALSE lnorm - 29 FALSE gamma - 30 FALSE gamma - 31 FALSE weibull - 32 FALSE lnorm - 33 FALSE lnorm - 34 FALSE lnorm - 35 FALSE lnorm - 36 FALSE lnorm - 37 FALSE lnorm - 38 FALSE weibull - 39 FALSE weibull - 40 FALSE weibull - 41 FALSE weibull - 42 FALSE gamma - 43 mosquito FALSE lnorm - 44 FALSE - 45 FALSE - 46 FALSE lnorm - 47 FALSE lnorm - 48 FALSE gamma - 49 FALSE - 50 FALSE - 51 FALSE - 52 FALSE lnorm - 53 FALSE gamma - 54 FALSE lnorm - 55 FALSE - 56 FALSE - 57 FALSE - 58 FALSE lnorm - 59 FALSE lnorm - 60 FALSE lnorm - 61 FALSE lnorm - 62 mosquito FALSE lnorm - 63 FALSE lnorm - 64 FALSE lnorm - 65 FALSE lnorm - 66 FALSE lnorm - 67 FALSE lnorm - 68 mosquito FALSE lnorm - 69 FALSE lnorm - 70 FALSE lnorm - 71 mosquito FALSE lnorm - 72 Aedes aegypti and Aedes albopictus FALSE lnorm - inference_method mean mean_ci_limits mean_ci sd sd_ci_limits sd_ci - 1 mle NA NA, NA NA NA NA, NA NA - 2 mle NA NA, NA NA NA NA, NA NA - 3 5.74 5.18, 6.30 95 NA NA, NA NA - 4 6.38 5.79, 6.97 95 NA NA, NA NA - 5 mle NA NA, NA NA NA NA, NA NA - 6 mle 5.80 5.0, 6.7 95 NA NA, NA NA - 7 5.84 5.07, 6.55 95 2.98 2.31, 3.72 95 - 8 bayesian 6.40 4.89, 8.50 95 3.05 3.05, 5.30 95 - 9 6.50 5.9, 7.1 95 NA NA, NA NA - 10 bayesian 5.00 4.2, 6.0 95 3.00 2.1, 4.5 95 - 11 bayesian 5.60 5.0, 6.3 95 2.80 2.2, 3.6 95 - 12 bayesian 5.60 4.4, 4.8 95 3.90 2.4, 6.9 95 - 13 mle 5.50 NA, NA NA NA NA, NA NA - 14 mle NA NA, NA NA NA NA, NA NA - 15 mle NA NA, NA NA NA NA, NA NA - 16 mle NA NA, NA NA NA NA, NA NA - 17 mle NA NA, NA NA NA NA, NA NA - 18 mle NA NA, NA NA NA NA, NA NA - 19 bayesian 15.00 10, 20 95 NA NA, NA NA - 20 bayesian 6.50 4.8, 8.8 95 NA NA, NA NA - 21 bayesian 5.97 5.5, 6.4 95 1.64 NA, NA NA - 22 mle 12.70 NA, NA NA 4.31 NA, NA NA - 23 mle 10.30 9.9, 10.7 95 8.20 7.8, 8.6 95 - 24 mle 12.60 9.1, 17.1 95 13.10 9.6, 19.6 95 - 25 mle 10.00 9.6, 10.5 95 7.60 7.1, 8.1 95 - 26 mle 10.40 9.8, 11.0 95 8.60 8.0, 9.3 95 - 27 bayesian NA NA, NA NA NA NA, NA NA - 28 4.30 2.6, 6.6 95 NA NA, NA NA - 29 mle 2.05 NA, NA NA 0.49 NA, NA NA - 30 mle NA NA, NA NA NA NA, NA NA - 31 mle NA NA, NA NA NA NA, NA NA - 32 mle NA NA, NA NA NA NA, NA NA - 33 mle NA NA, NA NA NA NA, NA NA - 34 mle NA NA, NA NA NA NA, NA NA - 35 mle NA NA, NA NA NA NA, NA NA - 36 mle NA NA, NA NA NA NA, NA NA - 37 mle NA NA, NA NA NA NA, NA NA - 38 bayesian 3.50 3.2, 3.8 95 NA NA, NA NA - 39 bayesian 3.70 3.4, 4.1 95 NA NA, NA NA - 40 bayesian 3.30 2.9, 3.6 95 NA NA, NA NA - 41 mle 3.40 3.0, 3.7 95 1.70 NA, NA NA - 42 mle 4.50 2.8, 16.2 95 3.30 NA, NA NA - 43 mle NA NA, NA NA NA NA, NA NA - 44 NA NA, NA NA NA NA, NA NA - 45 NA NA, NA NA NA NA, NA NA - 46 mle NA NA, NA NA NA NA, NA NA - 47 mle NA NA, NA NA NA NA, NA NA - 48 bayesian 6.70 6.1, 7.3 95 NA NA, NA NA - 49 8.13 4.9, 19.5 95 NA NA, NA NA - 50 8.08 4.8, 21.0 95 NA NA, NA NA - 51 8.23 4.9, 21.4 95 NA NA, NA NA - 52 bayesian 9.00 6.6, 10.9 95 NA NA, NA NA - 53 bayesian 9.10 6.5, 10.9 95 NA NA, NA NA - 54 bayesian 7.60 6.2, 9.7 95 1.80 1.6, 2.2 95 - 55 NA NA, NA NA NA NA, NA NA - 56 NA NA, NA NA NA NA, NA NA - 57 NA NA, NA NA NA NA, NA NA - 58 bayesian 7.50 6.0, 9.8 95 4.90 3.2, 8.8 95 - 59 bayesian 5.60 4.3, 7.8 95 4.40 2.8, 8.7 95 - 60 mle NA NA, NA NA NA NA, NA NA - 61 mle NA NA, NA NA NA NA, NA NA - 62 mle NA NA, NA NA NA NA, NA NA - 63 mle NA NA, NA NA NA NA, NA NA - 64 mle NA NA, NA NA NA NA, NA NA - 65 mle NA NA, NA NA NA NA, NA NA - 66 mle NA NA, NA NA NA NA, NA NA - 67 mle NA NA, NA NA NA NA, NA NA - 68 mle NA NA, NA NA NA NA, NA NA - 69 mle NA NA, NA NA NA NA, NA NA - 70 mle NA NA, NA NA NA NA, NA NA - 71 mle NA NA, NA NA NA NA, NA NA - 72 bayesian NA NA, NA NA NA NA, NA NA - quantile_2.5 quantile_5 quantile_25 median median_ci_limits median_ci - 1 NA NA 4.80 5.60 4.8, 6.3 95 - 2 NA NA 2.90 3.00 0.5, 3.1 95 - 3 NA NA NA NA NA, NA NA - 4 NA NA NA NA NA, NA NA - 5 NA NA NA NA NA, NA NA - 6 NA NA NA 5.10 4.5, 5.8 95 - 7 2.69 NA NA 5.01 4, 6 95 - 8 1.35 1.90 NA 6.10 NA, NA NA - 9 NA NA NA NA NA, NA NA - 10 NA 1.70 NA 4.30 3.5, 5.1 95 - 11 NA 2.30 NA 5.00 4.4, 5.6 95 - 12 NA 1.70 NA 4.60 3.7, 5.7 95 - 13 2.20 NA NA 5.10 4.5, 5.8 95 - 14 2.60 NA NA 5.70 4.9, 6.8 95 - 15 2.10 NA NA 5.50 4.4, 7.0 95 - 16 2.50 NA NA 4.80 4.2, 5.6 95 - 17 NA NA 4.50 5.60 5.3, 6.0 95 - 18 NA NA 4.30 5.30 5.0, 5.7 95 - 19 5.00 NA NA NA NA, NA NA - 20 2.40 NA NA NA NA, NA NA - 21 3.40 NA NA NA NA, NA NA - 22 NA NA NA NA NA, NA NA - 23 NA NA NA NA NA, NA NA - 24 NA NA NA NA NA, NA NA - 25 NA NA NA NA NA, NA NA - 26 NA NA NA NA NA, NA NA - 27 NA NA 2.90 3.20 2.8, 3.7 95 - 28 NA NA NA 4.00 NA, NA NA - 29 NA NA NA NA NA, NA NA - 30 NA NA NA 1.51 1.47, 1.55 95 - 31 NA NA NA 1.43 1.21, 1.65 95 - 32 NA 0.90 NA 1.40 1.0, 1.8 95 - 33 NA 0.70 1.10 1.40 1.3, 1.5 95 - 34 NA 1.40 1.70 1.90 1.8, 2.0 95 - 35 NA 0.30 0.40 0.60 0.5, 0.6 95 - 36 NA 0.73 NA 1.46 1.35, 1.57 95 - 37 NA 0.73 NA 1.43 1.33, 1.54 95 - 38 NA NA NA NA NA, NA NA - 39 NA NA NA NA NA, NA NA - 40 NA NA NA NA NA, NA NA - 41 NA NA NA NA NA, NA NA - 42 NA NA NA NA NA, NA NA - 43 NA NA 8.10 8.40 5.1, 9.4 95 - 44 NA NA NA NA NA, NA NA - 45 NA NA NA 7.00 NA, NA NA - 46 NA 8.90 10.90 12.50 11.8, 13.3 95 - 47 NA 2.20 NA 5.20 1.9, 14.7 NA - 48 NA NA NA 6.30 5.7, 6.8 95 - 49 NA NA NA NA NA, NA NA - 50 NA NA NA NA NA, NA NA - 51 NA NA NA NA NA, NA NA - 52 3.60 4.20 NA 8.50 6.6, 10.9 95 - 53 NA 2.00 NA NA NA, NA NA - 54 NA NA NA 6.40 5.1, 7.9 95 - 55 NA NA 8.00 9.50 NA, NA NA - 56 NA NA 11.39 16.76 NA, NA NA - 57 NA NA NA 8.26 7.55, 8.97 95 - 58 NA NA NA NA NA, NA NA - 59 NA NA NA NA NA, NA NA - 60 NA NA 2.10 2.60 2.1, 3.1 95 - 61 NA 0.80 1.30 1.90 1.4, 2.4 95 - 62 NA NA 3.10 4.00 3.4, 4.9 95 - 63 NA 3.10 3.80 4.40 3.9, 4.9 95 - 64 NA 3.05 NA 4.41 3.90, 4.92 95 - 65 NA 3.11 NA 4.41 3.89, 4.94 95 - 66 NA 1.50 2.70 4.00 3.6, 4.4 95 - 67 NA 1.00 1.70 2.60 1.6, 3.5 95 - 68 NA NA 2.80 2.90 0.5, 3.1 95 - 69 NA NA 8.70 10.80 8.4, 14.2 95 - 70 NA 1.90 3.20 4.40 4, 5 95 - 71 NA 1.90 3.10 4.40 3.9, 5.0 95 - 72 NA 3.20 4.60 5.90 4.4, 7.6 95 - quantile_75 quantile_87.5 quantile_95 quantile_97.5 lower_range upper_range - 1 6.50 NA NA NA NA NA - 2 3.00 NA NA NA NA NA - 3 NA NA NA NA NA NA - 4 NA NA NA NA NA NA - 5 NA NA NA NA NA NA - 6 NA NA 11.70 NA NA NA - 7 NA NA NA 12.89 NA NA - 8 NA NA 11.90 13.04 NA NA - 9 NA NA NA NA NA NA - 10 NA NA 10.60 NA NA NA - 11 NA NA 10.80 NA NA NA - 12 NA NA 12.30 NA NA NA - 13 NA NA NA 11.50 NA NA - 14 NA NA NA 12.50 NA NA - 15 NA NA NA 14.70 NA NA - 16 NA NA NA 9.20 NA NA - 17 7.10 NA NA NA NA NA - 18 6.60 NA NA NA NA NA - 19 NA NA NA 33.00 NA NA - 20 NA NA NA 15.00 NA NA - 21 NA NA NA 10.00 NA NA - 22 NA NA NA NA NA NA - 23 NA NA NA NA NA NA - 24 NA NA NA NA NA NA - 25 NA NA NA NA NA NA - 26 NA NA NA NA NA NA - 27 3.50 NA NA NA NA NA - 28 NA NA NA NA NA NA - 29 NA NA NA NA NA NA - 30 NA NA 3.43 NA NA NA - 31 NA NA 3.18 NA NA NA - 32 NA NA 2.20 NA NA NA - 33 1.90 NA 2.80 NA NA NA - 34 2.20 NA 2.70 NA NA NA - 35 0.70 NA 1.10 NA NA NA - 36 NA NA 2.94 NA NA NA - 37 NA NA 2.83 NA NA NA - 38 NA NA NA NA NA NA - 39 NA NA NA NA NA NA - 40 NA NA NA NA NA NA - 41 NA NA 6.50 NA NA NA - 42 NA NA 11.00 NA NA NA - 43 8.60 NA NA NA NA NA - 44 NA NA NA NA 2 26 - 45 NA NA NA NA 2 13 - 46 14.40 NA 17.70 NA NA NA - 47 NA NA 12.40 NA NA NA - 48 NA NA 12.10 NA NA NA - 49 NA NA NA NA NA NA - 50 NA NA NA NA NA NA - 51 NA NA 20.00 NA NA NA - 52 NA NA 17.30 19.90 NA NA - 53 NA NA 20.00 NA NA NA - 54 NA NA 17.10 NA NA NA - 55 12.25 NA NA NA NA NA - 56 23.91 NA NA NA NA NA - 57 NA NA NA NA NA NA - 58 NA NA NA NA NA NA - 59 NA NA NA NA NA NA - 60 3.20 NA NA NA NA NA - 61 2.70 NA 4.50 NA NA NA - 62 5.30 NA NA NA NA NA - 63 5.10 NA 6.30 NA NA NA - 64 NA NA 6.39 NA NA NA - 65 NA NA 6.26 NA NA NA - 66 5.90 NA 10.60 NA NA NA - 67 3.80 NA 7.00 NA NA NA - 68 3.00 NA NA NA NA NA - 69 13.30 NA NA NA NA NA - 70 6.30 NA 10.30 NA NA NA - 71 6.20 NA 10.30 NA NA NA - 72 7.60 NA 11.20 NA NA NA - shape shape_ci_limits shape_ci scale scale_ci_limits scale_ci meanlog - 1 NA NA, NA NA NA NA, NA NA NA - 2 NA NA, NA NA NA NA, NA NA NA - 3 NA NA, NA NA NA NA, NA NA NA - 4 NA NA, NA NA NA NA, NA NA NA - 5 NA NA, NA NA NA NA, NA NA 1.66 - 6 NA NA, NA NA NA NA, NA NA 1.63 - 7 NA NA, NA NA NA NA, NA NA NA - 8 NA NA, NA NA NA NA, NA NA NA - 9 NA NA, NA NA NA NA, NA NA NA - 10 NA NA, NA NA NA NA, NA NA NA - 11 NA NA, NA NA NA NA, NA NA NA - 12 NA NA, NA NA NA NA, NA NA NA - 13 NA NA, NA NA NA NA, NA NA NA - 14 NA NA, NA NA NA NA, NA NA NA - 15 NA NA, NA NA NA NA, NA NA NA - 16 NA NA, NA NA NA NA, NA NA NA - 17 NA NA, NA NA NA NA, NA NA NA - 18 NA NA, NA NA NA NA, NA NA NA - 19 NA NA, NA NA NA NA, NA NA NA - 20 NA NA, NA NA NA NA, NA NA NA - 21 NA NA, NA NA NA NA, NA NA 1.75 - 22 NA NA, NA NA NA NA, NA NA NA - 23 NA NA, NA NA NA NA, NA NA NA - 24 NA NA, NA NA NA NA, NA NA NA - 25 NA NA, NA NA NA NA, NA NA NA - 26 NA NA, NA NA NA NA, NA NA NA - 27 NA NA, NA NA NA NA, NA NA NA - 28 NA NA, NA NA NA NA, NA NA NA - 29 NA NA, NA NA NA NA, NA NA NA - 30 3.27 NA, NA NA 0.51 NA, NA NA NA - 31 1.74 NA, NA NA 1.83 NA, NA NA NA - 32 NA NA, NA NA NA NA, NA NA NA - 33 NA NA, NA NA NA NA, NA NA NA - 34 NA NA, NA NA NA NA, NA NA NA - 35 NA NA, NA NA NA NA, NA NA NA - 36 NA NA, NA NA NA NA, NA NA NA - 37 NA NA, NA NA NA NA, NA NA NA - 38 NA NA, NA NA NA NA, NA NA NA - 39 2.30 1.80, 2.89 95 4.21 3.62, 4.85 95 NA - 40 2.03 1.62, 2.52 95 3.74 3.20, 4.36 95 NA - 41 NA NA, NA NA NA NA, NA NA NA - 42 NA NA, NA NA NA NA, NA NA NA - 43 NA NA, NA NA NA NA, NA NA NA - 44 NA NA, NA NA NA NA, NA NA NA - 45 NA NA, NA NA NA NA, NA NA NA - 46 NA NA, NA NA NA NA, NA NA NA - 47 NA NA, NA NA NA NA, NA NA NA - 48 NA NA, NA NA NA NA, NA NA NA - 49 NA NA, NA NA NA NA, NA NA NA - 50 NA NA, NA NA NA NA, NA NA NA - 51 NA NA, NA NA NA NA, NA NA NA - 52 NA NA, NA NA NA NA, NA NA NA - 53 NA NA, NA NA NA NA, NA NA NA - 54 NA NA, NA NA NA NA, NA NA NA - 55 NA NA, NA NA NA NA, NA NA NA - 56 NA NA, NA NA NA NA, NA NA NA - 57 NA NA, NA NA NA NA, NA NA NA - 58 NA NA, NA NA NA NA, NA NA 1.80 - 59 NA NA, NA NA NA NA, NA NA 1.50 - 60 NA NA, NA NA NA NA, NA NA NA - 61 NA NA, NA NA NA NA, NA NA NA - 62 NA NA, NA NA NA NA, NA NA NA - 63 NA NA, NA NA NA NA, NA NA NA - 64 NA NA, NA NA NA NA, NA NA NA - 65 NA NA, NA NA NA NA, NA NA NA - 66 NA NA, NA NA NA NA, NA NA NA - 67 NA NA, NA NA NA NA, NA NA NA - 68 NA NA, NA NA NA NA, NA NA NA - 69 NA NA, NA NA NA NA, NA NA NA - 70 NA NA, NA NA NA NA, NA NA NA - 71 NA NA, NA NA NA NA, NA NA NA - 72 NA NA, NA NA NA NA, NA NA NA - meanlog_ci_limits meanlog_ci sdlog sdlog_ci_limits sdlog_ci dispersion - 1 NA, NA NA NA NA, NA NA 1.26 - 2 NA, NA NA NA NA, NA NA 1.04 - 3 NA, NA NA NA NA, NA NA NA - 4 NA, NA NA NA NA, NA NA NA - 5 1.55, 1.76 95 0.48 0.42, 0.54 95 NA - 6 1.51, 1.75 95 0.50 0.46, 0.55 95 NA - 7 NA, NA NA NA NA, NA NA NA - 8 NA, NA NA NA NA, NA NA NA - 9 NA, NA NA NA NA, NA NA NA - 10 NA, NA NA NA NA, NA NA NA - 11 NA, NA NA NA NA, NA NA NA - 12 NA, NA NA NA NA, NA NA NA - 13 NA, NA NA NA NA, NA NA 1.52 - 14 NA, NA NA NA NA, NA NA NA - 15 NA, NA NA NA NA, NA NA NA - 16 NA, NA NA NA NA, NA NA NA - 17 NA, NA NA NA NA, NA NA 1.41 - 18 NA, NA NA NA NA, NA NA 1.37 - 19 NA, NA NA NA NA, NA NA NA - 20 NA, NA NA NA NA, NA NA NA - 21 NA, NA NA 0.27 NA, NA NA NA - 22 NA, NA NA NA NA, NA NA NA - 23 NA, NA NA NA NA, NA NA NA - 24 NA, NA NA NA NA, NA NA NA - 25 NA, NA NA NA NA, NA NA NA - 26 NA, NA NA NA NA, NA NA NA - 27 NA, NA NA NA NA, NA NA 1.15 - 28 NA, NA NA NA NA, NA NA NA - 29 NA, NA NA NA NA, NA NA NA - 30 NA, NA NA NA NA, NA NA NA - 31 NA, NA NA NA NA, NA NA NA - 32 NA, NA NA NA NA, NA NA NA - 33 NA, NA NA NA NA, NA NA 1.51 - 34 NA, NA NA NA NA, NA NA 1.23 - 35 NA, NA NA NA NA, NA NA 1.51 - 36 NA, NA NA NA NA, NA NA 1.53 - 37 NA, NA NA NA NA, NA NA 1.51 - 38 NA, NA NA NA NA, NA NA NA - 39 NA, NA NA NA NA, NA NA NA - 40 NA, NA NA NA NA, NA NA NA - 41 NA, NA NA NA NA, NA NA NA - 42 NA, NA NA NA NA, NA NA NA - 43 NA, NA NA NA NA, NA NA 1.04 - 44 NA, NA NA NA NA, NA NA NA - 45 NA, NA NA NA NA, NA NA NA - 46 NA, NA NA NA NA, NA NA 1.23 - 47 NA, NA NA NA NA, NA NA NA - 48 NA, NA NA NA NA, NA NA NA - 49 NA, NA NA NA NA, NA NA NA - 50 NA, NA NA NA NA, NA NA NA - 51 NA, NA NA NA NA, NA NA NA - 52 NA, NA NA NA NA, NA NA NA - 53 NA, NA NA NA NA, NA NA NA - 54 NA, NA NA NA NA, NA NA NA - 55 NA, NA NA NA NA, NA NA NA - 56 NA, NA NA NA NA, NA NA NA - 57 NA, NA NA NA NA, NA NA NA - 58 1.6, 2.1 95 0.60 0.4, 0.8 95 NA - 59 1.2, 1.8 95 0.70 0.5, 1.0 95 NA - 60 NA, NA NA NA NA, NA NA 1.35 - 61 NA, NA NA NA NA, NA NA 1.68 - 62 NA, NA NA NA NA, NA NA 1.50 - 63 NA, NA NA NA NA, NA NA 1.24 - 64 NA, NA NA NA NA, NA NA 1.25 - 65 NA, NA NA NA NA, NA NA 1.24 - 66 NA, NA NA NA NA, NA NA 1.81 - 67 NA, NA NA NA NA, NA NA 1.82 - 68 NA, NA NA NA NA, NA NA 1.04 - 69 NA, NA NA NA NA, NA NA 1.35 - 70 NA, NA NA NA NA, NA NA 1.66 - 71 NA, NA NA NA NA, NA NA 1.67 - 72 NA, NA NA NA NA, NA NA 1.50 - dispersion_ci_limits dispersion_ci precision precision_ci_limits - 1 1.13, 1.38 95 NA NA, NA - 2 1.04, 1.08 95 NA NA, NA - 3 NA, NA NA NA NA, NA - 4 NA, NA NA NA NA, NA - 5 NA, NA NA NA NA, NA - 6 NA, NA NA NA NA, NA - 7 NA, NA NA NA NA, NA - 8 NA, NA NA NA NA, NA - 9 NA, NA NA NA NA, NA - 10 NA, NA NA NA NA, NA - 11 NA, NA NA NA NA, NA - 12 NA, NA NA NA NA, NA - 13 1.32, 1.72 95 NA NA, NA - 14 NA, NA NA NA NA, NA - 15 NA, NA NA NA NA, NA - 16 NA, NA NA NA NA, NA - 17 1.34, 1.50 95 NA NA, NA - 18 1.27, 1.52 95 NA NA, NA - 19 NA, NA NA NA NA, NA - 20 NA, NA NA 4.9 2.8, 7.5 - 21 NA, NA NA 13.7 10.9, 16.9 - 22 NA, NA NA NA NA, NA - 23 NA, NA NA NA NA, NA - 24 NA, NA NA NA NA, NA - 25 NA, NA NA NA NA, NA - 26 NA, NA NA NA NA, NA - 27 1.07, 1.34 95 NA NA, NA - 28 NA, NA NA NA NA, NA - 29 NA, NA NA NA NA, NA - 30 NA, NA NA NA NA, NA - 31 NA, NA NA NA NA, NA - 32 NA, NA NA NA NA, NA - 33 1.43, 1.60 95 NA NA, NA - 34 1.17, 1.29 95 NA NA, NA - 35 1.37, 1.64 95 NA NA, NA - 36 1.44, 1.61 95 NA NA, NA - 37 1.43, 1.60 95 NA NA, NA - 38 NA, NA NA NA NA, NA - 39 NA, NA NA NA NA, NA - 40 NA, NA NA NA NA, NA - 41 NA, NA NA NA NA, NA - 42 NA, NA NA NA NA, NA - 43 1.04, 1.05 95 NA NA, NA - 44 NA, NA NA NA NA, NA - 45 NA, NA NA NA NA, NA - 46 1.18, 1.28 95 NA NA, NA - 47 NA, NA NA NA NA, NA - 48 NA, NA NA NA NA, NA - 49 NA, NA NA NA NA, NA - 50 NA, NA NA NA NA, NA - 51 NA, NA NA NA NA, NA - 52 NA, NA NA NA NA, NA - 53 NA, NA NA NA NA, NA - 54 NA, NA NA NA NA, NA - 55 NA, NA NA NA NA, NA - 56 NA, NA NA NA NA, NA - 57 NA, NA NA NA NA, NA - 58 NA, NA NA NA NA, NA - 59 NA, NA NA NA NA, NA - 60 1.16, 1.55 95 NA NA, NA - 61 1.36, 2.01 95 NA NA, NA - 62 1.22, 1.82 95 NA NA, NA - 63 1.13, 1.35 95 NA NA, NA - 64 1.14, 1.36 95 NA NA, NA - 65 1.12, 1.35 95 NA NA, NA - 66 1.67, 1.95 95 NA NA, NA - 67 1.27, 2.67 95 NA NA, NA - 68 1.04, 1.29 95 NA NA, NA - 69 1.12, 1.47 95 NA NA, NA - 70 1.48, 1.82 95 NA NA, NA - 71 1.47, 1.84 95 NA NA, NA - 72 1.2, 1.9 95 NA NA, NA - precision_ci truncation discretised censored right_truncated - 1 NA NA FALSE TRUE FALSE - 2 NA NA FALSE TRUE FALSE - 3 NA NA FALSE FALSE FALSE - 4 NA NA FALSE FALSE FALSE - 5 NA NA FALSE FALSE FALSE - 6 NA NA FALSE FALSE FALSE - 7 NA NA FALSE FALSE FALSE - 8 NA NA FALSE TRUE FALSE - 9 NA NA FALSE FALSE FALSE - 10 NA NA FALSE TRUE FALSE - 11 NA NA FALSE TRUE FALSE - 12 NA NA FALSE TRUE TRUE - 13 NA NA FALSE TRUE FALSE - 14 NA NA FALSE TRUE FALSE - 15 NA NA FALSE TRUE FALSE - 16 NA NA FALSE TRUE FALSE - 17 NA NA FALSE TRUE FALSE - 18 NA NA FALSE TRUE FALSE - 19 NA NA FALSE TRUE FALSE - 20 95 NA FALSE TRUE FALSE - 21 95 NA FALSE TRUE FALSE - 22 NA NA FALSE FALSE FALSE - 23 NA NA FALSE TRUE FALSE - 24 NA NA FALSE TRUE FALSE - 25 NA NA FALSE TRUE FALSE - 26 NA NA FALSE TRUE FALSE - 27 NA NA FALSE TRUE FALSE - 28 NA NA FALSE FALSE FALSE - 29 NA NA FALSE TRUE FALSE - 30 NA NA FALSE TRUE FALSE - 31 NA NA FALSE TRUE FALSE - 32 NA NA FALSE TRUE FALSE - 33 NA NA FALSE TRUE FALSE - 34 NA NA FALSE TRUE FALSE - 35 NA NA FALSE TRUE FALSE - 36 NA NA FALSE TRUE FALSE - 37 NA NA FALSE TRUE FALSE - 38 NA NA FALSE TRUE FALSE - 39 NA NA FALSE TRUE FALSE - 40 NA NA FALSE TRUE FALSE - 41 NA NA FALSE TRUE FALSE - 42 NA NA FALSE TRUE FALSE - 43 NA NA FALSE TRUE FALSE - 44 NA NA FALSE FALSE FALSE - 45 NA NA FALSE FALSE FALSE - 46 NA NA FALSE TRUE FALSE - 47 NA NA FALSE TRUE FALSE - 48 NA NA FALSE TRUE FALSE - 49 NA NA FALSE FALSE FALSE - 50 NA NA FALSE FALSE FALSE - 51 NA NA FALSE FALSE FALSE - 52 NA NA FALSE FALSE FALSE - 53 NA NA FALSE FALSE FALSE - 54 NA NA FALSE TRUE FALSE - 55 NA NA FALSE FALSE FALSE - 56 NA NA FALSE FALSE FALSE - 57 NA NA FALSE FALSE FALSE - 58 NA NA FALSE FALSE FALSE - 59 NA NA FALSE FALSE FALSE - 60 NA NA FALSE TRUE FALSE - 61 NA NA FALSE TRUE FALSE - 62 NA NA FALSE TRUE FALSE - 63 NA NA FALSE TRUE FALSE - 64 NA NA FALSE TRUE FALSE - 65 NA NA FALSE TRUE FALSE - 66 NA NA FALSE TRUE FALSE - 67 NA NA FALSE TRUE FALSE - 68 NA NA FALSE TRUE FALSE - 69 NA NA FALSE TRUE FALSE - 70 NA NA FALSE TRUE FALSE - 71 NA NA FALSE TRUE FALSE - 72 NA NA FALSE TRUE FALSE - phase_bias_adjusted - 1 FALSE - 2 FALSE - 3 FALSE - 4 FALSE - 5 FALSE - 6 FALSE - 7 FALSE - 8 FALSE - 9 FALSE - 10 FALSE - 11 FALSE - 12 TRUE - 13 TRUE - 14 TRUE - 15 TRUE - 16 TRUE - 17 FALSE - 18 FALSE - 19 FALSE - 20 FALSE - 21 FALSE - 22 FALSE - 23 FALSE - 24 FALSE - 25 FALSE - 26 FALSE - 27 FALSE - 28 FALSE - 29 FALSE - 30 TRUE - 31 TRUE - 32 FALSE - 33 FALSE - 34 FALSE - 35 FALSE - 36 FALSE - 37 FALSE - 38 FALSE - 39 FALSE - 40 FALSE - 41 FALSE - 42 FALSE - 43 FALSE - 44 FALSE - 45 FALSE - 46 FALSE - 47 FALSE - 48 FALSE - 49 FALSE - 50 FALSE - 51 FALSE - 52 FALSE - 53 FALSE - 54 FALSE - 55 FALSE - 56 FALSE - 57 FALSE - 58 FALSE - 59 FALSE - 60 FALSE - 61 FALSE - 62 FALSE - 63 FALSE - 64 FALSE - 65 FALSE - 66 FALSE - 67 FALSE - 68 FALSE - 69 FALSE - 70 FALSE - 71 FALSE - 72 FALSE - notes - 1 Analysis on data from Commission on Acute Respiratory Disease. Experimental transmission of minor respiratory illness to human volunteers by filter-passing agents. I. Demonstration of two types of illness characterized by long and short incubation periods and diff erent clinical features. J Clin Invest 1947; 26: 957–82. - 2 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets - 3 This estimated mean incubation period is from a meta-analysis of 15 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model. - 4 This estimated mean incubation period is from a meta-analysis of 99 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model. - 5 The incubation period parameters are estimated from a meta-analysis of other studies that estimated the incubation period using a lognormal distribution. This is the full set of data (N=9). - 6 The incubation period parameters are estimated from a meta-analysis of other studies that estimated the incubation period using a lognormal distribution. This is the data set with Backer removed as they did not have a defined exposure window (N=8). - 7 The estimate of the incubation period is from a non-parametric bootstrap approach that does not fit a parametric distribution. - 8 No additional notes - 9 This estimated mean incubation period is from a meta-analysis of 14 other incubation period estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model. - 10 This dataset excludes Wuhan residents (to have a more precise exposure interval). This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions. - 11 This dataset includes Wuhan residents (which have a less precise exposure interval). This method does not apply right-truncation, but does compare the gamma, weibull and lognormal distributions. - 12 This is excluding Wuhan residents from the dataset as this provides a more precise exposure interval. This method applies right-truncation but only fits a lognormal distribution. - 13 This is the complete data set. - 14 This is a subset of the data, including only those cases with a known onset of fever to be sure that the onset of symptoms is not from another pathogen. - 15 This is a subset of the data, including only cases that are detected outside of mainland China. - 16 This is a subset of the data, including only cases that are detected inside mainland China. - 17 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets - 18 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections - 19 Extrinsic incubation period for data at 25 degrees celcius - 20 Extrinsic incubation period for data at 30 degrees celcius - 21 Standard deviation, meanlog and sdlog is taken from Siraj et al. 2017 <10.1371/journal.pntd.0005797> - 22 The paper reports lower and upper supported ranges for the mean and standard deviation but it is not clear if these are confidence intervals or not so are not included in the database - 23 Data extracted from Appendix. This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100 - 24 This data comes from the entire period of the Guinea ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100 - 25 This data comes from the entire period of the Liberia ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100 - 26 This data comes from the entire period of the Seirra Leone ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100 - 27 Analysis on data from Bradburne AF, Bynoe ML, Tyrrell DA. Eff ects of a “new” human respiratory virus in volunteers. Br Med J 1967; 3: 767–69. - 28 The mid-point of the exposure time was used to approximate an exact exposure time instead of interval-censoring. This can lead to a possible bias (overestimation) in incubation times. It was ambiguously reported whether the mean is the mean of the distribution or the meanlog parameter of the lognormal distribution. - 29 No additional notes - 30 Gamma and weibull distributions had equally good fit to the data. This entry is the gamma distribution. Gamma, exponential. Not open source. - 31 Gamma and weibull distributions had equally good fit to the data. This entry is the weibull distribution. Weibull, exponential - 32 No additional notes. - 33 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 34 These estimates for the incubation period of influenza A from Lessler et al. 2009 are different from the estimates from the complete data, as they remove Henle et al. 1945 J Immunol, as it is an outlier in the dataset (n=61). Values found at the bottom Table 3. - 35 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 36 Data from Lessler et al 2009 using double interval-censored analysis. Not open source - 37 Data from Lessler et al 2009 using single interval-censored analysis. Not open source - 38 This study fit the weibull distribution to estimate the parameters for the complete data set, those who had a fatal outcome and those with a non-fatal outcome. This is the distribution fit to the complete unpartitioned data. - 39 This study fit the weibull distribution to estimate the parameters for the complete data set, those who had a fatal outcome and those with a non-fatal outcome. This is the distribution fit to the fatal outcome data. - 40 This study fit the weibull distribution to estimate the parameters for the complete data set, those who had a fatal outcome and those with a non-fatal outcome. This is the distribution fit to the non-fatal outcome data. - 41 This study used an original data set and a modified data set. This weibull distribution was fitted to the modified data set and it is recommended to use this one. - 42 This study used an original data set and a modified data set. This gamma distribution was fitted to the original data set and it is recommended to use the weibull distribution that was fitted to the modified data set. - 43 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets - 44 This paper did not fit a distribution to the incubation period data and only reported a lower and upper range of the data. This is present in the database as there are no other studies that report the incubation period for Marburg virus. There is another incubation period reported from the same paper for a subset of the data which report the median and interquartile range but again do not fit a distribution to the data. - 45 This paper did not fit a distribution to the incubation period data and only reported a median and range for a subset of the data. This is present in the database as there are no other studies that report the incubation period for Marburg virus. This paper also reports the maximum and minimum for the complete data set. - 46 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 47 The sample size is not explicitly stated. The number of confirmed cases is 23 and there are 2 suspected cases, therefore it is not clear whether the 2 suspected cases were included in the estimation, the sample size is assumed to be 23. - 48 No additional notes - 49 SEIR model from 10.1016/j.mbs.2008.06.005 where the IP is assumed to follow a gamma distribution - 50 SEIR model from 10.1016/j.mbs.2008.06.005 where the IP is assumed to follow a gamma distribution - 51 SEIR model from 10.1016/j.mbs.2008.06.005 where the IP is assumed to follow a gamma distribution - 52 No additional notes - 53 No additional notes - 54 Uses the methods described by Lessler (10.2471/BLT.16.174540) and Reich (10.1002/sim.3659). Estimated from time from exposure to first symptom onset - 55 Systematic review - 56 Systematic review - 57 Systematic review - 58 Meanlog, sdlog, and fitted distribution from supplementary material. Uses cases from Charniga 2022 + extra cases. Incubation period as exposure to rash onset. - 59 Meanlog, sdlog, and fitted distribution from supplementary material. Uses cases from Charniga 2022 + extra cases. Incubation period as exposure to symptom onset. - 60 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 61 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 62 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. Of the 18 samples at least 17 of them are not trasmitted by mosquitoes - 63 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 64 Data from Lessler et al 2009 using double interval-censored analysis. Not open source - 65 Data from Lessler et al 2009 using single interval-censored analysis. Not open source - 66 Pooled analysis on several data sets, see Lessler et al. 2009 for references of datasets - 67 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets - 68 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections - 69 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only tramsission by transplant or transfusion. - 70 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets - 71 Pooled analysis on several data sets, see Rudolph et al 2014 for references of datasets. This is a subset of data containing only mosquito-transmitted infections - 72 Pooled analysis on several data sets, see Lessler et al. 2016 for references of datasets - PMID DOI - 1 19393959 10.1016/S1473-3099(09)70069-6 - 2 24639305 10.4269/ajtmh.13-0403 - 3 33643779 10.1007/s10389-021-01478-1 - 4 33548553 10.1016/j.ijid.2021.01.069 - 5 32801208 10.1136/bmjopen-2020-039652 - 6 32801208 10.1136/bmjopen-2020-039652 - 7 NA 10.1101/2020.02.24.20027474 - 8 33362233 10.1371/journal.pone.0243889 - 9 33706702 10.1186/s12879-021-05950-x - 10 32079150 10.3390/jcm9020538 - 11 32079150 10.3390/jcm9020538 - 12 32079150 10.3390/jcm9020538 - 13 32150748 10.7326/M20-0504 - 14 32150748 10.7326/M20-0504 - 15 32150748 10.7326/M20-0504 - 16 32150748 10.7326/M20-0504 - 17 24639305 10.4269/ajtmh.13-0403 - 18 24639305 10.4269/ajtmh.13-0403 - 19 23226436 10.1371/journal.pone.0050972 - 20 23226436 10.1371/journal.pone.0050972 - 21 23226436 10.1371/journal.pone.0050972 - 22 24159443 10.1016/j.phrp.2011.04.001 - 23 25539446 10.1056/NEJMc1414992 - 24 25539446 10.1056/NEJMc1414992 - 25 25539446 10.1056/NEJMc1414992 - 26 25539446 10.1056/NEJMc1414992 - 27 19393959 10.1016/S1473-3099(09)70069-7 - 28 19959592 10.1503/cmaj.091807 - 29 20029668 10.1371/currents.RRN1130 - 30 21168422 10.1016/j.jtbi.2010.12.017 - 31 21168422 10.1016/j.jtbi.2010.12.017 - 32 20042754 10.1056/NEJMoa0906089 - 33 19393959 10.1016/S1473-3099(09)70069-9 - 34 19393959 10.1016/S1473-3099(09)70069-10 - 35 19393959 10.1016/S1473-3099(09)70069-11 - 36 19598148 10.1002/sim.3659 - 37 19598148 10.1002/sim.3659 - 38 26885816 10.1371/journal.pone.0148506 - 39 26885816 10.1371/journal.pone.0148506 - 40 26885816 10.1371/journal.pone.0148506 - 41 26409239 10.1093/aje/kwv115 - 42 26409239 10.1093/aje/kwv115 - 43 24639305 10.4269/ajtmh.13-0403 - 44 25495697 10.1186/1756-0500-7-906 - 45 25495697 10.1186/1756-0500-7-906 - 46 19393959 10.1016/S1473-3099(09)70069-12 - 47 23782161 10.1056/NEJMoa1306742 - 48 26132767 10.2807/1560-7917.es2015.20.25.21163 - 49 36573222 10.1016/j.jobb.2022.12.001 - 50 36573222 10.1016/j.jobb.2022.12.001 - 51 36573222 10.1016/j.jobb.2022.12.001 - 52 35713026 10.2807/1560-7917.ES.2022.27.24.2200448 - 53 35994726 10.3201/eid2810.221126 - 54 NA 10.1101/2022.06.22.22276713 - 55 36130210 10.1093/jtm/taac105 - 56 36130210 10.1093/jtm/taac105 - 57 36130210 10.1093/jtm/taac105 - 58 NA 10.1101/2022.10.26.22281516 - 59 NA 10.1101/2022.10.26.22281516 - 60 19393959 10.1016/S1473-3099(09)70069-13 - 61 19393959 10.1016/S1473-3099(09)70069-15 - 62 24639305 10.4269/ajtmh.13-0403 - 63 19393959 10.1016/S1473-3099(09)70069-14 - 64 19598148 10.1002/sim.3659 - 65 19598148 10.1002/sim.3659 - 66 19393959 10.1016/S1473-3099(09)70069-8 - 67 24639305 10.4269/ajtmh.13-0403 - 68 24639305 10.4269/ajtmh.13-0403 - 69 24639305 10.4269/ajtmh.13-0403 - 70 24639305 10.4269/ajtmh.13-0403 - 71 24639305 10.4269/ajtmh.13-0403 - 72 27821887 10.2471/BLT.16.174540 + disease epi_distribution prob_distribution author year + 1 Adenovirus incubation period lnorm Justin L.... 2009 + 2 Human Coronavirus incubation period lnorm Justin L.... 2009 + 3 SARS incubation period lnorm Justin L.... 2009 + 4 Influenza incubation period lnorm Justin L.... 2009 + 5 Influenza incubation period lnorm Justin L.... 2009 + 6 Influenza incubation period lnorm Justin L.... 2009 + 7 Measles incubation period lnorm Justin L.... 2009 + 8 Parainfluenza incubation period lnorm Justin L.... 2009 + 9 RSV incubation period lnorm Justin L.... 2009 + 10 Rhinovirus incubation period lnorm Justin L.... 2009 + 11 Influenza incubation period lnorm Nicholas.... 2009 + 12 Influenza incubation period lnorm Nicholas.... 2009 + 13 RSV incubation period lnorm Nicholas.... 2009 + 14 RSV incubation period lnorm Nicholas.... 2009 + 15 Influenza incubation period gamma Hiroshi .... 2011 + 16 Influenza incubation period weibull Hiroshi .... 2011 + 17 Influenza incubation period weibull Victor V.... 2015 + 18 Influenza incubation period gamma Victor V.... 2015 + 19 Influenza incubation period weibull Victor V.... 2016 + 20 Influenza incubation period weibull Victor V.... 2016 + 21 Influenza incubation period weibull Victor V.... 2016 + 22 Influenza incubation period lnorm Ashleigh.... 2010 + 23 Influenza incubation period gamma Azra Gha.... 2009 + 24 Influenza incubation period lnorm Justin L.... 2009 + 25 Marburg Virus Disease incubation period Boris I..... 2014 + 26 Marburg Virus Disease incubation period Boris I..... 2014 + 27 Dengue incubation period lnorm Miranda .... 2012 + 28 Dengue incubation period lnorm Miranda .... 2012 + 29 Dengue incubation period lnorm Miranda .... 2012 + 30 Zika Virus Disease incubation period lnorm Justin L.... 2016 + 31 Chikungunya incubation period lnorm Kara E R.... 2014 + 32 Dengue incubation period lnorm Kara E R.... 2014 + 33 Dengue incubation period lnorm Kara E R.... 2014 + 34 Japanese Encephalitis incubation period lnorm Kara E R.... 2014 + 35 Rift Valley Fever incubation period lnorm Kara E R.... 2014 + 36 West Nile Fever incubation period lnorm Kara E R.... 2014 + 37 West Nile Fever incubation period lnorm Kara E R.... 2014 + 38 West Nile Fever incubation period lnorm Kara E R.... 2014 + 39 Yellow Fever incubation period lnorm Kara E R.... 2014 + 40 Yellow Fever incubation period lnorm Kara E R.... 2014 + 41 Mpox incubation period lnorm Fuminari.... 2022 + 42 Mpox incubation period lnorm Kelly Ch.... 2022 + 43 Mpox incubation period gamma Giorgio .... 2022 + 44 Mpox incubation period lnorm Zachary .... 2022 + 45 Mpox incubation period lnorm Zachary .... 2022 + 46 Ebola Virus Disease incubation period lnorm Martin E.... 2011 + 47 Ebola Virus Disease incubation period gamma WHO-Ebol.... 2015 + 48 Ebola Virus Disease incubation period gamma WHO-Ebol.... 2015 + 49 Ebola Virus Disease incubation period gamma WHO-Ebol.... 2015 + 50 Ebola Virus Disease incubation period gamma WHO-Ebol.... 2015 + 51 MERS incubation period lnorm Abdullah.... 2013 + 52 MERS incubation period gamma B J Cowl.... 2015 + 53 COVID-19 incubation period Ke Men, .... 2020 + 54 COVID-19 incubation period Balram R.... 2022 + 55 COVID-19 incubation period Muluneh .... 2021 + 56 COVID-19 incubation period Christel.... 2021 + 57 COVID-19 incubation period weibull Long V. .... 2020 + 58 COVID-19 incubation period lnorm Conor Mc.... 2020 + 59 COVID-19 incubation period lnorm Conor Mc.... 2020 + 60 COVID-19 incubation period lnorm Natalie .... 2020 + 61 COVID-19 incubation period lnorm Natalie .... 2020 + 62 COVID-19 incubation period lnorm Natalie .... 2020 + 63 COVID-19 incubation period lnorm Stephen .... 2020 + 64 COVID-19 incubation period lnorm Stephen .... 2020 + 65 COVID-19 incubation period lnorm Stephen .... 2020 + 66 COVID-19 incubation period lnorm Stephen .... 2020 + 67 Mpox incubation period Shuqi Wa.... 2022 + 68 Mpox incubation period Shuqi Wa.... 2022 + 69 Mpox incubation period Shuqi Wa.... 2022 + 70 Mpox incubation period Fengying.... 2022 + 71 Mpox incubation period Fengying.... 2022 + 72 Mpox incubation period Fengying.... 2022 -# list_distributions works for different distribution +# list_distributions works for different distribution with db Code - list_distributions(epiparam = eparam, epi_dist = "serial_interval") + serial_tbl Output disease epi_distribution prob_distribution author year - 1 COVID-19 serial_interval Muluneh .... 2021 - 2 Ebola Virus Disease serial_interval gamma WHO-Ebol.... 2015 - 3 Ebola Virus Disease serial_interval gamma WHO-Ebol.... 2015 - 4 Ebola Virus Disease serial_interval gamma WHO-Ebol.... 2015 - 5 Ebola Virus Disease serial_interval gamma WHO-Ebol.... 2015 - 6 Influenza serial_interval gamma Azra Gha.... 2009 - 7 Marburg Virus Disease serial_interval Boris I..... 2014 - 8 Marburg Virus Disease serial_interval gamma Marco Aj.... 2012 - 9 MERS serial_interval lnorm Abdullah.... 2013 - 10 MERS serial_interval gamma B J Cowl.... 2015 - 11 Mpox serial_interval Shuqi Wa.... 2022 - 12 Mpox serial_interval Shuqi Wa.... 2022 - 13 Mpox serial_interval gamma Zachary .... 2022 - 14 Mpox serial_interval gamma Zachary .... 2022 - 15 Mpox serial_interval gamma Zihao Gu.... 2022 - sample_size - 1 3924 - 2 305 - 3 37 - 4 147 - 5 112 - 6 58 - 7 38 - 8 374 - 9 23 - 10 99 - 11 16 - 12 34 - 13 57 - 14 40 - 15 42 + 1 Influenza serial interval gamma Azra Gha.... 2009 + 2 Marburg Virus Disease serial interval Boris I..... 2014 + 3 Marburg Virus Disease serial interval gamma Marco Aj.... 2012 + 4 Mpox serial interval gamma Zachary .... 2022 + 5 Mpox serial interval gamma Zachary .... 2022 + 6 Ebola Virus Disease serial interval gamma WHO-Ebol.... 2015 + 7 Ebola Virus Disease serial interval gamma WHO-Ebol.... 2015 + 8 Ebola Virus Disease serial interval gamma WHO-Ebol.... 2015 + 9 Ebola Virus Disease serial interval gamma WHO-Ebol.... 2015 + 10 MERS serial interval lnorm Abdullah.... 2013 + 11 MERS serial interval gamma B J Cowl.... 2015 + 12 COVID-19 serial interval Muluneh .... 2021 + 13 Mpox serial interval gamma Zihao Gu.... 2022 + 14 Mpox serial interval Shuqi Wa.... 2022 + 15 Mpox serial interval Shuqi Wa.... 2022 + +# list_distributions works for different distribution without db + + Code + serial_tbl + Output + disease epi_distribution prob_distribution author year + 1 Influenza serial interval gamma Azra Gha.... 2009 + 2 Marburg Virus Disease serial interval Boris I..... 2014 + 3 Marburg Virus Disease serial interval gamma Marco Aj.... 2012 + 4 Mpox serial interval gamma Zachary .... 2022 + 5 Mpox serial interval gamma Zachary .... 2022 + 6 Ebola Virus Disease serial interval gamma WHO-Ebol.... 2015 + 7 Ebola Virus Disease serial interval gamma WHO-Ebol.... 2015 + 8 Ebola Virus Disease serial interval gamma WHO-Ebol.... 2015 + 9 Ebola Virus Disease serial interval gamma WHO-Ebol.... 2015 + 10 MERS serial interval lnorm Abdullah.... 2013 + 11 MERS serial interval gamma B J Cowl.... 2015 + 12 COVID-19 serial interval Muluneh .... 2021 + 13 Mpox serial interval gamma Zihao Gu.... 2022 + 14 Mpox serial interval Shuqi Wa.... 2022 + 15 Mpox serial interval Shuqi Wa.... 2022 + +# list_distributions works for COVID-19 db + + Code + incub_tbl + Output + disease epi_distribution prob_distribution author year + 1 COVID-19 incubation period Ke Men, .... 2020 + 2 COVID-19 incubation period Balram R.... 2022 + 3 COVID-19 incubation period Muluneh .... 2021 + 4 COVID-19 serial interval Muluneh .... 2021 + 5 COVID-19 incubation period Christel.... 2021 + 6 COVID-19 incubation period weibull Long V. .... 2020 + 7 COVID-19 incubation period lnorm Conor Mc.... 2020 + 8 COVID-19 incubation period lnorm Conor Mc.... 2020 + 9 COVID-19 incubation period lnorm Natalie .... 2020 + 10 COVID-19 incubation period lnorm Natalie .... 2020 + 11 COVID-19 onset to hospitalisation gamma Natalie .... 2020 + 12 COVID-19 onset to hospitalisation gamma Natalie .... 2020 + 13 COVID-19 onset to death lnorm Natalie .... 2020 + 14 COVID-19 hospitalisation to death weibull Natalie .... 2020 + 15 COVID-19 incubation period lnorm Natalie .... 2020 + 16 COVID-19 onset to hospitalisation lnorm Natalie .... 2020 + 17 COVID-19 onset to hospitalisation lnorm Natalie .... 2020 + 18 COVID-19 onset to death lnorm Natalie .... 2020 + 19 COVID-19 hospitalisation to death lnorm Natalie .... 2020 + 20 COVID-19 incubation period lnorm Stephen .... 2020 + 21 COVID-19 incubation period lnorm Stephen .... 2020 + 22 COVID-19 incubation period lnorm Stephen .... 2020 + 23 COVID-19 incubation period lnorm Stephen .... 2020 + +# list_distributions works for COVID-19 without db + + Code + incub_tbl + Output + disease epi_distribution prob_distribution author year + 1 COVID-19 incubation period Ke Men, .... 2020 + 2 COVID-19 incubation period Balram R.... 2022 + 3 COVID-19 incubation period Muluneh .... 2021 + 4 COVID-19 serial interval Muluneh .... 2021 + 5 COVID-19 incubation period Christel.... 2021 + 6 COVID-19 incubation period weibull Long V. .... 2020 + 7 COVID-19 incubation period lnorm Conor Mc.... 2020 + 8 COVID-19 incubation period lnorm Conor Mc.... 2020 + 9 COVID-19 incubation period lnorm Natalie .... 2020 + 10 COVID-19 incubation period lnorm Natalie .... 2020 + 11 COVID-19 onset to hospitalisation gamma Natalie .... 2020 + 12 COVID-19 onset to hospitalisation gamma Natalie .... 2020 + 13 COVID-19 onset to death lnorm Natalie .... 2020 + 14 COVID-19 hospitalisation to death weibull Natalie .... 2020 + 15 COVID-19 incubation period lnorm Natalie .... 2020 + 16 COVID-19 onset to hospitalisation lnorm Natalie .... 2020 + 17 COVID-19 onset to hospitalisation lnorm Natalie .... 2020 + 18 COVID-19 onset to death lnorm Natalie .... 2020 + 19 COVID-19 hospitalisation to death lnorm Natalie .... 2020 + 20 COVID-19 incubation period lnorm Stephen .... 2020 + 21 COVID-19 incubation period lnorm Stephen .... 2020 + 22 COVID-19 incubation period lnorm Stephen .... 2020 + 23 COVID-19 incubation period lnorm Stephen .... 2020 + +# list_distributions works for disease & epi_dist subset with db + + Code + incub_tbl + Output + disease epi_distribution prob_distribution author year + 1 COVID-19 incubation period Ke Men, .... 2020 + 2 COVID-19 incubation period Balram R.... 2022 + 3 COVID-19 incubation period Muluneh .... 2021 + 4 COVID-19 incubation period Christel.... 2021 + 5 COVID-19 incubation period weibull Long V. .... 2020 + 6 COVID-19 incubation period lnorm Conor Mc.... 2020 + 7 COVID-19 incubation period lnorm Conor Mc.... 2020 + 8 COVID-19 incubation period lnorm Natalie .... 2020 + 9 COVID-19 incubation period lnorm Natalie .... 2020 + 10 COVID-19 incubation period lnorm Natalie .... 2020 + 11 COVID-19 incubation period lnorm Stephen .... 2020 + 12 COVID-19 incubation period lnorm Stephen .... 2020 + 13 COVID-19 incubation period lnorm Stephen .... 2020 + 14 COVID-19 incubation period lnorm Stephen .... 2020 + +# list_distributions works for disease & epi_dist subset without db + + Code + incub_tbl + Output + disease epi_distribution prob_distribution author year + 1 COVID-19 incubation period Ke Men, .... 2020 + 2 COVID-19 incubation period Balram R.... 2022 + 3 COVID-19 incubation period Muluneh .... 2021 + 4 COVID-19 incubation period Christel.... 2021 + 5 COVID-19 incubation period weibull Long V. .... 2020 + 6 COVID-19 incubation period lnorm Conor Mc.... 2020 + 7 COVID-19 incubation period lnorm Conor Mc.... 2020 + 8 COVID-19 incubation period lnorm Natalie .... 2020 + 9 COVID-19 incubation period lnorm Natalie .... 2020 + 10 COVID-19 incubation period lnorm Natalie .... 2020 + 11 COVID-19 incubation period lnorm Stephen .... 2020 + 12 COVID-19 incubation period lnorm Stephen .... 2020 + 13 COVID-19 incubation period lnorm Stephen .... 2020 + 14 COVID-19 incubation period lnorm Stephen .... 2020 + +# list_distribution works when supplied a subset db + + Code + covid_tbl + Output + disease epi_distribution prob_distribution author year + 1 COVID-19 incubation period Ke Men, .... 2020 + 2 COVID-19 incubation period Balram R.... 2022 + 3 COVID-19 incubation period Muluneh .... 2021 + 4 COVID-19 serial interval Muluneh .... 2021 + 5 COVID-19 incubation period Christel.... 2021 + 6 COVID-19 incubation period weibull Long V. .... 2020 + 7 COVID-19 incubation period lnorm Conor Mc.... 2020 + 8 COVID-19 incubation period lnorm Conor Mc.... 2020 + 9 COVID-19 incubation period lnorm Natalie .... 2020 + 10 COVID-19 incubation period lnorm Natalie .... 2020 + 11 COVID-19 onset to hospitalisation gamma Natalie .... 2020 + 12 COVID-19 onset to hospitalisation gamma Natalie .... 2020 + 13 COVID-19 onset to death lnorm Natalie .... 2020 + 14 COVID-19 hospitalisation to death weibull Natalie .... 2020 + 15 COVID-19 incubation period lnorm Natalie .... 2020 + 16 COVID-19 onset to hospitalisation lnorm Natalie .... 2020 + 17 COVID-19 onset to hospitalisation lnorm Natalie .... 2020 + 18 COVID-19 onset to death lnorm Natalie .... 2020 + 19 COVID-19 hospitalisation to death lnorm Natalie .... 2020 + 20 COVID-19 incubation period lnorm Stephen .... 2020 + 21 COVID-19 incubation period lnorm Stephen .... 2020 + 22 COVID-19 incubation period lnorm Stephen .... 2020 + 23 COVID-19 incubation period lnorm Stephen .... 2020 + +# list_distributions works as expected supplied with + + Code + dist_tbl + Output + disease epi_distribution prob_distribution author year + 1 Ebola Virus Disease onset to death gamma WHO-Ebol.... 2015 + +# list_distributions works as expected with discretised + + Code + dist_tbl + Output + disease epi_distribution prob_distribution author year + 1 Ebola serial interval gamma John Smith 2022 -# list_distributions works for different dist, subset_db = FALSE +# list_distribution works passing arg to epidist_db Code - list_distributions(epiparam = eparam, epi_dist = "serial_interval", subset_db = FALSE) + covid_tbl Output - disease pathogen epi_distribution author - 1 COVID-19 SARS-CoV-2 serial_interval Muluneh .... - 2 Ebola Virus Disease Ebola Virus serial_interval WHO-Ebol.... - 3 Ebola Virus Disease Ebola Virus serial_interval WHO-Ebol.... - 4 Ebola Virus Disease Ebola Virus serial_interval WHO-Ebol.... - 5 Ebola Virus Disease Ebola Virus serial_interval WHO-Ebol.... - 6 Influenza Influenza-A-H1N1Pdm serial_interval Azra Gha.... - 7 Marburg Virus Disease Marburg Virus serial_interval Boris I..... - 8 Marburg Virus Disease Marburg Virus serial_interval Marco Aj.... - 9 MERS MERS-Cov serial_interval Abdullah.... - 10 MERS MERS-Cov serial_interval B J Cowl.... - 11 Mpox Mpox Virus Clade I serial_interval Shuqi Wa.... - 12 Mpox Mpox Virus serial_interval Shuqi Wa.... - 13 Mpox Mpox Virus serial_interval Zachary .... - 14 Mpox Mpox Virus serial_interval Zachary .... - 15 Mpox Mpox Virus serial_interval Zihao Gu.... - title - 1 Serial interval and incubation period of COVID-19: a systematic review and meta-analysis - 2 West African Ebola Epidemic after One Year — Slowing but Not Yet under Control - 3 West African Ebola Epidemic after One Year — Slowing but Not Yet under Control - 4 West African Ebola Epidemic after One Year — Slowing but Not Yet under Control - 5 West African Ebola Epidemic after One Year — Slowing but Not Yet under Control - 6 The Early Transmission Dynamics of H1N1pdm Influenza in the United Kingdom - 7 Calculation of incubation period and serial interval from multiple outbreaks of Marburg virus disease - 8 Transmission Potential and Design of Adequate Control Measures for Marburg Hemorrhagic Fever - 9 Hospital Outbreak of Middle East Respiratory Syndrome Coronavirus - 10 Preliminary epidemiological assessment of MERS-CoV outbreak in South Korea, May to June 2016 - 11 Serial intervals and incubation periods of the monkeypox virus clades - 12 Serial intervals and incubation periods of the monkeypox virus clades - 13 Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2024 - 14 Serial interval and incubation period estimates of monkeypox virus infection in 12 U.S. jurisdictions, May – August 2025 - 15 Estimation of the serial interval of monkeypox during the early outbreak in 2022 - journal year sample_size region - 1 BMC Infectious Diseases 2021 3924 Mixed - 2 The New England Journal of Medicine 2015 305 West Africa - 3 The New England Journal of Medicine 2015 37 Guinea - 4 The New England Journal of Medicine 2015 147 Liberia - 5 The New England Journal of Medicine 2015 112 Sierra Leone - 6 PLoS Currents 2009 58 UK - 7 BMC Research Notes 2014 38 Mixed - 8 PLoS One 2012 374 Angola - 9 The New England Journal of Medicine 2013 23 Saudi Arabia - 10 Eurosurveillance 2015 99 South Korea - 11 Journal of Travel Medicine 2022 16 Congo - 12 Journal of Travel Medicine 2022 34 Mixed - 13 medRxiv 2022 57 USA - 14 medRxiv 2022 40 USA - 15 Journal of Medical Virology 2022 42 Mixed - transmission_mode vector extrinsic prob_distribution - 1 natural_natural_human_to_human FALSE - 2 natural_natural_human_to_human FALSE gamma - 3 natural_natural_human_to_human FALSE gamma - 4 natural_natural_human_to_human FALSE gamma - 5 natural_natural_human_to_human FALSE gamma - 6 natural_unknown FALSE gamma - 7 mixed FALSE - 8 natural_unknown FALSE gamma - 9 natural_natural_human_to_human FALSE lnorm - 10 natural_unknown FALSE gamma - 11 natural_unknown FALSE - 12 natural_unknown FALSE - 13 natural_natural_human_to_human FALSE gamma - 14 natural_natural_human_to_human FALSE gamma - 15 mixed FALSE gamma - inference_method mean mean_ci_limits mean_ci sd sd_ci_limits sd_ci - 1 5.20 4.9, 5.5 95 NA NA, NA NA - 2 mle 14.20 13.1, 15.3 95 9.60 8.6, 10.7 95 - 3 mle 15.50 13.4, 18.1 95 7.00 5.5, 9.4 95 - 4 mle 15.10 13.5, 16.9 95 10.50 9.1, 12.5 95 - 5 mle 12.40 10.8, 14.2 95 9.00 7.5, 10.9 95 - 6 mle 2.51 NA, NA NA 1.55 NA, NA NA - 7 NA NA, NA NA NA NA, NA NA - 8 9.00 8.2, 10.0 95 5.40 3.9, 8.6 95 - 9 mle NA NA, NA NA NA NA, NA NA - 10 bayesian 12.60 12.1, 13.1 95 2.80 2.4, 3.1 95 - 11 NA NA, NA NA NA NA, NA NA - 12 NA NA, NA NA NA NA, NA NA - 13 bayesian 8.50 7.3, 9.9 95 5.00 4.0, 6.4 95 - 14 bayesian 7.00 5.8, 8.4 95 4.20 3.2, 5.6 95 - 15 bayesian 5.60 1.7, 10.4 95 1.50 0.4, 2.4 95 - quantile_2.5 quantile_5 quantile_25 median median_ci_limits median_ci - 1 NA NA NA NA NA, NA NA - 2 NA NA NA NA NA, NA NA - 3 NA NA NA NA NA, NA NA - 4 NA NA NA NA NA, NA NA - 5 NA NA NA NA NA, NA NA - 6 NA NA NA NA NA, NA NA - 7 NA NA 8.00 11.00 NA, NA NA - 8 NA NA NA NA NA, NA NA - 9 NA 3 NA 7.60 2.5, 23.1 NA - 10 NA NA NA NA NA, NA NA - 11 NA NA 9.28 9.67 NA, NA NA - 12 NA NA 8.90 9.78 NA, NA NA - 13 NA NA NA NA NA, NA NA - 14 NA NA NA NA NA, NA NA - 15 NA NA NA 5.50 1.4, 10.4 95 - quantile_75 quantile_87.5 quantile_95 quantile_97.5 lower_range upper_range - 1 NA NA NA NA NA NA - 2 NA NA NA NA NA NA - 3 NA NA NA NA NA NA - 4 NA NA NA NA NA NA - 5 NA NA NA NA NA NA - 6 NA NA NA NA NA NA - 7 15.00 NA NA NA NA NA - 8 NA NA NA NA NA NA - 9 NA NA 19.4 NA NA NA - 10 NA NA NA NA NA NA - 11 10.05 NA NA NA NA NA - 12 10.67 NA NA NA NA NA - 13 NA NA NA NA NA NA - 14 NA NA NA NA NA NA - 15 NA NA 8.3 NA NA NA - shape shape_ci_limits shape_ci scale scale_ci_limits scale_ci meanlog - 1 NA NA, NA NA NA NA, NA NA NA - 2 NA NA, NA NA NA NA, NA NA NA - 3 NA NA, NA NA NA NA, NA NA NA - 4 NA NA, NA NA NA NA, NA NA NA - 5 NA NA, NA NA NA NA, NA NA NA - 6 NA NA, NA NA NA NA, NA NA NA - 7 NA NA, NA NA NA NA, NA NA NA - 8 NA NA, NA NA NA NA, NA NA NA - 9 NA NA, NA NA NA NA, NA NA NA - 10 NA NA, NA NA NA NA, NA NA NA - 11 NA NA, NA NA NA NA, NA NA NA - 12 NA NA, NA NA NA NA, NA NA NA - 13 2.9 2.0, 4.1 95 2.9 2.0, 4.4 95 NA - 14 2.8 1.8, 4.2 95 2.5 2.5, 4.0 95 NA - 15 NA NA, NA NA NA NA, NA NA NA - meanlog_ci_limits meanlog_ci sdlog sdlog_ci_limits sdlog_ci dispersion - 1 NA, NA NA NA NA, NA NA NA - 2 NA, NA NA NA NA, NA NA NA - 3 NA, NA NA NA NA, NA NA NA - 4 NA, NA NA NA NA, NA NA NA - 5 NA, NA NA NA NA, NA NA NA - 6 NA, NA NA NA NA, NA NA NA - 7 NA, NA NA NA NA, NA NA NA - 8 NA, NA NA NA NA, NA NA NA - 9 NA, NA NA NA NA, NA NA NA - 10 NA, NA NA NA NA, NA NA NA - 11 NA, NA NA NA NA, NA NA NA - 12 NA, NA NA NA NA, NA NA NA - 13 NA, NA NA NA NA, NA NA NA - 14 NA, NA NA NA NA, NA NA NA - 15 NA, NA NA NA NA, NA NA NA - dispersion_ci_limits dispersion_ci precision precision_ci_limits - 1 NA, NA NA NA NA, NA - 2 NA, NA NA NA NA, NA - 3 NA, NA NA NA NA, NA - 4 NA, NA NA NA NA, NA - 5 NA, NA NA NA NA, NA - 6 NA, NA NA NA NA, NA - 7 NA, NA NA NA NA, NA - 8 NA, NA NA NA NA, NA - 9 NA, NA NA NA NA, NA - 10 NA, NA NA NA NA, NA - 11 NA, NA NA NA NA, NA - 12 NA, NA NA NA NA, NA - 13 NA, NA NA NA NA, NA - 14 NA, NA NA NA NA, NA - 15 NA, NA NA NA NA, NA - precision_ci truncation discretised censored right_truncated - 1 NA NA FALSE FALSE FALSE - 2 NA NA FALSE FALSE FALSE - 3 NA NA FALSE FALSE FALSE - 4 NA NA FALSE FALSE FALSE - 5 NA NA FALSE FALSE FALSE - 6 NA NA FALSE TRUE FALSE - 7 NA NA FALSE FALSE FALSE - 8 NA NA FALSE FALSE FALSE - 9 NA NA FALSE TRUE FALSE - 10 NA NA FALSE TRUE FALSE - 11 NA NA FALSE FALSE FALSE - 12 NA NA FALSE FALSE FALSE - 13 NA NA FALSE FALSE FALSE - 14 NA NA FALSE FALSE FALSE - 15 NA NA FALSE FALSE TRUE - phase_bias_adjusted - 1 FALSE - 2 FALSE - 3 FALSE - 4 FALSE - 5 FALSE - 6 FALSE - 7 FALSE - 8 FALSE - 9 FALSE - 10 FALSE - 11 FALSE - 12 FALSE - 13 FALSE - 14 FALSE - 15 TRUE - notes - 1 This estimated mean serial interval is from a meta-analysis of 23 other serial interval estimates. Only the mean is reported and a distribution cannot be specified as the meta-mean is estimated from a random-effects model. - 2 This data comes from the entire period of the west africa ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100 - 3 This data comes from the entire period of the Guinea ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100 - 4 This data comes from the entire period of the Liberia ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100 - 5 This data comes from the entire period of the Sierra Leone ebola outbreak up to the point the paper was published (Dec 2013 - 25 Nov 2014). The methods fitting are reported in another paper: DOI: 10.1056/NEJMoa1411100 - 6 No additional notes - 7 This paper did not fit a distribution to the serial interval data and only reported a median and interquartile range. This is present in the database as there are no other studies that report the serial interval for Marburg virus. - 8 The generation time is estimated from non-human viral load data. This paper reports the generation time but assumes the generation time and serial interval are the same it is classified as serial interval here based on Van Kerkove et al. 2015 <10.1038/sdata.2015.19>. The sample size is take from Van Kerkove et al. 2015. - 9 The sample size is not explicitly stated. The number of confirmed cases is 23 and there are 2 suspected cases, therefore it is not clear whether the 2 suspected cases were included in the estimation, the sample size is assumed to be 23. - 10 No additional notes - 11 Systematic review - 12 Systematic review - 13 Shape and scale from supp. material. Serial interval as exposure to symptom onset - 14 Shape and scale from supp. material. Serial interval as exposure to rash onset - 15 Data from Kraemer et al 10.1016/S1473-3099(22)00359-0 - PMID DOI - 1 33706702 10.1186/s12879-021-05950-x - 2 25539446 10.1056/NEJMc1414992 - 3 25539446 10.1056/NEJMc1414992 - 4 25539446 10.1056/NEJMc1414992 - 5 25539446 10.1056/NEJMc1414992 - 6 20029668 10.1371/currents.RRN1130 - 7 25495697 10.1186/1756-0500-7-906 - 8 23251407 10.1371/journal.pone.0050948 - 9 23782161 10.1056/NEJMoa1306742 - 10 26132767 10.2807/1560-7917.es2015.20.25.21163 - 11 36130210 10.1093/jtm/taac105 - 12 36130210 10.1093/jtm/taac105 - 13 NA 10.1101/2022.10.26.22281516 - 14 NA 10.1101/2022.10.26.22281516 - 15 36271480 10.1002/jmv.28248 + disease epi_distribution prob_distribution author year + 1 COVID-19 incubation period lnorm Natalie .... 2020 + 2 COVID-19 incubation period lnorm Natalie .... 2020 + 3 COVID-19 onset to hospitalisation gamma Natalie .... 2020 + 4 COVID-19 onset to hospitalisation gamma Natalie .... 2020 + 5 COVID-19 onset to death lnorm Natalie .... 2020 + 6 COVID-19 hospitalisation to death weibull Natalie .... 2020 + 7 COVID-19 incubation period lnorm Natalie .... 2020 + 8 COVID-19 onset to hospitalisation lnorm Natalie .... 2020 + 9 COVID-19 onset to hospitalisation lnorm Natalie .... 2020 + 10 COVID-19 onset to death lnorm Natalie .... 2020 + 11 COVID-19 hospitalisation to death lnorm Natalie .... 2020 diff --git a/tests/testthat/test-accessors.R b/tests/testthat/test-accessors.R index b7c681de5..a00c13c96 100644 --- a/tests/testthat/test-accessors.R +++ b/tests/testthat/test-accessors.R @@ -50,7 +50,7 @@ test_that("get_citation works as expected for epidist from db", { # suppress message about return edist <- suppressMessages(epidist_db()) citation <- get_citation(edist) - expect_true(is.list(citation)) + expect_type(citation, "list") expect_length(citation, length(edist)) }) @@ -95,3 +95,23 @@ test_that("get_citation works as expected for epidist missing citation", { expect_null(citation$year) expect_identical(citation$title, "No citation") }) + +test_that("get_citation works as expected for non-bibentry citation", { + # suppress message about citation + edist <- suppressMessages( + epidist_db(single_epidist = TRUE) + ) + edist$citation <- "WHO-Ebola-Response-Team (2015) NEJM" + expect_error(get_citation(edist), regexp = "Citation should be a ") +}) + +test_that("get_citation produces warnings with extra arguments", { + # suppress message about citation + edist <- suppressMessages( + epidist_db(single_epidist = TRUE) + ) + expect_warning( + get_citation(edist, extra_arg = "args"), + regexp = "(extra argument)*(will be disregarded)" + ) +}) diff --git a/tests/testthat/test-calc_dist_params.R b/tests/testthat/test-calc_dist_params.R index bf6d98f9b..2a095329e 100644 --- a/tests/testthat/test-calc_dist_params.R +++ b/tests/testthat/test-calc_dist_params.R @@ -1,7 +1,9 @@ test_that("calc_dist_params works as expected converting from mean and sd", { params <- calc_dist_params( prob_dist = "gamma", - summary_stats = create_epidist_summary_stats(mean = 5, sd = 2) + prob_dist_params = NA, + summary_stats = create_epidist_summary_stats(mean = 5, sd = 2), + sample_size = NA ) expect_vector(params, ptype = numeric(), size = 2) @@ -11,7 +13,9 @@ test_that("calc_dist_params works as expected converting from mean and sd", { test_that("calc_dist_params works as expected converting for different dist", { params <- calc_dist_params( prob_dist = "lnorm", - summary_stats = create_epidist_summary_stats(mean = 5, sd = 2) + prob_dist_params = NA, + summary_stats = create_epidist_summary_stats(mean = 5, sd = 2), + sample_size = NA ) expect_vector(params, ptype = numeric(), size = 2) @@ -22,9 +26,11 @@ test_that("calc_dist_params works as expected extracting from percentiles", { # messages for numerical optimisation suppressed params <- suppressMessages(calc_dist_params( prob_dist = "gamma", + prob_dist_params = NA, summary_stats = create_epidist_summary_stats( - quantiles = c(q_25 = 10, q_75 = 20) - ) + quantiles = c("25" = 10, "75" = 20) + ), + sample_size = NA )) expect_vector(params, ptype = numeric(), size = 2) @@ -33,9 +39,11 @@ test_that("calc_dist_params works as expected extracting from percentiles", { # messages for numerical optimisation suppressed params <- suppressMessages(calc_dist_params( prob_dist = "lnorm", + prob_dist_params = NA, summary_stats = create_epidist_summary_stats( - quantiles = c(q_25 = 10, q_75 = 20) - ) + quantiles = c("25" = 10, "75" = 20) + ), + sample_size = NA )) expect_vector(params, ptype = numeric(), size = 2) @@ -46,6 +54,7 @@ test_that("calc_dist_params works as expected extracting from median & range", { # messages for numerical optimisation suppressed params <- suppressMessages(calc_dist_params( prob_dist = "gamma", + prob_dist_params = NA, summary_stats = create_epidist_summary_stats( median = 10, lower_range = 5, @@ -62,6 +71,7 @@ test_that("calc_dist_params fails as expected extracting without sample size", { expect_message( params <- calc_dist_params( # nolint prob_dist = "gamma", + prob_dist_params = NA, summary_stats = create_epidist_summary_stats( median = 10, lower_range = 5, @@ -79,7 +89,9 @@ test_that("calc_dist_params messages as expected without summary stats", { expect_message( params <- calc_dist_params( # nolint prob_dist = "gamma", - summary_stats = create_epidist_summary_stats(mean = 5, median = 5) + prob_dist_params = NA, + summary_stats = create_epidist_summary_stats(mean = 5, median = 5), + sample_size = NA ), regexp = "(No adequate summary statistics available)" ) diff --git a/tests/testthat/test-checkers.R b/tests/testthat/test-checkers.R index 5fea259bb..ff881f133 100644 --- a/tests/testthat/test-checkers.R +++ b/tests/testthat/test-checkers.R @@ -1,34 +1,3 @@ -test_that("is_parameterised works as expected for epiparam", { - eparam <- epiparam() - res <- is_parameterised(eparam) - expect_length(res, nrow(eparam)) - expect_type(res, type = "logical") -}) - -test_that("is_parameterised works as expected with epiparam parameters", { - eparam <- epiparam(epi_dist = "incubation_period") - set <- lapply(eparam, grepl, pattern = "McAloon")$author - eparam <- subset(eparam, set) - eparam <- subset(eparam, sample_size == max(sample_size)) - expect_true(is_parameterised(eparam)) -}) - -test_that("is_parameterised works as expected without epiparam parameters", { - eparam <- epiparam(epi_dist = "incubation_period") - set <- lapply(eparam, grepl, pattern = "Alene")$author - eparam <- subset(eparam, set) - expect_false(is_parameterised(eparam)) -}) - -test_that("is_parameterised works when dist is not recognised", { - eparam <- epiparam() - eparam <- rbind(eparam, eparam[1, ]) - eparam[nrow(eparam), "prob_distribution"] <- "lognormal" - res <- is_parameterised(eparam) - expect_length(res, 119) - expect_type(res, type = "logical") -}) - test_that("is_parameterised works as expected with epidist parameters", { # message about missing citation suppressed edist <- suppressMessages(epidist( @@ -48,3 +17,27 @@ test_that("is_parameterised works as expected without epidist parameters", { )) expect_false(is_parameterised(edist)) }) + +test_that("is_parameterised works as expected for multi_epidist", { + edist <- suppressMessages(epidist_db()) + res <- is_parameterised(edist) + expect_vector(res, ptype = logical(1), size = length(edist)) +}) + +test_that("is_parameterised works as expected with multi_epidist parameters", { + edist <- suppressMessages( + epidist_db( + epi_dist = "incubation period", + author = "McAloon", + single_epidist = TRUE + ) + ) + expect_true(is_parameterised(edist)) +}) + +test_that("is_parameterised works as expected without epiparam parameters", { + edist <- suppressMessages( + epidist_db(epi_dist = "incubation period", author = "Alene") + ) + expect_false(is_parameterised(edist)) +}) diff --git a/tests/testthat/test-epidist.R b/tests/testthat/test-epidist.R index 7a38a8427..4ebe0edc2 100644 --- a/tests/testthat/test-epidist.R +++ b/tests/testthat/test-epidist.R @@ -42,25 +42,19 @@ test_that("epidist works with all arguments set", { median = 1, median_ci_limits = c(0.9, 1.1), median_ci = 95, - dispersion = 1, - dispersion_ci_limits = c(0.9, 1.1), - dispersion_ci = 90, lower_range = 0.1, upper_range = 1.9, quantiles = c( - q_2.5 = 0.2, - q_5 = 0.3, - q_25 = 0.5, - q_75 = 0.7, - q_87.5 = 1.1, - q_95 = 1.2, - q_97.5 = 1.5 + "2.5" = 0.2, "5" = 0.3, "25" = 0.5, "75" = 0.7, "87.5" = 1.1, + "95" = 1.2, "97.5" = 1.5 ) ), citation = create_epidist_citation( - author = "Smith", + author = "John Smith", year = 2002, - PMID = 28372882, - DOI = "10.23271/176237.x" # nolint + title = "A title", + journal = "A journal", + DOI = "10.23271/176237.x", # nolint + PMID = 28372882 ), metadata = create_epidist_metadata( sample_size = 100, @@ -256,7 +250,8 @@ test_that("new_epidist works with minimal viable input", { journal = "Journal of Epi" ), discretise = FALSE, - truncation = NA + truncation = NA, + notes = "No notes" ) ) @@ -295,7 +290,8 @@ test_that("validate_epidist passes when expected", { DOI = "10.1872372hc" ), discretise = FALSE, - truncation = NA + truncation = NA, + notes = "No notes" ) ) diff --git a/tests/testthat/test-epidist_db.R b/tests/testthat/test-epidist_db.R index b0648d061..8a3dea3b8 100644 --- a/tests/testthat/test-epidist_db.R +++ b/tests/testthat/test-epidist_db.R @@ -1,7 +1,7 @@ test_that("epidist_db works as expected", { # suppress message about citation edist <- suppressMessages( - epidist_db(disease = "influenza", epi_dist = "serial_interval") + epidist_db(disease = "influenza", epi_dist = "serial interval") ) expect_s3_class(edist, class = "epidist") @@ -13,7 +13,7 @@ test_that("epidist_db works as expected with author specified", { edist <- suppressMessages( epidist_db( disease = "influenza", - epi_dist = "incubation_period", + epi_dist = "incubation period", author = "Ghani" ) ) @@ -27,26 +27,27 @@ test_that("epidist_db works as expected with subsetting", { edist <- suppressMessages( epidist_db( disease = "influenza", - epi_dist = "incubation_period", - subset = sample_size == max(sample_size) + epi_dist = "incubation period", + subset = sample_size > 100 ) ) - expect_s3_class(edist, class = "epidist") - expect_length(edist, 9) + expect_s3_class(edist, class = "multi_epidist") + expect_length(edist, 10) }) test_that("epidist_db works as expected with functional subsetting", { edist <- suppressMessages( epidist_db( disease = "COVID-19", - epi_dist = "incubation_period", + epi_dist = "incubation period", subset = is_parameterised ) ) expect_type(edist, "list") - expect_length(edist, 2) + expect_s3_class(edist, "multi_epidist") + expect_length(edist, 10) }) test_that("epidist_db works as expected with single_epidist as TRUE", { @@ -54,7 +55,7 @@ test_that("epidist_db works as expected with single_epidist as TRUE", { edist <- suppressMessages( epidist_db( disease = "influenza", - epi_dist = "incubation_period", + epi_dist = "incubation period", single_epidist = TRUE ) ) @@ -67,7 +68,7 @@ test_that("epidist_db works as expected with subsetting and single_epidist", { edist <- suppressMessages( epidist_db( disease = "COVID-19", - epi_dist = "incubation_period", + epi_dist = "incubation period", subset = sample_size > 50, single_epidist = TRUE ) @@ -81,7 +82,7 @@ test_that("epidist_db fails as expected when author not recognised", { expect_error( epidist_db( disease = "influenza", - epi_dist = "incubation_period", + epi_dist = "incubation period", author = "Lessler_et_al" ), regexp = "Parameters by Lessler_et_al are not available for influenza" @@ -90,8 +91,8 @@ test_that("epidist_db fails as expected when author not recognised", { test_that("epidist_db fails as expected when disease not recognised", { expect_error( - epidist_db(disease = "COVI-19", epi_dist = "incubation_period"), - regexp = "(distribution not available for)" + epidist_db(disease = "COVI-19", epi_dist = "incubation period"), + regexp = "incubation period distribution not available for COVI-19" ) }) @@ -99,9 +100,9 @@ test_that("epidist_db fails as expected when epi_dist not recognised", { expect_error( epidist_db( disease = "influenza", - epi_dist = "delay_dist" + epi_dist = "delay dist" ), - regexp = "('arg' should be one of)" + regexp = "delay dist distribution not available for influenza" ) }) @@ -109,9 +110,9 @@ test_that("epidist_db fails as expected with no entry in the database", { expect_error( epidist_db( disease = "RSV", - epi_dist = "serial_interval" + epi_dist = "serial interval" ), - regexp = "(serial_interval distribution not available for RSV)" + regexp = "No entries in the database meet the search criteria." ) }) @@ -119,7 +120,7 @@ test_that("epidist_db gives message as expected with multiple entries", { expect_message( epidist_db( disease = "influenza", - epi_dist = "incubation_period", + epi_dist = "incubation period", author = "Reich" ), regexp = "(Returning)*(results that match the criteria)" @@ -130,7 +131,7 @@ test_that("epidist_db fails as expected when subset given as string", { expect_error( epidist_db( disease = "influenza", - epi_dist = "incubation_period", + epi_dist = "incubation period", subset = "author == 'Lessler_et_al'" ), regexp = "(Subsetting is done with expressions)" @@ -141,9 +142,19 @@ test_that("epidist_db fails as expected when subset returns no results", { expect_error( epidist_db( disease = "covid-19", - epi_dist = "incubation_period", + epi_dist = "incubation period", subset = year == 2018 ), - regexp = "No entries in the database meet the subset criteria" + regexp = "No entries in the database meet the search criteria." + ) +}) + +test_that("epidist_db print method works as expected for > 5 ", { + expect_snapshot(epidist_db()) +}) + +test_that("epidist_db print method works as expected for <= 5 ", { + expect_snapshot( + epidist_db(disease = "SARS", epi_dist = "offspring distribution") ) }) diff --git a/tests/testthat/test-epidist_utils.R b/tests/testthat/test-epidist_utils.R index 08bfb47ca..fb58b8730 100644 --- a/tests/testthat/test-epidist_utils.R +++ b/tests/testthat/test-epidist_utils.R @@ -25,6 +25,18 @@ test_that("create_epidist_citation works with PMID", { expect_identical(citation$PMID, "84772544") }) +test_that("clean_epidist_params works as expected for gamma", { + gamma_params <- c(shape = 1, scale = 1) + class(gamma_params) <- "gamma" + params <- clean_epidist_params(prob_dist_params = gamma_params) + expect_identical(params, c(shape = 1, scale = 1)) + + gamma_params <- c(shape = 1, rate = 0.5) + class(gamma_params) <- "gamma" + params <- clean_epidist_params(prob_dist_params = gamma_params) + expect_identical(params, c(shape = 1, scale = 2)) +}) + test_that("clean_epidist_params fails when gamma parameters are incorrect", { gamma_params <- c(meanlog = 1, sdlog = 1) class(gamma_params) <- "gamma" @@ -34,6 +46,18 @@ test_that("clean_epidist_params fails when gamma parameters are incorrect", { ) }) +test_that("clean_epidist_params works as expected for lnorm", { + lnorm_params <- c(meanlog = 1, sdlog = 1) + class(lnorm_params) <- "lnorm" + params <- clean_epidist_params(prob_dist_params = lnorm_params) + expect_identical(params, c(meanlog = 1, sdlog = 1)) + + lnorm_params <- c(mu = 2, sigma = 2) + class(lnorm_params) <- "lnorm" + params <- clean_epidist_params(prob_dist_params = lnorm_params) + expect_identical(params, c(meanlog = 2, sdlog = 2)) +}) + test_that("clean_epidist_params fails when lognormal parameters are incorrect", { lognormal_params <- c(shape = 1, scale = 1) @@ -44,6 +68,13 @@ test_that("clean_epidist_params fails when lognormal parameters are ) }) +test_that("clean_epidist_params works as expected for weibull", { + weibull_params <- c(shape = 1, scale = 1) + class(weibull_params) <- "weibull" + params <- clean_epidist_params(prob_dist_params = weibull_params) + expect_identical(params, c(shape = 1, scale = 1)) +}) + test_that("clean_epidist_params fails when weibull parameters are incorrect", { weibull_params <- c(meanlog = 1, sdlog = 1) class(weibull_params) <- "weibull" @@ -53,6 +84,18 @@ test_that("clean_epidist_params fails when weibull parameters are incorrect", { ) }) +test_that("clean_epidist_params works as expected for nbinom", { + nbinom_params <- c(n = 2, p = 0.5) + class(nbinom_params) <- "nbinom" + params <- clean_epidist_params(prob_dist_params = nbinom_params) + expect_identical(params, c(mean = 2, dispersion = 2)) + + nbinom_params <- c(mean = 1, dispersion = 1) + class(nbinom_params) <- "nbinom" + params <- clean_epidist_params(prob_dist_params = nbinom_params) + expect_identical(params, c(mean = 1, dispersion = 1)) +}) + test_that("clean_epidist_params fails when nbinom parameters are incorrect", { nbinom_params <- c(meanlog = 1, sdlog = 1) class(nbinom_params) <- "nbinom" @@ -62,6 +105,23 @@ test_that("clean_epidist_params fails when nbinom parameters are incorrect", { ) }) +test_that("clean_epidist_params works as expected for geom", { + geom_params <- c(prob = 0.5) + class(geom_params) <- "geom" + params <- clean_epidist_params(prob_dist_params = geom_params) + expect_identical(params, c(prob = 0.5)) + + geom_params <- c(p = 0.5) + class(geom_params) <- "geom" + params <- clean_epidist_params(prob_dist_params = geom_params) + expect_identical(params, c(prob = 0.5)) + + geom_params <- c(mean = 2) + class(geom_params) <- "geom" + params <- clean_epidist_params(prob_dist_params = geom_params) + expect_identical(params, c(prob = 0.5)) +}) + test_that("clean_epidist_params fails when geom parameters are incorrect", { geom_params <- c(meanlog = 1, sdlog = 1) class(geom_params) <- "geom" @@ -71,6 +131,18 @@ test_that("clean_epidist_params fails when geom parameters are incorrect", { ) }) +test_that("clean_epidist_params works as expected for pois", { + pois_params <- c(mean = 0.5) + class(pois_params) <- "pois" + params <- clean_epidist_params(prob_dist_params = pois_params) + expect_identical(params, c(mean = 0.5)) + + pois_params <- c(l = 0.5) + class(pois_params) <- "pois" + params <- clean_epidist_params(prob_dist_params = pois_params) + expect_identical(params, c(mean = 0.5)) +}) + test_that("clean_epidist_params fails when pois parameters are incorrect", { pois_param <- c("means" = 1) class(pois_param) <- "pois" @@ -89,33 +161,6 @@ test_that("clean_epidist_params works for default method", { ) }) -test_that("clean_epidist_params works for unparameterised (NA), (#161)", { - params <- NA - class(params) <- "gamma" - res <- clean_epidist_params(prob_dist_params = params) - expect_identical(res, c(shape = NA_real_, scale = NA_real_)) - - class(params) <- "lnorm" - res <- clean_epidist_params(prob_dist_params = params) - expect_identical(res, c(meanlog = NA_real_, sdlog = NA_real_)) - - class(params) <- "weibull" - res <- clean_epidist_params(prob_dist_params = params) - expect_identical(res, c(shape = NA_real_, scale = NA_real_)) - - class(params) <- "nbinom" - res <- clean_epidist_params(prob_dist_params = params) - expect_identical(res, c(mean = NA_real_, dispersion = NA_real_)) - - class(params) <- "geom" - res <- clean_epidist_params(prob_dist_params = params) - expect_identical(res, c(prob = NA_real_)) - - class(params) <- "pois" - res <- clean_epidist_params(prob_dist_params = params) - expect_identical(res, c(mean = NA_real_)) -}) - test_that("create_epidist_region works as expected", { region <- create_epidist_region( continent = "Europe", @@ -152,7 +197,7 @@ test_that("create_epidist_region works as expected", { test_that("clean_disease works as expected", { disease <- clean_disease("COVID-19") - expect_identical(disease, "covid_19") + expect_identical(disease, "covid 19") }) test_that("clean_disease fails as expected", { diff --git a/tests/testthat/test-get_percentiles.R b/tests/testthat/test-get_percentiles.R index 7a8f59f3d..f40d1e8e0 100644 --- a/tests/testthat/test-get_percentiles.R +++ b/tests/testthat/test-get_percentiles.R @@ -1,14 +1,14 @@ test_that("get_percentiles works as expected", { - res <- get_percentiles(c(q_5 = 1, q_95 = 10)) + res <- get_percentiles(c("5" = 1, "95" = 10)) expect_identical(res, c("5" = 1, "95" = 10)) - res <- get_percentiles(c(q_2.5 = 1, q_97.5 = 10)) + res <- get_percentiles(c("2.5" = 1, "97.5" = 10)) expect_identical(res, c("2.5" = 1, "97.5" = 10)) - res <- get_percentiles(c(q_5 = 1, q_45 = 10)) + res <- get_percentiles(c("5" = 1, "45" = 10)) expect_identical(res, NA) - res <- get_percentiles(c(q_55 = 1, q_90 = 10)) + res <- get_percentiles(c("55" = 1, "90" = 10)) expect_identical(res, NA) }) diff --git a/tests/testthat/test-list_distributions.R b/tests/testthat/test-list_distributions.R index e479193d0..6aef067c5 100644 --- a/tests/testthat/test-list_distributions.R +++ b/tests/testthat/test-list_distributions.R @@ -1,158 +1,221 @@ -test_that("list_distributions works as expected with defaults", { - eparam <- epiparam() - dist_tbl <- list_distributions(epiparam = eparam) +# Data to be reused by multiple testing blocks +edist <- suppressMessages(epidist_db()) + +test_that("list_distributions works as expected supplied with db", { + dist_tbl <- list_distributions(multi_epidist = edist) expect_s3_class(dist_tbl, "data.frame") - expect_identical(dim(dist_tbl), c(72L, 6L)) + expect_identical(dim(dist_tbl), c(118L, 5L)) expect_named( dist_tbl, - c( - "disease", "epi_distribution", "prob_distribution", "author", "year", - "sample_size" - ) - ) - expect_snapshot( - list_distributions(epiparam = eparam) + c("disease", "epi_distribution", "prob_distribution", "author", "year") ) + expect_snapshot(dist_tbl) }) -test_that("list_distributions works as expected with subset_db = FALSE", { - eparam <- epiparam() - dist_tbl <- list_distributions(epiparam = eparam, subset_db = FALSE) +test_that("list_distributions works as expected without db", { + dist_tbl <- list_distributions() expect_s3_class(dist_tbl, "data.frame") - expect_identical(dim(dist_tbl), c(72L, 58L)) - expect_named(dist_tbl, epiparam_fields()) - expect_snapshot( - list_distributions(epiparam = eparam, subset_db = FALSE) + expect_identical(dim(dist_tbl), c(118L, 5L)) + expect_named( + dist_tbl, + c("disease", "epi_distribution", "prob_distribution", "author", "year") ) + expect_snapshot(dist_tbl) }) -test_that("list_distributions works for incubation period", { - eparam <- epiparam() +test_that("list_distributions works for incubation period with db", { incub_tbl <- list_distributions( - epiparam = eparam, - epi_dist = "incubation_period" + multi_epidist = edist, + epi_dist = "incubation period" ) expect_s3_class(incub_tbl, "data.frame") - expect_identical(dim(incub_tbl), c(72L, 6L)) + expect_identical(dim(incub_tbl), c(72L, 5L)) expect_named( incub_tbl, - c( - "disease", "epi_distribution", "prob_distribution", "author", "year", - "sample_size" - ) - ) - expect_snapshot( - list_distributions( - epiparam = eparam, - epi_dist = "incubation_period" - ) + c("disease", "epi_distribution", "prob_distribution", "author", "year") ) + expect_snapshot(incub_tbl) }) -test_that("list_distributions works for incubation, subset_db = FALSE", { - eparam <- epiparam() - incub_tbl <- list_distributions( - epiparam = eparam, - epi_dist = "incubation", - subset_db = FALSE - ) +test_that("list_distributions works for incubation period without db", { + incub_tbl <- list_distributions(epi_dist = "incubation period") + expect_s3_class(incub_tbl, "data.frame") - expect_identical(dim(incub_tbl), c(72L, 58L)) - expect_named(incub_tbl, epiparam_fields()) - expect_snapshot( - list_distributions( - epiparam = eparam, - epi_dist = "incubation", - subset_db = FALSE - ) + expect_identical(dim(incub_tbl), c(72L, 5L)) + expect_named( + incub_tbl, + c("disease", "epi_distribution", "prob_distribution", "author", "year") ) + expect_snapshot(incub_tbl) }) -test_that("list_distributions works for different distribution", { - eparam <- epiparam() +test_that("list_distributions works for different distribution with db", { serial_tbl <- list_distributions( - epiparam = eparam, - epi_dist = "serial_interval" + multi_epidist = edist, + epi_dist = "serial interval" ) expect_s3_class(serial_tbl, "data.frame") - expect_identical(dim(serial_tbl), c(15L, 6L)) + expect_identical(dim(serial_tbl), c(15L, 5L)) expect_named( serial_tbl, - c( - "disease", "epi_distribution", "prob_distribution", "author", "year", - "sample_size" - ) + c("disease", "epi_distribution", "prob_distribution", "author", "year") ) - expect_snapshot( - list_distributions( - epiparam = eparam, - epi_dist = "serial_interval" - ) + expect_snapshot(serial_tbl) +}) + +test_that("list_distributions works for different distribution without db", { + serial_tbl <- list_distributions(epi_dist = "serial interval") + expect_s3_class(serial_tbl, "data.frame") + expect_identical(dim(serial_tbl), c(15L, 5L)) + expect_named( + serial_tbl, + c("disease", "epi_distribution", "prob_distribution", "author", "year") ) + expect_snapshot(serial_tbl) }) -test_that("list_distributions works for different dist, subset_db = FALSE", { - eparam <- epiparam() - serial_tbl <- list_distributions( - epiparam = eparam, - epi_dist = "serial_interval", - subset_db = FALSE +test_that("list_distributions works for COVID-19 db", { + incub_tbl <- list_distributions( + multi_epidist = edist, + disease = "COVID-19" ) - expect_s3_class(serial_tbl, "data.frame") - expect_identical(dim(serial_tbl), c(15L, 58L)) - expect_named(serial_tbl, epiparam_fields()) - expect_snapshot( - list_distributions( - epiparam = eparam, - epi_dist = "serial_interval", - subset_db = FALSE + expect_s3_class(incub_tbl, "data.frame") + expect_identical(dim(incub_tbl), c(23L, 5L)) + expect_named( + incub_tbl, + c("disease", "epi_distribution", "prob_distribution", "author", "year") + ) + expect_snapshot(incub_tbl) +}) + +test_that("list_distributions works for COVID-19 without db", { + incub_tbl <- list_distributions(disease = "COVID-19") + expect_s3_class(incub_tbl, "data.frame") + expect_identical(dim(incub_tbl), c(23L, 5L)) + expect_named( + incub_tbl, + c("disease", "epi_distribution", "prob_distribution", "author", "year") + ) + expect_snapshot(incub_tbl) +}) + +test_that("list_distributions works for disease & epi_dist subset with db", { + incub_tbl <- list_distributions( + multi_epidist = edist, + disease = "COVID-19", + epi_dist = "incubation period" + ) + expect_s3_class(incub_tbl, "data.frame") + expect_identical(dim(incub_tbl), c(14L, 5L)) + expect_named( + incub_tbl, + c("disease", "epi_distribution", "prob_distribution", "author", "year") + ) + expect_snapshot(incub_tbl) +}) + +test_that("list_distributions works for disease & epi_dist subset without db", { + incub_tbl <- list_distributions( + disease = "COVID-19", + epi_dist = "incubation period" + ) + expect_s3_class(incub_tbl, "data.frame") + expect_identical(dim(incub_tbl), c(14L, 5L)) + expect_named( + incub_tbl, + c("disease", "epi_distribution", "prob_distribution", "author", "year") + ) + expect_snapshot(incub_tbl) +}) + +test_that("list_distribution works when supplied a subset db", { + edist <- suppressMessages(epidist_db(disease = "COVID-19")) + covid_tbl <- list_distributions(multi_epidist = edist, disease = "COVID-19") + expect_s3_class(covid_tbl, "data.frame") + expect_identical(dim(covid_tbl), c(23L, 5L)) + expect_named( + covid_tbl, + c("disease", "epi_distribution", "prob_distribution", "author", "year") + ) + expect_snapshot(covid_tbl) +}) + +test_that("list_distributions works as expected supplied with ", { + edist <- suppressMessages(epidist_db(single_epidist = TRUE)) + dist_tbl <- list_distributions(multi_epidist = edist) + expect_s3_class(dist_tbl, "data.frame") + expect_identical(dim(dist_tbl), c(1L, 5L)) + expect_named( + dist_tbl, + c("disease", "epi_distribution", "prob_distribution", "author", "year") + ) + expect_snapshot(dist_tbl) +}) + +test_that("list_distributions works as expected with discretised ", { + edist <- suppressMessages( + epidist( + disease = "Ebola", + epi_dist = "serial interval", + prob_distribution = "gamma", + prob_distribution_params = c(shape = 1, scale = 1), + citation = create_epidist_citation( + author = "John Smith", + year = 2022, + title = "A title", + journal = "A journal", + DOI = "10.32561.x" + ), + discretise = TRUE ) ) + dist_tbl <- list_distributions(multi_epidist = edist) + expect_s3_class(dist_tbl, "data.frame") + expect_identical(dim(dist_tbl), c(1L, 5L)) + expect_named( + dist_tbl, + c("disease", "epi_distribution", "prob_distribution", "author", "year") + ) + expect_snapshot(dist_tbl) }) -test_that("list_distributions fails correctly", { - # check for incorrect input +test_that("list_distribution fails correctly when subsetting a subset db", { + edist <- suppressMessages(epidist_db(disease = "Ebola")) expect_error( - list_distributions( - epiparam = data.frame(), - epi_dist = "incubation_period", - subset_db = TRUE - ), - regexp = "Object should be of class epiparam" + list_distributions(multi_epidist = edist, disease = "COVID-19"), + regexp = "(distribution not available for COVID-19)" + ) +}) + +test_that("list_distribution works passing arg to epidist_db", { + covid_tbl <- list_distributions(disease = "COVID-19", author = "Linton") + expect_s3_class(covid_tbl, "data.frame") + expect_identical(dim(covid_tbl), c(11L, 5L)) + expect_named( + covid_tbl, + c("disease", "epi_distribution", "prob_distribution", "author", "year") ) + expect_snapshot(covid_tbl) +}) +test_that("list_distributions fails correctly", { + # check for incorrect input expect_error( list_distributions( - epiparam = epiparam(), - epi_dist = "random", - subset_db = TRUE + multi_epidist = list(), + epi_dist = "incubation_period" ), - regexp = paste0( - "('arg' should be one of)*(incubation_period)*", - "(onset_to_hospitalisation)*(onset_to_death)*(serial_interval)*", - "(generation_time)" - ) + regexp = "List of objects should be supplied to multi_epidist" ) expect_error( - list_distributions( - epiparam = epiparam(), - epi_dist = "incubation_period", - subset_db = "true" - ), - regexp = paste0( - "Assertion on 'subset_db' failed: Must be of type 'logical', ", - "not 'character'." - ) + list_distributions(epi_dist = "random"), + regexp = "random distribution not available" ) # check for multiple match input expect_error( - list_distributions(epiparam = epiparam(), epi_dist = "onset"), - regexp = paste0( - "('arg' should be one of)*(incubation_period)*", - "(onset_to_hospitalisation)*(onset_to_death)*(serial_interval)*", - "(generation_time)" - ) + list_distributions(epi_dist = "onset"), + regexp = "onset distribution not available" ) }) From ad59aa08893b999a989f505144075993de758140 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Tue, 10 Oct 2023 08:26:58 +0000 Subject: [PATCH 61/72] Automatic readme update --- README.md | 76 +++++++++++++------------- man/figures/README-plot-epidist-1.png | Bin 38349 -> 13180 bytes 2 files changed, 39 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 8b4053bea..bd0e67f0a 100644 --- a/README.md +++ b/README.md @@ -47,51 +47,53 @@ library(epiparameter) To load the library of epidemiological parameters into `R`: ``` r -eparams <- epiparam() -eparams -#> Epiparam object -#> Number of distributions in library: 118 -#> Number of diseases: 23 -#> Number of delay distributions: 95 -#> Number of offspring distributions: 10 -#> Number of studies in library: 57 -#> -#> disease epi_distribution prob_distribution -#> 1 Adenovirus incubation_period lnorm -#> 2 Chikungunya incubation_period lnorm -#> 3 COVID-19 hospitalisation_to_death weibull -#> 4 COVID-19 hospitalisation_to_death lnorm -#> 5 COVID-19 incubation_period -#> 6 COVID-19 incubation_period weibull -#> <112 more rows & 55 more cols not shown> +epidists <- epidist_db() +#> Returning 118 results that match the criteria (95 are parameterised). +#> Use subset to filter by entry variables or single_epidist to return a single entry. +#> To retrieve the short citation for each use the 'get_citation' function +epidists +#> List of objects +#> Number of entries in library: 118 +#> Number of studies in library: 45 +#> Number of diseases: 23 +#> Number of delay distributions: 108 +#> Number of offspring distributions: 10 ``` -The library is an `` class, which underneath is a data frame. +This results a list of database entries. Each entry of the library is an +`` object. -Each entry of the library can be converted into an `` object to -be used. +The results can be filtered by disease and epidemiological distribution. +Here we set `single_epidist = TRUE` as we only want a single database +entry returned, and by default (`single_epidist = FALSE`) it will return +all database entries that match the disease (`disease`) and +epidemiological distribution (`epi_dist`). ``` r -influenza_incubation <- as_epidist(eparams[12, ]) -#> Using Linton, etal (2020). "Incubation Period and Other Epidemiological -#> Characteristics of 2019 Novel Coronavirus Infections with Right -#> Truncation: A Statistical Analysis of Publicly Available Case Data." -#> _Journal of Clinical Medicine_. doi:10.3390/jcm9020538 -#> . -#> To retrieve the citation use the 'get_citation' function +influenza_incubation <- epidist_db( + disease = "influenza", + epi_dist = "incubation period", + single_epidist = TRUE +) +#> Using Virlogeux V, Li M, Tsang TK, Feng L, Fang VJ, Jiang H, Wu P, Zheng J, +#> Lau EHY, Cao Y, Qin Y, Liao Q, Yu H, Cowling BJ (2015). "Estimating the +#> Distribution of the Incubation Periods of Human Avian Influenza A(H7N9) +#> Virus Infections." _American Journal of Epidemiology_. +#> doi:10.1093/aje/kwv115 .. +#> To retrieve the short citation use the 'get_citation' function influenza_incubation -#> Disease: COVID-19 -#> Pathogen: SARS-CoV-2 +#> Disease: Influenza +#> Pathogen: Influenza-A-H7N9 #> Epi Distribution: incubation period -#> Study: Linton, etal (2020). "Incubation Period and Other Epidemiological -#> Characteristics of 2019 Novel Coronavirus Infections with Right -#> Truncation: A Statistical Analysis of Publicly Available Case Data." -#> _Journal of Clinical Medicine_. doi:10.3390/jcm9020538 -#> . -#> Distribution: lnorm +#> Study: Virlogeux V, Li M, Tsang TK, Feng L, Fang VJ, Jiang H, Wu P, Zheng J, +#> Lau EHY, Cao Y, Qin Y, Liao Q, Yu H, Cowling BJ (2015). "Estimating the +#> Distribution of the Incubation Periods of Human Avian Influenza A(H7N9) +#> Virus Infections." _American Journal of Epidemiology_. +#> doi:10.1093/aje/kwv115 . +#> Distribution: weibull #> Parameters: -#> meanlog: 1.456 -#> sdlog: 0.555 +#> shape: 2.101 +#> scale: 3.839 ``` The `` object can be plotted. diff --git a/man/figures/README-plot-epidist-1.png b/man/figures/README-plot-epidist-1.png index 4ff32b97ff8a27b8ff32be132e8ac8ea5c9db626..b731db9e54dc868628d34c7d87462ccf4bff13df 100644 GIT binary patch literal 13180 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

+HlO9%@pRB+epmYh>fwDN>&9!ei$(CcF9xcud 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 From b74b31fd02187678f2c1ed51f00b437b70e2a1a6 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Tue, 10 Oct 2023 10:47:27 +0100 Subject: [PATCH 62/72] linting --- R/epidist_db.R | 10 +++++----- R/list_distributions.R | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/R/epidist_db.R b/R/epidist_db.R index c81838445..762b6e774 100644 --- a/R/epidist_db.R +++ b/R/epidist_db.R @@ -438,12 +438,12 @@ epidist_db <- function(disease = "all", for (i in seq_along(params)) { nm <- names(params)[i] nms <- names(params)[grepl(pattern = nm, x = names(params))] - if (!any(grepl(pattern = "_ci", x = nms, fixed = TRUE))) { + if (any(grepl(pattern = "_ci", x = nms, fixed = TRUE))) { + params_ <- append(params_, params[i]) + } else { params_ci <- list(params[[i]], c(NA_real_, NA_real_), NA_real_) names(params_ci) <- c(nm, paste0(nm, "_ci_limits"), paste0(nm, "_ci")) params_ <- append(params_, params_ci) - } else { - params_ <- append(params_, params[i]) } } params <- params_ @@ -453,8 +453,8 @@ epidist_db <- function(disease = "all", endsWith(names(params), suffix = "ci_limits")] ci <- params[!is.na(names(params)) & endsWith(names(params), suffix = "ci")] ci_type <- switch(x$metadata$inference_method, - "mle" = "confidence_interval", - "bayesian" = "credible_interval", + mle = "confidence_interval", + bayesian = "credible_interval", NA_character_ ) diff --git a/R/list_distributions.R b/R/list_distributions.R index dedff8f2f..da6075f4a 100644 --- a/R/list_distributions.R +++ b/R/list_distributions.R @@ -71,16 +71,16 @@ list_distributions <- function(disease = "all", prob_dist <- vapply( multi_epidist, function(x) { switch(class(x$prob_dist)[1], - "distcrete" = family(x), - "distribution" = family(x), - "character" = x$prob_dist, - "logical" = NA_character_ + distcrete = family(x), + distribution = family(x), + character = x$prob_dist, + logical = NA_character_ ) }, FUN.VALUE = character(1) ) author <- lapply(multi_epidist, function(x) x$citation$author) - year <- vapply( + year <- vapply( # nolint lambda multi_epidist, function(x) as.numeric(x$citation$year), FUN.VALUE = numeric(1) ) From d0ca999d9afdb2c2532d7c62f87b887061a37e17 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Tue, 10 Oct 2023 15:44:11 +0100 Subject: [PATCH 63/72] reposition nolint flag in list_distributions --- R/list_distributions.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/list_distributions.R b/R/list_distributions.R index da6075f4a..5384c9907 100644 --- a/R/list_distributions.R +++ b/R/list_distributions.R @@ -80,8 +80,8 @@ list_distributions <- function(disease = "all", FUN.VALUE = character(1) ) author <- lapply(multi_epidist, function(x) x$citation$author) - year <- vapply( # nolint lambda - multi_epidist, function(x) as.numeric(x$citation$year), + year <- vapply( + multi_epidist, function(x) as.numeric(x$citation$year), # nolint lambda FUN.VALUE = numeric(1) ) From 412a57a402bfe66037a2f727ceb31b55ced21108 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Tue, 10 Oct 2023 17:20:08 +0100 Subject: [PATCH 64/72] updated snapshots --- tests/testthat/_snaps/epidist.md | 4 ++-- tests/testthat/_snaps/epidist_db.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/testthat/_snaps/epidist.md b/tests/testthat/_snaps/epidist.md index ab46df412..c7e962f15 100644 --- a/tests/testthat/_snaps/epidist.md +++ b/tests/testthat/_snaps/epidist.md @@ -3,7 +3,7 @@ Code epidist(disease = "ebola", epi_dist = "incubation", prob_distribution = "gamma", prob_distribution_params = c(shape = 1, scale = 1)) - Message + Message Citation cannot be created as author, year, journal or title is missing Output Disease: ebola @@ -20,7 +20,7 @@ Code epidist(disease = "ebola", epi_dist = "incubation", prob_distribution = "gamma", prob_distribution_params = c(shape = 1, scale = 1), discretise = TRUE) - Message + Message Citation cannot be created as author, year, journal or title is missing Output Disease: ebola diff --git a/tests/testthat/_snaps/epidist_db.md b/tests/testthat/_snaps/epidist_db.md index d136b4def..3bea5ef2a 100644 --- a/tests/testthat/_snaps/epidist_db.md +++ b/tests/testthat/_snaps/epidist_db.md @@ -2,7 +2,7 @@ Code epidist_db() - Message + Message Returning 118 results that match the criteria (95 are parameterised). Use subset to filter by entry variables or single_epidist to return a single entry. To retrieve the short citation for each use the 'get_citation' function @@ -18,7 +18,7 @@ Code epidist_db(disease = "SARS", epi_dist = "offspring distribution") - Message + Message Returning 2 results that match the criteria (2 are parameterised). Use subset to filter by entry variables or single_epidist to return a single entry. To retrieve the short citation for each use the 'get_citation' function From 8c34eea9b6445b55b45f96417003a115c8c923d5 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Fri, 10 Nov 2023 17:00:25 +0000 Subject: [PATCH 65/72] use checkmate to simplify if statements in calc_dist_params --- R/calc_dist_params.R | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/R/calc_dist_params.R b/R/calc_dist_params.R index 84f7040bd..4fa33e69d 100644 --- a/R/calc_dist_params.R +++ b/R/calc_dist_params.R @@ -59,8 +59,13 @@ calc_dist_params <- function(prob_dist, # nolint cyclocomp return(NA) } - if (!is.null(summary_stats$quantiles) && - !all(is.na(summary_stats$quantiles))) { + is_percentiles <- checkmate::test_numeric( + summary_stats$quantiles, + all.missing = FALSE, + names = "unique", + null.ok = FALSE + ) + if (is_percentiles) { # convert percentile names to numbers percentiles <- get_percentiles(summary_stats$quantiles) } else { @@ -80,8 +85,12 @@ calc_dist_params <- function(prob_dist, # nolint cyclocomp # extract mean and sd mean_sd <- c(summary_stats$mean, summary_stats$sd) + is_mean_sd <- checkmate::test_numeric(mean_sd, any.missing = FALSE, len = 2) + is_median_disp <- checkmate::test_numeric(median_disp, len = 2) + is_median_range <- checkmate::test_numeric(median_range, len = 3) && + checkmate::test_numeric(sample_size, any.missing = FALSE) # convert from mean and sd - if (all(is.numeric(mean_sd)) && !anyNA(mean_sd) && length(mean_sd) == 2) { + if (is_mean_sd) { summary_stats_ <- unlist(summary_stats) summary_stats_ <- summary_stats_[!is.na(summary_stats_)] # remove name prefixes from unlisting @@ -102,7 +111,7 @@ calc_dist_params <- function(prob_dist, # nolint cyclocomp convert_summary_stats_to_params, args = args )) - } else if (all(is.numeric(median_disp) && length(median_disp) == 2)) { + } else if (is_median_disp) { med <- summary_stats$median meanlog <- log(med / sqrt(1 + disp^2)) sdlog <- sqrt(log(1 + disp^2)) @@ -116,8 +125,7 @@ calc_dist_params <- function(prob_dist, # nolint cyclocomp distribution = prob_dist, percentiles = as.numeric(names(percentiles)) / 100 ) - } else if (all(is.numeric(median_range)) && length(median_range) == 3 && - !is.na(sample_size)) { + } else if (is_median_range) { prob_dist_params <- extract_param( type = "range", values = median_range, From 5d601d8650af01c046e676fe5b2ce670f08f73e8 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 13 Nov 2023 11:36:42 +0000 Subject: [PATCH 66/72] replaced logical statements with checkmate in validate_epidist --- R/epidist.R | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/R/epidist.R b/R/epidist.R index d128ba693..60ad18480 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -352,13 +352,15 @@ validate_epidist <- function(epidist) { ) %in% attributes(epidist)$names, "epidist must contain a disease (single character string)" = - is.character(epidist$disease$disease) && - length(epidist$disease$disease) == 1, + checkmate::test_character(epidist$disease$disease, len = 1), "epidist must contain an epidemiological distribution" = - is.character(epidist$epi_dist) && length(epidist$epi_dist) == 1, + checkmate::test_character(epidist$epi_dist, len = 1), "epidist must contain a or distribution or NA" = - inherits(epidist$prob_dist, c("distribution", "distcrete")) || - is.na(epidist$prob_dist) || is.character(epidist$prob_dist), + checkmate::test_multi_class( + epidist$prob_dist, classes = c("distribution", "distcrete") + ) || checkmate::test_character( + epidist$prob_dist, any.missing = TRUE, len = 1 + ), "epidisit must contain uncertainty, summary stats and metadata" = all( is.list(epidist$uncertainty), @@ -371,7 +373,7 @@ validate_epidist <- function(epidist) { inherits(epidist$prob_dist, c("distribution", "distcrete")) || is.na(epidist$prob_dist) || is.character(epidist$prob_dist), "epidist notes must be a character string" = - is.character(epidist$notes) && length(epidist$notes) == 1 + checkmate::test_character(epidist$notes, len = 1) ) invisible(epidist) From 2c6b041ff75ef117fa14b7a50065a1cfd622879d Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 13 Nov 2023 12:21:21 +0000 Subject: [PATCH 67/72] updated list assertion for epidist summary stats --- R/epidist.R | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/R/epidist.R b/R/epidist.R index 60ad18480..bbb935a23 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -282,8 +282,9 @@ epidist <- function(disease, checkmate::assert_list(uncertainty, names = "unique") checkmate::assert_list( summary_stats, - types = c("list", "double", "integer", "logical", "null"), - names = "unique" + types = c("numeric", "logical"), + names = "unique", + null.ok = TRUE ) checkmate::assert_class(citation, classes = "bibentry") checkmate::assert_list(metadata) From 158280380193c2f8a9e93ec4b4e00980fa56d7cd Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 13 Nov 2023 13:48:38 +0000 Subject: [PATCH 68/72] added american spelling for is_parameterised and discretise functions --- NAMESPACE | 2 ++ R/checkers.R | 4 ++++ R/epidist.R | 4 ++++ man/discretise.Rd | 3 +++ man/is_parameterised.Rd | 3 +++ 5 files changed, 16 insertions(+) diff --git a/NAMESPACE b/NAMESPACE index 4bbe3b49f..c1313e9b7 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -36,6 +36,7 @@ export(create_epidist_region) export(create_epidist_summary_stats) export(create_epidist_uncertainty) export(discretise) +export(discretize) export(epidist) export(epidist_db) export(extract_param) @@ -44,6 +45,7 @@ export(get_parameters) export(is_epidist) export(is_epidist_params) export(is_parameterised) +export(is_parameterized) export(is_truncated) export(is_vb_epidist) export(list_distributions) diff --git a/R/checkers.R b/R/checkers.R index 01f83abc8..8663f53f7 100644 --- a/R/checkers.R +++ b/R/checkers.R @@ -34,6 +34,10 @@ is_parameterised <- function(x, ...) { UseMethod("is_parameterised") } +#' @rdname is_parameterised +#' @export +is_parameterized <- is_parameterised + #' @export is_parameterised.epidist <- function(x, ...) { chkDots(...) diff --git a/R/epidist.R b/R/epidist.R index bbb935a23..0a1b288af 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -762,6 +762,10 @@ discretise <- function(x, ...) { UseMethod("discretise") } +#' @rdname discretise +#' @export +discretize <- discretise + #' @rdname discretise #' @export discretise.epidist <- function(x, ...) { diff --git a/man/discretise.Rd b/man/discretise.Rd index 46c4216cf..55942dfe5 100644 --- a/man/discretise.Rd +++ b/man/discretise.Rd @@ -2,12 +2,15 @@ % Please edit documentation in R/epidist.R \name{discretise} \alias{discretise} +\alias{discretize} \alias{discretise.epidist} \alias{discretise.default} \title{Discretises a continuous distribution in an \verb{} object} \usage{ discretise(x, ...) +discretize(x, ...) + \method{discretise}{epidist}(x, ...) \method{discretise}{default}(x, ...) diff --git a/man/is_parameterised.Rd b/man/is_parameterised.Rd index 1451dc61f..e755bb58a 100644 --- a/man/is_parameterised.Rd +++ b/man/is_parameterised.Rd @@ -2,10 +2,13 @@ % Please edit documentation in R/checkers.R \name{is_parameterised} \alias{is_parameterised} +\alias{is_parameterized} \title{Check if \verb{} or list of \verb{} objects contains a distribution and distribution parameters} \usage{ is_parameterised(x, ...) + +is_parameterized(x, ...) } \arguments{ \item{x}{An \verb{} or list of \verb{} objects.} From fb6503ce1e1b15e5681fe17909db56cf245ede06 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 13 Nov 2023 15:20:12 +0000 Subject: [PATCH 69/72] remove duplicated epidist prob_dist check in validate_epidist --- R/epidist.R | 3 --- 1 file changed, 3 deletions(-) diff --git a/R/epidist.R b/R/epidist.R index 0a1b288af..6bf530ca9 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -370,9 +370,6 @@ validate_epidist <- function(epidist) { ), "epidist must contain a citation" = inherits(epidist$citation, "bibentry"), - "epidist distribution must be either or " = - inherits(epidist$prob_dist, c("distribution", "distcrete")) || - is.na(epidist$prob_dist) || is.character(epidist$prob_dist), "epidist notes must be a character string" = checkmate::test_character(epidist$notes, len = 1) ) From ed39ed92d8cf97fe6b7b421d92cd3261398bcdf9 Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 13 Nov 2023 15:21:16 +0000 Subject: [PATCH 70/72] return numeric NA in mean.epidist --- R/epidist.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/epidist.R b/R/epidist.R index 6bf530ca9..1ead6f4a1 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -966,7 +966,7 @@ mean.epidist <- function(x, ...) { if (utils::hasName(x$summary_stats, "mean")) { mean <- x$summary_stats$mean } else { - return(NA) + return(NA_real_) } # if mean is not given try and convert from parameters From 065e1ba9834e238f3f6e8afa8015872a644911cb Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 13 Nov 2023 15:27:40 +0000 Subject: [PATCH 71/72] replace test_character with test_string when scalar character --- R/epidist.R | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/R/epidist.R b/R/epidist.R index 1ead6f4a1..c643dc2d6 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -353,15 +353,13 @@ validate_epidist <- function(epidist) { ) %in% attributes(epidist)$names, "epidist must contain a disease (single character string)" = - checkmate::test_character(epidist$disease$disease, len = 1), + checkmate::test_string(epidist$disease$disease), "epidist must contain an epidemiological distribution" = - checkmate::test_character(epidist$epi_dist, len = 1), + checkmate::test_string(epidist$epi_dist), "epidist must contain a or distribution or NA" = checkmate::test_multi_class( epidist$prob_dist, classes = c("distribution", "distcrete") - ) || checkmate::test_character( - epidist$prob_dist, any.missing = TRUE, len = 1 - ), + ) || checkmate::test_string(epidist$prob_dist, na.ok = TRUE), "epidisit must contain uncertainty, summary stats and metadata" = all( is.list(epidist$uncertainty), @@ -371,7 +369,7 @@ validate_epidist <- function(epidist) { "epidist must contain a citation" = inherits(epidist$citation, "bibentry"), "epidist notes must be a character string" = - checkmate::test_character(epidist$notes, len = 1) + checkmate::test_string(epidist$notes) ) invisible(epidist) From b2fea45a19566db8b75d0a9ef7eb603b0dd5a75e Mon Sep 17 00:00:00 2001 From: Joshua Lambert Date: Mon, 13 Nov 2023 15:32:00 +0000 Subject: [PATCH 72/72] check for finite parameters and positive sample size in calc_dist_params --- R/calc_dist_params.R | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/R/calc_dist_params.R b/R/calc_dist_params.R index 4fa33e69d..0821c2a97 100644 --- a/R/calc_dist_params.R +++ b/R/calc_dist_params.R @@ -85,10 +85,15 @@ calc_dist_params <- function(prob_dist, # nolint cyclocomp # extract mean and sd mean_sd <- c(summary_stats$mean, summary_stats$sd) - is_mean_sd <- checkmate::test_numeric(mean_sd, any.missing = FALSE, len = 2) - is_median_disp <- checkmate::test_numeric(median_disp, len = 2) - is_median_range <- checkmate::test_numeric(median_range, len = 3) && - checkmate::test_numeric(sample_size, any.missing = FALSE) + is_mean_sd <- checkmate::test_numeric( + mean_sd, any.missing = FALSE, len = 2, finite = TRUE + ) + is_median_disp <- checkmate::test_numeric( + median_disp, len = 2, finite = TRUE + ) + is_median_range <- checkmate::test_numeric( + median_range, len = 3, finite = TRUE + ) && checkmate::test_count(sample_size, positive = TRUE) # convert from mean and sd if (is_mean_sd) { summary_stats_ <- unlist(summary_stats)