spDemography
spDemography(self, *args, **kwargs)
Methods
Name | Description |
---|---|
add_ancestral_populations | Adds ancestral populations to the given demographic model, mapping demes in the spatial simulation to ancestral populations. |
stepping_stone_2d | Create a 2D stepping stone model, either for a single time step or for multiple time steps of deme size change. |
add_ancestral_populations
spDemography.add_ancestral_populations(anc_sizes, merge_time, anc_id=None, anc_merge_times=None, anc_merge_sizes=None, migration_rate=None)
Adds ancestral populations to the given demographic model, mapping demes in the spatial simulation to ancestral populations.
Parameters
Name | Type | Description | Default |
---|---|---|---|
anc_sizes |
List[float] | A list of ancestral population sizes. | required |
merge_time |
Union[float, int] | The time at which all demes in the spatial simulation merge into one or more ancestral populations. | required |
anc_id |
Optional[np.ndarray] | An array of ancestral population IDs- the output of [split_landscape_by_pop][utilities.split_landscape_by_pop]. Defaults to None. | None |
anc_merge_times |
Optional[List[float]] | A list of merge times for ancestral populations. Defaults to None. | None |
anc_merge_sizes |
Optional[List[float]] | A list of sizes for merged ancestral populations. Defaults to None. | None |
migration_rate |
Optional[float] | The symmetric migration rate between ancestral populations. Defaults to None. | None |
Returns
Type | Description |
---|---|
msprime.Demography | The demographic model with the added ancestral populations. |
Raises
Type | Description |
---|---|
ValueError | If the model already contains ancestral populations. |
ValueError | If the number of demes in the demographic model does not match the number of demes in the admixture ID raster. |
Notes
The function adds ancestral populations to the given demographic model. If anc_id
is not provided, a single ancestral population is added with the initial size specified in anc_sizes[0]
. If anc_id
is provided, a new ancestral population is added for each admixture population, with sizes specified in anc_sizes
. The demes in the simulation are then merged into their respective ancestral populations based on the values in anc_id
. If anc_merge_times
is provided, the ancestral populations are merged at the specified times. If migration_rate
is provided, symmetric migration is allowed between ancestral populations.
stepping_stone_2d
spDemography.stepping_stone_2d(d, rate, scale=True, timesteps=None)
Create a 2D stepping stone model, either for a single time step or for multiple time steps of deme size change.
Parameters
Name | Type | Description | Default |
---|---|---|---|
d |
numpy.ndarray | The demography matrix representing the population sizes. | required |
rate |
float or numpy.ndarray | The migration rate(s) between populations. If a float, it represents a constant migration rate for all populations. If a numpy.ndarray, it represents a migration matrix with shape (T, N, N), where N is the total number of populations and T is the number of time steps - 1, if T > 1. | required |
scale |
bool | Whether to scale the migration rate matrix. Default is True. | True |
timesteps |
Union[int, List[int]] | The list of timesteps representing the amount of time passing between each demographic event, in generations. If a single integer is provided, the function assumes that the time steps are equal. | None |
Returns
Type | Description |
---|---|
msprime.Demography | The constructed 2d stepping stone model as an msprime.Demography object. |
Notes
The demography matrix d
should have shape (n, m) or (k, n, m), where n is the number of rows and m is the number of columns for a 2D array and k is the number of layers in a 3D array. The migration rate matrix rate
should have shape (N, N), where N is the total number of populations. If there are multiple time steps of population size change, the add_landscape_change
function is called to modify the model accordingly.