前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Seurat对象的构建和信息提取

Seurat对象的构建和信息提取

作者头像
小汪Waud
发布于 2023-02-16 09:07:12
发布于 2023-02-16 09:07:12
2.8K20
代码可运行
举报
文章被收录于专栏:小汪Waud小汪Waud
运行总次数:0
代码可运行

本期来介绍一下单细胞分析的第一步,Seurat 对象的构建和信息提取。

目前构建 Seurat 对象有以下几种方法:

  • 从 CellRanger 输出构建
  • 从 h5 文件构建
  • 从表达矩阵构建

从 CellRanger 输出构建

公司在完成表达定量后,通常会使用 CellRanger 对数据进行简单的分析,得到以下三个文件。

  • barcodes.tsv 用于储存细胞信息
  • genes.tsv 用于储存基因信息
  • matrix.mtx 表达矩阵

需要注意的是如果文件名不为以上三个,需要手动进行修改。

后续的分析在R语言中用 Seurat 包完成,需要将表达数据导入 R,并构建 Seurat 对象。

以数据GSE134809[1]的 GSM3972009 为例,在 GEO 界面选中并下载后解压。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(Seurat)
# 读取 CellRanger 输出结果
ScRNAdata = Read10X(data.dir = "GSE134809_RAW/")

# 此时的 ScRNAdata 是一个稀疏矩阵 dgCMatrix
# > class(ScRNAdata)
# [1] "dgCMatrix"
# attr(,"package")
# [1] "Matrix"

# 构建 Seurat 对象 
# 初步过滤一般不需要修改参数,除非数据实在太难看
Seurat_object <- CreateSeuratObject(
counts = ScRNAdata, # 表达矩阵,可以为稀疏矩阵,也可以为普通矩阵
min.cells = 3, # 去除在小于3个细胞中表达的基因
min.features = 200) # 去除只有 200 个以下基因表达的细胞

稀疏矩阵:在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵。

从 h5 文件构建

以数据GSE122960[2]的 GSM3489182 为例,在 GEO 界面选中并下载后解压。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(Seurat)
ScRNAdata <- Read10X_h5(filename = "GSM3489182_Donor_01_raw_gene_bc_matrices_h5.h5")

Seurat_object <- CreateSeuratObject(
counts = ScRNAdata, 
min.cells = 3, 
min.features = 200)

从表达矩阵构建

以数据GSE106118的GSM2829942[3]为例,在 GEO 界面选中并下载后解压。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ScRNA_exp <- read.table(
  "data/GSM2829942/GSM2829942_HE6W_LA.TPM.txt",
  row.names = 1,
  header = T)

Seurat_object <- CreateSeuratObject(
counts = ScRNA_exp, 
min.cells = 3, 
min.features = 200)

对Seurat对象的理解和信息提取

展开我们构建好的Seurat对象可以发现有非常多的信息,我们该如何理解Seurat对象?又该如何提取其中的细胞信息表和表达矩阵呢?

仍以数据 GSE122960 的 GSM3489182 为例。

Seurat对象的理解

先来看看它的文件类型,可以理解为一个变量。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> class(Seurat_object)
[1] "Seurat"
attr(,"package")
[1] "SeuratObject"

再来看看其维度,共有19520行即基因数,7222列即细胞数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> dim(Seurat_object)
[1] 19520  7222

最后来理解一下创建Seurat对象的函数,最重要的参数就是counts,所以Seurat对象可以简单理解为包含着表达矩阵的一个变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CreateSeuratObject(
  counts,
  project = "CreateSeuratObject",
  assay = "RNA",
  names.field = 1,
  names.delim = "_",
  meta.data = NULL,
  ...
)

信息提取

表达矩阵
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gene_exp = Seurat_object@assays[["RNA"]]@counts

由于其稀疏矩阵的属性,此时的gene_exps不是传统二维的表达矩阵。

细胞信息表
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
meta.data = Seurat_object@meta.data

参考资料

[1] GSE134809下载链接: https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE134809

[2] GSE122960下载链接: https://www.ncbi.nlm.nih.gov/geo/query/acc.cgiGSE122960

