🐝 Programming by Navigation with 🐝
Honeybee
Honeybee is a programming tool you can use to help you write Python code to analyze experimental data, like RNA-seq or microscopy data!
Give Honeybee a try!Warning: Honeybee is a work-in-progress! Please email Justin at justinlubin@berkeley.edu for an interactive demo! ☺
It works in two steps:
- First, you write down your experimental workflow and goal.
- Then, Honeybee helps you work backward from your goal to write a program to analyze your experimental data.
Once you finish the first step (filling out the details of your experiment), the next step (navigating to an analysis program) works like this:
You’ll keep working backward until there are no steps left.
If you’re interested in Honeybee, please feel free to give it a try!
Video Demo
Project Information
Justin Lubin is the primary researcher and developer for the Honeybee project, with assistance from Parker Ziegler, Marlena Preigh, and Eric Rawn. Justin is a computer science PhD candidate in PLAIT Lab at UC Berkeley advised by Sarah E. Chasins.
Honeybee is co-designed with the Nuñez Lab at UC Berkeley. Their involvement is invaluable in its shaping!
If you use Honeybee for a project, please cite our PLDI 2025 paper:
Justin Lubin, Parker Ziegler, and Sarah E. Chasins. 2025. Programming by Navigation. Proc. ACM Program. Lang. 9, PLDI, Article 165 (June 2025), 28 pages. https://doi.org/10.1145/3729264
We would also love to hear from you if you’re interested in Honeybee or have any questions! Please email Justin Lubin at justinlubin@berkeley.edu.
Beyond Honeybee
Honeybee is part of a broader project we’re working on called SciInterop to enable scientists across a variety of scientific domains to write code with only domain expertise, not programming expertise. Honeybee and SciInterop are based on our recent work on Programming by Navigation, which is agnostic to the underlying scientific domain. SciInterop can therefore support domains that look very different from biology, like geospatial data analysis. For example, for geospatial data analysis, we’re incorporating bread-and-butter computational analyses such as the normalized difference vegetation index (NDVI). Beyond additional domains, we are also working on capabilities for SciInterop to help debug experimental design issues before time-consuming and costly experiments get run as well as functionality to import existing scientific publications into a Honeybee-like navigation interface. Stay tuned to our website honeybee-lang.org and our GitHub repository to stay up-to-date on our project!
Privacy
Honeybee does not collect any personal data! ☺ We do, however, use GoatCounter (a privacy-friendly Google Analytics alternative) to collect completely anonymous usage statistics such as page views. You are free to use an ad blocker to block the collection of this anonymous data.
In particular, Honeybee does not upload any of your scientific data or analyses to a server. When you create a program with Honeybee, the authoring process happens entirely on your own computer, in your browser. After constructing a program in Honeybee, you can download it and run it on whatever machine you like to analyze your data. Honeybee does not run the program.