分享

Nanopore测序平台简介和数据前期处理

 生物_医药_科研 2019-10-06

生日快乐,我的国

黎明驱走了黑暗,日出带来了光芒,祖国的光辉好似阳光,照亮了我们的前程,指明了我们前进的方向,带领全国各族人民从贫穷走向富裕,从胜利走向辉煌。

建设美好祖国的重任将落在我们年轻一代的肩上,让我们为此奋斗!

锦绣中华,盛世华诞;好好学习,day day up'!

Nanopore测序平台简介和数据前期处理

Nanopore简介

    Nanopore测序技术从上世纪八十年代提出,到近几年才开始进入商业应用,前后经历了三十年的时光。符合一个新技术从出现到应用至少三十年的规律,其中不知道多少人“死”在了冲锋的道路上。

   Oxford Nanopore Technologies (ONT) 公司的测序平台最近发展迅速,处在一个实时更新,新工具层出不穷的阶段。现阶段ONT 一共有5个测序平台:Flongle,MinION,GridION X5,PromethION和SmidgION(可以直接连接在手机上完成测序,还只是一个概念的东西)。现阶段很多实验室自行搭建ONT的测序平台:其实就是买点芯片、测序试剂盒,然后公司送一共MinION,再配一个性能好点的笔记本或图形工作站安装MinKNOW software,USB一连就可以美美的测序了。多个MinION可以摆成一字长蛇阵,还带彩光,看着就科幻(赏心悦目),高级的点的实验室可以配一个GridION X5,它其实就是5个MinION整合到一起,可以同时进行5个测序芯片的运行,这也只有一个大点的打印机大小。而PromethION (48个平行 PromethION Flow Cell)就属于大型机了一般只有在公司或者测序中心可以看到,产出Tb级别的数据。当其他测序平台(其实说的就是PacBio,现阶段也就只有它了)强调自己的优势的时候,ONT就会展示自己的小身板表示我小,我可以揣兜里,随便去哪,国际空间站我也是去过的。

Q

     UCSC graduate student Miten Jain loads the MinION [1]

     与以往的二代测序(现在主要是Illumina)测序平台不同,三代测序的突破点是real-time, single molecular,不需要桥式或者微滴PCR过程,这就减少了PCR导入的偏好;读长长(这是碾压二代测序的地方,对于de novo 基因组,大范围的SV,CNV检测都取得了革命性的突破);全长转录组测序,直接获得isoforms,不需要拼接,可以获得大量的可变剪接,融合基因和新基因的信息;同时因为是单分子测序,根据酶动力学或电信号变化,不但能测序还可以直接检测到核酸的甲基化修饰。其中最具颠覆性的测序技术就是Nanopore,它真正符合科学家简单粗暴的设想,把核酸分子拉直,扫描过去直接获得全部的信息,不像PacBio那样需要额外处理(DNA聚合酶一圈圈的合成测序),不需要subreads到CCS的合并,可以用直接的reads反应单细胞水平真实的核酸序列情况。所一有人也称Nanopore为四代测序。

     Nanopore通过检测核酸分子通过时碱基不同引起的电信号变化,最后将电信号转化成序列,一般测序读长在10 kb左右,优化建库策略后可以达到几十到上百kb。官方号称可以gDNA提取后不进行片段化和文库长度筛选直接上机测序,DNA分子越长reads就越长,但现在这样操作的基本不存在,这就是“理想很丰满,现实很骨感”-差距啊!

  ONT平台也可以完成direct RNA sequencing,直接对RNA分子测序,这样就避免了反转录和PCR带来的偏好和错误,能够获取全长的转录本,同时保留了RNA的甲基化信息。

科研工作者们希望在Nanopore平台上继续推进,最终实现直接读取DNA,RNA和protein的序列信息,同时一并获取相应的修饰信息,这样就大大简化了生物信息学前期测序的投入,降低了其复杂度。

      GridION X5 from Oxford Nanopore Technologies

Nanopore测序试剂盒(Nanopore.):

