Abstract
This Quick-Start is a runnable example showing the functionalities of the SpliceWiz workflow. Version 1.1.5
SpliceWiz is a graphical interface for differential alternative splicing and visualization in R. It differs from other alternative splicing tools as it is designed for users with basic bioinformatic skills to analyze datasets containing up to hundreds of samples! SpliceWiz contains a number of innovations including:
This vignette is a runnable working example of the SpliceWiz workflow. The purpose is to quickly demonstrate the basic functionalities of SpliceWiz.
We provide here a brief outline of the workflow for users to get started as quickly as possible. However, we also provide more details for those wishing to know more. Many sections will contain extra information that can be displayed when clicked on, such as these:
What’s New: edgeR-based differential alternative splicing event analysis (version 1.1.3+)
edgeR-based differential alternative splicing event analysis is now available! We find that edgeR deals better with events zero or near-zero junction counts, whereas other methods under-estimate variance at low counts. This leads to lower false positives with low-expressing events or with PSI close to 0 or 1.
edgeR-based wrappers ASE_edgeR()
and ASE_edgeR_timeseries()
work identically to limma (syntax-wise)
We have also implemented GLM-based edgeR-wrapper functions. Please refer to the relevant documentation to view a worked example:
`ASE-GLM-edgeR` ?
What’s New: Visualising junction reads in coverage plots (version 0.99.5+)
In version 0.99.5, SpliceWiz visualises split/junction reads in individual samples and in sample groups
For individual sample coverage plots (i.e. when condition
is not set), junction counts for each sample are plotted. Samples with low junction counts (less than 0.01x of the track height) are omitted to reduce clutter.
For group-normalized coverage plots (where coverage of multiple samples in a condition group are combined), junctions are instead labeled by their “provisional PSIs”. These PSIs are calculated per junction (instead of per ASE). This is done by determining the ratio of junction counts as a proportion of all junction reads that share a common exon cluster as the junction being assessed.
TL/DR - how to enable junction plotting
plotJunctions = TRUE
from within plotCoverage()
library(SpliceWiz)
# Retrieve example NxtSE object
SpliceWiz_example_NxtSE()
se <-
# Assign annotation of the experimental conditions
colData(se)$treatment <- rep(c("A", "B"), each = 3)
# Return a list of ggplot and plotly objects, also plotting junction counts
plotCoverage(
p <-se = se,
Event = "SE:SRSF3-203-exon4;SRSF3-202-int3",
tracks = colnames(se)[1:4],
## NEW ##
plotJunctions = TRUE
)#> Warning in geom_line(data = dfJn, aes_string(x = "x", y = "yarc", group = "junction", : Ignoring unknown aesthetics: label
#> Ignoring unknown aesthetics: label
#> Ignoring unknown aesthetics: label
#> Ignoring unknown aesthetics: label
if(interactive()) {
# Display as plotly object
$final_plot
pelse {
} # Display as ggplot
as_ggplot_cov(p)
}