admin管理员组

文章数量:1029552

单细胞scRank药物反应推断工具学习

scRank是一种利用目标扰动基因调控网络(target-perturbed gene regulatory networks, tpGRN)对未处理scRNA-seq数据中的药物扰动进行建模和评分的药物响应细胞类型推断方法。开发者是基于以下两点进行假设:1.不同细胞类型的内在细胞状态可以通过细胞特异性基因调控网络(GRN)反映出来;2.细胞中的药物(抑制剂)扰动可以建模为GRN中药物靶基因节点的缺失,进而导致全局或局部效应。

因此该工具可以探索在不同条件下scRNA-seq数据中模拟药物扰动情况(药物所针对的靶点)并对不同细胞亚群进行排名和推断

分析步骤
1.导入
代码语言:javascript代码运行次数:0运行复制
rm(list = ls())
library(rTensor)
library(scRank)
library(qs)
library(Seurat)
scRNA <- qread("sc_dataset.qs")

p1 <- DimPlot(scRNA, group.by="hpv")
p2 <- DimPlot(scRNA, group.by="celltype")
p1|p2
2.数据预处理
代码语言:javascript代码运行次数:0运行复制
hpvNeg <- scRNA[,scRNA$hpv %in% "HPV-"]
hpvPos <- scRNA[,scRNA$hpv %in% "HPV+"]
p3 <- DimPlot(hpvNeg, group.by="hpv")
p4 <- DimPlot(hpvPos, group.by="hpv")
p3|p4
3.创建scRank对象
代码语言:javascript代码运行次数:0运行复制
drug <- utile_database  #可以查询药物以及靶点

obj1 <- CreateScRank(input= hpvNeg,
                    #meta =NULL,
                    cell_type="celltype",
                    species="human",
                    #drug = "", # 若知道靶点则无需输入药物
                    target = "EGFR",
                    # type ="", # 药物的作用机制,默认拮抗剂
                    if_cluster =FALSE)

obj2 <- CreateScRank(input= hpvPos,
                    #meta =NULL,
                    cell_type="celltype",
                    species="human",
                    #drug = "", # 若知道靶点则无需输入药物
                    target = "EGFR",
                    # type ="", # 药物的作用机制,默认拮抗剂
                    if_cluster =FALSE)
4.构建基因调控网络
代码语言:javascript代码运行次数:0运行复制
obj1 <- Constr_net(obj1)

obj2 <- Constr_net(obj2)
5.对细胞类型进行排序
代码语言:javascript代码运行次数:0运行复制
obj1 <- rank_celltype(obj1)
# 最终推断出的决定药物反应的细胞类型排名
obj1@cell_type_rank
#                           perb_score rank top_rank%      fill method
# B/plasma cells          1.046731e-10    7 0.8571429 0.8571429 scRank
# dendritic cells         2.209068e-17    2 0.1428571 0.1428571 scRank
# endothelial cells       3.003676e-17    4 0.4285714 0.4285714 scRank
# epithelial/cancer cells 2.588837e-05    8 1.0000000 1.0000000 scRank
# fibroblasts             1.561566e-12    6 0.7142857 0.7142857 scRank
# mast cells              6.459748e-17    5 0.5714286 0.5714286 scRank
# myeloid cells           8.638961e-18    1 0.0000000 0.0000000 scRank
# T/NK cells              2.914765e-17    3 0.2857143 0.2857143 scRank

obj2 <- rank_celltype(obj2)
obj2@cell_type_rank
#                           perb_score rank top_rank%      fill method
# B/plasma cells          7.440025e-07    5 0.5714286 0.5714286 scRank
# dendritic cells         1.332277e-13    3 0.2857143 0.2857143 scRank
# endothelial cells       6.914530e-07    4 0.4285714 0.4285714 scRank
# epithelial/cancer cells 3.962152e-05    8 1.0000000 1.0000000 scRank
# fibroblasts             5.369337e-06    6 0.7142857 0.7142857 scRank
# mast cells              1.388962e-17    1 0.0000000 0.0000000 scRank
# myeloid cells           5.728942e-06    7 0.8571429 0.8571429 scRank
# T/NK cells              6.379440e-17    2 0.1428571 0.1428571 scRank
6.可视化

UMAP

代码语言:javascript代码运行次数:0运行复制
a1 <- plot_dim(obj1)
a2 <- plot_dim(obj2)
a1|a2

