FASTQ格式


        FASQT格式是用於存儲生物序列(通常是核苷酸序列)及其相應的鹼基質量分數的一種文本格式。為簡潔起見,序列字母和質量分數均使用單個ASCII字符進行編碼。最初由Wellcome Trust Sanger Institute(桑格研究所)開發用於捆綁FASTA格式的序列和其鹼基質量分數的,現在已成為存儲Illumina Genome Analyzer(Illumina基因組分析儀)等高通量測序儀的標准輸出格式。

FASTQ文件格式

  • 第1行,以“@” 字符開頭,后面跟着一個序列標識符和一個可選的描述(像FASTA格式標題行)。
  • 第2行,原始序列字符。
  • 第3行,以“+”字符開頭,后面可選地跟着相同的序列標識符或者任何描述。
  • 第4行,第2行序列每個鹼基的質量編碼值,包含與第2行字符數量相同的符號。

        包含單個序列的FASTQ文件示例如下:

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

        字符“!”和“~”分別代表最低和最高質量,下面是ASCII代表質量值從左到右順序遞增:

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

Illumina序列標識符

        來自Illumina軟件的序列使用系統標識符:

@HWUSI-EAS100R:6:73:941:1973#0/1
HWUSI-EAS100R the unique instrument name
6 flowcell lane
73 tile number within the flowcell lane
941 'x'-coordinate of the cluster within the tile
1973 'y'-coordinate of the cluster within the tile
#0 index number for a multiplexed sample (0 for no indexing)
/1 the member of a pair, /1 or /2 (paired-end or mate-pair reads only)

        Illumina流程1.4版本以后,使用#NNNNNN代替#0作為多重ID,NNNNNN是多重標簽的序列。

@EAS139:136:FC706VJ:2:2104:15343:197393 1:Y:18:ATCACG
EAS139 the unique instrument name
136 the run id
FC706VJ the flowcell id
2 flowcell lane
2104 tile number within the flowcell lane
15343 'x'-coordinate of the cluster within the tile
197393 'y'-coordinate of the cluster within the tile
1 the member of a pair, 1 or 2 (paired-end or mate-pair reads only)
Y Y if the read is filtered, N otherwise
18 0 when none of the control bits are on, otherwise it is an even number
ATCACG index sequence

        請注意,最新版本的Illumina軟件會輸出樣本編號(從樣本表中讀取替代)代替索引序列。例如,以下情況可能出現在批次的第一個樣本中:

@EAS139:136:FC706VJ:2:2104:15343:197393 1:N:18:1

NCBI SRA數據

        來自NCBI/EBI SRA數據庫的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

在本例中,由一個NCBI分配的標識符、描述保存Solexa/Illumina的原始標識符和read長度。測序是在雙端模式下進行的(~500bp插入大小),詳見SRR001666。值得注意的是,當使用帶缺省參數設置的fastq-dump從SRA數據中提取數據時,fastq-dump將正向read和反向read的序列連接在一起,提取的序列具有雙倍長度,丟失了雙端測序信息。

$ /opt/sratoolkit.2.5.7-centos_linux64/bin/fastq-dump SRR001666
@SRR001666.1 071112_SLXA-EAS1_s_7:5:1:817:345 length=72
GGGTGATGGCCGCTGCCGATGGCGTCAAATCCCACCAAGTTACCCTTAACAACTTAAGGGTTTTCAAATAGA
+SRR001666.1 071112_SLXA-EAS1_s_7:5:1:817:345 length=72
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII9IG9ICIIIIIIIIIIIIIIIIIIIIDIIIIIII>IIIIII/
@SRR001666.2 071112_SLXA-EAS1_s_7:5:1:801:338 length=72
GTTCAGGGATACGACGTTTGTATTTTAAGAATCTGAAGCAGAAGTCGATGATAATACGCGTCGTTTTATCAT
+SRR001666.2 071112_SLXA-EAS1_s_7:5:1:801:338 length=72
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII6IBIIIIIIIIIIIIIIIIIIIIIIIGII>IIIII-I)8I

更好的方法是保存原始材料並分成兩個或三個文件(正向、反向、單個),例如:

