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

news2024/11/28 0:53:28

单细胞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.coloradmin.cn/o/1425644.html

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

相关文章

echarts 饼图循环高亮展示

echarts 饼图循环高亮展示 this.categorychart.setOption(option);let currentIndex 0; // 当前高亮图形在饼图数据中的下标selectPie()if (this.changePieInterval)clearInterval(this.changePieInterval);this.changePieInterval setInterval(selectPie, 5000); // 设置自动…

实现vue3响应式系统核心-shallowReactive

简介 今天来实现一下 shallowReactive 这个 API。 reactive函数是一个深响应,当你取出的值为对象类型,需要再次调用 reactive进行响应式处理。很明显我们目前的代码是一个浅响应,即 只代理了对象的第一层,也就是 shallowReactiv…

以 AI 升级自我 | Kyligence 荣获多个奖项及榜单认可

回顾 2023 年的企业开年信,Kyligence 联合创始人兼 CEO 韩卿借用了历史上一句经典口号“时间就是金钱,效率就是生命”,鼓励团队顺势而为,抓住时代的机会,快速发展,快速成长。 Kyligence 一直都在践行“Ret…

【系统设计】12306架构设计难点(下)

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…

Linux第38步_编译“正点原子移植好的uboot”

uboot的全称是Universal Boot Loader,uboot是一个遵循GPL协议的开源软件,uboot是一个裸机代码,可以看作是一个裸机综合例程。现在的 uboot 已经支持液晶屏、网络、USB等高级功能。 uboot官方的uboot源码是给所有的半导体厂商准备的。ST公司会…

c++ 字符串切分split

c 字符串切分split 的举例实现 一共给出了四种方式 1、 strtok 2、 stringstream 3、 字符串查找 4、 基于封装的方式&#xff0c;提供了 c11 foreach 接口 代码 vector<string> split(string s) {vector<string> res;const char *p strtok((char *) s.c_str(),…

【LVGL源码移植】

LVGL源码移植 ■ LVGL源码移植一&#xff1a;下载LVGL源码二&#xff1a;修改LVGL文件夹1: 将这5个文件&#xff0c;复制到一个新的文件夹2: 简化文件&#xff0c;减少内存消耗&#xff08;去除不必要的文件&#xff09;3: 为了规范化&#xff0c;我们将下列文件进行重命名 三&…

强化学习 - Monte Carlo Tree Search (MCTS)

什么是机器学习 强化学习中的Monte Carlo Tree Search (MCTS) 是一种用于决策制定和搜索的算法&#xff0c;特别在不确定环境下表现出色。 1. 强化学习背景 在强化学习中&#xff0c;一个智能体通过与环境的交互学习&#xff0c;以便在某个任务上获得最大的奖励。MCTS是一种…

Kotlin 协程:深入理解 ‘lifecycleScope‘

Kotlin 协程&#xff1a;深入理解 ‘lifecycleScope’ Kotlin 协程是一种强大的异步编程工具&#xff0c;它提供了一种简洁、易读的方式来处理并发和异步操作。在 Kotlin 协程库中&#xff0c;lifecycleScope 是一个关键的概念&#xff0c;它允许我们将协程的生命周期绑定到 An…

LeetCode 828. 统计子串中的唯一字符

一开始想的是两次前缀和&#xff0c;发现自己蠢了 看了灵神的题解&#xff0c;类似于DP的思想 我们维护以每个字符串结尾的子字符串对答案的贡献&#xff0c;s[i]的贡献是多少&#xff1f;首先我们知道他需要自己单独一个串或者接在以s[i-1]结尾的那些字符串的后面&#xff0c…

从法律风险的角度看待项目验收前自测的必要性

大家好&#xff0c;我是不会魔法的兔子&#xff0c; 一枚从事企业合同纠纷预防与解决的执业律师&#xff0c;从法律的角度分享关于项目管理中的问题及预防&#xff0c;让项目管理者能够提早发现与解决项目执行过程中的风险&#xff0c;同时欢迎大家一起交流&#xff0c;微信搜…

做外贸发货时发现货物有问题要怎么办

一个客户向一个伙伴订购了一批衣服&#xff0c;在准备装货的时候&#xff0c;小伙伴到工厂检查货物&#xff0c;发现衣服非常的潮湿&#xff0c;于是小伙伴担心货物万一经过长期的海运&#xff0c;到达客户那边发霉了怎么办呢&#xff1f; 但是工厂这边已经打好包装&#xff0c…

MySQL备份和恢复(二)mysqldump

注意&#xff1a;mysqldump是完全备份 一、mysqldump备份命令 1、 备份数据库 含创建库语句 &#xff08;1&#xff09;备份指定数据库 完全备份一个或多个完整的库&#xff0c; mysqldump -uroot -p[密码] --databases 库名1 [库名2].. >/备份路径/备份文件名.sql#导出…

CS144--Chapter0--wsl2+docker环境搭建

我的笔记本配置 荣耀magicbook16&#xff0c;容量是500G&#xff0c;芯片是R7-5800 由于笔记本容量较小&#xff0c;因此考虑这个方案&#xff0c;对于台式机用户&#xff0c;建议可以直接用虚拟机或者双系统。 前言 斯坦福官网给出的方法是用他们的镜像&#xff08;基于Ubu…

【Vue】2-8、Axios 网络请求

cdn&#xff1a;<script src"https://unpkg.com/axios/dist/axios.min.js"></script> 注&#xff1a;使用 CDN 链接就可以不需要去下载对应的 js 文件到本地&#xff0c;只需要联网即可使用&#xff0c;可以减少项目的体积 <!DOCTYPE html> <…

minio文件跨域问题

问题&#xff1a; 最近前端获取音频的波形报了个错&#xff1a; Access to audio at http://xxx/03.wav from origin http://zzz has been blocked by CORS policy: The Access-Control-Allow-Origin header contains multiple values zzz, *, but only one is allowed. 很奇怪…

FullStack之Django(2)模型和后台

FullStack之Django(2)模型和后台 author: Once Day date:2022年2月13日/2024年1月31日 漫漫长路&#xff0c;才刚刚开始… 全系列文档请查看专栏: FullStack开发_Once_day的博客-CSDN博客Django开发_Once_day的博客-CSDN博客 参考文档: 编写你的第一个 Django 应用&#…

归并排序----C语言数据结构

目录 引言 1.归并排序的实现----c2.归并排序的复杂度分析时间复杂度空间复杂度 引言 归并排序&#xff08;Merge Sort) 是一种基于分治法的排序算法&#xff0c;它的基本思想是将原始数组划分成较小的数组&#xff0c;然后递归地对这些小数组进行排序&#xff0c;最后将排好序…

实战项目(二)汽车保养管家系统

一、实现技术 前端技术&#xff1a;html、javascript(jquery、ajax、json)、css、layui 后端技术&#xff1a;java、mysql、servlet 开发工具&#xff1a;eclipse、vscode 二、项目描述 基于web的汽车保养管家系统的设计与实现 一、功能需求 1&#xff0e;用户功能 1.1…

Flink 1.18.1 部署与配置[CentOS7]

静态IP设置 # 修改网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33# 修改文件内容 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic IPADDR192.168.18.128 NETMASK255.255.255.0 GATEWAY192.168.18.2 DEFROUTEyes IPV4_FAILURE_FATALno IPV6INIT…