UK bioinformatics consultancy · scientist-led
Reproducible transcriptomics across bulk, single-cell and spatial data — from quality control through statistical modelling and biological interpretation, delivered with the code, methods and workflows needed to re-run and defend the analysis.
latticebioflow.com · LinkedIn · United Kingdom
| Bulk RNA-seq & transcriptomics | QC and quantification through DESeq2, multi-factor designs, GO/KEGG/GSEA and interpretation |
| Single-cell RNA-seq | QC, integration, annotation, differential states — Scanpy, Seurat and scVI-family workflows |
| Spatial transcriptomics | Spatial domains, spatially variable genes, cell-type mapping and deconvolution |
| Integration & deconvolution | Resolving cell-type contributions in heterogeneous tissue |
| Quantitative imaging | Calcium-imaging and fluorescence recordings into reproducible phenotypes |
| Reproducible workflow development | Snakemake pipelines, pinned environments, HPC-aware execution, testing and handover |
We work with academic labs needing specialist computational capacity, early biotech wanting flexible bioinformatics before a full-time hire, and core facilities and CROs needing overflow or bespoke downstream analysis.
A Snakemake pipeline from public SRA accessions to analysis-ready single-cell count matrices: download and read-role assignment, Ensembl reference build, Cell Ranger counting, per-timepoint aggregation, and CellBender ambient-RNA removal. Runs locally, on SGE or on SLURM.
It is a working example of what our reproducible workflow development looks like in practice — pinned environments per rule, configuration-driven execution, assertions that stop the run when an assumption fails, and CI.
Most pipelines fail loudly, and those are the easy ones. The failures worth worrying about are quiet: a plausible matrix built on a wrong assumption, with nothing in the logs to suggest it.
A concrete example from the workflow above. The public dataset it ships
configured for has 136 sequencing runs, which are really 22 libraries, each
sequenced 4–8 times. 10x Genomics documentation is explicit that re-sequencing
runs of one library must be combined inside a single cellranger count, because
duplicate molecules can only be collapsed within one run of the algorithm.
Treating each run as its own library and aggregating afterwards yields 140,981 cells. Counting the same reads correctly yields 51,348 — an inflation of 2.75×.
Nothing errored. No warning appeared. Catching it meant checking what the accessions actually were before trusting the count.
That is the standard we build to: workflows that state their assumptions, verify them, and stop when they do not hold — so the numbers you take to a figure, a decision or a reviewer are ones you can defend.
george.kagugube@latticebioflow.com · Request a project assessment
Public repositories here use openly available data and demonstrate analytical and engineering approach; they are not client case studies.