Skip to the content.

Google Summer of Code Projects in the Cimini Lab at the Broad Institute Imaging Platform

The Broad Institute Imaging Platform (est 2007) is a group of computational biologists and computationalists who work to create methods, software, and workflows designed to turn light microscopy images into answered questions. The Cimini lab (est 2021) creates and maintains a number of open-source software tools for those purposes. Read more about what we do at our lab website (linked above) or our “stuff we make” site.

Below are the projects we are hoping may be of some interest for GSoC 2025 hopeful-contributors! Feel free to reach out to bcimini AT broadinstitute DOT org if you want to propose something in one of our projects not listed below (or even better, hop into the Issues and/or Discussions for the project!)

Jump to:

How to apply CellProfiler projects Piximi projects Bilayers projects

How to apply

Projects we are looking for help with

CellProfiler

CellProfiler is an open-source image analysis workflow tool written in Python. It allows users to assemble no-code workflow pipelines to apply to however many images they have, whether that is 100 or 1,000,000.

Project idea Expected Outcomes Expected Project Size Skills Required / Preferred Mentors GitHub link(s) Description
Harmonize and simplify CellProfiler’s export functionality
New CellProfiler modules ExportMeasurements and ExportCPAProjectFiles; CSV, MySQL, and SQlite backends for the Export module
Large Python, SQL @bethac07, @gnodar01 here
CellProfiler has two modules for exporting measurements:
  • ExportToDatabase (which can write to MySQL or SQLite)
  • ExportToSpreadsheet (which creates CSVs)
Over the years, the functionalities of these two modules has diverged in often-surprising ways; for example, one can select which measurements to export only in EtS, not EtD.

We would like to create a single, extensible ExportMeasurements module with a single set of UI choices, which then calls out to backends which do the actual writing. This will allow more consistent user behavior, as well as allow us to more easily support other kinds of output files (such as Parquet) in the future.
Implement “soft warnings” in CellProfiler
A new warning class in CellProfiler, with specific behavior warnings implemented in many modules
Large Python @bethac07, @ErinWeisbart, @gnodar01 here
CellProfiler’s flexibility comes with a downside; there are many things a user CAN do that are not often a good idea TO DO, and for an inexperienced user, it is sometimes hard to know what is suboptimal (or why).

We have begun internally collecting cases where we would like a new “soft warning” class to be implemented; in this project, the applicant will make changes to the CellProfiler internals to enable such a warning class, and implement the existing cases

Piximi

Piximi is an open-source image analysis client-side web-app written in TypeScript. It is an “Images to Discovery” platform that allows users to upload images, segment and/or classify them with deep learning, and then measure them all without installation or the data needing to leave their machine.

Project idea Expected Outcomes Expected Project Size Skills Required / Preferred Mentors GitHub link(s) Description
Expanding Testing Infrastructure for Piximi
By the end of the project, Piximi will have a robust, automated testing suite that improves software reliability, simplifies debugging, and enhances the contributor experience. The project will leave behind well-documented test cases and a structured approach to testing, making future development smoother.
Large
  • Required:
    • JavaScript/TypeScript
    • React
  • Preferred/Want to Learn:
    • Build Tools (Vite)
    • Testing Frameworks (Vitest, etc.)
    • CI/CD Concepts
@Andrea-Papaleo GitHub
Piximi's core functionality is continuously growing, but the testing infrastructure remains limited; only a small number of utility functions covered by Vitest.

This project aims to significantly expand Piximi’s testing coverage by implementing:
  • Comprehensive unit tests using Vitest to ensure core functions work reliably.
  • End-to-end (E2E) tests to verify user workflows and prevent regressions.
  • Component-based tests using Storybook to improve UI reliability and usability.
  • User stories and test documentation, making future contributions easier and more predictable.
By enhancing the test suite, this project will improve developer confidence, stability, and maintainability, ensuring Piximi remains a robust and user-friendly tool.
Implementing a YOLACT-Style Model for Real-Time Instance Segmentation in Piximi
Piximi will feature an integrated, YOLACT-style instance segmentation model capable of running entirely in the browser, giving users a fast, secure, and open-source alternative to existing bioimage analysis tools.
Large
  • Required:
    • JavaScript/Typescript
    • Deep Learning Frameworks
  • Preferred/Want to Learn:
    • Model Optimization Techniques
    • Computer Vision & Image Processing
