scanpy 单细胞分析使用案例

news/2024/5/20 10:37:42 标签: python, 聚类, 机器学习

参考:https://zhuanlan.zhihu.com/p/537206999
https://scanpy.readthedocs.io/en/stable/api.html
在这里插入图片描述

scanpy python包主要分四个模块:
1)read 读写模块、
https://scanpy.readthedocs.io/en/stable/api.html#reading
在这里插入图片描述
2)pp Preprocessing 预处理模块
https://scanpy.readthedocs.io/en/stable/api.html#module-scanpy.pp
在这里插入图片描述
3)tl Tools工具箱模块,包括降维聚类等算法
https://scanpy.readthedocs.io/en/stable/api.html#module-scanpy.tl
在这里插入图片描述
3)pl Plotting画图模块
https://scanpy.readthedocs.io/en/stable/api.html#module-scanpy.pl
在这里插入图片描述

使用案例

import numpy as np
import pandas as pd
import scanpy as sc

## 加载数据
adata = sc.datasets.pbmc3k()
adata.var_names_make_unique()

#质量控制
# 查看高表达的前20个基因
sc.pl.highest_expr_genes(adata, n_top=20, save='_pbmc3k.png')

#######预处理##############
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-')  # annotate the group of mitochondrial genes as '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, save='_pbmc3k.png')

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, save='_pbmc3k.png')

# 保存原始数据
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)

#######降维聚类分析##############

sc.tl.pca(adata, svd_solver='arpack')
sc.pl.pca(adata, color='CST3', save='_pbmc3k_CST3.png')
sc.pl.pca_variance_ratio(adata, log=True, save='_pbmc3k_pc.png')
sc.pp.neighbors(adata, n_neighbors=10, n_pcs=40)


sc.tl.umap(adata)
sc.pl.umap(adata, color=['CST3', 'NKG7', 'PPBP'], save='_pbmc3k_CST3_NKG7_PPBP.png')

sc.tl.leiden(adata)
sc.pl.umap(adata, color=['leiden'], save='_pbmc3k_leiden.png')

http://www.niftyadmin.cn/n/104959.html

相关文章

金融信创步入快车道,应“需”而生的监控易运维方案为国产化助力

在我国“28N”信创三步走战略中&#xff0c;金融信创赫然名列其中&#xff0c;成为最早践行信创理论与实操的行业之一。截止到目前&#xff0c;金融信创渗透率业已仅次于党政部门&#xff0c;位列“8”大重点行业之首。超快的发展速度&#xff0c;让金融信创较早的步入“买方市…

测试用例设计经典面试题——电梯,杯子,笔,桌子,洗衣机

首先说明的是&#xff0c;遇到这样的测试题目&#xff0c;首先应该反问面试官&#xff0c;需求是什么样的&#xff0c;比如是测什么样的杯子。 因为设计测试用例的规则应该是根据需求分析文档设计用例&#xff0c;客户需求什么&#xff0c;就测试什么。但是在没有需求分析文档…

FAST‘23《λ-IO: A Unified IO Stack for Computational Storage》论文解读

FAST’23《λ-IO: A Unified IO Stack for Computational Storage》论文解读 Data:2023-2-27 Ref: Z. Yang et al., “λ-IO: A Unified IO Stack for Computational Storage,” in 21st USENIX Conference on File and Storage Technologies (FAST 23), Santa Clara, CA, Feb.…

STM32——毕设智能感应窗户

智能感应窗户 一、功能设计 以STM32F103芯片最小系统作为主控&#xff0c;实现自动监测、阈值设定功能和手动控制功能。 1、自动监测模式下&#xff1a; ① 采用温湿度传感器&#xff0c;实现采集当前环境的温度、湿度数值。 ② 采用光敏传感器&#xff0c;实现判断当前的环境…

Java 多线程 --- 多线程的相关概念

Java 多线程 --- 多线程的相关概念Race Condition 问题并发编程的性质 --- 原子性, 可见性, 有序性上下文切换 (Context Switch)线程的一些故障 --- 死锁, 活锁, 饥饿死锁 (Deadlock)活锁(Livelock)死锁和活锁的区别饥饿(Starvation)背景: 操作系统 — 线程/进程 同步 Race Co…

拍摄的风景视频中,如何快速有效地去除视频中的杂物?

我们在外游玩拍摄的短视频&#xff0c;视频中出现的不必要杂物&#xff0c;比如垃圾、广告或其他不相关的人&#xff0c;会影响视频内容的传达&#xff0c;会降低视频的观感质量。因此&#xff0c;需要去除这些杂物&#xff0c;使得视频更加干净、整洁。让观众更容易理解视频的…

软件测试2年半的我,谈谈自己的理解...

软件测试两年半的我&#xff0c;谈谈自己的理解从2020年7月毕业&#xff0c;就成为一名测试仔。日子混了一鲲年&#xff0c;感觉需要好好梳理一下自己的职业道路了&#xff0c;回顾与总结下吧。一、测试的定位做事嘛&#xff0c;搞清楚自己的定位很重要。要搞清楚自己的定位&am…

spark性能调优(一):Shuffle

Shuffle 一、配置项调优二、减少shuffle数据量三、避免shuffle何为shuffle? 集群中跨进程、跨节点的数据分发(Map的输出文件写到本地磁盘,Reducer把Map的输出文件拉到本地)为什么要shuffle? 准确的说,shuffle是刚需(业务场景决定的),分布式环境中,不同节点不能进行内存交换,只…