Illumina输出文件详解

2023-11-11

Illumina测序原理(next-seq-550)

基本过程

Illumina测序包裹文库制备、簇生成、测序、数据分析四个过程。

  • 文库制备:主要是制作一些碎片化的核酸序列,并将这些碎片化的序列和接头序列连接起来。接头序列包括一段与测序芯片上的寡聚核苷酸(oligo)反向互补的一小段序列,同时如果需要也可以通过PCR插入一段index序列用于标记序列所属的样本。
  • 簇生成:该过程主要是桥式PCR的过程。在芯片上有两种寡聚核苷酸,首先被测序的单链DNA的接头与其中一种寡聚核苷酸识别互补,随后以被测序的单链DNA作为模板合成反向互补的DNA序列。合成完毕以后,进行核酸变性,洗去被测序的单链DNA。而后,被合成的DNA序列由于在3‘段的接头序列中存在与第二种寡聚核苷酸的互补序列,因此可以与第二种寡聚核苷酸序列识别。识别以后,会根据模板连生成一段反向互补序列。重复上述过程,完成簇生成。最后会切去第二种寡聚核苷酸延伸出的单链DNA。
  • 测序的过程即加入引物进行测序,核苷酸可以通过合成发出的荧光确定。具体原理参考illumina手册。双端测序则会在该过程结束后重新进行桥式PCR并切去第一种寡聚核苷酸延伸的单链DNA,并重新执行测序过程。
  • 数据分析过程,使用illumina专用的Sequencing Analysis Viewer分析生成BCL、图像等原始文件,再通过bcl2fastq即可获得fastq序列并继续后续分析。

基本概念

  • 流动槽(flow Cell):该名称为Illumina的官方术语,也称作芯片,为一次性用品。其表面遍布寡聚核苷酸。
  • 泳道(lane):一个流动槽有4个泳道。泳道指带有专用输入输出端口的物理通道。
  • 表面(surface):流动槽会在顶面和底面两个表面成像。一个小区的顶面成像后,该小区的底面会接着成像,之后会移至下一个小区。
  • 每泳道测绘带数(swaths per lane):测绘带是泳道中的一列小区。
  • 相机片段(camera segments):仪器使用6个相机对流动槽成像,为每个泳道成像3个片段。
  • 每个相机片段的的每测绘带小区数(tiles per swath per camera segment):小区是流动槽上的区域,相机将其视为一个图像。
  • 小区(tile):小区是流动槽上以相机的视野定义的小成像区域。
流动槽组件 高输出 中等输出
泳道 4 4
表面 2 2
每泳道测绘带数 3 1
相机片段 3 3
每个相机片段的每测绘带小区数 12 12
成像小区总计 864(相乘) 288(相乘)

注:泳道1和3(泳道对A)同时成像。泳道2和4(泳道对B)再泳道对A完成后成像。

注:相机编号为1-6。相机1-3对泳道1成像。相机4-6对泳道3成像。对泳道1和3成像后,成像模块会沿x轴方向移动,以便对泳道2和4成像。

BCL文件(Base Call Files)

BCL文件是由Illumina测序仪生成的测序文件,包含测序的信息。包括簇数和碱基信息。

  • 簇数:无符号32位整数(unsigned int, 4 Byte)表示。由开头的4个字节存储。
  • 碱基信息:无符号8位整数(unsigned char, 1Byte)表示。低位0-1比特位(bit)表示碱基(00-A,01-C,10-G,11-T),2-7比特表示碱基的质量分数,向右移2位即表示为该碱基的质量分数。

注:整数在内存中表示时从高地址向低地址表示。18 18 AA 08(16进制)实际表示为08 AA 18 18,即需要倒序为真实整数。

注:bit位由左向右为7-0。

例:

地址 数据(Hex dump)
0x00000000-0x00000003 18 18 AA 08 145365016(08AA1818,簇数)
0x00000004 81(1000 0001) 01 -> C,1000 00 -> 32
0x00000005 80(1000 0000) 00 -> A,1000 00 -> 32
0x0000000C 55(0101 0101) 01 -> C,0101 01 -> 21
0x0000000F 3B(0011 1011) 11 -> T,0011 10 -> 14
…… …… ……

BCI文件(Base Call Index Files)

本文件与bcl.bgzf.bci文件不同。本文件主要表征的是每个泳道中的每个小室中簇的数量,每个簇即对应一条Read。每条记录由两个无符号32位整数表示。其中低32位标识tile的编号,高32位标识小室中的簇的数量。

