... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Package: singleCellTK |
2 | 2 |
Type: Package |
3 | 3 |
Title: Comprehensive and Interactive Analysis of Single Cell RNA-Seq Data |
4 |
-Version: 2.2.2 |
|
4 |
+Version: 2.3.1 |
|
5 | 5 |
Authors@R: c(person(given="Yichen", family="Wang", email="wangych@bu.edu", role=c("aut", "cre"), |
6 | 6 |
comment = c(ORCID = "0000-0003-4347-5199")), |
7 | 7 |
person(given="Irzam", family="Sarfraz", email="irzam9095@gmail.com", role=c("aut")), |
... | ... |
@@ -86,7 +86,6 @@ Imports: |
86 | 86 |
enrichR, |
87 | 87 |
celda, |
88 | 88 |
shinycssloaders, |
89 |
- uwot, |
|
90 | 89 |
DropletUtils, |
91 | 90 |
scds (>= 1.2.0), |
92 | 91 |
reticulate (>= 1.14), |
... | ... |
@@ -106,7 +105,8 @@ Imports: |
106 | 105 |
metap, |
107 | 106 |
VAM (>= 0.5.3), |
108 | 107 |
tibble, |
109 |
- rlang |
|
108 |
+ rlang, |
|
109 |
+ stats |
|
110 | 110 |
RoxygenNote: 7.1.1 |
111 | 111 |
Suggests: |
112 | 112 |
testthat, |
... | ... |
@@ -36,8 +36,7 @@ descriptionEmptyDrops <- function() { |
36 | 36 |
return(list( |
37 | 37 |
introduction = "It is crucial to distinguish the data occurring from real cells |
38 | 38 |
and empty droplets containing ambient RNA. SCTK employs the |
39 |
- [EmptyDrops](https://rdrr.io/github/MarioniLab/DropletUtils/man/emptyDrops.html) |
|
40 |
- algorithm from the |
|
39 |
+ EmptyDrops algorithm from the |
|
41 | 40 |
[DropletUtils](https://bioconductor.org/packages/release/bioc/html/DropletUtils.html) |
42 | 41 |
package to test for empty droplets. ", |
43 | 42 |
runEmptyDrops = "The wrapper function `runEmptyDrops` can be used to separately run the |
... | ... |
@@ -80,7 +79,7 @@ descriptionBarcodeRank <- function() { |
80 | 79 |
|
81 | 80 |
descriptionScrublet <- function() { |
82 | 81 |
return(list( |
83 |
- introduction = "[Scrublet](https://github.com/swolock/scrublet/blob/master/examples/scrublet_basics.ipynb) aims to detect doublets by |
|
82 |
+ introduction = "Scrublet aims to detect doublets by |
|
84 | 83 |
creating simulated doublets from combining transcriptomic profiles of existing cells in the dataset. ", |
85 | 84 |
parameter = "The `sample` parameter indicates what sample each cell originated from. |
86 | 85 |
It can be set to `NULL` if all cells in the dataset came from the same sample. ", |
... | ... |
@@ -99,7 +98,7 @@ descriptionScrublet <- function() { |
99 | 98 |
|
100 | 99 |
descriptionDoubletFinder <- function() { |
101 | 100 |
return(list( |
102 |
- introduction = "[DoubletFinder](https://github.com/chris-mcginnis-ucsf/DoubletFinder) is a doublet detection algorithm which depends on |
|
101 |
+ introduction = "DoubletFinder is a doublet detection algorithm which depends on |
|
103 | 102 |
the single cell analysis package |
104 | 103 |
[Seurat](https://cran.r-project.org/web/packages/Seurat/index.html). ", |
105 | 104 |
runDoubletFinder = "The wrapper function `runDoubletFinder` can be used to separately run the |
... | ... |
@@ -101,11 +101,11 @@ importMultipleSources <- function(allImportEntries, delayedArray = FALSE) { |
101 | 101 |
newSce <- expSetDataTag( |
102 | 102 |
inSCE = newSce, |
103 | 103 |
assayType = "raw", |
104 |
- assays = assayNames(newSce)) |
|
104 |
+ assays = SummarizedExperiment::assayNames(newSce)) |
|
105 | 105 |
} |
106 | 106 |
else if(entry$type %in% c("rds", "files")){ |
107 | 107 |
# Check if tags already stored in uploaded rds/files |
108 |
- if(is.null(metadata(newSce)$assayType)){ |
|
108 |
+ if(is.null(S4Vectors::metadata(newSce)$assayType)){ |
|
109 | 109 |
try({ |
110 | 110 |
counts(newSce) |
111 | 111 |
newSce <- expSetDataTag( |
... | ... |
@@ -131,14 +131,14 @@ importMultipleSources <- function(allImportEntries, delayedArray = FALSE) { |
131 | 131 |
}, silent = TRUE) |
132 | 132 |
|
133 | 133 |
try({ |
134 |
- decontXcounts(newSce) |
|
134 |
+ celda::decontXcounts(newSce) |
|
135 | 135 |
newSce <- expSetDataTag( |
136 | 136 |
inSCE = newSce, |
137 | 137 |
assayType = "raw", |
138 | 138 |
assays = "decontXcounts") |
139 | 139 |
}, silent = TRUE) |
140 | 140 |
|
141 |
- untaggedAssays <- assayNames(newSce) |
|
141 |
+ untaggedAssays <- SummarizedExperiment::assayNames(newSce) |
|
142 | 142 |
untaggedAssays <- untaggedAssays[! untaggedAssays %in% c('counts', 'logcounts', 'normcounts', 'decontX')] |
143 | 143 |
|
144 | 144 |
newSce <- expSetDataTag( |
... | ... |
@@ -1581,7 +1581,7 @@ shinyServer(function(input, output, session) { |
1581 | 1581 |
} |
1582 | 1582 |
|
1583 | 1583 |
observeEvent(input$runQC, withConsoleMsgRedirect({ |
1584 |
- withBusyIndicatorServer("runQC", { |
|
1584 |
+ #withBusyIndicatorServer("runQC", { |
|
1585 | 1585 |
if (!qcInputExists()) { |
1586 | 1586 |
insertUI( |
1587 | 1587 |
selector = "#qcPageErrors", |
... | ... |
@@ -1709,7 +1709,7 @@ shinyServer(function(input, output, session) { |
1709 | 1709 |
# Show downstream analysis options |
1710 | 1710 |
callModule(module = nonLinearWorkflow, id = "nlw-qcf", parent = session, nbc = TRUE, cw = TRUE, cv = TRUE) |
1711 | 1711 |
} |
1712 |
- }) |
|
1712 |
+ #}) |
|
1713 | 1713 |
|
1714 | 1714 |
})) |
1715 | 1715 |
|
... | ... |
@@ -3,10 +3,6 @@ title: "Generation of comprehensive quality control metrics with SCTK" |
3 | 3 |
output: html_document |
4 | 4 |
--- |
5 | 5 |
|
6 |
-```{r setup, include=FALSE} |
|
7 |
-knitr::opts_chunk$set(eval = FALSE) |
|
8 |
-``` |
|
9 |
- |
|
10 | 6 |
# Introduction |
11 | 7 |
|
12 | 8 |
This pipeline will import data from single-cell preprocessing algorithms (e.g. [CellRanger](https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger), [HCA Optimus](https://data.humancellatlas.org/pipelines/optimus-workflow), [Alevin](https://salmon.readthedocs.io/en/latest/alevin.html)), generate various quality control metrics (e.g. general metrics, doublet scores, contamination estimates) using multiple tools, and output results in standard data containers (e.g. [SingleCellExperiment](https://rdrr.io/bioc/SingleCellExperiment/man/SingleCellExperiment.html), [Seurat object](https://satijalab.org/seurat/index.html), [AnnData](https://github.com/theislab/anndata)). |
... | ... |
@@ -53,13 +49,13 @@ If you have not used docker before, you can follow the instruction to install an |
53 | 49 |
|
54 | 50 |
The Docker image can be obtained by running: |
55 | 51 |
|
56 |
-```{bash} |
|
52 |
+```{bash, eval=FALSE} |
|
57 | 53 |
docker pull campbio/sctk_qc:2.2.1 |
58 | 54 |
``` |
59 | 55 |
|
60 | 56 |
The usage of each argument is the same as running command line analysis. Here is an example code to perform QC on CellRangerV3 data with SCTK docker: |
61 | 57 |
|
62 |
-```{bash} |
|
58 |
+```{bash, eval=FALSE} |
|
63 | 59 |
docker run --rm -v /path/to/data:/SCTK_docker \ |
64 | 60 |
-it campbio/sctk_qc:2.2.1 \ |
65 | 61 |
-b /SCTK_docker/cellranger \ |
... | ... |
@@ -79,7 +75,7 @@ Please refer to the section [*Parameters*](#parameters-1) for more details about |
79 | 75 |
|
80 | 76 |
Users who have not used [Singularity](https://singularity.hpcng.org/user-docs/master/) before can install it following the instruction [here](https://sylabs.io/guides/2.6/user-guide/installation.html). The Singularity image for SCTK-QC can be easily built using Docker Hub as a source: |
81 | 77 |
|
82 |
-```{bash} |
|
78 |
+```{bash, eval=FALSE} |
|
83 | 79 |
singularity pull docker://campbio/sctk_qc:2.2.1 |
84 | 80 |
``` |
85 | 81 |
|
... | ... |
@@ -87,7 +83,7 @@ The usage of singleCellTK Singularity image is very similar to that of Docker. I |
87 | 83 |
|
88 | 84 |
It's recommended to re-set the home directory when you run singularity. Singularity will mount `\$HOME` path on your machine by default, which might contain your personal R/Python library folder. If we don't re-set the home to mount, singularity will try to use R/Python libraries which are not built within the singularity image and cause some conflicts. You can point to some "sanitized home", which is different from `\$HOME` path on your machine, using argument `-H`/`--home` [(see more information)](https://sylabs.io/guides/3.1/user-guide/bind_paths_and_mounts.html). Besides, you can use argument `--bind`/`-B` to specify your own mount volume, which is the path that contains the dataset and will be used to store the output of QC pipeline. The example is shown as below: |
89 | 85 |
|
90 |
-```{bash} |
|
86 |
+```{bash, eval=FALSE} |
|
91 | 87 |
singularity run --home=/PathToSanitizedHome \ |
92 | 88 |
--bind /PathToData:/data sctk_qc_2.2.1.sif \ |
93 | 89 |
-P CellRangerV3 \ |
... | ... |
@@ -104,7 +100,7 @@ singularity run --home=/PathToSanitizedHome \ |
104 | 100 |
|
105 | 101 |
One important note about this docker image: please run the docker image on a machine / node which has a **CPU** with the following architecture: **broadwell, haswell, skylake, cascadelake or the latest architecture**. This can avoid having the "illegal operation" issue from Scrublet package, because this Python package are compiled by SIMD instructions that are compatible with these CPU architectures. Please specify the CPU architecture, at the script header after `#$ -l cpu_arch=`, as one of the following: `broadwell`, `haswell`, `skylake`, `cascadelake` or latest architecture. One of the example is shown below: |
106 | 102 |
|
107 |
-```{bash} |
|
103 |
+```{bash, eval=FALSE} |
|
108 | 104 |
#!/bin/bash |
109 | 105 |
#$ -cwd |
110 | 106 |
#$ -j y |
... | ... |
@@ -10,7 +10,7 @@ |
10 | 10 |
|
11 | 11 |
|
12 | 12 |
|
13 |
-<meta name="date" content="2021-09-27" /> |
|
13 |
+<meta name="date" content="2021-10-11" /> |
|
14 | 14 |
|
15 | 15 |
<title>Introduction to singleCellTK</title> |
16 | 16 |
|
... | ... |
@@ -170,12 +170,12 @@ function toggle_visibility(id1) { |
170 | 170 |
|
171 | 171 |
|
172 | 172 |
<h1 class="title toc-ignore">Introduction to singleCellTK</h1> |
173 |
-<p class="author-name">David Jenkins<span class="affil-mark">1,2</span>, Tyler Faits<span class="affil-mark">1,2</span>, Rui Hong<span class="affil-mark">1,2</span>, Zhe Wang<span class="affil-mark">1,2</span>, Salam Abdullatif<span class="affil-mark">1</span>, Vidya Akapoor<span class="affil-mark">3</span>, Shruthi Bandyadka<span class="affil-mark">1,2</span>, Xinyun Cao<span class="affil-mark">3</span>, Yusuke Koga<span class="affil-mark">1,2</span>, Anastasia Leshchyk<span class="affil-mark">1,2</span>, Irzam Sarfraz<span class="affil-mark">1</span>, Yichen Wang<span class="affil-mark">1</span>, W. Evan Johnson<span class="affil-mark">1,2</span> and Joshua D. Campbell<span class="affil-mark">1,2*</span></p> |
|
173 |
+<p class="author-name">Yichen Wang<span class="affil-mark">1</span>, Irzam Sarfraz<span class="affil-mark">1</span>, Rui Hong<span class="affil-mark">1,2</span>, Yusuke Koga<span class="affil-mark">1,2</span>, Salam Abdullatif<span class="affil-mark">1</span>, David Jenkins<span class="affil-mark">1,2</span>, Vidya Akavoor<span class="affil-mark">3</span>, Xinyun Cao<span class="affil-mark">3</span>, Shruthi Bandyadka<span class="affil-mark">1,2</span>, Anastasia Leshchyk<span class="affil-mark">1,2</span>, Tyler Faits<span class="affil-mark">1,2</span>, Mohammed Muzamil Khan<span class="affil-mark">1,2</span>, Zhe Wang<span class="affil-mark">1,2</span>, W. Evan Johnson<span class="affil-mark">1,2</span> and Joshua D. Campbell<span class="affil-mark">1,2*</span></p> |
|
174 | 174 |
<p class="author-affiliation"><span class="affil-mark">1</span>The Section of Computational Biomedicine, Boston University School of Medicine, Boston, MA<br><span class="affil-mark">2</span>Program in Bioinformatics, Boston University, Boston, MA<br><span class="affil-mark">3</span>Rafik B. Hariri Institute for Computing and Computational Science and Engineering, Boston University, Boston, MA</p> |
175 | 175 |
<p class="author-email"><span class="affil-mark">*</span><a href="mailto:camp@bu.edu">camp@bu.edu</a></p> |
176 |
-<h4 class="date">27 September 2021</h4> |
|
176 |
+<h4 class="date">11 October 2021</h4> |
|
177 | 177 |
<h4 class="package">Package</h4> |
178 |
-<p>singleCellTK 2.2.1</p> |
|
178 |
+<p>singleCellTK 2.2.2</p> |
|
179 | 179 |
|
180 | 180 |
</div> |
181 | 181 |
|
... | ... |
@@ -225,7 +225,7 @@ vignettes to help you get started, which are all available at <a href="https://w |
225 | 225 |
## [8] methods base |
226 | 226 |
## |
227 | 227 |
## other attached packages: |
228 |
-## [1] BiocStyle_2.20.2 singleCellTK_2.2.1 |
|
228 |
+## [1] BiocStyle_2.20.2 singleCellTK_2.2.2 |
|
229 | 229 |
## [3] DelayedArray_0.18.0 Matrix_1.3-4 |
230 | 230 |
## [5] SingleCellExperiment_1.14.1 SummarizedExperiment_1.22.0 |
231 | 231 |
## [7] Biobase_2.52.0 GenomicRanges_1.44.0 |