macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

Nanoporeのbasecaller Chiron

 

 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アプリケーションの開発を可能にする。 

 

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

出力ディレクト

f:id:kazumaxneo:20190311150833j:plain

 

レーニン

デファルトの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

 

関連