分享

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

 生信交流平台 2021-12-29

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

一、awk

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

输出为

>Chr115704606>Chr108327059>Chr118696443>Chr127853492>Chr134340075>Chr146288713>Chr29509017>Chr311222275>Chr47647452>Chr57499939>Chr64872821>Chr78973615>Chr88275968>Chr98318069

二、bioawk

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

得到的结果如下:

Chr1 15704606Chr10 8327059Chr11 8696443Chr12 7853492Chr13 4340075Chr14 6288713Chr2 9509017Chr3 11222275Chr4 7647452Chr5 7499939Chr6 4872821Chr7 8973615Chr8 8275968Chr9 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 seqkitseqkit fx2tab --length --name --header-line test.fasta

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多