Cells respond divergently to drugs due to the heterogeneity among cell populations,thus it is crucial to identify the drug-responsive cell population for accurately elucidating the mechanism of drug action, which is a great challenge yet. Here, we address it with scRank using a target-perturbed gene regulatory network (tpGRN) to rank and infer drug-responsive cell population towards in-silico drug perturbation for single-cell transcriptomic data under disease condition. scRank enables the inference of drug-responsive cell types for single-cell data under disease condition, providing new insights into the mechanism of drug action.
- install dependent packages
devtoolsandrTensor
#install.packages("devtools")
#devtools::install_github("rikenbit/rTensor")
devtools::install_github("ZJUFanLab/scRank")
- Add
subsetScRank()function. see issue #14
- Disease Relevance and Drug Effects Analysis: Introducing the new
scRank_GSEA()andplot_drug_function()functions for analyzing disease relevance and drug effects in the highest-ranking cell types. - Drug Type Specification: Added a
typeparameter inrank_celltype()to specify modeling effects of either agonists or antagonists, enhancing the versatility of drug response modeling. - Efficient Large Matrix Manipulations: Integration of the Python module "tensorly" in the
Constr_net()function, with a new parameteruse_py, to optimize large-scale data processing. - Enhanced Cell State Discernment: Integration of the
scSHCalgorithm into theCreateScRank()function with anif_clusterparameter, improving the tool's ability to discern various cell states. More about scSHC. - Incorporating Drug Resistance Mechanisms: The
resistance_targetparameter inrank_celltype()allows for inputting targets of alternative pathways, aiding in the consideration of drug resistance mechanisms. - Flexible Edge Weight Adjustment: Introduction of the
keep_ratioparameter to adjust edge weights in the gene regulatory network, allowing for differential treatment of node types.
- Packaging and Accessibility: We are in the process of submitting scRank to Bioconductor or CRAN for enhanced accessibility.
scRank method consists of two components, wherein the first is to reconstruct the gene regulatory network from expression ptrofiles using Constr_net function and the second step is to estimate the extent of the in silico drug perturbation for GRNs in each cell type using rank_celltype function.
scRank start with create a S4 object by CreateScRank function:
- the
inputis the gene expression profil eandmetais the cell type information. cell_typeis the column name of the cell type information inmetaspeciesis the species of the data. ("mouse" or "human")drugis the drug name andtargetis the target gene of the drug.drugcould be found in our databaseutile_database. if you know the specific target gene of the drug, you can input the target gene intotargetwithout inputingdrug.typecharacters meaning the MOAs of drug including antagonist or agonist. Default is antagonist.if_clusterA logical meaning whether clustering single-cell transcriptomic data. Default isFALSE.
CreateScRank <- function(input,
meta,
cell_type,
species,
drug,
target,
type,
if_cluster,
var.genes)
The format of the input is as follows:
- gene expression profile formatted by matrix or data frame, where the column is gene and the row is cell.
- Seurat object with metadata containing cell type information
The meta is required if input is not a Seurat objectas, where its format as follows:
- a dataframe with row names as cell names matched with column names of
inputand column names as cell type information cooresponding to thecell_typeargument.
In this tutorial, we will demonstrate how to infer the drug-responsive cell type by scRank based on a demo dataset (GSE110894) containing BET inhibitor resistant and sensitive leukaemic cells.
we load the demo dataset from Seurat object, the drug target is known as Brd4.
seuratObj <- system.file("extdata", "AML_object.rda", package="scRank")
load(seuratObj)
obj <- CreateScRank(input = seuratObj,
species = 'mouse',
cell_type = 'labels',
target = 'Brd4')
obj <- Constr_net(obj)
obj <- rank_celltype(obj)
the final infered rank of cell types that determine the drug response is stored in obj@cell_type_rank
To visualize the rank of cell types in dimension reduction space, we can use the plot_dim function.
plot_dim(obj)
To visualize the modularized drug-target-gene subnetwork in a specific cell type, start by initializing the modularization using the init_mod function. Afterward, you can use the plot_net function to display the network. The mode parameter in plot_net allows you to choose between a "heatmap" or a "network" for different types of visualization.
obj <- init_mod(obj)
plot_net(obj, mode = "heatmap", celltype = "sensitive")
plot_net(obj, mode = "heatmap", celltype = "resistant")
Chengyu Li, et al. scRank infers drug-responsive cell types from untreated scRNA-seq data using a target-perturbed gene regulatory network, Cell Reports Medicine, 2024, https://doi.org/10.1016/j.xcrm.2024.101568