例:

地址 数据(Hex dump)
0x00000000-0x00000007 5D 2B 00 00 / 35 EE 09 00 11101(小室编号)/ 650805(簇数量)
0x00000008-0x0000000F 5E 2B 00 00 / D8 DF 09 00 11102 / 647128
0x00000010-0x00000017 5F 2B 00 00 / 00 BE 09 00 11103 / 638464
0x000006B8-0x000006BF 10 5B 00 00 / 60 3A 0A 00 23312 / 670304
…… …… ……

小室编号规则:

  • 表面:1表示顶面,2表示底面
  • 测绘带:1、2或3
  • 相机:1、2、3、4、5或6
  • 小区:01、02、03、04、05、06、07、08、09、10、11、12
  • 如:小区编号12508表示顶面、测绘带2、相机5和小区8

BGZF文件(Block GNU ZIP File)

该文件是BCL文件的压缩文件,压缩格式为BGZF格式,该格式与gzip格式兼容,可以使用gunzip命令或者7z解压。该文件实际上由按照序列排列的GNU ZIP压缩块组成,每个压缩块均可表示一个独立的gzip文件。即将gzip文件拼接成1个文件即是bgzf文件,拥有快速随机读写的能力。每个gzip压缩前后均不超过64KB。

  • 每一个gzip块的开头序列为:1F 8B 08 04 00 00 00 00 00 FF 06 00 42 43 02 00;
  • 每一个gzip块的结束序列为:1f 8b 08 04 00 00 00 00 00 ff 06 00 42 43 02 00 1b 00 03 00 00 00 00 00 00 00 00 00;

开头信息为:

主要:

Field Description Type Value
ID1 gzip IDentifier1 uint8_t 31
ID2 gzip IDentifier2 uint8_t 139
CM gzip Compression Method uint8_t 8
FLG gzip FLaGs uint8_t 4
MTIME gzip Modification TIME uint32_t
XFL gzip eXtra FLags uint8_t
OS gzip Operating System uint*_t
XLEN gzip eXtra LENgth uint16_t

附加1:

Field Description Type Value
SI1 Subfield Identifier1 uint8_t 66
SI2 Subfield Identifier2 uint8_t 67
SLEN Subfield LENgth uint16_t 2
BSIZE total Block SIZE minus 1 uint16_t

附加2:

Field Description Type Value
CDATA Compressed DATA by zlib::deflate() uint8_t[BSIZE-XLEN-19]
CRC32 CRC-32 uint32_t
ISIZE Input SIZE (length of uncompressed data) uint32_t

本文件的任意压缩块均包含上面的全部内容。

BGZF.BCI(Block Compress Index,可能叫这个名字)

需要注意的是这个文件与bci(Base Call Index Files)文件是不同的,本文件为BGZF压缩文件的索引文件。但本文件与bci(Base Call Index Files)文件是存在对应关系的。与bci文件相同的是,本文件的总记录数量与bci(Base Call Index Files)文件的记录数量是相同的,每一条记录均表示为一个小室(Tile)。由头信息与记录组成。

需要值得注意且极其重要的是,每一条记录都对应的都是一个小室,且每个小室都由不止一个gz块组成。每条记录的低16位与高48位组成,高48位即本小室开始的gz块在整个bgzf文件中地址。低16位表示该gz块解压后的数据块中本小室开始的地址。

如:04 00 / 00 00 00 00 00 00,表示第一小室(如泳道1的编号11101小室)的起始gz块的地址在整个bgzf文件中为0x00 00 00 00 00 00,04表示本小室在第一块gz块解压后的地址0x04开始。

如:39 EE / B2 E3 02 00 00 00为第二条记录,表示第二个小室的起始gz块的地址在整个bgzf文件中为0x00 00 00 02 E3 B2,39 EE表示第二小室在这个gz块解压后的数据的地址0xEE 39开始。

例:

地址 数据(Hex dump)
0x00000000-0x00000003 00 00 00 00 0(头信息)
0x00000004-0x00000007 D8 00 00 00 216 (头信息,小室数量)
0x00000008-0x0000000F 04 00 / 00 00 00 00 00 00 4 / 0(记录)
0x00000010-0x00000017 39 EE / B2 E3 02 00 00 00 60985 / 189362
…… …… ……

FILTER文件(簇过滤信息文件)

