fasta/fastq格式解讀


1)知識簡介
--------------------------------------------------------
1.1)測序質量值

首先在了解fastq,fasta之前,了解一下什么是質量值。phred軟件在對reads進行base calling的時候會給出每一個鹼基的質量值,這個質量值的計算與測序預期錯誤率相關(estimated probability of error):

 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 %  

除此之外還有solexa標准,即將p換成了p/(1-p),其他完全按照sanger的定義來做。當測序質量很高的情況下兩種形式幾乎沒區別,但低質量的鹼基則有區別了(見下圖)

                                                       

                         Qscore與p之間的關系,其中紅線表示Q=-10 log10p標准,黑色實線表示Q=-10 log10p/(1-p)標准。

1.2)ACII碼

為了方便儲存及可讀這些信息,利用可打印的ACII碼將這些質量值轉化為單字符single characters (or bytes)。ASCII 字符集,最基本的包含了128 個字符。其中前 32 個, 0-31 ,即 0x00-0x1F ,都是不可見字符,這些字符,為控制字符。可見字符為32–126。sanger-fastaq格式用 ASCII 33–126 來表示phred 質量值 0 到93 。舉例來說:一般地,鹼基質量從0-40,既ASCii碼為從 “!”(0+33)到“I”(40+33)。如果某鹼基測序出錯的概率為0.001,則Q應該為30。則30+33=63,那么63對應的ASCii碼為“?”,在第四行中該鹼基對應的質量代表值即為“?”。 

                                         

2)fastq格式

fastq格式是一個文本格式用於貯存生物學序列及其相應質量值(通常是核酸序列的)。為了簡介,這些序列以及質量信息使用ASCII字符標示。該格式最初由Sanger開發,目的是將FASTA序列與質量數據放到一起,目前已經成為高通量測序結果的事實標准。通常fastq文件中每一個序列含有4行信息(如下):

                                             

第一行:序列標識,以‘@’開頭。格式比較自由,允許添加注釋等相關的描述信息,描述信息以空格分開。如示圖中描述信息加入了NCBI的另一個ID名稱,及長度信息

第二行:表示序列信息,制表符或者空格不允許出現。一般是明確的DNA或者RNA字符,通常是大寫,在一些文本文件中,小寫或者大小寫混雜或者含有gap符號是有特殊含義。

第三行:用於將測序序列和質量值內容分離開來。以‘+’開頭,后面是描述信息等,或者什么也不加。如果“+”后面有內容,該內容與第一行“@”后的內容相同;

第四行:表示質量值,每個字符與第二行的鹼基一一對應,按照一定規則轉換為鹼基質量得分,進而反映該鹼基的錯誤率,因此字符數必須和第二行保持一致。對於每個鹼基的質量編碼標示,不同的軟件采用不同的方案 。目前有5種:

1、Sanger,Phred quality score:值的范圍從0到93,對應的ASCII碼從33到126,但是對於測序數據(raw read data)質量得分通常小於60,序列拼接或者mapping可能用到更大的分數。
2、Solexa/Illumina 1.0, Solexa/Illumina quality score:值的范圍從-5到62,對應的ASCII碼從59到126,對於測序數據,得分一般在-5到40之間;
3、Illumina 1.3+,Phred quality score:值的范圍從0到62對應的ASCII碼從64到126,低於測序數據,得分在0到40之間;
4、Illumina 1.5+,Phred quality score:但是0到2作為另外的標示,詳見http://solexaqa.sourceforge.net/questions.htm#illumina
5、Illumina 1.8+

不同的標准之間可以相互轉化換,感興趣可以自己查資料,這里不做詳細介紹。注意:第二行@字符,第三行+字符,在第四行質量值中會出現,有時也會在行首出現,因此在處理fastq格式的時候要格外的關注。

3)fasta格式
------------------------------------

3.1)fasta格式最初來自FASTA軟件包,也是一種文本格式,以單字符( single-letter codes)貯存核酸或者蛋白序列信息,允許在序列前加注釋信息。由2部分信息組成:

