查看gz文件 linux zcat file.gz mtx.gz
可以使用以下命令来查看 gz 压缩文件的内容: zcat file.gz 1 该命令会将 file.gz 文件解压并输出到标准输出,可以通过管道符将其与 grep 命令结合使用来查找需要的关键词,例如: zcat file.gz | grep keyword 1 该命令会将 file.gz 文件解压并输出到标准输出,然后通过管道符将其传递给 grep 命令,查找包含关键词 “keyword” 的行。
挖掘公共单细胞数据集时,会遇到常见各种单细胞测序数据格式。现总结如下,方便自己日后调用,以创建Seurat对象
(1)barcodes.tsv.gz
、features.tsv.gz
、matrix.mtx.gz
(2)表达矩阵
(3)h5
(4)h5ad
格式一:barcodes.tsv.gz
、features.tsv.gz
、matrix.mtx.gz
【☆】
- 这是cellranger上游比对分析产生的3个文件,分别代表细胞标签(barcode)、基因ID(feature)、表达数据(matrix)
- 一般先使用
read10X()
对这三个文件进行整合,得到行为基因、列为细胞的表达矩阵(为稀疏矩阵dgCMatrix格式,节约内存);然后再配合CreateSeuratObject()
函数创建Seurat对象 - 示例数据集:GSE166635,创建代码如下----
https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE166635
dir="./data/HCC2/filtered_feature_bc_matrix/"
list.files(dir)
#[1] "barcodes.tsv.gz" "features.tsv.gz" "matrix.mtx.gz" counts <- Read10X(data.dir = dir)
class(counts)
#[1] "dgCMatrix"
#attr(,"package")
#[1] "Matrix"scRNA <- CreateSeuratObject(counts = counts)
scRNA
#An object of class Seurat
#33694 features across 9112 samples within 1 assay
#Active assay: RNA (33694 features, 0 variable features)
- 如上
Read10X()
函数接受的参数为目录名,该目录包含了所需的三个配套文件;值得注意的是三个文件名只能分别是barcodes.tsv.gz
、features.tsv.gz
、matrix.mtx.gz
,然后read10X
函数可以自动加载。如上截图那样就是需要修改的~
关于barcodes.tsv.gz
、features.tsv.gz
、matrix.mtx.gz
三个文件的格式与内容
- 一般来说直接使用
read10X()
不会出现什么问题,但今天遇到GSE148192数据集时,出现了报错~~
dir = "./GSE148192_RAW/GSM4462451/"
list.files(dir)
#[1] "barcodes.tsv.gz" "features.tsv.gz" "matrix.mtx.gz"
counts = Read10X(dir)
#Error in dimnamesGets(x, value) :
# invalid dimnames given for “dgTMatrix” object
- 所以这个GSE ID提供的数据格式可能是有点问题,接下来就通过对比GSE166635的GSM5076750(可以正常读入)与GSE148192的GSM4462451(读入失败),探索下这三个文件的格式
(1)barcodes.tsv.gz
-
GSM5076750的格式:如下看出就简单的一列,为细胞的barcode标签信息
-
GSM4462451的格式:如下看出,区别在于多了行名,以及三列细胞注释信息
(2)features.tsv.gz
-
GSM5076750的格式:如下可以看出均为基因的注释信息,前两列为基因ID
-
GSM4462451的格式:如下看出,区别在于同样多了行名,以及额外两列信息
(3)matrix.mtx.gz
- GSM5076750的格式:如下(前三行为注释信息,其中第三行为total number genes、cells、counts),结合上述细胞标签与基因名信息,知道了前两列分别为基因和细胞的索引,第三列为表达信息。
利用这种方式实现了高效的储存数据(值得借鉴学习)。以第四行为例:表示barcodes.tsv.gz
文件里第一个细胞的features.tsv.gz
第33665个基因的counts数为22。 -
GSM4462451的格式:如下看出,区别有两点:第一列为细胞索引、第二列为基因索引,并且第3列是非整型数据。
经过一番探索,将GSM4462451的
barcodes.tsv.gz
、features.tsv.gz
行名删除;matrix.mtx.gz
的第一列与第二列调换,第三列改为整型后,read10X()
便可以顺利都成功。我认为GSM4462451这几个文件应该是作者自己制作的,吐槽一下~~。不过了解了一番这三个文件的格式也是有所收获。
格式二:直接提供表达矩阵
- 这种是最方便的,直接创建Seurat即可
- 示例数据:GSE144320
scRNA <- CreateSeuratObject(counts = counts)
scRNA
格式三:h5格式文件
- 使用
Read10X_h5()
函数,读入表达矩阵,在创建Seurat对象 - 示例数据:GSE138433
image.png
sce <- Read10X_h5(filename = GSM4107899_LH16.3814_raw_gene_bc_matrices_h5.h5")
sce <- CreateSeuratObject(counts = sce)
格式四:h5ad格式
- 需要安装,使用
SeuratDisk
包的两个函数; - 先将后
h5ad
格式转换为h5seurat
格式,再使用LoadH5Seurat()
函数读取Seurat对象。 - 示例数据集:GSE153643
#remotes::install_github("mojaveazure/seurat-disk")
library(SeuratDisk)
Convert("GSE153643_RAW/GSM4648565_liver_raw_counts.h5ad", "h5seurat",overwrite = TRUE,assay = "RNA")
scRNA <- LoadH5Seurat("GSE153643_RAW/GSM4648565_liver_raw_counts.h5seurat")
#注意一下,我之前载入时,表达矩阵被转置了,需要处理一下~
以上是我目前了解到的针对不同数据来源,创建Seurat对象的几种方式。如遇新的方法,会继续补充~~
©著作权归作者所有,转载或内容合作请联系作者
作者:小贝学生信
链接:https://www.jianshu.com/p/5b26d7bc37b7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关文章:

查看gz文件 linux zcat file.gz mtx.gz
可以使用以下命令来查看 gz 压缩文件的内容: zcat file.gz 1 该命令会将 file.gz 文件解压并输出到标准输出,可以通过管道符将其与 grep 命令结合使用来查找需要的关键词,例如: zcat file.gz | grep keyword 1 该命令会将 file.gz…...
互联网——根服务器
说明 根服务器是互联网域名系统(DNS)中最高级别的服务器之一。它们负责管理整个DNS系统的顶级域名空间,例如.com、.org和.net等。 根服务器的主要功能是将用户的DNS查询转发到适当的顶级域名服务器。当用户在浏览器中输入一个域名ÿ…...

华为OD机试之报文回路(Java源码)
题目描述 IGMP 协议中响应报文和查询报文,是维系组播通路的两个重要报文,在一条已经建立的组播通路中两个相邻的 HOST 和 ROUTER,ROUTER 会给 HOST 发送查询报文,HOST 收到查询报文后给 ROUTER 回复一个响应报文,以维持…...

林大数据结构【2019】
关键字: 哈夫曼树权值最小、哈夫曼编码、邻接矩阵时间复杂度、二叉树后序遍历、二叉排序树最差时间复杂度、非连通无向图顶点数(完全图)、带双亲的孩子链表、平衡二叉树调整、AOE网关键路径 一、判断 二、单选 三、填空 四、应用题...

2023华数杯数学建模A题思路分析 - 隔热材料的结构优化控制研究
# 1 赛题 A 题 隔热材料的结构优化控制研究 新型隔热材料 A 具有优良的隔热特性,在航天、军工、石化、建筑、交通等 高科技领域中有着广泛的应用。 目前,由单根隔热材料 A 纤维编织成的织物,其热导率可以直接测出;但是 单根隔热…...

Linux常用命令——dos2unix命令
在线Linux命令查询工具 dos2unix 将DOS格式文本文件转换成Unix格式 补充说明 dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进…...
【NLP pytorch】基于BERT_TextCNN新闻文本分类实战(项目详解)
基于BERT_TextCNN新闻文本分类实战项目 1 数据集介绍2 模型介绍3 数据预处理3.1 数据集加载3.2 统计文本长度分布4 BERT模型4.1 HuggingFace介绍4.2 HuggingFace使用4.2.1 加载预训练模型4.2.2 预训练模型的使用4.3 BERT模型使用4.3.1 编码和解码4.3.2 批处理4.3.3 词向量处理5…...

决策树与随机森林
目录 决策树是:Why:How:基本概念决策树生成举例决策树缺点参考 Demo 随机森林1.是:2.Why:3.How:参考 Demo 决策树 是: 1.一种有监督的分类(或预测)算法。 2.利用属性、…...
Nginx 网站服务
Nginx 稳定性高 (但是没有apache稳定) 版本号:1.12 1.20 1.22 系统资源消耗低 (处理http请求的并发能力很高,单台物理服务器可以处理30000-50000个并发请求) 稳定:一般在企业中,为了保持服务器稳定,并发量的…...

Python爬虫——爬虫时如何知道是否代理ip伪装成功?
前言 在进行爬虫时,我们可能需要使用代理IP来伪装自己的身份,以避免被网站封禁。如何判断代理IP是否伪装成功呢?本篇文章将围绕这个问题展开讲解,同时提供Python代码示例。 1. 确认代理IP地址 首先,我们需要确认代理…...
flink1.17 json_tuple udf 实现
使用效果 思路: flink1.17要求复杂类型必须通过hint指定每个字段类型, 只有固定个数,都是基础类型的flink才能自动推断. 这就导致json_tuple返回不定长参数无法搞定. 所以这里通过返回字符串数组来解决. 同时带来新的问题: 数组元素类型一样,导致fastjson2解析到的int也需要…...

Vue3实现6位验证码输入框,用户可以连续输入和删除
实现代码 可以随意填写删除 <template><div class"verification-container"><inputv-for"(code, index) in verificationCodes":key"index"v-model"verificationCodes[index]"input"handleInput(index, $event…...

如何在终端设置代理(设置jupyter notebook同理)
设置代理 在终端(我用的gitbash)下执行 set HTTP_PROXYhttp://<user>:<password><proxy server>:<proxy port> set HTTPS_PROXYhttp://<user>:<password><proxy server>:<proxy port>其中: user、password&#…...

git报错:Error merging: refusing to merge unrelated histories
碰对了情人,相思一辈子。 打命令:git pull origin master --allow-unrelated-histories 然后等一会 再push 切记不要有冲突的代码 需要改掉~...
QT-QLabel显示图片,按QLabel控件的大小自动缩放
要按照 QLabel 控件的大小调整并显示图片,你可以使用 scaled() 函数将 QPixmap 对象进行缩放,然后将缩放后的图片设置到 QLabel 上。下面是一个示例代码: #include <QApplication> #include <QLabel> #include <QPixmap>i…...

【JS代码调试技巧】你必须知道的Javascript技巧汇总
注:最后有面试挑战,看看自己掌握了吗 文章目录 使用控制台检查变量值控制台使用 type of 检查变量的类型捕获拼错的变量名和函数名捕获使用赋值运算符而不是相等运算符捕捉函数调用后缺少的左括号和右括号 🌸I could be bounded in a nutshel…...
JAVA-@Configuration注解属性proxyBeanMethods
Configuration注释中的proxyBeanMethods参数是springboot1.0,升级到springboot2.0之后新增的比较重要的内容,该参数是用来代理bean的。 理论 首先引出两个概念:Full 全模式,Lite 轻量级模式 Full(proxyBeanMethods true) :pro…...
锁策略, cas 和 synchronized 优化过程总结
目录 一、锁策略 1. 乐观锁和悲观锁 2. 读写锁 3. 重量级锁和轻量级锁 4. 自旋锁 5. 公平锁和非公平锁 6.可重入锁 vs 不可重入锁 二、CAS 1. CAS 是怎么实现的 1) 实现原子类 2) 实现自旋锁 3. CAS 的 ABA 问题 三、Synchronized 原理 1.Synchronized 加锁工作过程 3.1 偏向…...

正点原子HAL库入门1~GPIO
探索者F407ZGT6(V3) 理论基础 IO端口基本结构 F4/F7/H7系列的IO端口 F1在输出模式,禁止使用内部上下拉 F4/F7/H7在输出模式,可以使用内部上下拉不同系列IO翻转速度不同 F1系列的IO端口 施密特触发器:将非标准方波,整形为方波 当…...
华为VRP 系统基础配置
1.flash 相当于电脑的 硬盘 2.NVRAM 拿来专门存放系统配置文件 3.RAM 运行内存 4.ROM 系统引导 1.修改系统名[Huawei]sysname SWL1 2.配置登入信息 [SWL1]header shell information "Welocom to the learning" [SWL1]q <SWL1>q User interface con0 …...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
Spring Security 认证流程——补充
一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...