本文件主要包含的是每个簇的是否被过滤的信息。其中0-12 Byte表示该文件的头信息,包括头、版本、簇数。后面信息则为记录,每条记录为1 Byte。

例:

地址 数据(Hex dump)
0x00000000-0x00000003 00 00 00 00 0(头信息)
0x00000004-0x00000007 03 00 00 00 3(文件版本号)
0x00000008-0x0000000B 18 18 AA 08 145365016(08AA1818,簇数)
0x0000000C 00 False 未通过过滤,在Fastq的头中用Y表示
0x00000130 01 True 通过过滤,在Fastq的头中用N表示
…… …… ……

LOCS文件 (簇位置信息文件)

本文件主要记录的是每个簇所在的位置信息。其中0-12 Byte表示该文件的头信息。后面每8 Byte为一条记录,每条记录包括x轴位置信息和y轴位置信息。

例:

地址 数据(Hex dump)
0x00000000-0x00000003 01 00 00 00 1 (Uint32) 头信息
0x00000004-0x00000007 00 00 80 3F 1.0(Float32)头信息
0x00000008-0x0000000B EF E1 2F 02 36692463(022FE1EF,簇数)
0x0000000C-0x00000013 32 92 5B 43/21 EC 03 40 219.57(Float32,x轴坐标)/ 2.06 (Float32, y轴坐标)

坐标信息转换到Fastq文件中时需要进行一定的转换,具体转换公式如下:

_pos = (Uint32)record_pos*10+1000.5

Fastq格式文件 (Illumina)

Field Description
@ 每一条记录的开始
instrument 设备号
run ID 系统运行编号
flow cell ID 流动槽编号
lane 泳道编号
tile 小区编号
x_pos x轴坐标
y_pos y轴坐标
UMI [Optional] The UMI sequence (A, G, C, T, and N). When the sample sheet specifies UMIs, a plus sign separates the Read 1 and Read 2 sequences.[后接一个空格]
read 1/2分别表示单端或双端中序列1或序列2,单端测序仅有1,双端存在1和2
is filtered Y-表示被过滤,N-表示未被过滤
control number 0—Control bits are not turned on.*
index sequence or sample number [可选]接头序列或者样本的编号

第二行为碱基序列;

第三行为注释,一般为+;

第四行为质量信息,为phred33格式表示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Illumina输出文件详解 的相关文章

