Ben Parks

progammer, scientist, violist

Home Projects

BPCells: High-performance single cell analysis

BPCells is a package for high performance single cell analysis on RNA-seq and ATAC-seq datasets. It can analyze a 1.3M cell dataset with 2GB of RAM in around 10 minutes. BPCells achieves this low memory usage by performing all calculations in a disk-backed manner, and relies on an optimzed C++ backend and efficient storage formats to maintain speed comparable to fully in-memory analysis. Installed over 10k times, and averaging ~1k installs per month.

(docs) (code)

highway-sleef: Cross-platform SIMD math functions in C++

Semi-automated translation of SLEEF vector math library to use highway cross-platform compatibility layer. Includes over 50 f32 and f64 math functions spanning trigonometry, exponentials, and probability (nearly all of math.h plus some extras). Enables easier integration of SLEEF into C++ projects and utilization of Highway’s runtime feature detection to allow single-binary distributions.

Uses tree-sitter for robust parsing and a custom python translation code for outputting C++.


Rust-based CLI tool to integrate McFly with fzf. Queries the McFly command history database to power an interactive fzf frontend, with options to filter history search by exit status and directory. Includes configuration scripts for bash, zsh, and fish shells.

(releases) (code)

I wrote this as a faster version of Princeton’s internal student directory. It downloads all the student data to the client so that searches can be executed instantly as the user types. The site with current data is available here with a Princeton student login, but the public demo uses fake generated data.

(demo) (code)

Flood It Game

This was my first clojurescript project. It is a remake of a simple puzzle game called Flood It built using re-frame/reagent.

(demo) (code)