>gi|5524211|gb|AAD44166.1| cytochrome b [Elephas maximus maximus] LCLYTHIGRNIYYGSYLYSETWNTGIMLLLITMATAFMGYVLPWGQMSFWGATVITNLFSAIPYIGTNLVEWIWGGFSVDKATLNRFFAFHFILPFTMVALAGV
HLTFLHETGSNNPLGLTSDSDKIPFHPYYTIKDFLGLLILILLLLLLALLSPDMLGDPDNHMPADPLNTPLHIKPEWYFLFAYAILRSVPNKLGGVLALFLSIV
IGLMPFLHTSKHRSMMLRPLSQALFWTLTMDLLTLTWIGSQPVEYPYTIIGQMASILYFSIILAFLPIAGXIENY

第一部分:以>號開始,緊接着序列的標識符 ,注意區分大小寫,且不能出現空格,空格表示序列標識符結束; 隨后是序列的描述信息。
第二部分:以序列本身信息,使用既定的核苷酸或氨基酸編碼符號,大小寫都可以。直到遇到下一個>結束。所有來源於NCBI的序列都有一個gi號“gi|gi_identifier”,gi號由數字組成,具有唯一性。一條核酸或者蛋白質改變了,將賦予一個新的gi號(這時序列的接收號可能不變)。gi號后面是序列的標識符,標識符由序列來源標識、序列標識(如接收號、名稱等)等幾部分組成,他們之間用“|”隔開,如果某項缺失,可以留空但是“|”不能省略。

3.2)fasta格式在拓展的文件命名中,一般會約定俗成,具體見下表格:

Extension Meaning Notes
fasta generic fasta Any generic fasta file. Other extensions can be fas, fa, seq, fsa
fna fasta nucleic acid Used generically to specify nucleic acids.
ffn FASTA nucleotide of gene regions Contains coding regions for a genome.
faa fasta amino acid Contains amino acids. A multiple protein fasta file can have the more specific extension mpfa.
frn FASTA non-coding RNA Contains non-coding RNA regions for a genome, in DNA alphabet e.g. tRNA, rRNA

 4)習題(fq練習文件已boweti2中的示例文件reads_1.fq)
--------------------------------------------------------------------------------------------------

4.1) fq文件中的質量值是如何產生的?
4.2) fq的質量在轉化成ACII碼的時候,為什么不選擇前32個?(0-32)
4.3) fq的質量值在轉化成ACII碼的時候,為什么不從32開始,而是從33開始?
4.4)在統計fq有多少條序列的時候能不能直接grep '@' read_1.fq | wc -l ?為什么?
4.5)在sanger和solexa標准中,測序的錯誤率與質量值之間的差別在哪里?
4.6)fasta格式起源於什么地方?4.7)fasta文件的命名有沒有特殊的含義?
4.8)fasta序列標識符是如何對應來自不同的數據庫來源的?
4.9)轉換fasta與fasta的軟件有哪些?
4.10)fasta中的字母大小寫有沒有特殊的含義?
4.11) 統計reads_1.fq文件中共有多少條序列信息
4.12)輸出所有的reads_1.fq文件中的標識符(即以@開頭的那一行)
4.13)計算reads_1.fq 所有的reads中N的總數
4.14)統計reads_1.fq 中測序鹼基為Q30的含量
4.15)統計reads_1.fq 中測序鹼基質量為所有大於Q20的鹼基含量
4.16)將reads_1.fq轉為reads_1.fa文件(即將fastq轉化為fasta)
4.17)計算reads_1.fa文件中GC數量
4.18)統計文件中reads_1.fa鹼基總數
4.19)計算reads_1.fa文件中GC含量百分比
4.20)過濾掉reads_1.fa文件中N含量超過10%的reads,並統計有多少條

5) 參考資源
--------------------------------------------------------------

The Sanger FASTQ file format for sequences with quality scores, and the Solexa/Illumina FASTQ variants
https://en.wikipedia.org/wiki/FASTQ_format
https://en.wikipedia.org/wiki/FASTA
http://boyun.sh.cn/bio/?p=1901
https://blog.csdn.net/open2open2/article/details/26706969


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM