Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ Imports:
ggsci,
lubridate,
rlang,
tidyverse,
dplyr
SystemRequirements: C++11
Suggests:
Expand Down
9 changes: 4 additions & 5 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -12,29 +12,28 @@ export(get_haplotype_coalescence2)
export(get_haplotype_relatedness)
export(get_sample_relatedness)
export(life_table_Mali)
export(plot_EIR_prevalence)
export(plot_age_states)
export(plot_daily_prevalence)
export(plot_epi_data)
export(plot_epi_distribution)
export(plot_treatment_seeking)
export(prune_transmission_record)
export(retrieve_prev)
export(sim_block_tree)
export(sim_epi)
export(sim_haplotype_tree)
export(sim_vcf)
export(simplegen_file)
export(simplegen_project)
import("ggplot2,")
import("ggpubr,")
import("tidyverse,")
import(tidyr)
importFrom(Rcpp,sourceCpp)
importFrom(data.table,fread)
importFrom(ggsci,scale_color_lancet)
importFrom(grDevices,col2rgb)
importFrom(grDevices,grey)
importFrom(grDevices,rgb)
importFrom(magrittr,"%>%")
importFrom(rlang,.data)
importFrom(stats,aggregate)
importFrom(stats,dbeta)
importFrom(stats,dgeom)
importFrom(stats,dpois)
Expand Down
70 changes: 0 additions & 70 deletions R/misc.R
Original file line number Diff line number Diff line change
Expand Up @@ -55,74 +55,4 @@ pairwise_long <- function(n, include_diagonal = FALSE) {
return(ret)
}

#-----------------------------
#' @title Retrieve prevalence
#'
#' @description Function to add detection layer to estimated prevalence
#'
#' @param data Model output from SIMPLEGEN sim_epi() function epi_output$daily_values
#' @param case_detection Method of case detection, "Active" or "Passive"
#' @param diagnosis Method of diagnosis, "Microscopy" or "PCR"
#' @param sampling_time Sampling time, currently input should be a numeric day e.g. 100 would represent the 100th day of simulation.
#' @param sampled TO DO - sample from bernoulli distribution to generate simulated numbers of cases detected on each day - done in SIMPLEGEN internally already
#' @param deme deme of interest - currently assumes just a single deme analysed - i.e. can't pool results of multiple demes
#'
#' @importFrom stats aggregate
#' @return returns named vector : c("annual_EIR", "prevalence_true", "prevalence_detected")
#' @export


retrieve_prev <- function(data,
case_detection,
diagnosis,
sampling_time,
sampled = FALSE,
deme = 1) {

results <- vector(length=3)
names(results) <- c("annual_EIR", "prevalence_true", "prevalence_detected")

# Calculating Annual EIR --------------------------------------------------

# subset to desired rows and columns
df_wide <- data[, c("time", "deme", "EIR")]
df_wide <- df_wide[df_wide$deme == deme,]

df_wide$year <- lubridate::year(lubridate::as_date(df_wide$time, origin = lubridate::origin))

annual_EIR <- stats::aggregate(EIR ~ year + deme, data = df_wide, FUN = "sum")

sample_year <- lubridate::year(lubridate::as_date(sampling_time, origin = lubridate::origin))

results["annual_EIR"] <- annual_EIR[which(annual_EIR$year == sample_year),"EIR"]


# Calculating true prevalence ---------------------------------------------
data <- data[data$time == sampling_time,]

results["prevalence_true"] <- sum(data$C,data$A) / data$H

# Calculating observed prevalence -----------------------------------------

if (case_detection == "Active") {
if (diagnosis == "PCR") {
results["prevalence_detected"] <- sum(data$A_detectable_PCR, data$C_detectable_PCR) / data$H
} else if (diagnosis == "Microscopy") {
results["prevalence_detected"] <-sum(data$A_detectable_microscopy,data$C_detectable_microscopy) / data$H
} else {
warning("diagnosis type not recognized, please enter Microscopy or PCR")
}
} else if (case_detection == "Passive") {
if (diagnosis == "PCR") {
results["prevalence_detected"] <- data$A_detectable_PCR / data$H
} else if (diagnosis == "Microscopy") {
results["prevalence_detected"] <- data$A_detectable_microscopy / data$H
} else {
warning("diagnosis type not recognized, please enter Microscopy or PCR")
}
} else {
warning("case_detection type not recognized, please enter Active or Passive")
}

return(results)
}
Loading