当前位置: 首页 > news >正文

细胞周期分析

在单细胞测序分析中,植物(如苜蓿、拟南芥)的细胞周期分析与动物的主要区别在于**标志基因(Marker Genes)**的不同。由于 Seurat 内置的cc.genes是针对人类设计的,植物研究需要通过同源比对或查阅文献来构建个性化的基因集。

以下是根据你提供的代码总结的植物细胞周期分析思路与代码全集。


01. 目的与逻辑

目的
  1. 鉴定状态:识别每个细胞处于周期的哪个阶段(G1、S、G2M)。
  2. 消除噪音:细胞周期差异往往是异质性的主要来源。在关注细胞类型本身时,通过“回归(Regress out)”消除周期对聚类的干扰。
  3. 对比分析:比较不同处理(如 CK vs CD)下,各组织细胞的增殖活力差异。
逻辑步骤
  1. 同源映射:从拟南芥(经典模式植物)中提取已知的细胞周期标志基因,通过Blastp映射到目标物种(如苜蓿)上。
  2. 基因集构建:将映射后的基因分为 S 期和 G2M 期列表。
  3. 评分赋值:利用CellCycleScoring计算每个细胞的 S.Score 和 G2M.Score,并判定 Phase。
  4. 可视化验证:通过 PCA 观察周期基因是否能分开细胞,通过 UMAP 查看不同处理组的分布。
  5. 模块分析:利用AddModuleScore细化观察 G1、S、G2、M 四个阶段的特征表达。
  6. 下游回归:在ScaleData时移除周期影响,使下游分析聚焦于细胞类型。

02. 全部代码(整理版)

# 1. 环境准备与同源基因映射library(Seurat)library(tidyverse)library(patchwork)# 加载 Blastp 映射表并清理 IDblast_res<-read.table("ref_tar.m8.solar.cor.idAdd.rbh",header=FALSE)blast_res$V1<-gsub("\\.[0-9]+_ref$","",blast_res$V1)# 拟南芥 IDblast_res$V2<-gsub("\\.[^.]+$","",blast_res$V2)# 苜蓿 IDgene_map<-blast_res%>%select(At_ID=V1,Ms_ID=V2)%>%distinct(At_ID,.keep_all=TRUE)# 拟南芥阶段基因集 (拟南芥 -> 苜蓿)ath_genes_list<-list(S=c("AT2G28740","AT3G27060"),G2=c("AT1G76540","AT1G44110"),M=c("AT4G31840","AT3G25980"),G1=c("AT4G02060","AT2G29570","AT5G67260","AT5G54600","AT4G31700"))# 映射转换s_genes<-CaseMatch(search=gene_map$Ms_ID[match(ath_genes_list$S,gene_map$At_ID)],match=rownames(muxu))g2_genes<-CaseMatch(search=gene_map$Ms_ID[match(ath_genes_list$G2,gene_map$At_ID)],match=rownames(muxu))m_genes<-CaseMatch(search=gene_map$Ms_ID[match(ath_genes_list$M,gene_map$At_ID)],match=rownames(muxu))g1_genes<-CaseMatch(search=gene_map$Ms_ID[match(ath_genes_list$G1,gene_map$At_ID)],match=rownames(muxu))g2m_combined<-c(g2_genes,m_genes)# 2. 细胞周期评分与判定muxu<-CellCycleScoring(muxu,s.features=s_genes,g2m.features=g2m_combined)# 3. 可视化:CK 与 CD 对比 (Phase 分布)draw_phase_plot<-function(obj,ident,title_prefix){DimPlot(subset(obj,orig.ident==ident),group.by="Phase",order=TRUE,cols=c("G1"="#32CD32","S"="#00BFFF","G2M"="#FF4500","Undecided"="#80808044"))+labs(title=paste0(title_prefix,"_Phase"))+theme(plot.title=element_text(hjust=0.5))}p1<-draw_phase_plot(muxu,"CK","CK")p2<-draw_phase_plot(muxu,"CD","CD")(p1|p2)+plot_annotation(title="Cell Cycle Phase Comparison")# 4. 阶段模块评分 (AddModuleScore)phase_list<-list(S=s_genes,G2=g2_genes,M=m_genes,G1=g1_genes)for(p_nameinnames(phase_list)){feat_name<-paste0(p_name,"_mod")muxu<-AddModuleScore(muxu,features=list(phase_list[[p_name]]),name=feat_name)# 绘制 FeaturePlot 并保存 (代码略,参考前述 FeaturePlot 拼接逻辑)}# 5. 回归细胞周期影响muxu_regressed<-ScaleData(muxu,vars.to.regress=c("S.Score","G2M.Score"))# 回归后的 PCA 验证muxu_regressed<-RunPCA(muxu_regressed,features=c(s_genes,g2m_combined))DimPlot(muxu_regressed,reduction="pca",group.by="Phase")

