@@ -1809,3 +1809,136 @@ def _africanBoyko():
1809
1809
1810
1810
1811
1811
_species .add_demographic_model (_africanBoyko ())
1812
+
1813
+
1814
+ def _ancient_europe ():
1815
+ id = "AncientEurope_4A21"
1816
+ description = "Multi-population model of ancient Europe"
1817
+ long_description = """
1818
+ Population structure that has existed over the last 45,000 years in Europe, leading
1819
+ to modern Europeans. The model demonstrates the divergence of a Basal European
1820
+ Lineages into four ancient populations; Western, Eastern and Caucasus Hunter-
1821
+ Gatherers and Anatolian Farmers. Migration of Anatolian farmers into Western Europe
1822
+ and admixture with Western Hunter-Gatherers produces the European Neolithic Farmers.
1823
+ In West Asia the admixture of Eastern Hunter-Gatherers and Caucasus Hunter-
1824
+ Gatherers leads to the formation of the Yamnaya Steppe population. The Yamnaya
1825
+ migrate into Western Europe to admixture with the Neolithic farmers giving rise to
1826
+ Bronze Age europeans. There is only an exponential growth in population size from
1827
+ then to the Present-day. Samples are taken at multiple point throughout history
1828
+ from each population.
1829
+ """
1830
+ populations = [
1831
+ stdpopsim .Population (
1832
+ id = "Pop0" ,
1833
+ description = "1000GenomesEUR/BronzeAge/Neolithic/Anatolian/WestAsian/Basal" ,
1834
+ ),
1835
+ stdpopsim .Population (id = "Pop1" , description = "Yamnaya/CHG" ),
1836
+ stdpopsim .Population (id = "Pop2" , description = "WHG/NorthernEuropean" ),
1837
+ stdpopsim .Population (id = "Pop3" , description = "EHG" ),
1838
+ ]
1839
+ citations = [
1840
+ stdpopsim .Citation (
1841
+ author = "Allentoft et al." ,
1842
+ year = "2022" ,
1843
+ doi = "https://doi.org/10.1101/2022.05.04.490594" ,
1844
+ reasons = {stdpopsim .CiteReason .DEM_MODEL },
1845
+ )
1846
+ ]
1847
+
1848
+ generation_time = 29
1849
+ mutation_rate = 1.25e-8
1850
+
1851
+ # initial population sizes:
1852
+ N_bronze = 50000
1853
+ N_Yam = 5000
1854
+ N_whg = 10000
1855
+ N_ehg = 10000
1856
+ N_neo = 50000
1857
+ N_chg = 10000
1858
+ N_NE = 5000 # Ancestor of WHG and EHG
1859
+ N_WA = 5000 # Ancestor of CHG and Anatolian farmers
1860
+
1861
+ # Time of events
1862
+ T_bronze = 140
1863
+ T_Yam = 180
1864
+ T_neo = 200
1865
+ T_near_east = 800
1866
+ T_europe = 600
1867
+ T_basal = 1500
1868
+
1869
+ # Growth rate and initial population size for present day from bronze age
1870
+ r_EU = 0.067
1871
+ N_present = N_bronze / math .exp (- r_EU * T_bronze )
1872
+
1873
+ population_configurations = [
1874
+ msprime .PopulationConfiguration (
1875
+ initial_size = N_present , growth_rate = r_EU , metadata = populations [0 ].asdict ()
1876
+ ),
1877
+ msprime .PopulationConfiguration (
1878
+ initial_size = N_Yam , metadata = populations [1 ].asdict ()
1879
+ ),
1880
+ msprime .PopulationConfiguration (
1881
+ initial_size = N_whg , metadata = populations [2 ].asdict ()
1882
+ ),
1883
+ msprime .PopulationConfiguration (
1884
+ initial_size = N_ehg , metadata = populations [3 ].asdict ()
1885
+ ),
1886
+ ]
1887
+
1888
+ Bronze_formation = [
1889
+ msprime .MassMigration (time = T_bronze , source = 0 , dest = 1 , proportion = 0.5 ),
1890
+ msprime .PopulationParametersChange (
1891
+ time = T_bronze , initial_size = N_neo , growth_rate = 0 , population = 0
1892
+ ),
1893
+ ]
1894
+
1895
+ Yam_formation = [
1896
+ msprime .MassMigration (time = T_Yam , source = 1 , dest = 3 , proportion = 0.5 ),
1897
+ msprime .PopulationParametersChange (
1898
+ time = T_Yam , initial_size = N_chg , population = 1
1899
+ ),
1900
+ ]
1901
+
1902
+ European_neolithic = [
1903
+ msprime .MassMigration (time = T_neo , source = 0 , dest = 2 , proportion = 1.0 / 4.0 )
1904
+ ]
1905
+
1906
+ HG_split = [
1907
+ msprime .MassMigration (time = T_europe , source = 3 , dest = 2 , proportion = 1 ),
1908
+ msprime .PopulationParametersChange (
1909
+ time = T_europe , initial_size = N_NE , population = 2
1910
+ ),
1911
+ ]
1912
+
1913
+ Near_east_split = [
1914
+ msprime .MassMigration (time = T_near_east , source = 1 , dest = 0 , proportion = 1 ),
1915
+ msprime .PopulationParametersChange (
1916
+ time = T_near_east , initial_size = N_WA , population = 0
1917
+ ),
1918
+ ]
1919
+
1920
+ Basal_split = [msprime .MassMigration (time = T_basal , source = 2 , dest = 0 , proportion = 1 )]
1921
+
1922
+ demographic_events = (
1923
+ Bronze_formation
1924
+ + Yam_formation
1925
+ + European_neolithic
1926
+ + HG_split
1927
+ + Near_east_split
1928
+ + Basal_split
1929
+ )
1930
+
1931
+ return stdpopsim .DemographicModel (
1932
+ id = id ,
1933
+ description = description ,
1934
+ long_description = long_description ,
1935
+ populations = populations ,
1936
+ citations = citations ,
1937
+ generation_time = generation_time ,
1938
+ mutation_rate = mutation_rate ,
1939
+ population_configurations = population_configurations ,
1940
+ demographic_events = demographic_events ,
1941
+ )
1942
+
1943
+
1944
+ _species .add_demographic_model (_ancient_europe ())
0 commit comments