From 3b3abfe279aa73a1f49f13f95d09fe999139e8cd Mon Sep 17 00:00:00 2001 From: EugOT Date: Fri, 26 Jul 2024 00:07:38 +0200 Subject: [PATCH] add bibliography files --- analysis/_site.yml | 2 +- analysis/methods.Rmd | 128 +++++++-- data/references/references.bib | 182 +++++++++++++ output/methods/package-versions.json | 12 + output/methods/packages.bib | 370 +++++++++++++++++++++++++++ 5 files changed, 667 insertions(+), 27 deletions(-) create mode 100644 data/references/references.bib create mode 100644 output/methods/package-versions.json create mode 100644 output/methods/packages.bib diff --git a/analysis/_site.yml b/analysis/_site.yml index 6fea582..febb9c1 100644 --- a/analysis/_site.yml +++ b/analysis/_site.yml @@ -14,7 +14,7 @@ navbar: - text: Exploratory analysis of CaCyBP and S100a6 expression in embryonic mice cortex dataset with focus on astrocytic lineage href: cortex_visualisation.html - text: "Methods" - href: methods.html + href: methods.html right: - text: "License" href: license.html diff --git a/analysis/methods.Rmd b/analysis/methods.Rmd index 439ed46..1ca72c1 100644 --- a/analysis/methods.Rmd +++ b/analysis/methods.Rmd @@ -89,7 +89,14 @@ write_bib(c("base", "Seurat", "SeuratWrappers", "SeuratData", "sctransform", # Introduction -This methods section details the analytical approaches used in our study of astrocyte modulation of neuronal development through S100A6 signaling. We employed state-of-the-art single-cell RNA sequencing analysis techniques to explore gene expression patterns in the developing mouse cortex, and used robust statistical methods to analyze MTT assay data measuring astrocyte viability under various conditions. Our approach emphasizes reproducibility, statistical rigor, and comprehensive data visualization. +This methods section details the analytical approaches used in our study +of astrocyte modulation of neuronal development through S100A6 +signaling. We employed state-of-the-art single-cell RNA sequencing +analysis techniques to explore gene expression patterns in the +developing mouse cortex, and used robust statistical methods to analyze +MTT assay data measuring astrocyte viability under various conditions. +Our approach emphasizes reproducibility, statistical rigor, and +comprehensive data visualization. ```{r load} versions <- list( @@ -110,38 +117,83 @@ versions <- list( # Single-cell RNA sequencing data analysis -We analyzed single-cell RNA sequencing data from developing mouse cortex spanning embryonic day (E) 10 to postnatal day (P) 4. The dataset was obtained from [@dibellaMolecularLogicCellular2021] and accessed through the Single Cell Portal (SCP1290; [@tarhanSingleCellPortal2023]). Raw count data and metadata were downloaded and processed using Seurat (v`r packageVersion("Seurat")`) in R (v`r R.version.string`). We chose Seurat for its comprehensive toolset for quality control, analysis, and exploration of single-cell RNA-seq data, as well as its wide adoption in the field. +We analyzed single-cell RNA sequencing data from developing mouse cortex +spanning embryonic day (E) 10 to postnatal day (P) 4. The dataset was +obtained from [@dibellaMolecularLogicCellular2021] and accessed through +the Single Cell Portal (SCP1290; [@tarhanSingleCellPortal2023]). Raw +count data and metadata were downloaded and processed using Seurat +(v`r packageVersion("Seurat")`), +[@satijaSpatialReconstructionSinglecell2015; +@stuartIntegrativeSinglecellAnalysis2019] in R (v`r R.version.string`). +We chose Seurat for its comprehensive toolset for quality control, +analysis, and exploration of single-cell RNA-seq data, as well as its +wide adoption in the field. ## Data preprocessing and quality control -The raw count matrix was loaded using the `Read10X()` function from Seurat. We performed the following preprocessing steps: +The raw count matrix was loaded using the `Read10X()` function from +Seurat. We performed the following preprocessing steps: -The log1p normalized matrix was converted back to raw counts by applying `expm1()`. -Scaling factors were calculated based on the total UMI counts per cell. -The count matrix was scaled by multiplying each cell's counts by its scaling factor. -A new Seurat object was created using the scaled count matrix. -Cells annotated as doublets, low quality, or red blood cells were removed using the `subset()` function. The data was then normalized using the `NormalizeData()` function, and 5000 highly variable features were identified using `FindVariableFeatures()`. +The log1p normalized matrix was converted back to raw counts by applying +`expm1()`. Scaling factors were calculated based on the total UMI counts +per cell. The count matrix was scaled by multiplying each cell's counts +by its scaling factor. A new Seurat object was created using the scaled +count matrix. Cells annotated as doublets, low quality, or red blood +cells were removed using the `subset()` function. The data was then +normalized using the `NormalizeData()` function, and 5000 highly +variable features were identified using `FindVariableFeatures()`. ## Dimensionality reduction and clustering -We performed principal component analysis (PCA) on the variable features using `RunPCA()`. Based on the Elbow plot, which indicates the explained variability of each principal component, we selected the first 30 out of 50 PCs for downstream analysis. This choice helps reduce noise in the data while ensuring biological reproducibility of results. - -Uniform Manifold Approximation and Projection (UMAP) and t-distributed Stochastic Neighbor Embedding (t-SNE) were used for dimensionality reduction, with embeddings stored in the Seurat object. Both techniques used the selected 30 PCs as input. - -Cells were clustered using the `FindNeighbors()` and `FindClusters()` functions. For community detection, we employed the Leiden algorithm (resolution = 0.7) instead of the commonly used Louvain algorithm or alternatives such as walktrap, multilevel, or infomap. The Leiden algorithm was chosen for its ability to find converged optimal solutions more efficiently, which is particularly beneficial for large-scale single-cell datasets [@traagLouvainLeidenGuaranteeing2019]. - +We performed principal component analysis (PCA) on the variable features +using `RunPCA()`. Based on the Elbow plot, which indicates the explained +variability of each principal component, we selected the first 30 out of +50 PCs for downstream analysis. This choice helps reduce noise in the +data while ensuring biological reproducibility of results. + +Uniform Manifold Approximation and Projection (UMAP; +[@mcinnesUMAPUniformManifold2018]) and t-distributed Stochastic Neighbor +Embedding (t-SNE; [@maatenVisualizingDataUsing2008; +@kobakInitializationCriticalPreserving2021]) were used for +dimensionality reduction, with embeddings stored in the Seurat object. +Both techniques used the selected 30 PCs as input. + +Cells were clustered using the `FindNeighbors()` and `FindClusters()` +functions. For community detection, we employed the Leiden algorithm +(resolution = 0.7) instead of the commonly used Louvain algorithm or +alternatives such as walktrap, multilevel, or infomap. The Leiden +algorithm was chosen for its ability to find converged optimal solutions +more efficiently, which is particularly beneficial for large-scale +single-cell datasets [@traagLouvainLeidenGuaranteeing2019]. ## Gene expression analysis -We analyzed the expression of S100 family genes and a curated list of genes of interest across different developmental stages and cell types. Feature plots, violin plots, and dot plots were generated using Seurat's visualization functions (`FeaturePlot()`, `VlnPlot()`, `DotPlot()`) and custom functions from the scCustomize package (v`r packageVersion("scCustomize")`). +We analyzed the expression of S100 family genes and a curated list of +genes of interest across different developmental stages and cell types. +Feature plots, violin plots, and dot plots were generated using Seurat's +visualization functions (`FeaturePlot()`, `VlnPlot()`, `DotPlot()`) and +custom functions from the scCustomize package +(v`r packageVersion("scCustomize")`). ## Analysis of astrocyte lineage -Cells annotated as astrocytes, apical progenitors, and cycling glial cells were subset for focused analysis of the astrocyte lineage. This subset was re-clustered using the same approach as described above. We performed differential expression analysis between astrocyte clusters using both the `FindAllMarkers` function in Seurat (using a logistic regression test) and DESeq2 (v`r packageVersion("DESeq2")`) on pseudobulk data aggregated by cluster and developmental stage. The combination of these two approaches allows us to leverage the strengths of both single-cell and bulk RNA-seq differential expression methods. +Cells annotated as astrocytes, apical progenitors, and cycling glial +cells were subset for focused analysis of the astrocyte lineage. This +subset was re-clustered using the same approach as described above. We +performed differential expression analysis between astrocyte clusters +using both the `FindAllMarkers` function in Seurat (using a logistic +regression test; [@ntranosDiscriminativeLearningApproach2019]) and +DESeq2 (v`r packageVersion("DESeq2")`), @loveModeratedEstimationFold2014 +on pseudobulk data aggregated by cluster and developmental stage. The +combination of these two approaches allows us to leverage the strengths +of both single-cell and bulk RNA-seq differential expression methods. ## Visualization -Two-dimensional UMAP plots were generated using `FeaturePlot()` with the `blend = TRUE` option to examine co-expression patterns of key genes. We used custom color palettes and the patchwork package to create composite figures. +Two-dimensional UMAP plots were generated using `FeaturePlot()` with the +`blend = TRUE` option to examine co-expression patterns of key genes. We +used custom color palettes and the patchwork package to create composite +figures. # MTT Assay Analysis @@ -154,25 +206,38 @@ using estimation statistics [@hoMovingValuesData2019]. The analysis workflow was as follows: -1. Data was loaded from a TSV file using `read_tsv()` and reshaped into long format using `tidyr::gather()`. +1. Data was loaded from a TSV file using `read_tsv()` and reshaped into + long format using `tidyr::gather()`. -2. For each EPA concentration (5 μM, 10 μM, and 30 μM), control and treatment groups were compared using the `load()` function from DABEST. The data was loaded with the `minimeta = TRUE` argument to enable mini-meta analysis across multiple experimental replicates. +2. For each EPA concentration (5 μM, 10 μM, and 30 μM), control and + treatment groups were compared using the `load()` function from + DABEST. The data was loaded with the `minimeta = TRUE` argument to + enable mini-meta analysis across multiple experimental replicates. -3. Mean differences between EPA-treated and control samples were calculated using the `mean_diff()` function. This function computes: +3. Mean differences between EPA-treated and control samples were + calculated using the `mean_diff()` function. This function computes: - The individual mean differences for each experimental replicate - - A weighted average of the mean differences (mini-meta delta) using the generic inverse-variance method + - A weighted average of the mean differences (mini-meta delta) + using the generic inverse-variance method -4. 5000 bootstrap resamples were used to generate effect size estimates with 95% confidence intervals. The confidence intervals are bias-corrected and accelerated. +4. 5000 bootstrap resamples were used to generate effect size estimates + with 95% confidence intervals. The confidence intervals are + bias-corrected and accelerated. -5. Results were visualized using the `dabest_plot()` function to create Cumming estimation plots. These plots show: +5. Results were visualized using the `dabest_plot()` function to create + Cumming estimation plots. These plots show: - Raw data points for each group - Group means with 95% confidence intervals - - The mean difference for each replicate with its 95% confidence interval + - The mean difference for each replicate with its 95% confidence + interval - The weighted mini-meta delta with its 95% confidence interval -6. Additional statistical information, including p-values from permutation t-tests, was also calculated and reported, although the focus of the analysis was on effect sizes and their confidence intervals rather than null hypothesis significance testing. +6. Additional statistical information, including p-values from + permutation t-tests, was also calculated and reported, although the + focus of the analysis was on effect sizes and their confidence + intervals rather than null hypothesis significance testing. This approach allows for a comprehensive view of the treatment effects across multiple replicates, taking into account both the magnitude of @@ -204,7 +269,18 @@ results and output. Reproducible reports were produced using knitr # Conclusion -Our methodological approach combines cutting-edge single-cell RNA sequencing analysis techniques with robust statistical methods for analyzing experimental data. By using tools like 1) Seurat for scRNA-seq analysis with two different frameworks for differential gene expression analysis: logit tailored for the analysis of scRNA-seq data, and DESeq2 on pseudo-bulk data, and 2) DABEST for MTT assay analysis, we ensure a comprehensive and statistically sound exploration of astrocyte-mediated neuronal development. The use of estimation statistics and mini-meta analysis allows for a nuanced interpretation of experimental results, while our focus on reproducibility and open science practices ensures that our findings can be thoroughly validated and built upon by the scientific community. +Our methodological approach combines cutting-edge single-cell RNA +sequencing analysis techniques with robust statistical methods for +analyzing experimental data. By using tools like 1) Seurat for scRNA-seq +analysis with two different frameworks for differential gene expression +analysis: logit tailored for the analysis of scRNA-seq data, and DESeq2 +on pseudo-bulk data, and 2) DABEST for MTT assay analysis, we ensure a +comprehensive and statistically sound exploration of astrocyte-mediated +neuronal development. The use of estimation statistics and mini-meta +analysis allows for a nuanced interpretation of experimental results, +while our focus on reproducibility and open science practices ensures +that our findings can be thoroughly validated and built upon by the +scientific community. # Summary diff --git a/data/references/references.bib b/data/references/references.bib new file mode 100644 index 0000000..90837d3 --- /dev/null +++ b/data/references/references.bib @@ -0,0 +1,182 @@ + +@article{dibellaMolecularLogicCellular2021, + title = {Molecular logic of cellular diversification in the mouse cerebral cortex.}, + author = {Di Bella, Daniela J. and Habibi, Ehsan and Stickels, Robert R. and Scalia, Gabriele and Brown, Juliana and Yadollahpour, Payman and Yang, Sung Min and Abbate, Catherine and Biancalani, Tommaso and Macosko, Evan Z. and Chen, Fei and Regev, Aviv and Arlotta, Paola}, + year = {2021}, + month = {07}, + date = {2021-07}, + journal = {Nature}, + pages = {554--559}, + volume = {595}, + number = {7868}, + doi = {10.1038/s41586-021-03670-5}, + note = {48 citations (Semantic Scholar/DOI) [2022-06-25] +ECC: 0000004 +Place: England +PMID: 34163074 +Citation Key: dibellaMolecularLogicCellular2021}, + langid = {eng} +} + +@article{tarhanSingleCellPortal2023, + title = {Single Cell Portal: an interactive home for single-cell genomics data}, + author = {Tarhan, Leyla and Bistline, Jon and Chang, Jean and Galloway, Bryan and Hanna, Emily and Weitz, Eric}, + doi = {10.1101/2023.07.13.548886}, + langid = {en} +} + +@article{traagLouvainLeidenGuaranteeing2019, + title = {From Louvain to Leiden: guaranteeing well-connected communities}, + author = {Traag, V. A. and Waltman, L. and van Eck, N. J.}, + year = {2019}, + month = {12}, + date = {2019-12}, + journal = {Scientific Reports}, + pages = {5233}, + volume = {9}, + number = {1}, + doi = {10.1038/s41598-019-41695-z}, + url = {http://www.nature.com/articles/s41598-019-41695-z}, + note = {1071 citations (Semantic Scholar/DOI) [2022-08-12] +Citation Key: traagLouvainLeidenGuaranteeing2019 +tex.ids= traagLouvainLeidenGuaranteeing2019a +PMCID: PMC6435756 +PMID: 30914743}, + langid = {en} +} + +@article{hoMovingValuesData2019, + title = {Moving beyond P values: data analysis with estimation graphics}, + author = {Ho, Joses and Tumkaya, Tayfun and Aryal, Sameer and Choi, Hyungwon and Claridge-Chang, Adam}, + year = {2019}, + month = {07}, + date = {2019-07}, + journal = {Nature Methods}, + pages = {565--566}, + volume = {16}, + number = {7}, + doi = {10.1038/s41592-019-0470-3}, + note = {Citation Key: hoMovingValuesData2019 +tex.ids= hoMovingValuesData2019a +PMID: 31217592}, + langid = {eng} +} + +@article{conwayUpSetRPackageVisualization2017, + title = {UpSetR: an R package for the visualization of intersecting sets and their properties}, + author = {Conway, Jake R and Lex, Alexander and Gehlenborg, Nils}, + editor = {Hancock, John}, + year = {2017}, + month = {09}, + date = {2017-09-15}, + journal = {Bioinformatics}, + pages = {2938--2940}, + volume = {33}, + number = {18}, + doi = {10.1093/bioinformatics/btx364}, + url = {https://academic.oup.com/bioinformatics/article/33/18/2938/3884387}, + note = {Citation Key: conwayUpSetRPackageVisualization2017 +tex.ids= conwayUpSetRPackageVisualization2017a}, + langid = {en} +} + +@article{ + mcinnesUMAPUniformManifold2018, + title={UMAP: Uniform Manifold Approximation and Projection}, + volume={3}, + ISSN={2475-9066}, + url={http://joss.theoj.org/papers/10.21105/joss.00861}, + DOI={10.21105/joss.00861}, + note={2314 citations (Semantic Scholar/DOI) [2022-08-22] Citation Key: mcinnesUMAPUniformManifold2018}, + number={29}, + journal={Journal of Open Source Software}, + author={McInnes, Leland and Healy, John and Saul, Nathaniel and Großberger, Lukas}, + year={2018}, + month={Sep}, +pages={861} } + +@article{ + maatenVisualizingDataUsing2008, + title={Visualizing Data using t-SNE}, + volume={9}, + ISSN={1533-7928}, + url={http://jmlr.org/papers/v9/vandermaaten08a.html}, + note={Citation Key: maatenVisualizingDataUsing2008}, + number={86}, + journal={Journal of Machine Learning Research}, + author={Maaten, Laurens van der and Hinton, Geoffrey}, + year={2008}, +pages={2579–2605} } + +@article{ + kobakInitializationCriticalPreserving2021, + title={Initialization is critical for preserving global data structure in both t-SNE and UMAP.}, + volume={39}, + ISSN={1546-1696 1087-0156}, + DOI={ghxbbn}, + note={5 citations (Semantic Scholar/DOI) [2021-07-29] Place: United States PMID: 33526945 Citation Key: kobakInitializationCriticalPreserving2021}, + number={2}, + journal={Nature biotechnology}, + author={Kobak, Dmitry and Linderman, George C.}, + year={2021}, + month={Feb}, +pages={156–157} } + +@article{ + satijaSpatialReconstructionSinglecell2015, + title={Spatial reconstruction of single-cell gene expression data.}, + volume={33}, + ISSN={1546-1696 1087-0156}, + DOI={10.1038/nbt.3192}, + note={1819 citations (Semantic Scholar/DOI) [2022-08-26] Citation Key: satijaSpatialReconstructionSinglecell2015 tex.ids= satijaSpatialReconstructionSingleCell2015 PMCID: PMC4430369 PMID: 25867923}, + number={5}, + journal={Nature biotechnology}, + author={Satija, Rahul and Farrell, Jeffrey A. and Gennert, David and Schier, Alexander F. and Regev, Aviv}, + year={2015}, + month={May}, +pages={495–502} } + +@article{ + stuartIntegrativeSinglecellAnalysis2019, + title={Integrative single-cell analysis.}, + volume={20}, + ISSN={1471-0064 1471-0056}, + DOI={10.1038/s41576-019-0093-7}, + note={631 citations (Semantic Scholar/DOI) [2022-08-26] Citation Key: stuartIntegrativeSinglecellAnalysis2019 tex.ids= stuartIntegrativeSingleCellAnalysis2019 PMID: 30696980 place: England}, + number={5}, + journal={Nature reviews. Genetics}, + author={Stuart, Tim and Satija, Rahul}, + year={2019}, + month={May}, +pages={257–272} } + +@article{ + ntranosDiscriminativeLearningApproach2019, + title={A discriminative learning approach to differential expression analysis for single-cell RNA-seq}, + volume={16}, + ISSN={1548-7091, 1548-7105}, + url={10/gftsnv}, + DOI={gftsnv}, + note={32 citations (Semantic Scholar/DOI) [2021-04-07] Citation Key: ntranosDiscriminativeLearningApproach2019 tex.ids= ntranosDiscriminativeLearningApproach2019a PMID: 30664774 place: United States}, + number={2}, + journal={Nature Methods}, + author={Ntranos, Vasilis and Yi, Lynn and Melsted, Páll and Pachter, Lior}, + year={2019}, + month={Feb}, +pages={163–166} } + +@article{loveModeratedEstimationFold2014, + title = {Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2}, + author = {Love, Michael I. and Huber, Wolfgang and Anders, Simon}, + year = {2014}, + date = {2014}, + journal = {Genome Biology}, + pages = {550}, + volume = {15}, + number = {12}, + doi = {10.1186/s13059-014-0550-8}, + note = {PMID: 25516281 +PMCID: PMC4302049 +Citation Key: loveModeratedEstimationFold2014}, + langid = {eng} +} diff --git a/output/methods/package-versions.json b/output/methods/package-versions.json new file mode 100644 index 0000000..5c5e6f8 --- /dev/null +++ b/output/methods/package-versions.json @@ -0,0 +1,12 @@ +{ + "Seurat": ["5.1.0"], + "dabestr": ["2023.9.12"], + "tidyverse": ["2.0.0"], + "RColorBrewer": ["1.1.3"], + "scCustomize": ["2.1.2"], + "SeuratData": ["0.2.2.9001"], + "SeuratWrappers": ["0.3.5"], + "cowplot": ["1.1.3"], + "patchwork": ["1.2.0"], + "R": ["R version 4.4.1 (2024-06-14)"] +} diff --git a/output/methods/packages.bib b/output/methods/packages.bib new file mode 100644 index 0000000..6089529 --- /dev/null +++ b/output/methods/packages.bib @@ -0,0 +1,370 @@ +@Manual{R-base, + title = {R: A Language and Environment for Statistical Computing}, + author = {{R Core Team}}, + organization = {R Foundation for Statistical Computing}, + address = {Vienna, Austria}, + year = {2024}, + url = {https://www.R-project.org/}, +} + +@Manual{R-cowplot, + title = {cowplot: Streamlined Plot Theme and Plot Annotations for ggplot2}, + author = {Claus O. Wilke}, + year = {2024}, + note = {R package version 1.1.3}, + url = {https://wilkelab.org/cowplot/}, +} + +@Manual{R-dabestr, + title = {dabestr: Data Analysis using Bootstrap-Coupled Estimation}, + author = {Joses W. Ho and Kah Seng Lian and Zhuoyu Wang and Jun Yang Liao and Felicia Low and Tayfun Tumkaya}, + year = {2023}, + note = {R package version 2023.9.12}, + url = {https://github.com/ACCLAB/dabestr}, +} + +@Manual{R-dplyr, + title = {dplyr: A Grammar of Data Manipulation}, + author = {Hadley Wickham and Romain François and Lionel Henry and Kirill Müller and Davis Vaughan}, + year = {2023}, + note = {R package version 1.1.4}, + url = {https://dplyr.tidyverse.org}, +} + +@Manual{R-ggplot2, + title = {ggplot2: Create Elegant Data Visualisations Using the Grammar of Graphics}, + author = {Hadley Wickham and Winston Chang and Lionel Henry and Thomas Lin Pedersen and Kohske Takahashi and Claus Wilke and Kara Woo and Hiroaki Yutani and Dewey Dunnington and Teun {van den Brand}}, + year = {2024}, + note = {R package version 3.5.1}, + url = {https://ggplot2.tidyverse.org}, +} + +@Manual{R-glue, + title = {glue: Interpreted String Literals}, + author = {Jim Hester and Jennifer Bryan}, + year = {2024}, + note = {R package version 1.7.0}, + url = {https://glue.tidyverse.org/}, +} + +@Manual{R-gridExtra, + title = {gridExtra: Miscellaneous Functions for "Grid" Graphics}, + author = {Baptiste Auguie}, + year = {2017}, + note = {R package version 2.3}, +} + +@Manual{R-here, + title = {here: A Simpler Way to Find Your Files}, + author = {Kirill Müller}, + year = {2020}, + note = {R package version 1.0.1}, + url = {https://here.r-lib.org/}, +} + +@Manual{R-jsonlite, + title = {jsonlite: A Simple and Robust JSON Parser and Generator for R}, + author = {Jeroen Ooms}, + year = {2023}, + note = {R package version 1.8.8}, + url = {https://jeroen.r-universe.dev/jsonlite}, +} + +@Manual{R-knitr, + title = {knitr: A General-Purpose Package for Dynamic Report Generation in R}, + author = {Yihui Xie}, + year = {2024}, + note = {R package version 1.48}, + url = {https://yihui.org/knitr/}, +} + +@Manual{R-magrittr, + title = {magrittr: A Forward-Pipe Operator for R}, + author = {Stefan Milton Bache and Hadley Wickham}, + year = {2022}, + note = {R package version 2.0.3}, + url = {https://magrittr.tidyverse.org}, +} + +@Manual{R-patchwork, + title = {patchwork: The Composer of Plots}, + author = {Thomas Lin Pedersen}, + year = {2024}, + note = {R package version 1.2.0}, + url = {https://patchwork.data-imaginist.com}, +} + +@Manual{R-purrr, + title = {purrr: Functional Programming Tools}, + author = {Hadley Wickham and Lionel Henry}, + year = {2023}, + note = {R package version 1.0.2}, + url = {https://purrr.tidyverse.org/}, +} + +@Manual{R-RColorBrewer, + title = {RColorBrewer: ColorBrewer Palettes}, + author = {Erich Neuwirth}, + year = {2022}, + note = {R package version 1.1-3}, +} + +@Manual{R-rmarkdown, + title = {rmarkdown: Dynamic Documents for R}, + author = {JJ Allaire and Yihui Xie and Christophe Dervieux and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang and Richard Iannone}, + year = {2024}, + note = {R package version 2.27}, + url = {https://github.com/rstudio/rmarkdown}, +} + +@Manual{R-scCustomize, + title = {scCustomize: Custom Visualizations \& Functions for Streamlined Analyses of +Single Cell Sequencing}, + author = {Samuel Marsh}, + year = {2024}, + note = {R package version 2.1.2}, + url = {https://github.com/samuel-marsh/scCustomize}, +} + +@Manual{R-sctransform, + title = {sctransform: Variance Stabilizing Transformations for Single Cell UMI Data}, + author = {Christoph Hafemeister and Saket Choudhary}, + year = {2023}, + note = {R package version 0.4.1}, + url = {https://github.com/satijalab/sctransform}, +} + +@Manual{R-Seurat, + title = {Seurat: Tools for Single Cell Genomics}, + author = {Rahul Satija}, + year = {2024}, + note = {R package version 5.1.0}, + url = {https://satijalab.org/seurat}, +} + +@Manual{R-SeuratData, + title = {SeuratData: Install and Manage Seurat Datasets}, + author = {Rahul Satija and Paul Hoffman and Andrew Butler}, + year = {2023}, + note = {R package version 0.2.2.9001}, + url = {http://www.satijalab.org/seurat}, +} + +@Manual{R-SeuratWrappers, + title = {SeuratWrappers: Community-Provided Methods and Extensions for the Seurat Object}, + author = {Andrew Butler and Paul Hoffman and Rahul Satija and Tim Stuart}, + year = {2024}, + note = {R package version 0.3.5, commit 8d46d6c47c089e193fe5c02a8c23970715918aa9}, + url = {https://github.com/satijalab/seurat-wrappers}, +} + +@Manual{R-stringr, + title = {stringr: Simple, Consistent Wrappers for Common String Operations}, + author = {Hadley Wickham}, + year = {2023}, + note = {R package version 1.5.1}, + url = {https://stringr.tidyverse.org}, +} + +@Manual{R-tidyr, + title = {tidyr: Tidy Messy Data}, + author = {Hadley Wickham and Davis Vaughan and Maximilian Girlich}, + year = {2024}, + note = {R package version 1.3.1}, + url = {https://tidyr.tidyverse.org}, +} + +@Manual{R-tidyverse, + title = {tidyverse: Easily Install and Load the Tidyverse}, + author = {Hadley Wickham}, + year = {2023}, + note = {R package version 2.0.0}, + url = {https://tidyverse.tidyverse.org}, +} + +@Manual{R-viridis, + title = {viridis: Colorblind-Friendly Color Maps for R}, + author = {Simon Garnier}, + year = {2024}, + note = {R package version 0.6.5}, + url = {https://sjmgarnier.github.io/viridis/}, +} + +@Manual{R-workflowr, + title = {workflowr: A Framework for Reproducible and Collaborative Data Science}, + author = {John Blischak and Peter Carbonetto and Matthew Stephens}, + year = {2023}, + note = {R package version 1.7.1}, + url = {https://github.com/workflowr/workflowr}, +} + +@Misc{dabestr2019, + title = {Moving beyond P values: Everyday data analysis with estimation plots.}, + author = {{Joses Ho} and {Tayfun Tumkaya} and {Sameer Aryal} and {Hyungwon Choi} and {Adam Claridge-Chang}}, + year = {2019}, + doi = {10.1038/s41592-019-0470-3}, + url = {https://www.nature.com/articles/s41592-019-0470-3.epdf?author_access_token=Euy6APITxsYA3huBKOFBvNRgN0jAjWel9jnR3ZoTv0Pr6zJiJ3AA5aH4989gOJS_dajtNr1Wt17D0fh-t4GFcvqwMYN03qb8C33na_UrCUcGrt-Z0J9aPL6TPSbOxIC-pbHWKUDo2XsUOr3hQmlRew%3D%3D}, +} + +@Book{ggplot22016, + author = {Hadley Wickham}, + title = {ggplot2: Elegant Graphics for Data Analysis}, + publisher = {Springer-Verlag New York}, + year = {2016}, + isbn = {978-3-319-24277-4}, + url = {https://ggplot2.tidyverse.org}, +} + +@Article{jsonlite2014, + title = {The jsonlite Package: A Practical and Consistent Mapping Between JSON Data and R Objects}, + author = {Jeroen Ooms}, + journal = {arXiv:1403.2805 [stat.CO]}, + year = {2014}, + url = {https://arxiv.org/abs/1403.2805}, +} + +@Book{knitr2015, + title = {Dynamic Documents with {R} and knitr}, + author = {Yihui Xie}, + publisher = {Chapman and Hall/CRC}, + address = {Boca Raton, Florida}, + year = {2015}, + edition = {2nd}, + note = {ISBN 978-1498716963}, + url = {https://yihui.org/knitr/}, +} + +@InCollection{knitr2014, + booktitle = {Implementing Reproducible Computational Research}, + editor = {Victoria Stodden and Friedrich Leisch and Roger D. Peng}, + title = {knitr: A Comprehensive Tool for Reproducible Research in {R}}, + author = {Yihui Xie}, + publisher = {Chapman and Hall/CRC}, + year = {2014}, + note = {ISBN 978-1466561595}, +} + +@Book{rmarkdown2018, + title = {R Markdown: The Definitive Guide}, + author = {Yihui Xie and J.J. Allaire and Garrett Grolemund}, + publisher = {Chapman and Hall/CRC}, + address = {Boca Raton, Florida}, + year = {2018}, + isbn = {9781138359338}, + url = {https://bookdown.org/yihui/rmarkdown}, +} + +@Book{rmarkdown2020, + title = {R Markdown Cookbook}, + author = {Yihui Xie and Christophe Dervieux and Emily Riederer}, + publisher = {Chapman and Hall/CRC}, + address = {Boca Raton, Florida}, + year = {2020}, + isbn = {9780367563837}, + url = {https://bookdown.org/yihui/rmarkdown-cookbook}, +} + +@Article{sctransform2019, + author = {Christoph Hafemeister and Rahul Satija}, + title = {Normalization and variance stabilization of single-cell RNA-seq data using regularized negative binomial regression}, + journal = {Genome Biology}, + year = {2019}, + volume = {20}, + pages = {296}, + doi = {10.1186/s13059-019-1874-1}, + url = {https://doi.org/10.1186/s13059-019-1874-1}, +} + +@Article{sctransform2022, + author = {Saket Choudhary and Rahul Satija}, + title = {Comparison and evaluation of statistical error models for scRNA-seq}, + journal = {Genome Biology}, + year = {2022}, + volume = {23}, + pages = {20}, + doi = {10.1186/s13059-021-02584-9}, + url = {https://doi.org/10.1186/s13059-021-02584-9}, +} + +@Article{Seurat2023, + author = {Yuhan Hao and Tim Stuart and Madeline H Kowalski and Saket Choudhary and Paul Hoffman and Austin Hartman and Avi Srivastava and Gesmira Molla and Shaista Madad and Carlos Fernandez-Granda and Rahul Satija}, + title = {Dictionary learning for integrative, multimodal and scalable single-cell analysis}, + journal = {Nature Biotechnology}, + year = {2023}, + doi = {10.1038/s41587-023-01767-y}, + url = {https://doi.org/10.1038/s41587-023-01767-y}, +} + +@Article{Seurat2021, + author = {Yuhan Hao and Stephanie Hao and Erica Andersen-Nissen and William M. Mauck III and Shiwei Zheng and Andrew Butler and Maddie J. Lee and Aaron J. Wilk and Charlotte Darby and Michael Zagar and Paul Hoffman and Marlon Stoeckius and Efthymia Papalexi and Eleni P. Mimitou and Jaison Jain and Avi Srivastava and Tim Stuart and Lamar B. Fleming and Bertrand Yeung and Angela J. Rogers and Juliana M. McElrath and Catherine A. Blish and Raphael Gottardo and Peter Smibert and Rahul Satija}, + title = {Integrated analysis of multimodal single-cell data}, + journal = {Cell}, + year = {2021}, + doi = {10.1016/j.cell.2021.04.048}, + url = {https://doi.org/10.1016/j.cell.2021.04.048}, +} + +@Article{Seurat2019, + author = {Tim Stuart and Andrew Butler and Paul Hoffman and Christoph Hafemeister and Efthymia Papalexi and William M Mauck III and Yuhan Hao and Marlon Stoeckius and Peter Smibert and Rahul Satija}, + title = {Comprehensive Integration of Single-Cell Data}, + journal = {Cell}, + year = {2019}, + volume = {177}, + pages = {1888-1902}, + doi = {10.1016/j.cell.2019.05.031}, + url = {https://doi.org/10.1016/j.cell.2019.05.031}, +} + +@Article{Seurat2018, + author = {Andrew Butler and Paul Hoffman and Peter Smibert and Efthymia Papalexi and Rahul Satija}, + title = {Integrating single-cell transcriptomic data across different conditions, technologies, and species}, + journal = {Nature Biotechnology}, + year = {2018}, + volume = {36}, + pages = {411-420}, + doi = {10.1038/nbt.4096}, + url = {https://doi.org/10.1038/nbt.4096}, +} + +@Article{Seurat2015, + author = {Rahul Satija and Jeffrey A Farrell and David Gennert and Alexander F Schier and Aviv Regev}, + title = {Spatial reconstruction of single-cell gene expression data}, + journal = {Nature Biotechnology}, + year = {2015}, + volume = {33}, + pages = {495-502}, + doi = {10.1038/nbt.3192}, + url = {https://doi.org/10.1038/nbt.3192}, +} + +@Article{tidyverse2019, + title = {Welcome to the {tidyverse}}, + author = {Hadley Wickham and Mara Averick and Jennifer Bryan and Winston Chang and Lucy D'Agostino McGowan and Romain François and Garrett Grolemund and Alex Hayes and Lionel Henry and Jim Hester and Max Kuhn and Thomas Lin Pedersen and Evan Miller and Stephan Milton Bache and Kirill Müller and Jeroen Ooms and David Robinson and Dana Paige Seidel and Vitalie Spinu and Kohske Takahashi and Davis Vaughan and Claus Wilke and Kara Woo and Hiroaki Yutani}, + year = {2019}, + journal = {Journal of Open Source Software}, + volume = {4}, + number = {43}, + pages = {1686}, + doi = {10.21105/joss.01686}, +} + +@Manual{viridis2024, + title = {{viridis(Lite)} - Colorblind-Friendly Color Maps for R}, + author = {{Garnier} and {Simon} and {Ross} and {Noam} and {Rudis} and {Robert} and {Camargo} and Antônio Pedro and {Sciaini} and {Marco} and {Scherer} and {Cédric}}, + year = {2024}, + note = {viridis package version 0.6.5}, + url = {https://sjmgarnier.github.io/viridis/}, + doi = {10.5281/zenodo.4679423}, +} + +@Article{workflowr2019, + title = {Creating and sharing reproducible research code the workflowr way [version 1; peer review: 3 approved]}, + author = {John D Blischak and Peter Carbonetto and Matthew Stephens}, + journal = {F1000Research}, + year = {2019}, + volume = {8}, + number = {1749}, + doi = {10.12688/f1000research.20843.1}, + url = {https://doi.org/10.12688/f1000research.20843.1}, +} +