Helminth infection and malaria remain major causes of ill-health in the tropics and subtropics. There are several shared risk factors (e.g., poverty), and hence, helminth infection and malaria overlap geographically and temporally. However, the extent and consequences of helminth- Plasmodium co-infection at different spatial scales are poorly understood.
This study was conducted in 92 schools across Côte d’Ivoire during the dry season, from November 2011 to February 2012. School children provided blood samples for detection of Plasmodium infection, stool samples for diagnosis of soil-transmitted helminth (STH) and Schistosoma mansoni infections, and urine samples for appraisal of Schistosoma haematobium infection. A questionnaire was administered to obtain demographic, socioeconomic, and behavioral data. Multinomial regression models were utilized to determine risk factors for STH- Plasmodium and Schistosoma-Plasmodium co-infection.
Complete parasitological and questionnaire data were available for 5,104 children aged 5-16 years. 26.2% of the children were infected with any helminth species, whilst the prevalence of Plasmodium infection was 63.3%. STH- Plasmodium co-infection was detected in 13.5% and Schistosoma-Plasmodium in 5.6% of the children. Multinomial regression analysis revealed that boys, children aged 10 years and above, and activities involving close contact to water were significantly and positively associated with STH- Plasmodium co-infection. Boys, wells as source of drinking water, and water contact were significantly and positively associated with Schistosoma-Plasmodium co-infection. Access to latrines, deworming, higher socioeconomic status, and living in urban settings were negatively associated with STH- Plasmodium co-infection; whilst use of deworming drugs and access to modern latrines were negatively associated with Schistosoma-Plasmodium co-infection.
More than 60% of the school children surveyed were infected with Plasmodium across Côte d’Ivoire, and about one out of six had a helminth- Plasmodium co-infection. Our findings provide a rationale to combine control interventions that simultaneously aim at helminthiases and malaria.
Parasitic worm infection and malaria are common in tropical and subtropical countries and many people suffer from multiple parasite infections concurrently. It is important to gain knowledge on co-endemicity patterns because such information can help to design and prioritize interventions and control strategies focusing on areas at highest risk of co-infection. We carried out the first national survey on parasitic worm and Plasmodium infection among children in 92 schools all over Côte d’Ivoire. Questionnaires were administered to determine the children's socioeconomic status and infection-related risk factors. We found an overall prevalence of Plasmodium infection of 63.3%. Hookworm was the most common parasitic worm infection (17.2%), whereas schistosome worms were more focally distributed (9.1%). One out of six children was co-infected with parasitic worms and Plasmodium. Children from the poorest households living in rural areas were at highest risk of co-infection. The lack of sanitation facilities, and activities like swimming or fishing in nearby rivers were found to be positively associated with multiple species parasite infection. Our study motivates the integration of combined intervention measures that concurrently target neglected tropical diseases and malaria in highly resource-constrained settings.
Malaria is still threatening the life of millions of people in sub-Saharan Africa, although control efforts have decreased mortality attributable to this disease by 30% between 2004 and 2010 [1]. Malaria often overlaps with parasitic worm infections, such as soil-transmitted helminths (STHs) and schistosomes. Along with HIV/AIDS, tuberculosis, and anemia, malaria and helminthiases are the main causes of years lived with disability (YLDs) in sub-Saharan Africa [2], and negatively affect the social and economic development [3], [4].
Current malaria control tools and strategies consist of prompt diagnosis and treatment with artemisinin-based combination therapy (ACT), use of long-lasting insecticidal nets (LLINs), indoor residual spraying (IRS), and strengthening of health systems, among others [5]. For the control of helminthiases, preventive chemotherapy is the current global strategy of choice [6]. Whenever resources allow, other interventions, including information, education, and communication (IEC), provision of improved sanitation, and clean water are being advocated [7]– [9]. Combining control efforts targeting multiple diseases (e.g., malaria and helminthiases), might be more cost-effective than targeting single diseases, given that co-infections might have additive or even multiplicative effects on clinical outcomes such as anemia [10].
Helminth and Plasmodium infections are likely to proliferate under favorable climatic and environmental conditions, particularly among the poorest communities that lack essential facilities, such as clean water and sanitation [9], [11]. Whilst malaria is governed by climatic factors linked to vector ecology and parasite development [12], schistosomiasis is intimately connected with human-water contacts and the presence of infected intermediate host snails [13]. In Tanzania, for example, the risk of malaria-schistosomiasis co-infection has been shown to be higher for children living in agro-ecosystems that are characterized by irrigated rice farming [14]. In Cameroon, Plasmodium-helminth co-infection was associated with altitude [15]. It is important to understand how exactly climatic, environmental, and socioeconomic factors influence the distribution of single and multiple species parasite infections, since this can help to better target control approaches at different spatial scales.
In Côte d’Ivoire, helminth infection and malaria remain important public health issues. Considerable efforts are underway to enhance control interventions after the socio-political crisis that occurred between 2002 and 2011, which deteriorated the health and education systems [16], [17]. For example, LLINs were distributed to the most vulnerable population groups, free of charge, whilst ACT and rapid diagnostic tests (RDTs) were made available by the national malaria control program and non-governmental organizations. Furthermore, anthelmintic treatment was provided to preschoolers and school-aged children in conjunction with national vaccination campaigns and school-based treatment campaigns.
The aim of this study was to deepen the understanding of helminth- Plasmodium co-infection at the national level in Côte d’Ivoire. Hence, a country-wide cross-sectional survey was carried out during the dry season from November 2011 to February 2012. Results are discussed in the context of spatial targeting of control interventions that are aimed at multiple parasite infection simultaneously.
This study received clearance from the ethics committees of Basel (EKBB; reference no. 30/11), and Côte d’Ivoire (reference no. 09-2011/MSHP/CNER-P). Additionally, permission to carry out the study was sought from the Ministry of National Education. Before visiting any school, the district health and education authorities, school directors, and teachers were informed about the aim and procedures of the study. Written informed consent was obtained from the parents/guardians of children, whereas children assented orally. Participation was voluntary, and hence, withdrawal was possible anytime without further obligation. Parasitological and questionnaire data were coded and treated confidentially.
All children were treated free of charge with a single oral dose of albendazole (400 mg). Children with a positive RDT and clinical signs of malaria were given ACT, adhering to standard procedures in Côte d’Ivoire. Children with Schistosoma infection were treated with a single oral dose of praziquantel (40 mg/kg). In schools where the observed Schistosoma point prevalence exceeded 25%, all children were given praziquantel.
Côte d’Ivoire is located in West Africa, covers an area of 322,462 km 2, and is situated between latitudes 4 o30′ and 10 o30′ North, and longitudes 2 o30′ and 8 o30′ West. In 2011, the population of Côte d’Ivoire was estimated at 21 million. Data from satellite imagery (i.e., rainfall, elevation, normalized difference vegetation index, land cover, and maximum land surface temperature) were utilized to delineate different ecozones. In brief, the data were imported in ERDAS Imagine 9.3 software and an iterative self-organizing data analysis technique (ISODATA) was used on the environment factors to create different ecozones based on between-class similarities [18]. The three resulting ecozones were: (i) the South and western parts with abundant rainfall and forest as dominant vegetation, and with mountainous landscape in the West; (ii) the northern part with less rainfall and savannah as vegetation; and (iii) the northwestern part characterized by savannah but more rainfall than the North ( Figure 1).
We designed a country-wide cross-sectional survey using the lattice plus close pairs design [19]. Our aim was to select 100 schools across the country. It was determined whether there was a primary school comprising a minimum of 60 children attending grades 3 to 5. Ninety-four of the 100 selected schools met this criterion, hence were eligible to participate. The sample size per school was delimited to 60 children, which exceeds the minimum sample size of 50, as recommended by the World Health Organization (WHO) for collection of baseline information pertaining to helminth prevalence and intensity in the school-aged population within large-scale surveys [20].
District education officers were informed about the aims and procedures of the study and which schools had been selected in their district. School directors and teachers were contacted and invited to inform parents or legal guardians of 60 children attending grades 3 and 4. If there were less than 60 children in grades 3 and 4, additional children were selected from grade 5 to reach the intended sample size of 60 children per school.
The survey team visited one school per day. Geographical coordinates of schools were recorded using a hand-held global positioning system (GPS) receiver (Garmin Sery GPS MAP 62; Olathe, United States of America). Children were informed about the objectives and procedures of the study. Teachers were invited to prepare class list of those children whose parents/guardians had provided written informed consent. The lists contained the children's name, age, sex, and school grade. All children were subjected to parasitological examination and a questionnaire. Unique identification numbers were assigned to participating children.
Two plastic containers (25 ml and 10 ml) were distributed to all participants, labeled with unique identification numbers. Children were asked to return the first container with a portion of their fresh morning stool and the second container with a urine sample. Additionally, a finger prick blood sample was taken for Plasmodium falciparum examination, using an RDT (ICT ML01 malaria Pf kit; ICT Diagnostics, Cape Town, South Africa). Thick and thin blood films were prepared on microscope slides, air-dried, and transferred to nearby laboratories.
Stool, urine and blood samples were processed on the day of collection. In brief, for each stool sample, duplicate Kato-Katz thick smears, using 41.7 mg plastic templates, were prepared. After a clearing time of 30–45 min, the Kato-Katz thick smears were examined under a microscope, and the number of eggs of Schistosoma mansoni, hookworm, Ascaris lumbricoides, Trichuris trichiura, and any other helminths were counted and recorded for each species separately. Urine samples were screened for microhematuria, using reagent strips (Hemastix; Siemens Healthcare Diagnostics GmbH, Eschborn, Germany) as a proxy for S. haematobium infection [21]. Reagent strips were dipped into the urine sample and, after 1 min, the color change was recorded following the manufacturer's instruction. The presence of blood in urine was denoted by a change in color from yellow to yellow mixed with green spots, green, or darkish green. Blood films were stained with 10% Giemsa and Plasmodium species identified under a microscope. Parasitemia was determined by experienced laboratory technicians, counting the number of Plasmodium parasites per 200 white blood cells (WBC). If less than 10 parasites were recorded, the reading was continued up to 500 WBC. Counts were converted to number of parasites per μl of blood, assuming a WBC count of 8,000 per μl of blood.
For quality control, 10% of the Kato-Katz thick smears and Giemsa-stained blood films were randomly selected and re-examined by a senior laboratory technician. In case of discordant results (e.g., negative vs. positive readings; parasitemia or helminth egg counts differing by more than 10%), slides were reexamined by a third technician and results discussed until agreement was reached.
A questionnaire was administered in order to derive a household wealth index, and to identify potential risk factors of parasite infections, as done previously [22]. In brief, for appraisal of household's socioeconomic status, we employed an asset-based approach on ownership (i.e., bicycle, car, cooker, DVD/VCD, fridge, motorbike, phone/mobile phone, radio, TV set, and fan) and housing characteristics (access to the power grid and wall type). Presence of latrine was noted, distinguishing between modern latrines (made of cement and possibly flush) and traditional latrines (made with local materials, such as clay and wood). Furthermore, questions pertaining to typical habits, such as wearing shoes, washing hands after defecation, drinking water source, sleeping under a bed net, use of insecticides, and water-contact patterns (i.e., swimming or fishing) were included in the questionnaire. Children were also asked whether they had received anthelmintic treatment or antimalarials (traditional or modern treatment) in the past 2 weeks. Moreover, the questionnaire included eight diseases and eight symptoms and was pre-tested in a school not involved in the current survey. Teachers were trained and they administered the questionnaire together with the team.
Data were double-entered and cross-checked in EpiInfo version 3.5.3 (Center for Diseases Control and Prevention; Atlanta, United States of America) and analyzed in STATA version 12 (STATA Corp.; College Station, United States of America).
Geographical data were displayed in ArcView GIS version 9.0 (Environmental Systems Research Institute Inc.; Redlands, United States of America). Children were subdivided into two age groups (5–9 and 10–16 years). For helminths, an infection was defined as the presence of at least one parasite egg on at least one of the two Kato-Katz thick smears. Helminth infection intensities were determined by multiplying the sum of the two Kato-Katz readings with a factor of 12 and expressed as eggs per 1 g of stool (EPG). Infection intensities were stratified into light, moderate, and heavy, according to WHO guidelines [23] The cut-offs to distinguish between light and moderate and between moderate and heavy infections were 100 and 400 EPG for S. mansoni, 2,000 and 4,000 for hookworm; 5,000 and 50,000 for A. lumbricoides, and 1,000 and 10,000 for T. trichiura. Microhematuria was used as proxy for S. haematobium infection. As a positive test, we considered those reagent strips that showed a distinct color change from yellow to green according to the manufacturer's instructions. Trace results were considered as S. haematobium-negative. Plasmodium spp. infection was specified on the basis of RDT and blood film examination. A child was considered positive for P. falciparum when blood films and the RDT were positive. P. ovale and P. malaria were assessed only through thick and thin blood films. Infection intensity was stratified into four categories, namely (i) 1–50; (ii) 51–500; (iii) 501–5,000; and (iv) >5,000 parasites/μl of blood [24].
The socioeconomic status of a child was determined using the aforementioned asset-based approach at the household level. Asset weights were obtained using principal component analysis (PCA) [25]. For the covariate ecozone, we only considered two categories, the area of the third ecozone being very small (only seven schools were located there). The two ecozones considered were (i) the savannah-like ecozone in the North and (ii) the forest-like ecozone in the South.
The prevalence of single species parasite infection and intensity (i.e., specific infection regardless of other infections) for helminths and Plasmodium were tested for associations with sex and age group, using logistic and negative binomial regression models, respectively. We accounted for cluster effects at the unit of the school. Associations between parasite species were assessed using multivariate logistic regression models on a single parasite species/parasite group with all other parasite species as covariates. Cluster effects were introduced into these models and a stepwise backward elimination process was adopted to include associated covariates at a significance level of 0.2. Based on epidemiological and control program considerations, we grouped investigated parasite species into STHs (i.e., hookworm, A. lumbricoides, and T. trichiura), Schistosoma (i.e., S. mansoni and microhematuria), and Plasmodium spp. for further STH -Plasmodium and Schistosoma- Plasmodium co-infection analysis. For this purpose, two new outcome variables were created with four categories; (i) co-infection with STHs or Schistosoma and Plasmodium; (ii) mono-infection with STHs or Schistosoma; (iii) mono-infection with Plasmodium; and (iv) no infection. To analyze co-infection patterns of STH- Plasmodium or Schistosoma- Plasmodium, we performed multinomial regressions that accounted for cluster effect at the unit of the school. We used a stepwise backward elimination process to identify risk factors associated with mono- and co-infections. Risk factors were accepted at a significance level of 0.2.
Figure 1 shows the survey locations across Côte d’Ivoire. From the 94 schools randomly selected, one refused to participate. Overall, 5,491 children were invited to participate, 4,252 (77.4%) of whom lived in rural areas and the remaining 1,239 (22.6%) in urban settings. The majority of children (n = 5,356, 97.5%) had written informed consent from their parents/guardians. Children from one school were not included in the analysis (n = 62), as they underwent mass deworming 2 weeks before our team passed. A total of 5,232 (95.3%) children had complete parasitological data. Among them, 128 children lacked questionnaire data.
Single parasite infection prevalence data and associations with sex and age groups are summarized in Table 1. Among the 5,246 children who provided stool samples, the prevalence of helminth infections were as follows: hookworm, 17.2% (range 0–60.0% at the unit of the school); A. lumbricoides, 1.9% (range: 0–37.0%), T. trichiura 1.3% (range: 0–22.2%); and S. mansoni 3.7% (range: 0–41.1%). With regard to S. mansoni infection, we found highest prevalences in the western part of the country. Among the 5,282 children who provided urine samples, microhematuria was detected in 5.7% of the children (range: 0–79.6%) with the highest rates in the south and south-eastern part of the country.
| left11Parasite | left11Covariate | left11Covariate category | left11N | left11Positive (%) | left11OR (95% CI) | left11P-value |
| left11Hookworm | left11 | left11 | left115,246 | left11903 (17.2) | left11 | left11 |
| left11 | left11Sex | left11Girls | left112,444 | left11271 (11.1) | left111.0 | left11 |
| left11 | left11 | left11Boys | left112,802 | left11632 (22.6) | left11 2.3 (1.9, 2.9) | left11 <0.001 |
| left11 | left11Age group | left115–9 years | left112,304 | left11261 (11.3) | left111.0 | left11 |
| left11 | left11 | left1110–16 years | left112,942 | left11642 (21.8) | left11 2.2 (1.8, 2.7) | left11 <0.001 |
| left11 A. lumbricoides | left11 | left11 | left115,246 | left1197 (1.9) | left11 | left11 |
| left11 | left11Sex | left11Girls | left112,444 | left1144 (1.8) | left111.0 | left11 |
| left11 | left11 | left11Boys | left112,802 | left1153 (1.9) | left111.1 (0.7, 1.6) | left110.823 |
| left11 | left11Age group | left115–9 years | left112,304 | left1132 (1.4) | left111.0 | left11 |
| left11 | left11 | left1110–16 years | left112,942 | left1165 (2.2) | left11 1.6 (1.1, 2.3) | left11 0.013 |
| left11 T. trichiura | left11 | left11 | left115,246 | left1166 (1.3) | left11 | left11 |
| left11 | left11Sex | left11Girls | left112,444 | left1128 (1.2) | left111.0 | left11 |
| left11 | left11 | left11Boys | left112,802 | left1138 (1.4) | left111.2 (0.7, 1.9) | left110.492 |
| left11 | left11Age group | left115–9 years | left112,304 | left1121 (0.9) | left111.0 | left11 |
| left11 | left11 | left1110–16 years | left112,942 | left1145 (1.5) | left111.7 (0.9, 3.0) | left110.080 |
| left11 S. mansoni | left11 | left11 | left115,246 | left11193 (3.7) | left11 | left11 |
| left11 | left11Sex | left11Girls | left112,444 | left1147 (1.9) | left111.0 | left11 |
| left11 | left11 | left11Boys | left112,802 | left11146 (5.2) | left11 2.8 (1.8, 4.5) | left11 <0.001 |
| left11 | left11Age group | left115–9 years | left112,304 | left1153 (2.3) | left111.0 | left11 |
| left11 | left11 | left1110–16 years | left112,942 | left11140 (4.8) | left11 2.1 (1.5, 2.9) | left11 <0.001 |
| left11 S. haematobium | left11 | left11 | left115282 | left11299 (5.7) | left11 | left11 |
| left11 | left11Sex | left11Girls | left112,460 | left11137 (5.6) | left111.0 | left11 |
| left11 | left11 | left11Boys | left112,822 | left11162 (5.8) | left111.0 (0.8, 1.3) | left110.793 |
| left11 | left11Age group | left115–9 years | left112,327 | left11115 (4.9) | left111.0 | left11 |
| left11 | left11 | left1110–16 years | left112,955 | left11184 (6.2) | left111.3 (0.9, 1.8) | left110.161 |
| left11 P. falciparum | left11 | left11 | left115,285 | left113,270 (61.9) | left11 | left11 |
| left11 | left11Sex | left11Girls | left112,461 | left111,439 (58.5) | left111.0 | left11 |
| left11 | left11 | left11Boys | left112,824 | left111,831 (64.8) | left11 1.3 (1.2, 1.5) | left11 <0.001 |
| left11 | left11Age group | left115–9 years | left112,327 | left111,433 (61.6) | left111.0 | left11 |
| left11 | left11 | left1110–16 years | left112,958 | left111,837 (62.1) | left111.0 (0.9, 1.2) | left110.771 |
| left11 P. malariae | left11 | left11 | left115,285 | left11198 (3.7) | left11 | left11 |
| left11 | left11Sex | left11Girls | left112,461 | left1188 (3.6) | left111.0 | left11 |
| left11 | left11 | left11Boys | left112,824 | left11110 (3.9) | left111.1 (0.8, 1.5) | left110.557 |
| left11 | left11Age group | left115–9 years | left112,327 | left1199 (4.3) | left111.0 | left11 |
| left11 | left11 | left1110–16 years | left112,958 | left1199 (3.3) | left110.8 (0.6, 1.1) | left110.121 |
| left11 P. ovale | left11 | left11 | left115,285 | left1116 (0.3) | left11 | left11 |
| left11 | left11Sex | left11Girls | left112,461 | left117 (0.3) | left111.0 | left11 |
| left11 | left11 | left11Boys | left112,824 | left119 (0.3) | left111.1 (0.5, 2.5) | left110.782 |
| left11 | left11Age group | left115–9 years | left112,327 | left118 (0.3) | left111.0 | left11 |
| left11 | left11 | left1110–16 years | left112,958 | left118 (0.3) | left110.8 (0.4, 1.7) | left110.554 |
Parasite infection prevalences stem from a national survey conducted in Côte d’Ivoire between November 2011 and February 2012. Children from 92 different schools were parasitologically tested. The prevalences are given in percentages. Associations were assessed using bivariate logistic regression models that account for cluster effects at the unit of the school. Statistically significant (p<0.05) odds ratios are highlighted in bold.
N = number of children.
OR = odds ratio.
CI = confidence interval.
Boys had a significantly higher infection prevalence with hookworm compared to girls (22.6% vs. 11.1%, odds ratio (OR) = 2.3; p<0.001). Children aged 10 years and above showed a considerably higher hookworm infection prevalence than their younger counterparts (21.8% vs. 11.3%, OR = 2.2; p<0.001). For A. lumbricoides, we found that older children were significantly more infected compared to the younger age group (2.2% vs. 1.4%; OR = 1.6; p = 0.013). For T. trichiura, there were no statistically significant differences between sex and age groups. Boys were more often infected with S. mansoni than girls (5.2% vs. 1.9%; OR = 2.8; p<0.001) and older children had a 2-fold higher prevalence than their younger counterparts (4.8% vs. 2.3%; OR = 2.1; p<0.001). For S. haematobium, proxied by the presence of microhematuria, no statistically significant difference was found between sex and the two age groups. Age-prevalence curves of STHs and Schistosoma are displayed in Figure 3.
Data were obtained from a national cross-sectional survey in 92 schools in Côte d’Ivoire between November 2011 and February 2012.
Plasmodium spp. was the most frequent infection with an overall prevalence of 63.3%. P. falciparum was the predominant species (61.9%). At the unit of the school, the prevalence ranged from 13.1% to 88.3%. Boys showed a somewhat higher infection prevalence than girls (64.8% vs. 58.5%; OR = 1.3; p<0.001). No statistically significant difference was found among the two age groups (61.6% vs. 62.1%; OR = 1.0; p = 0.897). The age-prevalence curve is shown in Figure 3. P. malariae and P. ovale showed low prevalences; 3.7% (range at the unit of school: 0–15.0%) and 0.3% (range: 0–3.3%), respectively. No statistically significant differences were found between sex and age group for these two Plasmodium species. 2.7% of the children were tested positive for mixed Plasmodium species infection.
Most helminth infections were of light intensity ( Table 2). In fact, 98.5%, 96.8%, 85.6%, and 49.7% of T. trichiura, hookworm, A. lumbricoides, and S. mansoni infections, respectively, were classified as light. There was no statistically significant difference in helminth infection intensities between sex and age groups for any of the helminth species encountered, as assessed by negative binomial regression models on fecal egg counts.
| left11Parasites | left11Covariate | left11Covariate category | left11Mean infection intensity (EPG) | 4left1Infection intensity categories N (%) | left11IRR (95% CI) | left11P-value | |||
| left11 | left11 | left11 | left11 | left11Light | left11Moderate | left11Heavy | center11 | left11 | left11 |
| left11Hookworm | left11 | left11 | left11388 | left11874 (96.8) | left1118 (2.0) | left1111 (1.2) | left11 | left11 | left11 |
| left11 | left11Sex | left11Girls | left11371 | left11264 (97.4) | left113 (1.1) | left114 (1.5) | left11 | left111.0 | left11 |
| left11 | left11 | left11Boys | left11395 | left11610 (96.5) | left1115 (2.4) | left117 (1.1) | left11 | left111.1 (0.7, 1.6) | left110.777 |
| left11 | left11Age group | left115–9 years | left11365 | left11253 (97.0) | left114 (1.5) | left114 (1.5) | left11 | left111.0 | left11 |
| left11 | left11 | left1110–16 years | left11398 | left11621 (96.6) | left1114 (2.2) | left117 (1.1) | left11 | left111.1 (0.8, 1.6) | left110.639 |
| left11 A. lumbricoides | left11 | left11 | left112,060 | left1183 (85.6) | left1114 (14.4) | left110 (0.0) | left11 | left11 | left11 |
| left11 | left11Sex | left11Girls | left111,815 | left1138 (86.4) | left116 (13.6) | left110 (0.0) | left11 | left111.0 | left11 |
| left11 | left11 | left11Boys | left112,264 | left1145 (84.9) | left118 (15.1) | left110 (0.0) | left11 | left111.2 (0.8, 1.8) | left110.264 |
| left11 | left11Age group | left115–9 years | left111,787 | left1128 (87.5) | left114 (12.5) | left110 (0.0) | left11 | left111.0 | left11 |
| left11 | left11 | left1110–16 years | left112,195 | left1155 (84.6) | left1110 (15.4) | left110 (0.0) | left11 | left111.2 (0.7, 2.0) | left110.425 |
| left11 T. trichiura | left11 | left11 | left11174 | left1165 (98.5) | left111 (1.5) | left110 (0.0) | left11 | left11 | left11 |
| left11 | left11Sex | left11Girls | left11114 | left1128 (100.0) | left110 (0.0) | left110 (0.0) | left11 | left111.0 | left11 |
| left11 | left11 | left11Boys | left11219 | left1137 (97.4) | left111 (2.6) | left110 (0.0) | left11 | left111.9 (0.8, 4.9) | left110.165 |
| left11 | left11Age group | left115–9 years | left11274 | left1120 (95.2) | left111 (4.8) | left110 (0.0) | left11 | left111.0 | left11 |
| left11 | left11 | left1110–16 years | left11127 | left1145 (100.0) | left110 (0.0) | left110 (0.0) | left11 | left110.5 (0.1, 1.7) | left110.251 |
| left11 S. mansoni | left11 | left11 | left11273 | left1196 (49.7) | left1165 (33.7) | left1132 (16.6) | left11 | left11 | left11 |
| left11 | left11Sex | left11Girls | left11285 | left1124 (51.0) | left1113 (27.7) | left1110 (21.3) | left11 | left111.0 | left11 |
| left11 | left11 | left11Boys | left11269 | left1172 (49.3) | left1152 (35.6) | left1122 (15.1) | left11 | left110.9 (0.6, 1.5) | left110.796 |
| left11 | left11Age group | left115–9 years | left11302 | left1131 (58.5) | left1114 (26.4) | left118 (15.1) | left11 | left111.0 | left11 |
| left11 | left11 | left1110–16 years | left11262 | left1165 (46.4) | left1151 (36.4) | left1124 (17.1) | left11 | left110.9 (0.5, 1.6) | left110.641 |
| left11Parasites | left11Covariate | left11Covariate category | left11Mean infection intensity (parasites/μl of blood) | 5left1Infection intensity categories N (%) | 2left1IRR (95% CI) | 2left1P-value | |||
| left11 | left11 | left11 | left11 | left111–50 | left1151–500 | left11501–5000 | 2left1>5000 | 2left1 | 2left1 |
| left11 P. falciparum | left11 | left11 | left111,613 | left11135 (4.1) | left111,317 (40.4) | left111,601 (49.1) | 2left1210 (6.4) | 2left1 | 2left1 |
| left11 | left11Sex | left11Girls | left111,684 | left1158 (4.0) | left11601 (41.8) | left11678 (47.2) | 2left1100 (7.0) | 2left11.0 | 2left1 |
| left11 | left11 | left11Boys | left111,557 | left1177 (4.2) | left11716 (39.2) | left11923 (50.6) | 2left1110 (6.0) | 2left10.9 (0.8, 1.1) | 2left10.288 |
| left11 | left11Age group | left115–9 years | left111,950 | left1142 (2.9) | left11497 (34.8) | left11777 (54.3) | 2left1114 (8.0) | 2left11.0 | 2left1 |
| left11 | left11 | left1110–16 years | left111,350 | left1193 (5.1) | left11820 (44.7) | left11824 (45.0) | 2left196 (5.2) | 2left1 0.7 (0.6, 0.8) | 2left1 <0.001 |
| left11 P. malariae | left11 | left11 | left111,196 | left115 (2.5) | left11106 (53.5) | left1178 (39.4) | 2left19 (4.6) | 2left1 | 2left1 |
| left11 | left11Sex | left11Girls | left111,374 | left113 (3.4) | left1148 (54.5) | left1132(36.4) | 2left15 (5.7) | 2left11.0 | 2left1 |
| left11 | left11 | left11Boys | left111,054 | left112 (1.8) | left1158 (52.7) | left1146 (41.8) | 2left14 (3.6) | 2left10.8 (0.4, 1.4) | 2left10.369 |
| left11 | left11Age group | left115–9 years | left111,494 | left110 (0.0) | left1147 (47.5) | left1146 (46.5) | left116 (6.1) | 2left11.0 | 3left1 |
| left11 | left11 | left1110–16 years | left11898 | left115 (5.1) | left1159 (59.6) | left1132 (32.3) | 2left13 (3.0) | 2left1 0.6 (0.4, 1.0) | 2left1 0.041 |
| left11 P. ovale | left11 | left11 | left11793 | left110 (0.0) | left119 (60.0) | left116 (40.0) | 2left10 (0.0) | 2left1 | 2left1 |
| left11 | left11Sex | left11Girls | left111,003 | left110 (0.0) | left114 (66.7) | left112 (33.3) | 2left10 (0.0) | 2left11.0 | 2left1 |
| left11 | left11 | left11Boys | left11653 | left110 (0.0) | left115 (55.6) | left114 (44.4) | 2left10 (0.0) | 2left10.7 (0.1, 3.3) | 2left10.607 |
| left11 | left11Age group | left115–9 years | left11976 | left110 (0.0) | left114 (50.0) | left114 (50.0) | 2left10 (0.0) | 2left11.0 | 2left1 |
| left11 | left11 | left1110–16 years | left11584 | left110 (0.0) | left115 (71.4) | left112 (28.6) | 2left10 (0.0) | 2left10.6 (0.1, 3.0) | 2left10.534 |
Parasite infection intensities stem from a national survey conducted in Côte d'Ivoire between November 2011 and February 2012. Children from 92 different survey locations were parasitologically tested. Infection intensity defined as the number of eggs per 1 g of stool (EPG) in the case of helminths infections and the number of parasites per μl of blood in the case of Plasmodium. Helminth infection intensity categories were defined according to World Health Organization guidelines [23] whereas cut-offs for Plasmodium parasitemia were applied according to previous studies conducted in the country [24]; both are reported as percentage of all positive cases of the respective parasite infection. Associations were assessed by negative binomial regression models on parasite counts, accounting for cluster effects at school unit. Statistically significant (p<0.05) IRR are highlighted in bold.
N = number of children.
IRR = incidence rate ratio.
CI = confidence interval.
The mean P. falciparum parasitemia among infected children was 1,613 parasites/μl of blood ( Table 2). Most of the P. falciparum infections showed a parasitemia not exceeding more than 5000 parasites/μl of blood (93.6%). There was no difference in parasitemia between males and females (incidence risk ratio (IRR) = 0.9; p = 0.288). Older children had a somewhat lower IRR of parasitemia than their younger counterparts (1,350 vs. 1,950 parasites/μl of blood; IRR = 0.7; p<0.001). A similar pattern was found for P. malariae, which showed a mean parasitemia of 1,196 parasites/μl of blood, a majority of the infections ranging in the intensity categories of 51–500 (53.5%) and 501–5000 (39.4%) parasites/μl of blood, and a decreased IRR in older children compared to their younger peers (898 vs. 1,494 parasites/μl of blood; IRR = 0.6; p = 0.041). No statistical difference with regard to P. ovale parasitemia was found between sex and age groups.
Results from parasite-parasite association inferred from multivariate logistic regression models that account for cluster effect at the unit of the school are displayed in the supplementary Table S1. In brief, several significant positive associations were found between parasites. For example, STH infection was positively associated with P. falciparum infection. Hookworm infection was positively associated with T. trichiura, S. mansoni and P. falciparum. In the A. lumbricoides model, T. trichiura was the only significantly and positively associated parasite, whereas in the T. trichiura model, A. lumbricoides and hookworm were found to be positively associated. In the S. mansoni, Plasmodium spp., and P. falciparum infection models, hookworm infection was positively associated.
Results from the STH- Plasmodium co-infection model are displayed in Table 3. A total of 689 children were co-infected with STHs and Plasmodium spp., 286 were infected with STHs only, and 2,543 with Plasmodium spp. only. Wealth, living in urban settings, presence of any type of latrine, and access to deworming drugs were negatively associated with STH- Plasmodium co-infection. In contrast, boys, children aged 10–16 years, and children reporting to use river as source of drinking water were at higher risk of STH- Plasmodium co-infection. For mono-infections with STHs, significant negatively associated variables included wealth, urban setting, savannah-like ecozone and traditional latrines, while male sex and older age were positively associated variables. Plasmodium mono-infection had wealth, urban setting, presence of modern latrine, and access to deworming drugs as negatively associated factors. Male sex, the savannah-like ecozone, and use of well water as source of drinking water were positively associated with Plasmodium mono-infections.
| left11Covariates | left11Covariate category | 3left1STH mono infection | 3left1 Plasmodium mono infection | 3left1STH- Plasmodium co-infection | ||||||
| left11 | left11 | left11Positive (%) | left11RRR | left11P-value | left11Positive (%) | left11RRR | left11P-value | left11Positive (%) | left11RRR | left11P-value |
| left11 | left11 | left11286 (5.6) | left11 | left11 | left112,543 (49.8) | left11 | left11 | left11689 (13.5) | left11 | left11 |
| left11Sex | left11Girls | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Boys | left11 | left11 1.9 (1.4, 2.6) | left11 <0.001 | left11 | left11 1.2 (1.1, 1.4) | left11 0.001 | left11 | left11 2.5 (1.9, 3.2) | left11 <0.001 |
| left11Age group | left115–9 years | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left1110–16 years | left11 | left11 2.2 (1.6, 3.1) | left11 <0.001 | left11 | left110.9 (0.8, 1.1) | left110.477 | left11 | left11 1.7 (1.4, 2.2) | left11 <0.001 |
| left11Socioeconomic status | left11Most poor | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Very poor | left11 | left111.0 (0.7, 1.5) | left110.926 | left11 | left111.0 (0.8, 1.3) | left110.948 | left11 | left110.8 (0.6, 1.0) | left110.093 |
| left11 | left11Poor | left11 | left110.8 (0.5, 1.1) | left110.185 | left11 | left111.0 (0.8, 1.3) | left110.793 | left11 | left11 0.5 (0.3, 0.7) | left11 <0.001 |
| left11 | left11Less poor | left11 | left11 0.6 (0.4, 0.9) | left11 0.011 | left11 | left11 0.7 (0.6, 0.9) | left11 0.010 | left11 | left11 0.3(0.2, 0.4) | left11 <0.001 |
| left11 | left11Least poor | left11 | left11 0.4 (0.2, 0.6) | left11 <0.001 | left11 | left11 0.7 (0.5, 0.9) | left11 0.018 | left11 | left11 0.2 (0.1, 0.4) | left11 <0.001 |
| left11Setting | left11Rural | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Urban | left11 | left11 0.6 (0.4, 0.9) | left11 0.029 | left11 | left11 0.7 (0.5, 1.0) | left11 0.047 | left11 | left11 0.5 (0.2, 0.9) | left11 0.029 |
| left11Ecozone | left11Forest-like | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Savannah-like | left11 | left11 0.7 (0.5, 1.0) | left11 0.047 | left11 | left11 1.4 (1.1, 1.8) | left11 0.003 | left11 | left111.2 (0.7, 1.9) | left110.497 |
| left11Drinking water source | left11Tap/pump water | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Well water | left11 | left111.0 (0.6, 1.5) | left110.905 | left11 | left11 1.4 (1.1, 1.7) | left11 0.004 | left11 | left111.2 (0.8, 1.8) | left110.337 |
| left11 | left11River or pond water | left11 | left111.1 (0.6, 1.7) | left110.856 | left11 | left11 1.3 (1.0, 1.6) | left11 0.025 | left11 | left111.5 (1.0, 2.3) | left110.057 |
| left11Sanitation | left11No latrine | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Traditional latrine | left11 | left11 0.6 (0.4, 0.9) | left11 0.014 | left11 | left110.9 (0.7, 1.1) | left110.330 | left11 | left11 0.6 (0.4, 0.9) | left11 0.008 |
| left11 | left11Modern latrine | left11 | left110.6 (0.3, 1.2) | left110.177 | left11 | left11 0.6 (0.4, 0.8) | left11 0.001 | left11 | left11 0.4 (0.2. 0.7) | left11 0.001 |
| left11Water-related activities | left11Had no activity | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Had activity | left11 | left111.4 (0.9, 2.1) | left110.097 | left11 | left111.1 (0.9, 1.3) | left110.593 | left11 | left11 1.4 (1.0, 1.8) | left11 0.030 |
| left11Deworming | left11Had no treatment in the past 2 weeks | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Had treatment in the past 2 weeks | left11 | left110.8 (0.5, 1.1) | left110.125 | left11 | left11 0.8 (0.7, 0.9) | left11 0.010 | left11 | left11 0.7 (0.5, 0.9) | left11 0.016 |
| left11Malaria treatment | left11Had no treatment in the past 2 weeks | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Had treatment in the past 2 weeks | left11 | left111.1 (0.7, 1.6) | left110.743 | left11 | left110.9 (0.7, 1.0) | left110.119 | left11 | left110.8 (0.6, 1.1) | left110.108 |
Parasite mono- and co-infection prevalences and risk factors associated stem from a national survey conducted in Côte d'Ivoire between November 2011 and February 2012. Children from 92 different survey locations were parasitologically tested and socioeconomic status assessed together with potential risk-related behavior and preventive measures taken. The prevalences are given in percentages. Associations were assessed using a multinomial regression model adjusted for Schistosoma spp., and accounting for cluster effects at school unit. Statistically significant (p<0.05) RRR are highlighted in bold.
STH = soil-transmitted helminths.
RRR = relative risk ratio.
CI = confidence interval.
Results from the Schistosoma- Plasmodium co-infection model are shown in Table 4. A total of 284 schoolchildren were co-infected with both parasite groups, 178 were identified with Schistosoma worms only and 2,948 had Plasmodium infections only. Schistosoma- Plasmodium co-infection was negatively associated with the use of deworming drugs and showed a negative trend for presence of a modern latrine in the household. In contrast, co-infection was positively associated with male sex, use of well water as drinking source and activities in or close to water bodies like swimming and fishing. For Schistosoma mono-infection, regular hand washing was negatively associated with this infection group, whilst older age group, well water as drinking water, and contact with water body (swimming and/or fishing) were positively associated. For Plasmodium mono-infection, higher socioeconomic status, living in an urban area, presence of a modern latrine and deworming were negatively associated with this infection group. Thus, male sex, a savannah-like ecozone, and open surface waters (including well, river, pond and swamp) as source for drinking water were associated with higher risk of a Plasmodium spp. mono-infection.
| left11Covariates | left11Covariate category | 3left1 Schistosoma mono-infection | 3left1 Plasmodium mono-infection | 3left1 Schistosoma-Plasmodium co-infection | ||||||
| left11 | left11 | left11Positive (%) | left11RRR | left11P-value | left11Positive (%) | left11RRR | left11P-value | left11Positive (%) | left11RRR | left11P-value |
| left11 | left11 | left11178 (3.5) | left11 | left11 | left112,948 (57.8) | left11 | left11 | left11284 (5.6) | left11 | left11 |
| left11Sex | left11Girls | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Boys | left11 | left111.3 (0.9, 1.8) | left110.201 | left11 | left11 1.2 (1.1, 1.4) | left11 <0.001 | left11 | left11 1.7 (1.3, 2.3) | left11 0.002 |
| left11Age groups | left115–9 years | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left1110–16 years | left11 | left11 1.6 (1.1, 2.4) | left11 0.028 | left11 | left110.9 (0.8, 1.1) | left110.329 | left11 | left111.2 (0.9, 1.7) | left110.197 |
| left11Socioeconomic status | left11Most poor | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Very poor | left11 | left110.9 (0.5, 1.4) | left110.538 | left11 | left110.9 (0.7, 1.2) | left110.478 | left11 | left110.8 (0.5, 1.3) | left110.381 |
| left11 | left11Poor | left11 | left111.1 (0.7, 1.6) | left110.824 | left11 | left110.9 (0.8, 1.1) | left110.514 | left11 | left111.0 (0.6, 1.6) | left110.906 |
| left11 | left11Less poor | left11 | left110.8 (0.5, 1.4) | left110.520 | left11 | left11 0.7 (0.5, 0.9) | left11 0.002 | left11 | left110.7 (0.4, 1.1) | left110.155 |
| left11 | left11Least poor | left11 | left111.0 (0.6, 1.8) | left110.976 | left11 | left11 0.7 (0.5, 0.9) | left11 0.006 | left11 | left110.9 (0.5, 1.5) | left110.601 |
| left11Setting | left11Rural | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Urban | left11 | left110.8 (0.4, 1.6) | left110.519 | left11 | left11 0.7 (0.5, 0.9) | left11 0.018 | left11 | left111.2 (0.5, 2.6) | left110.740 |
| left11Ecozone | left11Forest-like | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Savannah-like | left11 | left110.6 (0.3, 1.2) | left110.151 | left11 | left11 1.5 (1.2, 1.9) | left11 <0.001 | left11 | left110.6 (0.3, 1.1) | left110.108 |
| left11Drinking water source | left11Tap/pump water | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Well water | left11 | left11 1.7 (1.0, 2.7) | left11 0.040 | left11 | left11 1.3 (1.1, 1.7) | left11 0.009 | left11 | left11 2.1 (1.3, 3.2) | left11 0.001 |
| left11 | left11River water | left11 | left111.1 (0.6, 1.8) | left110.739 | left11 | left11 1.3 (1.0, 1.7) | left11 0.041 | left11 | left111.5 (0.9, 2.3) | left110.090 |
| left11Sanitation | left11No latrine | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Traditional latrine | left11 | left110.9 (0.5, 1.5) | left110.592 | left11 | left110.9 (0.7, 1.1) | left110.424 | left11 | left110.9 (0.6, 1.5) | left110.806 |
| left11 | left11Modern latrine | left11 | left111.1 (0.5, 2.4) | left110.867 | left11 | left11 0.6 (0.5, 0.8) | left11 0.002 | left11 | left110.5 (0.3, 1.1) | left110.092 |
| left11Hand washing | left11No regular hand washing | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Regular hand washing | left11 | left11 0.6 (0.4, 0.8) | left11 0.001 | left11 | left110.9 (0.7, 1.0) | left110.078 | left11 | left110.7 (0.5, 1.1) | left110.120 |
| left11Water-related activity | left11Had no activity | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Had activity | left11 | left11 2.2 (1.3, 3.6) | left11 0.002 | left11 | left111.0 (0.8, 1.3) | left110.832 | left11 | left11 2.5 (1.7, 3.6) | left11 <0.001 |
| left11Deworming | left11Had no treatment in the past 2 weeks | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Had treatment in the past 2 weeks | left11 | left110.8 (0.5, 1.4) | left110.471 | left11 | left11 0.8 (0.7, 1.0) | left11 0.022 | left11 | left11 0.6 (0.4, 1.0) | left11 0.025 |
| left11Malaria treatment | left11Had no treatment in the past 2 weeks | left11 | left111.0 | left11 | left11 | left111.0 | left11 | left11 | left111.0 | left11 |
| left11 | left11Had treatment in the past 2 weeks | left11 | left111.5 (1.0, 2.4) | left110.057 | left11 | left110.9 (0.7, 1.0) | left110.134 | left11 | left111.0 (0.7, 1.4) | left110.963 |
Parasite mono- and co-infection prevalences and risk factors associated stem from a national survey conducted in Côte d'Ivoire between November 2011 and February 2012. Children from 92 different survey locations were parasitologically tested and socioeconomic status assessed together with their hygiene and health treatment behavior. The prevalences are given in percentages. Associations were assessed using a multinomial regression model adjusted for soil-transmitted helminths and accounting for cluster effects at school unit. Statistically significant (p<0.05) RRRs are highlighted in bold.
RRR = relative risk ratio.
CI = confidence interval.
To our knowledge, this is the first nation-wide survey carried out in Côte d’Ivoire to assess the status and spatial patterns of helminth and Plasmodium infection in the school-aged population. Thus far, most parasitological studies in Côte d’Ivoire focused on known high-endemicity areas, such as the region of Man in the western part of the country investigating S. mansoni [26]– [28] or the Taabo health and demographic surveillance system (HDSS) in south-central Côte d’Ivoire focusing on malaria and helminth infection [29]– [34]. The current survey was conducted over a 4-month period during the dry season in order to minimize seasonal effects in the investigated parasites. Plasmodium spp. prevalence was high and quite evenly distributed across the country, whilst Schistosoma spp. infection showed a highly focal distribution. Hookworm is the predominant STH species, which corroborates with previous studies [32], [35], with the highest prevalence found in Depingo (70%) in the north-eastern part of the country.
As expected, P. falciparum was the predominant malaria parasite throughout Côte d’Ivoire. We found a significant difference in infection prevalence among males and females, but no difference in the two age groups considered (5–9 and 10–16 years). Our observations are consistent with studies from Kenya and Mali that reported significant sex difference of Plasmodium infection in childhood [36], [37]. Though studies have shown that children aged below 10 years were more often infected than their older counterparts in stable transmission areas [38], [39], this pattern was not significant in the present study despite the observed higher parasitemia in the younger age group. In general, both the prevalence and parasitemia decrease with age, since people acquire semi-immunity due to sustained exposure to infectious mosquito bites [40], [41].
The prevalence and intensity of helminth infections were assessed through the presence of helminth eggs in stool and the presence of microhematuria in urine. Hookworm infection (17.2%) was most prevalent, followed by S. haematobium (proxied by microhematuria; 5.7%), S. mansoni (3.7%), A. lumbricoides (1.9%), and T. trichiura (1.3%). With regard to previous studies in Côte d’Ivoire [29], [42], [43], these helminth infection prevalences are very low. However, one has to consider the fact that for the present study, the school locations were selected using the lattice plus close pairs design, as opposed to preceding studies, which usually focused on specific and known high-risk areas, i.e., villages in close proximity to large man-made lakes and deprived rural settings [44], [45]. Nonetheless, similarities in prevalence with regard to previous studies were found. In the present study the highest prevalence for S. mansoni was found in Zoukouboué, in the western part of the country, which is consistent with previous investigations, reporting intestinal schistosomiasis more frequently in the West, where local prevalence rate of 90% or higher have been found [26], [27], [46]– [48]. Meanwhile, S. haematobium was found to be more prevalent in the South and South-East with the highest prevalence estimated in Banguié (79.6%), which confirms findings from previous studies [44]. The other helminth species varied less in terms of spatial heterogeneity, hence, were present across the country, but with a tendency of higher prevalence in rural compared to urban settings [49].
Our nation-wide parasitological survey revealed that 13.5% and 5.5% of school-aged children had a concurrent STH- Plasmodium and Schistosoma-Plasmodium infection, respectively, which is somewhat lower than reported before in smaller studies. Righetti and colleagues reported a 27.9% co-infection rate with hookworm and Plasmodium among school-aged children in the Taabo HDSS in south-central Côte d’Ivoire [32]. In a single village in western Côte d’Ivoire, Raso and colleagues reported that 75% of community members harbored concomitant infections with Plasmodium, helminths, and intestinal protozoa [24]. Helminth- Plasmodium co-infections have also been investigated elsewhere in Africa and observed co-infection prevalences ranged from 16% in Uganda and Cameroon, to 26.5% in Tanzania, to 60% in Nigeria [15], [50]– [52]. Given that considerable efforts are currently undertaken to control malaria and helminthiases in Côte d’Ivoire, it is conceivable that the observed co-infection from the national survey might be partly a result of these activities. It must be noted, however, that our survey was carried out only a few months after termination of a prolonged socio-political crisis [17] and national control programs were only just about to restart their activities.
The results from the multinomial logistic regression model identified sex, lack of access to anthelmintic drugs, source of drinking water, and leisure activities in or close to water bodies as determinants common to both STH- Plasmodium and Schistosoma- Plasmodium co-infections. With the exception of sex and contact to water, these patterns might be partly explained by socioeconomic and related factors that were not well captured with our household wealth proxy. In fact, a recent study from south-central Côte d’Ivoire could show that poorer households were less likely to use safe drinking water sources and appropriate sanitation facilities [34]. Furthermore, for both co-infection models, results showed that children were less likely to harbor Plasmodium mono-infections if they reported to have received anthelmintic treatment the past 2 weeks and reported to have latrines at home. Though this might as well be related to socioeconomic related factors, such link between Plasmodium infections and anthelmintic treatment has been observed in a previous randomized controlled trial from Nigeria among preschool-aged children [53]; following repeated anthelmintic treatment, a reduced increase of the Plasmodium infection prevalence in the treatment group compared to the control group coincided with the reduction of A. lumbricoides infection prevalence and intensity. It was thus suggested that infection with A. lumbricoides hinders the immune system to appropriately respond to clear the Plasmodium infection.
Both, the STH- Plasmodium and the Schistosoma- Plasmodium multinomial regression models revealed a higher risk for co-infection related to activities involving close contact to water. Schistosomiasis is a water-borne disease and prolonged contact with cercariae-infested water bodies is a known risk factor [54]. Considering that co-infection is mainly driven by the less frequent species; in this case Schistosoma spp., this may explain the finding of an increased risk for mono- and co-infection in the Schistosoma- Plasmodium model. A potential explanation for the positive association of water contact with STH- Plasmodium co-infection could be seen in the general activity patterns of children reporting it. To reach water sites children move in the surroundings of the villages and thus may be more likely to be exposed to open defecation grounds, which represent major transmission sites for hookworm infection, the predominant STH species identified [34].
Ecozone was neither associated with STH- Plasmodium nor with Schistosoma-Plasmodium co-infection, though STH and Plasmodium mono infections showed a relation to ecozone. The fact that no link between co-infections and ecozone was found might suggest that in Côte d’Ivoire, patterns of helminth- Plasmodium co-infection are perhaps more influenced by socio-demographic and socio-cultural factors rather than environmental factors. In fact, in a study from East Africa, the pattern of helminth- Plasmodium co-infection was governed by the distribution of the less common pathogen [55]. In our study, helminths were far less common than Plasmodium, and therefore our results support the aforementioned study. Interestingly, prior research carried out elsewhere in Africa and Asia found a clear link of single and co-infection with the environment [56]– [58]. It will be interesting to monitor helminth- Plasmodium co-infection in face of ongoing demographic (e.g., urbanization) and environmental transformation (e.g., deforestation).
Taken together, our results suggest that interactions between parasites exist that can have an impact on control in Côte d’Ivoire and elsewhere in countries where helminths and Plasmodium co-exist. We mainly found positive interactions between parasite species; such interactions have been shown to synergistically affect morbidity outcomes [59]. In particular our results showed a positive association between STHs and Plasmodium, most importantly with hookworm. Therefore, interventions targeting helminthiases might have beneficial effects beyond the targeted disease, as they might also affect Plasmodium infection, which would provide a strong rationale for integrated control approaches that concurrently target STHs and malaria. Clearly, our results from multinomial co-infection models confirmed that interventions against one parasite can positively impact on other infection outcomes, such as in the case of anthelmintic treatment. Combining the distribution of LLINs to the entire population as it is planned by the national malaria control program in Côte d’Ivoire, in conjunction with administration of anthelmintic drugs could thus have high beneficial effects for the population. In addition, such combined interventions have the potential of highest cost-effectiveness, which is of particular relevance in the context of resource scarcity of developing countries.
Our study has several limitations that are offered for consideration. First, given the large scale of the work and constrained financial and human resources, we could only collect single stool, urine, and blood samples for diagnostic work-up. Clearly, more intensive sampling over multiple days and use of a suite of diagnostic methods would have resulted in higher prevalence estimates, and hence higher rates of co-infection [60]– [62]. Second, S. haematobium was indirectly assessed using reagent strips and, although the method is a useful screening tool, sensitivity and specificity are imperfect compared to urine filtration considered the ‘gold’ standard. (sensitivity range, 64.8–100%; specificity range, 89.6–93%) [63], [64]. Third, the study was conducted during the dry season. This might lead to underestimate Plasmodium spp. prevalence, and hence an underestimated co-infection rate. In fact, the breeding sites of Anopheles spp., acting as the vector for Plasmodium spp. depend greatly on the availability of stagnant water bodies [58], [65]. Fourth, assessment methods of the malaria parasite used in this study have some shortcomings. Although we employed two methods for the diagnosis of Plasmodium spp. (RDT and standard microscopy), it is conceivable that a polymerase chain reaction (PCR) approach would have diagnosed additional cases. The RDT used in our study only identified P. falciparum, but this was deemed acceptable, as this is the predominant malaria species throughout Côte d’Ivoire and neighboring countries. At low levels of parasitemia (e.g., 5 parasites/μl of blood), microscopy lacks sensitivity and requires highly trained technicians to accurately diagnose such infections [66], [67].
Our results confirm that malaria transmission is extremely high across Côte d’Ivoire, despite heightened efforts to reduce the public health burden of this parasitic disease. Malaria is overlapping with helminth infection, and hence, polyparasitism is the norm rather than the exception among children. Co-infection might negatively affect the health and welfare of infected children, including impairment of physical fitness and their ability to attend and successfully complete school with myriad implications for social and work productivity in older age [68]. Hence, our findings should raise awareness and help in designing cost-effective control and mitigation strategies to fight malaria and helminthiases in Côte d’Ivoire and elsewhere in the humid tropics. Further studies need to appraise in greater detail the effect of climatic, environmental, and socioeconomic determinants, as well as how control programs impact on the distribution of single and multiple species parasite infections.
STROBE checklist.
(DOCX)
Click here for additional data file.
Associations between parasite infections from multivariate logistic regression models accounting for cluster effect at the unit of school.
(DOCX)
Click here for additional data file.
 Many thanks are addressed to the laboratory technicians (Jean K. Brou, Amani Lingué, Mahamadou Traoré, and Sadikou Touré) and all school directors and teachers for their commitment to this study.


