Skip to main content

Artificial intelligence reveals undiscovered bat carriers of Ebola and other filoviruses

Maps pinpoint hotspots, can guide surveillance and virus discovery.

Error message

  • Deprecated function: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in Drupal\Component\Utility\Unicode::validateUtf8() (line 395 of core/lib/Drupal/Component/Utility/Unicode.php).
    Drupal\Component\Utility\Unicode::validateUtf8() (Line: 65)
    Drupal\Component\Utility\Xss::filter() (Line: 351)
    _colorbox_formatter_get_caption() (Line: 140)
    template_preprocess_colorbox_formatter()
    call_user_func_array() (Line: 261)
    Drupal\Core\Theme\ThemeManager->render() (Line: 491)
    Drupal\Core\Render\Renderer->doRender() (Line: 248)
    Drupal\Core\Render\Renderer->render() (Line: 484)
    Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 254)
    __TwigTemplate_e65ca13bf6eca804de0e3b2c94cbf463->{closure}() (Line: 2061)
    Twig\Extension\CoreExtension::captureOutput() (Line: 44)
    __TwigTemplate_e65ca13bf6eca804de0e3b2c94cbf463->doDisplay() (Line: 387)
    Twig\Template->yield() (Line: 343)
    Twig\Template->display() (Line: 358)
    Twig\Template->render() (Line: 35)
    Twig\TemplateWrapper->render() (Line: 33)
    twig_render_template() (Line: 348)
    Drupal\Core\Theme\ThemeManager->render() (Line: 491)
    Drupal\Core\Render\Renderer->doRender() (Line: 504)
    Drupal\Core\Render\Renderer->doRender() (Line: 248)
    Drupal\Core\Render\Renderer->render() (Line: 484)
    Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 45)
    __TwigTemplate_29a6bd8ca064d68d79a709de008b1300->doDisplay() (Line: 387)
    Twig\Template->yield() (Line: 343)
    Twig\Template->display() (Line: 358)
    Twig\Template->render() (Line: 35)
    Twig\TemplateWrapper->render() (Line: 33)
    twig_render_template() (Line: 348)
    Drupal\Core\Theme\ThemeManager->render() (Line: 491)
    Drupal\Core\Render\Renderer->doRender() (Line: 504)
    Drupal\Core\Render\Renderer->doRender() (Line: 248)
    Drupal\Core\Render\Renderer->render() (Line: 224)
    Drupal\entity_embed\Plugin\Filter\EntityEmbedFilter->Drupal\entity_embed\Plugin\Filter\{closure}() (Line: 638)
    Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 223)
    Drupal\entity_embed\Plugin\Filter\EntityEmbedFilter->process() (Line: 118)
    Drupal\filter\Element\ProcessedText::preRenderText()
    call_user_func_array() (Line: 113)
    Drupal\Core\Render\Renderer->doTrustedCallback() (Line: 870)
    Drupal\Core\Render\Renderer->doCallback() (Line: 432)
    Drupal\Core\Render\Renderer->doRender() (Line: 248)
    Drupal\Core\Render\Renderer->render() (Line: 484)
    Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 254)
    __TwigTemplate_e65ca13bf6eca804de0e3b2c94cbf463->{closure}() (Line: 2061)
    Twig\Extension\CoreExtension::captureOutput() (Line: 44)
    __TwigTemplate_e65ca13bf6eca804de0e3b2c94cbf463->doDisplay() (Line: 387)
    Twig\Template->yield() (Line: 343)
    Twig\Template->display() (Line: 358)
    Twig\Template->render() (Line: 35)
    Twig\TemplateWrapper->render() (Line: 33)
    twig_render_template() (Line: 348)
    Drupal\Core\Theme\ThemeManager->render() (Line: 491)
    Drupal\Core\Render\Renderer->doRender() (Line: 248)
    Drupal\Core\Render\Renderer->render() (Line: 484)
    Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 423)
    __TwigTemplate_bcdae20cc74e927d9ce983809150de87->doDisplay() (Line: 387)
    Twig\Template->yield() (Line: 343)
    Twig\Template->display() (Line: 358)
    Twig\Template->render() (Line: 35)
    Twig\TemplateWrapper->render() (Line: 33)
    twig_render_template() (Line: 348)
    Drupal\Core\Theme\ThemeManager->render() (Line: 491)
    Drupal\Core\Render\Renderer->doRender() (Line: 248)
    Drupal\Core\Render\Renderer->render() (Line: 238)
    Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 638)
    Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 231)
    Drupal\Core\Render\MainContent\HtmlRenderer->prepare() (Line: 128)
    Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse() (Line: 90)
    Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray()
    call_user_func() (Line: 111)
    Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() (Line: 186)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 53)
    Drupal\Core\StackMiddleware\Session->handle() (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle() (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle() (Line: 191)
    Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 128)
    Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 82)
    Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 50)
    Drupal\ban\BanMiddleware->handle() (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 36)
    Drupal\Core\StackMiddleware\AjaxPageState->handle() (Line: 51)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 741)
    Drupal\Core\DrupalKernel->handle() (Line: 19)
    
  • Deprecated function: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in Drupal\Component\Utility\Xss::filter() (line 69 of core/lib/Drupal/Component/Utility/Xss.php).
    Drupal\Component\Utility\Xss::filter() (Line: 351)
    _colorbox_formatter_get_caption() (Line: 140)
    template_preprocess_colorbox_formatter()
    call_user_func_array() (Line: 261)
    Drupal\Core\Theme\ThemeManager->render() (Line: 491)
    Drupal\Core\Render\Renderer->doRender() (Line: 248)
    Drupal\Core\Render\Renderer->render() (Line: 484)
    Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 254)
    __TwigTemplate_e65ca13bf6eca804de0e3b2c94cbf463->{closure}() (Line: 2061)
    Twig\Extension\CoreExtension::captureOutput() (Line: 44)
    __TwigTemplate_e65ca13bf6eca804de0e3b2c94cbf463->doDisplay() (Line: 387)
    Twig\Template->yield() (Line: 343)
    Twig\Template->display() (Line: 358)
    Twig\Template->render() (Line: 35)
    Twig\TemplateWrapper->render() (Line: 33)
    twig_render_template() (Line: 348)
    Drupal\Core\Theme\ThemeManager->render() (Line: 491)
    Drupal\Core\Render\Renderer->doRender() (Line: 504)
    Drupal\Core\Render\Renderer->doRender() (Line: 248)
    Drupal\Core\Render\Renderer->render() (Line: 484)
    Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 45)
    __TwigTemplate_29a6bd8ca064d68d79a709de008b1300->doDisplay() (Line: 387)
    Twig\Template->yield() (Line: 343)
    Twig\Template->display() (Line: 358)
    Twig\Template->render() (Line: 35)
    Twig\TemplateWrapper->render() (Line: 33)
    twig_render_template() (Line: 348)
    Drupal\Core\Theme\ThemeManager->render() (Line: 491)
    Drupal\Core\Render\Renderer->doRender() (Line: 504)
    Drupal\Core\Render\Renderer->doRender() (Line: 248)
    Drupal\Core\Render\Renderer->render() (Line: 224)
    Drupal\entity_embed\Plugin\Filter\EntityEmbedFilter->Drupal\entity_embed\Plugin\Filter\{closure}() (Line: 638)
    Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 223)
    Drupal\entity_embed\Plugin\Filter\EntityEmbedFilter->process() (Line: 118)
    Drupal\filter\Element\ProcessedText::preRenderText()
    call_user_func_array() (Line: 113)
    Drupal\Core\Render\Renderer->doTrustedCallback() (Line: 870)
    Drupal\Core\Render\Renderer->doCallback() (Line: 432)
    Drupal\Core\Render\Renderer->doRender() (Line: 248)
    Drupal\Core\Render\Renderer->render() (Line: 484)
    Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 254)
    __TwigTemplate_e65ca13bf6eca804de0e3b2c94cbf463->{closure}() (Line: 2061)
    Twig\Extension\CoreExtension::captureOutput() (Line: 44)
    __TwigTemplate_e65ca13bf6eca804de0e3b2c94cbf463->doDisplay() (Line: 387)
    Twig\Template->yield() (Line: 343)
    Twig\Template->display() (Line: 358)
    Twig\Template->render() (Line: 35)
    Twig\TemplateWrapper->render() (Line: 33)
    twig_render_template() (Line: 348)
    Drupal\Core\Theme\ThemeManager->render() (Line: 491)
    Drupal\Core\Render\Renderer->doRender() (Line: 248)
    Drupal\Core\Render\Renderer->render() (Line: 484)
    Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 423)
    __TwigTemplate_bcdae20cc74e927d9ce983809150de87->doDisplay() (Line: 387)
    Twig\Template->yield() (Line: 343)
    Twig\Template->display() (Line: 358)
    Twig\Template->render() (Line: 35)
    Twig\TemplateWrapper->render() (Line: 33)
    twig_render_template() (Line: 348)
    Drupal\Core\Theme\ThemeManager->render() (Line: 491)
    Drupal\Core\Render\Renderer->doRender() (Line: 248)
    Drupal\Core\Render\Renderer->render() (Line: 238)
    Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 638)
    Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 231)
    Drupal\Core\Render\MainContent\HtmlRenderer->prepare() (Line: 128)
    Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse() (Line: 90)
    Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray()
    call_user_func() (Line: 111)
    Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() (Line: 186)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 53)
    Drupal\Core\StackMiddleware\Session->handle() (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle() (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle() (Line: 191)
    Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 128)
    Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 82)
    Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 50)
    Drupal\ban\BanMiddleware->handle() (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 36)
    Drupal\Core\StackMiddleware\AjaxPageState->handle() (Line: 51)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 741)
    Drupal\Core\DrupalKernel->handle() (Line: 19)
    