@Andrea-Papaleo N/A
One of the core functionalities Piximi aims to enhance is real-time instance segmentation for biological objects (e.g., cells, bacteria, or tissues

This project will focus on:
  • Developing and fine-tuning a YOLACT-style model (You Only Look At Coefficients) for biological image segmentation.
  • Pretraining the model using high-quality biological datasets to ensure accurate and robust segmentation results.
  • Optimizing and porting the model to JavaScript, enabling fast, client-side inference in Piximi without requiring a backend server.
This will allow seamless, on-device segmentation, ensuring privacy, speed, and accessibility for users analyzing bioimages.
Building an API for AnyWidget to Interface with Piximi in Jupyter Notebooks
Jupyter notebook users will be able to directly interact with Piximi, running image analysis tasks within an interactive Python environment. This will provide greater flexibility and scripting capabilities for researchers using Piximi in bioimage workflows.
Large
  • Required:
    • JavaScript/TypeScript
    • Python & Jupyter Notebook
  • Preferred/Want to Learn:
    • AnyWidget or Widget Frameworks
    • REST/WebSockets
@Andrea-Papaleo N/A
While Piximi provides an intuitive browser-based interface, many researchers and data scientists prefer working within Jupyter notebooks for interactive data exploration and analysis.
This project will enable Piximi’s functionality within Jupyter notebooks by:
  • Building an API for use with AnyWidget, allowing Jupyter users to access Piximi’s tools.
  • Connecting Piximi’s Redux state to the API, ensuring seamless interaction between the Jupyter frontend and Piximi’s image-processing capabilities.
  • Providing a smooth user experience, enabling users to upload images, annotate, classify, and measure them—all from a Jupyter notebook.
This integration will expand Piximi’s accessibility and make it easier for researchers to incorporate Piximi into their Python-based workflows.

Bilayers

Bilayers is an open-source image analysis specification and CI/CD, which involves containerization, a LinkML-based specifiation, and Jinja templating. It is designed to allow bioimage analysts to describe any containerized tool or algorithm in a human-readable config file, and to use that config file to automatically create GUI tool versions as well as interfaces to other tools (such as CellProfiler).

Project idea Expected Outcomes Expected Project Size Skills Required / Preferred Mentors GitHub link(s) Description
Expand our wrapper list
You create one or more interfaces for the Bilayers CI/CD
Small (1-2 interfaces) through Medium (3-5 interfaces) Docker, CI/CD, Jinja templating, LinkML @bethac07, @gnodar01 here
Bilayers is a system of wrapped tools and interface wrappers that encapsulate them. We have a list of planned wrappers, but are happy to consider other GUI tools and/or interfaces to other workflow tools if they hit a gap in our current ecosystem. Please tell us more in your proposal!
Expand our wrapped tool list
You create one or more containers for image analysis tools or algorithms, and/or fill out config files and test interfaces for several existing containers
Small (4-5 tools) through Medium (10-20 tools) Docker, CI/CD, LinkML @bethac07 here
Bilayers is a system of wrapped tools and interface wrappers that encapsulate them. The bioimage analysis landscape has new tools seemingly coming out every day, most of which are not containerized, and many of which are not user friendly (and/or are only accessilbe in one interface). We have a small list of tools we like, but we’re open to many other tools if they hit a gap in our current ecosystem. Please tell us more in your proposal!
Create a better interface for filling out config files
One or two small, maintainable tools and/or widgets for creating filled config files
Small through Medium Docker, CI/CD, LinkML @bethac07 n/a
While the Bilayers config file is smaller and much friendlier than some other large specifications like CWL or WDL, the easier we make it to fill out and/or submit config files, the more config files the project will accumulate. We envision something like a Streamlit app or a Marimo notebook, but are open to even more creative solutions - please tell us more in your proposal!