使用 Nanopore MinION 進(jìn)行單分子DNA測序,產(chǎn)出的結(jié)果是 fast5 文件,我拿到的結(jié)果中有400多個(gè)數(shù)字編號(hào)的件夾,每個(gè)文件夾里面4000個(gè) fast5 文件,即一共160萬條 reads,現(xiàn)在要做 basecalling。
目前,做basecalling的軟件有ONT官方提供的Albacore,Nanonet,Guppy和Scrappie,以及非官方的Nanocall(已淘汰,僅在早期的文章中看到),DeepNano和Chiron。有研究人員在人類基因組Nanopore測序文章中也特別比較了Albacore和Scrappie。這些basecalling大多在不斷升級(jí)中,各軟件間存在一些差異,特別是對(duì)poly結(jié)構(gòu)的basecalling。?
? ? ? ?Albacore集成在MinKNOW,因此測序時(shí)可作實(shí)時(shí)的basecalling,它在文章中出現(xiàn)次數(shù)最多,也是目前主要的開發(fā)熱點(diǎn)??稍趎anopore官網(wǎng)下載最新版的Albacore。
Albacore程序安裝:
先要確保有Python,我之前安裝了Python3.6(用Anaconda3安裝的Python3.6),所以直接下載對(duì)應(yīng)版本的albacore,下面下載鏈接里有cp36字樣(如果是Python3.5,則下載cp35字樣的文件),運(yùn)行下述命令:
wget https://apac.oxfordnanoportal.com/software/analysis/ont_albacore-2.3.1-cp36-cp36m-manylinux1_x86_64.whl
再用以下代碼進(jìn)行安裝:
pip3 install?ont_albacore-xx.whl
測試是否安裝成功:

結(jié)果說明
基本運(yùn)行代碼如下:
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這個(gè)是flowcell的型號(hào),類似FAH57248這個(gè)是flowcell唯一的id,這里--flowcell是FLO-MIN106
另外,如果是混合測序,可添加--barcoding選項(xiàng),程序會(huì)自動(dòng)搜索barcode;如果想個(gè)性化的指定參數(shù),可以提供config文件,再通過--config指定。
# --input指定輸入的文件夾,配合--recursive選項(xiàng),可以只指定最上層目錄,程序會(huì)自動(dòng)遞歸尋找其中的fast5文件
# --worker_threads指定線程數(shù)
# --kit的只能在https://nanopore.yilimart.com/Group/Kits1/這里選擇現(xiàn)有的試劑盒
# --save_path指定輸出的目錄
運(yùn)行完后生成configuration.cfg,pipeline.log,sequencing_summary.txt和workspace文件夾,在workspace文件夾中存放有pass和fail文件夾,里邊放的是fastq文件,通常用pass目錄下的文件作后續(xù)分析。
configuration.cfg記錄運(yùn)行參數(shù),默認(rèn)min_qscore_1d值為7.0,這個(gè)值非常重要,因?yàn)樗蛂eads過濾為pass/fail有關(guān),后續(xù)有詳解;另外還記錄有fastq相關(guān)文件(夾)命令規(guī)則:
[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列內(nèi)容如下:
filenamefast5文件名
read_id每個(gè)fast5文件對(duì)應(yīng)一條read
run_id這次run的id號(hào),一個(gè)flowcell通常為一個(gè)run,所以sequencing_summary中run_id都一致。如果一個(gè)flowcell中途停掉再跑,每跑一次會(huì)記錄新的run id
channel測序有512個(gè)channel,這個(gè)記錄read在哪個(gè)channel測的
start_time這條read測序起始時(shí)間
duration這條read測序經(jīng)過時(shí)間
num_eventsevent的概念為歷史遺存,目前已棄用
passes_filteringread的mean_qscore_template大于7(即min_qscore_1d的默認(rèn)值)時(shí)為True,否則為False
template_starttemplate不詳,如有知情者歡迎補(bǔ)上!
num_events_template
template_duration
num_called_template
sequence_length_template記錄的read的長度
mean_qscore_templatepass和fail通過這一項(xiàng)進(jìn)行劃分,注意默認(rèn)是從0-7(不包括0和7!)等于0的劃分為skip,不過通常skip目錄不會(huì)保留
strand_score_template這幾個(gè)值不詳
calibration_strand_genome_template
calibration_strand_identity_template
calibration_strand_accuracy_template
calibration_strand_speed_bps_template
注:其中最重要的是mean_qscore_template值?
后續(xù)分析建議用pass目錄下的read進(jìn)行。