Title: | An R Wrapper for 'TooManyCells' |
Version: | 0.1.1.0 |
Author: | Gregory W. Schwartz |
Maintainer: | Gregory W. Schwartz <gsch@pennmedicine.upenn.edu> |
Description: | An R wrapper for using 'TooManyCells', a command line program for clustering, visualizing, and quantifying cell clade relationships. See https://gregoryschwartz.github.io/too-many-cells/ for more details. |
Imports: | Matrix, imager, ggplot2, cowplot, jsonlite |
SystemRequirements: | 'TooManyCells' (https://github.com/GregorySchwartz/too-many-cells) |
License: | GPL-3 |
Encoding: | UTF-8 |
LazyData: | true |
RoxygenNote: | 6.1.1 |
NeedsCompilation: | no |
Packaged: | 2019-10-04 20:30:20 UTC; gw |
Repository: | CRAN |
Date/Publication: | 2019-10-07 20:20:02 UTC |
Import some 'too-many-cells make-tree' outputs into a data frame.
Description
This function will import some of the files resulting from a 'too-many-cells make-tree' run into R as data frames. Does not include cluster list. Look at the main tooManyCells function for the cluster list.
Usage
importResults(dir = "out")
Arguments
dir |
The output directory of a 'too-many-cells' run. |
Value
A list of each output. Reads the following files, see https://gregoryschwartz.github.io/too-many-cells/ for more details: "dendrogram.svg", "clumpiness.pdf", "projection.pdf", "label_projection.pdf", "clumpiness.csv", "cluster_info.csv", "node_info.csv", and "cluster_diversity.csv".
Examples
input <- system.file("extdata", "mat.csv", package="TooManyCellsR")
inputLabels <- system.file("extdata", "labels.csv", package="TooManyCellsR")
df = read.csv(input, row.names = 1, header = TRUE)
mat = Matrix::Matrix(as.matrix(df), sparse = TRUE)
labelsDf = read.csv(inputLabels, header = TRUE)
# Here we draw this small toy example with no filter or normalization, and
# decrease the size of the branches and increase the size of the leaf nodes.
# With non-toy real world single cell data, these options should not be
# necessary.
## Not run:
tooManyCells( mat, labels = labelsDf
, args = c( "make-tree"
, "--no-filter"
, "--normalization", "NoneNorm"
, "--draw-max-node-size", "40"
, "--draw-max-leaf-node-size", "70"
)
)
res = importResults("out")
plot(res$treePlot, axes = FALSE)
## End(Not run)
Execute 'too-many-cells'.
Description
This function will run 'too-many-cells' on a Matrix. Requires 'TooManyCells' to be installed (follow instructions at https://gregoryschwartz.github.io/too-many-cells/ ).
Usage
tooManyCells(mat, args = c("make-tree"), labels = NULL,
output = "out", prior = NULL, docker = NULL, mounts = c())
Arguments
mat |
The input Matrix with gene row names and cell barcode column names. |
args |
The arguments to give to the command line program. See https://gregoryschwartz.github.io/too-many-cells/ for more information. Defaults to "make-tree". |
labels |
The input labels data frame with item (cell barcodes) and label (whatever labels you want to give them, such as tissue of origin, celltype, etc.) columns. Optional. |
output |
The output folder for the 'too-many-cells' process. Defaults to "out". |
prior |
The location of the tree that was already made (previous 'too-many-cells' output) so quick visual or pruning changes can be made without remaking the tree (can potentially save hours). |
docker |
If using 'too-many-cells' with docker, use this argument as the command to call. For instance, if version 0.2.1.0 was pulled from Docker Hub, set to "gregoryschwartz/too-many-cells:0.2.1.0". |
mounts |
Additional directories to mount if needed for docker. The 'prior' argument will automatically mount if specified. |
Value
A list of each output, including the stdout. Reads the following files, see https://gregoryschwartz.github.io/too-many-cells/ for more details: "dendrogram.svg", "clumpiness.pdf", "projection.pdf", "label_projection.pdf", "clumpiness.csv", "cluster_info.csv", "node_info.csv", and "cluster_diversity.csv".
Examples
input <- system.file("extdata", "mat.csv", package="TooManyCellsR")
inputLabels <- system.file("extdata", "labels.csv", package="TooManyCellsR")
df = read.csv(input, row.names = 1, header = TRUE)
mat = Matrix::Matrix(as.matrix(df), sparse = TRUE)
labelsDf = read.csv(inputLabels, header = TRUE)
# Here we draw this small toy example with no filter or normalization, and
# decrease the size of the branches and increase the size of the leaf nodes.
# With non-toy real world single cell data, these options should not be
# necessary.
## Not run:
res = tooManyCells( mat, labels = labelsDf
, args = c( "make-tree"
, "--no-filter"
, "--normalization", "NoneNorm"
, "--draw-max-node-size", "40"
, "--draw-max-leaf-node-size", "70"
)
)
plot(res$treePlot, axes = FALSE)
res$stdout
res$nodeInfo
## End(Not run)
Different error for importing data.
Description
This function will fail gracefully instead of stopping the program with an error.
Usage
tryFunc(f, file)
Arguments
f |
The function to use. |
file |
The input file to be read. |
Value
The imported data frame or NULL if an error occurred.
Examples
input <- system.file("extdata", "mat.csv", package="TooManyCellsR")
fail = tryFunc(read.csv, "fail.csv")
fail
success = tryFunc(read.csv, input)
success
Write a Matrix to a folder.
Description
This function will write a Matrix from the Matrix library to a temporary directory containing matrix.mtx, genes.tsv, barcodes.tsv, and optionally a labels.csv file.
Usage
writeMatrixFiles(mat, labels = NULL)
Arguments
mat |
The input Matrix with gene row names and cell barcode column names. |
labels |
The input labels data frame with item (cell barcodes) and label (whatever labels you want to give them, such as tissue of origin, celltype, etc.) columns. Optional. |
Value
None
Examples
input <- system.file("extdata", "mat.csv", package="TooManyCellsR")
df = read.csv(input, row.names = 1, header = TRUE)
mat = Matrix::Matrix(as.matrix(df), sparse = TRUE)
writeMatrixFiles(mat)