前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >四种获取fasta序列长度的方法

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

作者头像
生信交流平台
发布2022-09-21 11:37:06
2.2K0
发布2022-09-21 11:37:06
举报
文章被收录于专栏:用户7627119的专栏

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

一、awk

代码语言:javascript
复制
awk '/^>/{if (l!="") print l; print; l=0; next}{l+=length($0)}END{print l}' test.fasta

输出为

代码语言:javascript
复制
>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

代码语言:javascript
复制
conda install bioawk
bioawk -c fastx '{ print $name, length($seq) }' < test.fasta

得到的结果如下:

代码语言:javascript
复制
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

代码语言:javascript
复制
#生成.fai文件
samtools faidx test.fasta
#提取前两列
cut -f1-2 test.fasta.fai

生成的.fai文件如下,前两列正好就是fasta序列的名字和长度。

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

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

三、seqkit

代码语言:javascript
复制
conda install seqkit
seqkit fx2tab --length --name --header-line  test.fasta
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信交流平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档