美文网首页基因组
四种获取fasta序列长度的方法

四种获取fasta序列长度的方法

作者: 生信交流平台 | 来源:发表于2020-12-22 20:58 被阅读0次

    在处理fasta序列的时候,我们经常需要获取每一条fasta序列的长度。今天小编就跟大家来分享四种获取fasta序列长度的方法。

    一、awk

    awk '/^>/{if (l!="") print l; print; l=0; next}{l+=length($0)}END{print l}' test.fasta
    

    输出为

    >Chr1
    15704606
    >Chr10
    8327059
    >Chr11
    8696443
    >Chr12
    7853492
    >Chr13
    4340075
    >Chr14
    6288713
    >Chr2
    9509017
    >Chr3
    11222275
    >Chr4
    7647452
    >Chr5
    7499939
    >Chr6
    4872821
    >Chr7
    8973615
    >Chr8
    8275968
    >Chr9
    8318069
    

    二、bioawk

    conda install bioawk
    bioawk -c fastx '{ print $name, length($seq) }' < test.fasta
    

    得到的结果如下:

    Chr1    15704606
    Chr10   8327059
    Chr11   8696443
    Chr12   7853492
    Chr13   4340075
    Chr14   6288713
    Chr2    9509017
    Chr3    11222275
    Chr4    7647452
    Chr5    7499939
    Chr6    4872821
    Chr7    8973615
    Chr8    8275968
    Chr9    8318069
    

    三、samtools

    #生成.fai文件samtools faidx test.fasta#提取前两列cut -f1-2 test.fasta.fai
    生成的.fai文件如下,前两列正好就是fasta序列的名字和长度。
    

    .fai文件的每一列的具体含义

    第一列 NAME   :   序列的名称,只保留“>”后,第一个空白之前的内容;
    第二列 LENGTH:   序列的长度, 单位为bp;
    第三列 OFFSET :   第一个碱基的偏移量, 从0开始计数,换行符也统计进行;
    第四列 LINEBASES : 除了最后一行外, 其他代表序列的行的碱基数, 单位为bp;
    第五列 LINEWIDTH : 行宽, 除了最后一行外, 其他代表序列的行的长度, 包括换行符
    

    三、seqkit

    conda install seqkit
    seqkit fx2tab --length --name --header-line  test.fasta
    

    参考资料:
    四种获取fasta序列长度的方法

    相关文章

      网友评论

        本文标题:四种获取fasta序列长度的方法

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