I enjoy making things. Here are a selection of projects that I have worked on over the years.
CryoLens is a 3D variational autoencoder for generative reconstruction of cellular structures from cryo-electron tomography data (available on the CZI Virtual Cell Platform). The basic idea is to learn a compressed representation of 3D subtomograms that captures structural variation, which you can then use for things like visualizing structural representations. We’ve trained a generative model on a set of uniform structures on a large synthetic dataset composed of 100+ diverse structures. The model has been trained at scale and can produce high fidelity single-angle reconstructions. Tools are available for napari and the Virtual Cell Platform.
The CZII CryoET Object Identification Challenge, hosted on Kaggle from November 2024 to February 2025, was a machine learning competition focused on automating the detection of protein complexes in cryo-electron tomography (cryoET) data. This competition addressed a critical bottleneck in structural biology research by developing algorithms to accurately identify and annotate multiple types of protein complexes in 3D tomographic volumes. More on the Kaggle page
CellCanvas is a software tool for creating and working with geometric models of cellular architectures.
copick is a cross-platform API for working with cryo-electron tomography datasets. It provides a standardized way to access tomograms, picks, and segmentations, making it easier to share annotations and build ML pipelines. We developed it initially to support the CZII CryoET ML competition on Kaggle, but it’s designed to be useful more broadly for anyone working with cryoET data. The idea is to have a common interface that works whether your data is local, on S3, or coming from the CZ CryoET Data Portal—so you can write code once and have it work across different storage backends. Code: github.com/copick/copick
napari is a Python-based viewer for multi-dimensional images. I joined the napari team at CZI in 2022, where I made code contrinbutions and ultimately served as tech lead. I have been on the napari steering council since 2023. It’s become a pretty central tool in the scientific Python ecosystem for microscopy—people use it for everything from looking at basic image stacks to interactive ML annotation workflows. My contributions have mostly been around large-data handling, ML integration, and helping coordinate the project’s technical direction.