生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

278

主题
发表于 2021-12-27 16:32:57 | 查看: 1478| 回复: 1
本帖最后由 生信喵 于 2021-12-27 16:34 编辑

一、原始测序数据 FAST5 文件
      HDF(Hierarchical Data Format)是一种设计用于存储和组织大量数据的文件格式,是一种分级的数据文件,可以存储不同类型的图像和数码数据的文件格式,并且可以在不同类型的机器上传输,同时还有统一处理这种文件格式的函数库,最开始由美国国家超算中心研发,后来由一个非盈利组织 HDF Group 支持.HDF 支持多种商业及非商业的软件平台,包括MATLAB、Java、Python、R 和 Julia 等等,现在也提供了 Spark.其版本包括了 HDF4 和现在大量用的 HDF5。
      关于 hdf5:https://www.neonscience.org/about-hdf5
      nanopore 测序原始文件扩展名为 fast5,是一种经过修改的 HDF5 格式。fast5 文件由于包含内容较多,因此文件较大。通常是测序数据的 10-20 倍。
fastq 与 fast5 大小对应关系
      
fast5 文件层级结构示意图
      
HDFView 查看Fast5文件格式
      

二、利用 Guppy 进行 basecalling
2.1 Guppy 概述
      Guppy 是 Oxford Nanopore 提供的碱基识别软件,是一款基于命令行的工具包,MinKNOW软件中内置了该工具,也可以单独安装。主要用于将 nanopore 各测序平台原始数据转换为碱基。Guppy 目前最为纳米孔官方生产环境的 basecalling 工具,可以替换之前的 Albacore工具,需要去 nanopore 官方网站注册下载。Guppy 升级很快,请选择最新版本下载使用。
      
guppy 主要包括三大功能:
1、碱基识别
      Guppy 使用神经网络算法(RNN)将电信号数据解读为 DNA 或 RNA 的五个标准碱基,即腺嘌呤,鸟嘌呤,胞嘧啶,胸腺嘧啶和尿嘧啶。
2、拆分条码数据
      添加条形码的每条序列,在序列开端和尾端均有 Oxford Nanopore Technologies 提供的条形码序列。Guppy 数据拆分功能基于识别出的碱基序列。
3、比对
      用户可以提供 FASTA 或者 minimap2 index 的文件作为输入文件。比对过程基于 Oxford Nanopore Technologies 预设的参数,通过内置的 minimap2 将数据比对到参考序列。

