-
For optimal performance, link this library with the MKL. Please follow this and this links to install MKL on ubuntu-like systems.
-
For running batch-correction and graph-based clustering (Leiden), you need to install Harmony and NetLibR, respectively.
install.packages("devtools")
devtools::install_github("shmohammadi86/ACTIONet")
ACTIONet uses SingleCellExperiment (SCE) format to store and manipulate single-cell expression profiles. For convenience, a series of functions have been written as part of the ACTIONet package to import data from different sources:
-
Gene expression matrix: Use
import.sce.from.count.matrix(counts, gene.names)
to construct anSCE
object. Length of thegene.names
character vector should match the number of rows in thecounts
matrix. -
10X output folder: Use
import.sce.from.10X(input_path)
, withinput_path
being the folder that contains the *.mtx.gz file. This function reads can optionally read data generated using Feature Barcoding (Total-Seq) as well. Additional -omic profiles (antibodies, etc.) will be added in the reducedDims() of theSCE
object. -
Seurat object: Use
import.sce.from.Seurat(Seurat.obj)
to convert a Seurat object toSCE
format. This function depends on theSeurat
package for conversion.
` Scanpy: Use RPy2 to convert from AnnData to SingleCellExperiment.
Running ACTIONet consists of two consecutive steps: (1) Reduction, and (2) ACTIONet Construction
In this step, we preprocess the single-cell profile, stored in SCE
format, to be compatible with the ACTIONet framework. This allows for usage of various -omics profiles, as well as to do simultaneous batch-correction (optional). For sc/sn-RNASeq, there are two main options for reduction:
(i). Without batch-correction: In this case, you can use the main function reduce.sce(sce)
to reduce the single-cell data stored in the sce object.
(ii) With batch-correction: There are currently two methods supported within the ACTIONet framework for batch-correction: (a) Harmony, and (b) Mutual Nearest Neighbor (MNN). For the former, please use reduce.and.batch.correct.sce.Harmony(sce, batch.vec)
, while for the latter you can use reduce.and.batch.correct.sce.MNN(sce, batch.vec)
function. In both cases, batch.vec
is encodes the batches and must have the same number of elements as the cells in the sce
object (ncol(sce)). In all of these functions, if the sce object is not already normalized, you can specify a normalization method by passing the norm.method
parameter. Current options are: default (log-normalization), scran, linnorm, scone, SCnorm, DESeq2, TMM, and logCPM.
The input for this step is the reduced sce object. The main interface to run ACTIONet is through run.ACTIONet(reduced.sce)
function. Additional options to consider are:
k_max
: defines the maximum resolution and is suggested to be set to 20 for most cases, and 30 for deeper analysis and identifying rare cell-types.thread_no
: indicates the number of parallel processing threads that are used for parallelization.layout.compactness
is a value between [0-100] and controls the overall compactness in the graph layout stage (this can be re-adjusted afterward).
sce = import.sce.from.10X('my_10x_path')
sce = reduce.sce(sce)
ACTIONet.out = run.ACTIONet(sce)
There are a host of different options for visualization and interactive visualization of the ACTIONet
output. One of the first entry points that allows simple interface can be accessed as follows:
plot.ACTIONet.interactive(ACTIONet.out)
ACTIONet is a comprehensive all-in-one framework that allows a host of different possible analyses. The following list is being updated as new functionalities are being added:
- Hands-on experience with PBMC 10X data
- Automated cell annotation using known markers
- Multi-resolution network-based clustering
- Advanced visualization
- Fast and scalable approach for differential analysis of cell states, clusters, and phenotypes
- Pathway enrichment analysis -- the easy way
- Gene expression imputation and gene-gene correlation analysys
- Constructing cell-type/state-specific interactomes