Parallel PopGen Package
Sim_Model::selection_linear_frequency_dependent Struct Reference

functor: models selection coefficient as linearly dependent on frequency More...

Public Member Functions

 selection_linear_frequency_dependent ()
 default constructor More...
 
 selection_linear_frequency_dependent (float slope, float intercept)
 constructor More...
 
template<typename Functor_demography , typename Functor_inbreeding >
 selection_linear_frequency_dependent (float gamma_slope, float gamma_intercept, Functor_demography demography, Functor_inbreeding F, int forward_generation_shift=0)
 constructor: effective selection More...
 
__device__ __forceinline__ float operator() (const int population, const int generation, const float freq) const
 selection operator, returns selection coefficient, s, for a given population, generation, freq More...
 

Public Attributes

float slope
 slope of selection coefficient's linear dependence on frequency More...
 
float intercept
 selection coefficient's intercept with frequency 0 More...
 

Detailed Description

functor: models selection coefficient as linearly dependent on frequency

(slope < 0) := balancing selection model (negative frequency-dependent selection)
(slope = 0) := constant selection
(slope > 0) := reinforcement selection model (positive frequency-dependent selection)

Definition at line 43 of file go_fish.cuh.

Constructor & Destructor Documentation

§ selection_linear_frequency_dependent() [1/3]

Sim_Model::selection_linear_frequency_dependent::selection_linear_frequency_dependent ( )
inline

default constructor

slope = 0, intercept = 0

Definition at line 62 of file template_inline_simulation_functors.cuh.

§ selection_linear_frequency_dependent() [2/3]

Sim_Model::selection_linear_frequency_dependent::selection_linear_frequency_dependent ( float  slope,
float  intercept 
)
inline

constructor

Definition at line 63 of file template_inline_simulation_functors.cuh.

§ selection_linear_frequency_dependent() [3/3]

template<typename Functor_demography , typename Functor_inbreeding >
Sim_Model::selection_linear_frequency_dependent::selection_linear_frequency_dependent ( float  gamma_slope,
float  gamma_intercept,
Functor_demography  demography,
Functor_inbreeding  F,
int  forward_generation_shift = 0 
)
inline

constructor: effective selection

slope = gamma_slope/(2*demography(0,forward_generation_shift)/(1+F(0,forward_generation_shift)))
intercept = gamma_intercept/(2*demography(0,forward_generation_shift)/(1+F(0,forward_generation_shift)))

Parameters
forward_generation_shift(optional input) default 0
allows you to push the population size and inbreeding coefficient value to the state forward in time - useful if you are starting the simulation from a previous simulation state and are using the same functions as the previous simulation or any time you want to shift the generation of the demography and inbreeding functions from 0

Definition at line 69 of file template_inline_simulation_functors.cuh.

Member Function Documentation

§ operator()()

__device__ __forceinline__ float Sim_Model::selection_linear_frequency_dependent::operator() ( const int  population,
const int  generation,
const float  freq 
) const

selection operator, returns selection coefficient, s, for a given population, generation, freq

s = slope*freq + intercept

Definition at line 74 of file template_inline_simulation_functors.cuh.

Member Data Documentation

§ slope

float Sim_Model::selection_linear_frequency_dependent::slope

slope of selection coefficient's linear dependence on frequency

Definition at line 45 of file go_fish.cuh.

§ intercept

float Sim_Model::selection_linear_frequency_dependent::intercept

selection coefficient's intercept with frequency 0

Definition at line 46 of file go_fish.cuh.


The documentation for this struct was generated from the following files: