Proceedings of SciPy 2017

SciPy 2017, the 16th annual Scientific Computing with Python conference, was held July 10-16, 2017 in Austin, Texas. 17 peer reviewed articles were published in the conference proceedings. Full proceedings and organizing committee can be found at https://proceedings.scipy.org/articles/shinma-7f4c6e7-000.

NEXT: A system to easily connect crowdsourcing and adaptive data collection

Obtaining useful crowdsourcing results often requires more responses than can be easily collected. Reducing the number of responses required can be done by adapting to previous responses with "adaptive" sampling algorithms, but these algorithms present a fundamental challenge when paired with crowdsourcing.
Scott Sievert, Daniel Ross, Lalit Jain, +3
https://doi.org/10.25080/shinma-7f4c6e7-010

ChiantiPy: a Python package for Astrophysical Spectroscopy

ChiantiPy is an interface to the CHIANTI atomic database for astrophysical spectroscopy. The highly-cited CHIANTI project, now in its 20th year, is an invaluable resource to the solar physics community.
Will T. Barnes, Kenneth P. Dere
https://doi.org/10.25080/shinma-7f4c6e7-011

Accelerating Scientific Python with Intel Optimizations

It is well-known that the performance difference between Python and basic C code can be up 200x, but for numerically intensive code another speed-up factor of 240x or even greater is possible. The performance comes from software's ability to take advantage of CPU's multiple cores, single instruction multiple data (SIMD) instructions, and high performance caches.
Oleksandr Pavlyk, Denis Nagorny, Andres Guzman-Ballen, +5
https://doi.org/10.25080/shinma-7f4c6e7-00f

Python meets systems neuroscience: affordable, scalable and open-source electrophysiology in awake, behaving rodents

In-vivo electrophysiology, the recording of neurons in the brains of awake, behaving animals, is currently undergoing paradigm shifts. There is a push towards moving to open-source technologies that can: 1) be adjusted to specific experiments; 2) be shared with ease; and 3) more affordably record from larger numbers of electrodes simultaneously.
Narendra Mukherjee, Joseph Wachutka, Donald B Katz
https://doi.org/10.25080/shinma-7f4c6e7-00e

Optimised finite difference computation from symbolic equations

Domain-specific high-productivity environments are playing an increasingly important role in scientific computing due to the levels of abstraction and automation they provide. In this paper we introduce Devito, an open-source domain-specific framework for solving partial differential equations from symbolic problem definitions by the finite difference method.
Michael Lange, Navjot Kukreja, Fabio Luporini, +4
https://doi.org/10.25080/shinma-7f4c6e7-00d

pulse2percept: A Python-based simulation framework for bionic vision

By 2020 roughly 200 million people worldwide will suffer from photoreceptor diseases such as retinitis pigmentosa and age-related macular degeneration, and a variety of retinal sight restoration technologies are being developed to target these diseases.
Michael Beyeler, Geoffrey M. Boynton, Ione Fine, +1
https://doi.org/10.25080/shinma-7f4c6e7-00c

MatchPy: A Pattern Matching Library

Pattern matching is a powerful tool for symbolic computations, based on the well-defined theory of term rewriting systems. Application domains include algebraic expressions, abstract syntax trees, and XML and JSON data.
Manuel Krebber, Henrik Bartels, Paolo Bientinesi
https://doi.org/10.25080/shinma-7f4c6e7-00b

Parallel Analysis in MDAnalysis using the Dask Parallel Computing Library

The analysis of biomolecular computer simulations has become a challenge because the amount of output data is now routinely in the terabyte range. We evaluated if this challenge can be met by a parallel map-reduce approach with the Dask parallel computing library for task-graph based computing coupled with our MDAnalysis Python library for the analysis of molecular dynamics (MD) simulations.
Mahzad Khoshlessan, Ioannis Paraskevakos, Shantenu Jha, +1
https://doi.org/10.25080/shinma-7f4c6e7-00a

