Research Article |
Corresponding author: Krystal A. Tolley ( ktolley@uj.ac.za ) Academic editor: Thomas L.P. Couvreur
© 2025 Krystal A. Tolley, Graham J. Alexander.
This is an open access article distributed under the terms of the Creative Commons Attribution License (CC BY 4.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
Citation:
Tolley KA, Alexander GJ (2025) Into Africa: The biogeography of the genus Python in Africa. Frontiers of Biogeography 18: e146955. https://doi.org/10.21425/fob.18.146955
|
Most of the nine genera and 38 species in the family Pythonidae occur in south-east Asia and Australasia, but the genus Python is distinctive in that it also occurs in sub-Saharan Africa. There is a large distribution gap for Python between Africa and south-east Asia, but fossil evidence suggests Python once occurred in this gap, as well as in Europe until the mid-Miocene. However, because all African species have not previously been included in any previously published phylogeny, their monophyly has not been established. Further, it has been suggested that the genus Python may have an Asian origin, and this scenario would require the African species to be monophyletic. Otherwise, multiple independent dispersals into Africa would be required to explain current day biogeographic patterns. To test these competing hypotheses, a dated phylogeny was constructed based on one nuclear and two mitochondrial genes and biogeographic scenarios evaluated using ancestral range reconstruction. In addition, fossil evidence was appraised as supporting evidence for their paleo-distribution but also to evaluate the hypothesis that large pythons (e.g., > 6 m in body length) are restricted to warmer climatic zones, and we suggest this influenced their paleo- and present-day distributions. The dated phylogeny indicates monophyly for the African species, diverging from the Asian species approximately 33 Mya. Ancestral area reconstruction supports an Asian origin for the genus, with a single dispersal event to Africa after which species diversified across the continent. We find no support for multiple dispersal events into Africa. Accounting for the distribution of fossils, it appears that Python, including large-bodied species, were once more widespread, but ranges contracted in response to global cooling since the mid-Miocene, and they are now excluded from temperate (i.e., Europe, Iranian plateau) as well as hyper-arid areas (i.e., Arabian, Saharan and Namib deserts).
The genus Python originated in Asia, with a single ancestral lineage entering Africa around 33 Mya where it diversified into four extant species.
Fossil evidence reveals that Python was much more widespread but with mid to late Miocene global cooling, the African and south-east Asian clades became isolated geographically from each other.
Large body size may have had an important influence on geographic range, limiting species to the warmer areas.
Long-term global cooling has presumably driven range contractions, creating the distribution gap, and possibly causing extinctions of Python species.
Africa, adaptive radiation, biogeography, Miocene cooling, Pythonidae, range limits, reptiles, snakes
Snakes are a diverse clade of squamates that arose around 170 million years ago (
Within the Pythonidae, the genus Python is the most geographically widespread, occurring in four biogeographic regions – the Oriental, Oceanian, Australian and Afrotropical, although they are absent from the island of Madagascar. There is a large gap in the occurrence of Python across northern Africa, the Saharo-Arabian-Levant region and Iranian plateau (Figs
Python
females actively incubate and protect their eggs, and it is thought that ranges are limited to regions where environmental temperatures are suitable for successful incubation (
Most Asian Python species have relatively small geographic ranges, apart from the two widespread, giant-bodied species (Fig.
The present-day disjunct distribution of the genus, as well as their absence from Madagascar, is intriguing in terms of biogeography. Indeed, several competing hypotheses regarding the origin of the genus Python and family Pythonidae have been proposed, but these hypotheses have not been tested by means of comprehensive datasets, and none have addressed the significant gap in their distribution, nor their absence from Madagascar. For example,
Current day distribution of the ten species in the genus Python and the locations of python fossils. Fossils are denoted for the early Miocene (black skulls) and the mid-Miocene (white skulls), with extinct species indicated by the red interdictory circles. All other fossils represent extant species, or those unidentified at the species level. DNA samples of African species included in the phylogenetic analyses (Table
Thirty Python samples were included in the ingroup dataset, representing eight of the 10 species in the genus (Table
To generate the new sequences, total genomic DNA was extracted from tissue samples preserved in 99% ethanol, using a salt extraction protocol (
Individuals included in the phylogenetic analyses for Python, with identification numbers, GenBank accession numbers for 16S, Cyt-b and c-mos genes, and locality information. Chimeric sequences were used for some individuals (denoted with an x). Samples from the area of sympatry or parapatry between P. natalensis and P. sebae are denoted with an asterisk in the ID number column. All new GenBank accessions are within the numbering series prefixed by “PV”. Dashes indicate data not available.
Genus and species | chimeric | ID number | 16S | Cyt-b | c-mos | Latitude, Longitude | Country | Locality | phylogeny | networks |
---|---|---|---|---|---|---|---|---|---|---|
Python anchietae | CAS 263501/AMB.10656 | PV364097 | - | - | -16.20, 12.40 | Angola | Namibe Province, Omahua | x | ||
Python anchietae | MVZ 232856 | - | KF811118 | KF811103 | - | Pet trade | - | x | ||
Python anchietae | P9-182 | PV364096 | PV389862 | PV389843 | -12.99, 13.10 | Angola | Dombe Grande | x | ||
Python bivittatus | 1 | KF293729 | KF293729 | - | - | China | Hainan Island | x | ||
Python bivittatus | x | 2 | KF010492 | KF010492 | AF435016 | - | - | - | x | |
Python brongersmai | ABTC24797 | EF545066 | EF545107 | - | - | - | - | x | ||
Python curtus | x | UMFS 11257 | AF215277 | KF811119 | KF811104 | - | Indonesia | - | x | |
Python molurus | x | - | - | AY099983 | AY099968 | - | - | - | x | |
Python natalensis | BHLP017 | PV364098 | PV389863 | PV389844 | -24.20, 30.35 | South Africa | Limpopo Province, Lekgalameetse | x | x | |
Python natalensis | BHLP061 | PV364099 | PV389864 | PV389845 | -24.20, 27.88 | South Africa | Limpopo Province, near Vaalwater | x | x | |
Python natalensis | EI_0140 | PV364100 | PV389865 | PV389846 | -17.66, 31.78 | Mozambique | Italthai | x | x | |
Python natalensis | F465 | PV364101 | PV389866 | PV389847 | -20.71, 34.12 | Mozambique | Gorongosa Province | x | x | |
Python natalensis | HB109 | PV364102 | PV389867 | PV389848 | -27.80, 32.33 | South Africa | KwaZulu-Natal Province, Phinda Nature Reserve | x | x | |
Python natalensis | HB111* | PV364103 | PV389868 | PV389849 | -3.54, 35.72 | Tanzania | Lake Manjara | x | x | |
Python natalensis | HB503 | PV364104 | PV389869 | PV389850 | -25.42, 31.94 | South Africa | Mpumalanga Province, Crocodile Bridge | x | x | |
Python natalensis | x | MBUR 00795 (cmos: MBUR 00819) | PV364105 | PV389870 | PV389851 | -23.95, 31.10 | South Africa | Limpopo Province, Phalaborwa (MBUR 00819: -24.05, 30.99) | x | x |
Python natalensis | NB0794 / REPT_0162 | PV364106 | PV389871 | PV389852 | -15.61, 14.88 | Angola | Bicuar National Park | x | x | |
Python natalensis | WC12-A052 | PV364107 | PV389872 | PV389853 | -16.83, 17.96 | Angola | Cuanado Cubango, near Savate village | x | x | |
Python regius | CHS268 | MK194023 | MK201373 | - | - | - | - | x | ||
Python regius | - | AB177878 | AB177878 | - | - | - | - | x | ||
Python regius | HB481 | PV364108 | PV389873 | PV389854 | - | Pet trade | - | x | ||
Python regius | SL 92 | PV364109 | PV389874 | PV389855 | - | Sierra Leone | unknown | x | ||
Python sebae | ID#10-51 | PV364110 | PV389875 | - | - | Angola | Zaire Province, Soyo | x | ||
Python sebae | ID#12-35 | PV364111 | PV389876 | PV389856 | - | Angola | Zaire Province, Soyo | x | x | |
Python sebae | KB-02 | PV364112 | PV389877 | PV389857 | - | Rwanda | unknown | x | x | |
Python sebae | MBUR 03034 | PV364114 | PV389879 | PV389859 | -4.15, 11.74 | Republic of Congo | Kouilou | x | X (c-mos) | |
Python sebae | MBUR 08506 | PV364113 | PV389878 | PV389858 | 10.62, 34.42 | Ethiopia | Benishangul-Gumuz, near Kutaworke | x | x | |
Python sebae | NB0747 / P8-010* | PV364115 | PV389880 | PV389860 | -9.34, 13.17 | Angola | Kwanza River floodplain | x | x | |
Python sebae | NB0781 / P8-001* | PV364116 | PV389881 | PV389861 | -10.65, 17.65 | Angola | 10 km north of Luquembo | x | x | |
Python sebae | UMFS 11459 | - | KF811120 | KF811105 | - | - | - | x | x | |
Outgroup | ||||||||||
Antaresia childreni | x | - | EF545058 | AY099994 | AY099967 | - | - | - | x | |
Aspidites melanocephalus | x | - | EF545060 | AMU69741 | DQ465557 | - | - | - | x | |
Liasis mackloitsavuensis | x | - | AF544820 | LMU69839 | AF544726 | - | - | - | x | |
Apodora papuana | x | - | AF544814 | LPU69843 | AF544720 | - | - | - | x | |
Malayopython reticulatus | x | - | MH410033 | MH410033 | AF544675 | - | - | - | x |
All phylogenetic analyses were run at the Cyberinfrastructure for Phylogenetic Research (CIPRES;
A dated phylogeny was constructed using BEAST v2.6 with xml files created in BEAUTi v2. Calibration points were based on previous dated phylogenies (
The dated BEAST analysis was run with separate partitions for each gene for the substitution model estimation, with the two mitochondrial genes linked for the relaxed log-normal clock model and all genes linked for the phylogenetic tree estimation using a Yule model. The HKY model of nucleotide evolution was applied for each partition with gamma shape parameter and proportion of invariable sites using values estimated in bModeltest (
Networks were constructed for Cyt-b and for c-mos to examine haplotype/allele sharing between the partly sympatric, and morphologically similar species, P. natalensis and P. sebae. Other members of the ingroup were not included in the networks given that there were sequence data from few individuals for each of the other species. The datasets were trimmed to remove missing data, and several individuals were removed completely due to short or missing sequences, for a final dataset with complete coverage across all individuals (Cyt-b: 694 bp, n = 16; c-mos: 400 bp n = 17). Networks were constructed using the TCS algorithm (
An ancestral area reconstruction was carried out using a Bayesian Binary MCMC (BBM) in RASP v4.0 beta (
Both Bayesian (MrBayes and BEAST) and the likelihood analyses produced the same topology for Python, with well-supported nodes for each species in the genus (Suppl. material
The dated phylogeny suggests that the genus Python diverged from other Pythonidae genera around 43 Mya (Fig.
The BBM analysis showed a high probability for the Oriental biogeographic region as the ancestral area for the genus Python (Fig.
Dated phylogeny for Pythonidae with near-complete taxon sampling for the genus Python. Nodes with black dots supported by all analyses, whereas white dots indicate nodes supported by two of three analyses (Suppl. material
Network of haplotypes (Top: Cyt-b) and alleles (Bottom: c-mos) for Python natalensis and Python sebae. The size of the circles is proportional to the frequency of individuals with that haplotype/allele, and the branch lengths are proportional to the number of mutations. The branches interrupted by hatch marks are shortened, with the number of mutations along that branch indicated.
Probabilities of ancestral ranges at each node in the Python dated phylogeny, represented by pie charts that are colour-coded to the areas as indicated in the key (bottom left). Biogeographic regions (
Previous interpretations of the biogeographic history of pythons focussed on Australasian taxa, with limited taxon sampling and geographic coverage of African Python (
From the high-level dated phylogeny (Fig.
Contraction of the tropics towards the equator intensified around the Eocene-Oligocene transition (
The absence of Python on Madagascar both at present and in the fossil record is perhaps unsurprising. Given the post-Gondwanan age of Pythonidae, a Gondwanan distribution – which would include Madagascar – can be ruled out. Furthermore, most Malagasy reptile fauna colonised the island through overseas dispersal from eastern Africa during the Eocene and early Oligocene (ca. 55–35 Mya;
Of the ten species in the genus Python, four qualify as being amongst the largest extant snakes on Earth (
While some areas of Africa are hyper-diverse biologically (e.g.,
With improved taxon sampling compared to previous studies, we showed that the most likely geographic origin of genus Python is Asia, with a single dispersal event into Africa corresponding with the closing of the Tethys Sea and newly established contact of the African and Eurasian landmasses. Our interpretation, however, is based on a dataset that includes few loci (two mitochondrial and one nuclear genes) and confidence in this hypothesis could be improved through more detailed genomic datasets and approaches. Nevertheless, our overall topology agrees with recent analyses that incorporate genomic approaches (
At present, Python species occur in mesic to humid sub-tropical or tropical regions and are excluded from temperate and arid regions in both Asia and Africa, with the exception of P. anchietae which has adapted to arid (but not hyper-arid) conditions. The fossil record shows that the present-day distribution gap was once occupied by pythons up until the mid-Miocene, during an era when those areas were warmer and more mesic. Thus, the present day and presumed paleo-distributions based on fossil evidence support the hypothesis that climate, particularly temperature and aridity, can be considered strong range limiters for pythons due to decreased recruitment of offspring outside warm and mesic environments.
This project was funded by the South African National Biodiversity Institute. We are grateful to a number of individuals who contributed to the DNA sequencing for this study, including Ninda Batista, Aaron Bauer, Marius Burger, Werner Conradie, Anja le Grange, Javier Lobón-Rovira, and Pedro vaz Pinto, and to Thomas Couvreur, Werner Conradie and Damien Esquerré for their helpful comments and advice. The South African National Wildlife Biobank provided additional samples for sequencing. Photos used in the figures were kindly provided by Bianca Fizzotti, Javier Lobón-Rovira, Michele Menegon and Steve Spawls.
Conceptualization: KAT, GJA. Formal analysis: KAT. Funding acquisition: KAT. Investigation: KAT, GJA. Writing – original draft: KAT, GJA. Writing – review and editing: KAT, GJA.
Genetic data are accessible on GenBank as per Table
Supplementary tables S1–S5 and figures S1–S4 (Phylogenetic tree files (figs S1–S3) https://doi.org/10.6084/m9.figshare.28737716) (.docx)