(Millbrook, NY) A team of scientists has developed a model that can predict bat species most likely to transmit Ebola and other filoviruses. Findings highlight new potential hosts and geographic hotspots worthy of surveillance. So reports a new paper in the journal PLoS Neglected Tropical Diseases.

Filoviruses have devastating effects on people and primates, as evidenced by the 2014 Ebola outbreak in West Africa. For nearly 40 years, preventing spillover events has been hampered by an inability to pinpoint which wildlife species harbor and spread the viruses. To date, outbreaks have occurred in areas with exceptionally high biodiversity. 

Barbara Han, a disease ecologist at the Cary Institute of Ecosystem Studies and the paper’s lead author, comments, “Using machine learning methods developed for artificial intelligence, we were able to bring together data from ecology, biogeography, and public health to identify bat species with a high probability of harboring Ebola and other filoviruses. Understanding which species carry these viruses, and where they are located, is essential to preventing future spillovers.”
 

bat
Of the world's 1116 bat species, only a small percentage have been flagged as potential hosts of filoviruses. Knowing where these bats live can help guide targeted surveillance and virus discovery. Straw-coloured fruit bat. Photo: Martin Grimm via Flickr.

The research team included scientists from the University of Georgia, Massey University, and the University of California. They focused on bats – primary suspects in the search for Ebola reservoirs. While Ebola virus has never been isolated from a live African mammal in the wild, several bat species have tested positive for filovirus antibodies. In lab inoculations, three bat species have replicated Ebola. And, unlike great apes and humans, bats infected with filoviruses are largely symptom-free. 