FigureFirst: A Layout-first Approach for Scientific Figures

One major reason that Python has been widely adopted as a scientific computing platform is the availability of powerful visualization libraries. Although these tools facilitate discovery and data exploration, they are difficult to use when constructing the sometimes-intricate figures required to advance the narrative of a scientific manuscript.
Theodore Lindsay, Peter T. Weir, Floris van Breugel
https://doi.org/10.25080/shinma-7f4c6e7-009

The Sacred Infrastructure for Computational Research

We present a toolchain for computational research consisting of Sacred and two supporting tools. Sacred is an open source Python framework which aims to provide basic infrastructure for running computational experiments independent of the methods and libraries used.
Klaus Greff, Aaron Klein, Martin Chovanec, +2
https://doi.org/10.25080/shinma-7f4c6e7-008

SciSheets: Providing the Power of Programming With The Simplicity of Spreadsheets

Digital spreadsheets are arguably the most pervasive environment for end user programming on the planet. Although spreadsheets simplify many calculations, they fail to address requirements for expressivity, reuse, complex data, and performance.
Alicia Clark, Joseph L. Hellerstein
https://doi.org/10.25080/shinma-7f4c6e7-007

PyHRF: A Python Library for the Analysis of fMRI Data Based on Local Estimation of the Hemodynamic Response Function

Functional Magnetic Resonance Imaging (fMRI) is a neuroimaging technique that allows the non-invasive study of brain function. It is based on the hemodynamic variations induced by changes in cerebral synaptic activity following sensory or cognitive stimulation.
Jaime Arias, Philippe Ciuciu, Michel Dojat, +4
https://doi.org/10.25080/shinma-7f4c6e7-006

pyMolDyn: Identification, structure, and properties of cavities in condensed matter and molecules

pyMolDyn is an interactive viewer of atomic systems defined in a unit cell and is particularly useful for crystalline and amorphous materials. It identifies and visualizes cavities (vacancies, voids) in simulation cells corresponding to all seven 3D Bravais lattices, makes no assumptions about cavity shapes, allows for atoms of different size, and locates the cavity centers (the centers of the largest spheres not including an atom center).
Ingo Heimbach, Florian Rhiem, Fabian Beule, +3
https://doi.org/10.25080/shinma-7f4c6e7-005

LabbookDB: A Wet-Work-Tracking Database Application Framework

LabbookDB is a relational database application framework for life sciences—providing an extendable schema and functions to conveniently add and retrieve information, and generate summaries. The core concept of LabbookDB is that wet work metadata commonly tracked in lab books or spreadsheets is more efficiently and more reliably stored in a relational database, and more flexibly queried.
Horea-Ioan Ioanas, Bechara John Saab, Markus Rudin
https://doi.org/10.25080/shinma-7f4c6e7-004

BespON: Extensible config files with multiline strings, lossless round-tripping, and hex floats

BespON is a human-editable data format focused on expressive syntax, lossless round-tripping, and advanced features for scientific and technical tasks. Nested data structures can be represented concisely without multiple levels of either brackets or significant whitespace.
Geoffrey M. Poore
https://doi.org/10.25080/shinma-7f4c6e7-003

Software Transactional Memory in Pure Python

There has been a growing interest in programming models for concurrency. Strategies for dealing with shared data amongst parallel threads of execution include immutable (as in Erlang) and locked (as in Python) data structures.
Dillon Niederhut
https://doi.org/10.25080/shinma-7f4c6e7-002

SPORCO: A Python package for standard and convolutional sparse representations

SParse Optimization Research COde (SPORCO) is an open-source Python package for solving optimization problems with sparsity-inducing regularization, consisting primarily of sparse coding and dictionary learning, for both standard and convolutional forms of sparse representation.
Brendt Wohlberg
https://doi.org/10.25080/shinma-7f4c6e7-001