|
Panda3D
|
A page of ConfigDeclarations that may be loaded or unloaded. More...
Public Member Functions | |
| clear () | |
| Removes all of the declarations from the page. More... | |
| bool | deleteDeclaration (ConfigDeclaration decl) |
| Removes the indicated declaration from the page and deletes it. More... | |
| const ConfigDeclaration | getDeclaration (int n) |
| Returns the nth declaration on the page. More... | |
| str | getName () |
| Returns the name of the page. More... | |
| int | getNumDeclarations () |
| Returns the number of declarations on the page. More... | |
| int | getPageSeq () |
| Returns the sequence number of the page. More... | |
| str | getSignature () |
| Returns the raw binary signature that was found in the prc file, if any. More... | |
| int | getSort () |
| Returns the explicit sort order of this particular ConfigPage. More... | |
| str | getStringValue (int n) |
| Returns the value assigned by the nth declaration on the page. More... | |
| int | getTrustLevel () |
| Returns the trust level associated with this page. More... | |
| str | getVariableName (int n) |
| Returns the variable named by the nth declaration on the page. More... | |
| bool | isImplicit () |
| Returns true if the page was loaded by implicitly searching the config path on startup, or false if it was explicitly loaded by dynamic code after initial startup. More... | |
| bool | isSpecial () |
| Returns true if this is the special "default" or "local" page, or false if it is an ordinary page, e.g. More... | |
| bool | isVariableUsed (int n) |
| Returns true if the nth active variable on the page has been used by code, false otherwise. More... | |
| ConfigDeclaration | makeDeclaration (ConfigVariableCore variable, str value) |
| Adds the indicated variable/value pair as a new declaration on the page. More... | |
| ConfigDeclaration | makeDeclaration (str variable, str value) |
| Adds the indicated variable/value pair as a new declaration on the page. More... | |
| ConfigDeclaration | modifyDeclaration (int n) |
| Returns a modifiable pointer to the nth declaration on the page. More... | |
| output (Ostream out) | |
| outputBriefSignature (Ostream out) | |
| Outputs the first few hex digits of the signature. More... | |
| bool | readEncryptedPrc (Istream in, str password) |
| Automatically decrypts and reads the stream, given the indicated password. More... | |
| bool | readPrc (Istream in) |
| Reads the contents of a complete prc file, as returned by the indicated istream, into the current page file. More... | |
| setSort (int sort) | |
| Changes the explicit sort order of this particular ConfigPage. More... | |
| setTrustLevel (int trust_level) | |
| Explicitly sets the trust level on this particular page. More... | |
| write (Ostream out) | |
Static Public Member Functions | |
| static ConfigPage | getDefaultPage () |
| Returns a pointer to the global "default page". More... | |
| static ConfigPage | getLocalPage () |
| Returns a pointer to the global "local page". More... | |
Public Attributes | |
| ConfigDeclaration | declarations [] |
| Returns a modifiable pointer to the nth declaration on the page. More... | |
| bool | implicit |
| Returns true if the page was loaded by implicitly searching the config path on startup, or false if it was explicitly loaded by dynamic code after initial startup. More... | |
| const String | name |
| Returns the name of the page. More... | |
| int | page_seq |
| Returns the sequence number of the page. More... | |
| const String | signature |
| Returns the raw binary signature that was found in the prc file, if any. More... | |
| int | sort |
| Returns the explicit sort order of this particular ConfigPage. More... | |
| bool | special |
| Returns true if this is the special "default" or "local" page, or false if it is an ordinary page, e.g. More... | |
| int | trust_level |
| Returns the trust level associated with this page. More... | |
A page of ConfigDeclarations that may be loaded or unloaded.
Typically this represents a single .prc file that is read from disk at runtime, but it may also represent a list of declarations built up by application code and explicitly loaded.
| clear | ( | ) |
Removes all of the declarations from the page.
| bool deleteDeclaration | ( | ConfigDeclaration | decl | ) |
Removes the indicated declaration from the page and deletes it.
Returns true if the declaration is successfully removed, false if it was not on the page.
| const ConfigDeclaration getDeclaration | ( | int | n | ) |
Returns the nth declaration on the page.
|
static |
Returns a pointer to the global "default page".
This is the ConfigPage that lists all variables' original default values.
|
static |
Returns a pointer to the global "local page".
This is the ConfigPage that lists the locally-assigned values for any variables in the world that have such a local assignment.
| str getName | ( | ) |
Returns the name of the page.
If the page was loaded from a .prc file, this is usually the filename.
| int getNumDeclarations | ( | ) |
Returns the number of declarations on the page.
| int getPageSeq | ( | ) |
Returns the sequence number of the page.
Sequence numbers for a particular class (implicit vs. explicit) of pages are assigned as each page is loaded; each page is given a higher sequence number than all the pages loaded before it.
The implicit_load pages, which are discovered in the file system automatically, have a different set of sequence numbers than the explicit pages.
| str getSignature | ( | ) |
Returns the raw binary signature that was found in the prc file, if any.
This method is probably not terribly useful for most applications.
| int getSort | ( | ) |
Returns the explicit sort order of this particular ConfigPage.
See set_sort().
| str getStringValue | ( | int | n | ) |
Returns the value assigned by the nth declaration on the page.
| int getTrustLevel | ( | ) |
Returns the trust level associated with this page.
An untrusted page is trust level 0; if the page was loaded from a signed .prc file, its trust level is the index number of the certificate that signed it. Generally, a higher trust level value represents a greater level of trust.
| str getVariableName | ( | int | n | ) |
Returns the variable named by the nth declaration on the page.
| bool isImplicit | ( | ) |
Returns true if the page was loaded by implicitly searching the config path on startup, or false if it was explicitly loaded by dynamic code after initial startup.
| bool isSpecial | ( | ) |
Returns true if this is the special "default" or "local" page, or false if it is an ordinary page, e.g.
an implicit page loaded from a prc file at startup, or an explicit page created by ConfigPageManager::make_explicit_page().
| bool isVariableUsed | ( | int | n | ) |
Returns true if the nth active variable on the page has been used by code, false otherwise.
| ConfigDeclaration makeDeclaration | ( | ConfigVariableCore | variable, |
| str | value | ||
| ) |
Adds the indicated variable/value pair as a new declaration on the page.
| ConfigDeclaration makeDeclaration | ( | str | variable, |
| str | value | ||
| ) |
Adds the indicated variable/value pair as a new declaration on the page.
| ConfigDeclaration modifyDeclaration | ( | int | n | ) |
Returns a modifiable pointer to the nth declaration on the page.
Any modifications will appear in the output, if the page is written out with ConfigPage::write().
| output | ( | Ostream | out | ) |
| outputBriefSignature | ( | Ostream | out | ) |
Outputs the first few hex digits of the signature.
| bool readEncryptedPrc | ( | Istream | in, |
| str | password | ||
| ) |
Automatically decrypts and reads the stream, given the indicated password.
Note that if the password is incorrect, the result may be garbage.
| bool readPrc | ( | Istream | in | ) |
Reads the contents of a complete prc file, as returned by the indicated istream, into the current page file.
Returns true on success, or false on some I/O error.
This is a low-level interface. Normally you do not need to call it directly. See the global functions load_prc_file() and unload_prc_file(), defined in panda/src/putil, for a higher-level interface.
| setSort | ( | int | sort | ) |
Changes the explicit sort order of this particular ConfigPage.
Lower- numbered pages supercede higher-numbered pages. Initially, all explicitly- loaded pages have sort value 0, and implicitly-loaded pages (found on disk) have sort value 10; you may set an individual page higher or lower to influence its priority relative to other pages.
| setTrustLevel | ( | int | trust_level | ) |
Explicitly sets the trust level on this particular page.
Note that any subsequent changes to the page, or to any variable declarations on it, will reset the trust level to zero.
| write | ( | Ostream | out | ) |
| ConfigDeclaration declarations[] |
Returns a modifiable pointer to the nth declaration on the page.
Any modifications will appear in the output, if the page is written out with ConfigPage::write().
| bool implicit |
Returns true if the page was loaded by implicitly searching the config path on startup, or false if it was explicitly loaded by dynamic code after initial startup.
| const String name |
Returns the name of the page.
If the page was loaded from a .prc file, this is usually the filename.
| int page_seq |
Returns the sequence number of the page.
Sequence numbers for a particular class (implicit vs. explicit) of pages are assigned as each page is loaded; each page is given a higher sequence number than all the pages loaded before it.
The implicit_load pages, which are discovered in the file system automatically, have a different set of sequence numbers than the explicit pages.
| const String signature |
Returns the raw binary signature that was found in the prc file, if any.
This method is probably not terribly useful for most applications.
| int sort |
Returns the explicit sort order of this particular ConfigPage.
See set_sort().
| bool special |
Returns true if this is the special "default" or "local" page, or false if it is an ordinary page, e.g.
an implicit page loaded from a prc file at startup, or an explicit page created by ConfigPageManager::make_explicit_page().
| int trust_level |
Returns the trust level associated with this page.
An untrusted page is trust level 0; if the page was loaded from a signed .prc file, its trust level is the index number of the certificate that signed it. Generally, a higher trust level value represents a greater level of trust.


