生物信息学上常见的数据格式主要有fasta,fastq,gff/gtf。
1 FASTA
FASTA是一种基于文本用于表示核酸序列或蛋白质的氨基酸序列的格式。
主要分为两部分,第一部分即第一行为id行,以“>”开头,包含注释信息;第二部分(不只有第二行)为序列信息,每个字母表示一个碱基或氨基酸,一般用ATCGN来表示,其中N表示荧光信号干扰无法判断到底是哪个碱基。
下面举几个例子
核酸序列
我们以人类血红蛋白α亚基的mRNA序列为例
点击红框中的FASTA可查看其FASTA格式,如下
>gi|13650073|gb|AF349571.1| Homo sapiens hemoglobin alpha-1 globin chain (HBA1) mRNA, complete cds
CCCACAGACTCAGAGAGAACCCACCATGGTGCTGTCTCCTGACGACAAGACCAACGTCAAGGCCGCCTGG
GGTAAGGTCGGCGCGCACGCTGGCGAGTATGGTGCGGAGGCCCTGGAGAGGATGTTCCTGTCCTTCCCCA
CCACCAAGACCTACTTCCCGCACTTCGACCTGAGCCACGGCTCTGCCCAGGTTAAGGGCCACGGCAAGAA
GGTGGCCGACGCGCTGACCAACGCCGTGGCGCACGTGGACGACATGCCCAACGCGCTGTCCGCCCTGAGC
GACCTGCACGCGCACAAGCTTCGGGTGGACCCGGTCAACTTCAAGCTCCTAAGCCACTGCCTGCTGGTGA
CCCTGGCCGCCCACCTCCCCGCCGAGTTCACCCCTGCGGTGCACGCCTCCCTGGACAAGTTCCTGGCTTC
TGTGAGCACCGTGCTGACCTCCAAATACCGTTAAGCTGGAGCCTCGGTGGCCATGCTTCTTGCCCCTTTG
G
注释信息
- gb:gene bank,
- AF349571.1:Gi号,类似于每个人都有自己与众不同的身份证,序列也是类似;
- Homo sapiens hemoglobin alpha-1 globin chain (HBA1) mRNA, complete cds:对序列的描述,如是什么核酸序列(mRNA),具体是什么类型(cds)。
我在查询序列的时候发现,作为mRNA序列,为什么没有碱基U,反而出现了碱基T。
知乎孟浩巍大佬解释说“这是为了保证数据的统一性,因为U只是在RNA中替换了原来的T,所以为了下游的方便分析处理,无论RNA序列还是DNA序列都是使用T而不是U。”
氨基酸序列
同样以人类血红蛋白α亚基的序列为例
点上面的FASTA即可查看其FASTA格式,如下
>sp|P69905.2|HBA_HUMAN RecName: Full=Hemoglobin subunit alpha; AltName: Full=Alpha-globin; AltName: Full=Hemoglobin alpha chain
MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSHGSAQVKGHGKKVADALTNA
VAHVDDMPNALSALSDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSK
YR
注释信息
- P69905.2:Gi号
- HBA_HUMAN:序列简称
- RecName:数据库推荐使用的名字
- AltName:别名
正如前面的介绍,FASTA格式非常简单,但相较于下面将要介绍的FASTQ格式来说,缺少了测序序列的质量信息。
2 FASTQ
FASTQ是一种存储了生物序列以及相应的质量评价的文本格式,共有四行。
以SRR2176381为例,在linux环境下使用prefetch命令将SRR2176381的sra格式测序数据下载下来,再通过fastq-dump命令将sra转换为fastq,转换后查看,如下
@SRR2176381.1 HWI-ST397:369:C3JLPACXX:8:1101:1635:2086 length=101
NGAGTAATCCGGCTGTCAGTTCCTGACGCTTGCAAAACTTCACCGATCCCACATTGCCTGAAATATCGCGGGTCTGTGCTTTAACCAATGCACCATCTCCC
+SRR2176381.1 HWI-ST397:369:C3JLPACXX:8:1101:1635:2086 length=101
#1=DDFFFFHHHHJJJJJJIIIJJIIIJJJJJJJJJJJJJEEIHFFGIJJJJJJJHHHHHBDFFFFFDDDDD9>D9@AACDDACCCDBCDDDDDDDCCCDD
第1行: id行,以“@”开头,主要储存序列测序时的坐标等信息。
- SRR2176381.1:Gi号
- HWI-ST397:369:C3JLPACXX:测序仪的唯一设备名称
- 8:lane的编号
- 1101:tail的坐标
- 1635:在tail中的X坐标
- 2086:在tail中的Y坐标
- length=101:长度为101
第2行: 序列行,一般用ATCGN来表示,其中N表示荧光信号干扰无法判断到底是哪个碱基。
第3行: 附加信息行,以“+”开始,一般为空或和第一行相同。
第4行: 碱基质量行,根据ASCII表,用一个字符代表碱基质量的好坏,与第二行的测序结果是一一对应的,可以简单理解为对应位置碱基的质量值,越大说明测序的质量越好。
3 GTF和GFF
GTF和GFF都是以\t分隔的用于基因注释的文件。
GTF文件和GFF文件可通过软件相互转化。
GTF:General Transfer Format
GFF:General Feature Format
一个GTF或GFF文件包含9列内容
- seqid: 序列编号,一般为chr或者scanfold编号,每条染色体拥有一个唯一的ID。
- source: 注释来源,可以是数据库的名称、软件的名称,也可以为空。
- feature: 注释类型,一般为CDS,exon,cDNA,5UTR等等。
- start: 该序列在参考序列上的起始位置,以1为染色体的起点。
- end: 该序列在参考序列上的终止位置。
- score: 得分,如拼装的可信度,“.”表示为空。
- strand: 正链还是负链,+表示正链,-表示负链,?表示不清楚正负链的信息。
- phase: 仅对注释类型为“CDS”有效,表示起始编码的位置,有效值为0、1、2。从0开始,CDS的起始位置,除以3,余数就是这个值,表示到达下一个密码子需要跳过的碱基个数。
- 0表示这个region的第1bp就是正好是密码子的第1个碱基;
- 1表示这个region的第2bp就是正好是密码子的第1个碱基;
- 2表示这个region的第3bp就是正好是密码子的第1个碱基;
- attribute: 包含多属性的列表,一般会记录 gene_id 与transcript_id;标签与值之间以空格分开,且每个特征之后都要有分号(包括最后一个特征)。
chr1 hg19_ncbiRefSeq CDS 67000042 67000051 0.000000 + 0 gene_id "SGIP1"; transcript_id "NM_001308203.1";
chr1 hg19_ncbiRefSeq exon 66999929 67000051 0.000000 + . gene_id "SGIP1"; transcript_id "NM_001308203.1";
chr1 hg19_ncbiRefSeq CDS 67091530 67091593 0.000000 + 2 gene_id "SGIP1"; transcript_id "NM_001308203.1";
chr1 hg19_ncbiRefSeq exon 67091530 67091593 0.000000 + . gene_id "SGIP1"; transcript_id "NM_001308203.1";
chr1 hg19_ncbiRefSeq CDS 67098753 67098777 0.000000 + 1 gene_id "SGIP1"; transcript_id "NM_001308203.1";
chr1 hg19_ncbiRefSeq exon 67098753 67098777 0.000000 + . gene_id "SGIP1"; transcript_id "NM_001308203.1";
chr1 hg19_ncbiRefSeq CDS 67105460 67105516 0.000000 + 0 gene_id "SGIP1"; transcript_id "NM_001308203.1";
chr1 hg19_ncbiRefSeq exon 67105460 67105516 0.000000 + . gene_id "SGIP1"; transcript_id "NM_001308203.1";
chr1 hg19_ncbiRefSeq CDS 67108493 67108547 0.000000 + 0 gene_id "SGIP1"; transcript_id "NM_001308203.1";
欢迎关注我的公众号 小汪Waud