美文网首页
fasta和fastq格式文件的shell小练习

fasta和fastq格式文件的shell小练习

作者: weixinsuoxian | 来源:发表于2019-04-07 20:44 被阅读0次

    练习题来源:http://www.bio-info-trainee.com/3575.html

    #1) 统计reads_1.fq 文件中共有多少条序列信息
    wc reads_1.fq
    cat reads_1.fq | paste - - - - | wc
    awk '{if(NR%4==0) print}' reads_1.fq | wc
    #NR 是awk的参数,表示行号,对行号求余数(%)
    
    #2)输出所有的reads_1.fq文件中的标识符(即以@开头的那一行)
    cat reads_1.fq | paste - - - - | cut -f1
    awk '{if(NR%4==1) print}' reads_1.fq 
    
    #3) 输出reads_1.fq文件中的 所有序列信息(即每个序列的第二行)
    cat reads_1.fq | paste - - - - | cut -f2
    awk '{if(NR%4==2) print}' reads_1.fq 
    
    #4)输出以‘+’及其后面的描述信息(即每个序列的第三行)
    cat reads_1.fq | paste - - - - | cut -f3
    awk '{if(NR%4==3) print}' reads_1.fq 
    
    #5)输出质量值信息(即每个序列的第四行)
    cat reads_1.fq | paste - - - - | cut -f4
    awk '{if(NR%4==0) print}' reads_1.fq
    
    #6) 计算reads_1.fq 文件含有N碱基的reads个数
    cat reads_1.fq | paste - - - - | cut -f2 | grep N | wc
    awk '{if(NR%4==2) print}' reads_1.fq | grep N | wc
    
    #7) 统计文件中reads_1.fq文件里面的序列的碱基总数
    cat reads_1.fq | paste - - - - | cut -f2 | grep -o [ATGCN] | wc
    cat reads_1.fq | paste - - - - | cut -f2 | grep -o [ATGCN] | sort | uniq -c
    
    
    #8)计算reads_1.fq 所有的reads中N碱基的总数
    cat reads_1.fq | paste - - - - | cut -f2 | grep -o N | wc
    
    #9)统计reads_1.fq 中测序碱基质量值恰好为Q20的个数
    cat reads_1.fq | paste - - - - | cut -f4 | grep -o 5 | wc
    # 考虑碱基质量与对应的ASCII字符,Q值
    
    #10)统计reads_1.fq 中测序碱基质量值恰好为Q30的个数
    cat reads_1.fq | paste - - - - | cut -f4 | grep -o ? | wc
    
    #11)统计reads_1.fq 中所有序列的第一位碱基的ATCGNatcg分布情况
    cat reads_1.fq | paste - - - - | cut -f2 | cut -c1| sort | uniq -c
    awk '{if(NR%4==2)print}' reads_1.fq | cut -c1 |sort|uniq -c 
    
    #12)将reads_1.fq 转为reads_1.fa文件(即将fastq转化为fasta)
     cat reads_1.fq | paste - - - - | cut -f1,2|tr '\t' '\n'|tr '@' '>' > reads_1.fa
    
    
    #13) 统计上述reads_1.fa文件中共有多少条序列
    wc reads_1.fa
    awk '{if(NR%2==0) print}' reads_1.fa | wc
    
    #14)计算reads_1.fa文件中总的碱基序列的GC数量
    awk '{if(NR%2==0) print}' reads_1.fa | grep -o  [GC] | sort | uniq -c
    
    #15)删除 reads_1.fa文件中的每条序列的N碱基
    awk '{if(NR%2==0) print}' reads_1.fa | tr -d N 
    
    #16)删除 reads_1.fa文件中的含有N碱基的序列
    cat reads_1.fa | paste - - |grep -v N | tr '\t' '\n'
    
    #17) 删除 reads_1.fa文件中的短于65bp的序列
    cat reads_1.fa |paste - -|awk '{if(length($2)>65) print}'| tr '\t' '\n'
    cat reads_1.fa |paste - -|awk '{if(length($2)>65) print}' | wc
    
    #18) 删除 reads_1.fa文件每条序列的前后五个碱基
    cat reads_1.fa | paste - - | cut -f2|cut -c 5-
    # 上面是前5个,后5个怎么删除???
    
    #19)删除 reads_1.fa文件中的长于125bp的序列
    cat reads_1.fa |paste - -|awk '{if(length($2)<125) print}'| tr '\t' '\n'
    
    #20)查看reads_1.fq 中每条序列的第一位碱基的质量值的平均值
    cat reads_1.fq | awk '{if(NR%4==0) print}' | cut -c1 |sort |uniq -c
    

    感谢Jimmy老师,以及生信技能树的资源!!!

    相关文章

      网友评论

          本文标题:fasta和fastq格式文件的shell小练习

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