The Overwatch 2 Leak Was Extremely Demoralising For The Development Team
"You feel totally deflated"
by Liam DoolanLike many other BlizzCon 2019 announcements this weekend, the Overwatch 2 one was leaked ahead of the opening ceremony.
In a follow-up interview with Kotaku Australia, Overwatch lead designer Jeff Kaplan expressed how leaks can be "extremely demoralising" for developers and explained how lack of context can often result in worst-case scenario concerns:
When you're trying so hard to deliver something for somebody and to have it be spoiled in a way that's not coherent. That's the part that bothers us the most, where people are not given all the information and all of the context that they need to understand what we're doing.
When the Overwatch 2 leaks started to happen, immediate worries raised by the community were in regards to progression and cosmetics carrying across – along with how a sequel could potentially divide the game's playerbase.
Kaplan also noted how the artists working on the PvE focused entry were "heartbroken" when leakers began uploading low-quality screenshots:
Our artists are heartbroken: They take such care to make the art look beautiful, and then we get some crappy version of what the art looks like ... and then people are like, 'I don't know it doesn't look that good' and we're like, no it does, it looks amazing! It's just a crappy screenshot that someone took, so it can be a bit demoralising.
Be sure to check out yesterday's announcement post, officially confirming Overwatch 2 for the Nintendo Switch.
What are your thoughts about leaks? Tell us in the comments.
[via kotaku.com.au]


