從零開始生物信息學(7):常用數據格式(1)

從零開始生物信息學(7):常用數據格式(1)

前言

今天我們來談談生物信息學常用的數據格式,由於不同數據的差異性非常大,需要統一的格式來記錄數據的數據類型,數據來源,數據結構等等,便於數據的可重複利用,因此,熟悉不同數據的常用數據格式也是非常重要的。

再說數據格式之前,我們知道生物信息學的資料庫存儲這各種各樣的數據類型,例如之前說過的資料庫,也可以分成兩大類,一級資料庫二級資料庫

  • 一級資料庫:數據來源於實驗操作所得到的原始數據結果,例如測序得到的測序結果序列或者是蛋白質通過X射線得到的三維立體結構,這些數據一般有的信息就是數據來源,類型等基本信息,例如,NCBI中的GenBank資料庫。
  • 二級資料庫:二級資料庫的數據是在一級資料庫的信息基礎上進行了計算加工處理並增加了許多人為的注釋而構成的,比如增加了基因注釋信息等等。

那麼如果需要對資料庫信息進行進一步利用,就產生了大量統一格式的數據,便於進一步操作,這裡主要介紹以下幾種數據格式:

  • FASTA
  • FASTQ
  • GFF
  • bed
  • sam
  • bam
  • vcf

FASTA

FASTA格式是一種基於文本用於表示核酸序列或多肽序列的格式。其中核酸或氨基酸均以單個字母來表示,且允許在序列前添加序列名及注釋。FASTA序列格式是Blast工具常用的組織數據的基本格式,無論是資料庫還是查詢序列,大多數情況都使用FASTA序列格式。

下面給出一個FASTA文件的例子,這是我們人類一個名為EGFR基因的部分序列,格式如下:

>ENSMUSG00000020122|ENSMUST00000138518
CCCTCCTATCATGCTGTCAGTGTATCTCTAAATAGCACTCTCAACCCCCGTGAACTTGGT
TATTAAAAACATGCCCAAAGTCTGGGAGCCAGGGCTGCAGGGAAATACCACAGCCTCAGT

可以看到,格式首先以大於號「>」開頭,接著是序列的標識符「ENSMUSG00000020122」,然後是序列的描述信息。換行後是序列信息,標準核苷酸符號一般用大寫字母。文件中和每一行都不要超過80個字元。序列中允許空格,換行,空行,直到下一個大於號,表示該序列的結束,下個序列開始。

一般而言,FASTA格式的第一行沒有頭信息並沒有嚴格的約束,因此會造成很多混亂,比如同一個序列的頭信息在不同資料庫都不同,後來,就有了不成文的規定,大於號後面一般接的就是序列名字,然後有個|符號,再接注釋信息,例如長度或者序列類型等等。

下面是部分資料庫的標識符:

| 一個普通標題 | 一個普通標題 | 一個普通標題 |
| ------ | ------ | ------ |
| 短文本 | 中等文本 | 稍微長一點的文本 |
| 稍微長一點的文本 | 短文本 | 中等文本 |

| 資料庫名稱 | 標識符 | | ---------------------------- | ------------------------- | | 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 |

FASTQ

FASTQ同樣是一種基於文本的存儲生物序列和對應鹼基(或氨基酸)質量的文件格式,後綴名通常為.fastq 或者.fq,但是與fasta不相同的是,它除了存儲序列本身外還存儲了序列中每個單元所對應的質量分數,所以fastq格式通常用於高通量測試數據的存儲。早期是有Sanger機構開發的,但是現在已經演變成一個高通量測序的標準了。

FASTQ的一個數據樣式如下:

@SEQ_ID
GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
+
!*((((***+))%%%++)(%%%%).1***-+*))**55CCF>>>>>>CCCCCCC65

  • 第一行是@字母開頭的序列標識符,類似於FASTA的第一行信息

  • 第二行是原始的序列信息

  • 第三行是+字母開頭,後面是序列標識符或者是描述信息,或者什麼都不加。

  • 第四行是質量信息,對於每一條序列,其每一個鹼基都有一個對應的測序質量值,和第二行的序列相對應,根據評分體系的不同,每個字元的含義表示的數字也不相同,通常用ASCII碼的排序來表示質量值,下面是每個質量值排列,從左向右遞增:

!"#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~

GFF

GFF(General Feature Format)是一種用於描述基因或者其它序列元素的文件格式,簡單來說是用於基因或者基因組注釋的一個文件格式,GFF有幾個版本,早期的第Version 2和現在的Version 3. Version 2 是由Sanger機構所制定的,而Version 3是由Sequence Ontology Project制定。正是由於有統一的格式來表示基因等元素,使得GFF格式的文件被廣泛的使用與mapping與基因組數據可視化方面,因為它是一種簡單的、方便的對於DNA、RNA以及蛋白質序列的特徵進行描述的一種數據格式,比如序列的那裡到那裡是基因,已經成為序列注釋的通用格式,比如基因組的基因預測,許多軟體都支持輸入或者輸出GFF格式。

這裡說下最新的GFF3,也是目前最流行的GFF文件新標準,GFF3文件中每一行為基因組的一個屬性,分為9列,以TAB分開:

以下是一個樣例:

##gff-version 3
ctg123 . exon 1300 1500 . + . ID=exon00001
ctg123 . exon 1050 1500 . + . ID=exon00002
ctg123 . exon 3000 3902 . + . ID=exon00003
ctg123 . exon 5000 5500 . + . ID=exon00004
ctg123 . exon 7000 9000 . + . ID=exon00005

然後每一列的屬性名稱如下:

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | | ------------------ | ----------------- | ------------ | ---------------- | -------------- | ----- | ------ | ----- | ---------- | | reference sequence | annotation source | feature type | start coordinate | end coordinate | score | strand | frame | attributes |

  1. 參照序列:指出注釋的對象。如一個染色體,克隆或片段。可以有多個參照序列
  2. 注釋來源:注釋的來源。如果未知,則用點代替
  3. 特徵類型:屬性的類型,一般有通用的標準
  4. 起點:屬性對應片段的起點。從1開始
  5. 終點:屬性對應片段的終點
  6. 得分:針對一些量化的屬性來表示程度得分
  7. :+表示正鏈,-表示負鏈,.表示不指定
  8. 步長:通常是編碼蛋白質制定下一密碼子開始位置。
  9. 屬性:一個包含眾多屬性的列表。格式為(tag=value),不同屬性之間以分號相隔

歡迎大家關注我的知乎專欄:從零開始生物信息學

相同內容也可以關注我的微信公眾號: 壹讀基因:


推薦閱讀:

TAG:生物信息學 | 基因 | 生物 |