2.2 Guppy 碱基识别
      guppy 程序包主要包含三个程序,guppy_basecaller ,guppy_barcoder ,guppy_aligner 分别完成 basecalling,拆分 barcode 以及比对功能guppy_basecaller 也可以完成拆分barcode 功能,也可以先 basecalling,再使用 guppy_barcoder 进行拆分。
      选择合适的操作系统版本,以及是否需要支持 GPU 计算,
      利用 guppy 进行 basecalling 的操作并不难,主要输入原始测序文件夹,fast5 格式,配置文件,输出 fastq 格式文件或者转换完的 fast5,统计文件。
      需要特别注意的是,一定要选择好正确的配置文件,包括芯片类型,建库方式,是否使用barcode 等信息。
  1. basecalling
  2. guppy_basecaller -i fast5_files/ -s output --config dna_r9.4.1_450bps_fast.cfg -r
  3. --num_callers 4 --cpu_threads_per_caller 2 --fast5_out
  4. 合并数据
  5. cat output/*.fastq >all.fastq
  6. 压缩数据
  7. gzip all.fastq
复制代码
必要参数:
      -i 输入文件夹
      -s 输出文件夹
      --config 配置文件
      -r 递归处理
可选参数:
      --print_workflows 打印工作流程
      --flowcell 芯片类型(FLO-MIN106/FLO-MIN107)
      --fast5_out 指定输入 fast5 格式文件路径
      --num_callers 并行处理,每个 num 产生一个 fastq 文件
      --cpu_threads_per_caller 2 cpu 线程数
      --compress_fastq 输出压缩格式
      -q 每个文件最大条数,0 代表单独一个文件,给一个很大的值,都放在一起。
      --num_callers 的数值跟生成的 fastq 文件数目一样
      --records_per_fastq, per run ID or per caller。可以设成一个 caller
      -x --device,GPU 计算,'auto', 或者 'cuda:<device_id>'
Guppy 结果文件:
      1、FASTQ 文件
      2、测序总结文档(Sequencing_summary.txt)
      3、遥测信息文件(Sequence telemetry.js)一包含测序过程中的温度/电压/纳米孔状态等信息
      4、Guppy 碱基识别软件日志(guppy_basecaller_1og-2019-**.**_**-**。*.log)
  1. fastq_runid_4dd5f26403973742429ebeec317fec22caaed8da_0_0.fastq
  2. fastq_runid_4dd5f26403973742429ebeec317fec22caaed8da_1_0.fastq
  3. guppy_basecaller_log-2020-09-17_10-07-54.log
  4. guppy_basecaller_log-2020-09-17_10-08-11.log
  5. guppy_basecaller_log-2020-11-21_19-19-26.log
  6. -rsequencing_summary.txt
  7. sequencing_telemetry.js
  8. workspace/
复制代码

2.3 利用 Guppy 拆分条码数据
      如果在建库时使用了 barcode,测序完可以通过 barcode 进行拆分样品。barcode 是在每一条序列两端添加固定序列,软件根据首位 barcode 序列不同进行拆分,类似分类彩球的过程。
      由于存在连接 barcode 效率以及测序错误的存在,有些序列无法进行拆分,会被分配到unclassified 组。      
      均一化打分为 0-100 分的维度。大于 60 分以上默认为可信的拆分(阀值可调)
basecalling 同时拆分 barcode
  1. guppy_basecaller -i fast5 -s fastq --config dna_r9.4.1_450bps_hac.cfg -r
  2. --num_callers 4 --cpu_threads_per_caller 2 -x cuda:all --trim_barcodes
  3. --barcode_kits SQK-RBK004 --min_score 10
复制代码
basecalling 与拆分 barcode 分布完成
  1. 首先进行 basecalling
  2. guppy_basecaller -i fast5 -s fastq --config dna_r9.4.1_450bps_hac.cfg -r
  3. --num_callers 4 --cpu_threads_per_caller 2 -x cuda:all
  4. 拆分 barcode
  5. guppy_barcoder -i fastq -s barcode --trim_barcodes --barcode_kits SQK-RBK004
  6. --min_score 10
复制代码
选项参数:
      --barcode_kits :barcodekit 名字
      --min_score:barcode 比对的阈值,默认 60
      --trim_barcodes:是否切除 barcode 序列,一般需要切除
输出文件:
      1、目录 barcode{xx}一包含这个 barcode 号码下的.fastq 文件,每个文件包含 4000 条序列
      2、目录 unclassified-包含所有分类打分低于 60 分的序列(阈值可调)
      3、文件 barcoding_summary.txt-被鉴别出的 barcode,分值等,
      4、文件 read_processor_Jog-YYYYMMDD_HHMMSS}.log-记录
所有文件的 barcode 分配情况以及完成情况
  1. drwxr-xr-x. 2 meta bio 82 Oct 26 12:12 barcode01/
  2. drwxr-xr-x. 2 meta bio 82 Oct 26 12:12 barcode02/
  3. drwxr-xr-x. 2 meta bio 226 Oct 26 12:12 barcode03/
  4. drwxr-xr-x. 2 meta bio 226 Oct 26 12:12 barcode04/
  5. drwxr-xr-x. 2 meta bio 82 Oct 26 12:12 barcode05/
  6. drwxr-xr-x. 2 meta bio 82 Oct 26 12:12 barcode06/
  7. drwxr-xr-x. 2 meta bio 82 Oct 26 12:12 barcode07/
  8. drwxr-xr-x. 2 meta bio 82 Oct 26 12:12 barcode08/
  9. drwxr-xr-x. 2 meta bio 82 Oct 26 12:12 barcode09/
  10. drwxr-xr-x. 2 meta bio 82 Oct 26 12:12 barcode10/
  11. drwxr-xr-x. 2 meta bio 82 Oct 26 12:12 barcode11/
  12. drwxr-xr-x. 2 meta bio 82 Oct 26 12:12 barcode12/
  13. -rw-r--r--. 1 meta bio 11M Oct 26 12:12 barcoding_summary.txt
  14. -rw-r--r--. 1 meta bio 11K Oct 26 12:12 read_processor_log-2020-10-26_12-12-25.log
  15. drwxr-xr-x. 2 meta bio 82 Oct 26 12:12 unclassified/
复制代码


三、利用 NanoPlot 进行数据质控
      当前 nanopore 测序质量虽然有很大的改善,但准确性依然不及二代测序,例如 illumina 或者 BGIseq 等,前面介绍过,目前主流的 R9.4 芯片准确性在 92%左右。二代测序的质控标准质量值标准是 Q20,而纳米孔测序绝大部分碱基质量值都在 15 以下,质控标准为 Q7。
      NanoPlot 可以用来对 nanopore 数据进行统计绘图,输入文件为 fastq 格式,绘图时需要调用 NanoStat 进行统计。NanoPlot 利用这些统计信息进行绘图,最终会生成一个网页格式文件,包括序列读长的直方图、序列读长与序列平均质量的散点图等。同时,该软件也可以对guppy 碱基识别后生成的统计文件 sequencing_summary.txt 进行绘图。
NanoPlot 绘制质控图
  1. 方法一:NanoPlot 质控
  2. NanoPlot --fastq nanopore.fastq.gz -o nanoplot
  3. 方法二:对 guppy 生成的 sequencing_summary.txt 的绘图
  4. NanoPlot --summary output/sequencing_summary.txt --loglength -o summary
复制代码
选项参数:
      -t:线程数目
      -o, --outdir:输出结果目录
      -p, --prefix:输出结果前缀
      --color:点的颜色
      --N50:表示在序列读长的直方图中显示 N50 的标识
      --title:标题
      --downsample :在输入文件中随机抽取 n 条序列进行处理
      --minlength:忽略 nbp 以下的 reads
      -- fastq:输入 fastq 格式文件
      -f:图片类型
      --plots:绘图类型,kde,hex,dot,pauvre
NanoPlot 质控图
      


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

发表于 2021-12-27 16:33:30
还可以利用 filtlong 过滤数据
      与二代测序不同,nanopre 测序为单端测序,每条数据长度不同,并且不包含通用 adapter接头,因此,数据过滤方式与 illumina 等二代测序完全不同,过滤数据主要是过滤掉一些长度过短的片段与整条测序质量比较低的片段,有些情况下如果包含 barcode,也需要对首尾进行切割。
      filtlong 可以用于过滤、剪切长读长测序数据的软件。可以根据选定的质量值(Q 值)过滤,亦可根据选定的读长进行过滤。该软件同时对数据进行剪切,从读长的头或尾端截去特定数目的碱基。
      https://github.com/rrwick/Filtlong
过滤数据
  1. <p>filtlong --min_length 2000 --min_mean_q 90 nanopore.fastq.gz |</p><p>gzip >nanopore.filtlong.fq.gz#<b>过滤完质控</b></p><p>NanoPlot --fastq clean.filtlong.fq.gz -o clean</p>
复制代码
     --min_length :最短长度
      --min_mean_q:平均 Q 值
      --keep_percent:保留最好数据的百分比
      --target_bases:保留多少数据,单位为 bp

回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|生信人

GMT+8, 2024-4-30 02:37 , Processed in 0.039966 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表