随机推荐

  • Vue3之watch和watchEffect实战总结

    watch和watchEffect都是vue3中的监听器 但是在写法和使用上是有区别的 主要是介绍一下watch和watchEffect的使用方法以及他们之间的区别 watch 的工作原理 侦听特定的数据源 并在回调函数中执行副作用 它默认
  • 高分辨率光学遥感影像舰船目标检测与识别算法研究(尹莹莹)

    论文阅读笔记 摘要 本文主要研究海陆背景下的光学遥感图像舰船目标检测与识别技术 重点研究了海陆分离 舰船目标疑似区域检测技术与疑似区域目标识别技术 海陆分离 采用了OTSU与形态学相结合的方法实现海路区域初步划分 再以孤立区域内像素的欧氏距
  • java中jdbc有哪几种形式呢?

    下文笔者讲述java中jdbc的形式简介说明 如下所示 JDBC驱动程序简介 JDBC驱动程序就是数据库厂商根据JDBC规范实现的JDBC实现类 JDBC驱动程序的类型 方式1 通过将JDBC的调用委托给其他编程接口来实现的 这种类型的驱动
  • EDK II Module Writers Guide上

    一 EDK2简介 1 EDK2工作流 二 EDK2 Packages 1 Packages介绍 EDK2 Packages是一个容器 其中包含一组模块及模块的相关定义 每个Package是一个EDK2单元 整个Project的源代码可以被分
  • Android正确的保活方案,不要掉进保活需求死循环陷进

    在开始前 还是给大家简单介绍一下 以前出现过的一些黑科技 大概在6年前Github中出现过一个叫MarsDaemon 这个库通过双进程守护的方式实现保活 一时间风头无两 好景不长 进入 Android 8 0时代之后 这个库就废掉了 最近2
  • 简单工厂模式和策略模式的比较

    代码结构图的区别 首先来看一下简单工厂模式 再看一下策略模式 看完他们的结构图 是不是有种很相似的感觉 唯一不同的就是 简单工厂类 和 Context类 接下来再看一下代码上有什么区别 简单工厂类和Context类中代码的区别 简单工厂类
  • linux查看mysql是否安装了驱动,Linux下查看mysql、apache是否安装,安装,卸载等操做...

    Linux下查看mysql apache是否安装 并卸载 php 指令 ps ef grep mysql 得出结果node root 17659 1 0 2011 00 00 00 bin sh usr bin mysqld safe da
  • Python一些经典例题(2)

    随机生成密码 编写程序 在26个字母大小写和9个数字组成的列表中随机生成10个8位密码 import random n 8 k 10 l list range 0 10 for x in range 65 91 l append chr x
  • DisplayPort1.4协议学习(一)DP协议概览

    DisplayPort1 4协议学习 一 DP协议概览 Note 本文为DP1 4协议学习系列的第一篇 本篇首先从DP整体结构上简要说明DP协议的传输方式 有关传输速率对比的问题 请STFW Search The Fucking Web D
  • 多态,反射及其相关

    多态是OOP的三大特征之一 字面意思 多种形态 多种状态 一个事物具备多种形态 例如 水 具备水蒸气 冰 赛博坦星人 汽车人 飞机人 汽车 动物 人 猿猴 猫 吃 叫 睡 官方描述 不同对象可以响应 调用 同一个方法 产生不同的结果 多态不
  • 用c++写一个windows窗口程序, 程序标题是你好

    include
  • Hibernate (一)

    文章目录 一 配置Hibernate 1 先创建数据库表 2 创建一个hibernate工程 3 导入hibernate所依赖的jar包 4 创建实体 product 5 配置 Product hbm xml 6 配置 hibernate
  • 工程师事业的思考(分享一些好的面试题)

    题记 最近去参加了一场技术交流会 小圈子内的技术交流 有来自大厂的一些高层工程师 做技术嘛 这条路其实是木有尽头的 说到底还是得要基础好哇 我目前是在做区块链行业 做数字货币交易所 然后很多朋友就是觉得非常不理解了嘛 就像李笑来说的那样 可
  • python程序员,编写远程监控程序,用微信监控女友都在做些什么?

    好奇心跟疑心 很多人都有好奇心或者疑心 有人说中国人最大的特点就是围观 你的女男朋友现在在做什么 有没有做什么对不起自己的事情 在跟谁聊天 是不是好奇想知道 python程序员 编写远程监控程序 用微信监控女友都在做些什么 用python写
  • Vue--插槽 vs 高复用组件

    为什么要用插槽 组件的最大特性就是提高复用性 而插槽的作用是最大程度的优化组件的可复用能力 组件的复用常见场景如多个页面有同样的UI结构 通过组件间通讯机制传递数据 以此达到同一套代码渲染不同数据的效果 然而 这种利用组件间通讯机制只能满足
  • 单机Qps上限是多少?

    现在这个年代 你要是不懂高并发 你都不好意思说自己是搞互联网的 一 什么是并发 什么是高并发 并发 两个及以上的行为一起发生 比如你一边吃饭一边看电视 高并发 多个行为 至于是多少 这个没有定数 你可以认为是100 1000 一起发生 二
  • Spring Boot 中的 @Id 注解是什么,原理,如何使用

    Spring Boot 中的 Id 注解是什么 原理 如何使用 在 Spring Boot 中 Id 注解是一个非常重要的注解 它用于映射实体类中的主键字段 本文将介绍 Id 注解的作用 原理和使用方法 1 Id 注解的作用 在 Sprin
  • 全国计算机考试三级Linux应用与开发技术考试大纲

    基本要求 掌握操作系统的基本概念 组成 功能和原理 了解 Linux系统的发展历程 特点 应用现状和前景 掌握常用的Linux命令和Shell脚本编程基本技术 具备Linux系统安装 配置 管理与维护的基本技能 熟悉Linux系统的常用软件
  • 关系代数之连接 (Join)和除(Division)

    关系代数之连接 Join 和除 Division 数据库技术中这两个概念 对初学者而言 理解比较困难 本文对此进行深入浅出的解释 连接 Join 联接 定义 从两个关系的笛卡尔积中选取属性间满足一定条件的元组 记作 其中A和B分别为R和S上
  • Illumina输出文件详解

    Illumina输出文件详解 Illumina测序原理 next seq 550 基本过程 基本概念 BCL文件 Base Call Files BCI文件 Base Call Index Files BGZF文件 Block GNU ZI