美文网首页生信点点滴滴
linux视频-P13-fasta和fastq格式文件的shel

linux视频-P13-fasta和fastq格式文件的shel

作者: 小梦游仙境 | 来源:发表于2019-06-16 23:29 被阅读8次

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

    这个是有机结合生物信息学的linux和数据格式的练习题:
    下载bowtie2软件后拿到示例数据:

    mkdir -p ~/biosoft
    cd ~/biosoft
    wget https://sourceforge.net/projects/bowtie-bio/files/bowtie2/2.3.4.3/bowtie2-2.3.4.3-linux-x86_64.zip 
    unzip bowtie2-2.3.4.3-linux-x86_64.zip 
    cd ~/biosoft/bowtie2-2.3.4.3-linux-x86_64/example/reads
    
    

    1)统计reads_1.fq 文件中共有多少条序列信息

    image-20190615082233009 image-20190615082255991

    2)输出所有的reads_1.fq文件中的标识符(即以@开头的那一行)

    paste - - - -把每4行变成4列

    image-20190616154708414

    或者awk '{if(NR%4==1)print}' reads_1.fq,NR%4==0就是第4行

    image-20190616155715471

    awk里有20多个变量,NR是其中一个变量

    1. 输出reads_1.fq文件中的 所有序列信息(即每个序列的第二行)
    image-20190616155154357

    4)输出以‘+’及其后面的描述信息(即每个序列的第三行)

    image-20190616155803589

    5)输出质量值信息(即每个序列的第四行)

    image-20190616155829796
    1. 计算reads_1.fq 文件含有N碱基reads个数
    image-20190616161441733
    1. 统计文件中reads_1.fq文件里面的序列的碱基总数
    awk '{if(NR%4==2)print}' reads_1.fq|grep -o [ATCGN]| wc
    awk '{if(NR%4==2)print}' reads_1.fq|paste -s -d + | bc
    
    image-20190616161355993

    8)计算reads_1.fq 所有的reads中N碱基的总数

    image-20190616161916614

    9)统计reads_1.fq 中测序碱基质量值恰好为Q20的个数

    质量值在第四列

    image-20190616162752571 image-20190616162706264 image-20190616162542696

    10)统计reads_1.fq 中测序碱基质量值恰好为Q30的个数

    同上

    11)统计reads_1.fq 中所有序列的第一位碱基的ATCGNatcg分布情况

    image-20190616163233267 image-20190616163318914

    12)将reads_1.fq 转为reads_1.fa文件(即将fastq转化为fasta)

    fa是2行,fq是4行,即只要目前fq的第1、2行

    image-20190616163655676 image-20190616163640933 image-20190616163940708 image-20190616164027162 image-20190616164130077
    1. 统计上述reads_1.fa文件中共有多少条序列
    image-20190616165212987

    总有10000条

    14)计算reads_1.fa文件中总的碱基序列的GC数量

    image-20190616170030187

    15)删除 reads_1.fa文件中的每条序列的N碱基

    删除N碱基tr -d 'N'

    image-20190616170233041 image-20190616170307290

    grep后发现没有

    16)删除 reads_1.fa文件中的含有N碱基的序列

    删除含N序列grep -v N

    先将头文件>r9998和序列变为一行,然后在将空格转换为换行符

    image-20190616171241841
    1. 删除 reads_1.fa文件中的短于65bp的序列

    删除短于65的序列,那就是留下大于65的序列,显示出来

    image-20190616172257075

    或者

    image-20190616183501929

    18) 删除 reads_1.fa文件每条序列的前后五个碱基

    $ awk '{if(NR%2==0){print substr($0,6,length($0)-10)}}' reads_1.fa|head -1
    
    image-20190616183739134

    19)删除 reads_1.fa文件中的长于125bp的序列

    cat reads_1.fa |paste - - |awk '{if(length($2)<=125){print $1"\n"$2}}'|tail -2
    
    image-20190616183830996

    20)查看reads_1.fq 中每条序列的第一位碱基的质量值的平均值

    第一位碱基:cut -c1

    image-20190616190149171

    sed和grep主要是对文本进行“行”的操作,awk会把每一列都取一个名字,从第一列开始:分别为$1,$2...$n,

    相关文章

      网友评论

        本文标题:linux视频-P13-fasta和fastq格式文件的shel

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