Skip to contents

phyloDS: phylogeny-aware differential splicing across species, beyond reference annotations

phyloDS enables differential analysis of OSJ usage between two predefined groups of species by integrating RNA-seq data, sequence conservation, and phylogenetic information. The method takes as input species-specific genome sequences, an ultrametric phylogenetic tree, group membership information, genomic coordinates of one-to-one orthologous genes, and processed RNA-seq alignments (BAM files).

Installation

# Install from GitHub
remotes::install_github("aLiehrmann/phyloDS")

External dependencies:

  • MAFFT - multiple sequence alignment
  • samtools - BAM/FASTA indexing
  • OpenSpliceAI - splice site prediction (optional, for predictDID)

Quick Start

library(phyloDS)

# 1. Setup experiment
data <- newExperiment(
  sampleInfo  = "samples.tsv",
  speciesInfo = "species.tsv",
  orthogroups = "orthogroups.tsv",
  speciesTree = "tree.nwk",
  dnaDir      = "dna/",
  msaDir      = "msa/"
)

# 2. Build orthologous junction counts
orthogroupDNA(data)
orthogroupMSA(data)
cov <- coverageSJ(data) 
se  <- findOSJ(data, cov)

# 3. Test for differential splicing
se   <- estSizeFactors(se)
se_X <- runDS(data, se, methodName = "phyloDEOU")

# 4. Filter to genes with differentially used orthologous splice junctions
se_X <- filterSignificantGenes(se_X)

# 5. Predict splice site strength from sequence alone (orthogonal evidence)
se_X <- predictDID(data, se_X, predDir = "predictions/", refSpecies = "Homo_sapiens")

# 6. Annotate orthologous splice junctions with a reference species
se_X_hs <- annotateOSJ(data, se_X, refSpecies = "Homo_sapiens")

# 7. Export the results as an IGV session
exportResults(data, se_X, outputDir = "results/")

Simulation Framework

Evaluate the type I error rate under different phylogenetic scenarios. lambda sets the within-species correlation among replicates (0 = independent replicates), and thalf is the OU half-life relative to tree height, which sets the between-species correlation (small = star-like tree, independent species; 1 or more = correlation follows the tree topology). thalf is relative only if the species tree has unit height.

# Run null simulations (DID = 0)
results <- runSimu(
  data    = data,
  se      = se,
  simDir  = "simulations/",
  thalf   = c(0.05, 0.5, 1),
  lambda  = c(0.1, 0.5, 0.9),
  methods = c("limma", "phyloDEOU")
)

# Visualize the type I error rate
plotSimu(results)

Citation

Liehrmann A, Carrel Billiard L, Bastide P, Gallopin M, Richard H, Laine É (2026). phyloDS: phylogeny-aware differential splicing across species, beyond reference annotations. bioRxiv preprint.

License

MIT