```{css, echo=FALSE, eval=T} body { counter-reset: counter-rchunks; } :root { --pale-blue: #5A7B9C; --strong-blue: #003366; --blue: #303F9F; --light-blue: #a6b5c6; --light-gray: #f6f6f6; }
padding-left: 3em; }
padding-left: 3em; } div.sourceCode { counter-increment: counter-rchunks; position: relative; overflow: visible; } div.sourceCode::before { content: 'Code [' counter(counter-rchunks) ']: '; display: inline; position: absolute; left: -5em; font-size: 0.7em; color: var(--blue); }
background:var(--pale-blue); border-top:solid 10px var(--pale-blue); }
color: white; } .title { text-align: center; color: var(--strong-blue); } .subtitle { color: var(--strong-blue); } h1, h2, h3, h4, h5, h6, legend { color: var(--pale-blue); }
color: var(--pale-blue); background-image: linear-gradient(180deg,var(--pale-blue),var(--pale-blue)); }
background-color: var(--pale-blue); }
background-color: var(--pale-blue); }
background-color: var(--light-gray) !important; }
background-color: var(--light-blue); color: white; }
background-color: var(--light-blue); } code { color: var(--strong-blue); }
``` {r cssjs, results="asis", echo=FALSE, message=FALSE, eval=TRUE} # <!-- pkgdown --> # <!-- jquery --><script src="js/jquery.min.js" crossorigin="anonymous"></script> myfile <- "js/jquery.min.js" if (file.exists(myfile)) { cat(paste0('<script src="', myfile, '" crossorigin="anonymous"></script> <!-- # -->')) } # <!-- clipboard.js --><script src="js/clipboard.min.js" crossorigin="anonymous"></script> myfile <- "js/clipboard.min.js" if (file.exists(myfile)) { cat(paste0('<script src="', myfile, '" crossorigin="anonymous"></script>')) } myfile <- "js/hideOutput.js" if (file.exists(myfile)) { cat(paste0('<script src="', myfile, '" crossorigin="anonymous"></script>')) } # <!-- Font Awesome icons --><link rel="stylesheet" href="css/all.minMod.css" crossorigin="anonymous"> myfile <- "css/all.minMod.css" if (file.exists(myfile)) { cat(paste0('<link rel="stylesheet" href="', myfile, '" crossorigin="anonymous">')) } # <!-- Bootstrap --><link rel="stylesheet" href="css/bootstrap.minO.css" crossorigin="anonymous"> myfile <- "css/bootstrap.minO.css" if (file.exists(myfile)) { cat(paste0('<link rel="stylesheet" href="', myfile, '" crossorigin="anonymous">')) } # <!-- # <script src="js/bootstrap.min.js" crossorigin="anonymous"></script> --> myfile <- "js/bootstrap.min.js" if (file.exists(myfile)) { cat(paste0('<script src="', myfile, '" crossorigin="anonymous"></script> <!-- # -->')) } myfile <- "js/pkgdown2.js" if (file.exists(myfile)) { cat(paste0('<script src="', myfile, '"></script> <!-- # -->')) }
# Create myheader.html line1 <- '<script src="https://kit.fontawesome.com/af0a13599b.js" crossorigin="anonymous"></script>' line2 <- '<link rel="shortcut icon" href="../man/figures/logo.png" />' file <- "myheader.html" if (Sys.info()["sysname"] == "Windows") { # check internet response res <- !as.logical(system(paste("ping", "www.google.com"))) if (res) { write(line1, file = file) write(line2, file = file, append = TRUE) } } else { write(line1, file = file) write(line2, file = file, append = TRUE) } require(idiogramFISH) knitr::opts_chunk$set(eval = TRUE) pasteLinks <- function(link) { cat(paste0( " </br> Jupyter interactive version: <br> </br> <table> <tr> <td> [<img src='../man/figures/colab-badge.svg'>](https://colab.research.google.com/github/fernandoroa/IFjupyter/blob/main/", note, "){target='_blank'}  </td> <td>   <img src='../man/figures/GitHub-Mark-120px-plus.png' height=25 width=25> [Github](https://github.com/fernandoroa/IFjupyter/blob/main/", note, "){target='_blank'} </td> <td>   [Raw](https://github.com/fernandoroa/IFjupyter/raw/main/", note, "){target='_blank'} </td> </tr> </table> </br> " )) }
``` {r, echo=F, message=FALSE, fig.show = "hold", fig.align = "default", results="asis"} if (requireNamespace("RCurl", quietly = TRUE)) { # version of manual v <- sub("Version: ", "", readLines("../DESCRIPTION")[3]) # v<-tryCatch(suppressWarnings(rvcheck:::check_github_gitlab("ferroao/idiogramFISH", "gitlab")$latest_version), error=function(e) NA ) pkg <- "idiogramFISH" link <- tryCatch(suppressWarnings(badger::badge_custom("Documentation", paste(pkg, v), "cornflowerblue")), error = function(e) NA) if (!is.na(link)) { svglink <- gsub("\[|\]|!|\(|\)", "", link) manual_cont <- tryCatch(suppressWarnings(RCurl::getURLContent(svglink)), error = function(e) NA) if (!is.na(manual_cont)) { manual_contFile <- "../man/figures/manual.svg" writeLines(manual_cont, con = manual_contFile) manual_contFile <- normalizePath(manual_contFile) knitr::include_graphics(manual_contFile) # cat(paste0(" ,")" ) ) } } } # rcurl
# Introduction {-} <!-- <div style="width:150px;"> --> <div style="float: right; width: 20%"> ```r img1_path <- "../man/figures/logo.png" if (file.exists(img1_path)) { cat(paste0("<img src=", img1_path, ">")) }
The goal of idiogramFISH functions or shiny-app is to plot karyotypes, plasmids and circular chr. having a set of data.frames for chromosome data and optionally marks' data [@Roa2021]. Karyotypes can also be plotted in concentric circles.
It is possible to calculate also chromosome and karyotype indexes [@Watanabe1999;@Zarco1986new] and classify chromosome morphology in the categories of Levan [-@Levan1964], and Guerra [-@Guerra1986d].
Six styles of marks are available: square (squareLeft), dots, cM (cMLeft), cenStyle, upArrow (downArrow), exProtein (inProtein) (column style
in dfMarkColor
data.frame); its legend (label) (parameter legend
) can be drawn inline or to the right of karyotypes. Three styles of centromere are available: rounded, triangle and inProtein (cenFormat
parameter). Chromosome regions (column chrRegion
in dfMarkPos
data.frame) for monocentrics are p
, q
, cen
, pcen
, qcen
. The last three cannot accommodate most mark styles, but can be colored. The region w
can be used both in monocentrics and holocentrics.
IdiogramFISH was written in R [@R-base] and also uses crayon [@R-crayon], tidyr [@R-tidyr], plyr [@plyr2011] and dplyr packages [@R-dplyr]. Documentation was written with R-packages roxygen2 [@R-roxygen2], usethis [@R-usethis], bookdown [@bookdown2016], knitr [@Xie2015], pkgdown [@R-pkgdown], Rmarkdown [@rmarkdown2018], rvcheck [@R-rvcheck], badger [@R-badger], kableExtra [@R-kableExtra], rmdformats [@R-rmdformats] and RCurl [@R-RCurl]. For some vignette figures, packages rentrez [@rentrez2017], phytools [@phytools2012], ggtree [@ggtree2018], ggplot2 [@ggplot22016] and ggpubr [@R-ggpubr] were used.
In addition, the shiny app runBoard()
uses shiny [@R-shiny], shinydashboard [@R-shinydashboard], rhandsontable [@R-rhandsontable], gtools [@R-gtools] and rclipboard [@R-rclipboard].
docker pull fercyto/idiogramfish # Run the image docker run -d -p 8080:8080 fercyto/idiogramfish
In your internet browser go to localhost:8080
# Stop the container docker ps docker stop {container id}
``` {r, echo=F, message=FALSE, fig.show = "hold", fig.align = "default", results="asis"}
if (requireNamespace("RCurl", quietly = TRUE)) { cranversion <- "https://www.r-pkg.org/badges/version/idiogramFISH" cranversion_cont <- tryCatch(suppressWarnings(RCurl::getURLContent(cranversion)), error = function(e) NA)
if (!is.na(cranversion_cont)) { cranversion_contFile <- "../man/figures/cranversion.svg" writeLines(cranversion_cont, con = cranversion_contFile) cranversion_contFile <- normalizePath(cranversion_contFile) # knitr::include_graphics(cranversion_contFile) # cat(paste0(",")" ) ) cat(paste0("![CRAN repo](", knitr::include_graphics(cranversion_contFile), ")")) } # cran version
# crandownloads<-"https://cranlogs.r-pkg.org/badges/grand-total/idiogramFISH?color=orange" # crandownloads_cont <- tryCatch(suppressWarnings(RCurl::getURLContent(crandownloads) ), error=function(e) NA )
doibadge <- "https://zenodo.org/badge/DOI/10.5281/zenodo.3579417.svg" doibadge_cont <- tryCatch(suppressWarnings(RCurl::getURLContent(doibadge)), error = function(e) NA)
if (!is.na(doibadge_cont)) { doibadge_contFile <- "../man/figures/doibadge.svg" writeLines(doibadge_cont, con = doibadge_contFile) doibadge_contFile <- normalizePath(doibadge_contFile)
cat(paste0(" [![10.5281/zenodo.3579417](", knitr::include_graphics(doibadge_contFile), ")](https://doi.org/10.5281/zenodo.3579417)"))
} # doi } # rcurl
You can install idiogramFISH from [CRAN](https://cran.r-project.org/package=idiogramFISH) with: ``` r install.packages("idiogramFISH")
Windows users: To avoid installation of packages in OneDrive
.libPaths("D:R/lib") # for example .libPaths() # set or read libraries
To do that permanently: Search (magnifier) "environment variables" and set R_LIBS_USER to
D:\R\lib
(example)
``` {r, echo=F, message=FALSE, fig.show = "hold", fig.align = "default", results="asis"} if (requireNamespace("RCurl", quietly = TRUE)) { # cran version v <- "NEWS" # tryCatch(suppressWarnings(rvcheck::check_cran("idiogramFISH")$latest_version), error=function(e) NA )
link <- tryCatch(suppressWarnings(badger::badge_custom("gitlab", paste(v), "orange", "?logo=gitlab")), error = function(e) NA) if (!is.na(link)) { svglink <- gsub("\[|\]|!|\(|\)", "", link) news_cont <- tryCatch(suppressWarnings(RCurl::getURLContent(svglink)), error = function(e) NA) if (!is.na(news_cont)) { news_cont_contFile <- "../man/figures/NEWS.svg" writeLines(news_cont, con = news_cont_contFile) cat(paste0("![NEWS](", knitr::include_graphics(news_cont_contFile), "){target='_blank'}")) } } } # rcurl
<!-- [CRAN archive](https://cran.r-project.org/src/contrib/Archive/idiogramFISH/) --> ``` {r, echo=F, message=FALSE, fig.show = "hold", fig.align = "default", results="asis"} if (requireNamespace("RCurl", quietly = TRUE)) { archivelink <- tryCatch(suppressWarnings(badger::badge_custom("CRAN", "archive", "gray")), error = function(e) NA) if (!is.na(archivelink)) { svgnewdownlink <- gsub("\\[|\\]|!|\\(|\\)", "", archivelink) archive_cont <- tryCatch(suppressWarnings(RCurl::getURLContent(svgnewdownlink)), error = function(e) NA) } if (!is.na(archive_cont)) { archive_contFile <- "../man/figures/archive.svg" writeLines(archive_cont, con = archive_contFile) cat(paste0("[![archive](", knitr::include_graphics(archive_contFile), ")](https://cran.r-project.org/src/contrib/Archive/idiogramFISH/){target='_blank'}")) } } # rcurl
``` {r, echo=F, message=FALSE, fig.show = "hold", fig.align = "default", results="asis"} if (requireNamespace("RCurl", quietly = TRUE)) { newdownlink <- tryCatch(suppressWarnings(badger::badge_custom("CRAN", "downloads", "green")), error = function(e) NA) if (!is.na(newdownlink)) { svgnewdownlink <- gsub("\[|\]|!|\(|\)", "", newdownlink) realdo_cont <- tryCatch(suppressWarnings(RCurl::getURLContent(svgnewdownlink)), error = function(e) NA) } if (!is.na(realdo_cont)) { realdo_contFile <- "../man/figures/realdownloads.svg" writeLines(realdo_cont, con = realdo_contFile) # message # link cat(paste0("![downloads](", knitr::include_graphics(realdo_contFile), "){target='_blank'}")) } } # rcurl
<div class="goright95"> <a href="#content">top <i class="fa fa-caret-square-o-up" aria-hidden="true"></i></a> </div> ## Need help? {-} ### Manual in Bookdown style {-} ``` {r, echo=F, message=FALSE, fig.show = "hold", fig.align = "default", results="asis"} if (requireNamespace("RCurl", quietly = TRUE)) { # version of manual # v<-tryCatch(suppressWarnings(rvcheck:::check_github_gitlab("ferroao/idiogramFISH", "gitlab")$latest_version), error=function(e) NA ) # cran version v <- tryCatch(suppressWarnings(rvcheck::check_cran("idiogramFISH")$latest_version), error = function(e) NA) pkg <- "idiogramFISH" link <- tryCatch(suppressWarnings(badger::badge_custom("bookdown", paste(pkg, v), "orange")), error = function(e) NA) if (!is.na(link)) { svglink <- gsub("\\[|\\]|!|\\(|\\)", "", link) manual_cont <- tryCatch(suppressWarnings(RCurl::getURLContent(svglink)), error = function(e) NA) if (!is.na(manual_cont)) { bookdown_contFile <- "../man/figures/cranmanualbookdown.svg" writeLines(manual_cont, con = bookdown_contFile) # manual_contFile <- normalizePath(manual_contFile) # knitr::include_graphics(manual_contFile) cat(paste0("[![https://ferroao.gitlab.io/manualidiogramfish](", knitr::include_graphics(bookdown_contFile), ")](https://ferroao.gitlab.io/manualidiogramfish/)")) } } } # rcurl
``` {r, echo=F, message=FALSE, fig.show = "hold", fig.align = "default", results="asis"} if (requireNamespace("RCurl", quietly = TRUE)) { # version of manual # v<-sub("Version: ","",readLines("DESCRIPTION")[3]) v <- tryCatch(suppressWarnings(rvcheck:::check_github_gitlab("ferroao/idiogramFISH", "gitlab")$latest_version), error = function(e) NA) # cran version # v<-tryCatch(suppressWarnings(rvcheck::check_cran("idiogramFISH")$latest_version), error=function(e) NA )
pkg <- "idiogramFISH" pkglink <- tryCatch(suppressWarnings(badger::badge_custom("pkgdown", paste(pkg, v), "cornflowerblue")), error = function(e) NA) if (!is.na(pkglink)) { pkgsvglink <- gsub("\[|\]|!|\(|\)", "", pkglink) develpkgmanual_cont <- tryCatch(suppressWarnings(RCurl::getURLContent(pkgsvglink)), error = function(e) NA) if (!is.na(develpkgmanual_cont)) { pkgdownmanual_contFile <- "../man/figures/pkgdownver.svg" writeLines(develpkgmanual_cont, con = pkgdownmanual_contFile) cat(paste0("![https://ferroao.gitlab.io/idiogramFISH](", knitr::include_graphics(pkgdownmanual_contFile), " )")) } } } # rcurl
### Vignettes {-} Online: ``` {r, echo=F, message=FALSE, fig.show = "hold", fig.align = "default", results="asis"} if (requireNamespace("RCurl", quietly = TRUE)) { # version of manual # v<-sub("Version: ","",readLines("DESCRIPTION")[3]) v <- tryCatch(suppressWarnings(rvcheck:::check_github_gitlab("ferroao/idiogramFISH", "gitlab")$latest_version), error = function(e) NA) # cran version # v<-tryCatch(suppressWarnings(rvcheck::check_cran("idiogramFISH")$latest_version), error=function(e) NA ) pkg <- "idiogramFISH" link <- tryCatch(suppressWarnings(badger::badge_custom("vignettes", paste(pkg, v), "cornflowerblue")), error = function(e) NA) if (!is.na(link)) { vignettelink <- gsub("\\[|\\]|!|\\(|\\)", "", link) vignettemanual_cont <- tryCatch(suppressWarnings(RCurl::getURLContent(vignettelink)), error = function(e) NA) if (!is.na(vignettemanual_cont)) { vignettemanual_contFile <- "../man/figures/develmanualvignette.svg" writeLines(vignettemanual_cont, con = vignettemanual_contFile) # manual_contFile <- normalizePath(manual_contFile) # knitr::include_graphics(manual_contFile) cat(paste0("[![https://ferroao.gitlab.io/idiogramfishhelppages](", knitr::include_graphics(vignettemanual_contFile), ")](https://ferroao.gitlab.io/idiogramfishhelppages)")) } } } # rcurl
Launch vignettes from R for the installed version:
library(idiogramFISH) packageVersion("idiogramFISH") browseVignettes("idiogramFISH")
print(citation("idiogramFISH"), bibtex = FALSE)
To write citation to file:
sink("idiogramFISH.bib") toBibtex(citation("idiogramFISH")) sink()
img1_path <- "../man/figures/kofi1.png" img1_path <- normalizePath(img1_path) if (file.exists(img1_path)) { cat(paste0("[Fernando Roa](https://ferroao.gitlab.io/curriculumpu/){target='_blank'} <a href='https://ko-fi.com/X7X71PZZG' target='_blank'><img src=", img1_path, " width=\"10%\">")) } else { cat(paste0("[Fernando Roa](https://ferroao.gitlab.io/curriculumpu/){target='_blank'}")) }
``` {r, echo=F, message=FALSE, fig.show = "hold", fig.align = "default", results="asis", eval=FALSE} cat("")
[Mariana PC Telles](http://lattes.cnpq.br/4648436798023532) ```r # automatically create a bib database for R packages, this is currently not used by vignette refs/packages2.bib knitr::write_bib(c( .packages(), "bookdown", "knitr", "rmarkdown", "devtools", "pkgdown", "crayon", "ggtree", "ggplot2", "ggpubr", "phytools", "plyr", "dplyr", "tidyr", "rentrez" ), "refs/packages2.bib")
chapterFile_jupyter <- "../parts/01-jupyter.Rmd" if (file.exists(chapterFile_jupyter)) { childExists_jupyter <- TRUE child_docs_jupyter <- chapterFile_jupyter } else { childExists_jupyter <- FALSE child_docs_jupyter <- "" }
chapterFile_first <- "../parts/02-first.Rmd" if (file.exists(chapterFile_first)) { childExists_first <- TRUE child_docs_first <- chapterFile_first } else { childExists_first <- FALSE child_docs_first <- "" }
chapterFile_minimal <- "../chaptersBLOCK/03-minimal.Rmd" if (file.exists(chapterFile_minimal)) { childExists_minimal <- TRUE child_docs_minimal <- chapterFile_minimal } else { childExists_minimal <- FALSE child_docs_minimal <- "" }
cat("# Minimal Examples")
cat("[https://ferroao.gitlab.io/idiogramfishhelppages](https://ferroao.gitlab.io/idiogramfishhelppages/#minimal-examples)")
note <- "03-minimal.ipynb" pasteLinks(note)
chapterFile_plotting <- "../chaptersBLOCK/04-plotting.Rmd" if (file.exists(chapterFile_plotting)) { childExists_plotting <- TRUE child_docs_plotting <- chapterFile_plotting } else { childExists_plotting <- FALSE child_docs_plotting <- "" }
cat("# Plotting chromosomes")
cat("[https://ferroao.gitlab.io/idiogramfishhelppages](https://ferroao.gitlab.io/idiogramfishhelppages/#plotting-chromosomes)")
note <- "04-plotting.ipynb" pasteLinks(note)
chapterFile_multiple <- "../chaptersBLOCK/05-multiple.Rmd" if (file.exists(chapterFile_multiple)) { childExists_multiple <- TRUE child_docs_multiple <- chapterFile_multiple } else { childExists_multiple <- FALSE child_docs_multiple <- "" }
cat("# Several OTUs")
cat("[https://ferroao.gitlab.io/idiogramfishhelppages](https://ferroao.gitlab.io/idiogramfishhelppages/#multiple-otus)")
note <- "05-multiple.ipynb" pasteLinks(note)
chapterFile_units <- "../chaptersBLOCK/06-units.Rmd" if (file.exists(chapterFile_units)) { childExists_units <- TRUE child_docs_units <- chapterFile_units } else { childExists_units <- FALSE child_docs_units <- "" }
cat("# Changing Units")
cat("[https://ferroao.gitlab.io/idiogramfishhelppages](https://ferroao.gitlab.io/idiogramfishhelppages/#changing-units)")
note <- "06-units.ipynb" pasteLinks(note)
chapterFile0 <- "../chaptersBLOCK/07-gish.Rmd" if (file.exists(chapterFile0)) { childExists0 <- TRUE child_docs0 <- chapterFile0 } else { childExists0 <- FALSE child_docs0 <- "" }
cat("# GISH")
cat("[https://ferroao.gitlab.io/idiogramfishhelppages](https://ferroao.gitlab.io/idiogramfishhelppages/#gish)")
note <- "07-gish.ipynb" pasteLinks(note)
chapterFile1 <- "../chaptersBLOCK/08-groups.Rmd" if (file.exists(chapterFile1)) { childExists1 <- TRUE child_docs1 <- chapterFile1 } else { childExists1 <- FALSE child_docs1 <- "" }
cat("# Using groups")
cat("[https://ferroao.gitlab.io/idiogramfishhelppages](https://ferroao.gitlab.io/idiogramfishhelppages/#groups)")
note <- "08-groups.ipynb" pasteLinks(note)
chapterFile2 <- "../chaptersBLOCK/09-circular.Rmd" if (file.exists(chapterFile2)) { childExists2 <- TRUE child_docs2 <- chapterFile2 } else { childExists2 <- FALSE child_docs2 <- "" }
cat("# Circular plots")
cat("[https://ferroao.gitlab.io/idiogramfishhelppages](https://ferroao.gitlab.io/idiogramfishhelppages/#circular-plots)")
note <- "09-circular.ipynb" pasteLinks(note)
chapterFile3 <- "../chaptersBLOCK/10-phylogeny.Rmd" if (file.exists(chapterFile3)) { childExists3 <- TRUE child_docs3 <- chapterFile3 } else { childExists3 <- FALSE child_docs3 <- "" }
cat("# Plotting alongside phylogeny")
cat("[https://ferroao.gitlab.io/idiogramfishhelppages](https://ferroao.gitlab.io/idiogramfishhelppages/#plotting-alongside-phylogeny)")
note <- "10-phylogeny.ipynb" pasteLinks(note)
chapterFile <- "../chaptersBLOCK/11-citrushelp.Rmd" if (file.exists(chapterFile)) { childExists <- TRUE child_docs <- chapterFile } else { childExists <- FALSE child_docs <- "" }
cat("# *Citrus*")
cat("[https://ferroao.gitlab.io/idiogramfishhelppages](https://ferroao.gitlab.io/idiogramfishhelppages/#citrus)")
note <- "11-citrushelp.ipynb" pasteLinks(note)
chapterFile4 <- "../chaptersBLOCK/12-human.Rmd" if (file.exists(chapterFile4)) { childExists4 <- TRUE child_docs4 <- chapterFile4 } else { childExists4 <- FALSE child_docs4 <- "" }
cat("# Human karyotype")
cat("[https://ferroao.gitlab.io/idiogramfishhelppages](https://ferroao.gitlab.io/idiogramfishhelppages/#human-karyotype)")
note <- "12-human.ipynb" pasteLinks(note)
chapterFile_param <- "../chaptersBLOCK/13-functions.Rmd" if (file.exists(chapterFile_param)) { childExists_param <- TRUE child_docs_param <- chapterFile_param } else { childExists_param <- FALSE child_docs_param <- "" }
cat("# Functions")
cat("[https://ferroao.gitlab.io/idiogramfishhelppages](https://ferroao.gitlab.io/idiogramfishhelppages/#functions)")
chapterFile_data <- "../chaptersBLOCK/14-datasets.Rmd" if (file.exists(chapterFile_data)) { childExists_data <- TRUE child_docs_data <- chapterFile_data } else { childExists_data <- FALSE child_docs_data <- "" }
cat("# Datasets")
cat("[https://ferroao.gitlab.io/idiogramfishhelppages](https://ferroao.gitlab.io/idiogramfishhelppages/#datasets)")
chapterFile_news <- "../chaptersBLOCK/15-news.Rmd" if (file.exists(chapterFile_news)) { childExists_news <- TRUE child_docs_news <- chapterFile_news } else { childExists_news <- FALSE child_docs_news <- "" }
cat("# News {-}")
cat("[https://ferroao.gitlab.io/idiogramfishhelppages](https://ferroao.gitlab.io/idiogramfishhelppages/#news)")
::: {#refs_normal} :::
::: {#refs_software} :::
::: {#refs_shiny} :::
::: {#refs_docs} :::
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.