Training course in data analysis for genomic surveillance of African malaria vectors
Exploration of the Anopheles funestus resource#
Theme: Data
DISCLAIMER: This is work in progress and subject to change and updates.
This module provides an introduction to accessing and exploring data about Anopheles funestus mosquito specimens collected in the field and submitted for whole-genome sequencing by MalariaGEN. It also explains why the study of An. funestus is crucial to understand the malaria landscape in Sub-Saharan Africa. Through examples, it also shows differences between the Af1
and Ag3
resources underlining why they can’t be aggregated as a single resource.
A certain degree of familiarity with the content of the training course on Anopheles gambiae s.l. is expected. Many of the concepts presented in this module were introduced in the training course and we will refer to the relevant workshop and module instead of giving detailed explanations. More specifically, more details on the theory underpinning reference genome access and exploration can be found in Workshop 1 Module 3 of the An. gambiae introductory training course, and explanations around the structure, storage and metadata contained in the data resources can be found in Workshop 1 Module 2.
Learning objectives#
After completing this module, you will be able to:
Explain why the study of An. funestus is important and why it requires a different resource
Use the
malariagen_data
Python package to accessAf1.0
data in Google Cloud.Explore the
Af1.0
data release and summarise the mosquito samples for which genomic data are available using pivot tables and maps.Use genomic coordinates to identify sites and regions within the reference genome.
Find specific genes of interest in the reference genome.
Lecture?#
English#
Français#
Please note that the code in the cells below might differ from that shown in the video. This can happen because Python packages and their dependencies change due to updates, necessitating tweaks to the code.
Why are we interested in An. funestus ?#
%%html
<img width="50%" height="50%" src="https://github.com/anopheles-genomic-surveillance/anopheles-genomic-surveillance.github.io/blob/master/src/img/advanced/MAP_Africa_vector_range.png?raw=1"/>

An. funestus is a major vector of malaria in sub-Saharan Africa, particularly in East Africa. Its range covers most of the continent, as shown on the map above courtesy of the Malaria Atlas Project [1]. If vector control interventions are successful in reducing the populations of An. gambiae s.l. withour affecting as much the An. funestus populations, they could lead to An. funestus replacing An. gambiae s.l. as a malaria vector. This has, for instance, already been observed in East Africa. Msugupakulya et al. [2] have shown that, while An. gambiae s.l. was the main vector of malaria in East Africa during the first decade of the XXIst century, An. funestus has taken that role more recently.
An. funestus is known to be highly anthropophilic [3]. It also been shown to have a significantly longer lifespan than other African malaria vectors [4]. In some areas, it is also reported to have very high Plasmodium infection rates [5, 6, 7]. An funestus has adapted recently to the use of indoor-based interventions, including bed nets, by modifying its behaviour. It is now known to be probe to outdoor, early evening and late morning biting [8, 9, 10]. There is also evidence for a preference for larval habitats that persist in the dry months [11] which may extend the transmission season.
Why is this a different course from the one on An. gambiae s.l.?#
All the methods that were introduced in the An. gambiae s.l. course to analyse population structure (Workshop 3), genetic diversity (Workshop 5), positive selection (Workshop 6), gene flow (Workshop 7) or insecticide resistance (Workshop 1 and Workshop 2) can be applied to An. funestus (and will be in Advanced funestus - Insecticide resistance and Advanced funestus - Population structure) but, particularly for insecticide resistance analyses, the fact that An. gambiae s.l. and An. funestus are two very different species cannot be ignored.
To begin with, there is no gene flow between An. gambiae s.l. and An. funestus. The two species have common ancestors, they do belong to the same genus Anopheles, but they diverged around 9.5 million years ago [12]. This, obviously, predates any human intervention as it predates humanity [13]. As a result, any insecticide resistance mutation that is observed will either be different or a co-evolution.
The Af1.0
resource is built using the idAnoFuneDA-416_04
[14] genome assembly. As we will see, while the An. funestus genome has the same number of chromosomes (2 autosomes and X) as the An. gambiae s.l., they are of different lengths, the inversions are different and the genes of interest may be located in completely different places in the genome.
%%html
<img width="50%" height="50%" src="https://github.com/anopheles-genomic-surveillance/anopheles-genomic-surveillance.github.io/blob/master/src/img/advanced/funestus_synteny.png?raw=1"/>
#I need to find a good picture to put here