@(message: exchangeRateSummary: List[ExchangeRateSummary]) @main("Home") {
Input test results into our form to calculate ratio of malignacy of breast cancer and chance of cure
We prepared visualization on pie charts that shows age categories for given race.
| @element | }


consist your alphabetics
a...z
A...Z
0...9
Number of characters
okay!
Enter your key
GO!
Enter Plain Text
encrypt
Cipher Text


The negative local magnetic shear is defined by
|
(284) |
There are two ways of calculating . The first way is to calculate in
cylindrical coordinate system; the second one is in flux coordinate system.
Next, consider the first way. We have
Using this, Eq. (284) is written as
Next, we work in cylindrical coordinates and obtain
and
|
(288) |
Using Eq. (288), Eq. (286) is written as
|
(289) |
The two partial derivatives appearing in the above equation can be calculated
to give
Using these, we obtain
|
(292) |
(The above results for has been verified by using Mathematica Software.)
The results calculated by using Eq. (292) are plotted in Fig.
32.
Figure 32:
The local magnetic shear as a function of the
poloidal angle. The different lines corresponds to the shear on different
magnetic surfaces. The stars correspond to the values of the shear on the
boundary magnetic surface while the plus signs correspond to the value on
the innermost magnetic surface (the magnetic surface adjacent to the
magnetic axis). The equilibrium is a Solovev equilibrium.
|
Next, we consider the calculation of in the flux coordinates system
. The
term can be
written as
|
(294) |
By using the curl formula in generalized coordinates
,
we obtain
Using Eqs. (294) and (295), the negative local magnetic
shear [Eq. (284)] is written as
Note that the partial derivatives
and
in Eq. (296) is taken in the
coordinates and they are usually different from their counterparts in
coordinates. In Eq. (296), the partial derivatives
are operating on equilibrium quantity, which is independent of and
. In this case, the partial derivatives in the two sets of coordinates
are equal to each other. Figure 33 plots the poloidal dependence
of local magnetic shear and
.
Figure 33:
The local magnetic shear (left) and
(right) as a function of the poloidal angle. The different lines
corresponds to the shear on different magnetic surfaces. The stars
correspond to the values of the shear on the boundary magnetic surface while
the plus signs correspond to the value on the innermost magnetic surface
(the magnetic surface adjacent to the magnetic axis). The equilibrium is a
Solovev equilibrium.
|
Next, let us examine the flux surface average of , which is written as
Note that the global safety factor is given by
|
(298) |
Using this, equation (297) is written as
|
(299) |
Equation (299) provides a way to verify the correctness of the
numerical implementation of . Figure 34 compares
with
, which shows that the two results agree with each other well.
Figure 34:
(solid line) and
(plus mark) as a
function of the radial coordinate
(
is
the normalized poloidal magnetic flux). The equilibrium is a Solovev
equilibrium.
|
yj
2015-09-04


