plotQuaternary {CytoSimplex}R Documentation

Create quaternary simplex plots

Description

Create quaternary plots that show similarity between single cells and selected four terminals in a baricentric coordinate.

See plotTernary for more details on methodologies.

A dynamic rotating view in a GIF image file can be created with writeQuaternaryGIF. Package magick must be installed in advance. Linux users may refer to this installation guide.

Usage

plotQuaternary(x, ...)

## Default S3 method:
plotQuaternary(
  x,
  clusterVar,
  vertices,
  features = NULL,
  veloGraph = NULL,
  byCluster = NULL,
  processed = FALSE,
  method = c("euclidean", "cosine", "pearson", "spearman"),
  force = FALSE,
  sigma = 0.05,
  scale = TRUE,
  dotColor = "grey60",
  returnData = FALSE,
  ...
)

## S3 method for class 'Seurat'
plotQuaternary(
  x,
  layer = "counts",
  assay = NULL,
  clusterVar = NULL,
  processed = FALSE,
  ...
)

## S3 method for class 'SingleCellExperiment'
plotQuaternary(
  x,
  assay.type = "counts",
  clusterVar = NULL,
  processed = FALSE,
  ...
)

## S3 method for class 'simMat'
plotQuaternary(
  x,
  veloMat = NULL,
  nGrid = 10,
  radius = 0.2,
  dotSize = 0.6,
  dotColor = "grey60",
  labelColors = c("#3B4992FF", "#EE0000FF", "#008B45FF", "#631879FF"),
  arrowLinewidth = 0.6,
  arrowAngle = 20,
  arrowLen = 0.1,
  vertexLabelSize = 1,
  edgeLinewidth = 1,
  title = NULL,
  titleSize = 1,
  titleColor = "black",
  theta = 20,
  phi = 0,
  interactive = FALSE,
  ...
)

Arguments

x

Input data. Can be a matrix or dgCMatrix object with cells as columns, a Seurat or SingleCellExperiment object. "simMat" method takes intermediate values.

...

Arguments passed to other methods.

clusterVar

A vector/factor assigning the cluster variable to each column of the matrix object. For "Seurat" method, NULL (default) for Idents(x), or a variable name in meta.data slot. For "SingleCellExperiment" method, NULL (default) for colLabels(x), or a variable name in colData slot.

vertices

Vector of three unique cluster names that will be used for plotting. Or a named list that groups clusters as three terminal vertices. There must not be any overlap between groups.

features

Valid matrix row subsetting index to select features for similarity calculation. Default NULL uses all available features.

veloGraph

Cell x cell dgCMatrix object containing velocity information. Shows velocity grid-arrow layer when specified. Default NULL does not show velocity.

byCluster

Default NULL to generate one plot with all cells. Set "all" to split cells in plot by cluster and returns a list of subplots for each cluster as well as the plot including all cells. Otherwise, a vector of cluster names to generate a list of subplots for the specified clusters.

processed

Logical. Whether the input matrix is already processed. TRUE will bypass internal preprocessing and input matrix will be directly used for similarity calculation. Default FALSE and raw count input is recommended. If missing in call, using slot = "counts" in "Seurat" method or using assay.type = "counts" in "SingleCellExperiment" method will force this argument to be FALSE and others for TRUE.

method

Similarity calculation method. Default "euclidean". Choose from "euclidean", "cosine", "pearson", "spearman".

force

Whether to force calculate the similarity when more then 500 features are detected, which is generally not recommended. Default FALSE.

sigma

Gaussian kernel parameter that controls the effect of variance. Only effective when using a distance metric (i.e. method is "euclidian" or "cosine"). Larger values tighten the dot spreading on figure. Default 0.05.

scale

Whether to min-max scale the distance matrix by clusters. Default TRUE.

returnData

Logical. Whether to return similarity and aggregated velocity data if applicable instead of generating plot. Default FALSE.

layer

For "Seurat" method, which layer of the assay to be used. Default "counts".

assay

For "Seurat" method, the specific assay to get data from. Default NULL to the default assay.

assay.type

For "SingleCellExperiment" methods. Which assay to use for calculating the similarity. Default "counts".

veloMat

Aggregated velocity matrix. Output of aggrVeloGraph.

nGrid

Number of grids along the x-axis of the tetrahedron triangle. Default 10.

radius

Arrow length of unit velocity. Lower this when arrows point outside of the tetrahedron. Default 0.2.

dotSize, dotColor

Dot aesthetics. Default 0.6 and "grey60".

labelColors

Colors of the vertex labels. Default c("#3B4992FF", "#EE0000FF", "#008B45FF", "#631879FF") (blue, red, green and purple).

arrowLinewidth

Arrow aesthetics. Default 0.6.

arrowAngle, arrowLen

Arrow aesthetics passed to grid::arrow. The length of the arrow will be internally converted to unit onject in inches. Default 20 and 0.1.

vertexLabelSize

Numeric, size of vertex text label relative to default size. Default 1.

edgeLinewidth

Controls the linewidth of the edges of the tetrahedron. Default 1.

title

Title text of the plot. Default NULL.

titleSize, titleColor

Setting on the main title text. Default 1, and "black".

theta, phi

Numeric scalar. The angles defining the viewing direction. theta gives the azimuthal direction and phi the colatitude. Default 20 and 0.

interactive

Logical. Whether to use "rgl" library to create interactive device. Default FALSE.

Value

For "simMat" method, a "plist" (plot3D package product) object. For other methods, a "plist" object when splitCluster = FALSE, or a list of "plist" objects when splitCluster = TRUE. A "plist" object can be viewed with print(), show() or a direct run of the object variable name in interactive console.

Examples

gene <- selectTopFeatures(rnaRaw, rnaCluster, c("RE", "OS", "CH", "ORT"))
plotQuaternary(rnaRaw, rnaCluster, c("RE", "OS", "CH", "ORT"), gene)

# Seurat example
library(Seurat)
srt <- CreateSeuratObject(rnaRaw)
Idents(srt) <- rnaCluster
gene <- selectTopFeatures(srt, vertices = c("OS", "RE", "CH", "ORT"))
plotQuaternary(srt, features = gene,
               vertices = c("OS", "RE", "CH", "ORT"))


# SingleCellExperiment example
library(SingleCellExperiment)
sce <- SingleCellExperiment(assays = list(counts = rnaRaw))
colLabels(sce) <- rnaCluster
gene <- selectTopFeatures(sce, vertices = c("OS", "RE", "CH", "ORT"))
plotQuaternary(sce, features = gene,
               vertices = c("OS", "RE", "CH", "ORT"))


[Package CytoSimplex version 0.1.1 Index]