Accessing the Af1.0
data resource#
We are now going to be accessing and analysing data from the Anopheles funestus 1000 Genomes Project phase 1 data resource, also known as “Af1.0” for short. This includes data from whole-genome sequencing of 656 mosquitoes from 13 African countries.
To set up your notebook to access these data, first install the malariagen_data package.
%pip install -q --no-warn-conflicts malariagen_data
We will also need to use ipyleaflet to make some maps
%pip install -qq ipyleaflet
import malariagen_data
import ipyleaflet
Note that authentication is required to access data through the package, please follow the instructions here.
af1 = malariagen_data.Af1()
af1
MalariaGEN Af1 API client | |
---|---|
Please note that data are subject to terms of use, for more information see the MalariaGEN website or contact support@malariagen.net. See also the Af1 API docs. | |
Storage URL | gs://vo_afun_release_master_us_central1 |
Data releases available | 1.0, 1.1, 1.2, 1.3, 1.4 |
Results cache | None |
Cohorts analysis | 20240515 |
Site filters analysis | dt_20200416 |
Software version | malariagen_data 15.2.0 |
Client location | Iowa, United States (Google Cloud us-central1) |
Accessing and exploring Anopheles funestus genomic data#
Exploring the reference and finding genes of interest#
We saw during the third module of the first workshop of the course on An. gambiae (Workshop 1 Module 3) how to access the genome annotations for that species. The same function exists for An. funestus.
af1.genome_features()
contig | source | type | start | end | score | strand | phase | ID | Parent | Note | description | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2RL | VEuPathDB | ncRNA_gene | 66492 | 69180 | NaN | + | NaN | LOC125765358 | NaN | NaN | uncharacterized LOC125765358, transcript varia... |
1 | 2RL | VEuPathDB | lnc_RNA | 66492 | 69180 | NaN | + | NaN | LOC125765358_t2 | LOC125765358 | NaN | uncharacterized LOC125765358, transcript varia... |
2 | 2RL | VEuPathDB | lnc_RNA | 66492 | 69180 | NaN | + | NaN | LOC125765358_t1 | LOC125765358 | NaN | uncharacterized LOC125765358, transcript varia... |
3 | 2RL | VEuPathDB | exon | 66492 | 66764 | NaN | + | NaN | exon_LOC125765358_t2-E1 | LOC125765358_t2,LOC125765358_t1 | NaN | NaN |
4 | 2RL | VEuPathDB | lnc_RNA | 66923 | 69180 | NaN | + | NaN | LOC125765358_t3 | LOC125765358 | NaN | uncharacterized LOC125765358, transcript varia... |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
347419 | X | VEuPathDB | exon | 22261674 | 22261945 | NaN | - | NaN | exon_LOC125771994_t1-E5 | LOC125771994_t1 | NaN | NaN |
347420 | X | VEuPathDB | exon | 22262762 | 22262829 | NaN | - | NaN | exon_LOC125771994_t1-E4 | LOC125771994_t1 | NaN | NaN |
347421 | X | VEuPathDB | exon | 22263509 | 22263916 | NaN | - | NaN | exon_LOC125771994_t1-E3 | LOC125771994_t1 | NaN | NaN |
347422 | X | VEuPathDB | exon | 22263985 | 22264052 | NaN | - | NaN | exon_LOC125771994_t1-E2 | LOC125771994_t1 | NaN | NaN |
347423 | X | VEuPathDB | exon | 22264121 | 22264183 | NaN | - | NaN | exon_LOC125771994_t1-E1 | LOC125771994_t1 | NaN | NaN |
347424 rows × 12 columns
The first big difference between the reference for An. funestus and An. gambiae is that contigs are whole chromosomes (e.g., “2RL”) instead of chromosome arms (e.g., “2R”).
af1.genome_features().groupby("contig").size()
contig
2RL 170850
3RL 141790
X 34784
dtype: int64
We can group the annotations by “type” to see what the annotations contain.
af1.genome_features().groupby("type").size()
type
CDS 161215
exon 78083
five_prime_UTR 42054
lnc_RNA 942
mRNA 25010
ncRNA 609
ncRNA_gene 1041
protein_coding_gene 11962
pseudogene 42
pseudogenic_transcript 42
rRNA 101
snRNA 27
snoRNA 9
tRNA 316
three_prime_UTR 25971
dtype: int64
Many different types of annotations are provided but we will only be interested in “protein_coding_gene”s for this module.
af1.genome_features().query("type == 'protein_coding_gene'")
contig | source | type | start | end | score | strand | phase | ID | Parent | Note | description | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
16 | 2RL | VEuPathDB | protein_coding_gene | 81055 | 82221 | NaN | + | NaN | LOC125766088 | NaN | NaN | 60S ribosomal protein L18 [Source:UniProtKB/Tr... |
26 | 2RL | VEuPathDB | protein_coding_gene | 82584 | 84996 | NaN | - | NaN | LOC125766087 | NaN | NaN | Folliculin [Source:UniProtKB/TrEMBL;Acc:A0A182... |
40 | 2RL | VEuPathDB | protein_coding_gene | 141143 | 146973 | NaN | + | NaN | LOC125766196 | NaN | NaN | uncharacterized LOC125766196 |
50 | 2RL | VEuPathDB | protein_coding_gene | 159192 | 185030 | NaN | - | NaN | LOC125765747 | NaN | NaN | lachesin-like, transcript variant X5 |
142 | 2RL | VEuPathDB | protein_coding_gene | 227643 | 228822 | NaN | + | NaN | LOC125760444 | NaN | NaN | actin-related protein 2/3 complex subunit 4 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
347372 | X | VEuPathDB | protein_coding_gene | 22057024 | 22057530 | NaN | - | NaN | LOC125768238 | NaN | NaN | transcriptional regulatory protein AlgP-like |
347378 | X | VEuPathDB | protein_coding_gene | 22078120 | 22083556 | NaN | + | NaN | LOC125769511 | NaN | NaN | uncharacterized LOC125769511 |
347386 | X | VEuPathDB | protein_coding_gene | 22089764 | 22093137 | NaN | - | NaN | LOC125768244 | NaN | NaN | uncharacterized LOC125768244 |
347394 | X | VEuPathDB | protein_coding_gene | 22192285 | 22193524 | NaN | + | NaN | LOC125768250 | NaN | NaN | protein lag-3-like |
347402 | X | VEuPathDB | protein_coding_gene | 22206931 | 22212078 | NaN | + | NaN | LOC125769281 | NaN | NaN | uncharacterized LOC125769281 |
11962 rows × 12 columns
We can see that the naming convention (“LOC?????????”) is different from the one used for An. gambiae (“AGAP??????”).
In order to locate genes of interest, several methods can be used. The easiest is when the ID is already known. For instance, in supplementary Table 3 of [15], the ID for GSTE2 is given as “LOC125763977”. We can thus look at this gene.
af1.genome_features().query("ID == 'LOC125763977'")
contig | source | type | start | end | score | strand | phase | ID | Parent | Note | description | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
133312 | 2RL | VEuPathDB | protein_coding_gene | 76406705 | 76407655 | NaN | + | NaN | LOC125763977 | NaN | NaN | glutathione S-transferase 1-like, transcript v... |
It is also possible to query other fields of the DataFrame to access a gene. For instance, if we are interested in ACE1, its description is “Acetylcholinesterase [Source:UniProtKB/TrEMBL;Acc:A0A182RZ85]”.
af1.genome_features().query("description == 'Acetylcholinesterase [Source:UniProtKB/TrEMBL;Acc:A0A182RZ85]'")
contig | source | type | start | end | score | strand | phase | ID | Parent | Note | description | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
38520 | 2RL | VEuPathDB | protein_coding_gene | 19417355 | 19490903 | NaN | + | NaN | LOC125763056 | NaN | NaN | Acetylcholinesterase [Source:UniProtKB/TrEMBL;... |
The “[Source:UniProtKB/TrEMBL;Acc:A0A182RZ85]” part makes it hard to remember and is thus problematic. It is possible, though not really simple, to dispense with it.
correct_id = [i for i, d in enumerate(af1.genome_features()['description']) if type(d) == str if d.split(" ")[0] == 'Acetylcholinesterase']
af1.genome_features().loc[correct_id[0]]
contig 2RL
source VEuPathDB
type protein_coding_gene
start 19417355
end 19490903
score NaN
strand +
phase NaN
ID LOC125763056
Parent NaN
Note NaN
description Acetylcholinesterase [Source:UniProtKB/TrEMBL;...
Name: 38520, dtype: object
In practice, it is going to be extremely unusual that we know the correct ID and/or description for a gene we are interested in as they are neither obvious nor easy to remember and these methods will seldom be useful.
Another, more practical and rea way to find genes of interest is by looking at specific regions of the genome, for instance ones that are around signals of selection. For instance, if we look at the region “X:8445000-8455000”, we find Cyp9k1.
af1.genome_features(region="X:8445000-8455000").query("type == 'protein_coding_gene'")
contig | source | type | start | end | score | strand | phase | ID | Parent | Note | description | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | X | VEuPathDB | protein_coding_gene | 8448477 | 8450887 | NaN | + | NaN | LOC125764232 | NaN | NaN | Cytochrome P450 [Source:UniProtKB/TrEMBL;Acc:A... |
The most common way to find a gene, however, is to use Vectorbase and look for orthologs for known genes in other species. For instance, if one looks at the orthologs of AGAP004707 (VGSC in An. gambiae), one can find several proteins of the gene AFUN2_008728 of AfunGA1 which can be found in the region “3RL:44105643-44156624”. If we look at this region, we find the gene VGSC for An. funestus.
It is worth noting that VectorBase doesn’t use the IDs from the genome annotations to identify the genes. The IDs can still be used in searches, however. VectorBase used to use the IDs but they do not contain the organism name (AFUN) so they were replaced with new identifiers.
af1.genome_features(region="3RL:44105643-44156624").query("type == 'protein_coding_gene'")
contig | source | type | start | end | score | strand | phase | ID | Parent | Note | description | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 3RL | VEuPathDB | protein_coding_gene | 44105643 | 44156624 | NaN | - | NaN | LOC125769886 | NaN | NaN | sodium channel protein para, transcript varian... |
On VectorBase, by going to the Links out/External Links section of a gene page, one can also get a lits of other identifiers. The RefSeq is the ID that you will find in the genome annotations.
Loading sample metadata#
We can use the sample_metadata()
function to retrieve a pandas DataFrame containing metadata about all 656 samples in the Af1.0 resource. In this DataFrame, each row represents one mosquito sample, and the columns such as country
and year
provide information about where the mosquito was originally collected. This is similar work to what was done in Workshop 1 Module 2.
df_samples = af1.sample_metadata(sample_sets="1.0")
df_samples
sample_id | partner_sample_id | contributor | country | location | year | month | latitude | longitude | sex_call | ... | admin1_name | admin1_iso | admin2_name | taxon | cohort_admin1_year | cohort_admin1_month | cohort_admin1_quarter | cohort_admin2_year | cohort_admin2_month | cohort_admin2_quarter | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | VBS24195 | 1229-GH-A-GH01 | Samuel Dadzie | Ghana | Dimabi | 2017 | 8 | 9.420 | -1.083 | F | ... | Northern Region | GH-NP | Tolon | funestus | GH-NP_fune_2017 | GH-NP_fune_2017_08 | GH-NP_fune_2017_Q3 | GH-NP_Tolon_fune_2017 | GH-NP_Tolon_fune_2017_08 | GH-NP_Tolon_fune_2017_Q3 |
1 | VBS24196 | 1229-GH-A-GH02 | Samuel Dadzie | Ghana | Gbullung | 2017 | 7 | 9.488 | -1.009 | F | ... | Northern Region | GH-NP | Kumbungu | funestus | GH-NP_fune_2017 | GH-NP_fune_2017_07 | GH-NP_fune_2017_Q3 | GH-NP_Kumbungu_fune_2017 | GH-NP_Kumbungu_fune_2017_07 | GH-NP_Kumbungu_fune_2017_Q3 |
2 | VBS24197 | 1229-GH-A-GH03 | Samuel Dadzie | Ghana | Dimabi | 2017 | 7 | 9.420 | -1.083 | F | ... | Northern Region | GH-NP | Tolon | funestus | GH-NP_fune_2017 | GH-NP_fune_2017_07 | GH-NP_fune_2017_Q3 | GH-NP_Tolon_fune_2017 | GH-NP_Tolon_fune_2017_07 | GH-NP_Tolon_fune_2017_Q3 |
3 | VBS24198 | 1229-GH-A-GH04 | Samuel Dadzie | Ghana | Dimabi | 2017 | 8 | 9.420 | -1.083 | F | ... | Northern Region | GH-NP | Tolon | funestus | GH-NP_fune_2017 | GH-NP_fune_2017_08 | GH-NP_fune_2017_Q3 | GH-NP_Tolon_fune_2017 | GH-NP_Tolon_fune_2017_08 | GH-NP_Tolon_fune_2017_Q3 |
4 | VBS24199 | 1229-GH-A-GH05 | Samuel Dadzie | Ghana | Gupanarigu | 2017 | 8 | 9.497 | -0.952 | F | ... | Northern Region | GH-NP | Kumbungu | funestus | GH-NP_fune_2017 | GH-NP_fune_2017_08 | GH-NP_fune_2017_Q3 | GH-NP_Kumbungu_fune_2017 | GH-NP_Kumbungu_fune_2017_08 | GH-NP_Kumbungu_fune_2017_Q3 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
651 | VBS24534 | 1240-MZ-A-MozF_1314 | Lizette Koekemoer | Mozambique | Motinho | 2015 | 8 | -10.851 | 40.594 | F | ... | Cabo Delgado | MZ-P | Palma | funestus | MZ-P_fune_2015 | MZ-P_fune_2015_08 | MZ-P_fune_2015_Q3 | MZ-P_Palma_fune_2015 | MZ-P_Palma_fune_2015_08 | MZ-P_Palma_fune_2015_Q3 |
652 | VBS24535 | 1240-MZ-A-MozF_1315 | Lizette Koekemoer | Mozambique | Motinho | 2015 | 8 | -10.851 | 40.594 | F | ... | Cabo Delgado | MZ-P | Palma | funestus | MZ-P_fune_2015 | MZ-P_fune_2015_08 | MZ-P_fune_2015_Q3 | MZ-P_Palma_fune_2015 | MZ-P_Palma_fune_2015_08 | MZ-P_Palma_fune_2015_Q3 |
653 | VBS24536 | 1240-MZ-A-MozF_1317 | Lizette Koekemoer | Mozambique | Motinho | 2015 | 8 | -10.851 | 40.594 | F | ... | Cabo Delgado | MZ-P | Palma | funestus | MZ-P_fune_2015 | MZ-P_fune_2015_08 | MZ-P_fune_2015_Q3 | MZ-P_Palma_fune_2015 | MZ-P_Palma_fune_2015_08 | MZ-P_Palma_fune_2015_Q3 |
654 | VBS24537 | 1240-MZ-A-MozF_1319 | Lizette Koekemoer | Mozambique | Motinho | 2015 | 8 | -10.851 | 40.594 | F | ... | Cabo Delgado | MZ-P | Palma | funestus | MZ-P_fune_2015 | MZ-P_fune_2015_08 | MZ-P_fune_2015_Q3 | MZ-P_Palma_fune_2015 | MZ-P_Palma_fune_2015_08 | MZ-P_Palma_fune_2015_Q3 |
655 | VBS24539 | 1240-MZ-A-MozF_1323 | Lizette Koekemoer | Mozambique | Motinho | 2015 | 8 | -10.851 | 40.594 | F | ... | Cabo Delgado | MZ-P | Palma | funestus | MZ-P_fune_2015 | MZ-P_fune_2015_08 | MZ-P_fune_2015_Q3 | MZ-P_Palma_fune_2015 | MZ-P_Palma_fune_2015_08 | MZ-P_Palma_fune_2015_Q3 |
656 rows × 45 columns
We can then group these samples according to country and year of collection, sample set, and taxon.
df_samples.groupby(["country", "year", "sample_set", "taxon"]).size()
country year sample_set taxon
Benin 2014 1231-VO-MULTI-WONDJI-VMF00043 funestus 37
Cameroon 2014 1231-VO-MULTI-WONDJI-VMF00043 funestus 45
Central African Republic 2016 1230-VO-GA-CF-AYALA-VMF00045 funestus 10
Democratic Republic of the Congo 2015 1231-VO-MULTI-WONDJI-VMF00043 funestus 34
2017 1240-VO-CD-KOEKEMOER-VMF00099 funestus 43
Gabon 2017 1230-VO-GA-CF-AYALA-VMF00045 funestus 40
Ghana 2014 1231-VO-MULTI-WONDJI-VMF00043 funestus 31
2017 1229-VO-GH-DADZIE-VMF00095 funestus 36
Kenya 2014 1232-VO-KE-OCHOMO-VMF00044 funestus 37
2016 1232-VO-KE-OCHOMO-VMF00044 funestus 44
Malawi 2014 1231-VO-MULTI-WONDJI-VMF00043 funestus 18
Mozambique 2015 1240-VO-MZ-KOEKEMOER-VMF00101 funestus 40
2016 1231-VO-MULTI-WONDJI-VMF00043 funestus 22
2018 1235-VO-MZ-PAAIJMANS-VMF00094 funestus 76
Nigeria 2015 1231-VO-MULTI-WONDJI-VMF00043 funestus 41
Tanzania 2017 1236-VO-TZ-OKUMU-VMF00090 funestus 10
Uganda 2014 1231-VO-MULTI-WONDJI-VMF00043 funestus 49
Zambia 2016 1231-VO-MULTI-WONDJI-VMF00043 funestus 43
dtype: int64
As we can see, all samples were collected between 2014 and 2018 and all samples were identified as An. funestus. We will thus not be able to look at other members of the complex (e.g., An. vaneedeni). We can also see that most countries are only represented by one sample set.
We can represent the provenance of the samples in a pivot table to better see the temporal distribution of samples.
pivot_location_year = (
df_samples
.pivot_table(
index=["country", "location", "latitude", "longitude"],
columns=["year"],
values="sample_id",
aggfunc="count",
fill_value=0,
)
)
pivot_location_year
year | 2014 | 2015 | 2016 | 2017 | 2018 | |||
---|---|---|---|---|---|---|---|---|
country | location | latitude | longitude | |||||
Benin | Kpome | 6.383 | 2.200 | 37 | 0 | 0 | 0 | 0 |
Cameroon | Mibellon | 6.083 | 11.500 | 45 | 0 | 0 | 0 | 0 |
Central African Republic | Bangui | 4.377 | 18.608 | 0 | 0 | 10 | 0 | 0 |
Democratic Republic of the Congo | Kinshasa | -4.327 | 15.313 | 0 | 34 | 0 | 0 | 0 |
Watsa Moke | 3.094 | 29.548 | 0 | 0 | 0 | 43 | 0 | |
Gabon | Benguia | -1.633 | 13.492 | 0 | 0 | 0 | 40 | 0 |
Ghana | Dimabi | 9.420 | -1.083 | 0 | 0 | 0 | 6 | 0 |
Gbullung | 9.488 | -1.009 | 0 | 0 | 0 | 19 | 0 | |
Gupanarigu | 9.497 | -0.952 | 0 | 0 | 0 | 10 | 0 | |
Obuasi | 5.933 | -1.617 | 31 | 0 | 0 | 0 | 0 | |
Woribogu | 8.869 | 0.321 | 0 | 0 | 0 | 1 | 0 | |
Kenya | Ahero | -0.174 | 34.920 | 37 | 0 | 0 | 0 | 0 |
Awendo | -0.901 | 34.533 | 0 | 0 | 8 | 0 | 0 | |
Nyamilu | -1.074 | 34.391 | 0 | 0 | 1 | 0 | 0 | |
Sumba | -0.686 | 34.596 | 0 | 0 | 9 | 0 | 0 | |
Uradi | 0.980 | 34.543 | 0 | 0 | 21 | 0 | 0 | |
Uriri | -0.952 | 34.513 | 0 | 0 | 5 | 0 | 0 | |
Malawi | Chikwawa | -16.017 | 34.789 | 18 | 0 | 0 | 0 | 0 |
Mozambique | Motinho | -10.851 | 40.594 | 0 | 40 | 0 | 0 | 0 |
Palmeira | -25.255 | 32.873 | 0 | 0 | 22 | 0 | 0 | |
Palmeiras | -25.265 | 32.877 | 0 | 0 | 0 | 0 | 76 | |
Nigeria | Akaka Remo | 6.950 | 3.717 | 0 | 41 | 0 | 0 | 0 |
Tanzania | Minepa Village | -8.273 | 36.681 | 0 | 0 | 0 | 10 | 0 |
Uganda | Tororo | 0.750 | 34.083 | 49 | 0 | 0 | 0 | 0 |
Zambia | Katete | -14.183 | 31.867 | 0 | 0 | 43 | 0 | 0 |
Again, we can observe that most countries are only represented by a single location.
Finally, we can represent the origin of these samples on a map for a more visual interpretation of their distribution.
# create a map
m = ipyleaflet.Map(
basemap=ipyleaflet.basemaps.OpenStreetMap.Mapnik,
center=[0, 20],
zoom=3,
)
# add markers for sampling locations
for row in pivot_location_year.reset_index().itertuples():
title = f"{row.location}, {row.country} ({row.latitude:.3f}, {row.longitude:.3f})"
for i, y in enumerate(pivot_location_year.columns):
r = list(pivot_location_year.loc[(row.country, row.location, row.latitude, row.longitude)])
if r[i] != 0:
title += "\n" + str(r[i]) + " samples in " + str(y)
marker = ipyleaflet.Marker(
location=(row.latitude, row.longitude),
draggable=False,
title=title,
)
m.add_layer(marker)
# add a scale bar
m.add_control(ipyleaflet.ScaleControl(position="bottomleft"))
# display the map
m
Congratulations on reaching the end of this notebook. You should now be able to start analysing Anopheles funestus data using Af1.0.
Sinka, M.E., Bangs, M.J., Manguin, S. et al. A global map of dominant malaria vectors. Parasites Vectors 5, 69 (2012). https://doi.org/10.1186/1756-3305-5-69
Msugupakulya, B.J., Urio, N.H., Jumanne, M. et al. Changes in contributions of different Anopheles vector species to malaria transmission in east and southern Africa from 2000 to 2022. Parasites Vectors 16, 408 (2023). https://doi.org/10.1186/s13071-023-06019-1
McCann RS, Ochomo E, Bayoh MN, Vulule JM, Hamel MJ, Gimnig JE, Hawley WA, Walker ED. Reemergence of Anopheles funestus as a vector of Plasmodium falciparum in western Kenya after long-term implementation of insecticide-treated bed nets. Am J Trop Med Hyg. 2014 Apr;90(4):597-604. doi: 10.4269/ajtmh.13-0614. Epub 2014 Jan 27. PMID: 24470562; PMCID: PMC3973499.
Ntabaliba W, Vavassori L, Stica C, Makungwa N, Odufuwa OG, Swai JK, Lekundayo R, Moore S. Life expectancy of Anopheles funestus is double that of Anopheles arabiensis in southeast Tanzania based on mark-release-recapture method. Sci Rep. 2023 Sep 22;13(1):15775. doi: 10.1038/s41598-023-42761-3. PMID: 37737323; PMCID: PMC10516982.
Ogola EO, Fillinger U, Ondiba IM, Villinger J, Masiga DK, Torto B, Tchouassi DP. Insights into malaria transmission among Anopheles funestus mosquitoes, Kenya. Parasit Vectors. 2018 Nov 6;11(1):577. doi: 10.1186/s13071-018-3171-3. PMID: 30400976; PMCID: PMC6219006.
Djouaka R, Akoton R, Tchigossou GM, Atoyebi SM, Irving H, Kusimo MO, Djegbe I, Riveron JM, Tossou E, Yessoufou A, Wondji CS. Mapping the distribution of Anopheles funestus across Benin highlights a sharp contrast of susceptibility to insecticides and infection rate to Plasmodium between southern and northern populations. Wellcome Open Res. 2016 Dec 14;1:28. doi: 10.12688/wellcomeopenres.10213.2. PMID: 28191507; PMCID: PMC5300096.
Dia I., Wamdaogo M., Ayala D., “Advances and Perspectives in the Study of the Malaria Mosquito Anopheles funestus” in Anopheles Mosquitoes - New Insights into Malaria Vectors, Manguin S., Ed. (InTech, 2013).
Moiroux N, Gomez MB, Pennetier C, Elanga E, Djènontin A, Chandre F, Djègbé I, Guis H, Corbel V. Changes in Anopheles funestus biting behavior following universal coverage of long-lasting insecticidal nets in Benin. J Infect Dis. 2012 Nov 15;206(10):1622-9. doi: 10.1093/infdis/jis565. Epub 2012 Sep 10. PMID: 22966127.
Sougoufara S, Diédhiou SM, Doucouré S, Diagne N, Sembène PM, Harry M, Trape JF, Sokhna C, Ndiath MO. Biting by Anopheles funestus in broad daylight after use of long-lasting insecticidal nets: a new challenge to malaria elimination. Malar J. 2014 Mar 28;13:125. doi: 10.1186/1475-2875-13-125. PMID: 24678587; PMCID: PMC3973838.
Omondi S, Kosgei J, Musula G, Muchoki M, Abong’o B, Agumba S, Ogwang C, McDermott DP, Donnelly MJ, Staedke SG, Schultz J, Gutman JR, Gimnig JE, Ochomo E. Late morning biting behaviour of Anopheles funestus is a risk factor for transmission in schools in Siaya, western Kenya. Malar J. 2023 Nov 30;22(1):366. doi: 10.1186/s12936-023-04806-w. PMID: 38037026; PMCID: PMC10691009.
Nambunga IH, Ngowo HS, Mapua SA, Hape EE, Msugupakulya BJ, Msaky DS, Mhumbira NT, Mchwembo KR, Tamayamali GZ, Mlembe SV, Njalambaha RM, Lwetoijera DW, Finda MF, Govella NJ, Matoke-Muhia D, Kaindoa EW, Okumu FO. Aquatic habitats of the malaria vector Anopheles funestus in rural south-eastern Tanzania. Malar J. 2020 Jun 23;19(1):219. doi: 10.1186/s12936-020-03295-5. PMID: 32576200; PMCID: PMC7310514.
Jones, C.M., Lee, Y., Kitchen, A. et al. Complete Anopheles funestus mitogenomes reveal an ancient history of mitochondrial lineages and their distribution in southern and central Africa. Sci Rep 8, 9054 (2018). https://doi.org/10.1038/s41598-018-27092-y
The origin of our species. National History Museum, London, UK. https://www.nhm.ac.uk/discover/the-origin-of-our-species.html
Ayala D, Akone-Ella O, Kengne P, Johnson H, Heaton H, Collins J, Krasheninnikova K, Pelan S, Pointon DL, Sims Y, Torrance J, Tracey A, Uliano-Silva M, von Wyschetzki K, Wood J; DNA Pipelines collective; McCarthy S, Neafsey D, Makunin A, Lawniczak M. The genome sequence of the malaria mosquito, Anopheles funestus, Giles, 1900. Wellcome Open Res. 2023 Mar 27;7:287. doi: 10.12688/wellcomeopenres.18445.2. PMID: 36874567; PMCID: PMC9975407.