Health and life sciences

Machine learning for genomics

Machine learning in genomics calls genetic variants from sequencing reads, classifies samples from gene expression profiles, and predicts how DNA sequence affects molecular signals. Deep learning variant callers such as DeepVariant are widely used in research pipelines.

How machine learning is used in genomics

Calling variants from sequencing reads

Deep learning variant callers turn piles of aligned reads into images or tensors and classify each candidate site as a genotype. They are a standard part of research pipelines because they transfer across sequencing technologies.

Real exampleDeepVariant (Poplin et al., 2018)A convolutional network that calls genetic variation from aligned sequencing reads by learning from images of read pileups, with a model that generalises across genome builds and species.

Predicting the effect of variants on splicing

Models read the DNA around a variant and predict whether it creates or removes a splice site. This gives a score for variants in introns and silent positions that older rules miss.

Real exampleSpliceAI (Illumina, official repository)An open package that annotates genetic variants with their predicted effect on splicing, as described in Jaganathan et al., Cell 2019.

Modelling single-cell expression

Deep generative models represent each cell as a low-dimensional vector while accounting for technical noise and batch effects. The representation then supports clustering, visualisation and differential expression.

Real examplescVI (Lopez et al., 2018)A scalable probabilistic framework for single-cell gene expression that uses neural networks to account for batch effects and limited sensitivity, supporting batch correction, visualisation, clustering and differential expression.

Annotating cell types automatically

A classifier trained on reference atlases labels the cells in a new dataset, instead of each laboratory assigning labels by hand from marker genes. Simple regularised linear models work well and run quickly.

Real exampleCellTypistAn open tool for automated cell type annotation of single-cell RNA sequencing data, built on regularised linear models with stochastic gradient descent and distributed as a Python package.

Can you learn machine learning for genomics?

Yes. Biologists, bioinformaticians and software engineers all learn it, and the public datasets make self-study practical. Learn Python and the genomic file formats first, then statistics for high-dimensional data, then classical models, adding deep learning when your data is raw sequence or images.

  1. Python and genomic file formatsWork with FASTA, BAM and VCF through pysam and scikit-allel, and keep sample metadata beside every matrix.Learn it in Python
  2. Statistics for wide dataLearn multiple testing, regularisation and batch effects, because genomics data has far more features than samples.Learn it in Statistics
  3. Classical machine learningFit penalised regression and tree models on expression or genotype features, with splits that separate samples, studies and batches.Learn it in Machine Learning
  4. Deep learning where it earns its placeUse neural networks for raw sequence, read pileups and single-cell models, after a simpler baseline has set the bar.Learn it in Deep Learning
  5. Pipelines and reproducibilityLearn workflow managers, environments and version pinning, because genomics analyses are long chains of tools that must be rerunnable.

Moving into machine learning for genomics

If you already work in the field

Geneticists and bioinformaticians already know the assays, the reference builds and where artefacts come from. Add Python modelling and honest validation, then take one step of your existing pipeline and compare a learned model with the rule-based approach you use now.

If you come from data science or ML

Data scientists need to learn what each file format contains, how samples are collected and why batch and population structure confound results. Start with a public dataset end to end, and have a geneticist review the labels before you trust any score.

Roles that do this workBioinformatics scientistComputational biologistGenomic data scientistResearch software engineer, genomics

Tools you will use

ToolWhat you use it for
DeepVariantCall SNPs and small indels from aligned sequencing reads with a convolutional neural network.
pysamRead and filter BAM, CRAM and VCF files from Python to build features.
scikit-allelLoad genotype arrays and compute population statistics and PCA on genetic variation.
ScanpyNormalise, cluster and annotate single-cell gene expression data.
scikit-learnFit regularised classifiers and dimensionality reduction on expression and genotype matrices.

Public data to practise on

  • Gene expression cancer RNA-Seq (UCI): RNA-Seq expression profiles from five tumour types, for practising high-dimensional classification.
  • 1000 Genomes Project: Public whole-genome variant calls from people across many populations, for genotype analysis and PCA.
  • Genome in a Bottle: High-confidence reference variant calls for benchmark genomes, used to score variant callers.

Your first project

Download the UCI gene expression cancer RNA-Seq dataset, predict tumour type with L1-regularised logistic regression, and compare it with a majority-class baseline using macro F1 under cross-validation.

Common questions

Do you need a biology degree to work in computational genomics?

No. Many people come from computing, physics or statistics. You do need to learn the vocabulary and the assays well enough to know what a column in a file means and when a result is implausible.

How much computing power does genomics machine learning need?

Tabular and single-cell work runs on a laptop or a modest server. Read-level deep learning and sequence models need a GPU and substantial storage, which is usually provided by an institutional cluster or cloud.

Which language should you learn, Python or R?

Python covers deep learning, pipelines and most single-cell tooling, while R has a deep ecosystem for statistics and expression analysis. Learn Python first if you intend to do machine learning.

Why do genomics models often fail on a new cohort?

Batch effects, differing protocols and population structure mean the model can learn the study rather than the biology. Testing on an independent cohort is the only reliable check.

Courses for these skills

New to programming or maths? Start with Python, or follow the machine learning path in order. Published lessons are free to read; compare Free and Pro.