DNA:连接试剂盒SQK-LSK109。

RNA:直接RNA测序试剂盒SQK-RNA002,直接cDNA测序试剂盒SQK-DCS109,cDNA-PCR测序试剂盒SQK-PCS109。

其他:各种条形码试剂盒。

现在的ONT平台可以添加相应的barcode,完成混样测序,降低测序成本。Guppy (basecaller)可以完成数据拆分,拆分出80-90%以上的reads,具体的比例需要自己去测试了。

有两种芯片R9.4.1和R5.5.1,9.4适用于1D测序(单链),9.5适用于1D2测序(双链)。原来有一个2D的测序方法,据说是与PacBio有专利矛盾,现在已经不用了。三代测序的错误率都比较高,10%-20%,上半年北京的Nanopore大会上报告其准确性提升到了93%。最新的R10芯片(在通道蛋白里有两个reader,可以用来校正信息,提高测序精确度)官方宣传测序质量到Q50,具体效果要等大家测试了。

Nanopore Sequencing from Oxford Nanopore Technologies

今天一定要努力工作

绝对不会浪费时间

      只想简单介绍一下Nanopore测序平台,没想到一下子收不住写了这些,其实对应的测序原理介绍现在已经有相当多的资料,我在这只是为下面的数据处理做一个简单的铺垫,其中的测序原理和建库流程将来有时间会再写一章做一个详细的介绍。关于Nanopore技术的详细资料和最新进展都可以在官方的Nanopore Community上面找到说明。

Nanopore 前期数据处理

     Nanopore通过MinKNOW软件生成的下机数据是fast5格式,记录着整个测序中详细的电信号信息,是最原始的数据。一个run大约需要48 h,可以在测序完成后进行basecalling,也可以同时进行,这需要硬件的配置好一些。官方推荐MinIT,专门用来basecalling,但性价比不高($2,400)功能单一,配置也不好。官方还提供一个EPI2ME的云服务,可以在测序的过程中完成时时的分析,个人觉得比较适合做传染病监测,可以在几个小时之内完成传染源(病毒,细菌,真菌,古生菌等等)鉴定,为防治提供及时的指导。

Nanopore平台的数据对运算和存储的要求是比较高的,30X的人类数据存储要10 Tb以上,24核128 G的计算节点,跑完整个流程要按周算,当然如果能申请到很多计算资源或者有fat或Superfat节点那样最好了。

……又扯远了!

     19年以前的fast5文件是一条序列一个fast5文件,一个MinION的flowcell就生成10-20 Gb的数据量(官方30 Gb,今年7月份最高纪录43 Gb,扩增子测序),million级别的reads,这百万千万级别的文件处理就是一个大麻烦,完成一次文件拷贝和统计要花很长时间,不知道他们当时怎么想的,这么大一个bug。虽然ext4对文件数目不做要求,但太多小文件对文件存储系统压力太大。现在新的MinKNOW做了升级,可以设定生成multi_fast5文件,一个fast5包含的reads数目可以自己设定,一般4,000。因为这个历史遗留问题,很多软件不支持multi_fast5文件,这就需要对两者进行转换:

