前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >单细胞经典文章复现(一)

单细胞经典文章复现(一)

作者头像
天意生信云
发布于 2025-02-25 01:24:48
发布于 2025-02-25 01:24:48
188012
代码可运行
举报
运行总次数:12
代码可运行

从零基础掌握单细胞数据的分析技巧最有效的方法就是复现一篇单细胞研究文章,学习作者的分析思路和可视化方法。本次我们选择复现的文章是2023年发表在《Nature Communications》上的一篇研究,题为《Single-cell analysis reveals prognostic fibroblast subpopulations linked to molecular and immunological subtypes of lung cancer》,研究聚焦于肺癌肿瘤中的成纤维细胞(CAFs)单细胞分析。

文章使用的数据集上传至GEO数据平台,编号是GSE153935,可以采用手动下载的方式,数据链接:https://ftp.ncbi.nlm.nih.gov/geo/series/GSE153nnn/GSE153935/suppl/GSE153935_TLDS_AllCells.txt.gz

https://ftp.ncbi.nlm.nih.gov/geo/series/GSE153nnn/GSE153935/suppl/GSE153935_Merged_StromalCells.txt.gz

在做单细胞转录组分析的研究时,第一步永远都是先构建一个单细胞转录组图谱,即对单细胞数据先进行降维聚类, 完成细胞注释,展示marker基因的表达情况, 计算细胞比例等,以此来展示数据基本特征。在前面我们已经介绍过第一步的分析,这里不再赘述。文章作者也提供了已经注释好的数据,我们可以从(https://doi.org/10.5281/zenodo.7400873)中下载得到作者注释之后的数据来复现。为了能够得到和作者一样的图形,我们直接用作者注释好的数据,方便解释和学习。

代码下载地址:

(https://github.com/cjh-lab/NCOMMS_NSCLC_scFibs)

下载数据和代码后解压到同一文件夹。我们首先完成Figure1的复现,下图为文献中的截图,接下来我们跟着作者的代码看 。

先加载包,导入数据

代码语言:javascript
代码运行次数:8
运行
AI代码解释
复制

# 加载所需的Rlibrary(Seurat)
library(WGCNA)
library(tidyverse)
library(ggpubr)
library(ggsci)
library(RColorBrewer)
# 指定数据目录
data_directory <- "./" # 指定保存 Zenodo 数据的目录
source(paste0(data_directory, "0_NewFunctions.R"))
# 加载数据
load(paste0(data_directory, "TLDS_AllCells_RPCAintegrated.Rdata"))
load(paste0(data_directory, "IntegratedFibs_Zenodo.Rdata"))
load(paste0(data_directory, "HCLA.SS_muralSig_data.Rdata"))
load(paste0(data_directory, "Qian_AllCells_RPCAintegrated.Rdata"))

图1a可能是作者用AI或者其他软件工具绘制的,R程序绘制不出,我们从图1b开始

代码语言:javascript
代码运行次数:4
运行
AI代码解释
复制

# Gender Data redacted for GDPR concerns
# Stage Barplot
Stage_barplot <-
Sample_MetaData %>%
filter(Dataset == "TLDS") %>%
filter(!Sample.Subtype == "Control") %>%
ggplot(aes(y = Dataset, fill = Stage)) +
geom_bar(position = "fill") +
facet_wrap(~Sample.Subtype) +
theme_pubr(base_size = 12) +
theme(legend.position = "right", legend.key.size = unit(3, "pt"), legend.direction = "horizontal",
axis.title.y = element_blank(), axis.text.y = element_blank()) +
guides(fill = guide_legend(title.position = "top")) +
xlab("Sample Fraction") +
scale_fill_brewer(palette = "Set2", name = "Stage")

# Smoking Barplot
Smoking_barplot <-
Sample_MetaData %>%
filter(Dataset == "TLDS") %>%
filter(!Sample.Subtype == "Control") %>%
drop_na(Smoking.status) %>%
ggplot(aes(y = Dataset, fill = Smoking.status)) +
geom_bar(position = "fill") +
facet_wrap(~Sample.Subtype) +
theme_pubr(base_size = 12) +
theme(legend.position = "right", legend.key.size = unit(3, "pt"), legend.direction = "horizontal",
axis.title.y = element_blank(), axis.text.y = element_blank()) +
guides(fill = guide_legend(title.position = "top")) +
xlab("Sample Fraction") +
scale_fill_brewer(palette = "Set2", name = "Smoking Status")

# Grade Barplot
Grade_barplot <-
Sample_MetaData %>%
filter(Dataset == "TLDS") %>%
filter(!Sample.Subtype == "Control") %>%
drop_na(Differentiation) %>%
ggplot(aes(y = Dataset, fill = Differentiation)) +
geom_bar(position = "fill") +
facet_wrap(~Sample.Subtype) +
theme_pubr(base_size = 12) +
theme(legend.position = "right", legend.key.size = unit(3, "pt"), legend.direction = "horizontal",
axis.title.y = element_blank(), axis.text.y = element_blank()) +
guides(fill = guide_legend(title.position = "top")) +
xlab("Sample Fraction") +
scale_fill_brewer(palette = "Set2", name = "Grade")

# Combine all barplots into a single figure
Fig_1B <- ggarrange(NULL,
ggarrange(Smoking_barplot + theme(legend.justification = 0,
axis.text.x = element_blank(), axis.title.x = element_blank(),
axis.ticks.y = element_blank(), theme_pubr(base_size = 20)),
Stage_barplot + theme(legend.justification = 0,
axis.text.x = element_blank(), axis.title.x = element_blank(),
axis.ticks.y = element_blank(),
strip.background = element_blank(), strip.text.x = element_blank(), theme_pubr(base_size = 20)),
Grade_barplot + theme(legend.justification = 0,
axis.ticks.y = element_blank(),
strip.background = element_blank(), strip.text.x = element_blank(), theme_pubr(base_size = 20)) +
rotate_x_text(angle = 45),
ncol = 1, nrow = 3, align = "v", heights = c(1.3,1,1.7)),
ncol = 2, widths = c(0.05,0.95))
Fig_1B

作者首先对所取非小细胞肺癌的样本进行临床信息进行展示(图1a-b)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

# Filter TLDS meta data
TLDS_metaData <- Sample_MetaData %>%
filter(Dataset == "TLDS")

# Keep columns that don't have all missing values
cols2keep <- colnames(TLDS_metaData)[(!colSums(apply(TLDS_metaData,2,is.na)) == nrow(TLDS_metaData))]
Table_S1 <- TLDS_metaData[, cols2keep]

# Mark control tissue sampled status
Control.samples <- as.character(Table_S1$PatientID)[Table_S1$Sample.type == "Control"]
Table_S1$Control.tissue.Sampled <- Table_S1$PatientID %in% Control.samples

# Finalizing Table_S1
Table_S1.final <- Table_S1[!Table_S1$Sample.type == "Control", ]
Table_S1.final <- Table_S1.final[, -c(20:21)]

# Mesenchymal cell processing
TLDS.combined <- SetIdent(TLDS.combined, value = "Cell.type")
TLDS.combined$Cell.type3 <- factor(TLDS.combined$Cell.type2,
levels = levels(TLDS.combined$Cell.type2),
labels = c(levels(TLDS.combined$Cell.type2)[1],
"Stroma",
levels(TLDS.combined$Cell.type2)[3:8])

# Figure 1C
Fig_1C <-
DimPlot(TLDS.combined, label = F, group.by = "Cell.type3")  &
theme_pubr(base_size = 10) &
theme(plot.title = element_blank(),
legend.background = element_rect(fill = "transparent",colour = NA),
panel.background = element_rect(fill = "transparent",colour = NA),
legend.position = "right", legend.key.size = unit(1.5, "pt"),
legend.justification = c(0,0.5)) &
scale_color_brewer(palette = "Paired",
labels = c("T cells", "Stroma", "Mono/Mac", "Epithelial", "B cells",
"Mast cells", "Endothelial", "AT1"), na.translate = F)
Fig_1C

作者进行了去批次、降维聚类、细胞注释,注释到常规的T细胞、B细胞、基质细胞(Stroma)等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

# Supplementary Figure 1A
# Calculate nearest neighbour z-scores on raw data
DefaultAssay(TLDS.combined) <- "RNA"
TLDS.combined <- NormalizeData(TLDS.combined)
TLDS.combined <- FindVariableFeatures(TLDS.combined)
TLDS.combined <- ScaleData(TLDS.combined, verbose = FALSE)
TLDS.combined <- RunPCA(TLDS.combined, npcs = 30, verbose = FALSE)
TLDS.combined <- FindNeighbors(TLDS.combined, reduction = "pca", dims = 1:30)
Batchtest_raw <- Batch.Quant(seurat_obj = TLDS.combined,

                           vars = c("PatientID"),

                           nPerm = 1000, assay_nn = "RNA")
# Calculate nn z-scores on integrated data
Batchtest_rpca <- Batch.Quant(seurat_obj = TLDS.combined,

                            vars = c("PatientID"),

                            nPerm = 1000, assay_nn = "integrated")

# Collate and plot results
Batch.test_res <- data.frame(
raw = Batchtest_raw$PatientID,
rpca  = Batchtest_rpca$PatientID

    )

SupplFig_1A <- reshape2::melt(Batch.test_res) %>%
ggplot(aes(x = variable, y = value)) +
theme_pubr(base_size = 10) +
geom_boxplot(outlier.size = 0.1) +
geom_hline(yintercept = 1.96, linetype = "dashed") +
rotate_x_text(angle = 45) +
theme(axis.title.x = element_blank()) +
scale_x_discrete(labels = c("Raw Data", "rPCA Integrated", "Clustering")) +
ylab("Intra-Patient nn overlap\n(Z-score)") +
ggforce::facet_zoom(ylim = c(-1, 7))
SupplFig_1A

# Supplementary Figure 1B
SupplFig_1B <-
TLDS.combined@meta.data %>%
drop_na(Cell.type3) %>%
ggplot(aes(x = orig.ident, fill = Cell.type3)) +
theme_pubr(base_size = 10) +
theme(plot.title = element_blank(),

            legend.title = element_blank(),

            legend.key.size = unit(3,"pt"),

            axis.text.x = element_blank(), legend.position = "right") +
facet_grid(~Sample.Subtype, scales = "free_x", space = "free_x") +
geom_bar(position = "fill", alpha = 0.9) +
scale_fill_brewer(palette = "Paired", labels = c("T cells", "Stroma", "Mono/Mac", "Epithelial", "B cells",

                                          "Mast cells", "Endothelial", "AT1")) +
xlab("Sample") + ylab("Fraction")
SupplFig_1B

# Supplementary Figure 1C&D
SupplFig_1CD <-
    ggarrange(
    TLDS.combined@meta.data %>%
    drop_na(Cell.type3) %>%
    ggplot(aes(x = Cell.type3, y = nFeature_RNA)) +
        theme_pubr(base_size = 10) +
        theme(legend.position = "none", axis.title.x = element_blank()) +
        geom_violin(aes(fill = Cell.type3), alpha = 0.9, scale = "width") +
        geom_jitter(alpha = 0.1, size = 0.1, width = 0.2) +
        scale_y_log10() +
        scale_fill_brewer(palette = "Paired") +
        rotate_x_text(angle = 45) +
        ylab("nGenes"),
TLDS.combined@meta.data %>%
        drop_na(Cell.type3) %>%
        ggplot(aes(x = Cell.type3, y = nCount_RNA)) +
        theme_pubr(base_size = 10) +
        theme(legend.position = "none", axis.title.x = element_blank()) +
        geom_violin(aes(fill = Cell.type3), alpha = 0.9, scale = "width") +
        geom_jitter(alpha = 0.1, size = 0.1, width = 0.2) +
        scale_y_log10() +
        scale_fill_npg() +
        rotate_x_text(angle = 45) +
        ylab("nCounts"),

      ncol = 2)
SupplFig_1CD# Supplementary Figure 1E
DefaultAssay(TLDS.combined) <- "RNA"
Markers <- c("TRBC2", "DCN", "LYZ", "KRT19", "CD79A", "KIT", "VWF", "AGER")
SupplFig_1E <- 
FeaturePlot(TLDS.combined, features = Markers, ncol = 4, reduction = "umap") &
theme_pubr(base_size = 10) &
theme(plot.title = element_text(face = "italic"), legend.position = "none")
SupplFig_1E

# Figure 1D
TLDS_Mesenchymal_seurat <- subset(TLDS.combined, idents = "Fibroblasts")
Fig_1D <- 
FeaturePlot(TLDS_Mesenchymal_seurat, c("MCAM", "RGS5", "ACTA2", "DPT"),
pt.size = 0.8, reduction = "umap") &
theme_pubr(base_size = 10) &
ylim(c(2.5, 10)) &
theme(legend.position = "none",
legend.justification = 0, legend.key.width = unit(2,"pt"), legend.key.height = unit(5, "pt"),
legend.background = element_blank(),
plot.title = element_text(face = "italic"))
Fig_1D

作者试图确定基质细胞簇是否同时包含成纤维细胞和壁细胞,使用壁细胞(MCAM和 RGS5)肌成纤维细胞(ACTA2)和成纤维细胞(DPT)marker基因进行观察后,可以看到表达存在差异。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

# Separating Mural cells and fibroblasts
DefaultAssay(TLDS_Mesenchymal_seurat) <- "RNA"
TLDS_Mesenchymal_seurat <- AddModuleScore(TLDS_Mesenchymal_seurat, features = Consensus_FibsvMural_sigs)
names(TLDS_Mesenchymal_seurat@meta.data)
TLDS_Mesenchymal_seurat$Fib_or_Mural <- "Undetermined"
TLDS_Mesenchymal_seurat$Fib_or_Mural[TLDS_Mesenchymal_seurat$Cluster1 > 0 &
TLDS_Mesenchymal_seurat$Cluster1 - TLDS_Mesenchymal_seurat$Cluster2 > 0.1] <- "Fibroblast"
TLDS_Mesenchymal_seurat$Fib_or_Mural[TLDS_Mesenchymal_seurat$Cluster2 > 0 &
TLDS_Mesenchymal_seurat$Cluster2 - TLDS_Mesenchymal_seurat$Cluster1 > 0.1] <- "Mural.cells"
TLDS_Mesenchymal_seurat$Fibrolast.Module.Score <- TLDS_Mesenchymal_seurat$Cluster1
TLDS_Mesenchymal_seurat$Mural.Module.Score <- TLDS_Mesenchymal_seurat$Cluster2
# Figure 1E-G: HCLA Mural cell score optimisation
Fig_1E <- 
Mural.v.Fibs_markers %>
ggplot(aes(x = avg_log2FC, y = -log10(p_val_adj), label = label, colour = p_val_adj < 0.01 & abs(avg_log2FC) > 0.5)) +
      geom_point(size = 0.8) +
      theme_pubr(base_size = 10) +
      theme(legend.position = "none") +
      ggrepel::geom_text_repel(size = 1.75, colour = "black", fontface = "italic", min.segment.length = 0, max.overlaps = 30) +
      scale_color_manual(values = c("grey70", "red")) +
      ylab("-log10(adj.P)") +
      xlab("Mural vs Fibroblast (log2[FC])")
Fig_1E

为了进一步区分这些细胞,随后使用已发表的人肺细胞图谱的scRNA-seq(HCLA)数据鉴定了人肺组织中成纤维细胞和壁细胞之间差异表达的基因,利用这些基因对壁细胞和纤维细胞有较好的区分效果,同时验证效果显示准确率为 99%。再运用到自己的数据上。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

# Separating Mural cells and fibroblasts (Filling NA)
HCLA.SS_muralSig_data$Fib_or_Mural[is.na(HCLA.SS_muralSig_data$Fib_or_Mural)] <- "Undetermined"

# Figure 1F: Plotting Mural vs Fibroblast Module Scores
Fig_1F <- 
HCLA.SS_muralSig_data %>
ggplot(aes(x = Mural.Cells.Module.Score,
y = Fibroblast.Module.Score, colour = Fib_or_Mural)) +
theme_pubr(base_size = 20) +
geom_point(size = 2) +
xlab("Mural Cells Module Score") +
ylab("Fibroblast Module Score") +
scale_colour_brewer(palette = "Dark2") +
theme(legend.position = "top", plot.title = element_blank(),
legend.key.height = unit(2, "pt"), legend.direction = "vertical",
legend.justification = 0.25, legend.background = element_blank(), legend.title = element_blank()) +
guides(colour = guide_legend(override.aes = list(size = 2)))
Fig_1F
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

# Adding custom cell classification labels
HCLA.SS_muralSig_data$free_annotation_merged2 <- factor(HCLA.SS_muralSig_data$free_annotation_merged,labels = c("Mural cells", "Fibroblasts", "Other"))# Figure 1G: Bar plot of cell classification
Fig_1G <- 
      HCLA.SS_muralSig_data %>
      ggplot(aes(x = free_annotation, fill = Fib_or_Mural)) +
      theme_pubr(base_size = 12) +
      geom_bar(position = "fill") +
      rotate_x_text(angle = 65) +
      theme(legend.key.size = unit(4, "pt")) +
      facet_grid(~free_annotation_merged2, scale = "free_x", space = "free_x") +
      scale_fill_brewer(palette = "Dark2", name = "Cell Classification") +
      guides(fill = guide_legend(title.position = "top", title.hjust = 0.5)) +
      ylab("Fraction") +
      xlab("Travaglini et al. Annotation")
Fig_1G
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

# Figure 1H-J
Fig_1HIJ <- 
ggarrange(
FeaturePlot(TLDS_Mesenchymal_seurat, c("Fibrolast.Module.Score"), pt.size = 1) &
        scale_color_viridis_c() &
        ylim(c(2.5, 10)) &
        theme_pubr(base_size = 7) &
        theme(legend.position = c(0, 0.9),
          legend.justification = 0,
          legend.key.width = unit(2, "pt"),
          legend.key.height = unit(5, "pt"),
          legend.background = element_blank()),
FeaturePlot(TLDS_Mesenchymal_seurat, c("Mural.Module.Score"), pt.size = 1) &
        scale_color_viridis_c() &
        ylim(c(2.5, 10)) &
        theme_pubr(base_size = 7) &
        theme(legend.position = c(0, 0.9),
          legend.justification = 0,
          legend.key.width = unit(2, "pt"),
          legend.key.height = unit(5, "pt"),
          legend.background = element_blank()),
DimPlot(TLDS_Mesenchymal_seurat, reduction = "umap",
          group.by = "Fib_or_Mural",
          label = F, repel = TRUE, pt.size = 1) &
        ylim(c(2.5, 10)) &
        theme_pubr(base_size = 5) &
        theme(legend.position = c(0,0.9), plot.title = element_blank(),
          legend.key.height = unit(2, "pt"), legend.justification = c(0, 0.5),
          legend.background = element_blank()) &
        scale_colour_brewer(palette = "Dark2") &
        guides(colour = guide_legend(override.aes = list(size = 2)))
Fig_1HIJ

以上是文章Figure1的复现情况,Figure1的数据是作者自测所得,证明了NSCLC中成纤维细胞存在异质性。下一节接着复现Figure2的内容。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BioOmics 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
手把手带你复现NC图表之Figure 2
非小细胞肺癌中存在的成纤维细胞与非癌性肺组织中确定的三个主要亚群一致,并且可能对ECM维持/重构进行差异调节。这些数据还表明,与NSCLC肿瘤的相互作用导致这些亚群中基因表达的显著变化,除了亚群特异性表型变化外,还持续涉及间质胶原的上调。此外,与对照肺成纤维细胞相比,非小细胞肺癌的myoCAF基因特征增加,而对照肺组织的iCAF基因特征增加。
生信技能树jimmy
2023/09/26
4000
手把手带你复现NC图表之Figure 2
手把手带你复现NC图表之Figure5
基于机器学习的scRNA-seq数据和mxIHC分类显示外膜和肌成纤维细胞在胰腺癌、结直肠癌和口腔癌中是保守的,而肺泡成纤维细胞是肺特异性的
生信技能树jimmy
2023/09/26
3690
手把手带你复现NC图表之Figure5
手把手带你复现NC图表之Figure 4
探究从肺泡和外膜成纤维细胞亚群(在对照组织中富集)到肌成纤维细胞(在肿瘤组织中富集)的分化过程,对scRNA-seq数据集进行轨迹推断。结果表明外膜和肺泡成纤维细胞可以作为独立的祖细胞,肌成纤维细胞可以从这些祖细胞转分化
生信技能树jimmy
2023/09/26
5060
手把手带你复现NC图表之Figure 4
手把手带你复现NC图表之Figure 3
多重IHC(mxIHC)和 CIBERSORT显示成纤维细胞亚群占据空间离散的小生境和不同的NSCLC组织亚型富集
生信技能树jimmy
2023/09/26
2730
手把手带你复现NC图表之Figure 3
scRNA分析| Seurat堆叠小提琴图不满足? 那就ggplot2 堆叠 各种元素
单细胞常见的可视化方式有DimPlot,FeaturePlot ,DotPlot ,VlnPlot 和 DoHeatmap几种 ,Seurat均可以实现,但文献中的图大多会精美很多。比如
生信补给站
2023/08/25
4.8K0
scRNA分析| Seurat堆叠小提琴图不满足?  那就ggplot2 堆叠 各种元素
美化你的单细胞各个亚群特异性高表达基因小提琴图
最近,郑州大学第一附属医院的史阳同学无私的分享了他对这些基础函数的改造,颜值说不上巅峰,但打败基础函数是没有问题的, 同时也算是抛砖引玉吧,希望广大生信技能树粉丝们都投稿分享自己的创作,投稿请发邮件到 jmzeng1314@163.com
生信技能树
2022/03/03
2.8K0
美化你的单细胞各个亚群特异性高表达基因小提琴图
手把手带你复现NC之Figure7
箱形图显示高/中分化LUAD肿瘤与低分化LUAD肿瘤成纤维细胞亚群的相对丰度,通过CIBERSORTx测量
生信技能树jimmy
2023/09/26
3200
手把手带你复现NC之Figure7
漂亮的单细胞多组火山图
《Single-cell transcriptome analysis reveals the association between histone lactylation and cisplatin resistance in bladder cancer 》
用户11414625
2024/12/20
1260
漂亮的单细胞多组火山图
文献组图
追风少年i
2025/01/07
990
文献组图
【单细胞中性粒】慢性病毒性肝炎(复现fig1)
这里我画的确实不咋美观呢【此外,似乎原文的marker不是按照top基因来选的?】
生信菜鸟团
2024/06/11
1240
【单细胞中性粒】慢性病毒性肝炎(复现fig1)
文献复现-单细胞揭示新辅助治疗后NSCLC的免疫微环境变化
文章在这:Tumor microenvironment remodeling after neoadjuvant immunotherapy in non-small cell lung cancer revealed by single-cell RNA sequencing 方法:来自3名治疗前和12名接受新辅助PD-1阻断联合化疗的非小细胞肺癌(NSCLC)患者的~92,000个单细胞的转录组。根据病理反应将12个治疗后样本分为两组:MPR(n = 4)和非MPR(n = 8)。
生信菜鸟团
2023/09/09
1.7K0
文献复现-单细胞揭示新辅助治疗后NSCLC的免疫微环境变化
从空间聚类的角度看结直肠癌肝转移的细胞异质性
结直肠癌(CRC)是一种恶性肿瘤,其中部分CRC存在转移性,尤其是肝转移,这也是预后较差的一个指标。转移过程涉及多个步骤,包括癌细胞从原发肿瘤部位逃逸、在血流中存活、在远处部位播散,最终生长为转移性肿瘤。癌细胞和基质细胞之间的交流在促进转移扩散中起着至关重要的作用。这种交流通过分泌细胞因子、生长因子和蛋白酶来重塑肿瘤微环境(TME)。TME是一种复杂的细胞组成,包括不同群体的成纤维细胞和免疫细胞,所有这些细胞在癌症逃避、转移和对治疗的反应中发挥重要作用。所以时空组学的研究就在于发现两种肿瘤之间的区别。
追风少年i
2023/06/28
4031
从空间聚类的角度看结直肠癌肝转移的细胞异质性
你还缺scRNA-seq的workflow吗?
之前曾老师给我看了一位在pipebio工作的生信工程师Roman Hillje的scRNA-seq的workflow,今天整理一下分享给大家。
生信菜鸟团
2024/07/31
4300
你还缺scRNA-seq的workflow吗?
手把手带你复现NC图表之Figure6
为了检测肌成纤维细胞丰度作为LUAD患者分层预后生物标志物的可能性,使用TCGA-LUAD数据集测试
生信技能树jimmy
2023/09/26
3860
手把手带你复现NC图表之Figure6
跟着Nature学作图 Figure3:R语言ggplot2 堆积柱形图和簇状柱形图
https://www.nature.com/articles/s41586-022-05275-y
用户7010445
2023/01/06
6310
跟着Nature学作图 Figure3:R语言ggplot2 堆积柱形图和簇状柱形图
单细胞亚群绝对数量和相对比例的探索
前面我在:单细胞转录组降维聚类分群过滤基因和过滤细胞的区别 介绍了文献,题目为“Revealing the transcriptional heterogeneity of organ-specific metastasis in human gastric cancer using single-cell RNA Sequencing”。通讯作者是浙江大学的范骁辉教授,于2022年发表在Clin Transl Med杂志(IF=10.6),这个胃癌单细胞数据集GSE163558的单细胞转录组在降维聚类分群后,就可以看细胞比例的变化情况。
生信技能树
2024/11/21
1600
单细胞亚群绝对数量和相对比例的探索
R语言ggplot2画棒棒糖图展示KEGG富集分析结果
https://www.nature.com/articles/s41588-024-01683-0
用户7010445
2024/04/15
3700
R语言ggplot2画棒棒糖图展示KEGG富集分析结果
跟着Nature学作图:R语言ggplot2频率分布直方图
https://www.nature.com/articles/s41586-022-04808-9#MOESM8
用户7010445
2023/01/06
1.3K0
跟着Nature学作图:R语言ggplot2频率分布直方图
R-ggplot2 基础图表绘制-散点图示例
前两期分别介绍了R-ggplot2 基础散点图R-ggplot2 基础图表绘制-散点图和 Python-seaborn基础散点图Python-seaborn 基础图表绘制-散点图 的绘制方法,较为系统的介绍了绘图的基础语法,也为一些绘图基础不是很好的小伙伴提供了参考方法,基础的讲过了,接下里我们将示例应用了啊(也是这个系列推文的流程啊:基础+示例演示),只为让你更好的掌握绘图知识点。本期的推文就使用R-ggplot2进行一个较为经典的图表仿制,也是自己一直想制作的图表。主要涉及的知识点如下:
DataCharm
2021/02/22
6500
R-ggplot2 基础图表绘制-散点图示例
基于泛癌scRNAseq的T细胞图谱整合分析
生信技能树jimmy
2023/09/26
3940
基于泛癌scRNAseq的T细胞图谱整合分析
推荐阅读
相关推荐
手把手带你复现NC图表之Figure 2
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验