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

32.《Bioinformatics Data Skills》之

作者: DataScience | 来源:发表于2021-06-28 19:43 被阅读0次

    Unix中uniq命令的用法比较简单,用来排除文本(或者标准化输入)中连续出现的重复值。用好这个命令可以在不将数据导入R或者Excel的情况下方便地对数据进行统计。


    首先,我们以letters.txt文件为例(如下)了解uniq的基本用法。

    $ cat letters.txt
    A
    A
    B
    C
    B
    C
    C
    C
    
    $ uniq letters.txt
    A
    B
    C
    B
    C
    

    由于uniq只会排除掉连续出现的重复值,所以上面的用法并没有得到唯一值。更常用的操作组合是sort | uniq

    $ cat letters.txt | sort | uniq
    A
    B
    C
    

    注:uniq可以通过-i参数忽视字母的大小写敏感


    uniq最重要参数是-c,其反映了不同值出现的次数,方便统计:

    $ cat letters.txt | sort | uniq -c
          2 A
          2 B
          4 C
    

    通过此用法我们可以统计小鼠参考基因组注释文件中基因的不同的特征出现数目:

    $ grep -v "^#" Mus_musculus.GRCm38.75_chr1.gtf | cut -f3 | sort | uniq -c
      25901 CDS
       7588 UTR
      36128 exon
       2027 gene
       2290 start_codon
       2299 stop_codon
       4993 transcript
    

    可以在上述命令行的最后追加sort -nr来根据出现数目由多到少进行排序:

    $ grep -v "^#" Mus_musculus.GRCm38.75_chr1.gtf | cut -f3 | sort | uniq -c | sort -nr
      36128 exon
      25901 CDS
       7588 UTR
       4993 transcript
       2299 stop_codon
       2290 start_codon
       2027 gene
    

    也可以用来统计某一基因的不同特征出现数目:

    $ grep "ENSMUSG00000033793" Mus_musculus.GRCm38.75_chr1.gtf | cut -f3 | sort | uniq -c
         13 CDS
          3 UTR
         14 exon
          1 gene
          1 start_codon
          1 stop_codon
          1 transcript
    

    因为uniq统计的是一行的出现数目,我们也可以使用以下操作来统计多个列组合出现的数目,例如:

    $ grep -v "^#" Mus_musculus.GRCm38.75_chr1.gtf | cut -f3,7 | sort | uniq -c
      12891 CDS     +
      13010 CDS     -
       3754 UTR     +
       3834 UTR     -
      18134 exon    +
      17994 exon    -
       1034 gene    +
        993 gene    -
       1135 start_codon     +
       1155 start_codon     -
       1144 stop_codon      +
       1155 stop_codon      -
       2482 transcript      +
       2511 transcript      -
    

    uniq还有一个有用的参数-d,用来保留重复出现的行:

    $ uniq -d letters.txt
    A
    C
    

    这样,我们还可以统计重复出现的行的数目:

    $ uniq -d letters.txt | wc -l
    2
    

    相关文章

      网友评论

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

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