美文网首页
2019-11-29【生信技能树】P9 Linux-10-文本处

2019-11-29【生信技能树】P9 Linux-10-文本处

作者: 猫叽先森 | 来源:发表于2019-11-29 17:44 被阅读0次

    【生信技能树】生信人应该这样学Linux
    P9 linux-10-文本处理

    Linux文本处理命令awkgrepsedpastecatdiffwcvim

    文章:Identifying and Targeting Sporadic Oncogenic Genetic Aberrations in Mouse Models of Triple-Negative Breast Cancer.
    PMID:29203461

    ProjectID

    微信搜索,关键词“SRA数据库的规律”,【生信技能树】公众号
    【生信技能树】解读SRA数据库规律一文就够

    网页点击下载RunInfo TableAccession List
    R包SRAdb可以在R里完成同样的工作

    head/tail/less/more 4个命令都可以查看文件内容
    head #从头查看文件内容,默认显示最前面10行
    tail #从文件末尾查看文件内容,默认显示最后10行
    less #查看文件内容

    • 默认按照屏幕宽度显示文件,有可能文件一行内容在屏幕上显示多行,视觉感官会比较凌乱。
    • 参数-S使文件一行内容在屏幕上也显示为一行,可用方向键查看超出屏幕范围的内容,-S使文件内容显示较为整齐。
    • 参数-N显示行号
    • 想在文件中查找内容,/+想查找的内容

    more # 查看文件内容

    grep

    cut # 按列查看文件
    -参数-f,按列查看文件,后接想查看的列号
    -参数-d,按特定符号分割文件

    sed
    awk

    课程中命令记录

    -----grep-----
    
    $head SRR_Acc_List.txt > id
    $mv SraRunTable.txt info
    $mv SRR_Acc_List.txt allid
    $grep SRR5933808 info
    $grep -f id info # 参数-f,在文件info中查找文件id的内容
    $grep -f id info |wc
    $grep SR59338 id
    $grep SR59338 id |wc
    $grep -w SR59338 id
    $wc id
    $grep -c SR59338 id # 等同于grep SR59338 id |wc
    $less /data/reference/gtf/hg19.gtf
    $head /data/reference/gtf/hg19.gtf > tmp
    $less tmp
    $grep '^#' tmp # 正则表达式,匹配“以#开头”的内容
    $grep -v '^#' tmp # 反向匹配,匹配“不以#开头”的内容
    $which grep 
    /bin/grep
    $type grep
    grep is aliased to 'grep --color=auto'
    $alias del=rm #设置别名,使del可以执行rm命令功能,类似于“快捷方式”
    $del tmp # 等同于执行rm tmp
    $which del #不存在
    $which rm
    bin/grep
    
    -----cut,sed-----
    
    $less -SN info
    $head -1 info | tr '\t' '\n' |cat -n
    $cut -f 1,14-16,31 info #显示以下列[1]Assay_Type,[14]genotype,[15]mouse_number,[16]primary_tumor_index,[31]SRA_Study
    $cut -f 14 info #显示第14列,[14]genotype
    $cut -f 14 info | cut -d";" -f 1
    $cut -f 14 info | tr ';' '\t'
    $cut -f 14 info | sed 's/;/\t/g' # sed输入顺序sed 's///g',然后再填入;和\t
    
    $head /data/reference/gtf/hg19.gtf
    $less -S /data/reference/gtf/hg19.gtf
    $ln -s /data/reference/gtf/hg19.gtf gtf #当前目录下的gtf软链接到/data/reference/gtf/hg19.gtf文件
    $less gtf
    $cut -f1 gtf #查看gtf文件的第1列
    $cut -f1 gtf | sort -u #gtf文件第1列排序,并去掉重复值。u代表unique
    $cut -f1 gtf | sort | uniq #效果等同于上一命令
    $cut -f1 gtf | sort | uniq -c # gtf文件第1列排序,并统计出现次数
    $cut -f1 gtf | sort | uniq -c | sort -k1,1 #按出现次数从小到大排序
    $cut -f1 gtf | sort | uniq -c | sort -k1,1 -r#按出现次数从大到小排序
    $cut -f1 gtf | sort | uniq -c | sort -k1,1 -r | head -20#按出现次数从大到小排序,显示前20行
    $cut -f1 gtf | sort | uniq -c | sort -k1,1 -r | head -20 > tmp
    $cat tmp
    
    -----awk,paste-----
    
    $awk '{print $1}' tmp #先输入awk '{}',再在花括号中输入执行语句
    $awk '{print $2}' tmp
    $awk '{print $1}' tmp | paste #报错
    #paste用法,搜索关键词:shell统计文本的数字和 paste
    $awk '{print $1}' tmp | paste -s #将所有内容输出为一行
    $awk '{print $1}' tmp | paste -s -d + #将所有内容输出为一行,并以+号相连
    $awk '{print $1}' tmp | paste -s -d + | bc #计算总和
    $echo 1+2|bc #计算1+2
    $less -S gtf
    $cut -f 3 gtf
    $cut -f 3 gtf | sort | uniq -c
    $grep gene gtf | wc #想grep的是第3列的gene,但是在文件其他位置也存在gene
    $grep -w gene gtf | wc
    $history | awk '{print $2}' | sort | uniq -c
    $history | awk '{print $2}' | sort | uniq -c | awk '{print $1"\t"$2}'
    $history | awk '{print $2}' | sort | uniq -c | awk '{print $1"\t"$2}' | sort -k 1,1
    $history | awk '{print $2}' | sort | uniq -c | awk '{print $1"\t"$2}' | sort -k 1,1 -n
    ##$awk '{}'
    ##$awk '{if () print}'
    $awk '{if($3=="gene") print}' gtf | wc #查看gtf文件第3列是"gene"的内容,统计
    $perl -alne '{print if $F[2] eq "gene"}' gtf | wc
    
    $time awk '{if($3=="gene") print}' gtf | wc
    $time perl -alne '{print if $F[2] eq "gene"}' gtf | wc
    $time grep -w gene gtf | wc
    

    gtf格式
    第1列:染色体编号
    第2列:属性
    第3列:属性2
    第4列:起始坐标
    第5列:终止坐标

    相关文章

      网友评论

          本文标题:2019-11-29【生信技能树】P9 Linux-10-文本处

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