Troels Holger Vaaben headshot

Troels Holger Vaaben

Cancer • Microbiome • Synthetic Biology • Translational Research

About me

I’m a bioinformatician working in microbial genomics, mainly focused on how microbes and hosts interact in things like infectious disease and cancer. I spend a lot of time working with metagenomics, pangenomics, and different types of omics data, trying to piece together what’s actually going on biologically.

Most of my work revolves around microbiome data, where I’m interested in connecting who’s there (microbes), what they can do (functions), and how the host responds. I like building analyses and workflows that make those connections easier to understand and use in real projects. From the microscopic worm C. elegans to mouse models and patient-derived organoids, I enjoy working across biological systems to better understand host–microbe interactions in real-world contexts.

If you’re working on something similar, or just have some cool microbiome data, feel free to reach out.

Recent posts

Transcriptomics / Bulk RNA-seq / Guide

An intuition-first bulk RNA-seq guide, with a runnable R companion

I put together a bulk RNA-seq guide that walks from experimental design and QC to differential expression and layered biological interpretation. The website version is the conceptual guide; the GitHub repo is the small runnable R walkthrough.

More about this project

The guide on this website is meant to be the reading-first version: how to think about upstream decisions, what DESeq2 is actually doing, and when to move from gene-level results into gene sets, sample states, regulatory inference, and other downstream layers.

I wanted the companion repository to be more than a code dump, so the GitHub side is built as a small airway-based teaching example in R. It walks through DESeq2, ORA, GSEA, ssGSEA, PROGENy, and DoRothEA plus VIPER, and it saves the key figures and tables directly in the repo.

So the split is simple: if you want the practical reasoning and structure, start with the guide here on the website. If you want a minimal reproducible example you can run and modify, use the GitHub repository alongside it.

Microbiome / Causal inference / Methods

From correlations to causation in microbiome research

Microbiome studies can generate huge multi-omics datasets, but many analyses stop at association. If we want to understand mechanisms and design interventions, we need explicit causal questions and assumptions — not just ranked features.

More about this project

A practical way forward is to treat causal inference as part of the analysis workflow: define an estimand, state assumptions, and make confounding and mediation explicit. This often changes what you prioritize in preprocessing, feature selection, and reporting.

I’m building a small guide repository that walks through two complementary approaches on a microbiome example: double machine learning for flexible adjustment, and mediation analysis for separating direct and indirect effects. The goal is to provide runnable code, sensible defaults, and clear failure modes.

The payoff is not just better stories — causal framing can narrow a sea of correlated signals into a smaller set of candidate drivers, and it forces you to be honest about what the data can and cannot identify.

Multi-omics / Methods

A practical decision guide for multi-omics integration

Multi-omics integration can feel overwhelming: many data blocks, many methods, and unclear assumptions. A structured decision guide helps you pick an approach that matches the question, the sample size, and what “signal” should mean.

More about this project

The guide starts with the question you actually want to answer (prediction, interpretation, shared biology, or block-specific effects), then maps that to a small set of method families and baselines worth running early.

It covers supervised integration (e.g., DIABLO), models that distinguish shared vs block-specific structure (e.g., DIVAS), and when latent embeddings like VAEs or conditional VAEs are helpful versus misleading — especially under batch effects and small n.

I also include pragmatic baselines (MOFA, JIVE, SNF) and simple diagnostics so you can sanity-check whether integration is adding signal or just adding complexity.