First, the team developed a ‘profile’ of filovirus-positive bat species by looking at life history, physiological, and ecological attributes of the 21 bat species known to harbor filoviruses. Using 57 variables, from diet and reproductive behavior to migratory patterns and species density, an algorithm learned features that distinguish bats that have tested positive for filoviruses from other bat species with 87% accuracy.  

David Hayman of Massey University notes, “The model allows us to move beyond our own biases and find patterns in the data that only a machine can. Instead of predicting where Ebola and other filovirus outbreaks will occur by looking at the last spillover event, it forecasts risk based on the intrinsic traits of filovirus-positive bat species.” 

Those traits include: early maturity, having more than one pup per year (most bats only have one), offspring that are large at birth, and a tendency to live in large groups. Compared to other bats, filovirus-positive species also have broader geographic ranges that overlap with a higher diversity of mammal species per square kilometer.

When data on the world’s 1116 bat species were searched using this filovirus-positive bat profile, machine learning identified new potential hosts based on their traits. Once mapped, these bats were more widely distributed than the team expected. While many potential bat hosts are found in sub-Saharan Africa, they also range across Southeast Asia and Central and South America.

Range maps of known and predicted additional filovirus-positive bat species. Credit: PLOS Neglected Tropical Diseases by Han et al. from the Cary Institute.

Han explains, “Our results corroborate studies in Africa that have predicted the environmental niche of Ebola spans the primary tropical rainforest. But in a departure from past research, we identified several hotspots in Southeast Asia where up to 26 potential reservoir species overlap, notably in Thailand, Burma, Malaysia, Vietnam, and northeast India.”

John Drake of the University of Georgia concludes, “Maps generated by the algorithm can help guide targeted surveillance and virus discovery projects. We suspect there may be other filoviruses waiting to be found. An outstanding question for future work is to investigate why there are so few filovirus spillover events reported for humans and wildlife in Southeast Asia compared to equatorial Africa.”

Research is part of an ongoing effort to merge Big Data and machine learning to prioritize the surveillance and management of emerging infectious diseases globally. To access full text of the paper Undiscovered bat hosts of filoviruses visit: http://dx.plos.org/10.1371/journal.pntd.0004815.

web resource

The Algorithm That's Hunting Ebola


The Cary Institute of Ecosystem Studies is an independent, nonprofit environmental research organization located on 2,000 acres in New York’s Hudson Valley. A world-premier center for ecosystem science, areas of expertise include disease ecology, forest and freshwater health, climate change, urban ecology, and invasive species. Since 1983, our scientists have produced the unbiased research needed to inform effective management and policy decisions. Our science program is complemented by education and outreach initiatives.

More on this topic