- 28.《Bioinformatics-Data-Skills》之
- 18.《Bioinformatics-Data-Skills》之
- 19.《Bioinformatics-Data-Skills》之
- 17.《Bioinformatics-Data-Skills》之
- 25.《Bioinformatics-Data-Skills》之
- 25.《Bioinformatics-Data-Skills》之
- 23.《Bioinformatics-Data-Skills》之
- 24.《Bioinformatics-Data-Skills》之
- 21.《Bioinformatics-Data-Skills》之
- 20.《Bioinformatics-Data-Skills》之
《Bioinformatics-Data-Skills》之cut & column
对于表格型文本数据(tsv,csv等),这里介绍两个命令,分别是提取特定列的命令cut与命令行中的可视化命令column。
cut
cut用于提取有固定分隔的列,例如我们提取bed文件的第一列(染色体位置):
$ cut -f1 Mus_musculus.GRCm38.75_chr1.bed | head -n3
1
1
1
提取多列采用-f1-8(提取第1到第8列)或者-f1,5,8(提取第1,5,8列)。注意提取多列无法排序操作,例如-f8,5,3的效果和-f3,5,8的结果是一致的。
$ grep -v "^#" Mus_musculus.GRCm38.75_chr1.gtf | cut -f1-8 | head -n3
1 pseudogene gene 3054233 3054733 . + .
1 unprocessed_pseudogene transcript 3054233 3054733 . + .
1 unprocessed_pseudogene exon 3054233 3054733 . + .
默认的分隔符是\t,可以使用-d指定其它的分隔符,例如使用-d,提取csv文件的列:
$ cut -d, -f2-3 Mus_musculus.GRCm38.75_chr1_bed.csv | head -n3
3054233,3054733
3054233,3054733
3054233,3054733
column
查看tsv文件的时候,各列的排列很不整齐:
$ grep -v "^#" Mus_musculus.GRCm38.75_chr1.gtf | cut -f1-8 | head -n3
1 pseudogene gene 3054233 3054733 . + .
1 unprocessed_pseudogene transcript 3054233 3054733 . + .
1 unprocessed_pseudogene exon 3054233 3054733 . + .
我们可以通过column命令来美化:
$ grep -v "^#" Mus_musculus.GRCm38.75_chr1.gtf | cut -f1-8 | head -n3 | column -t
1 pseudogene gene 3054233 3054733 . + .
1 unprocessed_pseudogene transcript 3054233 3054733 . + .
1 unprocessed_pseudogene exon 3054233 3054733 . + .
column命令默认的分隔符也是\t,其它分隔符采用-s参数指定,例如展示csv文件:
$ column -s, -t Mus_musculus.GRCm38.75_chr1_bed.csv | head -n3
1 3054233 3054733
1 3054233 3054733
1 3054233 3054733
注意,column只用于命令行进行数据可视化,不要将这种可视化存入文本数据中。一个重要的原则是:给代码给人看,写数据给电脑看。虽然通过添加任意的空格提高了数据的可读,但是不利于程序处理,可以在需要查看数据的时候调用column进行展示。






网友评论