Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

数据存储格式小知识:tar、gz、tar.gz、mtx、tsv、csv大揭秘! #5872

Closed
ixxmu opened this issue Nov 2, 2024 · 1 comment
Closed

Comments

@ixxmu
Copy link
Owner

ixxmu commented Nov 2, 2024

https://mp.weixin.qq.com/s/0h0XGMmSSEy7zAsFs2dNvA

@ixxmu
Copy link
Owner Author

ixxmu commented Nov 2, 2024

数据存储格式小知识:tar、gz、tar.gz、mtx、tsv、csv大揭秘! by 生信星球

 今天是生信星球陪你的第1013天

   
公众号里的文章大多数需要编程基础,如果因为代码看不懂,而跟不上正文的节奏,可以来找我学习,相当于给自己一个新手保护期。我的课程都是循环开课,点进去咨询微信↓
生信分析直播课程(每月初开一期,春节休一个月)
生信新手保护学习小组(每月两期)
单细胞陪伴学习小组(每月两期)

我们在做数据分析时,会遇到不同的作者提供的各种各样的文件格式,一点都不统一。尤其是单细胞数据,格式更是多样。

例如这个GSE176078数据,它提供的格式就很杂乱,我不止一次发现很多同学并不认识这些格式!

我问:你的数据是什么格式?

回答tar的也有,回答gz的也有。tar和gz可不是真正的文件格式啊!

打包和压缩格式

🔖 TAR:想象一下,你有一堆文件想要打包带走,TAR就是那个打包盒。它将多个文件捆绑在一起,方便备份和传输。但它本身并不压缩,想要变小,还得找帮手👇。

🗜️ GZ:GZ就是那个帮手,它是GNU项目出品的压缩专家,能让文件体积大大减小,节省空间。

⚠虽然windows电脑上的gz文件图标像一个文件夹,但它不是文件夹哦。

gz只能压缩一个文件,如果要压缩多个文件,那就使用zip或者是先打包(tar)再压缩👇。

🧳 TAR.GZ:当TAR遇上GZ,就有了TAR.GZ。它结合了TAR的打包和GZ的压缩,是GEO数据库里非常常见的文件存储格式。

要查看别人提供的打包和压缩文件,需要解包和解压,用代码或者用解压软件都可以,例如7zip,右键一点,一看就会。

纯文本格式

或许不学编程时,并不知道表格还有除了xlsx之外的格式。

xlsx是excel的电子表格,他不是纯文本,不够纯粹,很多地方打开不方便。

套用我神奇的曾老板的一句名言:

电脑上的文件只分两类,一类是文本,一类是灰(非)文本!

所以tsv、txt和csv其实没有本质的区别,只是列与列之间的分隔符不同罢了!

这些文件都可以用excel打开,但你在excel里面是看不到分隔符的,因为excel是表格视图,它的竖线其实就是靠分隔符识别而来的。

比如一个csv文件:

如果用sublime或者记事本这类文件打开,就可以看到文件具体的分隔符 ,如果写代码要用到,就知道该写什么分隔符了。

📊 tsv:制表符分隔值,制表符在代码里写作\t,键盘上q前面的tab键按一下就是大概4个空格的宽度,那就是制表符,xlsx文件的分隔符也是制表符。

📋 csv:逗号分隔值。

🔖 txt:空格或者制表符分隔值。

mtx格式

🔢 mtx:只有单细胞数据才会用到mtx格式。10X的标准数据就是3个文件,其实上面的tar.gz里面就是3个文件:

它其实是把一个单细胞表达矩阵拆成3部分,行名列名各是一个tsv,主体部分非零的值,才记录在mtx文件里,主体部分每一行有三个数字,第一个是行号,第二个是列号,第三个是具体的值,没记录的全都是0。

例如这个文件里,总共有32738行,2700列,2286884个非零的值。后面几行则是:

第32709行,第1列的值为4,

第32709行,第1列的值为1...以此类推。

❓那它为什么不直接给咱一个表格文件呢,还要这样一个一个的写?

当然是因为单细胞矩阵里面0值太多,如果你去计算一下2286884/(32738*2700)你会发现只占到2.5%,也就是说绝大多数的格子里都是0,全部提供就太占地方了,所以才有了mtx这种格式,节省空间。

了解这些文件格式,才能知道自己该怎么提取数据和读取它们,读取不同格式的单细胞数据文件,墙裂推荐这一篇:https://mp.weixin.qq.com/s/KVsWoX6hCDl9TAgPR45NiA



@ixxmu ixxmu changed the title archive_request 数据存储格式小知识:tar、gz、tar.gz、mtx、tsv、csv大揭秘! Nov 2, 2024
@ixxmu ixxmu closed this as completed Nov 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant