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

湖南省建设信息网站网站建设厃金手指花总十一

湖南省建设信息网站,网站建设厃金手指花总十一,茂名网站建设方案推广,番禺区移动端网站制作下面是一份从 Seurat 分析流程转到Scanpy 分析流程的简要笔记,涵盖了从数据读入到细胞注释的主要环节,并附上常用函数的Seurat vs. Scanpy 对照表。该笔记既可作为工作流程指南,也能在两个分析平台之间快速切换和比较。 Seurat → Scanpy 分析…

下面是一份从 Seurat 分析流程转到Scanpy 分析流程的简要笔记,涵盖了从数据读入到细胞注释的主要环节,并附上常用函数的Seurat vs. Scanpy 对照表。该笔记既可作为工作流程指南,也能在两个分析平台之间快速切换和比较。


Seurat → Scanpy 分析流程笔记

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1. 数据读入

Seurat 中的数据读入(回顾)

  • 常规 10x 数据:

    library(Seurat)
    seurat_obj <- Read10X("filtered_feature_bc_matrix/")
    seurat_obj <- CreateSeuratObject(counts = seurat_obj, project = "scRNA")
    
  • RDS 文件读入:

    seurat_obj <- readRDS("seurat_obj.rds")
    

Scanpy 中的数据读入

  • 读入 10x 过滤矩阵(推荐)
    import scanpy as sc
    adata = sc.read_10x_mtx("filtered_feature_bc_matrix", var_names='gene_symbols', cache=True
    )
    
  • 如果有 H5 文件(如 filtered_feature_bc_matrix.h5):
    adata = sc.read_10x_h5("filtered_feature_bc_matrix.h5")
    
  • 若是从 Seurat 对象(.Rds)转换,推荐 SeuratDisk 将其转为 H5AD 后再读入:
    # R 端:
    library(SeuratDisk)
    SaveH5Seurat(seurat_obj, filename="seurat.h5Seurat")
    Convert("seurat.h5Seurat", dest="h5ad", overwrite=TRUE)
    
    # Python 端:
    import scanpy as sc
    adata = sc.read_h5ad("seurat.h5ad")
    

2. 数据预处理 / 质控(QC)

Scanpy 中,你可以类似 Seurat 那样进行 QC 过滤。

Seurat 中的常规 QC

seurat_obj <- subset(seurat_obj, subset = nFeature_RNA > 200 & nFeature_RNA < 6000 & percent.mt < 10)

Scanpy 中的常规 QC

# 过滤低基因表达细胞
sc.pp.filter_cells(adata, min_genes=200)# 过滤低表达基因
sc.pp.filter_genes(adata, min_cells=3)# (可选)对于线粒体基因的过滤:
# 1. 计算线粒体基因比例
adata.var['mt'] = adata.var_names.str.startswith('MT-')
adata.obs['percent_mt'] = (np.sum(adata[:, adata.var['mt']].X, axis=1)/ np.sum(adata.X, axis=1)
) * 100# 2. 根据线粒体基因比例进行过滤
adata = adata[adata.obs['percent_mt'] < 10, :]

3. 归一化与高变基因选择

Seurat

# 归一化
seurat_obj <- NormalizeData(seurat_obj)# 查找高变基因
seurat_obj <- FindVariableFeatures(seurat_obj, selection.method="vst", nfeatures=2000)

Scanpy

# Total-count normalize (与 Seurat 的 NormalizeData 相似)
sc.pp.normalize_total(adata, target_sum=1e4)# 取 log
sc.pp.log1p(adata)# 查找高变基因(与 Seurat 策略相似)
sc.pp.highly_variable_genes(adata,flavor='seurat',      # 使用Seurat VST算法n_top_genes=2000
)# 过滤数据,仅保留高变基因
adata = adata[:, adata.var['highly_variable']]

4. 降维与聚类

Seurat

# PCA
seurat_obj <- RunPCA(seurat_obj, npcs=50)# 邻接图/邻居查找
seurat_obj <- FindNeighbors(seurat_obj, dims=1:30)# 聚类
seurat_obj <- FindClusters(seurat_obj, resolution=0.5)# UMAP
seurat_obj <- RunUMAP(seurat_obj, dims=1:30)

