fasta是常用的序列存储格式,很多软件(如GATK、IGV等)在导入序列以及进行快速查找时通常需要建立索引文件。下面就来介绍如何使用 samtools 便捷的建立fasta文件的索引以及快速进行序列提取。
1 建立索引
建立索引只需在Linux下输入命令:samtools faidx input.fa
这里序列文件为 input.fa,生成的索引文件以 .fai 结尾。需要注意的是,输入的fasta文件的每条序列除最后一行外,其余行的长度必须相同,否则会报错哦!最后生成的.fai文件如下, 共5列,以制表符分隔;
第一列 NAME : 序列的名称,只保留“>”后,第一个空白之前的内容;
第二列 LENGTH : 序列的长度,单位为bp;
第三列 OFFSET : 第一个碱基的偏移量,从0开始计数,换行符也统计进行;
第四列 LINEBASES : 除了最后一行外, 其他代表序列的行的碱基数, 单位为bp;
第五列 LINEWIDTH : 行宽, 除了最后一行外, 其他代表序列的行的长度,包括换行符,在windows系统中换行符为\r\n,要在序列长度的基础上加2。
2 提取序列
除建立索引外,还可以利用samtools方便的提取序列,例如:
samtools faidx input.fa chr2 > chr2.fa,会得到含chr2这条序列的fasta格式的文件,如果是多条序列,只需在文件后罗列需提取的序列ID即可,使用空格分隔,如 samtools faidx input.fa chr1 chr2 chr3 > chr.fa。
再如:samtools faidx input.fa chr2:1-1000 > chr2.fa,能得到chr2序列的第1到第1000个碱基的fasta格式的文件,同样可以提取多条序列。
samtools 安装
1. 下载,地址如下:http://www.htslib.org/doc/samtools.html。
2. 安装,使用命令tar -jxvf samtools-1.6.tar.bz2解压下载的压缩包,最后使用make命令就可以了。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!