FASTA格式

文件格式

生物信息學中,FASTA格式是一種用於記錄核酸序列肽序列的文本格式,其中的核酸或氨基酸均以單個字母編碼呈現。該格式同時還允許在序列之前定義名稱和編寫注釋。這一格式最初由FASTA英語FASTA軟件包定義,但現今已是生物信息學領域的一項標準。

FASTA簡明的格式降低了序列操縱和分析的難度,令序列可被文本處理工具和諸如PythonRubyPerl腳本語言處理。

格式

FASTA格式中的一條完整序列,包含開頭的單行描述行和多行序列數據。描述行行首前置半角大於號(「>」)以和數據行區分。「>」後緊接的內容為該序列的標識符,該行剩餘部分則為序列的描述(標識符與描述均非必須)。「>」和標識符之間不應有空格,且建議將單行內容限制在80字符以內。序列的結束以下一條序列的「>」出現為標識。如下為FASTA評論區格式一條序列的示例:

>gi|31563518|ref|NP_852610.1 关,瓦斯4 microtubule-associated proteins 1A/1B light chain 3A isoform b [Homo sapiens]
MKMRFFSSPCGKAAVDPADRCKEVQQIRDQHPSKIPVIIERYKGEKQLPVLDKTKFLVPDHVNMSELVKI
IRRRLQLNPTQAFFLLVNQHSMVSVSTPIADIYEQEKDEDGFLYMVYASQETFGFIRENE

上例中,「gi|31563518|ref|NP_852610.1|」是序列的名稱。

歷史

原版FASTA/Pearson格式定義出現在FASTA程序包的文檔中。可隨FASTA的任一免費版本下載(見fasta20.doc、fastaVN.doc或fastaVN.me,其中VN代表版本號)。

FASTA格式中的一條序列由多行文本組成,每一行的字符數均不能超過120字符,通常不推薦超過80字符。這一限制可能與軟件為單行顯示預分配固定大小內存有關:當時大部分的用戶都使用DEC VT(或其兼容)終端,而這一終端單行支持顯示的字符數上限在80到132個之間。大部分人會將他們的終端配置為字號較大的80字符模式,因此在FASTA中每行只包含80字符或更少(通常為70字符)成為了推薦的做法。此外,標準打印頁的一行寬度也在70到80字符之間(取決於字體)。

FASTA文件的首行以一個「>」(大於號)或「;」(分號,較不常見)起始,後者是一條注釋。然而,後續以分號起始的各行卻會被軟件忽略。由於軟件只會識別第一條注釋,早期會在首行注釋中編寫序列摘要(以唯一的圖書館登錄號起始);但隨時間推移,現在的常見做法是只使用「>」(包括首行),不再使用任何「;」注釋(因軟件會忽略後者)。

在首行(用於唯一描述序列)之後,是以單字母標準編碼表達的實際序列數據。有效編碼以外的任何字符(包括空格、制表符、星號等)都會被忽略。在結尾以「*」(星號)以示序列結束亦是早期的一種常見做法(與PIR格式序列類似);同樣因為如上原因,描述和序列之間往往還會留有空行。

如下為一些序列文件的樣例:

;LCBO - Prolactin precursor - Bovine
; a sample sequence in FASTA format
MDSKGSSQKGSRLLLLLVVSNLLLCQGVVSTPVCPNGPGNCQVSLRDLFDRAVMVSHYIHDLSS
EMFNEFDKRYAQGKGFITMALNSCHTSSLPTPEDKEQAQQTHHEVLMSLILGLLRSWNDPLYHL
VTEVRGMKGAPDAILSRAIEIEEENKRLLEGMEMIFGQVIPGAKETEPYPVWSGLPSLQTKDED
ARYSAFYNLLHCLRRDSSKIDTYLKLLNCRIIYNNNC*

>MCHU - Calmodulin - Human, rabbit, bovine, rat, and chicken
ADQLTEEQIAEFKEAFSLFDKDGDGTITTKELGTVMRSLGQNPTEAELQDMINEVDADGNGTID
FPEFLTMMARKMKDTDSEEEIREAFRVFDKDGNGYISAAELRHVMTNLGEKLTDEEVDEMIREA
DIDGDGQVNYEEFVQMMTAK*

