Skip to main content

Nature’s numbers: Salamanders at risk

This summer, I created a map depicting where in the US salamanders might be at risk of contracting Batrachochytrium salamandrivorans (Bsal), a fungal pathogen that would be devastating if it were to arrive in the US.

Michael Moubarak

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)
    

A student contribution to the REU blog.

Spending time outdoors as a child sparked my interest in biology; this led me to study ecology in college. I soon realized that what drove my fascination with ecology was an appreciation for the math underlying natural systems. For example, one of my favorite things to do in nature when I was younger was to lie on my back and examine the branching patterns of the tree canopy. Eager to apply numbers to the natural phenomena I observed, I devised a formula to calculate the speed of the stream near my house using tree branches. 

As I developed my math skills, I found myself driven indoors by the tools needed to study nature’s patterns. I feel a tension between needing the outdoors for inspiration and needing to be inside to process my thoughts using math. Cary’s REU program has offered valuable insight into how I can meld these interests, which at times feel to be at odds.

This summer, I created a map depicting where in the US salamanders might be at risk of contracting Batrachochytrium salamandrivorans (Bsal), a fungal pathogen that would be devastating if it were to arrive in the United States. The pathogen originated in southeast Asia, and has only recently begun to spread to Europe, likely making the trip through the pet trade. Little is known about which species are at risk and which environments are suitable for the pathogen; my project tried to answer both of those questions for salamanders in the US. 

stream
The stream by my house where I first experimented with numbers in nature. 

The project was an opportunity to delve into two different types of machine learning. First, I had to locate environments where the pathogen could thrive in the US based on where it has been found in southeast Asia. Then I had to locate populations of salamanders in the US that have life history traits, such as body size and diet, that we correlated with known Bsal infection in other salamander species. High-risk zones occur where these areas overlap. Flagging these areas can help direct future conservation and research efforts aimed at mitigating disease spread. To process these large datasets, I had to access a remote supercomputer through a VPN connection on my laptop. 

An aspect of my research skillset that I’m working to improve is asking specific and answerable questions. I found this to be challenging this summer because I have little personal experience with salamanders and I wasn’t able to go out to find some to observe. This summer, I compensated for this lack of physical outdoor immersion by reading lots of scientific papers. In so doing, I learned how to observe nature in a more flexible way. 

What I found most interesting from reading those scientific papers was how different salamander species respond to the fungal pathogen in different ways. The pathogen infects salamanders’ skin, and while some species appear to be asymptomatic, other species quickly succumb. I wanted to learn what causes these differences in response – a question which became central to my research this summer. 

I later came to realize that this question was inspired by my interest in the differences emerging in response to COVID-19 among people. There are distinct parallels. Some people become infected but show no symptoms, some show mild symptoms then recover, and to many others, the disease is lethal. Scientists around the globe are working tirelessly to understand these differences and why they exist. This understanding could help doctors tailor treatment according to patient traits that influence how COVID-19 symptoms manifest. It could also help inform prevention measures. 

Michael Moubarak.

Although these are very different systems with very different stakes, thinking about COVID-19 shaped my thinking about salamanders. I learned that recognizing such parallels is key to growing scientific knowledge across seemingly disparate research areas.  

This summer also helped me realize that my passions for ecology and math do not need to compete for indoor and outdoor time in my life. This lesson is timely for me, as I am about to transition from rural upstate New York, where I completed my biology degree, to a new college in Manhattan to start an engineering degree. In the city, I will keep my eyes peeled for inspiration from nature. Similar to my experience in the Cary REU, I suspect the source of my next research question will take me by surprise. 


Michael Moubarak, a student at Hamilton College, participated in Cary Institute's 2020 Research Experiences for Undergraduates (REU) program.

This summer, Michael worked with Cary postdoc Ilya Fischhoff, Cary data manager and spatial analyst Adrian Castellanos, and Cary scientist Barbara Han, to create a risk map depicting salamander vulnerability to the potentially invasive fungal infection Batrachochytrium salamandrivorans in the US.

More on this topic