Scanpy

# PCA
sc.pp.pca(adata, n_comps=50)# 邻接图
sc.pp.neighbors(adata, n_neighbors=10, n_pcs=30)# 聚类(Leiden 算法)
sc.tl.leiden(adata, resolution=0.5)# UMAP
sc.tl.umap(adata)

注: Seurat 使用 Louvain / SLM 聚类,Scanpy 中 sc.tl.leiden 是一种改进版的社区检测算法,效果与 Seurat 类似或更佳。


5. 不同分辨率下的聚类遍历

Seurat 可以直接传递一个 resolution.range,如:

resolution.range <- c(0.1, 0.2, 0.3, 0.5)
FindClusters(seurat_obj, resolution = resolution.range)

Scanpy 中要手动遍历:

resolutions = [0.1, 0.2, 0.3, 0.5]
for res in resolutions:sc.tl.leiden(adata, resolution=res, key_added=f'leiden_{res}')sc.pl.umap(adata, color=f'leiden_{res}')

若要保存多个分辨率结果的 UMAP 图到同一个 PDF,可参考:

from matplotlib.backends.backend_pdf import PdfPages
pdf_path = "UMAP_by_resolution.pdf"with PdfPages(pdf_path) as pdf:for res in resolutions:sc.tl.leiden(adata, resolution=res, key_added=f'leiden_{res}')fig = sc.pl.umap(adata, color=f'leiden_{res}', show=False, return_fig=True)pdf.savefig(fig)plt.close(fig)

6. 差异基因分析与可视化

Seurat

# FindAllMarkers
markers <- FindAllMarkers(seurat_obj, test.use="wilcox")

可视化:

FeaturePlot(seurat_obj, features="CD3E", cols=c("gray", "red"))
DotPlot(seurat_obj, features=c("CD3E", "NKG7"), group.by="seurat_clusters")

Scanpy

# 差异基因分析
sc.tl.rank_genes_groups(adata, groupby="leiden", method="wilcoxon")# 查看结果
sc.pl.rank_genes_groups(adata, n_genes=5, sharey=False)

可视化 Marker 基因:

# UMAP feature plot(类似 Seurat FeaturePlot)
sc.pl.umap(adata, color=["CD3E"], cmap="Reds")# DotPlot(类似 Seurat DotPlot)
marker_genes = ["CD3E","NKG7","CD68","KRT19"]
sc.pl.dotplot(adata, var_names=marker_genes, groupby="leiden", cmap="Reds")

7. 细胞注释

Seurat 中,一般通过 IdentsAddMetaData 给细胞添加类型标签;在 Scanpy 中,你可以修改 adata.obs 列添加注释:

# 假设你对各群集根据 Marker 基因进行了人工判定
celltype_dict = {"0": "Epithelial","1": "T Cells","2": "NK Cells",# ...
}
# 假设分辨率=0.5时存储在 leiden_0.5
adata.obs["celltype"] = adata.obs["leiden_0.5"].map(celltype_dict)# 再次绘制UMAP,颜色按 celltype
sc.pl.umap(adata, color="celltype")

Seurat vs. Scanpy 主要函数对照表

分析步骤Seurat ®Scanpy (Python)
数据读入Read10X() / CreateSeuratObject()sc.read_10x_mtx() / sc.read_10x_h5()
质控 (QC)subset()sc.pp.filter_cells() / sc.pp.filter_genes()
线粒体基因过滤PercentageFeatureSet(... pattern = "^MT-")手动提取后过滤 (见 adata.obs['percent_mt'])
归一化NormalizeData()sc.pp.normalize_total() + sc.pp.log1p()
高变基因FindVariableFeatures()sc.pp.highly_variable_genes()
PCARunPCA()sc.pp.pca()
邻居查找FindNeighbors()sc.pp.neighbors()
聚类FindClusters()sc.tl.leiden()
UMAP/t-SNERunUMAP() / RunTSNE()sc.tl.umap() / sc.tl.tsne()
差异基因FindAllMarkers() / FindMarkers()sc.tl.rank_genes_groups()
FeaturePlotFeaturePlot()sc.pl.umap(..., color='GENE')
DotPlotDotPlot()sc.pl.dotplot()
细胞类型注释Idents() / AddMetaData()adata.obs['celltype'] = ...
保存对象saveRDS()adata.write("xxx.h5ad")