03. 代码解读

1. 核心映射逻辑 (convert_list&CaseMatch)
  • 同源转换:通过match函数将拟南芥的 AGI 编号转换为苜蓿的基因 ID。这是植物非模式生物分析的关键。
  • CaseMatch:Seurat 提供的函数,用于确保提取的基因确实存在于当前单细胞对象的矩阵中(处理大小写和拼写)。
2. 评分核心 (CellCycleScoring)
  • 该函数计算两个得分:S.ScoreG2M.Score
  • 判定标准:如果两个得分均 < 0,细胞被判定为 G1 期;否则,哪个得分高就判定为哪个期。
  • 注意:植物中 G1 基因虽然多,但 Seurat 默认只使用 S 和 G2M 基因来判定这三个阶段。
3. 细分阶段研究 (AddModuleScore)
  • CellCycleScoring只能粗略给出三个阶段。通过AddModuleScore并输入具体的 G2、M、G1 基因列表,可以更精细地观察。
  • 例如,在你的循环代码中,p_name(如 “M_phase”)被计算为一个ModuleScore。这在观察细胞是否卡在有丝分裂期(M期)非常有用。
4. 颜色与可视化控制 (cols&patchwork)
  • #80808044:这是带 Alpha 通道的透明灰色。用于Undecided或背景细胞,使视觉重心集中在活跃分裂的细胞上。
  • order = TRUE:在FeaturePlotDimPlot中非常重要,它确保高表达(或关键相位)的细胞被画在顶层,不会被大量 G1 期的细胞遮盖。
5. 线性回归 (vars.to.regress)
  • ScaleData步骤中加入S.ScoreG2M.Score
  • 物理意义:模型会计算每个基因表达量与周期得分的相关性,并扣除这部分贡献。回归后的 PCA 图中,细胞应按类型聚类,而不再按周期阶段(G1/S/G2M)呈圆环状分布。
http://www.jsqmd.com/news/287109/

相关文章:

  • Emotion2Vec+ Large输出目录结构详解,结果文件一目了然
  • macOS鼠标优化专业级调校指南:释放第三方鼠标全部潜能
  • 实测Qwen-Image-Layered的图层拆解能力,细节惊人
  • 批量处理怎么做?手把手教你写Live Avatar自动化脚本
  • Qwen3-0.6B GPU资源浪费?动态批处理优化实战教程
  • Qwen3-Embedding-0.6B助力智能客服语义理解升级
  • 让老Mac重获新生:OpenCore Legacy Patcher全方位使用指南
  • Mac Mouse Fix:让第三方鼠标在macOS上性能提升200%的驱动增强工具
  • 探索Dify Workflow:可视化界面开发新范式
  • 突破macOS鼠标限制:Mac Mouse Fix焕新第三方设备体验全解析
  • PDF工具箱:提升文档处理效率的全方位解决方案(办公人士必备)
  • NewBie-image-Exp0.1 vs Pixiv Diffusion:开源动漫模型全方位对比
  • 7个秘诀高效打造颜值翻倍的知识管理软件:界面美化与效率提升全指南
  • 零代码玩转YOLO26:官方镜像快速上手指南
  • 金融合同解析实战:MinerU镜像+GLM-4V多模态模型落地应用
  • Z-Image-Turbo水印添加功能:版权保护部署实战案例
  • 自然语言驱动图像分割|基于sam3提示词引导万物分割模型快速实践
  • ComfyUI 3D生成工作流实战指南:从草图到模型的落地解决方案
  • Qwen2.5-0.5B如何备份?模型持久化存储方案
  • 在线PDF处理工具全攻略:零基础也能高效编辑PDF文档
  • 3步打造高效文献管理:沉浸式Zotero插件使用指南
  • GPEN镜像支持多种输入输出,灵活又方便
  • 革新性文献进度追踪工具:Ethereal Style for Zotero全攻略
  • 如何用Dify Workflow实现零代码开发:可视化Web界面构建指南
  • 炉石插件新选择:HsMod的3大颠覆性功能与零门槛安装攻略
  • 还在为格式粘贴烦恼?这款工具让学术写作效率提升10倍
  • 如何快速获取国家中小学智慧教育平台电子课本:实用操作指南
  • 有哪些游戏服务器框架适合新手使用?
  • 突破效率与隐私限制:免费离线OCR工具重塑图片文字提取体验
  • 鸣潮智能辅助工具:提升游戏效率的场景化解决方案