# chevreulShiny

# Basics

## Install `chevreulShiny`

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

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

    BiocManager::install("chevreulShiny")

## Required knowledge

The chevreulShiny package is designed for single-cell RNA sequencing data. The functions included within this package are derived from other packages that have implemented the infrastructure needed for RNA-seq data processing and analysis. Packages that have been instrumental in the development of chevreulShiny include, `Biocpkg("SummarizedExperiment")` and `Biocpkg("scater")`.

## Asking for help

`R` and `Bioconductor` have a steep learning curve so it is critical to learn where to ask for help. The Bioconductor support site is the main resource for getting help: remember to use the `chevreulShiny` tag and check the older posts.

# Quick start to using `chevreulShiny`

The `chevreulShiny` package contains a shiny app for easy visualization and analysis of scRNA data.

`chevreulShiny` uses SingleCellExperiment (SCE) object type (from SingleCellExperiment) to store expression and other metadata from single-cell experiments.

This package features functions capable of:

- Performing Clustering at a range of resolutions and Dimensional reduction of Raw Sequencing Data.
- Visualizing scRNA data using different plotting functions.
- Integration of multiple datasets for consistent analyses.
- Cell cycle state regression and labeling.

    library("chevreulShiny")

    # Load the data
    data("small_example_dataset")

## Shiny app

chevreulShiny includes a shiny app for exploratory scRNA data analysis and visualization which can be accessed via

    minimalChevreulApp(small_example_dataset)

Note: the SCE object must be pre-processed and integrated (if required) prior to running the shiny app.

This package includes a set of Shiny apps for interactive exploration of single cell RNA sequencing (scRNA-seq) datasets processed as SingleCellExperiments

A demo with a developing human retina scRNA-seq dataset from Shayler et al. is available here

chevreulShiny includes tools for:

- Interactive data analysis and visualization

## Installation instructions

chevreulShiny depends on a minimum R version 4.4. The current
chevreulShiny loads two Bioconductor dependencies

1. `chevreulProcess`
2. `chevreulPlot`

These enable standardized processing, plotting of SingleCellExperiments, respectively.

### Troubleshooting installation

#### Dependency management

When installing an R package like chevreulShiny with many dependencies, conflicts with existing installations can arise. This is a common issue in R package management. Here are some strategies to address this problem:

1. Consider renv for dependency management. This tool creates isolated environments for each project, ensuring that package versions don’t conflict across different projects.

2. Use the conflicted Package The conflicted package provides an alternative conflict resolution strategy. It makes every conflict an error, forcing you to choose which function to use

#### Slow internet connection

When installing R packages on slow internet connections, several issues can arise, particularly with larger packages or when using functions like remotes::install_github(). Here are some strategies to address bandwidth-related problems:

Set a longer timeout for downloads: `options(timeout = 9999999)`

Specify the download method: `options(download.file.method = "libcurl")`

## Hardware requirements

Recommended minimum hardware requirements for running chevreulShiny are as follows:

- RAM: A minimum of 16 GB RAM is recommended for initial analysis. However, for larger datasets or more complex analyses, 64 GB or more is advisable.
- CPU: Having multiple cores can be beneficial for parallel processing.
- Storage: Sufficient storage space is necessary, especially for temporary files. The exact amount depends on the size of your datasets
- R Version: Chevruel requires R version 4.4 or greater

It’s important to note that these requirements can vary based on the size and complexity of your dataset. As the number of cells increases, so do the hardware requirements. For instance: A dataset with around 8,000 cells can be analyzed with 8 GB of RAM. For larger datasets or more complex analyses, 64-128 GB of RAM can be beneficial.

## Learn More

To learn more about the usage of Bioconductor tools for single-cell RNA-seq analysis. Consult the book Orchestrating Single-Cell Analysis with Bioconductor. The book walks through common workflows for the analysis of single-cell RNA-seq data (scRNA-seq). This book will show you how to make use of cutting-edge Bioconductor tools to process, analyze, visualize, and explore scRNA-seq data

