美文网首页
脚本 | Shell | 任意n个样本表达量超过0.5视为表达

脚本 | Shell | 任意n个样本表达量超过0.5视为表达

作者: shwzhao | 来源:发表于2021-05-10 23:03 被阅读0次

    20210904 更新,今天上午完成了开题,最近没睡好觉,躺在床上,不知怎么想起了这段代码,发现真的非常之愚蠢。

    只需下面简简单单的代码就能得到结果

    awk '{a=0;for(i=2;i<=NF;i++){if($i>0.5)a++};if(a>=2)print}' a.tsv
    

    以下为原文章:

    文献上的一个简单的数据过滤问题。
    很蠢地解决了。 :D

    # 任意$1个样本的表达量超过0.5视为表达
    $ cat aaaa.sh
    awk '{for(i=2;i<=NF;i++){if($i > 0.5)print}}' $2 | \
    uniq -c | awk -vb=$1 '{if($1>=b)print}' | \
    sed -e 's/^[[:space:]]*//g' -e 's/[[:space:]]/\t/g' | \
    cut -f 2-
    
    $ cat a.tsv
    a       0.8     0.6     0.5     0       0.7
    b       1       0       0.3     0       0.8
    c       0.5     0       0       0.4     0.9
    d       0       0.5     0       0.5     1
    e       1       0       0.4     0       0.8
    f       0.6     0       0       0.7     0
    g       0.7     0       0.8     0       2
    
    $ bash aaaa.sh 2 a.tsv
    a       0.8     0.6     0.5     0       0.7
    b       1       0       0.3     0       0.8
    e       1       0       0.4     0       0.8
    f       0.6     0       0       0.7     0
    g       0.7     0       0.8     0       2
    
    $ bash aaaa.sh 3 a.tsv
    a       0.8     0.6     0.5     0       0.7
    g       0.7     0       0.8     0       2
    

    相关文章

      网友评论

          本文标题:脚本 | Shell | 任意n个样本表达量超过0.5视为表达

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