1 Basics

1.1 Install iSEEde

is an open-source statistical environment which can be easily modified to enhance its functionality via packages. iSEEde is an package available via the Bioconductor repository for packages. can be installed on any operating system from CRAN after which you can install iSEEde by using the following commands in your session:

if (!requireNamespace("BiocManager", quietly = TRUE)) {
    install.packages("BiocManager")
}

BiocManager::install("iSEEde")

## Check that you have a valid Bioconductor installation
BiocManager::valid()

1.2 Required knowledge

iSEEde is based on many other packages and in particular on those that have implemented the infrastructure needed for dealing with omics data and interactive visualisation. That is, packages like SummarizedExperiment, SingleCellExperiment, iSEE and shiny.

If you are asking yourself the question “Where do I start using Bioconductor?” you might be interested in this blog post.

1.3 Asking for help

As package developers, we try to explain clearly how to use our packages and in which order to use the functions. But and Bioconductor have a steep learning curve so it is critical to learn where to ask for help. The blog post quoted above mentions some but we would like to highlight the Bioconductor support site as the main resource for getting help: remember to use the iSEEde tag and check the older posts. Other alternatives are available such as creating GitHub issues and tweeting. However, please note that if you want to receive help you should adhere to the posting guidelines. It is particularly critical that you provide a small reproducible example and your session information so package developers can track down the source of the error.

1.4 Citing iSEEde

We hope that iSEEde will be useful for your research. Please use the following information to cite the package and the overall approach. Thank you!

## Citation info
citation("iSEEde")
#> To cite package 'iSEEde' in publications use:
#> 
#>   Rue-Albrecht K (2024). _iSEEde: iSEE extension for panels related to differential
#>   expression analysis_. doi:10.18129/B9.bioc.iSEEde
#>   <https://doi.org/10.18129/B9.bioc.iSEEde>, R package version 1.5.0,
#>   <https://bioconductor.org/packages/iSEEde>.
#> 
#> A BibTeX entry for LaTeX users is
#> 
#>   @Manual{,
#>     title = {iSEEde: iSEE extension for panels related to differential expression analysis},
#>     author = {Kevin Rue-Albrecht},
#>     year = {2024},
#>     note = {R package version 1.5.0},
#>     url = {https://bioconductor.org/packages/iSEEde},
#>     doi = {10.18129/B9.bioc.iSEEde},
#>   }

2 Quick start to using to iSEEde

The example below demonstrates how to use iSEEde functionality in a simple differential expression workflow.

Specifically, the DESeq2 package is used to perform a simple differential expression analysis. Then, the results of one contrast – extracted using the function DESeq2::results() function – are embedded into the SummarizedExperiment object airway using the function iSEEde::embedContrastResults(). This ensures that the differential expression results for that contrast are accessible to specialised interactive panels in iSEE applications.

library("iSEEde")
library("airway")
library("DESeq2")
library("iSEE")

# Example data ----

data("airway")
airway$dex <- relevel(airway$dex, "untrt")

dds <- DESeqDataSet(airway, ~ 0 + dex + cell)

dds <- DESeq(dds)
res_deseq2 <- results(dds, contrast = list("dextrt", "dexuntrt"))
head(res_deseq2)
#> log2 fold change (MLE): dextrt vs dexuntrt 
#> Wald test p-value: dextrt vs dexuntrt 
#> DataFrame with 6 rows and 6 columns
#>                   baseMean log2FoldChange     lfcSE      stat      pvalue       padj
#>                  <numeric>      <numeric> <numeric> <numeric>   <numeric>  <numeric>
#> ENSG00000000003 708.602170     -0.3812539  0.100654 -3.787752 0.000152016 0.00128292
#> ENSG00000000005   0.000000             NA        NA        NA          NA         NA
#> ENSG00000000419 520.297901      0.2068127  0.112219  1.842944 0.065337213 0.19646961
#> ENSG00000000457 237.163037      0.0379205  0.143445  0.264356 0.791505314 0.91141884
#> ENSG00000000460  57.932633     -0.0881679  0.287142 -0.307054 0.758802543 0.89500551
#> ENSG00000000938   0.318098     -1.3782416  3.499906 -0.393794 0.693733216         NA

# iSEE / iSEEde ---

airway <- embedContrastResults(res_deseq2, airway, name = "dex: trt vs untrt")
contrastResults(airway)
#> DataFrame with 63677 rows and 1 column
#>                   dex: trt vs untrt
#>                 <iSEEDESeq2Results>
#> ENSG00000000003 <iSEEDESeq2Results>
#> ENSG00000000005 <iSEEDESeq2Results>
#> ENSG00000000419 <iSEEDESeq2Results>
#> ENSG00000000457 <iSEEDESeq2Results>
#> ENSG00000000460 <iSEEDESeq2Results>
#> ...                             ...
#> ENSG00000273489 <iSEEDESeq2Results>
#> ENSG00000273490 <iSEEDESeq2Results>
#> ENSG00000273491 <iSEEDESeq2Results>
#> ENSG00000273492 <iSEEDESeq2Results>
#> ENSG00000273493 <iSEEDESeq2Results>

app <- iSEE(airway, initial = list(
  DETable(ContrastName="dex: trt vs untrt", HiddenColumns = c("baseMean", 
    "lfcSE", "stat"), PanelWidth = 4L),
  VolcanoPlot(ContrastName="dex: trt vs untrt", PanelWidth = 4L),
  MAPlot(ContrastName="dex: trt vs untrt", PanelWidth = 4L)
))

if (interactive()) {
    shiny::runApp(app)
}