scanpy单细胞分析流程

news2024/11/26 0:48:23

梳理一下scanpy单细胞分析流程(处理的是scRNA-seq)。

先上一张流程图:
在这里插入图片描述

scanpy单细胞分析流程

import scanpy as sc

Read data

常用的文件格式有两种,分别是h5ad10X mtx

# read h5ad
adata = sc.read()

# read 10X mtx
adata = read_10x_mtx()

Preprocessing

QC

QC这一步目标是过滤掉低质量的细胞基因

我们通常可以通过以下指标进行QC

  • Cell counts
  • UMI counts per cell
  • Genes detected per cell
  • Complexity(novelty score)
  • Mitochondrial counts ratio

Cell counts

这个指标可以与预期的细胞数进行对比,用来判断是否有垃圾细胞存在。需要注意的是,

UMI counts per cell

UMI(unique molecular identifiers),用来给mRNA计数

The UMI counts per cell should generally be above 500, that is the low end of what we expect. If UMI counts are between 500-1000 counts, it is usable but the cells probably should have been sequenced more deeply.

Genes detected per cell

每个细胞表达的基因数,在scanpy的教程中,过滤掉了低于200的细胞

novelty score

什么是novelty score

We can evaluate each cell in terms of how complex the RNA species are by using a measure called the novelty score. The novelty score is computed by taking the ratio of nGenes over nUMI. If there are many captured transcripts (high nUMI) and a low number of genes detected in a cell, this likely means that you only captured a low number of genes and simply sequenced transcripts from those lower number of genes over and over again. These low complexity (low novelty) cells could represent a specific cell type (i.e. red blood cells which lack a typical transcriptome), or could be due to an artifact or contamination. Generally, we expect the novelty score to be above 0.80 for good quality cells.

novelty score公式

This value is quite easy to calculate, as we take the log10 of the number of genes detected per cell and the log10 of the number of UMIs per cell, then divide the log10 number of genes by the log10 number of UMIs. The novelty score and how it relates to complexity of the RNA species, is described in more detail later in this lesson.

Mitochondrial counts ratio

This metric can identify whether there is a large amount of mitochondrial contamination from dead or dying cells. We define poor quality samples for mitochondrial counts as cells which surpass the 0.2 mitochondrial ratio mark, unless of course you are expecting this in your sample.

在scanpy中,这一值被设定为5%

合理的值范围可能是5%—20%

Joint filtering effects

Considering any of these QC metrics in isolation can lead to misinterpretation of cellular signals. For example, cells with a comparatively high fraction of mitochondrial counts may be involved in respiratory processes and may be cells that you would like to keep. Likewise, other metrics can have other biological interpretations. A general rule of thumb when performing QC is to set thresholds for individual metrics to be as permissive as possible, and always consider the joint effects of these metrics. In this way, you reduce the risk of filtering out any viable cell populations.

Two metrics that are often evaluated together are the number of UMIs and the number of genes detected per cell. Here, we have plotted the number of genes versus the number of UMIs coloured by the fraction of mitochondrial reads. Jointly visualizing the count and gene thresholds and additionally overlaying the mitochondrial fraction, gives a summarized persepective of the quality per cell.
在这里插入图片描述
Good cells will generally exhibit both higher number of genes per cell and higher numbers of UMIs (upper right quadrant of the plot). Cells that are poor quality are likely to have low genes and UMIs per cell, and correspond to the data points in the bottom left quadrant of the plot. With this plot we also evaluate the slope of the line, and any scatter of data points in the bottom right hand quadrant of the plot. These cells have a high number of UMIs but only a few number of genes. These could be dying cells, but also could represent a population of a low complexity celltype (i.e red blood cells).

Normalize、log

Normalize

Normalize each cell by total counts over all genes, so that every cell
has the same total count after normalization.

为啥要Normalize?

normalize让细胞的rna-seq具有组件可比性,也就是让细胞之间可以对比

log

Logarithmize the data matrix.

为啥要log?

取log之后可以方便计算,同时在找差异表达基因时需要log后的数据
更多的统计学解释可以参考这个问题下的讨论:在统计学中为什么要对变量取对数?

HVG

筛选出细胞之间表达量差别大的基因,方便下游对比

scanpy实现了三种算法
Seurat, Cell Ranger and Seurat v3
不同算法需要的条件可能不同
看详情,点这里