8. 小结

  1. 数据读入:如果是 10x 的过滤矩阵,Seurat 用 Read10X(),Scanpy 用 sc.read_10x_mtx()/sc.read_10x_h5();若已在 Seurat 中整合好,可先用 SeuratDisk 转换为 .h5ad
  2. 质控与预处理:二者均可进行基于基因数、细胞数、线粒体基因比例等过滤。Scanpy 常需手动计算线粒体比例。
  3. 高变基因、PCA、聚类、UMAP 等流程在 Scanpy 中与 Seurat 非常相似,只是函数名称与参数略有不同。
  4. 差异基因分析:Seurat 中常用 FindAllMarkers(),Scanpy 中则是 sc.tl.rank_genes_groups().
  5. 可视化:Seurat 提供 FeaturePlot()DotPlot() 等函数;Scanpy 对应 sc.pl.umap(...)sc.pl.dotplot()
  6. 细胞注释:在 Scanpy 中,直接修改 adata.obs["celltype"],并用 sc.pl.umap(color="celltype") 可视化。

总体而言,Seurat 与 Scanpy单细胞分析思路上高度相似,只是实现细节、函数名和可视化风格略有区别。若你已有完备的 Seurat 分析经验,迁移到 Scanpy 通常是逻辑函数名的平移,很快能上手。


参考命令与提示

  • 如果有大规模数据(>10 万细胞),Scanpy 的处理速度与内存占用通常较 Seurat 更有优势。
  • 若仍需 Seurat 强大的可视化整合包(如 SeuratWrappers),可在小规模数据或特定分析环节中继续使用 R + Seurat。
  • 混合使用:在 R 中做部分分析后,将结果(如细胞注释)输出为 .csv,或使用 SeuratDisk 生成 .h5ad 以在 Python 端进一步扩展(如 scanpy, squidpy, cellchat Python 版等)。

以上为 Seurat → Scanpy 的主要流程笔记,涵盖从数据读入、质量控制、归一化、高变基因选择、聚类及可视化、差异基因分析、到细胞注释的完整思路。

http://www.dtcms.com/wzjs/558922.html

相关文章:

  • 建设部网站投诉如何注册定制开发软件产品的税率
  • 个人网站怎么做收款链接最新网页版传奇
  • 建个企业营销型网站建设简单网站的图纸
  • 外贸网站 语言北京网络技术有限公司
  • 网站是自己做还是让别人仿asp.net开发移动网站模板下载
  • 曲靖seo建站wordpress查看全文
  • 新建网站站点的淘宝网电脑版登录入口
  • 怎么做学校网站和微信公众号中天建设集团有限公司董事长
  • 云服务器 可以做网站吗网站建设168
  • 整形网站建设方案策划书海宏集团网站建设方案
  • 企业网站在线超市如何制作个人手机网站
  • 求个网站你会感谢我的建设网站企业邮箱网站建设服务
  • 南宁网站建设公司怎么赚钱中国廉政建设网是正规网站吗
  • 网页制作门户网站案例汕尾北京网站建设
  • django做的网站举例百度指数官方版
  • 软件编程入门先学什么wordpress 网站 seo
  • 如何招聘软件网站开发人员网站优化报价
  • 适合网站开发的python做网站要会编程么
  • 网站安全检测中心wordpress虎嗅
  • 网站开发 北京外包公司做网站的设计公司
  • 纺织行业网站怎么做吸引人wordpress 主题名
  • 厦门网站建设网站建设南宁如何做百度的网站推广
  • 贵阳酒店网站建设下载源码就能建网站吗
  • 网站信息发布和内容建设自查报告网络营销品牌策划优化
  • 建设协会网站的公司建设银行积分商城网站
  • 淘宝客手机网站开发网站流量排名
  • 注册域名网站备案免费创建网站 优帮云
  • h5做的网站有哪些wordpress产品系统
  • 国外网站推广软件景征网站建设
  • 珠海手机网站开发定制型网站设计