使用 Nanopore MinION 进行单分子DNA测序,产出的结果是 fast5 文件,我拿到的结果中有400多个数字编号的件夹,每个文件夹里面4000个 fast5 文件,即一共160万条 reads,现在要做 basecalling。
目前,做basecalling的软件有ONT官方提供的Albacore,Nanonet,Guppy和Scrappie,以及非官方的Nanocall(已淘汰,仅在早期的文章中看到),DeepNano和Chiron。有研究人员在人类基因组Nanopore测序文章中也特别比较了Albacore和Scrappie。这些basecalling大多在不断升级中,各软件间存在一些差异,特别是对poly结构的basecalling。
Albacore集成在MinKNOW,因此测序时可作实时的basecalling,它在文章中出现次数最多,也是目前主要的开发热点。可在nanopore官网下载最新版的Albacore。
Albacore程序安装:
先要确保有Python,我之前安装了Python3.6(用Anaconda3安装的Python3.6),所以直接下载对应版本的albacore,下面下载链接里有cp36字样(如果是Python3.5,则下载cp35字样的文件),运行下述命令:
wget https://apac.oxfordnanoportal.com/software/analysis/ont_albacore-2.3.1-cp36-cp36m-manylinux1_x86_64.whl
再用以下代码进行安装:
pip3 install ont_albacore-xx.whl
测试是否安装成功:
结果说明
基本运行代码如下:
read_fast5_basecaller.py --input /path/to/fast5/dir --recursive --worker_threads 10 --flowcell FLO-MIN106 --kit SQK-LSK108 --save_path /path/to/output
注意:FLO-MIN106这个是flowcell的型号,类似FAH57248这个是flowcell唯一的id,这里--flowcell是FLO-MIN106
另外,如果是混合测序,可添加--barcoding选项,程序会自动搜索barcode;如果想个性化的指定参数,可以提供config文件,再通过--config指定。
# --input指定输入的文件夹,配合--recursive选项,可以只指定最上层目录,程序会自动递归寻找其中的fast5文件
# --worker_threads指定线程数
# --kit的只能在https://nanopore.yilimart.com/Group/Kits1/这里选择现有的试剂盒
# --save_path指定输出的目录
运行完后生成configuration.cfg,pipeline.log,sequencing_summary.txt和workspace文件夹,在workspace文件夹中存放有pass和fail文件夹,里边放的是fastq文件,通常用pass目录下的文件作后续分析。
configuration.cfg记录运行参数,默认min_qscore_1d值为7.0,这个值非常重要,因为它和reads过滤为pass/fail有关,后续有详解;另外还记录有fastq相关文件(夹)命令规则:
[fastq]
identifier = {read_id}
header = {identifier} runid={run_id} read={read_number} ch={channel_id} start_time={start_time_utc}
header_with_barcoding = {identifier} runid={run_id} read={read_number} ch={channel_id} start_time={start_time_utc} barcode={barcode_id}
batch_file_name = fastq_runid_{run_id}_{batch_counter}.{extension}
single_file_name = {read_id}.{extension}
all_file_name = fastq_runid_{run_id}.{extension}
sequencing_summary.txt记录的信息最为全面,这也是目前Nanopore QC软件玩花样的竞技场! 其中的19列内容如下:
filenamefast5文件名
read_id每个fast5文件对应一条read
run_id这次run的id号,一个flowcell通常为一个run,所以sequencing_summary中run_id都一致。如果一个flowcell中途停掉再跑,每跑一次会记录新的run id
channel测序有512个channel,这个记录read在哪个channel测的
start_time这条read测序起始时间
duration这条read测序经过时间
num_eventsevent的概念为历史遗存,目前已弃用
passes_filteringread的mean_qscore_template大于7(即min_qscore_1d的默认值)时为True,否则为False
template_starttemplate不详,如有知情者欢迎补上!
num_events_template
template_duration
num_called_template
sequence_length_template记录的read的长度
mean_qscore_templatepass和fail通过这一项进行划分,注意默认是从0-7(不包括0和7!)等于0的划分为skip,不过通常skip目录不会保留
strand_score_template这几个值不详
calibration_strand_genome_template
calibration_strand_identity_template
calibration_strand_accuracy_template
calibration_strand_speed_bps_template
注:其中最重要的是mean_qscore_template值
后续分析建议用pass目录下的read进行。