Oxford Nanopore Technologies(ONT)によって最近マーケットに導入された、バイオエンジニアリングされたナノポアを介したDNAシーケンシングは、ゲノムのlandscapeを大きく変えた。 ONTナノポアシーケンシングデバイスであるMinIONの重要な技術革新は、DNAの一本鎖分子が通過するときに、ナノポアを横切る電流の変化を測定することである。次にシグナルを使用してDNA鎖のヌクレオチド配列を決定する[ref.1-3]。重要なことに、このシグナルは、シークエンシングがまだ進行中の間にユーザーによって得られそして分析され得る。ホッチキスのサイズのMinIONデバイスに多数のナノポアを詰めることができるため、このテクノロジは非常に移植性が高くなる。サイズの小ささ、およびリアルタイムの性質は、タイムクリティカルなゲノミクスアプリケーション[ref.4-7]および遠隔地域[ref.8-11]に新たな機会を切り開く。
ナノポアシーケンシングは、大きなナノポアのアレイを設計しそしてDNAフラグメントのより速い転位を可能にすることで大規模にスケールアップできるが、分析パイプラインにおけるボトルネックの1つは生のシグナルのヌクレオチド配列への翻訳またはbasecallingである。 Chironのリリース前は、ナノポアデータのベースコールには2つの段階があった。生データ系列は、最初にk-merから得られた信号に対応するセグメントに分割され(セグメンテーション)、次にモデルが適用されてセグメント信号をk-merに変換する。 DeepNano [ref.12]は、セグメントの基本統計量(平均信号、標準偏差、および長さ)を使用して対応するk-merを予測する双方向リカレントニューラルネットワーク(RNN)を使用するというアイデアを紹介した。 ONT、nanonet、およびAlbacore(v2.0.1より前)によってリリースされた公式のベースコールも同様の手法を採用している。連続するセグメントからのk-merはk-1塩基だけ重複すると予想されるので、これらの方法は動的計画法アルゴリズムを使用して最も確からしい経路を見いだし、それが基底シーケンスデータをもたらす。 BasecRAWller [ref.13]は一対の単方向RNNを使用する。最初のRNNはセグメンテーションのためのセグメント境界の確率を予測し、2番目のRNNは離散イベントを基本シーケンスに変換する。そのため、BasecRAWllerは生の信号データをストリーミング方式で処理することができる。
この論文では、Chironを紹介する。これは、生の電気信号を直接ヌクレオチド配列に変換できる最初のディープニューラルネットワークモデルである。Chironは、畳み込みニューラルネットワーク(CNN)とRNNおよびコネクショニスト時間分類(CTC)デコーダを結合する新しいアーキテクチャを持っている[ref.13]。これにより、イベントセグメンテーションステップを使用せずに、生の信号データを直接モデル化することができる。 ONTは、Chiron v0.1の直後にリリースされた、セグメンテーションフリーのベースコール元Albacore v2.0.1も開発した。
Chironはウイルスとバクテリアのゲノムからシーケンスされた小さなデータセットで訓練された、それでもそれは他のバクテリアとヒトのようなゲノムの範囲に一般化することができる。Chironは、バクテリアとウイルスのベースコールに関して、ONTで設計され訓練されたAlbacore v2.0.1と同じくらい正確であり、他のすべての既存の方法よりも優れている。さらに、Albacoreとは異なり、Chironはユーザーが独自のニューラルネットワークをトレーニングすることを可能にし、また完全にオープンソースであり、塩基修飾の検出などの特殊なbase callingアプリケーションの開発を可能にする。
Enjoyed giving presentation on Chiron to 'roll your own basecaller' using the Google cloud yesterday. Looking forward to introducing Chiron developer @HeavensTeng to Guppy developer Mark Bicknell at #nanoporeconf today! https://t.co/qvviyMIV0f
— Lachlan Coin (@ljcoin) May 25, 2018
Chironに関するツイート
インストール
ubuntu16.04のpython3.6.7環境でテストした(xeon E5 v4マシン)。
pip install tensorflow
#またはGPUバージョン導入(対応GPU、対応CUDAドライバ、cuDNNが必要。github参照)
pip install tensorflow-gpu
本体 Github
pipで導入できる。tensorflow以外の依存pythonパッケージも一括導入される。
pip install chiron
> chiron -h
model_default_path /home/kazu/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/chiron/model/DNA_default
usage: chiron [-h] {call,export,train} ...
A deep neural network basecaller.
optional arguments:
-h, --help show this help message and exit
sub command:
{call,export,train} sub command help
call Perform basecalling.
export Extract signal and label in the fast5 file.
train Train a model.
> chiron call -h
model_default_path /home/kazu/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/chiron/model/DNA_default
usage: chiron call [-h] -i INPUT -o OUTPUT [-m MODEL] [-s START]
[-b BATCH_SIZE] [-l SEGMENT_LEN] [-j JUMP] [-t THREADS]
[-e EXTENSION] [--beam BEAM] [--concise] [--mode MODE]
Perform basecalling
optional arguments:
-h, --help show this help message and exit
-i INPUT, --input INPUT
File path or Folder path to the fast5 file.
-o OUTPUT, --output OUTPUT
Output folder path
-m MODEL, --model MODEL
model folder path
-s START, --start START
Start index of the signal file.
-b BATCH_SIZE, --batch_size BATCH_SIZE
Batch size for run, bigger batch_size will increase
the processing speed but require larger RAM load
-l SEGMENT_LEN, --segment_len SEGMENT_LEN
Segment length to be divided into.
-j JUMP, --jump JUMP Step size for segment
-t THREADS, --threads THREADS
Threads number, default is 0, which use all the
available threads.
-e EXTENSION, --extension EXTENSION
Output file type.
--beam BEAM Beam width used in beam search decoder, default is 50,
set to 0 to use a greedy decoder. Large beam width
give better decoding result but require longer
decoding time.
--concise Concisely output the result, the meta and segments
files will not be output.
--mode MODE Output mode, can be chosen from dna or rna.
> chiron export -h
model_default_path /home/kazu/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/chiron/model/DNA_default
usage: chiron export [-h] -i INPUT -o OUTPUT [-f TFFILE]
[--basecall_group BASECALL_GROUP]
[--basecall_subgroup BASECALL_SUBGROUP]
Export signal and label from the fast5 file.
optional arguments:
-h, --help show this help message and exit
-i INPUT, --input INPUT
Input folder contain fast5 files.
-o OUTPUT, --output OUTPUT
Output folder.
-f TFFILE, --tffile TFFILE
tfrecord file
--basecall_group BASECALL_GROUP
Basecall group Nanoraw resquiggle into. Default is
Basecall_1D_000
--basecall_subgroup BASECALL_SUBGROUP
Basecall subgroup Nanoraw resquiggle into. Default is
BaseCalled_template
> chiron train -h
model_default_path /home/kazu/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/chiron/model/DNA_default
usage: chiron train [-h] -i DATA_DIR [-f TFRECORD] -o LOG_DIR -m MODEL_NAME
[-c CACHE_DIR] [-t RETRAIN] [-l SEQUENCE_LEN]
[-b BATCH_SIZE] [-x MAX_STEPS] [-r STEP_RATE] [-k K_MER]
Model training
optional arguments:
-h, --help show this help message and exit
-i DATA_DIR, --data_dir DATA_DIR
Folder containing the labelled data.
-f TFRECORD, --tfrecord TFRECORD
tfrecord file
-o LOG_DIR, --log_dir LOG_DIR
Log dir which save the trained model
-m MODEL_NAME, --model_name MODEL_NAME
Model name saved.
-c CACHE_DIR, --cache_dir CACHE_DIR
Output folder
-t RETRAIN, --retrain RETRAIN
If retrain is true, the previous trained model will be
loaded from LOG_DIR before training.
-l SEQUENCE_LEN, --sequence_len SEQUENCE_LEN
Segment length to be divided into.
-b BATCH_SIZE, --batch_size BATCH_SIZE
Batch size to train, large batch size require more ram
but give faster training speed.
-x MAX_STEPS, --max_steps MAX_STEPS
Maximum training steps conducted.
-r STEP_RATE, --step_rate STEP_RATE
Learning rate used for optimiztion algorithm.
-k K_MER, --k_mer K_MER
Output k-mer size.
テストラン
git clone https://github.com/haotianteng/Chiron.git
#run
chiron call -i Chiron/chiron/example_data/ \
-m Chiron/chiron/model/DNA_default/ \
-o out_dir
- -i File path or Folder path to the fast5 file
- -o Output folder path
- -m model folder path
出力ディレクトリ
トレーニング
デファルトのDNAモデルはR.9.4のフローセルとE.coli、lambdaのゲノムの組み合わせでトレーニングされているが、結果に満足行かないなら、自分のデータで訓練することもできる。トレーニングにはChironのGPU版(GPUのメモリは8GB以上要求)の使用が特に推奨されている。
1、データの準備
python chiron/utils/raw.py --input <fast5 folder> --output <output_folder> --mode dna
2、トレーニング
chiron train --data_dir <signal_label folder> --log_dir <model_log_folder> --model_name <saved_model_name>
作成中
引用
Chiron: translating nanopore raw signal directly into nucleotide sequence using deep learning
Haotian Teng, Minh Duc Cao, Michael B Hall, Tania Duarte, Sheng Wang, Lachlan J M Coin
GigaScience, Volume 7, Issue 5, 1 May 2018, giy037
関連