Blazing a trail with CRUK’s Citizen Science team

I’ve just finished working on an exciting project which is part of Cancer Research UK’s citizen science project –  an attempt to crowdsource cancer research though innovative use of digital technology. CRUK has already released several apps that draft the public’s help to spot cancer cells or genetic faults. Trailblazer is an attempt to move the project forward by answering the question ‘how accurate can citizen scientists be at identifying cancerous cells in tumour samples?’

The challenge

This was a pretty unique rapid prototyping challenge for the Citizen Science team at CRUK, a collaboration of scientists and technologists with whom I worked for three months. We needed to create a interactive crowdsourcing project to allow citizen scientists to identify cancer cells within a Tissue microarray (TMA) image. We need to find out where in these TMA’s the cancer cells are.

trailblazer-doodle copy

The approach

Once we had our development stack nailed down, it was on to our first project.

Overlaying a 6×6 square grid on the TMA – created from SVG or html elements – was an easy way to create different areas which could be interacted with. If a square has been clicked on, we simply add a class that changes the square’s state. A user completes the “task” when they’ve identified all the squares which contain cancer cells in a particular TMA.

Upon completion we need to obtain the information about which squares were selected so Janette, our statistician, can analyse the answers. Creating the grid using JavaScript meant that it was easy to store these element in an array, listen for interactions, change the state and finally pass them out in a JSON format using PyBossa.

Later we identified the need to add a zoom effect to the images so the user can see the TMA in more detail. Working on short sprints to create a minimum viable product (MVP) meant that time wasn’t always on our side. With this in mind we grabbed a zoom library – Jquery Image zoom plugin – and placed it on top. But with an extra layer on top, we couldn’t directly interact with the grid elements below easily.

The work around was gaining the x,y positions of the click event on top of this zoom layer. I’ve previously worked with Raphaeljs before so knew it had some helpful functions to return objects, or in our case, closest grid square to the click. This worked well and saved the time we would have spent jumping into the zoom plugin source code.


User Experience (UX) & User Interface (UI)

This experiment was about finding out how accurate the public could be with minimal instruction so we tried to keep things as simple and intuitive as we could. Having many rounds of qualitative testing really helped evolve the design, clearly highlighting where we were going wrong and how we could improve it. This was invaluable to remove as many barriers as possible so the user could perform the tasks to the best of their ability.

The data

From start to end the data has been the one of the most important parts and something that would drive our different iterations. Choosing to use PyBossa has been great for this as we can easily access, add and analyse user information from each task.

To assess the accuracy of our citizen scientists we first needed the pros to tell us were the cancer cells were. We created a “Gold standard” project and invited some great pathologists score a data set. This allowed us to work out the overall consensus among pathologists for each TMA and then compare it with our citizen scientist results.


You can read about the results of the first Trailblazer iteration in this article from the CRUK Citizen Science team.

I’ll be back with another post about further iterations next week so stay tuned.

Leave a reply

You can use these tags:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Sign up for the Manifesto newsletter and exclusive event invites