本文摘抄自:https://www.omicsclass.com/article/42
侵刪!
fasta是常用的序列存儲格式,很多軟件(如GATK、IGV等)在導入序列以及進行快速查找時通常需要建立索引文件。下面就來介紹如何使用 samtools 便捷的建立fasta文件的索引以及快速進行序列提取。
1 建立索引
建立索引只需在Linux下輸入命令:samtools faidx input.fa
這里序列文件為 input.fa,生成的索引文件以 .fai 結尾。需要注意的是,輸入的fasta文件的每條序列除最后一行外,其余行的長度必須相同,否則會報錯哦!最后生成的.fai文件如下, 共5列,以制表符分隔;
第一列 NAME : 序列的名稱,只保留“>”后,第一個空白之前的內(nèi)容;
第二列 LENGTH : 序列的長度,單位為bp;
第三列 OFFSET : 第一個堿基的偏移量,從0開始計數(shù),換行符也統(tǒng)計進行;
第四列 LINEBASES : 除了最后一行外, 其他代表序列的行的堿基數(shù), 單位為bp;
第五列 LINEWIDTH : 行寬, 除了最后一行外, 其他代表序列的行的長度,包括換行符,在windows系統(tǒng)中換行符為\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 安裝
安裝,使用命令tar -jxvf samtools-1.6.tar.bz2解壓下載的壓縮包,最后使用make命令就可以了。