本文示例怎样打开和编辑一个超大 TCGA(癌症基因图谱)文本数据文件(8.4G)。包括检测文件信息、处理成每 1000 行一个的小文件。使用的命令有:wc、sed、head、split等。查看命令 less,编辑器 vim、Sublime Text、Atom、UltraEdit。最后着重介绍一个可以直接打开单独原始文件的软件 CSView。示范平台: i7 4770 CPU,16G内存,Deepin 20.9 Linux。视频演示地址:【如何打开和编辑超大(8.4G)TAB 分隔的 TCGA(癌症基因图谱)文本文件】 https://www.bilibili.com/video/BV1zw411u7hq/?share_source=copy_web&vd_source=d1925b070926f23b2b6676137251e9ea
一、TCGA 数据
下载:TcgaTargetGtex_rsem_gene_fpkm.gz
解压数据:gunzip -k *.gz
二、数据基本信息
解压开的文件大小:8.4G
数据行数:wc -l *pkm
,60499行。
是否是 TAB 分隔和数据行数:sed 's/\t/\n/g;q' *pkm | wc -l
,19132列。
数据样例:head -n 2 *pkm > head_2.tsv
把原来的数据原文件添加.tsv的后缀成:TcgaTargetGtex_rsem_gene_fpkm.tsv
三、分割成小文件
用 WPS 表格或 Excel 都无法打开原始的 tsv 文件。用 vim 会卡死 Linux,用 less 可以查看。
mkdir TcgaTargetGtex_rsem_gene_fpkm_split -v
split -l 1000 --suffix-length=2 --additional-suffix=.tsv TcgaTargetGtex_rsem_gene_fpkm.tsv TcgaTargetGtex_rsem_gene_fpkm_split/
这样就可以用 WPS 表格或 Excel 打开了。但是由于电子表格软件列数不能超过 16384,所以会丢失多出的列。如果要编辑的话,这种分割的小文件用 vim、Sublime Text、Atom、UltraEdit 就可以了。
四、可以直接打开特定符号分割的超大文本文件的跨平台软件
CSView - A fast viewer for very large CSV files https://kothar.net/csview
Linux 下:java -jar csview-1.3.3-linux.jar
选要打开的文件就行了。
但 CSView 只能查看,不能编辑。
我尝试了一下,Linux 下用 UltraEdit 可以直接打开这个8.4G的原始文件,但我设置交换内存到24G,直接替换 TAB 为英文逗号,依然报告内存不足,不能完成操作。但修改少量文字可以编辑保存成功。感兴趣的朋友可以尝试加大内存和交换内存试试。