Mannell, William Pierce
| Birth Name | Mannell, William Pierce |
| Gender | male |
| Age at Death | 49 years, 5 months, 29 days |
Narrative
SMH - William Pierce MANNELL - 31st May, 1935, at his residence, "Westcarville" Phillip St, Lakemba, ex-Sergeant of Police, beloved husband of Caroline Ann Mannell, aged 74yrs,
SMH - FUNERAL - The rels & friends of Mrs. Caroline MANNELL & family are invited to the Funeral of their dearly loved Husband & Father, to leave his late residence, "Westcarville", Phillip St, Lakemba, this Saturday afternoon (1/6/1935) at 3 o'clock, for Moorefield Cemetery.
SMH - MANNELL - P.A.F.S. of A. Lakemba Lodge No.147. The Officers & Members are respectfully requested to attend the Funeral of their Bro. William Pierce MANNELL. See Family Notice.
Events
| Event | Date | Place | Description | Sources |
|---|---|---|---|---|
| Birth | 1886 | Redfern NSW #8925 | ||
|
|
||||
| Death | 1935-06-30 | Bankstown Hospital, NSW #24730 (73yrs) | ||
|
|
||||
| Burial | 1935-07-01 | Morefields Cemetery | ||
|
|
Parents
| Relation to main person | Name | Birth date | Death date | Relation within this family (if not by birth) |
|---|---|---|---|---|
| Father | Mannell, William Pierce | 1860 | 1935-05-31 | |
| Mother | Sims, Matilda | 1862-06-21 | 1897-04-03 | |
| Sister | Mannell, Ethel | 1885 | 1885-11-22 | |
| Mannell, William Pierce | 1886 | 1935-06-30 | ||
| Sister | Mannell, Lillian Gertrude | 1887 | 1890-08-02 | |
| Sister | Mannell, Alice | 1889 | 1918-12-24 | |
| Sister | Mannell, Lucy | 1892 | 1894 | |
| Sister | Mannell, Lucy May | 1894 | 1966-06-28 | |
| Brother | Mannell, Ernest J. | 1894 | ||
| Sister | Mannell, Doris E. | 1897 | 1897 |
Families
Family of Mannell, William Pierce and Porter, Caroline Ann |
||||||||||||||||||||
| Married | Wife | Porter, Caroline Ann ( * 1879 + 1955-06-09 ) | ||||||||||||||||||
|
||||||||||||||||||||
| Children |
| Name | Birth Date | Death Date |
|---|---|---|
| Mannell, Lydia Eileen | 1901 | 1976-05-21 |
| Mannell, Rose Caroline | 1902 | 1990-06-01 |
| Mannell, Charles Alfred | 1904 | 1966-05-08 |
| Mannell, Vera Myrtle | 1907 | 1919-06-24 |
| Mannell, Eva May | 1910 | 1953-07-04 |
| Type | Value | Notes | Sources |
|---|---|---|---|
| _UID | B96415A8FD7FDC119B9E9BEAF1258A3EDF7F |
Attributes
| Type | Value | Notes | Sources |
|---|---|---|---|
| _UID | A76415A8FD7FDC119B9E9BEAF1258A3ECD5F |


