Author: Emily Dolson

7 Under-Appreciated Pieces of Software for Doing Science Efficiently

By Emily Dolson on March 17, 2015 in Productivity / 0 Comments
7 Under-Appreciated Pieces of Software for Doing Science Efficiently

“Under-appreciated” is definitely hard to quantify. However, these tools dramatically simplify my day-to-day workflow, and most people I talk to have only heard of them from me. So, my goal with this post is to introduce people to some useful programs they might not have heard of before. Since I use Linux Mint as my primary operating system, all of these programs are Linux-compatible. Most of them are also compatible with other operating systems.

Identifying Field-of-Origin Bias

By Emily Dolson on March 3, 2015 in Review / 0 Comments

The other day, I was reading a paper (paywall) on using graph and network theory to quantify properties of ecological landscapes, by Rayfield et al. It is a review summarizing: what properties of landscape networks we might want to measure, structural levels within networks that we might want to measure these properties at (e.g. node, neighborhood, connected component, etc), and metrics that can be used to measure a given property at a given structural level. The authors found that there was dramatic variation in the number of metrics available in these different categories. I was particularly struck by this comment, offering a potential explanation for the complete lack of component-level route redundancy metrics: “This omission could be attributed to, first, the importation of measures from other disciplines that prioritized network efficiency over network redundancy…”

Fun with GECCO 2014, ALIFE 2014, and Zotero Paper Machines

By Emily Dolson on February 10, 2015 in Review / 0 Comments
Fun with GECCO 2014, ALIFE 2014, and Zotero Paper Machines

I recently discovered the Paper Machines add-on to Zotero, which allows you to perform visualizations and topic modeling analyses on papers in your Zotero collection. I just so happened to have the complete proceedings of both GECCO 2014 and ALife 2014 kicking around in my Zotero database, so I decided to try comparing them. As a quick background, GECCO, which focuses on Genetic and Evolutionary Computation, and ALife, which focuses on Artificial Life, are the two main computer science* conferences that we in the Devolab tend to go to. There is substantial overlap between these conferences (GECCO has an Artificial Life track, after all), but there are also some fundamental differences in approach and focus. GECCO

Making Efficient Animations in Matplotlib with Blitting

By Emily Dolson on January 20, 2015 in Information / 2 Comments

I flip-flop between Python, R, and D3 for my data visualizations depending on what exactly I’m doing. My default, though, is definitely Python. One of the most well-established data visualization libraries in Python is Matplotlib. If you dig deep enough in it, you can find a wide variety of features beyond standard graphs. One of the less well-documented of these features is the animation library. The FuncAnimation class in particular is quite powerful, allowing you to programmatically generate the frames for your animation and compile them together. Jake VanderPlas has a great tutorial on using FuncAnimation which I’m not going to try to duplicate. Here, I’m just going to focus on a small but critical aspect of using FuncAnimation that is glossed over elsewhere: blitting. Here’s how critical blitting is: My first attempted Matplotlib animation took […]

Spatial Co-evolution in Age-Layered Planes

By Emily Dolson on January 13, 2015 in Review / 0 Comments

I recently read a cool paper from GECCO 2012 called “Spatial Co-Evolution: Quicker, Fitter and Less Bloated” [1] by Robin Harper. This paper explores some benefits of the Spatial Co-evolution in Age-Layered Planes (SCALP) algorithm, originally described by Harper in a previous paper (paywall) [2]. In SCALP, the population lives in a three-dimensional grid of cells. Each cell is inhabited by both a solver (the “host”) and a test case (the “parasite”). Solvers try to find the right answer for each test case that is either next to or below them. They gain fitness by more closely approximating the desired answer. Test cases, on the other hand, gain fitness by being hard to get right – fitter test cases are those for which solvers have higher error. That explains the “spatial co-evolution” part of the algorithm, but what about the age-layered planes? […]