At A*STAR’s Bioinformatics Institute, I worked on an IHC analysis pipeline with tissue detection, stain normalization, nuclei segmentation and feature extraction, followed by classification.

It fits into a few lines on a résumé. Looking at the full workflow, every earlier step affects what comes after it.

Take segmentation. If several neighbouring cells are treated as one, the extracted features have already changed. The classifier receives those features without knowing what happened in the original image.

I care about being able to inspect the intermediate results for that reason. I want to compare the original image with the segmentation boundaries and the excluded regions. A final score alone doesn’t give me much to work backwards from.

The project used a Random Forest classifier. When choosing a method, I’m more interested in what the features contain and how we’ll evaluate the result. The model’s name doesn’t tell me much about either of those.

There’s also a difference between finishing a run and having a workflow other people can use repeatedly. With whole-slide images, processing time, failures and reproducibility all need attention. It’s easier to overlook them when the sample is small.

I still want to see intermediate steps when working with generative AI. If the final result is wrong, I’d like to find where it started going wrong. That habit has carried over quite well.

The project page has the methods and evaluation results.