单细胞scRNA-seq测序基础知识笔记

单细胞scRNA-seq测序基础知识笔记

  • scRNA-seq技术
  • scRNA-seq 分析流程
    • 数据预处理
    • 聚类
      • 标准化数据
      • 筛选有用的数据
      • 数据降维
      • 聚类 Clustering
    • 注释细胞类型
  • scRNA数据分析
  • 结尾

该笔记来源于 B站up 江湾青年

scRNA-seq技术

在这里插入图片描述

首先是如何测序,上图瓶中有很多细胞,然后让这些细胞一个一个进入右边的管道,管道的下边那个管道一个一个进入小球,理想情况下是每个小球会与一个单细胞进入同一个液滴中,这个小球等于是这个细胞的一个标记物。当然也可能会有一个液滴混入了两个细胞等情况,后边我们做数据处理的时候会把这种情况剔除。
(我也不太确定理解的对不对,但大概就是这样,最近刚入门生物信息处理,我完全没有这方面的背景知识。不过其实也无所谓,这只是大概了解下数据是怎么来的,但实际项目中只需要专注于后边的数据就行了,至于数据怎么来的其实好像我并不需要关心。 当然有写的不对的地方也请读者朋友指出,在下不胜感激!)

scRNA-seq 分析流程

在这里插入图片描述
主要流程就是,首先获取数据后要先预处理(质量控制),然后聚类和除去批次效应,最后是细胞类型的注释。

数据预处理

在这里插入图片描述
首先我们拿到的数据应该就是如上图所示那样,是一个矩阵,行是样本(细胞?)编号,列是基因编号。中间的数据比如“30” 就可以解释为 基因 “A1BG” 在第一个样本中检测到了30个(次?).

然后因为并不会在每个细胞中都能检测出某个基因,所以上图这个矩阵的大部分区域都是0,所以是一个稀疏矩阵。

在这里插入图片描述
我发现做生物信息的人好喜欢可视化呀,不过也确实有用,比如上图就是常用的提琴图(因为长的像个小提琴)可视化来分析数据。

先介绍下小提琴图怎么看,例如上图第一个提琴图,每个小点就代表一个细胞,行可能代表不同的细胞类型、组织类型、实验条件或有兴趣比较基因表达水平的任何其他分组。列代表这个细胞检测到的基因的数量。

小点背后那个红色的区域象征着细胞在这个基因数量下的细胞密度,可以看到红色区域越宽,小点越密集。

然后怎么用这个图呢?可以看出有些离群的细胞,比如第一个图最上边有几个细胞的基因数都超过3000了,这种可能就是刚才说的一个液滴里混进了俩细胞, 像这种情况我们可以设置一定的基因数量限制,seurat给出的建议是 限制在 200 ~ 2500左右,当然我们可以视实际项目的情况而定,另外也可以设置一个动态的数值,比如整体中位数加减某个数值。

聚类

请添加图片描述

标准化数据

由于测序数据可能样本间文库大小差异问题, 测序深度不一样(其实就是每次测的多少都有点差异呗)就用下图这个标准化公式,好像确实有道理,就像DL处理图像一样,把像素点也要先归一化再使用。

在这里插入图片描述

筛选有用的数据

对于拿到的scRNA数据,很多基因出现在了大多数样本中,我们应将这类基因筛除掉,因为基因差异越大才会有更多不同的信息(去除共性,保留个性),那怎么除去呢?

一个方法是计算每个基因在所有细胞中出现次数的方差,学过统计学的都懂,方差越大表示数据间的差距越大,那么这个基因个性越大,越可能有一些特殊的信息。然后我们就可以按方差从大到小来排列这些基因,然后选取方差最大的比如说前2000个高变异基因这样。

数据降维

