isoformSwitchTestDEXSeq {IsoformSwitchAnalyzeR} | R Documentation |
This function utilizes DEXSeq to test isoforms (isoform resolution) for differential isoform usage. It can furthermore also estimate corrected effect sizes (IF and dIF) in experimental setups with confounding effects (such as batches).
isoformSwitchTestDEXSeq( switchAnalyzeRlist, alpha = 0.05, dIFcutoff = 0.1, correctForConfoundingFactors=TRUE, overwriteIFvalues=TRUE, reduceToSwitchingGenes = TRUE, reduceFurtherToGenesWithConsequencePotential = TRUE, onlySigIsoforms = FALSE, showProgress = TRUE, quiet = FALSE )
switchAnalyzeRlist |
A |
alpha |
The cutoff which the (calibrated) fdr correct p-values must be smaller than for calling significant switches. Defuault is 0.05. |
dIFcutoff |
The cutoff which the changes in (absolute) isoform usage must be larger than before an isoform is considered switching. This cutoff can remove cases where isoforms with (very) low dIF values are deemed significant and thereby included in the downstream analysis. This cutoff is analogous to having a cutoff on log2 fold change in a normal differential expression analysis of genes to ensure the genes have a certain effect size. Default is 0.1 (10%). |
correctForConfoundingFactors |
A logic indicating whether IsoformSwitchAnalyzeR to use limma to correct for any confounding effects (e.g. batch effects) as indicated in the design matrix (as additional columns (appart from the two default columns)). Default is TRUE. |
overwriteIFvalues |
A logic indicating whether to overwrite the IF and dIF stored in the switchAnalyzeRlist with the corrected IF and dIF values - if no counfounding effects are pressent in the design matrix this will not change anything. Default is TRUE. |
reduceToSwitchingGenes |
A logic indicating whether the switchAnalyzeRlist should be reduced to the genes which contains at least one isoform significantly differential used (as indicated by the |
reduceFurtherToGenesWithConsequencePotential |
A logic indicating whether the switchAnalyzeRlist should be reduced to the genes which have the potential to find isoform switches with predicted consequences. This argument is a more strict version of |
onlySigIsoforms |
A logic indicating whether both isoforms the pairs considered if |
showProgress |
A logic indicating whether to make a progress bar (if TRUE) or not (if FALSE). Defaults is FALSE. |
quiet |
A logic indicating whether to avoid printing progress messages (incl. progress bar). Default is FALSE |
This function uses DEXSeq to test for differential isoform usage using the replicate count matrix. This is done by for each pariwise comparison building and testing one model (building one combined model and testing each pariwise comparison from that is not supported by DEXSeq).
isoformSwitchTestDEXSeq also allows for estimation of effect sizes (IF and dIF) corrected for counfounding effects (controled by correctForConfoundingFactors = TRUE
) (recomended). Counfounding effects (stored as additional column(s) in the design matrix ( switchAnalyzeRlist$designMatrix )) is done by by performing a batch correction on the isoform abundance matrix with limma::removeBatchEffect() and afterwards recalculate the IF matrix and summarize the IF and dIF values. These new estimates can be added to the switchAnalyzeRlist (overwriting the existing values) by setting overwriteIFvalues = TRUE
.
Note that the actual testing via DEXSeq always will take confounding effects into account (a full model including all confounding effects are always made).
A switchAnalyzeRlist
where the following have been modified:
1
: Two collumns, isoform_switch_q_value
and gene_switch_q_value
in the isoformFeatures
entry have overwritten with the result of the test.
2
: A data.frame
containing the details of the analysis have been added (called 'isoformSwitchAnalysis').
The data.frame added have one row per isoform per comparison of condition and contains the following columns:
iso_ref
: A unique refrence to a specific isoform in a specific comaprison of conditions. Enables easy handles to integrate data from all the parts of a switchAnalyzeRlist
.
gene_ref
: A unique refrence to a specific gene in a specific comaprison of conditions. Enables esay handles to integrate data from all the parts of a switchAnalyzeRlist
.
isoform_id
: The name of the isoform analyzed. Matches the 'isoform_id' entry in the 'isoformFeatures' entry of the switchAnalyzeRlist
condition_1
: Condition 1 - the condition used as baseline.
condition_2
: Condition 2.
dIF
: The difference in IF values (IF2-IF1) - potentially corrected for confounding effects.
pvalue
: Isoform level P-values.
padj
: Isoform level False Discovery Rte (FDR) corrected P-values (q-values).
IF1
: Mean isoform fraction in condition 1 - potentially corrected for confounding effects.
IF2
: Mean isoform fraction in condition 2 - potentially corrected for confounding effects.
Kristoffer Vitting-Seerup
Vitting-Seerup et al. The Landscape of Isoform Switches in Human Cancers. Mol. Cancer Res. (2017). Anders et al. Detecting differential usage of exons from RNA-seq data. Genome Research (2012).
preFilter
extractSwitchSummary
extractTopSwitches
### Please note # 1) The way of importing files in the following example with # "system.file('pathToFile', package="IsoformSwitchAnalyzeR") is # specialized way of accessing the example data in the IsoformSwitchAnalyzeR package # and not something you need to do - just supply the string e.g. # "myAnnotation/isoformsQuantified.gtf" to the functions # 2) importRdata directly supports import of a GTF file - just supply the # path (e.g. "myAnnotation/isoformsQuantified.gtf") to the isoformExonAnnoation argument ### Import quantifications salmonQuant <- importIsoformExpression(system.file("extdata/", package="IsoformSwitchAnalyzeR")) ### Make design matrix myDesign <- data.frame( sampleID = colnames(salmonQuant$abundance)[-1], condition = gsub('_.*', '', colnames(salmonQuant$abundance)[-1]) ) ### Create switchAnalyzeRlist aSwitchList <- importRdata( isoformCountMatrix = salmonQuant$counts, isoformRepExpression = salmonQuant$abundance, designMatrix = myDesign, isoformExonAnnoation = system.file("extdata/example.gtf.gz", package="IsoformSwitchAnalyzeR"), showProgress = FALSE ) ### Remove lowly expressed aSwitchListAnalyzed <- preFilter(aSwitchList) ### Test isoform swtiches aSwitchListAnalyzed <- isoformSwitchTestDEXSeq( switchAnalyzeRlist = aSwitchListAnalyzed ) # extract summary of number of switching features extractSwitchSummary(aSwitchListAnalyzed)