Regress out

Regress out (mostly) unwanted sources of variation.

并不是必要的,可能会过度矫正

Scale

Scale data to unit variance and zero mean.
也就是z-score normalization,别称Standardization

不是必要的

Dimensionality reduction

将数据降维,方便下游的近邻图计算,常用方法是PCA。

integration

在这一步中,我们也可以使用其他方法来代替PCA,这些方法多是使用算法求得整个表达矩阵的embedding,以这些embedding来代替表示表达矩阵,从而达到batch remove的效果。

常用的算法有scvi、harmony、scanorama等,更多的算法对比可以看scib这篇文章,这边文章做了一个benchmark的工作,将现有的主流integration算法进行了对比评估。

康康我的这篇博文里有文章地址和常用评估代码。
单细胞数据integration结果评估

Computing the neighborhood graph

Compute a neighborhood graph of observations.
这一步计算出的近邻图是下面绘制umap和聚类需要用到的。

Draw umap

绘制umap图

Clustering

聚类,将细胞分成簇。常用的有louvain和leiden两种算法。常用的是leiden。

Find marker gene

求某一簇相对于其他簇的差异表达基因

Cell type annotation

细胞类型标注,这一步有两种方法,一种是基于marker gene对细胞进行标注,一种是利用机器学习的方法对细胞进行自动标注,如single r。

scanpy教程链接

Preprocessing and clustering 3k PBMCs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从小白到大神之路之学习运维第44天---第三阶段----拓展知识-----文件管理命令(find+sed+awk)、pycharm工具

第三阶段基础 时 间:2023年6月20日 参加人:全班人员 内 容: 目录 一、文件管理命令 find 1. 根据文件名查找文件 2. 根据文件类型查找文件 3. 根据文件大小查找文件 4. 根据时间戳查找文件 5. 组合多个条件查找文件 Sed 1. 替…

【Vue】学习笔记-创建Vue3.0工程

创建Vue3.0工程 使用vue-cli创建查看vue/cli版本,确保vue/cli版本在4.5.0以上安装或者升级你的vue/cli创建启动 使用vite创建创建工程进入工程目录安装依赖运行 使用vue-cli创建 官方文档:https://cli.vuejs.org/zh/guide/creating-a-project.html#vue-…

【性能测试】压力测试指标全解之TPS、响应时间

hello,大家好!我是磨磨唧唧小蘑菇~ 接上期阐述了《TP50/90/99/999》的含义及计算方式,本期将阐述压力测试的其他指标,如TPS、响应时间等。 目录 一、TPS 二、响应时间 三、TPS与响应时间RT的关系 一、TPS 1、TPS的含义 …

vscode折叠代码展开快捷键

