【生物信息学】scRNA-seq数据分析(一):质控~细胞筛选~高表达基因筛选

文章目录

  • 一、实验介绍
  • 二、实验环境
    • [1. 配置虚拟环境](#1. 配置虚拟环境)
    • [2. 库版本介绍](#2. 库版本介绍)
  • 三、实验内容
    • [0. 导入必要的库](#0. 导入必要的库)
    • [1. 质控](#1. 质控)
    • [2. 细胞筛选](#2. 细胞筛选)
    • [3. 高表达基因筛选](#3. 高表达基因筛选)

一、实验介绍

质控~ 细胞筛选 ~高表达基因筛选

二、实验环境

1. 配置虚拟环境

可使用如下指令:

bash 复制代码
conda create -n bio python==3.9
bash 复制代码
conda activate bio
bash 复制代码
pip install -r requirements.txt

其中,requirements.txt:

bash 复制代码
numpy==1.21.5
pandas==1.4.4
scanpy==1.9.6

2. 库版本介绍

软件包 本实验版本
numpy 1.21.5
pandas 1.4.4
python 3.8.16
scanpy 1.9.6
scipy 1.10.1
seaborn 0.12.2

三、实验内容

0. 导入必要的库

python 复制代码
import numpy as np
import pandas as pd
import scanpy as sc
  • Scanpy是一个用于单细胞RNA测序数据分析的Python库,提供了许多功能和工具来处理和分析单细胞数据

1. 质控

python 复制代码
# 设置Scanpy参数
sc.settings.verbosity = 3
sc.logging.print_header()
sc.settings.set_figure_params(dpi=80, facecolor='white')

# 定义结果文件路径
results_file = 'write/pbmc3k.h5ad'

# 读取单细胞数据
adata = sc.read_10x_mtx(
    'data/filtered_gene_bc_matrices/hg19/',  # 数据目录
    var_names='gene_symbols',                # 使用基因符号作为变量名
    cache=True)                              # 写入缓存文件以便后续更快读取

# 确保基因名唯一
adata.var_names_make_unique()

# 绘制展示高度表达的基因
sc.pl.highest_expr_genes(adata, n_top=20)

2. 细胞筛选

python 复制代码
# 过滤细胞和基因
sc.pp.filter_cells(adata, min_genes=200)
sc.pp.filter_genes(adata, min_cells=3)

# 标记线粒体基因
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)

# 绘制质量控制指标的小提琴图和散点图
sc.pl.violin(adata, ['n_genes_by_counts', 'total_counts', 'pct_counts_mt'], jitter=0.4, multi_panel=True)
sc.pl.scatter(adata, x='total_counts', y='pct_counts_mt')
sc.pl.scatter(adata, x='total_counts', y='n_genes_by_counts')



3. 高表达基因筛选

python 复制代码
# 进一步的过滤和归一化
adata = adata[adata.obs.n_genes_by_counts < 2500, :]
adata = adata[adata.obs.pct_counts_mt < 5, :]

# 总计数归一化
sc.pp.normalize_total(adata, target_sum=1e4)

# 对数变换
sc.pp.log1p(adata)

# 特征选择:识别高度变异的基因
sc.pp.highly_variable_genes(adata, min_mean=0.0125, max_mean=3, min_disp=0.5)

# 绘制高度变异基因的图
sc.pl.highly_variable_genes(adata)

# 设置.raw属性
adata.raw = adata

# 实际过滤数据
adata = adata[:, adata.var.highly_variable]

# 数据回归处理和标准化
sc.pp.regress_out(adata, ['total_counts', 'pct_counts_mt'])
sc.pp.scale(adata, max_value=10)
相关推荐
码界筑梦坊15 分钟前
基于Spark的抖音数据分析热度预测系统
大数据·信息可视化·数据分析·spark·毕业设计·个性化推荐
matlabgoodboy1 小时前
生信分析服务MR孟德尔随机化单细胞测序转录组数据分析网络药理学
数据挖掘·数据分析·mr
码界筑梦坊2 小时前
基于FLask的重庆市造价工程信息数据可视化分析系统
python·信息可视化·数据分析·flask·毕业设计
不剪发的Tony老师2 小时前
Redash:一个开源的数据查询与可视化工具
数据分析·bi
黎茗Dawn2 小时前
第15周:注意力汇聚:Nadaraya-Watson 核回归
人工智能·数据挖掘·回归
dundunmm3 小时前
【数据集】Romanov数据集
人工智能·机器学习·支持向量机·数据挖掘·数据集·单细胞数据集
databook4 小时前
『Plotly实战指南』--散点图绘制进阶篇
python·数据分析·数据可视化
不剪发的Tony老师13 小时前
Metabase:一个免费开源的BI平台
数据分析·metabase·bi
SelectDB技术团队1 天前
Apache Doris 2.1.9 版本正式发布
大数据·数据仓库·数据分析·doris·数据湖·湖仓一体·日志数据