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]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 chickenADQLTEEQIAEFKEAFSLFDKDGDGTITTKELGTVMRSLGQNPTEAELQDMINEVDADGNGTIDFPEFLTMMARKMKDTDSEEEIREAFRVFDKDGNGYISAAELRHVMTNLGEKLTDEEVDEMIREADIDGDGQVNYEEFVQMMTAK*>gi|5524211|gb|AAD44166.1| cytochrome b [Elephas maximus maximus]LCLYTHIGRNIYYGSYLYSETWNTGIMLLLITMATAFMGYVLPWGQMSFWGATVITNLFSAIPYIGTNLVEWIWGGFSVDKATLNRFFAFHFILPFTMVALAGVHLTFLHETGSNNPLGLTSDSDKIPFHPYYTIKDFLGLLILILLLLLLALLSPDMLGDPDNHMPADPLNTPLHIKPEWYFLFAYAILRSVPNKLGGVLALFLSIVILGLMPFLHTSKHRSMMLRPLSQALFWTLTMDLLTLTWIGSQPVEYPYTIIGQMASILYFSIILAFLPIAGXIENY

多序列FASTA文件可由单序列FASTA文件字符串连接而成。这并不与FASTA文件要求首行可以“;”或“>”起始的格式相冲突,因为只要后续所有序列都以“>”起始便可被软件视为不同序列(并推而广之要求序列定义行必须使用“>”)。所以,如上的示例在连接后即为合法的多序列文件。

描述行

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

在原版的Pearson FASTA格式中,以分号起始的注释可在标题行之后出现。但一些遵守NCBI FASTA规范页面存档备份,存于互联网档案馆)的数据库和生物信息软件不会识别这些注释。如下为多序列FASTA文件的示例:

>SEQUENCE_1MTEITAAMVKELRESTGAGMMDCKNALSETNGDFDKAVQLLREKGLGKAAKKADRLAAEGLVSVKVSDDFTIAAMRPSYLSYEDLDMTFVENEYKALVAELEKENEERRRLKDPNKPEHKIPQFASRKQLSDAILKEAEEKIKEELKAQGKPEKIWDNIIPGKMNSFIADNSQLDSKLTLMGQFYVMDDKKTVEQVIAEKEKEFGGKIKIVEFICFEVGEGLEKKTEDFAAEVAAQL>SEQUENCE_2SATVSEINSETDFVAKNDQFIALTKDTTAHIQSNSLQSVEELHSSTINGVKFEEYLKSQIATIGENLVVRRFATLKAGANGVVNGYIHTNGRVGVVIAAACDSAEVASKSRDLLRQICMH

序列表达

在标题行和注释之后,是由一行或多行构成的序列数据,其中每行的长度应短于80字符。序列可以是蛋白质序列核酸序列,其中可以包含空白占位或比对用字符(见序列比对)。序列应以标准的IUB/IUPAC氨基酸核酸编码表达,除以下例外:允许小写字母,并会被转作大写字母;一个半角连字符可表示一个空白字符;且在氨基酸序列中,U和*是合法字符(见下文)。标准中不允许数字,但部分数据库使用数字来表示序列的位置。

支持的核酸编码如下:[1][2]

核酸编码含义辅助记忆
AA腺嘌呤Adenine
CC胞嘧啶Cytosine
GG鸟嘌呤Guanine
TT胸腺嘧啶Thymine
UU尿嘧啶Uracil
RA、G嘌呤puRine
YC、T、U嘧啶pYrimidines
KG、T、U基(Ketones
MA、C氨基aMino
SC、G强(Strong)结合力
WA、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
NA 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页面存档备份,存于互联网档案馆))。

数据库格式
GenBankgb|accession|locus
EMBL Data Libraryemb|accession|locus
DDBJ, DNA Database of Japandbj|accession|locus
NBRF PIRpir||entry
Protein Research Foundationprf||name
SWISS-PROTsp|accession|entry name
Brookhaven Protein Data Bankpdb|entry|chain
Patentspat|country|number
GenInfo Backbone Idbbs|number
General database identifiergnl|database|identifier
NCBI Reference Sequenceref|accession|locus
Local Sequence identifierlcl|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文件。

参见

参考文献

外部链接