1.折叠所有代码 (按住ctrl 分别点击k和0) ctrlk,ctrl0 2.展开所有代码 (按住ctrl 分别点击k和j) ctrlk,ctrlj 3. 折叠鼠标竖线所在位置的节点以及当前节点下的子节点(递归折叠) ctrlk,ctrl[ 4. 展开鼠标竖线所在位置的节点以及当前节点下的子节点&#x…

【Springboot】关于Spring和SpringBoot的那些事儿

参考javaguide的学习笔记~ 1 怎么那么多名字呀~ 一开始看到这个图太劝退了,但实际上一开始只需要理解它是一个框架,包含很多个模块,能够简化开发。 使得接收HTTP请求,查数据库,写业务逻辑三部分能够分开。 并且能很…

【2023最全最叼教程】Selenium 自动化测试环境搭建

【导语】Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。本文详细介绍了搭建自动化测试环境所需的工具,让你学习自动化测试不…

人脸检测——基于机器学习3】AdaBoost算法

简介 主要工作AdaBoost算法的人脸检测算法包含的主要工作:(1)通过积分图快速求得Haar特征;(2)利用AdaBoost算法从大量的特征中选择出判别能力较强的少数特征用于人脸检测分类;(3)提出一个级联结构模型,将若干个弱分类器集成一个强分类器,其能够快速排除非人脸区域,…

系统架构设计师-系统工程与信息系统基础(2)

一、电子政务类型 电子政务主要有3类角色:政府(Government)、企(事)业单位(Business)及公民(Citizen)。如果有第4类就是公务员(Employee)。 二、企…

CMIP6降尺度方法

气候变化关系到农业、生态系统、社会经济和人类生存与发展,是当今世界关注的重点问题之一。IPCC(Intergovernmental Panel on Climate Change)第6次评估报告指出,自 20 世纪 50 年代以来,从全球平均气温和海温升高、大…

Unity核心10——导航寻路系统

Unity 中的导航寻路系统是能够让我们在游戏世界当中,让角色能够从一个起点准确的到达另一个终点,并且能够自动避开两个点之间的障碍物选择最近最合理的路径进行前往 ​ Unity 中的导航寻路系统的本质,就是在 A 星寻路算法的基础上进行了拓展和…

国家加强互联网广告监管

我是卢松松,点点上面的头像,欢迎关注我哦! 5月1日《互联网广告管理办法》正式实施。 6月19日,市场监督总局要求加强广告监管。 主要针对直播带货广告、弹窗广告、“软文”广告等新型广告形式,加大互联网广告乱象清理…

HDLBits自学笔记3:Verilog language.Modules Hierarchy

Modules 在顶层模块中实例化模块mod_a,其端口描述: module mod_a ( input in1, input in2, output out ); module top_module ( input a, input b, output out );// 按信号名称连线mod_a u1(.in1(a),.in2(b),.out(out));// 按信号位置连线// mod_a u…

基于数据驱动 U-Net 模型的大气污染物扩散快速预测,提升计算速度近6000倍

项目背景 当前,常见的大气污染预测模型大多是基于物理机理构建的,比如空气质量预测模型 Calpuff、AERMOD、CMAQ 等。然而,这些模型运算较为复杂,对于输入数据的要求非常高,运算耗时也比较长,适合用于常规固…

【玩转Docker小鲸鱼叭】Docker镜像常用命令汇总

镜像是Docker中最为核心也是最具创造性的概念!在理解Docker的核心概念文章中,我们理解了镜像的含义,下面让我们一起操作一些镜像,包括拉取、推送镜像等操作。 1、镜像支持哪些命令 通过 docker image help 查看 Docker 支持的镜像…

联想U盘重装系统Win10步骤和详细教程

最近很多用户都在问怎么利用U盘来给联想电脑重装Win10系统,用户需要准备一个8G以上的U盘,确保联想电脑能够正常联网,然后按照小编给大家分享的联想U盘重装系统Win10步骤和详细教程操作,即可快速轻松完成联想电脑Win10系统的重装。…

C++——cin输入

cin对象在抽取过程中会进行类型转换&#xff0c;这应该是根据字节数来的&#xff0c;对于每一种类型&#xff0c;都会有相应的指令合集&#xff0c;也就是cpu会按字节进行转换&#xff0c;区别在于大端模式或者是小端模式&#xff0c;cin对象从在了<<相应的函数被称为格式…

陪诊APP开发服务兼职软件

陪诊APP是一种提供陪伴照顾服务的应用程序&#xff0c;主要面向需要医院陪护的病人及家属。以下是可能有助于陪诊APP开发服务兼职软件的功能&#xff1a; 注册和登录&#xff1a;允许用户使用手机号码等方式注册并登录账户。 病房预约&#xff1a;允许家属为病人预约病…

数据烦恼?亮数据平台为你提供一站式解决方案

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 在当今数字时代&#xff0c;大型和实时的数据集具有更全面的信息、更准确的预测、和更好的竞争优势。作为一位刚被数据折磨过的人&#xff0c;我必须要把自己的经验跟大家分享一下&#xff0c;让大家和公司在收集数据方面…

构筑数字化新引擎!美创助力金华银行核心系统国产分布式数据库迁移

近日&#xff0c;金华银行举行“星辉工程”核心项目群上线发布会&#xff0c;新一代核心系统成功部署在国产分布式数据库OceanBase&#xff0c;向业务高效创新、数智赋能迈出了重要一步。据悉&#xff0c;这是浙江省首例基于完全国产自研数据库落地的银行核心系统。 此次“星辉…

[PyTorch][chapter 43][时间序列表示方法1]

前言&#xff1a; 语言模型&#xff08;LM&#xff09;起源于语音识别(speech recognition)&#xff0c;输入一段音频数据&#xff0c;语音识别系统通常会生成多个句子作为候选&#xff0c;究竟哪个句子更合理&#xff1f;就需要用到语言模型对候选句子进行排序。 language mod…