scRegulocity is publicly available from https://akdess.github.io/scReguloCity/
This vignette shows the basic steps for running scRegulocity.
Install latest version from GitHub (requires devtools package):
if (!require("devtools")) {
install.packages("devtools")
}
devtools::install_github("akdess/scRegulocity", dependencies = TRUE, build_vignettes = FALSE)
- Generation of the intron exon read count statistics from RNA-Seq BAM files:
The input to scRegulocity consists of bam file. We first use our c++ code, IntrExtract, for extracting intron exon read count statistics from bam file. Intron and exon read count statistics is extracted directly from the mapped RNA-Seq reads using our algorithm called IntrExtract. You can download IntrExtract C++ source or binary code from here.
After downloading source code type the following:
cd IntrExtract
make clean
make
The executable is located under directory /bin. IntrExtract output files are read using the following functions:
intex_stats <- readIntrexStats (file.dir="./intrex_stats_ST.txt/", file.name="intrex_stats_ST.txt", emb=emb)
stats <- normalizeAndSmoothIntrexStats (emat=intex_stats$emat, nmat=intex_stats$nmat, smat=intex_stats$smat)
emb: contains the reduced dimension projection (PCA/tSNE/UMAP) coordinates of the cells.
- Creating scRegulocity object
The scRegulocity object is required for performing velocity analysis on single-cell data. scRegulocity object is created using following functions
motif_ref <- "hg19-tss-centered-10kb-7species.mc9nr.feather"
scRegulo_obj <- CreateSCReguloCityObject(emat = stats$emat, nmat = stats$nmat, smat =NULL,
emb=intex_stats$emb, species="mouse" , motif_ref=motif_ref, cell.types=cell.types)
scRegulo_obj@vel<- scRegulo_obj@vel[which(apply(scRegulo_obj@vel, 1, sd)>1), ]
motif_ref: file can be downloaded from here
- Running scRegulocity object
After creating the scRegulocity object we perform our analysis using the below function:
kNNdistplot(scRegulo_obj@emb[, 1:2], k = 20)
neigh <- 6
scRegulo<- applyReguloCity (object=scRegulo_obj, neigh=neigh, minsize=10)
We extract regulotory network using velocity changes using the below function:
scReguloTF <- extractRegulatoryNetwork (object=scRegulo, minNumGenesInPattern=5, motifAnnotations=motifAnnotations)