美文网首页生物信息学生物信息数据科学
28.《Bioinformatics-Data-Skills》之

28.《Bioinformatics-Data-Skills》之

作者: DataScience | 来源:发表于2021-06-23 10:04 被阅读0次

《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进行展示。

相关文章

网友评论

    本文标题:28.《Bioinformatics-Data-Skills》之

    本文链接:https://www.haomeiwen.com/subject/mwavyltx.html