$ /opt/sratoolkit.2.5.7-centos_linux64/bin/fastq-dump --origfmt --split-3 SRR001666
$ head SRR001666_1.fastq  SRR001666_2.fastq
==> SRR001666_1.fastq <==
@071112_SLXA-EAS1_s_7:5:1:817:345
GGGTGATGGCCGCTGCCGATGGCGTCAAATCCCACC
+071112_SLXA-EAS1_s_7:5:1:817:345
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII9IG9IC
@071112_SLXA-EAS1_s_7:5:1:801:338
GTTCAGGGATACGACGTTTGTATTTTAAGAATCTGA
+071112_SLXA-EAS1_s_7:5:1:801:338
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII6IBI

==> SRR001666_2.fastq <==
@071112_SLXA-EAS1_s_7:5:1:817:345
AAGTTACCCTTAACAACTTAAGGGTTTTCAAATAGA
+071112_SLXA-EAS1_s_7:5:1:817:345
IIIIIIIIIIIIIIIIIIIIDIIIIIII>IIIIII/
@071112_SLXA-EAS1_s_7:5:1:801:338
AGCAGAAGTCGATGATAATACGCGTCGTTTTATCAT
+071112_SLXA-EAS1_s_7:5:1:801:338
IIIIIIIIIIIIIIIIIIIIIIGII>IIIII-I)8I

另請注意,NCBI已將此FASTQ數據從原始Solexa/Illumina編碼轉換為Sanger標准(請參閱下面的編碼)。

變動

質量

        質量值Q是p的整數映射(即相應鹼基判定不正確的概率),主要有兩種不同的公式被使用。第一種是評估鹼基判定的可靠性的不標准Sanger變體,也稱為Phred質量分數:

        Solexa流程(即與Illumina Genome Analyzer一起交付的軟件)較早使用了不同的映射編碼概率p/(1-p),而不是p:

        雖然兩個映射在更高質量值處漸近地相同,但它們在較低質量水平下不同(即,近似p> 0.05等同Q <13)。

使用Sanger(紅色)和Solexa(黑色)方程(如上所述)的Q和p之間的關系。 垂直虛線表示p = 0.05,或等同地Q≈13。

        llumina流程1.4版用戶指南(附錄B,第122頁)指出:“評分定義為:Q=10*log10(p/(1-p)),其中p是對應鹼基判定的概率”。Illumina流程1.5版用戶指南(第5頁新增內容)對此進行了修改,“流程1.3版質量評分方案已更改為Phred評分方案,質量得分按Phred+64被轉換為ASCII字符表示。”

編碼

  • Sanger格式可以使用ASCII 33~126字符表示0~93的Phred質量分數(盡管在原始read數據中,Phred質量分數很少超過60,但在組裝或比對中可能有更高的分數)。這種方法也用於SAM格式中。根據seqanswers.com 上的公告,到2011年2月底,Illumina最新版本(1.8)的CASAVA流程將直接產生Sanger格式的fastq文件。
  • Solexa/Illumina 1.0格式可以使用ASCII 59~126字符表示-5~62的Solexa/Illumina評分(原始read數據Solexa評分僅為-5~40)。
  • 從Illumina 1.3版本開始,到Illumina 1.8版本,使用ASCII 64~126表示0~62的Phred質量分數(原始數據中Phred分數僅為0~40)。
  • 從Illumina1.5版本開始,到Ilumina 1.8版本,Phred分數為0~2的含義略有不同。值0和1不在使用,值2(ASCII字符“B”)作為read片段結束的質量控制指示器。Illumina手冊(第30頁)內容:如果read以質量最差的一段(Q15或更低)結束,則片段中的所有質量值將被值2替換(ASCII字符“B”)…此Q2指標不能表示特定的錯誤率,而是表示read的特定最終部分不應用於進一步分析。此外,在Illumina 1.6版本之前,質量分數編碼為“B”的鹼基也可能在read內部發生,如下所示:
@HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
TTAATTGGTAAATAAATCTCCTAATAGCTTAGATNTTACCTTNNNNNNNNNNTAGTTTCTTGAGATTTGTTGGGGGAGACATTTTTGTGATTGCCTTGAT
+HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
efcfffffcfeefffcffffffddf`feed]`]_Ba_^__[YBBBBBBBBBBRTT\]][]dddd`ddd^dddadd^BBBBBBBBBBBBBBBBBBBBBBBB
  • 對於原始的read,質量分數的范圍取決於所使用的技術和鹼基判定標准,但對於最新的Illumina流程,通常會達到41.由於最大觀察質量分數以前僅為40,因此各種腳本工具在遇到質量值大於40的數據時會中斷。而對於經過過處理的read,質量分數可能會更高。例如:Illumina的Long Read Sequencing Service(以前的Moleculo)中read的質量分數為45。
  SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.....................................................
  ..........................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX......................
  ...............................IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII......................
  .................................JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ.....................
  LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL....................................................
  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
  |                         |    |        |                              |                     |
 33                        59   64       73                            104                   126
  0........................26...31.......40                                
                           -5....0........9.............................40 
                                 0........9.............................40 
                                    3.....9..............................41 
  0.2......................26...31........41                              

 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, 41)
     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)

色域

        SOLiD數據,除了第一個位置,序列信息存儲在色域中。質量值是Sanger格式的質量值,比對工具在質量值的首選版本上有所不同:其中一些包括主要和核苷酸的質量評分,而另一些則沒有。序列read存檔文件包含此質量分數。

模擬

        FASTQ read模擬主要有以下幾個工具:ARTXS

壓縮

        質量分數占FASTQ格式所需磁盤空間(壓縮前)的一般左右,因此壓縮質量值可顯著降低存儲需求並加快測序數據的分析和傳輸。文獻中提到的壓縮方式主要無損和有損壓縮。例如,有損壓縮QualComp,無損壓縮SCALCEfastqz

        從Hiseq 2500開始,Illumina提供了將粗粒度質量輸出到質量表的選項。分積分數直接從經驗質量分數表中計算得出,該分數表與測序實驗中所使用的硬件、軟件和化學物質有關。

文件拓展名

        FASTQ文件並沒有標准的文件拓展名,但通常都是.fq或.fastq。

格式轉換器

  • Biopython version 1.51 onwards (interconverts Sanger, Solexa and Illumina 1.3+)
  • EMBOSS version 6.1.0 patch 1 onwards (interconverts Sanger, Solexa and Illumina 1.3+)
  • BioPerl version 1.6.1 onwards (interconverts Sanger, Solexa and Illumina 1.3+)
  • BioRuby version 1.4.0 onwards (interconverts Sanger, Solexa and Illumina 1.3+)
  • BioJava version 1.7.1 onwards (interconverts Sanger, Solexa and Illumina 1.3+)
  • MAQ can convert from Solexa to Sanger (use this patch to support Illumina 1.3+ files).
  • fastx_toolkit The included fastq_quality_converter program can convert Illumina to Sanger

命令行轉換

FASTQ to FASTA format:

zcat input_file.fastq.gz | awk 'NR%4==1{printf ">%s\n", substr($0,2)}NR%4==2{print}' > output_file.fa

Illumina FASTQ 1.8 to 1.3

 
sed -e '4~4y/!"#$%&'\''()*+,-.\/0123456789:;<=>?@ABCDEFGHIJ/@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghi/' myfile.fastq   # add -i to save the result to the same input file

Illumina FASTQ 1.3 to 1.8

 
sed -e '4~4y/@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghi/!"#$%&'\''()*+,-.\/0123456789:;<=>?@ABCDEFGHIJ/' myfile.fastq   # add -i to save the result to the same input file

Illumina FASTQ 1.8 raw quality to binned quality (HiSeq Qtable 2.10.1, HiSeq 4000 )

 
sed -e '4~4y/!"#$%&'\''()*+,-.\/0123456789:;<=>?@ABCDEFGHIJKL/))))))))))----------77777<<<<<AAAAAFFFFFJJJJ/' myfile.fastq   # add -i to save the result to the same input file

Illumina FASTQ 1.8 raw quality to clinto format (a visual block representation)

 
sed -e 'n;n;n;y/!"#$%&'\''()*+,-.\/0123456789:;<=>?@ABCDEFGHIJKL/▁▁▁▁▁▁▁▁▂▂▂▂▂▃▃▃▃▃▄▄▄▄▄▅▅▅▅▅▆▆▆▆▆▇▇▇▇▇██████/' myfile.fastq   # add -i to save the result to the same input file

 

參考資料

wiki FASTQ

 

轉載請標明《http://www.cnblogs.com/yahengwang/p/8973948.html


免責聲明!

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



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