因为一般细胞数据维度比较高,而且会有噪声,我们经常用PCA(Principal Component Analysis)给数据降维,但是只用PCA降维后的点做聚类的话,边缘会不清晰,所以一般会先用PCA降到比如说50个主成分,然后再用t-SNE或者UMAP降到二维的点再聚类,同时PCA也能顺便降噪(错了的话请留言让我知道

聚类 Clustering

如上所说,将数据降维到二维的点后,一般是用KNN或者SNN聚类,详细请移步.

另外也要考虑批次效应,比如对于不同目标采样相同部位的数据,可能可视化出来如下图的误差。

在这里插入图片描述

消除批次效应的方法如下:

在这里插入图片描述

注释细胞类型

就是等聚好细胞的类之后,可以对比下每个簇和已知的哪些基因一样,就可以得知这个细胞簇来自哪些细胞,从而为细胞添加注释。

如果是用机器自动注释的话,原理就是它会自动对比已知的基因库,从而添加注释,但缺点是我们实际用的数据可能在软件的基因库里查不到,所以可以用自动+手动的方法,自动跑个大概,然后手工检查一遍。

scRNA数据分析

在这里插入图片描述
在处理完数据后,可以用上边几种算法来处理 处理好的数据。

结尾

嗯,我觉得这个up的视频作为对我这种小白的入门视频非常好,对整个的流程有了一个大概的认识,然后再配合这个 Scanpy Tutorial 一起食用效果最佳,这个示例代码就是按照这个up主讲的顺序一步一步做的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AD24-原理图与PCB交互设置及PCB常用快捷键汇总

一、原理图与PCB交互设置 1、在原理图页,工具-交叉选择模式 2、设置完成后。在原理图页选择器件,然后再PCB页也会相应被选中 3、一般将网络与Pin脚的勾去掉 4、整齐排列 5、TC:查找网络、器件、Pin脚 二、PCB常用快捷键汇总

高效远控管理 向日葵企业版统计报表与自动分组解析

高效远控管理!向日葵企业版统计报表与自动分组解析企业之所以引入商用远程控制方案,一个很大的因素就是因为需要对高频率、多设备的远程控制需求以及IT设备本身进行高效管理,因此一款优质的商用远程控制方案势必需要在这些方面搭载足够完善的…

idea查看日志的辅助插件 --- Grep Console (高亮、取消高亮)

🚀 分享一款很有用的插件:Grep Console 🚀 我们在查看日志的时候可能会有遗漏,使用这款插件可以让特定的关键词高亮,可以达到不遗漏的效果! 如果你是一个开发者或者对日志文件分析感兴趣,不要…

MySQL原理(四)索引(3)索引失效与索引区分度

一、索引失效: 首先未使用索引列作为查询条件索引是肯定会生效的,还有其他的情况,索引列做为了查询条件也失效了: ALTER TABLE staffs ADD INDEX idx_staffs_nameAgePos(NAME, age, pos); 1、select 语句、order by语句&#xf…

x2openEuler 升级实操(centos7.8 to openEuler 20.03)

通过 x2openEuler 工具,将 centos 7.8 迁移至 OpenEuler 上,实际感受迁移过程。x2openEuler https://docs.openeuler.org/zh/docs/20.03_LTS_SP1/docs/x2openEuler/x2openEuler.html 环境准备 下载 x2openEuler 安装包 wget https://repo.oepkgs.net/o…

Nicn的刷题日常之带空格直角三角形图案

1.题目描述 描述 KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。 输入描述: 多组输入,一个整数(2~20),表示直角三角形直角边的长度&am…

Linux 指令

Linux 指令 1 登入/登出1.1 关机1.2 重启1.3 切用户 2 文件和目录管理2.1 目录操作2.2 文件操作2.3 文件内容操作2.4 归档及压缩 3 文本编辑器 vim3.1 命令模式3.2 输入模式3.3 末行模式 4 用户和组管理4.1 用户和组帐号概述4.1.1 用户帐号4.1.2 UID和GID 4.2 用户管理 5 组管理…

算法:箱子之形摆放

一、算法描述及解析 要求将一批箱子按从上到下以‘之’字形的顺序摆放在宽度为 n 的空地上,输出箱子的摆放位置, 例如:箱子ABCDEFG,空地宽为3。 如输入: ABCDEFG 3 输出: AFG BE CD 注:最后一行…

leetcode 28.找出字符串中第一个匹配项的下标(python版)

需求 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。 如果 needle 不是 haystack 的一部分,则返回 -1 。 示例 1: 输入:haystack…

2023年OceanBase开发者大会:核心内容与学习收获(附大会核心PPT下载)

本次大会邀请了众多业界领袖、技术大咖和开发者,共同探讨数据库领域的技术发展趋势和未来机会,与开发者共同探讨单机分布式、云原生、HTAP 等数据库前沿趋势,分享全新的产品 roadmap,交流场景探索和最佳实践。 一、大会核心内容 …

v-if及v-for、computed计算属性的使用

v-if 概念及使用 v-if是Vue.js中的一个指令&#xff0c;用于根据表达式的真假值条件性地渲染一块内容。如果表达式的值返回真&#xff0c;则Vue会渲染这块内容&#xff1b;如果返回假&#xff0c;则不渲染。 基本用法: <p v-if"isVisible">看到我了吗&#…

【vim 学习系列文章 3.2 -- vim 删除 空格】

文章目录 vim 删除行尾空格 vim 删除行尾空格 在代码开发的过程中&#xff0c;经常会遇到行尾有空格的现象&#xff0c;如下&#xff1a; 我们可以在 .vimrc 中通过map 命令来映射删除行尾空格的快捷键&#xff0c;如下&#xff1a; map d<space> :%s/\s*$//g <cr…

3分钟彻底搞懂Web UI自动化测试之【POM设计模式】

为什么要用POM设计模式 前期&#xff0c;我们学会了使用PythonSelenium编写Web UI自动化测试线性脚本 线性脚本&#xff08;以快递100网站登录举例&#xff09;&#xff1a; import timefrom selenium import webdriver from selenium.webdriver.common.by import Bydriver …

尚硅谷Ajax笔记

一天拿下 介绍二级目录三级目录 b站链接 介绍 ajax优缺点 http node.js下载配置好环境 express框架 切换到项目文件夹&#xff0c;执行下面两条命令 有报错,退出用管理员身份打开 或者再命令提示符用管理员身份打开 npm init --yes npm i express请求 <script>//引…

【Docker】使用VS创建、运行、打包、部署.net core 6.0 webapi

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《Docker容器》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对…

《Pandas 简易速速上手小册》第6章:Pandas 时间序列分析(2024 最新版)

文章目录 6.1 时间序列数据基础6.1.1 基础知识6.1.2 重点案例&#xff1a;股票市场分析6.1.3 拓展案例一&#xff1a;温度变化分析6.1.4 拓展案例二&#xff1a;电商平台日销售额分析 6.2 日期与时间功能6.2.1 基础知识6.2.2 重点案例&#xff1a;活动日志分析6.2.3 拓展案例一…

022 do while循环

什么是do while循环 int i 0; do {System.out.println(i);i; } while (i < 100); 具体使用场景 int i; Scanner scanner new Scanner(System.in); do {System.out.print("请输入一个整数&#xff0c;如果为负数则结束循环&#xff1a;");i scanner.nextInt(…

基于极大似然法和最小二乘法系统参数辨识matlab仿真,包含GUI界面

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 1.极大似然法系统参数辨识 2. 最小二乘法系统参数辨识 5.完整程序 1.程序功能描述 分别对比基于极大似然法的系统参数辨识以及基于最小二乘法的系统参数辨识&#xff0c;输出起参数辨识收敛…

Scrum敏捷研发管理全流程/scrum管理工具

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具&#xff0c;提供端到端敏捷研发管理解决方案&#xff0c;涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo领歌上手快、实施成本低&#xff0c;可帮助企业快速落地敏捷&#xff0c;提质增效、缩短周期、加速创新…

二进制、原码、反码、补码

一、 二进制在运算中的说明 二、原码、反码、补码 1、二进制的最高位是符号位&#xff1a;0表示正数&#xff0c;1表示负数 2、正数的原码、反码、补码相同&#xff08;三码合一&#xff09; 3、负数的反码它的原码符号位不变&#xff0c;其它位取反&#xff08;0变1,1变0&…
最新文章