Research software for labsUse-cases

Each project written the way you'd read a paper: the question the lab was asking, what I built, and what it changed. Where I didn't build something myself, I say so.

Deplancke lab · EPFL · Switzerland · 2023 → today

An embedded system for an instrument that keeps evolving

Question

A new system to isolate and control the right cell by pressure, as part of an RNA-sequencing workflow, on a prototype whose requirements change with every experiment.

What I built

I rebuilt the legacy code into a modular, fully containerized firmware and data-processing system, from backend and frontend down to the drivers. Researchers can deploy their own experiments on the device and launch Python experiment scripts remotely from a web app.

Outcome

A capability the lab didn't have before, documented and reproducible, that other team members can use without me.

Stack
  • NVIDIA Jetson
  • Python
  • C++
  • CAN
  • Bluetooth
  • Flask
  • Docker
My role

Sole engineer, design and implementation.

Bonin lab · NERF / imec · Belgium · 2024 and 2025

Ten students, one visual stimulus software

Question

Could the students' visual-stimulus experiments still be compared, when everyone was running a slightly different version of the same in-house software?

What I built

I refactored and reconciled two long-diverged branches of the lab's Python / PsychoPy software, originally written by an engineer who had since left and updated quickly for years. I also fixed a latency bug.

Outcome

One version again, a fixed latency issue, and around ten students' individual experiment protocols that kept working throughout.

Stack
  • Python
  • PsychoPy
  • Git
My role

Sole engineer on the refactor and the branch reconciliation. I did not design the original software.

Haesler lab · NERF / imec · Belgium · 2025

A new probe in the standard neuroscience ecosystem

Question

A PhD student needed to take a LabVIEW-based acquisition algorithm to production, without locking the new probe into a one-off data format.

What I built

Instead of a bespoke format, an Open Ephys plugin in C++ (with NI-DAQ acquisition), started from the official template plugin and the Neuropixels plugin, as Open Ephys recommends. Alongside it, a real-time visualization web app.

Outcome

The probe now runs in Open Ephys like any supported device, and the visualization app keeps up with a high channel count.

“I had the pleasure of working with Marine on a new cutting-edge neural implant I develop for neuroscience research. I needed a software solution to acquire data through a National Instruments setup and she suggested the perfect approach: leveraging the accessibility of the Open Ephys platform, she coded a plugin and GUI tailored to our specific needs. She showed excellent skills in balancing complex hardware constraints and great user experience. I highly recommend working with her!”

Paoline Coulson, PhD student at imec and NERF · LinkedIn recommendation
Stack
  • C++
  • Open Ephys
  • NI-DAQ
  • Python
  • Panel
  • HoloViews
Code

NeuroLayerOEPlugin and haeslerVisualization, hosted on the lab's PhD student's GitHub.

My role

Sole developer of the plugin and of the visualization app. More on custom Open Ephys plugins.

Hochmann lab · CNRS · France · 2024

What can machine learning add to an existing analysis?

Question

Could data from several types of eye-tracking experiments with young children be analyzed together, and would machine learning tell the lab something its own method didn't?

What I built

A set of JupyterLab notebooks implementing several machine-learning approaches, which I chose and designed, compared against the lab's existing analysis.

Outcome

A comparison the lab could use to question its own method.

Stack
  • Python
  • Jupyter
  • scikit-learn
  • PyTorch
My role

Sole engineer; I chose which approaches to try.

Kloosterman lab · NERF / imec · Belgium · 2019 → 2023 (employee)

Before freelancing: real-time closed-loop neuroscience

Question

How do you decode neural activity from Neuropixels probes fast enough to act on it during the experiment itself?

What I built

With the team behind Falcon, an open-source real-time neural decoding platform, I built the processing-node subsystem, the CMake build system and the plugin repository. I also wrote the falcon-output plugin that streams data from Open Ephys to Falcon, worked on Neuropixels PXI support, contributed to SpikeInterface, and was the sole developer of the lab's animal-tracking and remote experiment-control software.

Outcome

Real-time closed-loop decoding usable in the lab, plus CI/CD, tests and executable documentation for the lab's internal packages.

Stack
  • C++
  • CMake
  • Python
  • PyQt
  • Open Ephys
  • Neuropixels

Spinoffs, before and after incorporation

I've also worked with young companies coming out of labs: a feasibility study on real-time spike sorting, a desktop tool running and visualizing an MRI analysis, and sensor data validation for a medtech startup. Their names stay private.

Code availability Public code is linked above. Other projects are closed-source by agreement with the lab or company.

Recognize your lab in one of these?

Tell me about your code and what's getting in the way. The first look is free.

Email me

Useful to include

  • Your lab and field
  • Language(s): Python, C++, MATLAB…
  • How many people use the code
  • Any deadline: paper, instrument, funding