Contribute Media
A thank you to everyone who makes this possible: Read More

Python + Org-mode for fluent output generation of scientific research


Generating outputs (plots, tables, and texts) is an essential part of scientific research. Usually they are generated with scripts (either .py or.ipynb`), and a natural way of maintaining these scripts is using either a long script file or multiple short files.

When one has to update these outputs, the usual workflow is: 1) find the file(s) and code block(s) inside the file that contains the code for output generation, 2) re-learn what you did so you can edit the code, and 3) run the code to generate new outputs.

Each of these steps has a cognitive overhead (non-fluency), which hampers your productivity, especially if it has been a while since you looked at them. Using IPython Notebook facilitates some of the procedures but it does not solve everything.

In this talk, I introduce org-mode and some of its functionalities for all three steps. org-mode is ideal for managing these tasks because it can minimize the non-fluency. It has a convenient and flexible markup syntax for hierarchical documents. It uses tree-like headlines, which make it very easy to organize code and text. It provides a convenient way to collapse or expand headline blocks and navigate through them. In addition, one can execute a code block or export the results (or the source code itself) conveniently inside org-mode. Theoretically, one can have the entire contents and code for a paper and a presentation inside one org file. I show examples of how one can leverage these functionalities to maintain outputs.


Improve this page