If you wanted to know
whether shifts in the African climate during Paleolithic times correlated with
the appearance and disappearance of hominin species, how would you find the
answer? It's a tricky question because of the massive amounts of noisy,
complicated data you would need to analyze.
Now researchers in
Germany have developed a new tool to help grapple with enormous data sets and
reveal big picture trends, such as climatic tipping points and their effects on
species. The researchers created a software package based on the Python
programming language that unifies complex network theory and nonlinear time
series analysis - two important data analysis concepts.
A complex network is
just that - a social, biological or technological network with patterns of
connections that are neither regular nor purely random. Nonlinear time series
analyses are often used to look at complex systems, including those that unfold
in a chaotic manner. Many natural phenomena, like changing weather patterns,
are nonlinear in nature—as are man-made systems, like financial markets.
The researchers named
the software that unifies the two concepts pyunicorn. They discuss their
findings in this week's CHAOS.
"Pyunicorn works
like a macroscope, [which], if used the right way, allows to distill the
essence of information from a network or time series data," said Jonathan
Donges, a former Ph.D. student in the group of Jürgen Kurths and co-speaker of
a flagship project, called COPAN, at the Potsdam Institute for Climate Impact
Research (PIK) in Germany, which aims to develop conceptual models of global
socio-environmental dynamics.
The software could be
used to identify critical network structures, such as bottlenecks and
backbones, for transport processes, as well as revealing tipping points in
climatological or physiological time series.
Accordingly, the
package's main application is the analysis of data from observations,
experiments and model systems by way of graphs and time series of several
quantities in parallel, such as temperature, precipitation and wind for
climate, or blood pressure and breathing for physiology. By applying recurrence
network analysis, which studies when a system returns to a former state,
pyunicorn was able to detect tipping points in time series. This includes the
aforementioned paleoclimate records, as well as the early emergence of a severe
condition in pregnant women known as preeclampsia.
Donges's previous work
has involved complex networks and nonlinear time series analysis and their
applications to real world data analysis. Developing the pyunicorn package
involved collaborators at PIK, Humboldt University Berlin, the Stockholm
Resilience Centre, Institute for Marine and Atmospheric Research Utrecht,
University of Aberdeen and Nishny Novgorod State University, located
respectively in Germany, Sweden, The Netherlands, the United Kingdom and
Russia.
"Many of these
methods were newly developed by our team and, moreover, there was a lack of
coherent software implementations for existing methods," said Donges.
"Pyunicorn was developed to close this gap and to provide an integrative
software framework for applying and further developing methods for complex
networks and nonlinear time series analysis and their combinations."
As its name might imply,
pyunicorn is written in Python, a popular open-source programming language. The
package is designed in a modular fashion that makes it easy to use in different
settings, ranging from interactive analysis sessions on laptops to large-scale
parallel data analysis on
supercomputer clusters. As with all Python software, pyunicorn runs on a
variety of operating systems, including Linux, Mac OSX, Windows and Android.
The software's
versatility fulfills a key aim of the project, which was to make the software
publicly available and easy to use for researchers and practitioners in a
variety of fields, ranging from complex systems science to climatology,
medicine, neuroscience, economics and engineering.
"Many of the
provided methods were not freely available before to the scientific community,
and weren't available in the flexible and popular Python programming
language," said Jürgen Kurths, who supervised the work.
Future work for Donges
and his colleagues involves speeding up the package's code and ensuring
compatibility with the Python 3.x platform. Donges remains optimistic but
cautious about the uses of the package.
"Combining
well-known approaches in a new way can yield exciting insights and perspectives
in complex systems science," he said. "Software packages such as
pyunicorn can be highly useful in catalyzing this process, but need to be
applied in a thoughtful and theory-based way. Otherwise, the result might be
junk science."