samtools faidx 能夠對fasta 序列建立一個后綴為.fai 的文件,根據這個.fai 文件和原始的fastsa文件, 能夠快速的提取任意區域的序列
用法:
samtools faidx input.fa
該命令對輸入的fasta序列有一定要求:對於每條序列,除了最后一行外, 其他行的長度必須相同,
>one
ATGCATGCATGCATGCATGCATGCATGCAT
GCATGCATGCATGCATGCATGCATGCATGC
ATGCAT
>two another chromosome
ATGCATGCATGCAT
GCATGCATGCATGC
最后生成的.fai文件如下, 共5列,\t分隔;
one 66 5 30 31
two 28 98 14 15
第一列 NAME : 序列的名稱,只保留“>”后,第一個空白之前的內容;
第二列 LENGTH: 序列的長度, 單位為bp;
第三列 OFFSET : 第一個鹼基的偏移量, 從0開始計數,換行符也統計進行;
第四列 LINEBASES : 除了最后一行外, 其他代表序列的行的鹼基數, 單位為bp;
第五列 LINEWIDTH : 行寬, 除了最后一行外, 其他代表序列的行的長度, 包括換行符, 在windows系統中換行符為\r\n, 要在序列長度的基礎上加2;
提取序列:
samtools faidx input.fa chr1 > chr1.fa
samtools faidx input.fa chr1:100-200 > chr1.fa