[bioinfo]Nanopore V14 kitのDuplexリードをbasecallする。
NanoporeのFlongle v10.4.1フローセルとLigation Sequencing Kit V14 (LSK-SQK114)を使ってシークエンスしたので、Doradoとduplex-toolsを使ってDuplexリードを出力する(2023/04/14版:内容はすぐに更新される可能性が高いので暫定的なやり方になると思われる)。
DoradoについてはNanoporeのサイトからprecompileされたものがダウンロードできるが、バージョンが最新ではないのでgithubからダウンロードした方が良い。
https://github.com/nanoporetech/dorado
まず、fast5からPOD5に生データを変換する。
#pipでpod5パッケージをインストール pip install pod5 #pod5のフォルダを作っておいて、fast5_passフォルダ内のすべてのファイルを変換 mkdir pod5_pass pod5 convert fast5 ./fast5_pass/*.fast5 --output pod5_pass/
*20230617更新 新しいguppyでベースコールした場合はすでにpod5_passが生成されている。
次にdoradoでmodelをダウンロードして、まず、simplex basecallを行う。その際、–emit-movesオプションを付ける(より多くのペアを追加できるらしい)。
dorado download --model dna_r10.4.1_e8.2_400bps_hac@v4.1.0 dorado basecaller dna_r10.4.1_e8.2_400bps_hac@v4.1.0 pod5_pass/ --emit-moves > unmapped_reads_with_moves.sam
*20230617更新 新しいguppyでベースコールした場合は5khzモデルなので、次のコマンドで。同じライブラリで複数のフローセルでランしている場合、あるいは同じフローセルでも複数回ランしている場合は、-rを付けて下位のフォルダのpod5をすべてコールするようにする。またその際、pod5_failもコールしてしまうので、–min-qscore 10を付ける。
#var20230617 dorado download --model dna_r10.4.1_e8.2_400bps_hac@v4.2.0 dorado download --model dna_r10.4.1_e8.2_400bps_sup@v4.2.0 dorado basecaller dna_r10.4.1_e8.2_400bps_hac@v4.2.0 --min-qscore 10 -r ../ --emit-moves > unmapped_reads_with_moves.sam
duplex-toolsを使ってduplex readを判別する。
#仮想環境にduplex_toolsをインスコ。 python -m venv venv --prompt duplex . venv/bin/activate pip install duplex_tools #duplex readを判別 duplex_tools pair --output_dir pairs_from_sam unmapped_reads_with_moves.sam
duplex_toolsで判別したpair_ids_filtered.txtを使ってdoradoでstereo basecallする。
dorado duplex dna_r10.4.1_e8.2_400bps_sup@v4.1.0 pod5_pass/ --pairs pairs_from_sam/pair_ids_filtered.txt > duplex_orig.sam
*20230617更新 最後のduplexコールも5khzモデルでコールする。
#var20230617 dorado duplex dna_r10.4.1_e8.2_400bps_sup@v4.2.0 pod5_pass/ --pairs pairs_from_sam/pair_ids_filtered.txt > duplex_orig.sam
出力されたduplex_orig.samがduplex readsである。
2023/04/14現在、5kbp ampliconのデータで16%程度、ゲノムのデータで8%程度がduplex readsで、Q-scoreは、
>= Q20: 82.4%
>= Q30: 65.8%
> = Q40: 21.7%
Ave. 31.4
となっていて、かなり正確性の高いデータが得られる。リード数は限定されるが、ampliconのデータとしては十分である。