Web Origins Allowed to Control Your Browser
Warning: the Web sites you add in the table below will have some powers of Chrome extensions.
Click
Add Allowed Site
Type a URL in the Allowed Sites box
Optional: add a name under
Debug With
to add the site to the Chrome browser right-click menu
Save
Action
Allowed Sites
Debug With
Name
Edit
Save
Remove
Cancel
Add Allowed Site
All pages with the same Web Origin will be allowed
Console Tracing Options For Debugging This Extension
Trace connection events
Trace messages
Trace Warning IO
Trace chrome.* adapters
To Complete Options Update, Please click
reload
the chrome://extensions page


The following table describes the CandleRangeType
enumeration members:
| Member | Value | Description |
|---|---|---|
| RealBody | 0 | The part of the candle between open and close (0) |
| HighLow | 1 | The complete range of the candle (1) |
| Shadows | 2 | The shadows (or tails) of the candle (2) |


| 379 | (A) | There-witħ the poyntes were pyghte in parties foure |
| 383 | (C) | Therof þe poyntes y-pyȝte . in partyes fowre |
| 384 | (D) | þer-of þe poyntis y-pigħt in parties foure |
| (E) | ---- no text ---- | |
| (Ex) | ---- no text ---- | |
| 393 | (L) | þer-of þe poyntes were piȝt in partyis foure |
| 367 | (P) | þare-of þe poyntes war pyght in partys foure |
| 377 | (U) | ¶ There of the pointes y pigħt / in parties foure |
| (V) | ---- no text ---- |


