Drupal for Rapid Application Development
Blue gradient overlay

Drupal for Rapid Application Development

The challenge

Explore the ease with which Drupal can be used to rapidly prototype and deliver a small app - for use in a genetics laboratory (The Crick Institute).


The DNA sequencing process involves three steps, uses expensive equipment and highly skilled staff, but is very error prone. I wanted to know whether we could create an application that would greatly reduce errors, saving time and money, for a very low cost.

Process stages

First step

Thousands of cells are processed by a machine (Fluidigm C1) to isolate nucleic acids (DNA or RNA) from single cells into a chip with 96 capture sites. The cells flow through a microfluidic system in order to be captured into the 96 capture sites. Ideally you want one cell to be captured in one capture site. However the efficiency of the capture is not perfect and it happens to have the following possibilities for each capture site:

  • No cells
  • 1 cell (small, big, irregular)
  • 2 or more cells
  • Debris

Second step

Once the nucleic acids (Samples) are isolated they are moved into a plate 12x8 (96 wells). The selection criteria of the samples that will move to the next step (Good samples) is decided depending on the number of single cells captured and on the unique characteristic of each experiment. If the samples that passed the selection criteria are less than 70 (this appears to be a very common situation), it become necessary to merge samples from different experiments into one plate (Destination plate), keeping track of the exact position of the source plate during this process.

Third step

Before the creation of the new plate (Destination plate) is necessary to create a plate map of the source plates. In order to limit the errors, it’s important to keep the same position for the samples that came from the plate with the highest number of “Good samples”. The remaining wells will be used by the samples from the other plates we decided to merge together. This rearrangement of samples is currently done using Excel, copying and pasting values from one file to another, which is time consuming and has high chances of error.

Solution – a Drupal-based app

I created a system based in Drupal in order to limit the user interaction to the minimum and automate the rearrangement based on the criteria selection.

Here's the basic user journey:

  • Create one or more plates and select the selection criteria for each one
  • Import all the samples by uploading a CSV (automatically this action will match the samples with the plates)
  • Create a destination plate selecting 2 or more plates the user want to merge.

This automatically creates a printable grid with all the samples sorted in an optimised way and a table with a reference of the origin well, origin plate, destination well and name for each sample.

Future development

The solution I developed is quite rigid as it serves a very specific purpose, but it allows technicians to save hours of work for every single cells sequencing and it was relatively simple to create. Having Drupal as a core for this application allows this solution to be ready to be used by hundreds of users. I can only guess how many others needs could have such a simple solution.

This could be, for example, a starting point to approach the manufacturer (in this specific case is Fluidigm) of these machines as they could be interested to offer more support to their clients. Besides, high-throughput technologies now enable the profiling of hundreds of thousands of cells in parallel. This increases the need for a simple solution for data management.

Beyond that, the physical transfer from a plate to another can be automated using specific robots. At the moment there are several robots in the market that allows to do this kind of operations and they uses scripts with instructions specific for the applications.

This could be a very good opportunity to explore interactive systems using robotics and Drupal.

Get in touch to speak to a Drupal expert today!