Client engagement · Genetic research

Bio

Genetic research software, from sequencing data to mutation analysis.

Delivered capability
A research platform that turns uploaded variant files into gene-by-gene mutation reports, with a parallel matching engine behind it.

Summary

A multi-organisation platform where genomic sample files are uploaded and checked against known mutation sequences for configured genes. A dedicated matching service scans each gene region of a sample and produces a report of which genes, and which associated conditions, show a match.

Context

Genetic research produces large variant files, and the questions asked of them are precise: does this sample contain this known mutation in this gene? Can the same check be run again, the same way, on the next sample?

The client needed a platform that could take those files from several organisations, run the checks reliably, and present the results in a form researchers can use.

What N-Thesis delivered

N-Thesis built the platform and the matching engine behind it.

  • A portal where organisations upload samples, run predefined reports and read the results
  • Administration of organisations, users, genes, known mutation sequences and report definitions
  • Large-file uploads that go straight to file storage, with sample files indexed automatically on arrival
  • A matching service that reads the relevant region of each sample for every gene in a report and compares it with the known mutation sequences
  • Asynchronous report runs with status tracking, so long jobs do not block the user
  • Work on the matching algorithm that decides whether a sample contains a specific mutation
From a sample file to a mutation report
  1. Upload

    An organisation uploads a variant file; it is stored and indexed automatically.

  2. Report request

    A predefined report selects the genes and known mutations to check.

  3. Parallel matching

    For each gene, the sample’s region is read and compared with known mutation sequences.

  4. Report

    Matched genes and their associated conditions, with the run tracked to completion.

Conceptual workflow based on the delivered system. It shows the stages a sample passes through; it is not a deployment or architecture diagram.

The difficult problem

Variant files are large and a report covers many genes. The matching service reads only the indexed region it needs for each gene, rebuilds the sample’s sequence for that region, and checks it against each known mutation using configurable windows and thresholds.

That work runs in parallel worker pools sized to the machine. Getting the concurrency right, so that jobs keep flowing without deadlocks and progress can be reported, was a substantial part of the engineering.

Algorithmic work in a scientific domain also has to be reasoned about in the terms of that domain. A change to the matching logic has to make sense for the data it reads and the mutation it looks for, not only pass in code.

Results and delivered capability

A working platform that turns uploaded variant files into gene-by-gene mutation reports, built as research tooling.

We do not describe it as a diagnostic product, and we make no claims about clinical or regulatory validation or about the accuracy of the algorithm.

Technologies used on this project

  • Kotlin
  • Spring Boot
  • Go
  • Angular
  • PostgreSQL
  • Nextcloud
  • tabix and samtools

Working on something with similar constraints?

Tell us what the system needs to do, what is already in place, and where the difficult decisions are. You do not need a complete specification to start.