Nanopore:使用albacore进行basecalling

使用 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进行。

你可能感兴趣的:(Nanopore:使用albacore进行basecalling)