[3] GSM2829942下载链接: https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM2829942

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小汪Waud 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
2 条评论
热度
最新
我搭建了flannel,使得三台主机上的容器能相互联通,在成功启动slurm服务后,三台节点都是idle状态,但是srun -N2 hostname后,只有当前所在node能执行任务,另一台node无法执行,日志显示connect io:connection refused,不知道是什么原因
我搭建了flannel,使得三台主机上的容器能相互联通,在成功启动slurm服务后,三台节点都是idle状态,但是srun -N2 hostname后,只有当前所在node能执行任务,另一台node无法执行,日志显示connect io:connection refused,不知道是什么原因
11点赞举报
srun 申请两个节点没有尝试过,个人一般使用 sbatch 提交脚本的方式申请多节点,测试运行是没有问题的。
srun 申请两个节点没有尝试过,个人一般使用 sbatch 提交脚本的方式申请多节点,测试运行是没有问题的。
回复回复点赞举报
推荐阅读
CONQUEST 编译安装指南 Slurm 篇
  在实际的生产环境中,使用单用户模式直接运行命令的机会不是很多,通常是采用提交作业任务给集群计算的方式。这样一来既能节约资源和时间,又能申请到更大规模的计算资源,对于平台管理人员还是用户来说都是非常有利的。国家超算中心,地方超算中心,学校超算中心一般都对外提供这样的服务,不过需要按核时进行计费。所谓“核时”就是一个 CPU 核运行一个小时,这也是高性能计算中通常使用的资源衡量单位。作为超算中心或者高性能集群,必不可缺的就是集群作业管理系统,它可以根据用户的需求,统一管理和调度集群的软硬件资源,保证用户作业公平合理地共享集群资源,提高系统利用率和吞吐率。
