数据库与数据格式

一、短序列数据库

1.INSDC : International Nucleotide Sequence Database Collaboration (insdc.org)

SRA(NCBI的短序列片段数据库)、ENA(欧洲EBI的短序列片段数据库)和DAR(日本DDBJ的短序列片段数据库)合作的组织,三者之间共享数据。

2.CLIPZ : http://www.clipz.unibas.ch

交联免疫共沉淀实验与RNA结合蛋白获得的短序列片段数据库,支持注释和可视化以及数据挖掘与分析

3.NGSmethDB :NGSmethDB - Database Commons (cncb.ac.cn)

收录了人类、鼠和拟南芥和两种胞嘧啶甲基化数据。

二、数据格式

微信图片_20240228194427

2.1序列及质量分数格式

①FASTA格式

FASTA 格式是一种基于ASCII 码的文本的格式,可以存储一个或多个核苷酸序列或肽序列数据。在FASTA格式中,每一个序列数据以单行描述开始(必须单行),后跟紧跟一行或多行序列数据。下一个序列数据也是如此,循环往复。

FASTA 格式文件中的每个序列信息由两个部分组成:

1. 描述行 (The description line, Defline, Header or Identifier line): 以一个大于号(“>”)开头,内容可以随意,但不能有重复,相当于身份识别信息。

2. 序列行 (Sequence Line):一行或多行的核苷酸序列或肽序列,其中碱基对或氨基酸使用单字母代码表示。

img

注意:在FASTA 格式文件中,内容中间不允许有空行,建议所有文本行的长度小于 80 个字符,序列超过80个字符的部分紧跟着换到下一行。

②CSFASTA格式

​ 与FASTA格式类似,只不过序列是颜色编码的,即color-space的。我认为这种格式其实对应与SoLiD测序方法,应该是这种方法产生的数据格式。

③FASTQ格式

使用最多的一种文本格式,包含了测序片段的序列和对应的质量分数。

下面是一个Illumina平台测序的真实数据,其中包含了1条reads的信息。

@ST-E00126:128:HJFLHCCXX:2:1101:7405:1133
TTGCAAAAAATTTCTCTCATTCTGTAGGTTGCCTGTTCACTCTGATGATAGTTTGTTTTGG
+
FFKKKFKKFKF<KK<F,AFKKKKK7FFK77<FKK,<F7K,,7AF<FF7FKK7AA,7<FA,,

FASTQ格式储存的序列信息,每1条reads的信息,可以分成4行。

第1行主要储存序列测序时的坐标等信息

@ST-E00126:128:HJFLHCCXX:2:1101:7405:1133

@ 开始的标记符号

ST-E00126:128:HJFLHCCXX 测序仪唯一的设备名称

2 lane的编号

1101 tail的坐标

7405 在tail中的X坐标

1133 在tail中的Y坐标

第2行是测序得到的序列信息,一般用ATCGN来表示,其中N表示荧光信号干扰无法判断到底是哪个碱基。

第3行以“+”开始,可以储存一些附加信息,一般是空的。

第4行储存的是质量信息,与第2行的碱基序列是一一对应的,其中的每一个符号对应的ASCII值成为phred值,可以简单理解为对应位置碱基的质量值,越大说明测序的质量越好。不同的版本对应的不同。

详细谈谈FASTQ质量值的计算方法

在测序仪进行测序的时候,会自动根据荧光信号的强弱给出一个参考的测序错误概率(error probility,P)根据定义来说,P值肯定是越小越好。我们怎么储存他们呢?直接储存成小数点?比如1%储存成0.01?这肯定是不高效的,因为1个碱基的信息,占用了至少4个字符。

所以科学家们的做法想了一个办法:

1.将P取log10之后再乘以-10,得到的结果为Q。

比如,P=1%,那么对应的Q=-10*log10(0.01)=20

2.把这个Q加上33或者64转成一个新的数值,称为Phred,最后把Phred对应的ASCII字符对应到这个碱基。

如Q=20,Phred = 20 + 33 = 53,对应的符号是”5”

这样就可以用1个符号与1个碱基一一对应,是不是很聪明?!

各版本不同Phred对应的ASCII值

* 在计算Q值和加上33/64的时候,不同测序仪,产生的数据不同,大概如下所示:

Solexa标准

img

Illumina标准

img

不同测序仪的不同Phred值对应的ASCII表

Solex: Q+64取ASCⅡ码

Illumina: Q+33取ASCⅡ码

当然两者的Q算法也不同

img

④CSFASTQ格式

同CSFASTA,不过类似于FASTQ。

⑤Qseq和SCARF

是Illumina平台自己的数据格式。

Qseq类似FASTQ,保存了测序仪名称、测序编号、条带编号、坐标等,每行保留一条序列信息,以“.”保存未知碱基(N)。并且其质量分数的计算也与FASTQ不同是pherd +64取ASCⅡ码。

SCARF类似,只是质量分数的计算采用了Solexa的方式。

⑥一些二进制类型格式

二进制类型格式一方面能够减小存储大小,但是也严重减少了阅读与修改的能力。

⑦小结

微信图片_20240228200630

2.2比对数据格式

①SAM格式

image-20240311103006441

sam格式是最常见的保存比对数据的文件格式,通常包含两部分:头部分和比对部分

img

a. 标头部分解释

img

b. 比对部分

img

