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格式所需磁盘空间(压缩前)的一般左右,因此压缩质量值可显著降低存储需求并加快测序数据的分析和传输。文献中提到的压缩方式主要无损和有损压缩。例如,有损压缩QualComp,无损压缩SCALCE、fastqz。
从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
参考资料
转载请标明《http://www.cnblogs.com/yahengwang/p/8973948.html》
FASTQ格式的更多相关文章
- fasta/fastq格式解读
1)知识简介--------------------------------------------------------1.1)测序质量值 首先在了解fastq,fasta之前,了解一下什么是质量 ...
- 文件格式——fastq格式
fastQ格式 FASTQ是一种存储了生物序列(通常是核酸序列)以及相应的质量评价的文本格式. 他们都是以ASCII编码的.现在几乎是高通量测序的标准格式.NCBI Short Read Archiv ...
- Spark直接读入fastq格式的数据
输入文件: fastq格式 输出结果: kmer的频数和对应的kmer类型 系统环境Ubuntu单机版17.01 spark版本2.7 此次测试主要用到了RDD的函数foreach和zipWithIn ...
- 利用Bioperl的SeqIO模块解析fastq文件
测序数据中经常会接触到fastq格式的文件,比如说拿到fastq格式的原始数据后希望查看测序碱基的质量并去除低质量碱基.一般而言大家都是用现有的工具,比如说fastqc这个Java写的小程序,确实很好 ...
- 【转录组入门】3:了解fastq测序数据
操作:需要用安装好的sratoolkit把sra文件转换为fastq格式的测序文件,并且用fastqc软件测试测序文件的质量 作业:理解测序reads,GC含量,质量值,接头,index,fastqc ...
- 弗雷塞斯 从生物学到生物信息学到机器学习 转录组入门(3):了解fastq测序数据
sra文件转换为fastq格式 1 fastq-dump -h --split-3 也就是说如果SRA文件中只有一个文件,那么这个参数就会被忽略.如果原文件中有两个文件,那么它就会把成对的文件按*_1 ...
- sam格式详细说明
原文链接 https://www.jianshu.com/p/386f520e5de1 The SAM Format Specification(sam格式说明) 1 The SAM Format S ...
- 转录组入门(3):了解fastq测序数据
sra文件转换为fastq格式 fastq-dump -h --split-3 也就是说如果SRA文件中只有一个文件,那么这个参数就会被忽略.如果原文件中有两个文件,那么它就会把成对的文件按*_1.f ...
- C语言计算fastq文件GC含量
C语言小练习:计算非压缩fastq格式的GC含量 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <strin ...
随机推荐
- Little-endian和Big-endian模式
这段C程序的结果是多少? 嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解.采用Little-endian模式的CPU对操作数的存放方式是从低字节到高字节,而Big- ...
- 申请edu邮箱
https://blog.csdn.net/w305607610/article/details/86771593 手把手教你申请CCC(City Colleges of Chicago)教育邮箱 台 ...
- 【BZOJ4052】[Cerc2013]Magical GCD 乱搞
[BZOJ4052][Cerc2013]Magical GCD Description 给出一个长度在 100 000 以内的正整数序列,大小不超过 10^12. 求一个连续子序列,使得在所有的连续 ...
- JavaScript toFixed() 方法注意点
定义和用法 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 语法 NumberObject.toFixed(num) 参数 描述 num 必需.规定小数的位数,是 0 ~ ...
- Java for LeetCode 136 Single Number
Given an array of integers, every element appears twice except for one. Find that single one. Note: ...
- jQuery:[2]百度地图开发平台实战
jQuery:[2]百度地图开发平台实战 原文链接: http://blog.csdn.net/moniteryao/article/details/51078779 快速开始 开发平台地址 ht ...
- Cmder配置
中文乱码和重叠 当我们使用ls命令查看文件目录时,发现,中文被显示成了一些奇怪的乱码,将以下几行代码配置在cmder/config/user-aliases下即可解决问题: l=ls --show-c ...
- BZOJ1833 数位DP
数位DP随便搞搞. #include<iostream> #include<cstdio> #include<cstdlib> #include<cstrin ...
- iOS SDK:iOS调试技巧
感谢原创 在程序中,无论是你想弄清楚为什么数组中有3个对象而不是5个,或者为什么一个新的玩家开始之后,游戏在倒退——调试在这些处理过程中是比较重要的一部分.通过本文的学习,我们将知道在程序中,可以使用 ...
- Java里的阻塞队列
JDK7提供了7个阻塞队列,如下: ArrayBlockingQueue : 一个数组结构组成的有界阻塞队列. LinkedBlockingQueue : 一个由链表结构组成的有界阻塞队列 . Pr ...