--- title: "Introduction to SRTsim" author: - name: Jiaqiang Zhu affiliation: - &umich University of Michigan, Department of Biostatistics email: Jiaqiang@umich.edu date: "`r doc_date()`" package: "`r pkg_ver('SRTsim')`" output: BiocStyle::html_document vignette: > %\VignetteIndexEntry{Introduction to SRTsim} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ```{r vignetteSetup, echo=FALSE, message=FALSE, warning = FALSE} ## For links library("BiocStyle") ## Track time spent on making the vignette startTime <- Sys.time() ## Bib setup library("RefManageR") ## Write bibliography information bib <- c( R = citation(), BiocStyle = citation("BiocStyle")[1], knitr =bibentry( bibtype = "InCollection", booktitle = "Implementing Reproducible Computational Research", title = "knitr: A Comprehensive Tool for Reproducible Research in R", author = as.person("Yihui Xie [aut]"), editor = as.person("Victoria Stodden, Friedrich Leisch, Roger D. Peng"), year = "2014", publisher = "Chapman and Hall/CRC", isbn = "978-1466561595", url = "https://www.routledge.com/Implementing-Reproducible-Research/Stodden-Leisch-Peng/p/book/9781466561595" ), Matrix = citation("Matrix")[1], RefManageR = citation("RefManageR")[1], rmarkdown = citation("rmarkdown")[1], S4Vectors = citation("S4Vectors")[1], sessioninfo = citation("sessioninfo")[1] ) ``` # Welcome Welcome to the `SRTsim` project! It is composed of: * a [shiny](https://shiny.posit.co/) web application that we are hosting at [https://jiaqiangzhu.shinyapps.io/srtsim](https://jiaqiangzhu.shinyapps.io/srtsim) that can handle a limited set of concurrent users, * a R package at CRAN that lets you generate the spatially resolved transcriptomic (SRT) data and run a local version of our web application. The web application allows you to design spatial pattern and generate SRT data with patterns of interest. # Install `SRTsim` `R` is an open-source statistical environment which can be easily modified to enhance its functionality via packages. `r CRANpkg('SRTsim')` is a `R` package available via CRAN. `R` can be installed on any operating system from [CRAN](https://cran.r-project.org/) after which you can install `r CRANpkg('SRTsim')` by using the following commands in your `R` session: ```{r 'install', eval = FALSE} install.packages("SRTsim") ``` # Run Reference-Based Simulation To get started, please load the `r CRANpkg('SRTsim')` package. ```{r setup, message = FALSE, warning = FALSE} library("SRTsim") ``` Once you have installed the package, we can perform reference-based Tissue-wise simulation with the example data. ```{r 'reference-based tissue-wise simulation'} ## explore example SRT data str(exampleLIBD) example_count <- exampleLIBD$count example_loc <- exampleLIBD$info[,c("imagecol","imagerow","layer")] colnames(example_loc) <- c("x","y","label") ## create a SRT object simSRT <- createSRT(count_in=example_count,loc_in =example_loc) ## Set a seed for reproducible simulation set.seed(1) ## Estimate model parameters for data generation simSRT1 <- srtsim_fit(simSRT,sim_schem="tissue") ## Generate synthetic data with estimated parameters simSRT1 <- srtsim_count(simSRT1) ## Explore the synthetic data simCounts(simSRT1)[1:5,1:5] simcolData(simSRT1) ``` We can perform reference-based Domain-specific simulation with the example data. ```{r 'reference-based domain-specific simulation'} ## Set a seed for reproducible simulation set.seed(1) ## Estimate model parameters for data generation simSRT2 <- srtsim_fit(simSRT,sim_scheme='domain') ## Generate synthetic data with estimated parameters simSRT2 <- srtsim_count(simSRT2) ## Explore the synthetic data simCounts(simSRT2)[1:5,1:5] ``` # Comparison Between Reference Data and Synthetic Data ## Summarized Metrics After data generation, we can compare metrics of reference data and synthetic data ```{r 'tissue simulation metrics comparison'} ## Compute metrics simSRT1 <- compareSRT(simSRT1) ## Visualize Metrics visualize_metrics(simSRT1) ``` ## Expression Patterns For Genes of Interest ```{r 'pattern comparison'} visualize_gene(simsrt=simSRT1,plotgn = "ENSG00000183036",rev_y=TRUE) visualize_gene(simsrt=simSRT2,plotgn = "ENSG00000168314",rev_y=TRUE) ``` This work was done by Jiaqiang Zhu, Lulu Shang and Xiang Zhou. # Reproducibility The `r CRANpkg('SRTsim')` package was made possible thanks to: * R `r Citep(bib[['R']])` * `r Biocpkg('BiocStyle')` `r Citep(bib[['BiocStyle']])` * `r CRANpkg('knitr')` `r Citep(bib[['knitr']])` * `r CRANpkg('Matrix')` `r Citep(bib[['Matrix']])` * `r CRANpkg("RefManageR")` `r Citep(bib[["RefManageR"]])` * `r CRANpkg('rmarkdown')` `r Citep(bib[['rmarkdown']])` * `r Biocpkg('S4Vectors')` `r Citep(bib[['S4Vectors']])` * `r CRANpkg('sessioninfo')` `r Citep(bib[['sessioninfo']])` Code for creating the vignette ```{r createVignette, eval=FALSE} ## Create the vignette library("rmarkdown") system.time(render("SRTsim.Rmd")) ## Extract the R code library("knitr") knit("SRTsim.Rmd", tangle = TRUE) ``` Date the vignette was generated. ```{r reproduce1, echo=FALSE} ## Date the vignette was generated Sys.time() ``` Wallclock time spent generating the vignette. ```{r reproduce2, echo=FALSE} ## Processing time in seconds totalTime <- diff(c(startTime, Sys.time())) round(totalTime, digits = 3) ``` `R` session information. ```{r reproduce3, echo=FALSE} ## Session info library("sessioninfo") original <- options("width") options(width = 120) session_info() options(original) ``` # Bibliography This vignette was generated using `r Biocpkg('BiocStyle')` `r Citep(bib[['BiocStyle']])`, `r CRANpkg('knitr')` `r Citep(bib[['knitr']])` and `r CRANpkg('rmarkdown')` `r Citep(bib[['rmarkdown']])` running behind the scenes. Citations made with `r CRANpkg('RefManageR')` `r Citep(bib[['RefManageR']])`. ```{r vignetteBiblio, results = 'asis', echo = FALSE, warning = FALSE, message = FALSE} ## Print bibliography PrintBibliography(bib, .opts = list(hyperlink = "to.doc", style = "html")) ```