scanpy计算n_genes_by_counts和total_counts等质量控制指标
利用scanpy的calculate_qc_metrics函数计算adata的obs中的质量控制指标(n_genes_by_counts,total_counts等参数指标)
⚠️注意:只是计算相关质量控制指标,并不会筛选/过滤数据。
类似代码:Dandelion库的ddl.pp.recipe_scanpy_qc(adata)
似乎也能达到相同效果。
导入
需要用的包:scanpy和anndata
导入包和读取adata数据
import anndata import scanpy as sc import pandas as pd import numpy as np adata=anndata.read(file_address) print(adata) print(adata.obs)
相关质量控制指标含义:
(1)obs
-
n_genes_by_count:细胞中计数呈阳性的基因数量。(一个细胞中有多少种基因。)
-
total_counts:细胞的计数总数(该细胞的基因总数),这也可能称为库大小。
-
pct_counts_mt:线粒体细胞总数的比例。
(2)var
- n_cells_by_counts:所有细胞中表达该基因的细胞数目
- mean_counts:所有细胞中该基因表达的平均值
- pct_dropout_by_counts:未表达该基因的细胞占细胞总数的百分比
- total_counts:所有细胞中,基因的表达量总和
使用方法
- 计算质量控制指标
n_genes_by_counts
,total_counts
等参数指标:log1p=False
sc.pp.calculate_qc_metrics(adata, percent_top=None, log1p=False, inplace=True) print(adata) print(adata.obs)
- 如果需要log1p变换,即
log1p_n_genes_by_counts
和log1p_total_counts
参数指标:log1p=True
sc.pp.calculate_qc_metrics(adata, percent_top=None, log1p=True, inplace=True) print(adata) print(adata.obs)
- 如果需要计算线粒体基因的表达量,即
total_counts_mt
和pct_counts_mt
参数指标:qc_vars=["mt"]
adata.var有个字段为"mt" 用于判断基因是否为线粒体基因,将会增加三个指标:
- total_counts_mt : 细胞中线粒体基因表达量总和
- log1p_total_counts_mt: log1p(细胞中线粒体基因表达量总和)
- pct_counts_mt: 细胞中线粒体基因表达量总和 占 总基因表达和的百分比
adata.var["mt"] = adata.var_names.str.startswith("MT-") sc.pp.calculate_qc_metrics( adata, qc_vars=["mt"], percent_top=None, log1p=False, inplace=True) print(adata) print(adata.obs)
本文作者:kingwzun
本文链接:https://www.cnblogs.com/kingwz/p/18408829
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步