>gi|5524211|gb|AAD44166.1| cytochrome b [Elephas maximus maximus]
LCLYTHIGRNIYYGSYLYSETWNTGIMLLLITMATAFMGYVLPWGQMSFWGATVITNLFSAIPYIGTNLV
EWIWGGFSVDKATLNRFFAFHFILPFTMVALAGVHLTFLHETGSNNPLGLTSDSDKIPFHPYYTIKDFLG
LLILILLLLLLALLSPDMLGDPDNHMPADPLNTPLHIKPEWYFLFAYAILRSVPNKLGGVLALFLSIVIL
GLMPFLHTSKHRSMMLRPLSQALFWTLTMDLLTLTWIGSQPVEYPYTIIGQMASILYFSIILAFLPIAGX
IENY

多序列FASTA文件可由單序列FASTA文件字符串連接而成。這並不與FASTA文件要求首行可以「;」或「>」起始的格式相衝突,因為只要後續所有序列都以「>」起始便可被軟件視為不同序列(並推而廣之要求序列定義行必須使用「>」)。所以,如上的示例在連接後即為合法的多序列文件。

描述行

描述行(定義行)或標題行以「>」開始,緊隨着序列的名稱和/或唯一標識符,除此還可包含其他信息。在過時的做法中,標題行有時可以有一條以上的標題,並以^A(Control-A)控制符分隔。

在原版的Pearson FASTA格式中,以分號起始的注釋可在標題行之後出現。但一些遵守NCBI FASTA規範頁面存檔備份,存於網際網路檔案館)的數據庫和生物信息軟件不會識別這些注釋。如下為多序列FASTA文件的示例:

>SEQUENCE_1
MTEITAAMVKELRESTGAGMMDCKNALSETNGDFDKAVQLLREKGLGKAAKKADRLAAEG
LVSVKVSDDFTIAAMRPSYLSYEDLDMTFVENEYKALVAELEKENEERRRLKDPNKPEHK
IPQFASRKQLSDAILKEAEEKIKEELKAQGKPEKIWDNIIPGKMNSFIADNSQLDSKLTL
MGQFYVMDDKKTVEQVIAEKEKEFGGKIKIVEFICFEVGEGLEKKTEDFAAEVAAQL
>SEQUENCE_2
SATVSEINSETDFVAKNDQFIALTKDTTAHIQSNSLQSVEELHSSTINGVKFEEYLKSQI
ATIGENLVVRRFATLKAGANGVVNGYIHTNGRVGVVIAAACDSAEVASKSRDLLRQICMH

序列表達

在標題行和注釋之後,是由一行或多行構成的序列數據,其中每行的長度應短於80字符。序列可以是蛋白質序列核酸序列,其中可以包含空白占位或比對用字符(見序列比對)。序列應以標準的IUB/IUPAC氨基酸核酸編碼表達,除以下例外:允許小寫字母,並會被轉作大寫字母;一個半角連字符可表示一個空白字符;且在氨基酸序列中,U和*是合法字符(見下文)。標準中不允許數字,但部分數據庫使用數字來表示序列的位置。

支持的核酸編碼如下:[1][2]

