evofr.models package
Subpackages
- evofr.models.renewal_model package
- Subpackages
- Submodules
- evofr.models.renewal_model.LAS module
- evofr.models.renewal_model.model_factories module
- evofr.models.renewal_model.model_functions module
- evofr.models.renewal_model.model_helpers module
- evofr.models.renewal_model.model_options module
- evofr.models.renewal_model.renewal_model module
- evofr.models.renewal_model.renewal_regression module
- evofr.models.renewal_model.renewal_single_variant module
- evofr.models.renewal_model.spline_incidence module
- Module contents
Submodules
evofr.models.mlr_hierarchical module
- class HierMLR(tau, pool_scale=None, xi_prior=None, xi_by_group=False)
Bases:
ModelSpec
- Parameters:
tau (float)
pool_scale (float | None)
xi_prior (float | None)
xi_by_group (bool)
- augment_data(data)
Augments existing data for inference with model specific information.
- Parameters:
data (dict)
- Return type:
None
- static forecast_frequencies(samples, forecast_L)
Use posterior beta to forecast posterior frequencies.
- static make_ols_feature(start, stop, n_groups)
Construct simple OLS features (1, x) for HierMLR as nd.array.
- Parameters:
start – Start value for OLS feature.
stop – Stop value for OLS feature.
n_groups – number of groups in the hierarchical model.
- hier_MLR_numpyro(seq_counts, N, X, tau=None, pool_scale=None, xi_prior=None, xi_by_group=False, pred=False, var_names=None)
- simulate_hier_mlr(growth_advantages, freq0, tau, Ns)
evofr.models.mlr_innovation module
- class DeltaNormalPrior(loc=None, scale=None)
Bases:
DeltaPriorModel
- Parameters:
loc (float | None)
scale (float | None)
- model(N_variants)
- class DeltaRegressionPrior(features)
Bases:
DeltaPriorModel
- model(N_variants)
- predict(features, samples)
- class InnovationMLR(tau, delta_prior=None)
Bases:
ModelSpec
- Parameters:
tau (float)
delta_prior (DeltaPriorModel | None)
- augment_data(data)
Augments existing data for inference with model specific information.
- Parameters:
data (dict)
- Return type:
None
- class InnovationSequenceCounts(raw_seq, raw_variant_parents, date_to_index=None, var_names=None, pivot=None)
Bases:
DataSpec
- Parameters:
raw_seq (DataFrame)
raw_variant_parents (DataFrame)
date_to_index (dict | None)
var_names (List | None)
pivot (str | None)
- make_data_dict(data=None)
Get arguments to be passed to numpyro models as a dictionary.
- Parameters:
data (dict | None) – Optional dictionary to add arguments to.
- Returns:
Dictionary containing arguments.
- Return type:
dict
- MLR_innovation_model(seq_counts, N, X, innovation_matrix, delta_prior, tau=None, pred=False)
- MLR_innovation_model_time_varying(seq_counts, N, innovation_matrix, delta_prior, tau=None, pred=False)
- prep_clade_list(raw_variant_parents, var_names=None)
Process ‘raw_variant_parents’ data to nd.array showing which innovations present by variant.
- Parameters:
raw_variant_parents (DataFrame) – a dataframe containing variant name and parent variant
var_names (List | None) – optional list of variants
pivot – optional name of variant to place last. Defaults to “other” if present otherwise. This will usually used as a reference or pivot strain.
- Returns:
binary matrix showing whether A[i,j] = i has innovation from j.
- Return type:
innovation_matrix
evofr.models.mlr_nowcast module
- class BetaHazard
Bases:
HazardModel
- model(N_variants, D)
- class DelaySequenceCounts(raw_seq, date_to_index=None, var_names=None, max_delay=None, pivot=None)
Bases:
DataSpec
- Parameters:
raw_seq (DataFrame)
date_to_index (dict | None)
var_names (List | None)
max_delay (int | None)
pivot (str | None)
- make_data_dict(data=None)
Get arguments to be passed to numpyro models as a dictionary.
- Parameters:
data (dict | None) – Optional dictionary to add arguments to.
- Returns:
Dictionary containing arguments.
- Return type:
dict
- class LinearHazard
Bases:
HazardModel
- model(N_variants, D)
- class LogitRWHazard
Bases:
HazardModel
- model(N_variants, D)
- class LogitSplineHazard(k=None, order=None, pool_scale=None)
Bases:
HazardModel
- Parameters:
k (int | None)
order (int | None)
pool_scale (float | None)
- model(N_variants, D)
- class MLRNowcast(tau, hazard_model=None, SeqLik=None)
Bases:
ModelSpec
- Parameters:
tau (float)
hazard_model (HazardModel | None)
- augment_data(data)
Augments existing data for inference with model specific information.
- Parameters:
data (dict)
- Return type:
None
- MLR_nowcast_model(seq_counts, seq_counts_delay, N, X, hazard_model, SeqLik, tau=None, pred=False)
- discrete_hazard_to_pmf_cdf(h)
- estimate_delay(seq_count_delays, hazard_model)
- prep_sequence_counts_delay(raw_seqs, date_to_index=None, var_names=None, max_delay=None, pivot=None)
Process ‘raw_seq’ data to nd.array including unobserved dates.
- Parameters:
raw_seq – a dataframe containing sequence counts with columns ‘sequences’ and ‘date’.
raw_seqs (DataFrame)
date_to_index (dict | None)
var_names (List | None)
max_delay (int | None)
pivot (str | None)
- date_to_index:
optional dictionary for mapping calender dates to nd.array indices.
- var_names:
optional list of variant to count observations.
- pivot:
optional name of variant to place last. Defaults to “other” if present otherwise. This will usually used as a reference or pivot strain.
- Returns:
var_names – list of variants counted
C – nd.array containing number of sequences of each variant on each date.
- Parameters:
raw_seqs (DataFrame)
date_to_index (dict | None)
var_names (List | None)
max_delay (int | None)
pivot (str | None)
evofr.models.mlr_spline module
- class MLRSpline(tau, s=None, k=None, order=None)
Bases:
ModelSpec
- Parameters:
tau (float)
s (Array | None)
k (int | None)
order (int | None)
- augment_data(data)
Augments existing data for inference with model specific information.
- Parameters:
data (dict)
- Return type:
None
- MLR_spline_numpyro(seq_counts, N, X, X_deriv, tau=None, pred=False, var_names=None)
evofr.models.model_spec module
- class ModelSpec
Bases:
ABC
Abstract model class. Used by evofr to handle model specifications for inference. Classes which inherit from ModelSpec must have an attribute ‘model_fn’ which defines the function to be used for inference in numpyro.
- abstract augment_data(data)
Augments existing data for inference with model specific information.
- Parameters:
data (dict)
- Return type:
None
- model_fn: Callable
- registry = {'DistanceMigrationModel': <class 'evofr.models.migration_from_distances.DistanceMigrationModel'>, 'HierMLR': <class 'evofr.models.mlr_hierarchical.HierMLR'>, 'HierMLRTime': <class 'evofr.models.mlr_hierarchical_time_varying.HierMLRTime'>, 'HierMLR_HSGP': <class 'evofr.models.mlr_hierarchical_gp.HierMLR_HSGP'>, 'InnovationMLR': <class 'evofr.models.mlr_innovation.InnovationMLR'>, 'MLRNowcast': <class 'evofr.models.mlr_nowcast.MLRNowcast'>, 'MLRSpline': <class 'evofr.models.mlr_spline.MLRSpline'>, 'MultinomialLogisticRegression': <class 'evofr.models.multinomial_logistic_regression.MultinomialLogisticRegression'>, 'PianthamModel': <class 'evofr.models.piantham_model.PianthamModel'>, 'RelativeFitnessDR': <class 'evofr.models.latent_immunity_relative_fitness.RelativeFitnessDR'>, 'RelativeFitnessHSGP': <class 'evofr.models.relative_fitness_hsgp.RelativeFitnessHSGP'>, 'RenewalModel': <class 'evofr.models.renewal_model.renewal_model.RenewalModel'>, 'RenewalRegressionModel': <class 'evofr.models.renewal_model.renewal_regression.RenewalRegressionModel'>, 'SingleRenewalModel': <class 'evofr.models.renewal_model.renewal_single_variant.SingleRenewalModel'>, 'SplineIncidenceModel': <class 'evofr.models.renewal_model.spline_incidence.SplineIncidenceModel'>}
evofr.models.multinomial_logistic_regression module
- MLR_numpyro(seq_counts, N, X, tau=None, pred=False, var_names=None, dir_multinomial=False, xi_prior=None)
- class MultinomialLogisticRegression(tau, dir_multinomial=False, xi_prior=None)
Bases:
ModelSpec
- Parameters:
tau (float)
xi_prior (float | None)
- augment_data(data)
Augments existing data for inference with model specific information.
- Parameters:
data (dict)
- Return type:
None
- static forecast_frequencies(samples, forecast_L)
Use posterior beta to forecast posterior frequenicies.
- static make_ols_feature(start, stop)
Construct simple OLS features (1, x) for MultinomialLogisticRegression.
- Parameters:
start – Start value for OLS feature.
stop – Stop value for OLS feature.
- simulate_MLR(growth_advantage, freq0, tau, Ns)
- simulate_MLR_freq(growth_advantage, freq0, tau, max_time)
evofr.models.piantham_model module
- class PianthamModel(gen, SeqLik=None, forecast_L=None)
Bases:
ModelSpec
Model of frequency dynamics from Piantham 2021 ‘Estimating the elevated transmissibility of the B.1.1.7 strain over previously circulating strains in England using GISAID sequence frequencies’.
- augment_data(data)
Augments existing data for inference with model specific information.
- Parameters:
data (dict)
- Return type:
None
- Piantham_model_numpyro(seq_counts, N, gen_rev, SeqLik, forecast_L, pred=False)
- compute_frequency_piantham(ga, q0, gen_rev, T)
Compute variant frequencies according to Piantham model.
- Parameters:
ga – Growth advantages for non-baseline variants.
q0 – Initial variant frequencies.
gen_rev – Reversed generation time.
T – Total length of time to simulate frequencies for.
- Return type:
Simulated frequencies as Array.