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]MKMRFFSSPCGKAAVDPADRCKEVQQIRDQHPSKIPVIIERYKGEKQLPVLDKTKFLVPDHVNMSELVKIIRRRLQLNPTQAFFLLVNQHSMVSVSTPIADIYEQEKDEDGFLYMVYASQETFGFIRENE
上例中，“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 formatMDSKGSSQKGSRLLLLLVVSNLLLCQGVVSTPVCPNGPGNCQVSLRDLFDRAVMVSHYIHDLSSEMFNEFDKRYAQGKGFITMALNSCHTSSLPTPEDKEQAQQTHHEVLMSLILGLLRSWNDPLYHLVTEVRGMKGAPDAILSRAIEIEEENKRLLEGMEMIFGQVIPGAKETEPYPVWSGLPSLQTKDEDARYSAFYNLLHCLRRDSSKIDTYLKLLNCRIIYNNNC*>MCHU - Calmodulin - Human, rabbit, bovine, rat, and chicken
ADQLTEEQIAEFKEAFSLFDKDGDGTITTKELGTVMRSLGQNPTEAELQDMINEVDADGNGTIDFPEFLTMMARKMKDTDSEEEIREAFRVFDKDGNGYISAAELRHVMTNLGEKLTDEEVDEMIREADIDGDGQVNYEEFVQMMTAK*>gi|5524211|gb|AAD44166.1| cytochrome b [Elephas maximus maximus]LCLYTHIGRNIYYGSYLYSETWNTGIMLLLITMATAFMGYVLPWGQMSFWGATVITNLFSAIPYIGTNLVEWIWGGFSVDKATLNRFFAFHFILPFTMVALAGVHLTFLHETGSNNPLGLTSDSDKIPFHPYYTIKDFLGLLILILLLLLLALLSPDMLGDPDNHMPADPLNTPLHIKPEWYFLFAYAILRSVPNKLGGVLALFLSIVILGLMPFLHTSKHRSMMLRPLSQALFWTLTMDLLTLTWIGSQPVEYPYTIIGQMASILYFSIILAFLPIAGXIENY
多序列FASTA文件可由单序列FASTA文件字符串连接而成。这并不与FASTA文件要求首行可以“;”或“>”起始的格式相冲突，因为只要后续所有序列都以“>”起始便可被软件视为不同序列（并推而广之要求序列定义行必须使用“>”）。所以，如上的示例在连接后即为合法的多序列文件。

描述行

描述行（定义行）或标题行以“>”开始，紧随着序列的名称和/或唯一标识符，除此还可包含其他信息。在过时的做法中，标题行有时可以有一条以上的标题，并以^A（Control-A）控制符分隔。

在原版的Pearson FASTA格式中，以分号起始的注释可在标题行之后出现。但一些遵守NCBI FASTA规范的数据库和生物信息软件不会识别这些注释。如下为多序列FASTA文件的示例：
>SEQUENCE_1
MTEITAAMVKELRESTGAGMMDCKNALSETNGDFDKAVQLLREKGLGKAAKKADRLAAEGLVSVKVSDDFTIAAMRPSYLSYEDLDMTFVENEYKALVAELEKENEERRRLKDPNKPEHKIPQFASRKQLSDAILKEAEEKIKEELKAQGKPEKIWDNIIPGKMNSFIADNSQLDSKLTLMGQFYVMDDKKTVEQVIAEKEKEFGGKIKIVEFICFEVGEGLEKKTEDFAAEVAAQL>SEQUENCE_2
SATVSEINSETDFVAKNDQFIALTKDTTAHIQSNSLQSVEELHSSTINGVKFEEYLKSQIATIGENLVVRRFATLKAGANGVVNGYIHTNGRVGVVIAAACDSAEVASKSRDLLRQICMH

压缩

FASTA文件的压缩需要特制的压缩工具来处理文件里所包含的两部分信息：标识符与序列。为获取更好的压缩率，压缩工具会将之分为两条独立的压缩流处理。例如使用上下文模型和数学编码进行无损压缩的MFCompress算法。