FASTA格式

在生物信息學中，FASTA格式是一種用於記錄核酸序列或肽序列的文本格式，其中的核酸或氨基酸均以單個字母編碼呈現。該格式同時還允許在序列之前定義名稱和編寫註釋。這一格式最初由FASTA軟件包定義，但現今已是生物信息學領域的一項標準。
FASTA簡明的格式降低了序列操縱和分析的難度，令序列可被文本處理工具和諸如Python、Ruby和Perl等腳本語言處理。

**格式**
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規範date=20150810051301 的數據庫和生物信息軟件不會識別這些註釋。如下為多序列FASTA文件的示例：
>SEQUENCE_1
MTEITAAMVKELRESTGAGMMDCKNALSETNGDFDKAVQLLREKGLGKAAKKADRLAAEG
LVSVKVSDDFTIAAMRPSYLSYEDLDMTFVENEYKALVAELEKENEERRRLKDPNKPEHK
IPQFASRKQLSDAILKEAEEKIKEELKAQGKPEKIWDNIIPGKMNSFIADNSQLDSKLTL
MGQFYVMDDKKTVEQVIAEKEKEFGGKIKIVEFICFEVGEGLEKKTEDFAAEVAAQL
>SEQUENCE_2
SATVSEINSETDFVAKNDQFIALTKDTTAHIQSNSLQSVEELHSSTINGVKFEEYLKSQI
ATIGENLVVRRFATLKAGANGVVNGYIHTNGRVGVVIAAACDSAEVASKSRDLLRQICMH

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

**序列標識符**
NCBI標準定義了標題行中序列唯一標識符（SeqID）的格式。在formatdb的手冊頁中有寫到：“formatdb可以自動地解析SeqID並創建索引，但在FASTA定義行中的數據庫標識符必須遵守FASTA定義行格式的慣例。”
下表為NCBI FASTA定義行的格式（另見 "The NCBI Handbook", Chapter 16, The BLAST Sequence Analysis Tooldate=20140310201524 ）。
上表中的管道符（“|”）並不是巴科斯範式中的分隔符，而是格式本身的一部分。多個標識符可以連接，同樣使用管道符分隔。

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

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

**參見**
 FASTA搜索- FASTQ格式- Stockholm format

**參考文獻**

**外部鏈接**
  What is FASTA Format?date=20110522065018  什麼是FASTA格式.-  HUPO-PSI Standard FASTA Format HUPO-PSI發表的另一種FASTA格式.-  Sequence ID (seqID) Fields in the FASTA Deflines of Sequences from NCBI date=20220426235857  FASTA定義行的格式.