核酸編碼 含義 輔助記憶
A A 腺嘌呤Adenine
C C 胞嘧啶Cytosine
G G 鳥嘌呤Guanine
T T 胸腺嘧啶Thymine
U U 尿嘧啶Uracil
R A、G 嘌呤puRine
Y C、T、U 嘧啶pYrimidines
K G、T、U 基(Ketones
M A、C 氨基aMino
S C、G 強(Strong)結合力
W A、T、U 弱(Weak)結合力
B 非A(如C、G、T、U) A後為B
D 非C(如A、G、T、U) C後為D
H 非G(如A、C、T、U) G後為H
V 非T非U(如A、C、G) U後為V
N A C G T U 任意核酸(Nucleic acid
- 不定長度空白占位符

支持的蛋白質序列編碼(25條氨基酸和3條特殊編碼)如下:

氨基酸編碼 含義
A 丙氨酸Alanine
B 天冬氨酸Aspartic acid,D)或天冬酰胺Asparagine,N)
C 半胱氨酸Cysteine
D 天冬氨酸Aspartic acid
E 穀氨酸Glutamic acid
F 苯丙氨酸Phenylalanine
G 甘氨酸Glycine
H 組氨酸Histidine
I 異亮氨酸Isoleucine
J 亮氨酸Leucine,L)或異亮氨酸Isoleucine,I)
K 賴氨酸Lysine
L 亮氨酸Leucine
M 甲硫氨酸Methionine
N 天冬酰胺Asparagine
O 吡咯賴氨酸Pyrrolysine
P 脯氨酸Proline
Q 穀氨酰胺Glutamine
R 精氨酸Arginine
S 絲氨酸Serine
T 蘇氨酸Threonine
U 硒半胱氨酸Selenocysteine
V 纈氨酸Valine
W 色氨酸Tryptophan
Y 酪氨酸Tyrosine
Z 穀氨酸Glutamic acid,E)或穀氨酰胺Glutamine,Q)
X 任意
* 翻譯終止
- 不定長度空白占位符

序列標識符

NCBI標準定義了標題行中序列唯一標識符(SeqID)的格式。在Formatdb英語formatdb手冊頁中有寫到:「formatdb可以自動地解析SeqID並創建索引,但在FASTA定義行中的數據庫標識符必須遵守FASTA定義行格式的慣例。」

下表為NCBI FASTA定義行的格式(另見"The NCBI Handbook", Chapter 16, The BLAST Sequence Analysis Tool頁面存檔備份,存於網際網路檔案館))。

數據庫 格式
GenBank gb|accession|locus
EMBL Data Library emb|accession|locus
DDBJ, DNA Database of Japan dbj|accession|locus
NBRF PIR pir||entry
Protein Research Foundation prf||name
SWISS-PROT sp|accession|entry name
Brookhaven Protein Data Bank pdb|entry|chain
Patents pat|country|number
GenInfo Backbone Id bbs|number
General database identifier gnl|database|identifier
NCBI Reference Sequence ref|accession|locus
Local Sequence identifier lcl|identifier

上表中的管道符(「|」)並不是巴科斯範式中的分隔符,而是格式本身的一部分。多個標識符可以連接,同樣使用管道符分隔。

壓縮

FASTA文件的壓縮需要特製的壓縮工具來處理文件里所包含的兩部分信息:標識符與序列。為獲取更好的壓縮率,壓縮工具會將之分為兩條獨立的壓縮流處理。例如使用上下文模型和數學編碼進行無損壓縮的MFCompress算法[3]

擴展名

包含FASTA格式序列的文本文件並無標準的擴展名。下表列出了各種擴展名及其含義。

擴展名 含義 備註
fasta (.fas) 普通FASTA 任意普通的FASTA文件。此類擴展名還有fa、seq、fsa。
fna 核酸FASTA 普遍用於表示核酸序列的FASTA文件。
ffn 核酸編碼區FASTA 包含基因組編碼區的FASTA文件。
faa 氨基酸FASTA 包含表示氨基酸序列的FASTA文件。含有多種蛋白質序列的FASTA文件還可使用更具體的mpfa擴展名。
frn 非編碼RNA FASTA 包含以DNA字母編碼表示的基因組非編碼RNA區(如tRNA、rRNA)的FASTA文件。

參見

參考文獻

  1. ^ Tao Tao. Single Letter Codes for Nucleotides. [NCBI Learning Center]. National Center for Biotechnology Information. 2011-08-24 [2012-03-15]. (原始內容存檔於2012-07-13). 
  2. ^ IUPAC code table. NIAS DNA Bank. [2016-02-25]. (原始內容存檔於2011-08-11). 
  3. ^ Pinho, A; Pratas, D. MFCompress: a compression tool for FASTA and multi-FASTA data.. Bioinformatics. 2014, 30 (1): 117–118. PMID 24132931. doi:10.1093/bioinformatics/btt594. 

外部連結