April 11, 2013

In 2001 when Fernando Pérez was still a graduate student in particle physics, he kept bumping into walls with a popular programming language he was using called Python, as he tried to analyze an elusive theoretical phenomenon known as the quantum vacuum.

Fernando Pérez developed IPython, an interactive computing environment. Photo: Peg Skorpinski

He didn’t know it then, but the intellectual chafing he was experiencing was about to launch him on a decade of tweaking, innovating, experimenting, integrating, testing and updating of a new computing tool – the very tool he needed to propel his research forward.

He started the IPython project “on the side”, as he describes it, by making small tweaks to his Python setup. This “afternoon hack” is now an interactive computing environment that allows a programmer or researcher to run experiments and get results in real-time, and to display data in a dizzying range of ways.

One new component turns IPython into the computing equivalent of a scientist’s lab notebook – a “computational notebook” environment in which scientists worldwide now crank out novel computer code and run itimmediately in their notebook environment.

They can embed into the notebook anything that a browser can show – including video, sound, interactive diagrams, even YouTube presentations. All of this can then be organized, displayed and published seamlessly in one file that can be easily shared and viewed online.

Its power and versatility make IPython a potent educational tool, and one that supports collaboration internationally. The computing environment is now continually refined and expanded upon by hundreds of contributors, and is used by scientists in all disciplines and around the world in their everyday work.

“IPython has transformed the way developers and scientists work and collaborate,” says Pérez’s colleague, Josh Bloom, a professor of astronomy at Berkeley.

In recognition of the empowering research, publication and teaching toolkit he created, Pérez was presented in late March with the Free Software Foundation’s 2012 Award for the Advancement of Free Software, presented once a year for a “great contribution to the progress and development of free software.”

“It is exciting to see the proud Open Source software tradition at Berkeley, which began with BSD or Berkeley Unix in the 70’s and continued through Spice, Ingres, NOW, and so many great projects, lives on in IPython, enabling research and industry throughout the world,” said David Culler, Chair of Electrical Engineering and Computer Sciences.

Fernando Pérez with graduate student Min Ragan-Kelley. 
Photo: Peg Skorpinski

Enthusiastic collaborations between Pérez and colleagues have created a living, seductively interactive computing environment. And in the true spirit of its conception, IPython software is free for worldwide use.

IPython has become a popular vehicle for collaborative research. Last April, as Josh Bloom recalls, Pérez was at a genomics workshop in Colorado demonstrating how the IPython tools could be used for large-scale data analysis in the cloud. “He and a few attendees recognized in the morning that an unsolved problem in microbial ecology could be addressed with this toolkit. By the end of the day, they had found an elegant solution.”

Within a week, they had submitted their result to a microbiology journal from the prestigious Nature publishing group, where
“the IPython notebook became part of a self-contained, self-describing, and 100 percent reproducible ‘paper.’ ”

While its versatility has made IPython a favored tool for intense computational research and presentations, it has also fueled less serious pursuits. One number-cruncher applied IPython to analyze data from NFL rankings. Another generated findings so new that Pérez hadn’t yet heard of them when they were posted on the “gallery” page of the IPython website. “Awesome,” was his response upon seeing how a scientist had used IPython to run and display simulations of the process of evolution using a popular computational technique called a cellular automaton.

A physicist and applied mathematician by training, Pérez is now a research scientist at UC Berkeley’s Henry H. Wheeler Jr. Brain Imaging Center, where today he works at the interface between building scientific computing tools and the mathematical questions that arise in the analysis of brain imaging data.

Mapping different ways of sampling functions on the surface of a sphere, while
developing better algorithms for brain imaging. Fernando Pérez collaborates with
Stefan van der Walt at the University of Stellenbosch and Cory Ahrens at the
Colorado School of Mines on this project.

He is quick to credit his colleagues for innovations central to the software’s wild popularity. Berkeley graduate students Min Ragan-Kelley and James Gao built early prototypes of the IPython notebook, and soon thereafter, Cal Poly San Luis Obispo physics professor Brian Granger used the lessons learned from these efforts to build a fully working implementation that was released in late 2011 to immediate success. 

This January, Pérez and Granger received a $1.15 million grant from the Alfred P. Sloan Foundation to support further development of IPython.

Pérez cautions that developing tools to advance research can often be counter-productive to a professional scientific career.

“There is a real risk. There are people who have suffered real harm to their careers because of their interest in building powerful, new tools rather than writing a few more scientific papers.”

It’s to Berkeley’s credit, he says, that the university is open-minded enough to support development of productive, valuable tools. But, he adds, “I just happen to believe this is really important, so I’d do it regardless.” And if need be, on the side.