zhonger
2022/10/28
2.7K0
【swarm】docker环境下的集群服务
Docker Client:客户端 Swarm Manager: 管理器节点 Scheduler:调度器
Xiongan-桃子
2023/06/10
3280
【swarm】docker环境下的集群服务
附016.Kubernetes_v1.17.4高可用部署
Kubernetes的高可用主要指的是控制平面的高可用,即指多套Master节点组件和Etcd组件,工作节点通过负载均衡连接到各Master。HA有通常有如下两种架构:
木二
2020/06/18
9470
附016.Kubernetes_v1.17.4高可用部署
附022.Kubernetes_v1.18.3高可用部署架构一
Kubernetes的高可用主要指的是控制平面的高可用,即指多套Master节点组件和Etcd组件,工作节点通过负载均衡连接到各Master。
木二
2020/06/16
1.3K0
基于 Docker 快速部署 Elasticsearch 集群
在刚刚新建的目录(/root/app/elasticsearch)创建docker-compose.yml文件,基于镜像elasticsearch:7.4.0
茶半香初
2021/11/26
1.6K0
基于 Docker 快速部署 Elasticsearch 集群
附037.Kubernetes_v1.29.2高可用部署架构二
该 Kubernetes 部署过程中,对于部署环节,涉及多个组件,主要有 kubeadm 、kubelet 、kubectl。
木二
2024/03/11
1.1K0
slurm--网络配置指南
在Slurm集群中,有很多组件需要能够相互通信。有些站点有安全要求,不能打开机器之间的所有通信,需要有选择地打开必要的端口。本文件将介绍不同的组件需要怎样才能相互交流。
姚华
2023/02/22
2.7K0
Prometheus监控Docker Swarm集群(二)
前面我讲解了对于Docker的一些监控知识以及Docker监控开源工具Weave Scope做了一个概述,以及简单安装。
Kubernetes技术栈
2020/07/02
2.7K0
Prometheus监控Docker Swarm集群(二)
使用Docker三剑客部署集群
DOCKER技术在推出后掀起了一阵容器化技术的热潮,容器化使得服务的部署变得极其简易,这为微服务和分布式计算提供了很大的便利。
Marky Lumin
2018/01/23
2.1K0
Docker Swarm 初步认识 及 集群搭建
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情
鳄鱼儿
2024/05/22
2300
Docker Swarm 初步认识 及 集群搭建
Slurm学习笔记(二)
scontrol show partition显示全部队列信息,scontrol show partition PartitionName或 scontrol show partition=PartitionName显示队列名PartitionName的队列信息,输出类似:
种花家的奋斗兔
2021/01/06
4.4K0
017.Kubernetes二进制集群扩容worker
为了更方便远程分发文件和执行命令,本实验配置master节点到其它节点的 ssh 信任关系。
木二
2020/07/01
5680
017.Kubernetes二进制集群扩容worker
slurm--核算和资源限制
Slurm可以被配置为收集每个作业和作业步骤执行的核算信息。核算记录可以被写入一个简单的文本文件或一个数据库。目前正在执行的作业和已经终止的作业的信息都是可用的。sacct命令可以报告正在运行或已经终止的作业的资源使用情况,包括单个任务,这对于检测任务之间的负载不平衡非常有用。sstat命令可用于仅对当前正在运行的作业进行统计。它也可以为你提供关于任务之间不平衡的有价值的信息。sreport可以用来生成基于特定时间间隔内执行的所有作业的报告。
姚华
2023/03/08
3.6K0
Slurm 快速入门:资源管理与作业调度系统
本文将介绍slurm,一个 Linux服务器中的集群管理和作业调度系统。并对其基础命令和运行方式进行实战演练。
数据科学工厂
2023/02/27
5.3K0
Slurm 快速入门:资源管理与作业调度系统
在腾讯云上构建高性能计算平台:从零开始的实战指南
随着科技的发展,高性能计算(High-Performance Computing,HPC)已成为数据科学、人工智能、金融建模等领域的关键需求。作为一名技术爱好者,我决定在腾讯云上构建一个高性能计算平台,以满足我在大数据分析和机器学习训练方面的需求。本文将详细介绍这个过程,希望能为其他有相似需求的朋友提供一些参考。
Echo_Wish
2025/01/22
2520
在腾讯云上构建高性能计算平台:从零开始的实战指南
2-Kubernetes入门之CentOS安装部署集群
描述: 通过上一篇K8s入门体系架构学习我们初步的了解单节点的master与worker的工作部署流程,但是前面所用的是kuboard所提供的安装脚本作为测试练手安装还是可以将就的,但是在实际的生产的环境中由于业务的复杂性和多样性需要依靠集群来保证其安全可靠性;
全栈工程师修炼指南
2022/09/29
1.1K0
2-Kubernetes入门之CentOS安装部署集群
Exceptionless 5.0.0本地Docker快速部署介绍
在之前我有专门写两篇文章介绍过Exceptionless这款开源日志项目的使用和部署,但是当时是基于4.1.0版本(2017年的release),时隔两年多Exceptionless也推出了5.0.0版本。
心莱科技雪雁
2019/11/07
1.1K0
docker-compose快速部署elasticsearch-8.x集群+kibana
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 前文《Docker下elasticsearch8部署、扩容、基本操作实战(含kibana)》介绍了用docker快速部署es和kibana的过程,然而整个过程人工操作步骤还是多了点,能不能更简单些呢?毕竟很多时候大家关注的是使用,不愿在部署上费太多时间 借助docker-compose,可以将es集群+kibana的安装过程可以进一步简化,精简后的步骤
程序员欣宸
2022/06/13
5.5K2
docker-compose快速部署elasticsearch-8.x集群+kibana
附018.K3S-ETCD高可用部署
K3S是一个轻量级Kubernetes发行版。易于安装,内存消耗低,所有二进制文件不到40mb。
木二
2020/05/22
2.1K0
附018.K3S-ETCD高可用部署
docker swarm 和 docker-compose ?
要用到的通信接口开放,集群节点之间保证2377/TCP、7946/TCP、7946/UDP和4789/UDP端口通信(或者直接关闭防火墙 systemctl stop firewalld)
友儿
2022/09/13
1K0
推荐阅读
相关推荐
CONQUEST 编译安装指南 Slurm 篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验