ont_fast5_api (https://github.com/nanoporetech/ont_fast5_api) :

pip install ont-fast5-api

single_to_multi_fast5 --input_path /single_fast5_dir/ --save_path /multi_fast5_dir/ --filename_base batch_output --batch_size 4000 --recursive -t 6

multi_to_single_fast5 --input_path /multi_fast5_dir/ --save_path /single_fast5_dir/ --recursive -t 6

具体参数说明GitHub上查看,接触一个新软件还是要详细的看软件说明,虽然很多又臭又长,但经常会有意外收获,可以获得一些新的功能,对解决实际问题很有帮助。

Bascalling: 官方有两个工具Albacore和Guppy,这是跟各种鱼较上劲了,现在官方已经放弃维护Albacore,推荐使用Guppy。Guppy基于神经网络RNN,对basecalling的速度做了很大的提升,而且有CPU和GPU两个版本,如果有GPU资源的话建议使用GPU版本,这种密集的重复性运算在GPU上的速度会有巨大的提升。

Albcore (http://porecamp./2017/basecalling.html) :

pip3 install /asnas/renjie_group/heming/soft/ont_albacore-2.3.4-cp35-cp35m-manylinux1_x86_64.whl

read_fast5_basecaller.py -f FLO-MIN106 -k SQK-LSK108 -r -t 6 -s ./save_dir/ -o fastq -i ./input_fast5_dir/
-f --flowcell Flowcell used during the sequencing run.
-k --kit Kit used during the sequencing run.
-r --recursive Recurse through subfolders for input data files.
-t --work_threads WORKER_THREADS
-s --save_path
-o --output_format desired output format, can be fastq, fast5 or only one of these.
-i --input Folder containing read fast5 files.

Guppy (https://community./protocols/Guppy-protocol) :

GPU version: apt-get install ont-guppy
CPU version: apt-get install ont-guppy-cpu
因为我这没有GPU资源,一直使用的CPU版本,下面介绍一下CPU版本的使用,其实GPU的使用大同小异,修改几个参数(--num_callers --ipc_threads, --device, etc),详细的可以去看说明。
/ont-guppy-cpu/bin/guppy_basecaller -i ./input_fast5_dir/ -s ./save_dir/ --flowcell FLO-MIN106 --kit SQK-LSK109 --fast5_out --records_per_fastq 0 --qscore_filtering 7 --num_callers 1 --cpu_threads_per_caller 8 --recursive
大多数参数和albacore类似
--fast5_out output of fast5 files
--records_per_fastq The number of reads to put in a single FASTQ file. Set this to zero to output all reads into one file (per run ID, per caller). The default value is 4000.
--qscore_filtering Enable filtering of reads into pass/fail folders inside the output folder, based on their strand q-score.
--num_callers The number of parallel basecallers to create. A thread will be spawned for each basecaller to use.
--cpu_threads_per_caller The number of CPU threads to create for each caller to use.
--num_callers --cpu_threads_per_caller 这 两个参数使用后结果很诡异,软件运行的更慢了,应该跟我的软件版本有关,旧版本(v2.1.3)可以不单独设置。这里设定num_callers的数值跟生成的fastq文件数目一样:--records_per_fastq, per run ID or per caller。可以设成一个caller,多核,测试没有大的区别。当你数据量特别大且计算资源充足的话可说使用multi caller,省去了自己批处理。不过CPU版的Guppy v3.2.4用起来要比旧版的慢不少,看来是让大家都去使用GPU版的,最新的GPU版本内存和计算资源的使用都有了极大的提升。
     相关参数有几十个,一般用到的是上面这些,同时barcode数据和RNA数据会有部分相应的参数改变。

guppy_basecaller_1d2: running 1D2 analysis

PS. Guppy这些软件更新很快的,我上半年用的还是v2.1.3,现v3.2.4已经更新了。随时关注软件动态,会有大量新功能释放,有新闻说Guppy升级要直接检测5mC (CpG,dcm,dam)。

Quality: MinIONQC (https://github.com/roblanf/minion_qc) :

curl https://raw./roblanf/minion_qc/master/MinIONQC.R > MinIONQC.R
install.packages(c('data.table',
                   'futile.logger',
                   'ggplot2',
                   'optparse',
                   'plyr',
                   'readr',
                   'reshape2',
                   'scales',
                   'viridis',
                   'yaml'))

Rscript MinIONQC.R -i /full_path/summary/ -o /out_dir/ -p 1 -s TRUE -c TRUE -q 7
-i --input sequencing_summary.txt files produced by Guppy basecalles. Either a full path to a sequence_summary.txt file, or a full path to a directory containing one or more such files. In the latter case the directory is searched recursively.
-s --output directory
-p --processors Number of processors (default 1). Only useful when you are analyzing more than one sequencing_summary.txt file at a time.
当-i里有多个summary 文件时候可以自动批量处理
-s --smallfigures Set the size of figures
-c --combined-only When true, MinIONQC will only produce the combined report, including all of the flowcells.
-q --qscore_cutoff The cutoff value for the mean Q score of a read.
运行完成后会通过ggplot2生成详细的统计结果:reads长度图,reads质量图等。

     前期数据处理完后就可以进行下游分析:基因组组装,SV/CNV分析,甲基化分析(5mC,6mA,m6A),全长转录组分析。这里面涉及到许许多多新开发的软件:NextDenovo (https://github.com/Nextomics/NextDenovo), NextPolish (https://github.com/Nextomics/NextDenovo), Canu [2], Pilon [3],Nanopolish [4],NECAT (https://github.com/xiaochuanle/NECAT),DeepSignal [5], mCaller [6], EpiNano [7],minimap2 [8],Picky [9],NGMLR-sniffles [10],SingalAlign,BWA-MEM,GraphMap …… 太多了就不引用参考文献了。

     因为技术比较新,这些工具也大都是近两年出现的,或多或少都存在问题,使用中要多看说明,去google多搜一下(GitHub,Biostar,SEQanswers, etc),很多人会碰到和你一样的问题。

     没想到写写就花了一个晚上,下游分析的说明等我有时间再继续整理。

     待续……

感觉身体被掏空

参考文献:

1.Marx, V. (2015). Nanopores: a sequencer in your backpack. Nature Methods 12, 1015-1018.

2.Koren, S., Walenz, B.P., Berlin, K., Miller, J.R., Bergman, N.H., and Phillippy, A.M. (2017). Canu: scalable and accurate long-read assembly via adaptive k-mer weighting and repeat separation. Genome Research 27, 722-736.

3.Walker, B.J., Abeel, T., Shea, T., Priest, M., Abouelliel, A., Sakthikumar, S., Cuomo, C.A., Zeng, Q., Wortman, J., Young, S.K., et al. (2014). Pilon: an integrated tool for comprehensive microbial variant detection and genome assembly improvement. PLoS One 9, e112963.

4.Simpson, J.T., Workman, R.E., Zuzarte, P.C., David, M., Dursi, L.J., and Timp, W. (2017). Detecting DNA cytosine methylation using nanopore sequencing. Nature Methods 14, 407-410.

5.Ni, P., Huang, N., Zhang, Z., Wang, D.P., Liang, F., Miao, Y., Xiao, C.L., Luo, F., and Wang, J. (2019). DeepSignal: detecting DNA methylation state from Nanopore sequencing reads using deep-learning. Bioinformatics.

6.McIntyre, A.B.R., Alexander, N., Grigorev, K., Bezdan, D., Sichtig, H., Chiu, C.Y., and Mason, C.E. (2019). Single-molecule sequencing detection of N6-methyladenine in microbial reference materials. Nat Commun 10, 579.

7.Liu, H., Begik, O., Lucas, M.C., Ramirez, J.M., Mason, C.E., Wiener, D., Schwartz, S., Mattick, J.S., Smith, M.A., and Novoa, E.M. (2019). Accurate detection of m(6)A RNA modifications in native RNA sequences. Nat Commun 10, 4079.

8.Li, H. (2018). Minimap2 pairwise alignment for nucleotide sequences. TECHNICAL REPORT.

9.Gong, L., Wong, C.H., Cheng, W.C., Tjong, H., Menghi, F., Ngan, C.Y., Liu, E.T., and Wei, C.L. (2018). Picky comprehensively detects high-resolution structural variants in nanopore long reads. Nature Methods 15, 455-460.

10.Sedlazeck, F.J., Rescheneder, P., Smolka, M., Fang, H., Nattestad, M., von Haeseler, A., and Schatz, M.C. (2018). Accurate detection of complex structural variations using single-molecule sequencing. Nature Methods 15, 461-468.

11.https:///community

12.https://nanopore./

每逢佳节倍思亲,看完帖子回家团聚!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多