`R` session information.

    #> R version 4.5.2 (2025-10-31)
    #> Platform: x86_64-pc-linux-gnu
    #> Running under: Ubuntu 24.04.3 LTS
    #>
    #> Matrix products: default
    #> BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
    #> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so;  LAPACK version 3.12.0
    #>
    #> locale:
    #>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=C
    #>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8       LC_NAME=C
    #>  [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
    #>
    #> time zone: Etc/UTC
    #> tzcode source: system (glibc)
    #>
    #> attached base packages:
    #> [1] stats4    stats     graphics  grDevices utils     datasets  methods   base
    #>
    #> other attached packages:
    #>  [1] chevreulShiny_1.2.0         chevreulPlot_1.2.0          chevreulProcess_1.2.0       scater_1.38.0
    #>  [5] ggplot2_4.0.2               scuttle_1.20.0              shinydashboard_0.7.3        shiny_1.13.0
    #>  [9] SingleCellExperiment_1.32.0 SummarizedExperiment_1.40.0 Biobase_2.70.0              GenomicRanges_1.62.1
    #> [13] Seqinfo_1.0.0               IRanges_2.44.0              S4Vectors_0.48.0            BiocGenerics_0.56.0
    #> [17] generics_0.1.4              MatrixGenerics_1.22.0       matrixStats_1.5.0           BiocStyle_2.38.0
    #>
    #> loaded via a namespace (and not attached):
    #>   [1] fs_1.6.6                  ProtGenerics_1.42.0       bitops_1.0-9              httr_1.4.8
    #>   [5] RColorBrewer_1.1-3        doParallel_1.0.17         tools_4.5.2               alabaster.base_1.10.0
    #>   [9] R6_2.6.1                  DT_0.34.0                 ResidualMatrix_1.20.0     lazyeval_0.2.2
    #>  [13] DataEditR_0.1.5           rhdf5filters_1.22.0       GetoptLong_1.1.0          withr_3.0.2
    #>  [17] gridExtra_2.3             cli_3.6.5                 EnsDb.Hsapiens.v86_2.99.0 shinyjs_2.1.1
    #>  [21] sass_0.4.10               S7_0.2.1                  readr_2.2.0               Rsamtools_2.26.0
    #>  [25] yulab.utils_0.2.4         shinyhelper_0.3.2         parallelly_1.46.1         limma_3.66.0
    #>  [29] rstudioapi_0.18.0         RSQLite_2.4.6             gridGraphics_0.5-1        shape_1.4.6.1
    #>  [33] BiocIO_1.20.0             dplyr_1.2.0               Matrix_1.7-4              ggbeeswarm_0.7.3
    #>  [37] abind_1.4-8               lifecycle_1.0.5           yaml_2.3.12               edgeR_4.8.2
    #>  [41] rhdf5_2.54.1              SparseArray_1.10.8        grid_4.5.2                blob_1.3.0
    #>  [45] promises_1.5.0            dqrng_0.4.1               crayon_1.5.3              miniUI_0.1.2
    #>  [49] lattice_0.22-9            beachmat_2.26.0           GenomicFeatures_1.62.0    cigarillo_1.0.0
    #>  [53] KEGGREST_1.50.0           sys_3.4.3                 maketools_1.3.2           pillar_1.11.1
    #>  [57] knitr_1.51                ComplexHeatmap_2.26.1     metapod_1.18.0            rjson_0.2.23
    #>  [61] codetools_0.2-20          glue_1.8.0                data.table_1.18.2.1       vctrs_0.7.1
    #>  [65] png_0.1-8                 EnhancedVolcano_1.28.2    gtable_0.3.6              cachem_1.1.0
    #>  [69] xfun_0.56                 S4Arrays_1.10.1           mime_0.13                 tidygraph_1.3.1
    #>  [73] megadepth_1.20.0          iterators_1.0.14          statmod_1.5.1             bluster_1.20.0
    #>  [77] bit64_4.6.0-1             GenomeInfoDb_1.46.2       bslib_0.10.0              irlba_2.3.7
    #>  [81] vipor_0.4.7               otel_0.2.0                colorspace_2.1-2          DBI_1.2.3
    #>  [85] tidyselect_1.2.1          waiter_0.2.5.1            bit_4.6.0                 compiler_4.5.2
    #>  [89] curl_7.0.0                BiocNeighbors_2.4.0       rhandsontable_0.3.8       DelayedArray_0.36.0
    #>  [93] plotly_4.12.0             rtracklayer_1.70.1        scales_1.4.0              wiggleplotr_1.34.0
    #>  [97] rappdirs_0.3.4            stringr_1.6.0             digest_0.6.39             shinyBS_0.63.0
    #> [101] rmarkdown_2.30            XVector_0.50.0            htmltools_0.5.9           pkgconfig_2.0.3
    #> [105] sparseMatrixStats_1.22.0  fastmap_1.2.0             ensembldb_2.34.0          rlang_1.1.7
    #> [109] GlobalOptions_0.1.3       htmlwidgets_1.6.4         UCSC.utils_1.6.1          DelayedMatrixStats_1.32.0
    #> [113] farver_2.1.2              jquerylib_0.1.4           jsonlite_2.0.0            BiocParallel_1.44.0
    #> [117] BiocSingular_1.26.1       RCurl_1.98-1.17           magrittr_2.0.4            ggplotify_0.1.3
    #> [121] patchwork_1.3.2           Rhdf5lib_1.32.0           Rcpp_1.1.1                viridis_0.6.5
    #> [125] stringi_1.8.7             alabaster.schemas_1.10.0  ggraph_2.2.2              MASS_7.3-65
    #> [129] shinyFiles_0.9.3          parallel_4.5.2            listenv_0.10.0            ggrepel_0.9.6
    #> [133] forcats_1.0.1             Biostrings_2.78.0         graphlayouts_1.2.3        hms_1.1.4
    #> [137] circlize_0.4.17           locfit_1.5-9.12           clustree_0.5.1            igraph_2.2.2
    #> [141] buildtools_1.0.0          ScaledMatrix_1.18.0       XML_3.99-0.22             evaluate_1.0.5
    #> [145] scran_1.38.0              BiocManager_1.30.27       tzdb_0.5.0                foreach_1.5.2
    #> [149] tweenr_2.0.3              httpuv_1.6.16             batchelor_1.26.0          tidyr_1.3.2
    #> [153] purrr_1.2.1               polyclip_1.10-7           future_1.69.0             clue_0.3-67
    #> [157] ggforce_0.5.0             rsvd_1.0.5                xtable_1.8-4              restfulr_0.0.16
    #> [161] AnnotationFilter_1.34.0   later_1.4.6               viridisLite_0.4.3         tibble_3.3.1
    #> [165] memoise_2.0.1             beeswarm_0.4.0            AnnotationDbi_1.72.0      GenomicAlignments_1.46.0
    #> [169] cluster_2.1.8.2           shinyWidgets_0.9.0        globals_0.19.0            cmdfun_1.0.2