DS.Store Class
The store contains all of the data for records loaded from the server.
It is also responsible for creating instances of DS.Model
that wrap
the individual data for a record, so that they can be bound to in your
Handlebars templates.
Define your application's store like this:
MyApp.Store = DS.Store.extend();
Most Ember.js applications will only have a single DS.Store
that is
automatically created by their Ember.Application
.
You can retrieve models from the store in several ways. To retrieve a record
for a specific id, use DS.Store
's find()
method:
store.find('person', 123).then(function (person) {
});
By default, the store will talk to your backend using a standard REST mechanism. You can customize how the store talks to your backend by specifying a custom adapter:
MyApp.ApplicationAdapter = MyApp.CustomAdapter
You can learn more about writing a custom adapter by reading the DS.Adapter
documentation.
Store createRecord() vs. push() vs. pushPayload()
The store provides multiple ways to create new record objects. They have some subtle differences in their use which are detailed below:
createRecord is used for creating new
records on the client side. This will return a new record in the
created.uncommitted
state. In order to persist this record to the
backend you will need to call record.save()
.
push is used to notify Ember Data's store of new or
updated records that exist in the backend. This will return a record
in the loaded.saved
state. The primary use-case for store#push
is
to notify Ember Data about record updates (full or partial) that happen
outside of the normal adapter methods (for example
SSE or Web
Sockets).
pushPayload is a convenience wrapper for
store#push
that will deserialize payloads if the
Serializer implements a pushPayload
method.
Note: When creating a new record using any of the above methods
Ember Data will update DS.RecordArray
s such as those returned by
store#all()
, store#findAll()
or store#filter()
. This means any
data bindings or computed properties that depend on the RecordArray
will automatically be synced to include the new or updated record
values.
Item Index
Methods
- _generateId
- _load
- _normalizeTypeKey
- adapterFor
- all
- buildRecord
- createRecord
- dataWasUpdated
- deleteRecord
- dematerializeRecord
- didSaveRecord
- didUpdateAll
- fetchAll
- fetchRecord
- filter
- find
- findAll
- findBelongsTo
- findById
- findByIds
- findHasMany
- findMany
- findQuery
- flushPendingSave
- getById
- hasRecordForId
- init
- metadataFor
- metaForType
- modelFor
- normalize
- push
- pushMany
- pushPayload
- recordForId
- recordIsLoaded
- recordWasError
- recordWasInvalid
- reloadRecord
- scheduleSave
- serialize
- serializerFor
- typeMapFor
- unloadAll
- unloadRecord
- update deprecated
- updateId
Properties
Methods
_generateId
-
type
If possible, this method asks the adapter to generate an ID for a newly created record.
Parameters:
-
type
String
Returns:
if the adapter can generate one, an ID
_load
-
type
-
data
This internal method is used by push
.
Parameters:
-
type
String or subclass of DS.Model -
data
Object
_normalizeTypeKey
-
type
All typeKeys are camelCase internally. Changing this function may require changes to other normalization hooks (such as typeForRoot).
Parameters:
-
type
String
Returns:
if the adapter can generate one, an ID
adapterFor
-
type
Returns the adapter for a given type.
Parameters:
-
type
subclass of DS.Model
Returns:
DS.Adapter
all
-
type
This method returns a filtered array that contains all of the known records for a given type.
Note that because it's just a filter, it will have any locally created records of the type.
Also note that multiple calls to all
for a given type will always
return the same RecordArray.
Example
var localPosts = store.all('post');
Parameters:
-
type
String or subclass of DS.Model
Returns:
buildRecord
-
type
-
id
-
data
Build a brand new record for a given type, ID, and initial data.
Parameters:
-
type
subclass of DS.Model -
id
String -
data
Object
Returns:
record
createRecord
-
type
-
properties
Create a new record in the current store. The properties passed to this method are set on the newly created record.
To create a new instance of App.Post
:
store.createRecord('post', {
title: "Rails is omakase"
});
Parameters:
-
type
String -
properties
Objecta hash of properties to set on the newly created record.
Returns:
record
dataWasUpdated
-
type
-
record
If the adapter updates attributes or acknowledges creation or deletion, the record will notify the store to update its membership in any filters. To avoid thrashing, this method is invoked only once per
run loop per record.
Parameters:
-
type
Class -
record
DS.Model
deleteRecord
-
record
For symmetry, a record can be deleted via the store.
Example
var post = store.createRecord('post', {
title: "Rails is omakase"
});
store.deleteRecord(post);
Parameters:
-
record
DS.Model
dematerializeRecord
-
record
When a record is destroyed, this un-indexes it and removes it from any record arrays so it can be GCed.
Parameters:
-
record
DS.Model
didSaveRecord
-
record
-
data
This method is called once the promise returned by an
adapter's createRecord
, updateRecord
or deleteRecord
is resolved.
If the data provides a server-generated ID, it will update the record and the store's indexes.
Parameters:
-
record
DS.Modelthe in-flight record
-
data
Objectoptional data (see above)
fetchAll
-
type
-
array
Parameters:
-
type
DS.Model -
array
DS.RecordArray
Returns:
promise
fetchRecord
-
record
This method is called by findById
if it discovers that a particular
type/id pair hasn't been loaded yet to kick off a request to the
adapter.
Parameters:
-
record
DS.Model
Returns:
promise
filter
-
type
-
query
-
filter
Takes a type and filter function, and returns a live RecordArray that remains up to date as new records are loaded into the store or created locally.
The callback function takes a materialized record, and returns true if the record should be included in the filter and false if it should not.
The filter function is called once on all records for the type when it is created, and then once on each newly loaded or created record.
If any of a record's properties change, or if it changes state, the filter function will be invoked again to determine whether it should still be in the array.
Optionally you can pass a query which will be triggered at first. The results returned by the server could then appear in the filter if they match the filter function.
Example
store.filter('post', {unread: true}, function(post) {
return post.get('unread');
}).then(function(unreadPosts) {
unreadPosts.get('length'); // 5
var unreadPost = unreadPosts.objectAt(0);
unreadPost.set('unread', false);
unreadPosts.get('length'); // 4
});
Parameters:
-
type
String or subclass of DS.Model -
query
Objectoptional query
-
filter
Function
Returns:
find
-
type
-
id
-
preload
This is the main entry point into finding records. The first parameter to this method is the model's name as a string.
To find a record by ID, pass the id
as the second parameter:
store.find('person', 1);
The find
method will always return a promise that will be resolved
with the record. If the record was already in the store, the promise will
be resolved immediately. Otherwise, the store will ask the adapter's find
method to find the necessary data.
The find
method will always resolve its promise with the same object for
a given type and id
.
You can optionally preload
specific attributes and relationships that you know of
by passing them as the third argument to find.
For example, if your Ember route looks like /posts/1/comments/2
and your API route
for the comment also looks like /posts/1/comments/2
if you want to fetch the comment
without fetching the post you can pass in the post to the find
call:
store.find('comment', 2, {post: 1});
If you have access to the post model you can also pass the model itself:
store.find('post', 1).then(function (myPostModel) {
store.find('comment', 2, {post: myPostModel});
});
This way, your adapter's find
or buildURL
method will be able to look up the
relationship on the record and construct the nested URL without having to first
fetch the post.
To find all records for a type, call find
with no additional parameters:
store.find('person');
This will ask the adapter's findAll
method to find the records for the
given type, and return a promise that will be resolved once the server
returns the values.
To find a record by a query, call find
with a hash as the second
parameter:
store.find('person', { page: 1 });
This will ask the adapter's findQuery
method to find the records for
the query, and return a promise that will be resolved once the server
responds.
Parameters:
-
type
String or subclass of DS.Model -
id
Object | String | Integer | Null -
preload
Object- optional set of attributes and relationships passed in either as IDs or as actual models
Returns:
promise
findAll
-
type
This method returns an array of all records adapter can find.
It triggers the adapter's findAll
method to give it an opportunity to populate
the array with records of that type.
Parameters:
-
type
String or subclass of DS.Model
Returns:
findBelongsTo
-
owner
-
link
-
relationship
Parameters:
-
owner
DS.Model -
link
Any -
relationship
Relationship
Returns:
promise
findById
-
type
-
id
-
preload
This method returns a record for a given type and id combination.
Parameters:
-
type
String or subclass of DS.Model -
id
String | Integer -
preload
Object- optional set of attributes and relationships passed in either as IDs or as actual models
Returns:
promise
findByIds
-
type
-
ids
This method makes a series of requests to the adapter's find
method
and returns a promise that resolves once they are all loaded.
Parameters:
-
type
String -
ids
Array
Returns:
promise
findHasMany
-
owner
-
link
-
type
If a relationship was originally populated by the adapter as a link (as opposed to a list of IDs), this method is called when the relationship is fetched.
The link (which is usually a URL) is passed through unchanged, so the adapter can make whatever request it wants.
The usual use-case is for the server to register a URL as a link, and then use that URL in the future to make a request for the relationship.
Parameters:
-
owner
DS.Model -
link
Any -
type
String or subclass of DS.Model
Returns:
promise
findMany
-
owner
-
records
-
type
-
resolver
Parameters:
-
owner
DS.Model -
records
Array -
type
String or subclass of DS.Model -
resolver
Resolver
Returns:
records
findQuery
-
type
-
query
This method delegates a query to the adapter. This is the one place where adapter-level semantics are exposed to the application.
Exposing queries this way seems preferable to creating an abstract query language for all server-side queries, and then require all adapters to implement them.
This method returns a promise, which is resolved with a RecordArray
once the server returns.
Parameters:
-
type
String or subclass of DS.Model -
query
Anyan opaque query to be used by the adapter
Returns:
promise
flushPendingSave
()
private
This method is called at the end of the run loop, and
flushes any records passed into scheduleSave
getById
-
type
-
id
Get a record by a given type and ID without triggering a fetch.
This method will synchronously return the record if it is available in the store,
otherwise it will return null
. A record is available if it has been fetched earlier, or
pushed manually into the store.
Note: This is an synchronous method and does not return a promise.
var post = store.getById('post', 1);
post.get('id'); // 1
Parameters:
-
type
String or subclass of DS.Model -
id
String | Integer
Returns:
record
hasRecordForId
-
type
-
id
Returns true if a record for a given type and ID is already loaded.
Parameters:
-
type
String or subclass of DS.Model -
id
String | Integer
Returns:
init
()
private
metadataFor
-
type
This method returns the metadata for a specific type.
Parameters:
-
type
String or subclass of DS.Model
Returns:
metaForType
-
type
-
metadata
If you have some metadata to set for a type
you can call metaForType
.
Parameters:
-
type
String or subclass of DS.Model -
metadata
Object
modelFor
-
key
Returns a model class for a particular key. Used by
methods that take a type key (like find
, createRecord
,
etc.)
Parameters:
-
key
String or subclass of DS.Model
Returns:
normalize
-
type
-
payload
normalize
converts a json payload into the normalized form that
push expects.
Example
socket.on('message', function(message) {
var modelName = message.model;
var data = message.data;
store.push(modelName, store.normalize(modelName, data));
});
Parameters:
-
type
StringThe name of the model type for this payload
-
payload
Object
Returns:
The normalized payload
push
-
type
-
data
Push some data for a given type into the store.
This method expects normalized data:
- The ID is a key named
id
(an ID is mandatory) - The names of attributes are the ones you used in
your model's
DS.attr
s. - Your relationships must be:
- represented as IDs or Arrays of IDs
- represented as model instances
- represented as URLs, under the
links
key
For this model:
App.Person = DS.Model.extend({
firstName: DS.attr(),
lastName: DS.attr(),
children: DS.hasMany('person')
});
To represent the children as IDs:
{
id: 1,
firstName: "Tom",
lastName: "Dale",
children: [1, 2, 3]
}
To represent the children relationship as a URL:
{
id: 1,
firstName: "Tom",
lastName: "Dale",
links: {
children: "/people/1/children"
}
}
If you're streaming data or implementing an adapter, make sure that you have converted the incoming data into this form.
This method can be used both to push in brand new records, as well as to update existing records.
Parameters:
-
type
String or subclass of DS.Model -
data
Object
Returns:
the record that was created or updated.
pushMany
-
type
-
datas
If you have an Array of normalized data to push,
you can call pushMany
with the Array, and it will
call push
repeatedly for you.
Parameters:
-
type
String or subclass of DS.Model -
datas
Array
Returns:
pushPayload
-
type
-
payload
Push some raw data into the store.
This method can be used both to push in brand new records, as well as to update existing records. You can push in more than one type of object at once. All objects should be in the format expected by the serializer.
App.ApplicationSerializer = DS.ActiveModelSerializer;
var pushData = {
posts: [
{id: 1, post_title: "Great post", comment_ids: [2]}
],
comments: [
{id: 2, comment_body: "Insightful comment"}
]
}
store.pushPayload(pushData);
By default, the data will be deserialized using a default serializer (the application serializer if it exists).
Alternatively, pushPayload
will accept a model type which
will determine which serializer will process the payload.
However, the serializer itself (processing this data via
normalizePayload
) will not know which model it is
deserializing.
App.ApplicationSerializer = DS.ActiveModelSerializer;
App.PostSerializer = DS.JSONSerializer;
store.pushPayload('comment', pushData); // Will use the ApplicationSerializer
store.pushPayload('post', pushData); // Will use the PostSerializer
Parameters:
-
type
StringOptionally, a model used to determine which serializer will be used
-
payload
Object
recordForId
-
type
-
id
Returns id record for a given type and ID. If one isn't already loaded,
it builds a new record and leaves it in the empty
state.
Parameters:
-
type
String or subclass of DS.Model -
id
String | Integer
Returns:
record
recordIsLoaded
-
type
-
id
This method returns if a certain record is already loaded in the store. Use this function to know beforehand if a find() will result in a request or that it will be a cache hit.
Example
store.recordIsLoaded('post', 1); // false
store.find('post', 1).then(function() {
store.recordIsLoaded('post', 1); // true
});
Parameters:
-
type
String or subclass of DS.Model -
id
String
Returns:
recordWasError
-
record
This method is called once the promise returned by an
adapter's createRecord
, updateRecord
or deleteRecord
is rejected (with anything other than a DS.InvalidError
).
Parameters:
-
record
DS.Model
recordWasInvalid
-
record
-
errors
This method is called once the promise returned by an
adapter's createRecord
, updateRecord
or deleteRecord
is rejected with a DS.InvalidError
.
Parameters:
-
record
DS.Model -
errors
Object
reloadRecord
-
record
This method is called by the record's reload
method.
This method calls the adapter's find
method, which returns a promise. When
that promise resolves, reloadRecord
will resolve the promise returned
by the record's reload
.
Parameters:
-
record
DS.Model
Returns:
promise
scheduleSave
-
record
-
resolver
This method is called by record.save
, and gets passed a
resolver for the promise that record.save
returns.
It schedules saving to happen at the end of the run loop.
Parameters:
-
record
DS.Model -
resolver
Resolver
serialize
-
record
-
options
Returns a JSON representation of the record using a custom type-specific serializer, if one exists.
The available options are:
includeId
:true
if the record's ID should be included in the JSON representation
Parameters:
-
record
DS.Modelthe record to serialize
-
options
Objectan options hash
serializerFor
-
type
Returns an instance of the serializer for a given type. For
example, serializerFor('person')
will return an instance of
App.PersonSerializer
.
If no App.PersonSerializer
is found, this method will look
for an App.ApplicationSerializer
(the default serializer for
your entire application).
If no App.ApplicationSerializer
is found, it will fall back
to an instance of DS.JSONSerializer
.
Parameters:
-
type
Stringthe record to serialize
Returns:
typeMapFor
-
type
Returns a map of IDs to client IDs for a given type.
Parameters:
-
type
subclass of DS.Model
Returns:
typeMap
unloadAll
-
type
This method unloads all of the known records for a given type.
store.unloadAll('post');
Parameters:
-
type
String or subclass of DS.Model
unloadRecord
-
record
For symmetry, a record can be unloaded via the store. Only non-dirty records can be unloaded.
Example
store.find('post', 1).then(function(post) {
store.unloadRecord(post);
});
Parameters:
-
record
DS.Model
update
-
type
-
data
Update existing records in the store. Unlike push, update will merge the new data properties with the existing properties. This makes it safe to use with a subset of record attributes. This method expects normalized data.
update
is useful if your app broadcasts partial updates to
records.
App.Person = DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string')
});
store.get('person', 1).then(function(tom) {
tom.get('firstName'); // Tom
tom.get('lastName'); // Dale
var updateEvent = {id: 1, firstName: "TomHuda"};
store.update('person', updateEvent);
tom.get('firstName'); // TomHuda
tom.get('lastName'); // Dale
});
Parameters:
-
type
String -
data
Object
Returns:
the record that was updated.
updateId
-
record
-
data
When an adapter's createRecord
, updateRecord
or deleteRecord
resolves with data, this method extracts the ID from the supplied
data.
Parameters:
-
record
DS.Model -
data
Object
Properties
adapter
DS.Adapter | String
The adapter to use to communicate to a backend server or other persistence layer.
This can be specified as an instance, class, or string.
If you want to specify App.CustomAdapter
as a string, do:
adapter: 'custom'
Default: DS.RESTAdapter
defaultAdapter
Unknown
private
This property returns the adapter, after resolving a possible string key.
If the supplied adapter
was a class, or a String property
path resolved to a class, this property will instantiate the
class.
This property is cacheable, so the same instance of a specified adapter class should be used for the lifetime of the store.