最近想寫一個關于多軟件批處理序列的腳本,在觀察文件的過程中,發現了.fq格式和.fastq格式心中不免有些疑問——這兩種格式有什么區別,查詢資料后,在此闡述一下對fastq文件格式的看法。
FASTQ是基于文本的,保存生物序列(通常是核酸序列)和其測序質量信息的標準格式。其序列以及質量信息都是使用一個ASCII字符標示,最初由Sanger開發,目的是將FASTA序列與質量數據放到一起,目前已經成為高通量測序結果的事實標準。
格式說明
FASTQ文件中每個序列通常有四行:
- 序列標識以及相關的描述信息,以‘@’開頭;
- 第二行是序列
- 第三行以‘+’開頭,后面是序列標示符、描述信息,或者什么也不加
- 第四行,是質量信息,和第二行的序列相對應,每一個序列都有一個質量評分,根據評分體系的不同,每個字符的含義表示的數字也不相同。
例如:
@SEQ_ID
GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
++
!''((((+))%%%++)(%%%%).1-+''))**55CCF>>>>>>CCCCCCC65
HWI-1KL118 | the unique instrument name |
---|---|
98 | the run id |
C374TACXX | the flowcell id |
4 | flowcell lane |
1101 | tile number within the flowcell lane |
1247 | 'x'-coordinate of the cluster within the tile |
2191 | 'y'-coordinate of the cluster within the tile |
1 | the member of a pair, 1 or 2 (paired-end or mate-pair reads only) |
N | Y if the read fails filter (read is bad), N otherwise |
0 | 0 when none of the control bits are on, otherwise it is an even number |
TTAGGC | index sequence |
關于質量編碼格式
質量評分指的是一個堿基的錯誤概率的對數值。其最初在Phred拼接軟件中定義與使用,其后在許多軟件中得到使用。其質量得分與錯誤概率的對應關系見下表:
Phred quality scores are logarithmically linked to error probabilities
:Phred Quality Score: | : Probability of incorrect base call: | :Base call accuracy: |
---|---|---|
10 | 1 in 10 | 90 % |
20 | 1 in 100 | 99 % |
30 | 1 in 1000 | 99.9 % |
40 | 1 in 10000 | 99.99 % |
50 | 1 in 100000 | 99.999 % |
Phred quality scores Q are defined as a property which is logarithmically related to the base-calling error probabilities P.
除了Phred質量得分換算標準,還有就是Solexa標準:
兩種換算標準的比較:
Relationship between Q and p using the Sanger (red) and Solexa (black) equations (described above). The vertical dotted line indicates p = 0.05, or equivalently, Q ≈ 13.
對于每個堿基的質量編碼標示,不同的軟件采用不同的方案,目前有5種方案:
- Sanger,Phred quality score,值的范圍從0到92,對應的ASCII碼從33到126,但是對于測序數據(raw read data)質量得分通常小于60,序列拼接或者mapping可能用到更大的分數。
- Solexa/Illumina 1.0, Solexa/Illumina quality score,值的范圍從-5到63,對應的ASCII碼從59到126,對于測序數據,得分一般在-5到40之間;
- Illumina 1.3+,Phred quality score,值的范圍從0到62對應的ASCII碼從64到126,低于測序數據,得分在0到40之間;
- Illumina 1.5+,Phred quality score,但是0到2作為另外的標示,詳見http://solexaqa.sourceforge.net/questions.htm#illumina
- Illumina 1.8+
下面是更為直觀的表示:
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.....................................................
..........................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX......................
...............................IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII......................
.................................JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ......................
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL....................................................
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~
- S - Sanger Phred+33, raw reads typically (0, 40)
- X - Solexa Solexa+64, raw reads typically (-5, 40)
- I - Illumina 1.3+ Phred+64, raw reads typically (0, 40)
- J - Illumina 1.5+ Phred+64, raw reads typically (3, 40)
with 0=unused, 1=unused, 2=Read Segment Quality Control Indicator (bold)
(Note: See discussion above). - L - Illumina 1.8+ Phred+33, raw reads typically (0, 41)
文件后綴
沒有特別的規定,通常使用.fq, .fastq, .txt等
FASTQ格式的序列一般都包含有四行,第一行由@開始,后面跟著序列的描述信息,這點跟FASTA格式是一樣的。第二行是序列。第三行由'+'開始,后面也可以跟著序列的描述信息。第四行是第二行序列的質量評價(quality values,注:應該是測序的質量評價),字符數跟第二行的序列是相等的。
FASTQ格式例子:
@SEQ_ID
GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
++
!''((((+))%%%++)(%%%%).1-+''))**55CCF>>>>>>CCCCCCC65
例如在NCBI看到的FASTQ格式如下:
@SRR001666.1 071112_SLXA-EAS1_s_7:5:1:817:345 length=36
GGGTGATGGCCGCTGCCGATGGCGTCAAATCCCACC
+SRR001666.1 071112_SLXA-EAS1_s_7:5:1:817:345 length=36
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII9IG9IC
FASTQ格式與Fasta格式、GenBank等格式的相互轉換