Skip to content

Generate signature matrix from single cell data.

License

Notifications You must be signed in to change notification settings

ruppinlab/scSigR-1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scSigR

scSigR is an R package for generation of signature matrices from single cell data.

grouping

Installing scSigR

Install the development version directly from github (requires devtools)

require(devtools)
devtools::install_github("ruppinlab/scSigR")

# If you don't want to install the package, load the function using devtools
devtools::load_all()

Usage

library(scSigR)
?scSigR

Seurat

04-13-2021 scSigR can now be used with a Seurat object!

signature <- scSigR::RunSigR(
  seurat_obj,
  cell_types=c("CD8T", "CD4Tconv", "Mono/Macro"))
  
> signature[1:5, 1:3]
         CD8T  CD4Tconv Mono/Macro
CCR7 3.407659 0.6894390 0.17944693
LEF1 2.566739 0.5078555 0.04899431
MAL  2.775638 0.7251862 0.10114963
MYC  3.341631 1.0512256 0.20400130
CD27 5.074077 2.5608664 0.69854288

Matrix and Meta data

Alternatively, the input can be a matrix and a meta file with cell ids and cell type information. We use the following input file as an example:

livnat_mat <- readRDS("GBM_forSignature_CV.rds")
livnat_meta <- readRDS("GBM_meta_forSignature_CV.rds")

> livnat_mat[1:3, 1:3]
         MGH102-P1-A01 MGH102-P1-A02 MGH102-P1-A03
A1BG                 0             0             0
A1BG-AS1             0             0             0
A1CF                 0             0             0

> livnat_meta[1:3, 1:4]
           Cell Sample GBM_Type Cell_Type
1 MGH102-P1-A01 MGH102    Adult Malignant
2 MGH102-P1-A02 MGH102    Adult Malignant
3 MGH102-P1-A03 MGH102    Adult Malignant

Signatures are generated in 4 steps.

Step 1: Aggregate Gene expression profiles (default 5, num_gep).

geps <- scSigR::aggregateGEP(
  livnat_mat, 
  livnat_meta, 
  cell_types=names(table(livnat_meta$Cell_Type)),
  celltype_column="Cell_Type",
  scale_factor=10000,
  num_gep=5,
  verbose = TRUE)
  
> geps[1:5, 1:3]
         Macrophage.1 Macrophage.2 Macrophage.3
A1BG         0.018044     0.015958     0.028440
A1BG-AS1     0.014134     0.033334     0.045636
A1CF         0.000578     0.001956     0.000988
A2M         17.243004    21.166668    16.667274
A2M-AS1      0.007664     0.006702     0.009444

Step 2: Perform differential expression. One cell type again all others.

degs <- scSigR::deg(
  gep=as.matrix(geps), 
  cell_types=names(table(livnat_meta$Cell_Type)),
  num_gep=5,
  test_alternative="greater",
  verbose=TRUE)
  
> str(degs)
List of 4
 $ Macrophage     :'data.frame':	21394 obs. of  3 variables:
  ..$ p_value: num [1:21394] 0.166657 0.269061 0.154511 0.000594 0.126444 ...
  ..$ log2fc : num [1:21394] -0.00547 0.00256 0.000599 4.125409 0.001353 ...
  ..$ BH     : num [1:21394] 0.71124 0.9841 0.66929 0.00798 0.63921 ...
 $ Malignant      :'data.frame':	21394 obs. of  3 variables:
  ..$ p_value: num [1:21394] 0.854381 0.759161 0.006627 0.146536 0.000772 ...
  ..$ log2fc : num [1:21394] -0.0288 -0.01232 0.00155 -2.3772 0.02977 ...
  ..$ BH     : num [1:21394] 0.9029 0.8149 0.0137 0.1879 0.002 ...

Step 3: Find matrix with lowest condition number.

kappas <- scSigR::getKappa(
  agg_ct=geps, 
  diff_expr=degs, 
  cell_types=names(table(livnat_meta$Cell_Type)),
  qvalue=0.01,
  log2fc=1,
  num_gep=5,
  G_min=300,
  G_max=500,
  verbose=TRUE)
  
> head(kappas)
   gene_iteration condition_number
28            327         3.522208
30            329         3.522257
29            328         3.522266
31            330         3.522270
1             300         3.522290
2             301         3.522322

Get lowest condition number

optimalG <- kappas[kappas$condition_number==min(kappas$condition_number), ]$gene_iteration

Step 4: Get signature matrix.

signature <- scSigR::getSignatureMatrix(
  agg_ct=geps, 
  diff_expr = degs, 
  cell_types = names(table(livnat_meta$Cell_Type)),
  qvalue=0.01,
  log2fc=1,
  optimalG=optimalG,
  num_gep=5)
  
> signature[1:5, 1:4]
        Macrophage    Malignant Oligodendrocyte  T-cell
C1QB      69.74890 3.772358e-05       0.0046928 0.00000
CCL3      61.06000 3.427602e-03       0.0000000 0.00000
FCGR3A    42.27122 4.432520e-04       0.0000000 0.00000
HLA-DRA  100.50797 4.126496e-02       0.0000000 4.17466
FCER1G    40.07535 1.700346e-02       0.0000000 0.00000

About

Generate signature matrix from single cell data.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • R 100.0%