可以看到上皮细胞在两个组别中都是排第一的,其他不同细胞就存在一定的等级排序差异了。

可视化特定细胞类型中模块化的药物-靶基因子的热图

代码语言:javascript代码运行次数:0运行复制
obj1

obj1 <- init_mod(obj1)
plot_net(obj1, mode = "heatmap", celltype = "myeloid cells")
#plot_net(obj1, mode = "heatmap", celltype = "resistant") 官方代码,sensitive

obj2 <- init_mod(obj2)
plot_net(obj2, mode = "heatmap", celltype = "myeloid cells")
# plot_net(obj2, mode = "heatmap", celltype = "resistant") 官方代码,sensitive

可视化特定细胞类型中模块化的药物-靶基因子网络

代码语言:javascript代码运行次数:0运行复制
plot_net(obj1, mode = "network", celltype = "myeloid cells")
plot_net(obj2, mode = "network", celltype = "myeloid cells")

提取module基因

代码语言:javascript代码运行次数:0运行复制
obj1genes <- as.data.frame(obj1@para$gene_clusters)
head(obj1genes)
#        obj1@para$gene_clusters
# IGFBP7                       1
# CALD1                        1
# TPM2                         2
# CCNB1                        1
# FTL                          2
# FSCN1                        1

obj2genes <- as.data.frame(obj2@para$gene_clusters)
head(obj2genes)
#          obj2@para$gene_clusters
# TPM1                           1
# IGFBP2                         1
# CTSZ                           1
# DST                            1
# SERPINB5                       1
# PKP1                           1

关于后面的热图和来看一下研究者文章中的示例:开发者根据Rank情况将细胞分出了敏感和不敏感的,然后分别对敏感和不敏感细胞进行模块分析,然后根据目标基因所在的模块再进行可视化和富集分析以及后续的生存分析。

参考资料:
  1. scRank infers drug-responsive cell types from untreated scRNA-seq data using a target-perturbed gene regulatory network. Cell Rep Med. 2024 Jun 18;5(6):101568.
  2. scRank github:
  3. 生信益站:
  4. 生信漫卷:

:若对内容有疑惑或者有发现明确错误的朋友,请联系后台(欢迎交流)。更多相关内容可关注公众号:生信方舟

- END -

单细胞scRank药物反应推断工具学习

scRank是一种利用目标扰动基因调控网络(target-perturbed gene regulatory networks, tpGRN)对未处理scRNA-seq数据中的药物扰动进行建模和评分的药物响应细胞类型推断方法。开发者是基于以下两点进行假设:1.不同细胞类型的内在细胞状态可以通过细胞特异性基因调控网络(GRN)反映出来;2.细胞中的药物(抑制剂)扰动可以建模为GRN中药物靶基因节点的缺失,进而导致全局或局部效应。

因此该工具可以探索在不同条件下scRNA-seq数据中模拟药物扰动情况(药物所针对的靶点)并对不同细胞亚群进行排名和推断

分析步骤
1.导入
代码语言:javascript代码运行次数:0运行复制
rm(list = ls())
library(rTensor)
library(scRank)
library(qs)
library(Seurat)
scRNA <- qread("sc_dataset.qs")

p1 <- DimPlot(scRNA, group.by="hpv")
p2 <- DimPlot(scRNA, group.by="celltype")
p1|p2
2.数据预处理
代码语言:javascript代码运行次数:0运行复制
hpvNeg <- scRNA[,scRNA$hpv %in% "HPV-"]
hpvPos <- scRNA[,scRNA$hpv %in% "HPV+"]
p3 <- DimPlot(hpvNeg, group.by="hpv")
p4 <- DimPlot(hpvPos, group.by="hpv")
p3|p4
3.创建scRank对象
代码语言:javascript代码运行次数:0运行复制
drug <- utile_database  #可以查询药物以及靶点

obj1 <- CreateScRank(input= hpvNeg,
                    #meta =NULL,
                    cell_type="celltype",
                    species="human",
                    #drug = "", # 若知道靶点则无需输入药物
                    target = "EGFR",
                    # type ="", # 药物的作用机制,默认拮抗剂
                    if_cluster =FALSE)

obj2 <- CreateScRank(input= hpvPos,
                    #meta =NULL,
                    cell_type="celltype",
                    species="human",
                    #drug = "", # 若知道靶点则无需输入药物
                    target = "EGFR",
                    # type ="", # 药物的作用机制,默认拮抗剂
                    if_cluster =FALSE)
