{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "77e28934",
   "metadata": {},
   "source": [
    "---\n",
    "title: 细胞占比差异分析：不同分组间的细胞比例箱线图绘制\n",
    "author: SeekGene\n",
    "date: 2026-01-29\n",
    "tags:\n",
    "  - 3' 转录组\n",
    "  - 5' + 免疫组库\n",
    "  - ATAC + RNA 双组学\n",
    "  - FFPE 单细胞转录组\n",
    "  - Notebooks\n",
    "  - 全序列转录组\n",
    "  - 分析指南\n",
    "  - 甲基化 + RNA 双组学\n",
    "  - 空间转录组\n",
    "  - 细胞注释\n",
    "---\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f76a7624-4a9b-4825-bbfc-4297c9984924",
   "metadata": {
    "tags": []
   },
   "source": [
    "# 细胞占比差异分析：不同分组间的细胞比例箱线图绘制"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9437a2ea-96d8-480b-ad74-67f9e0ad8391",
   "metadata": {},
   "source": [
    "## 分组比例图"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d3be842c-2f1f-41d6-a6f8-99205c698176",
   "metadata": {},
   "source": [
    "## 需要修改的参数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3f0d21e3-1c39-47d9-a705-a77410288b8a",
   "metadata": {},
   "source": [
    "Seurat.ob 和 meta 读取的文件 data 后的 AYxxx 可以根据自己的注释流程进行修改"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "3464ab9a-c125-4029-a560-b488b28ccba9",
   "metadata": {
    "tags": [],
    "vscode": {
     "languageId": "r"
    }
   },
   "outputs": [],
   "source": [
    "seurat.ob = readRDS(\"data/AY1734579787477/input.rds\")\n",
    "meta <- read.table(\"data/AY1734579787477/meta.tsv\", header = T, sep = \"\\t\", check.names = F)\n",
    "seurat.ob <- AddMetaData(seurat.ob, meta)\n",
    "DefaultAssay(seurat.ob) = \"RNA\""
   ]
  },
  {
   "cell_type": "markdown",
   "id": "40464065-a113-4873-b8f9-67bbe2fa6ee9",
   "metadata": {},
   "source": [
    "基于细胞样本占比进行的校验统计，百分比是统计每个细胞类型在样本中的占比，cluster_obj 需要输入所有的细胞类型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "cac93f51-82dc-45eb-9202-ecd68ae613b5",
   "metadata": {
    "tags": [],
    "vscode": {
     "languageId": "r"
    }
   },
   "outputs": [],
   "source": [
    "prefix=\"Myeloid\" # 保存图片名称前缀\n",
    "group_name=\"Tissue\"\n",
    "groups_com = \"AdjacentvsTumor\"\n",
    "cluster_name = \"CellAnnotation\"\n",
    "cluster_obj = \"Monocyte,Macrophage,DC\" #注意排序\n",
    "sample_name=\"Sample\"\n",
    "outdir=\"./\"\n",
    "dosave_fig=\"F\" # 是否保存图片，只想看单个组的结果可以设置为 F，取消必须写 F\n",
    "dogroup_test=\"T\" # 是否增加组间校验，支持两组，两组以上可以取消,取消必须写 F"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b9ee889-e00f-445d-a2b1-3ff1921c66c2",
   "metadata": {},
   "source": [
    "## 运行代码及图片展示"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "506ef228-8c7a-426d-b08f-fc4a099ba8ca",
   "metadata": {},
   "source": [
    "非必要无需修改"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "b2f3a601-3815-4631-bf37-711d46467e42",
   "metadata": {
    "tags": [],
    "vscode": {
     "languageId": "r"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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hf7gpZdeKnagX3n0bsnJyb169bpz546I9O3b98CBA2lpaXFxcV999VXt2rXfe++9w4cPl7WM2rVrjx49esOGDWfPnk1MTIyNjT148OCMGTNcXFx0Ot3UqVP1q4QY02q1/fr1+/nnn0XE3d19zpw5J0+evHnzZmxs7O+//z59+vT69esb9y8qKurfv//27dtFpGXLlitXroyOjk5KSjpz5sz7779va2ubl5f34osv3msdk3HjxkVERPTq1eunn36Kjo4+d+7cZ5995ujoKCLbtm1bt26doeeIESOuXbs2ZcoU/cfvv//+mpFt27aV9YtTjCmnqERHR48dO3bXrl3GjR06dDD+OHny5MWLF4vI77//3rVrVxPeHQAAAABQTWh1uue37sgt0K7oFerpYL8vNn70zt8LtEUvNG1skvGzs7M3btwoIt7e3oZpIE899ZSPj09cXNzGjRuXLFmiX3jC2IwZM27fvi0ir7/++rJly/SNzs7Oo0aN6t69e9u2bUvfEeZurVu3jouLK7YKho+PT4cOHUaPHv34448nJCR8+OGHoaGhxh0WLFiwd+9eEWnevPmePXvq1KljfG3Xrl1nzZqVlpZmaPziiy/0KcmQIUNWrticKKkAACAASURBVFxpafl3UODu7h4YGPj000937do1Pz9//Pjxhw4durvIyMjIGTNmfPTRR4aWZs2aNW/ePCwsTESWLVs2dOjQMj11uZnsDY5du3aFhIQUSzfuNnHiRAsLCxFZs2aNqW4NAAAAAHiE5Wi1aZoC43/W/xV9MSXt50F9ejzmG+he662QoPndO0/auz85X1OsZ/kmsGzatCkzM1NEhgwZov8dVkRUKtWQIUPkvxM3il2SmZm5du1aEfHw8Jg/f36xs35+fuWYouLg4HCvNT69vLwmTJggIgcPHjTeIlej0Xz22WciYmlpuXHjRuN0w0CtVhuWGi0sLNTvQePl5bV8+XJDumHQvn17/foghw8fPnfu3N2jtWrV6sMPPyzW+PTTT7dq1UpEjh8/np+f/0BPW2GmeYPj4sWLzz33XFZWloj4+PgMHz68ZcuW48aNM56Bo1evXr0OHTocOHBg586dOp2ulHVZAAAAAAAQkcXR1xZHXzNuSUhI6Ohd19nGxtDSq+Fjr/2y55m9h+9OBMrxi6dhEophWorh4yeffKLvMGLECONThw4dys7O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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 600,
       "width": 720
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 筛选数据\n",
    "if (groups_com != \"\"){\n",
    "    group_list=unlist(strsplit(groups_com,\"vs\"))\n",
    "    sub = subset(seurat.ob,subset = !!sym(group_name) %in% group_list)\n",
    "}\n",
    "if (cluster_obj != \"\"){\n",
    "    cluster_list = unlist(strsplit(cluster_obj,\",\"))\n",
    "    sub = subset(seurat.ob,subset = !!sym(cluster_name) %in% cluster_list)\n",
    "}\n",
    "\n",
    "# 计算每个细胞类型在各样本中的比例\n",
    "cellratio = prop.table(table(sub@meta.data[[cluster_name]],sub@meta.data[[sample_name]]),margin = 2)\n",
    "cellratio <- data.frame(cellratio)\n",
    "cellper <- dcast(cellratio,Var2~Var1,value.var = \"Freq\")\n",
    "rownames(cellper) <- cellper[,1]\n",
    "#cellper <- cellper[,-1]\n",
    "\n",
    "# 添加分组信息\n",
    "samples <- sub@meta.data %>% select(!!sym(sample_name),!!sym(group_name)) %>% distinct()\n",
    "colnames(samples) <- c(\"Sample\",\"Group\")\n",
    "rownames(samples) <- samples$Sample\n",
    "cellper$Sample <- samples[rownames(cellper),\"Sample\"]\n",
    "cellper$Group <- samples[rownames(cellper),\"Group\"]\n",
    "\n",
    "# 画图\n",
    "pplist = list()\n",
    "for (group_ in cluster_list){\n",
    "    cellper_  = cellper %>% select(one_of(c('Sample','Group',group_)))\n",
    "    colnames(cellper_) = c('Sample','Group','percent')\n",
    "    cellper_$percent = as.numeric(cellper_$percent)\n",
    "    cellper_ <- cellper_ %>% group_by(Group) %>% mutate(upper=quantile(percent,0.75),lower=quantile(percent,0.25),mean=mean(percent),median=median(percent))\n",
    "    cellper1 = cellper_ %>% filter(Group %in% group_list)\n",
    "    cellper1$Group = factor(cellper1$Group,levels = group_list)\n",
    "    pp1 = ggplot(cellper1,aes(x=Group,y=percent,fill=Group)) +\n",
    "        geom_boxplot()+theme_bw()+\n",
    "        geom_jitter(shape = 21,aes(fill=Group),width = 0.25,height = 0) + \n",
    "        theme(axis.text = element_text(size = 14),axis.title = element_text(size = 16),legend.text = element_text(size = 18),\n",
    "              legend.title = element_text(size = 20),plot.title = element_text(size = 18,face = 'plain'),panel.grid=element_blank()) + \n",
    "        labs(title = group_,y='Percentage')\n",
    "    if (dogroup_test != \"F\"){\n",
    "        labely = max(cellper1$percent)\n",
    "        my_comparisons <- strsplit(groups_com, split = \"vs\")\n",
    "        pp1 = pp1 + stat_compare_means(comparisons = my_comparisons,size = 3,method = \"t.test\")\n",
    "    }\n",
    "    pplist[[group_]] = pp1\n",
    "}\n",
    "\n",
    "if (length(pplist) >1){\n",
    "    adjust_size <- function(n_plots, base_width = 15, base_height = 10) {\n",
    "        ncol <- ceiling(sqrt(n_plots))\n",
    "        nrow <- ceiling(n_plots / ncol)\n",
    "        width <- base_width * ncol / 3 +2\n",
    "        height <- base_height * nrow / 2 \n",
    "        list(width = width, height = height)\n",
    "    }\n",
    "    \n",
    "    remove_x_axis <- function(p) {\n",
    "        p + theme(axis.title.x = element_blank(),axis.text.x = element_blank(),axis.ticks.x = element_blank(),axis.title.y = element_blank())\n",
    "    }\n",
    "    \n",
    "    y_title <- ggplot() +\n",
    "        labs(y = \"Percent(%)\") + \n",
    "        theme(\n",
    "        plot.margin = margin(0, 0, 0, 10), \n",
    "        axis.title.x = element_blank(), \n",
    "        axis.text.x = element_blank(), \n",
    "        axis.ticks.x = element_blank(), \n",
    "        axis.title.y = element_text(angle = 90, hjust = 0.5), \n",
    "        axis.text.y = element_blank(), \n",
    "        axis.ticks.y = element_blank(), \n",
    "        panel.background = element_blank(), \n",
    "        panel.grid = element_blank(),\n",
    "        axis.line = element_blank() ,axis.title = element_text(size = 20)\n",
    "        )\n",
    "    \n",
    "    n_plots <- length(pplist)\n",
    "    ncol <- ceiling(sqrt(n_plots)) \n",
    "    nrow <- ceiling(n_plots / ncol) \n",
    "    sizes <- adjust_size(n_plots)\n",
    "    pplist_modified <- lapply(pplist, remove_x_axis)\n",
    "    pplist_no_legend <- lapply(pplist_modified, function(p) p + theme(legend.position=\"none\"))\n",
    "    combined_plot <- plot_grid(plotlist = pplist_no_legend, ncol = ncol, align = 'hv')\n",
    "    final_plot <- plot_grid(y_title,combined_plot, get_legend(pp1), rel_widths = c(0.1,1, 0.2),nrow = 1)\n",
    "    if (dosave_fig != \"F\") {\n",
    "        ggsave(paste0(outdir,\"/\",prefix,\"_\",groups_com,\"_group_cellratio.png\"),final_plot,width = sizes$width, height = sizes$height,type=\"cairo-png\")\n",
    "        ggsave(paste0(outdir,\"/\",prefix,\"_\",groups_com,\"_group_cellratio.pdf\"),final_plot,width = sizes$width, height = sizes$height)\n",
    "    }\n",
    "}\n",
    "options(repr.plot.height=sizes$height, repr.plot.width=sizes$width)\n",
    "print(final_plot)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d3f392db-99dd-4c20-8a65-ae8acf407daf",
   "metadata": {},
   "source": [
    "## 多组循环出图"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ce9b10ae-e976-4625-9b6e-b52a5c76b963",
   "metadata": {},
   "source": [
    "## 定义单组绘图函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "9fbfcfbd-1e2d-4555-88ed-f14e3ac48730",
   "metadata": {
    "tags": [],
    "vscode": {
     "languageId": "r"
    }
   },
   "outputs": [],
   "source": [
    "cellration_barbox <- function(seurat.ob,prefix,group_name,groups_com,cluster_name,cluster_obj,sample_name,outdi,dosave_fig,dogroup_test){\n",
    "    # 筛选数据\n",
    "    if (groups_com != \"\"){\n",
    "        group_list=unlist(strsplit(groups_com,\"vs\"))\n",
    "        sub = subset(seurat.ob,subset = !!sym(group_name) %in% group_list)\n",
    "    }\n",
    "    if (cluster_obj != \"\"){\n",
    "        cluster_list = unlist(strsplit(cluster_obj,\",\"))\n",
    "        sub = subset(seurat.ob,subset = !!sym(cluster_name) %in% cluster_list)\n",
    "    }\n",
    "\n",
    "    # 计算每个细胞类型在各样本中的比例\n",
    "    cellratio = prop.table(table(sub@meta.data[[cluster_name]],sub@meta.data[[sample_name]]),margin = 2)\n",
    "    cellratio <- data.frame(cellratio)\n",
    "    cellper <- dcast(cellratio,Var2~Var1,value.var = \"Freq\")\n",
    "    rownames(cellper) <- cellper[,1]\n",
    "    #cellper <- cellper[,-1]\n",
    "\n",
    "    # 添加分组信息\n",
    "    samples <- sub@meta.data %>% select(!!sym(sample_name),!!sym(group_name)) %>% distinct()\n",
    "    colnames(samples) <- c(\"Sample\",\"Group\")\n",
    "    rownames(samples) <- samples$Sample\n",
    "    cellper$Sample <- samples[rownames(cellper),\"Sample\"]\n",
    "    cellper$Group <- samples[rownames(cellper),\"Group\"]\n",
    "\n",
    "    # 画图\n",
    "    pplist = list()\n",
    "    for (group_ in cluster_list){\n",
    "        cellper_  = cellper %>% select(one_of(c('Sample','Group',group_)))\n",
    "        colnames(cellper_) = c('Sample','Group','percent')\n",
    "        cellper_$percent = as.numeric(cellper_$percent)\n",
    "        cellper_ <- cellper_ %>% group_by(Group) %>% mutate(upper=quantile(percent,0.75),lower=quantile(percent,0.25),mean=mean(percent),median=median(percent))\n",
    "        cellper1 = cellper_ %>% filter(Group %in% group_list)\n",
    "        cellper1$Group = factor(cellper1$Group,levels = group_list)\n",
    "        pp1 = ggplot(cellper1,aes(x=Group,y=percent,fill=Group)) +\n",
    "            geom_boxplot()+theme_bw()+\n",
    "            geom_jitter(shape = 21,aes(fill=Group),width = 0.25,height = 0) + \n",
    "            theme(axis.text = element_text(size = 14),axis.title = element_text(size = 16),legend.text = element_text(size = 18),\n",
    "                  legend.title = element_text(size = 20),plot.title = element_text(size = 18,face = 'plain'),panel.grid=element_blank()) + \n",
    "            labs(title = group_,y='Percentage')\n",
    "        if (dogroup_test != \"F\"){\n",
    "            labely = max(cellper1$percent)\n",
    "            my_comparisons <- strsplit(groups_com, split = \"vs\")\n",
    "            pp1 = pp1 + stat_compare_means(comparisons = my_comparisons,size = 3,method = \"t.test\")\n",
    "        }\n",
    "        pplist[[group_]] = pp1\n",
    "    }\n",
    "\n",
    "    if (length(pplist) >1){\n",
    "        adjust_size <- function(n_plots, base_width = 15, base_height = 10) {\n",
    "            ncol <- ceiling(sqrt(n_plots))\n",
    "            nrow <- ceiling(n_plots / ncol)\n",
    "            width <- base_width * ncol / 3 +2\n",
    "            height <- base_height * nrow / 2 \n",
    "            list(width = width, height = height)\n",
    "        }\n",
    "\n",
    "        remove_x_axis <- function(p) {\n",
    "            p + theme(axis.title.x = element_blank(),axis.text.x = element_blank(),axis.ticks.x = element_blank(),axis.title.y = element_blank())\n",
    "        }\n",
    "\n",
    "        y_title <- ggplot() +\n",
    "            labs(y = \"Percent(%)\") + \n",
    "            theme(\n",
    "            plot.margin = margin(0, 0, 0, 10), \n",
    "            axis.title.x = element_blank(), \n",
    "            axis.text.x = element_blank(), \n",
    "            axis.ticks.x = element_blank(), \n",
    "            axis.title.y = element_text(angle = 90, hjust = 0.5), \n",
    "            axis.text.y = element_blank(), \n",
    "            axis.ticks.y = element_blank(), \n",
    "            panel.background = element_blank(), \n",
    "            panel.grid = element_blank(),\n",
    "            axis.line = element_blank() ,axis.title = element_text(size = 20)\n",
    "            )\n",
    "\n",
    "        n_plots <- length(pplist)\n",
    "        ncol <- ceiling(sqrt(n_plots)) \n",
    "        nrow <- ceiling(n_plots / ncol) \n",
    "        sizes <- adjust_size(n_plots)\n",
    "        pplist_modified <- lapply(pplist, remove_x_axis)\n",
    "        pplist_no_legend <- lapply(pplist_modified, function(p) p + theme(legend.position=\"none\"))\n",
    "        combined_plot <- plot_grid(plotlist = pplist_no_legend, ncol = ncol, align = 'hv')\n",
    "        final_plot <- plot_grid(y_title,combined_plot, get_legend(pp1), rel_widths = c(0.1,1, 0.2),nrow = 1)\n",
    "        if (dosave_fig != \"F\") {\n",
    "            ggsave(paste0(outdir,\"/\",prefix,\"_\",groups_com,\"_group_cellratio.png\"),final_plot,width = sizes$width, height = sizes$height,type=\"cairo-png\")\n",
    "            ggsave(paste0(outdir,\"/\",prefix,\"_\",groups_com,\"_group_cellratio.pdf\"),final_plot,width = sizes$width, height = sizes$height)\n",
    "        }\n",
    "    }\n",
    "\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8aeb0520-b80b-4b06-ab29-0ff3b9d41b23",
   "metadata": {},
   "source": [
    "## 改参数存图片"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "06664440-bfd8-48e7-8a9a-e77d31dca3fd",
   "metadata": {
    "tags": [],
    "vscode": {
     "languageId": "r"
    }
   },
   "outputs": [],
   "source": [
    "prefix=\"Myeloid\" # 保存图片名称前缀\n",
    "group_name=\"Tissue\"\n",
    "cluster_name = \"CellAnnotation\"\n",
    "cluster_obj = \"Monocyte,Macrophage,DC\" #注意排序\n",
    "sample_name=\"Sample\"\n",
    "outdir=\"./\"\n",
    "dosave_fig=\"T\" # 是否保存图片，只想看单个组的结果可以设置为 F，取消必须写 F\n",
    "dogroup_test=\"T\" # 是否增加组间校验，支持两组，两组以上可以取消,取消必须写 F\n",
    "groups_coms=\"AdjacentvsTumor,TumorvsAdjacent\"\n",
    "\n",
    "# 下面无需修改\n",
    "groups_coms_list=unlist(strsplit(groups_coms,\",\"))\n",
    "for (groups_com in groups_coms_list){\n",
    "    cellration_barbox(seurat.ob,prefix,group_name,groups_com,cluster_name,cluster_obj,sample_name,outdi,dosave_fig,dogroup_test)\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "aeed68d5-0d36-4367-a8db-53a6dcf5fe25",
   "metadata": {},
   "source": [
    "会在 outdir 指定路径下存储相关图片"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bb0c846e",
   "metadata": {},
   "source": [
    "<div align=\"center\">\n",
    "  <img src=\"./cell-type-proportion-box-plot.src/ef9c03dd-0062-4215-97db-ffbe55cece79.png\" width=\"40%\" />\n",
    "</div>"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "cellchat",
   "language": "R",
   "name": "cellchat"
  },
  "language_info": {
   "codemirror_mode": "r",
   "file_extension": ".r",
   "mimetype": "text/x-r-source",
   "name": "R",
   "pygments_lexer": "r",
   "version": "4.3.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
