Giter VIP home page Giter VIP logo

sonny-ram / scevan Goto Github PK

View Code? Open in Web Editor NEW

This project forked from antoniodefalco/scevan

0.0 0.0 0.0 63.92 MB

R package that automatically classifies the cells in the scRNA data by segregating non-malignant cells of tumor microenviroment from the malignant cells. It also infers the copy number profile of malignant cells, identifies subclonal structures and analyses the specific and shared alterations of each subpopulation.

Home Page: https://www.nature.com/articles/s41467-023-36790-9

License: GNU General Public License v3.0

C 0.88% R 3.88% HTML 95.24%

scevan's Introduction

Single CEll Variational Aneuploidy aNalysis

Article: A variational algorithm to detect the clonal copy number substructure of tumors from scRNA-seq data

Introduction

SCEVAN is an R package that starting from the raw count matrix of scRNA data automatically classifies the cells present in the biopsy by segregating non-malignant cells of tumor microenviroment from the malignant cells and also characterizes the clonal structure of these malignant cells. It identfies cell subpopulations with different copy number architecture and reports g the specific and shared alterations of each subpopulation. The aim of the tool is to automate the entire analysis by allowing it to be performed in a very simple and completely unsupervised way. Analyses carried out on 106 samples and 93332 cells show better classification with an F1 score for all samples of 0.90 compared to 0.63 obtained with the state-of-the-art tools. It also explits a greedy multichannel segmentation algorithms making it particularly fast even for large datasets.

Installation

library(devtools)
install_github("miccec/yaGST")
install_github("AntonioDeFalco/SCEVAN")
library(SCEVAN)

Usage

Single-sample analysis

A single call (pipelineCNA) allows the execution of the entire analysis of classification and characterization of clonal structure.

  • count_mtx : Count matrix with genes on rows (both Gene Symbol or Ensembl ID are allowed) and cells on columns.
  • sample : Sample name to save results (optional)
  • par_cores : Number of cores to run the pipeline (optional - default 20)
  • norm_cells : Vector of normal cells if the classification is already known and you are only interested in the clonal structure (optional)
  • SUBCLONES : Boolean value TRUE if you are interested in analysing the clonal structure and FALSE if you are only interested in the classification of malignant and non-malignant cells (optional - default TRUE)
  • beta_vega : Specifies beta parameter for segmentation, higher beta for more coarse-grained segmentation. (optional - default 0.5)
  • ClonalCN : Get clonal CN profile inference from all tumour cells (optional)
  • plotTree : Plot Phylogenetic tree (optional - default FALSE)
  • AdditionalGeneSets : list of additional signatures of normal cell types (optional)
  • SCEVANsignatures : FALSE if you only want to use only the signatures specified in AdditionalGeneSets(optional - default TRUE)
  • organism : Organism to be analysed (optional - "mouse" or "human" - default "human")
results <- pipelineCNA(count_mtx)

Multi-sample analysis

A single call (multiSampleComparisonClonalCN) allows the comparison of clonal profiles of multiple samples.

  • listCountMtx : Named list of raw count matrix of samples to be analysed
  • analysisName : Name of the analysis (optional)
  • organism : Organism to be analysed (optional - "mouse" or "human" - default "human")
  • par_cores : Number of cores (default 20)
multiSampleComparisonClonalCN(listCountMtx)

Integration with Seurat

Integration of information obtained with SCEVAN (aneuploidy/diploid, subclones) into Seurat object.

  • count_mtx : Count matrix of sample.
results <- pipelineCNA(count_mtx)

#Create Seurat Object with SCEVAN info
seurObj <- Seurat::CreateSeuratObject(count_mtx, meta.data = results)

#or add SCEVAN info to an existing Seurat object
seurObj <-Seurat::AddMetaData(seurObj, metadata = results)

Usage examples (vignettes)

Docker

We provide a ready-to-run Docker container that includes SCEVAN R package and dependencies. Example of usage:

docker run -v /Users/antonio/SCEVAN_vignette1:/home/SCEVAN_vignette1 -it anthonyphis/r_scevan:latest Rscript /home/SCEVAN_vignette1/script_vignette1.R

Sample Datasets

We provide some pre-processed samples used in the examples (vignettes):

  • MGH106.RData and listCountMtx.RData: scRNA data of MGH102, MGH104, MGH105 and MGH106 samples from the public dataset of Gliobastoma (GSE131928), you can download the pre-processed data from here and here

  • HNSCC26.RData : scRNA data of HNSCC26 Primary and HNSCC26 Lymph Node sample from the public dataset of Head&Neck cancer (GSE10332), you can download the pre-processed data from here

Citation

@article {De Falco2023,
       author = {De Falco, Antonio and Caruso, Francesca and Su, Xiao-Dong and Varone, Antonio and Ceccarelli, Michele},
       title = {A variational algorithm to detect the clonal copy number substructure of tumors from scRNA-seq data},
       year = {2023}
       month = {02},
       pages = {1074},
       volume = {14},
       doi = {10.1038/s41467-023-36790-9},
       URL = { https://www.nature.com/articles/s41467-023-36790-9 },
       eprint = { https://www.nature.com/articles/s41467-023-36790-9.pdf },
       journal = {Nature Communications}
}

scevan's People

Contributors

antoniodefalco avatar miccec avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.