4.构建基因调控网络
代码语言:javascript代码运行次数:0运行复制
obj1 <- Constr_net(obj1)

obj2 <- Constr_net(obj2)
5.对细胞类型进行排序
代码语言:javascript代码运行次数:0运行复制
obj1 <- rank_celltype(obj1)
# 最终推断出的决定药物反应的细胞类型排名
obj1@cell_type_rank
#                           perb_score rank top_rank%      fill method
# B/plasma cells          1.046731e-10    7 0.8571429 0.8571429 scRank
# dendritic cells         2.209068e-17    2 0.1428571 0.1428571 scRank
# endothelial cells       3.003676e-17    4 0.4285714 0.4285714 scRank
# epithelial/cancer cells 2.588837e-05    8 1.0000000 1.0000000 scRank
# fibroblasts             1.561566e-12    6 0.7142857 0.7142857 scRank
# mast cells              6.459748e-17    5 0.5714286 0.5714286 scRank
# myeloid cells           8.638961e-18    1 0.0000000 0.0000000 scRank
# T/NK cells              2.914765e-17    3 0.2857143 0.2857143 scRank

obj2 <- rank_celltype(obj2)
obj2@cell_type_rank
#                           perb_score rank top_rank%      fill method
# B/plasma cells          7.440025e-07    5 0.5714286 0.5714286 scRank
# dendritic cells         1.332277e-13    3 0.2857143 0.2857143 scRank
# endothelial cells       6.914530e-07    4 0.4285714 0.4285714 scRank
# epithelial/cancer cells 3.962152e-05    8 1.0000000 1.0000000 scRank
# fibroblasts             5.369337e-06    6 0.7142857 0.7142857 scRank
# mast cells              1.388962e-17    1 0.0000000 0.0000000 scRank
# myeloid cells           5.728942e-06    7 0.8571429 0.8571429 scRank
# T/NK cells              6.379440e-17    2 0.1428571 0.1428571 scRank
6.可视化

UMAP

代码语言:javascript代码运行次数:0运行复制
a1 <- plot_dim(obj1)
a2 <- plot_dim(obj2)
a1|a2

可以看到上皮细胞在两个组别中都是排第一的,其他不同细胞就存在一定的等级排序差异了。

可视化特定细胞类型中模块化的药物-靶基因子的热图

代码语言:javascript代码运行次数:0运行复制
obj1

obj1 <- init_mod(obj1)
plot_net(obj1, mode = "heatmap", celltype = "myeloid cells")
#plot_net(obj1, mode = "heatmap", celltype = "resistant") 官方代码,sensitive

obj2 <- init_mod(obj2)
plot_net(obj2, mode = "heatmap", celltype = "myeloid cells")
# plot_net(obj2, mode = "heatmap", celltype = "resistant") 官方代码,sensitive

可视化特定细胞类型中模块化的药物-靶基因子网络

代码语言:javascript代码运行次数:0运行复制
plot_net(obj1, mode = "network", celltype = "myeloid cells")
plot_net(obj2, mode = "network", celltype = "myeloid cells")

提取module基因

代码语言:javascript代码运行次数:0运行复制
obj1genes <- as.data.frame(obj1@para$gene_clusters)
head(obj1genes)
#        obj1@para$gene_clusters
# IGFBP7                       1
# CALD1                        1
# TPM2                         2
# CCNB1                        1
# FTL                          2
# FSCN1                        1

obj2genes <- as.data.frame(obj2@para$gene_clusters)
head(obj2genes)
#          obj2@para$gene_clusters
# TPM1                           1
# IGFBP2                         1
# CTSZ                           1
# DST                            1
# SERPINB5                       1
# PKP1                           1

关于后面的热图和来看一下研究者文章中的示例:开发者根据Rank情况将细胞分出了敏感和不敏感的,然后分别对敏感和不敏感细胞进行模块分析,然后根据目标基因所在的模块再进行可视化和富集分析以及后续的生存分析。

参考资料:
  1. scRank infers drug-responsive cell types from untreated scRNA-seq data using a target-perturbed gene regulatory network. Cell Rep Med. 2024 Jun 18;5(6):101568.
  2. scRank github:
  3. 生信益站:
  4. 生信漫卷:

:若对内容有疑惑或者有发现明确错误的朋友,请联系后台(欢迎交流)。更多相关内容可关注公众号:生信方舟

- END -

本文标签: 单细胞scRank药物反应推断工具学习