最重要的是前8个flag ,这里采用2进制的方式进行存储Flag,并且满足对应情况时该位为1,不满足时该位为0,最后转为唯一的一个十进制数,表示这条read对比的情况如何。*表示缺省。

1 :该read使用双端测序,单端测序为0;
2: 该read和完全比对到参考序列;
4: 该read没有比对到参考序列;
8: 双端序列的另外一条序列没有比对上参考序列(read1或者read2);
16:该read比对到参考序列的负链上(该read反向互补比对到参考序列);
32 :该read的另一条read比对到参考序列的负链上;
64 :双端测序 read1;
128 : 双端测序read2;
256: 该read不是最佳的比对序列,一条read能比对到参考序列的多个位置,只有一个是最佳的比对位置,其他都是次要的;
512: 该read在过滤(碱基质量,测序平台等指标)时没通过;
1024: PCR(文库构建时)或者仪器(测序时)导致的重复序列;
2048: 该read可能存在嵌合(发生在PCR过程中),当前比对部分只是read的一部分;

再详细说说第5列MAPQ,即比对的质量:

对应参考序列的质量(MAPing Quality),比对的质量分数,越高说明该read比对到参考基因组上的位置越准确其值等于-10 lg Probility (错配概率),得出值后四舍五入的整数就是MAPQ值。如果该值是255,则说明对应质量无效。例如,MAPQ为20,即Q20,错误率为0.01,20 = -10log10(0.01) = -10*(-2)。

② bam格式

为了便于调用,传输和存储而将sam文件转为二进制获得的文件,其读取更为迅速,占用空间更小。并且能够生成索引提高读取速度。

③ 其他不常见格式

名称 类型 描述 后缀
PSL 文本 BLAT程序产生的比对格式 .psl
bowtie 文本 Bowtie产生的默认格式 .bowtie
maq 二进制 Maq产生的格式 .map

2.3 序列组装格式

①ACE格式

应用最广的组装格式,存储了contig和read信息还有序列、质量分数、起止坐标等,还提供可视化

②CAF格式

最初为了有效存储所有的数据,使所有组装程序以此为接口想结合而设计,因此更具兼容。在Sanger测序法中使用更多。

2.4注释及可视化信息格式

①BED格式

BED格式可用于UCSC的Genome Browser可视化工具中。同时主要是用于对基因组的特征或注释信息

img

BED格式每列表示不同的信息,用制表符分开:

1. chrom - 染色体名称 (e.g. chr3, chrY, chr2_random) 或 scaffold (e.g. scaffold10671).
2. chromStart - 染色体或scaffold起始位点. 注意!是从0开始计数!是从0开始计数!是从0开始计数!
3. chromEnd - 染色体或scaffold终止位点. 注意!结束位点的碱基不包含在内。比如chromStart=0, chromEnd=100, 那么实际上表示为    0-99.
4. name - BED的名称.
5. score - 分数为0 到1000。颜色越深,分数越高。
6. strand - 链方向. "." (=no strand) 或"+" 或 "-".
7. thickStart - 绘制特征的起始位置(例如起始密码子)。当没有thick部分时,thickStart和thickEnd通常设置为chromStart位置。
8. thickEnd - 绘制特征的终止位置(例如终止密码子)。
9. itemRgb - RGB值 (e.g. 255,0,0). 如果track 行 itemRgb 参数设置为 "On", RBG值会决定BED文件中该行数据的颜色.
10. blockCount - blocks (exons)在BED line的数量.
11. blockSizes - 用逗号分隔的列表,用来表示block的的大小。列表中数字的数目应和blockCount 一致。
12. blockStarts - 用逗号分隔的列表,用来表示block的起始。 所有blockStart 的位点应该和chromStart 相关。 列表中数字的数目应    和blockCount 一致。

在有block等相关列的BED文件中,blockStart* 值必须是 0, 因此第一个block是从*chromStart* 开始。同样的,最后一个blockStart* 位点加上最后一个blockSize 值应该和chromEnd相等。Blocks不能重叠.

BED格式样例,有几列就叫BED几,例如BED9有上述顺序数来9列的信息

track name="ItemRGBDemo" description="Item RGB demonstration" itemRgb="On" 
chr7  127471196  127472363  Pos1  0  +  127471196  127472363  255,0,0
chr7  127472363  127473530  Pos2  0  +  127472363  127473530  255,0,0
chr7  127473530  127474697  Pos3  0  +  127473530  127474697  255,0,0
chr7  127474697  127475864  Pos4  0  +  127474697  127475864  255,0,0
chr7  127475864  127477031  Neg1  0  -  127475864  127477031  0,0,255
chr7  127477031  127478198  Neg2  0  -  127477031  127478198  0,0,255
chr7  127478198  127479365  Neg3  0  -  127478198  127479365  0,0,255
chr7  127479365  127480532  Pos5  0  +  127479365  127480532  255,0,0
chr7  127480532  127481699  Neg4  0  -  127480532  127481699  0,0,25

②BIGBED

二进制压缩版的BED或bedgraph,压缩方式是将前三列的位置信息用二进制的索引代替。

转换时可以使用bedToBigBedbigBedToBed 互相转换

除了上述两种bed文件格式,还有bedGraph beddetail

③wig(wiggle)和bigwig

④GTF和GFF

目前只尝试过使用GFF3格式文件在IGV视图上进行可视化。

2.4变异数据格式

①GVF

②VCF

③pileup