Summary
このチュートリアルでは、メタゲノムデータの 2 クラスシーケンス分類を実行するためのディープラーニング アルゴリズムを構築する簡単な方法について説明します。
Abstract
種分類、遺伝子機能分類、ウイルス宿主分類など、さまざまな生物学的配列分類タスクが、多くのメタゲノムデータ分析において期待されるプロセスである。メタゲノムデータには多数の新種や遺伝子が含まれているため、多くの研究で高性能な分類アルゴリズムが必要とされています。生物学者は、特定のタスクに適したシーケンス分類と注釈ツールを見つける際にしばしば課題に遭遇し、多くの場合、必要な数学的および計算的知識がないため、対応するアルゴリズムを自分で構築することはできません。ディープラーニングのテクニックは最近人気の話題となり、多くの分類タスクで強い利点を示しています。これまで、多くの高度にパッケージ化されたディープラーニングパッケージが開発されており、生物学者はアルゴリズムの詳細を深く知らずに、独自のニーズに応じてディープラーニングフレームワークを構築することが可能になりました。このチュートリアルでは、十分な数学的知識やプログラミングスキルを必要とせずに、シーケンス分類のための使いやすいディープラーニングフレームワークを構築するためのガイドラインを提供します。すべてのコードは、ユーザーが独自のデータを使用してコードを直接実行できるように、仮想マシンで最適化されます。
Introduction
メタゲノムシーケンシング技術は、歪みの分離プロセスをバイパスし、環境サンプル内の全DNAを直接配列します。したがって、メタゲノムデータには異なる生物からのDNAが含まれ、ほとんどの生物学的配列は現在のデータベースに存在しない新しい生物からのものである。異なる研究目的に従って、生物学者は分類分類1、ウイルス-細菌分類2、3、4、染色体・プラスミド分類3、5、6、7、および遺伝子機能アノテーション(抗生物質耐性遺伝子分類8および毒性因子分類など)など、異なる視点からこれらの配列を分類する必要がある。).メタゲノムデータには多数の新種や遺伝子が含まれているため、配列分類(DNA分類やタンパク質分類を含む)に既知のデータベースに依存しないab initioアルゴリズムは、メタゲノムデータ分析において重要なアプローチです。しかし、このようなアルゴリズムの設計には、専門的な数学の知識とプログラミングスキルが必要です。そのため、多くの生物学者やアルゴリズム設計の初心者は、自分のニーズに合わせて分類アルゴリズムを構築するのが困難です。
人工知能の開発に伴い、深層学習アルゴリズムは、生体情報学の分野で広く使用され、メタゲノム解析における配列分類などのタスクを完了してきました。初心者がディープラーニングアルゴリズムを理解できるように、以下に説明するアルゴリズムをわかりやすい方法で説明します。
ディープ ラーニングの手法の概要を図 1に示します。ディープラーニングアルゴリズムのコア技術は、人間の脳の構造に触発された人工ニューラルネットワークです。数学的な観点からは、人工ニューラルネットワークは複雑な関数と見なされるかもしれません。各オブジェクト(DNA配列、写真、ビデオなど)は、最初にデジタル化されます。次に、デジタル化されたオブジェクトが関数にインポートされます。人工ニューラルネットワークのタスクは、入力データに応じて正しい応答を与える.たとえば、2 クラスの分類タスクを実行するために人工ニューラル ネットワークを構築する場合、各オブジェクトに対して 0 ~ 1 の確率スコアを出力する必要があります。ニューラルネットワークは、負のオブジェクトに低いスコアを与えながら、より高いスコア(0.5より高いスコアなど)を与える必要があります。この目標を達成するために、トレーニングとテストプロセスで人工ニューラルネットワークを構築します。これらのプロセスの間に、既知のデータベースのデータがダウンロードされ、トレーニングセットとテストセットに分割されます。各オブジェクトは適切な方法でデジタル化され、ラベル(正のオブジェクトの場合は"1"、負のオブジェクトの場合は"0")が付けられます。トレーニングプロセスでは、トレーニングセット内のデジタル化されたデータがニューラルネットワークに入力されます。人工ニューラルネットワークは、入力オブジェクトの出力スコアとオブジェクトの対応するラベルとの間の不一在性を表す損失関数を構築します。例えば、入力オブジェクトのラベルが「1」の場合、出力スコアが「0.1」の場合、損失関数は高くなります。出力スコアが「0.1」の間に入力オブジェクトのラベルが「0」の場合、損失関数は低くなります。人工ニューラルネットワークは、損失関数を最小限に抑えるためにニューラルネットワークのパラメータを調整する特定の反復アルゴリズムを採用しています。トレーニングプロセスは、損失機能が明らかにそれ以上減少することができないときに終了します。最後に、テストセット内のデータを使用して固定ニューラルネットワークをテストし、ニューラルネットワークが新規オブジェクトの正しいラベルを計算する能力を評価します。ディープラーニングアルゴリズムのより多くの原則は、LeCunらのレビューで見 つけることができます。10.
ディープラーニングアルゴリズムの数学的原則は複雑かもしれませんが、高度にパッケージ化されたディープラーニングパッケージが最近開発され、プログラマは数行のコードで単純な人工ニューラルネットワークを直接構築できます。
このチュートリアルでは、生物学者やアルゴリズム設計の初心者がディープラーニングを使い始める際に、シーケンス分類用の使いやすいディープラーニングフレームワークを構築するためのガイドラインを提供します。このフレームワークは、生物学的配列をデジタル化する数学的モデルとして「ワンホット」符号化形式を使用し、畳み込みニューラルネットワークを使用して分類タスクを実行します ( 補足資料を参照)。このガイドラインを使用する前にユーザーが行う必要がある唯一のことは、4つのシーケンスファイルを"fasta"形式で準備することです。最初のファイルには、トレーニングプロセスの正のクラスのすべてのシーケンス("p_train.fasta")が含まれています。2 番目のファイルには、トレーニング プロセスの負のクラスのすべてのシーケンス ("n_train.fasta" と呼ばれます) が含まれます。3 番目のファイルには、テストプロセスの正のクラスのすべてのシーケンス ("p_test.fasta" と呼ばれます) が含まれます。最後のファイルには、テストプロセスの負のクラスのすべてのシーケンス (「n_test.fasta」と呼ばれます) が含まれています。このチュートリアルのフローチャートの概要は 図 2に示されており、詳細は以下に示します。
Subscription Required. Please recommend JoVE to your librarian.
Protocol
1. 仮想マシンのインストール
- 仮想マシン ファイルを (https://github.com/zhenchengfang/DL-VM) からダウンロードします。
- https://www.virtualbox.org から仮想ボックス ソフトウェアをダウンロードします。
- 「7-Zip」、「WinRAR」、「WinZip」などの関連ソフトウェアを使用して「.7z」ファイルを解凍します。
- 各手順で [ 次へ ] ボタンをクリックして、VirtualBox ソフトウェアをインストールします。
- VirtualBox ソフトウェアを開き、[ 新規作成 ] ボタンをクリックして仮想マシンを作成します。
- ステップ6:指定した仮想マシン名を「名前」フレームに入力し、「タイプ」フレームでオペレーティングシステムとして Linux を選択し、「バージョン」フレームで Ubuntu を選択し、「 次へ 」ボタンをクリックします。
- 仮想マシンのメモリ サイズを割り当てます。ユーザーは、ボタンを緑色のバーの右端に引っ張って、仮想マシンにできるだけ多くのメモリを割り当ててから、[ 次へ ] ボタンをクリックすることをお勧めします。
- [ 既存の仮想ハード ディスク ファイルを使用する ] を選択し、手順 1.1 からダウンロードした "VM_Bioinfo.vdi" ファイルを選択して、[ 作成 ] ボタンをクリックします。
- [ スター ] ボタンをクリックして、仮想マシンを開きます。
注: 図 3 は、仮想マシンのデスクトップのスクリーンショットを示しています。
2. 物理ホストと仮想マシン間でファイルを交換するための共有フォルダを作成する
- 物理ホストで、"shared_host" という名前の共有フォルダーを作成し、仮想マシンのデスクトップに "shared_VM" という名前の共有フォルダーを作成します。
- 仮想マシンのメニュー バーで、[デバイス]、[ 共有フォルダ]、[共有フォルダの設定] を順にクリックします。
- 右上隅のボタンをクリックします。
- ステップ 2.1 で作成した物理ホストの共有フォルダを選択し、 自動マウント オプションを選択します。 [OK]ボタンを クリックします。
- 仮想マシンを再起動します。
- 仮想マシンのデスクトップ上で右クリックし、ターミナルを開きます。
- 次のコマンドをターミナルにコピーします。
sudo マウント -t vboxsf shared_host /デスクトップ/shared_VM- パスワードの入力を求められたら、"1"と入力し、図 4 に示すように"Enter"キーを押します。
3. トレーニングセットとテストセット用のファイルを準備する
- トレーニングおよびテストプロセスの 4 つのシーケンス ファイルすべてを"fasta" 形式で物理ホストの "shared_host" フォルダーにコピーします。このように、すべてのファイルは仮想マシンの 「shared_VM」フォルダーにも発生します。次に、"shared_VM" フォルダー内のファイルを仮想マシンの "DeepLearning" フォルダーにコピーします。
4. 「ワンホット」符号化形式を用いて生体配列をデジタイズする
- 「DeepLearning」フォルダに移動し、右クリックして端末を開きます。次のコマンドを入力します。
./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta aa
(アミノ酸配列の場合)
又は
./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta nt
(核酸配列用)
注 : このプロセスのスクリーンショットは 、図 5に示されています。
5. 人工ニューラルネットワークを訓練し、テストする
- 図 6に示すように、端末に次のコマンドを入力します。
パイソン train.py
注: トレーニングプロセスが開始されます。
Subscription Required. Please recommend JoVE to your librarian.
Representative Results
前の研究では、このチュートリアル3、11、12のようなアプローチを使用して、メタゲノムデータの一連のシーケンス分類ツールを開発しました。例として、以前の作業3,11からトレーニング セットとテスト セットのサブセットのシーケンス ファイルを仮想マシンに入金しました。
Fang & Zhou11 は、ビロームデータから完全かつ部分的な原核生物ウイルスウイルスタンパク質を同定することを目的とした。ファイル "p_train.fasta" には、トレーニング セットのウイルスウイルスウイルスタンパク質フラグメントが含まれています。ファイル "n_train.fasta" には、トレーニングセットのウイルス非ウイルスタンパク質フラグメントが含まれています。ファイル "p_test.fasta" には、テスト セットのウイルスウイルスウイルスタンパク質フラグメントが含まれています。ファイル "n_test.fasta" には、テストセットのウイルス非ウイルスタンパク質フラグメントが含まれています。ユーザーは、次の 2 つのコマンドを直接実行してニューラル ネットワークを構築できます。
./onehot_encoding p_train.fasta n_train.fasta p_test.fasta n_test.fasta aa
そして
パイソン train.py
パフォーマンスを 図 7に示します。
Fang et al.3 は、メタゲノミック データの細菌染色体 DNA フラグメントからファージ DNA 断片を同定することを目的とした。ファイル "phage_train.fasta" には、トレーニングセットのファージ DNA フラグメントが含まれています。ファイル "chromosome_train.fasta" には、トレーニングセットの染色体DNAフラグメントが含まれています。ファイル"phage_test.fasta"には、テストセットのファージDNA断片が含まれています。ファイル "chromosome_test.fasta" には、テストセットの染色体DNAフラグメントが含まれています。ユーザーは、次の 2 つのコマンドを直接実行してニューラル ネットワークを構築できます。
./onehot_encoding phage_train.fasta chromosome_train.fasta phage_test.fasta chromosome_test.fasta nt
そして
パイソン train.py
パフォーマンスを 図 8に示します。
アルゴリズムにはランダム性を持つプロセスがいくつか含まれているため、ユーザーがスクリプトを再実行すると上記の結果が若干異なる可能性があることは注目に値します。
図 1.ディープラーニングテクニックの概要この図の大きなバージョンを表示するには、ここをクリックしてください。
図 2.このチュートリアルのフローチャートの概要。この図の大きなバージョンを表示するには、ここをクリックしてください。
図 3.仮想マシンのデスクトップのスクリーンショット。この図の大きなバージョンを表示するには、ここをクリックしてください。
図 4.共有フォルダーのアクティブ化のスクリーン ショット。この図の大きなバージョンを表示するには、ここをクリックしてください。
図 5.シーケンスのデジタル化のプロセスのスクリーンショット。この図の大きなバージョンを表示するには、ここをクリックしてください。
図 6.人工ニューラルネットワークをトレーニングし、テストします。この図の大きなバージョンを表示するには、ここをクリックしてください。
図 7.原核生物体ウイルスのウイルスタンパク質断片の同定の性能。評価基準は、Sn=TP/(TP+FN)、Sp= TN /(TN+FP)、Acc=(TP +TN)/(TP+ TN+FN+FP)およびAUCです。この図の大きなバージョンを表示するには、ここをクリックしてください。
図 8.ファージDNA断片同定の性能。評価基準は、Sn=TP/(TP+FN)、Sp= TN /(TN+FP)、Acc=(TP +TN)/(TP+ TN+FN+FP)およびAUCです。この図の大きなバージョンを表示するには、ここをクリックしてください。
Subscription Required. Please recommend JoVE to your librarian.
Discussion
このチュートリアルでは、生物学者とアルゴリズム設計初心者向けに、メタジノミックデータにおける生物学的配列分類のための使いやすいディープラーニングフレームワークを構築する方法について説明します。このチュートリアルでは、ディープラーニングの直感的な理解を提供し、初心者がディープラーニングパッケージをインストールし、アルゴリズムのコードを書くことが困難な課題に対処することを目的としています。一部の簡単な分類タスクでは、ユーザーはフレームワークを使用して分類タスクを実行できます。
多くの生物学者がLinuxオペレーティングシステムのコマンドラインに精通していないことを考えると、我々は仮想マシンに依存するすべてのソフトウェアをプリインストールしました。これにより、ユーザーは上記のプロトコルに従って仮想マシン内のコードを直接実行できます。さらに、ユーザーが Linux オペレーティングシステムと Python プログラミングに精通している場合は、このプロトコルをサーバーまたはローカル PC で直接実行することもできます。この方法で、ユーザーは次の依存ソフトウェアをプレインストールする必要があります。
Python 2.7.12 (https://www.python.org/)
Python パッケージ:
numpy 1.13.1 (http://www.numpy.org/)
h5py 2.6.0 (http://www.h5py.org/)
テンソルフロー 1.4.1 (https://www.tensorflow.org/)
ケラス 2.0.8 (https://keras.io/)
MATLAB コンポーネント ランタイム (MCR) R2018a (https://www.mathworks.com/products/compiler/matlab-runtime.html)
前の作業3 のマニュアルには、インストールの簡単な説明があります。各パッケージのバージョン番号は、コードで使用したバージョンに対応しています。仮想マシンを使用せずにサーバーまたはローカル PC でコードを実行する利点は、コードが GPU を使用して速度を上げることができ、トレーニング プロセスで多くの時間を節約できることです。このようにして、ユーザーはTENSorFlowのGPUバージョンをインストールする必要があります(前の作業のマニュアルを参照してください 3)。
プロトコル内の重要なステップの一部を以下に説明します。ステップ 4.1 では、"p_train.fasta" "n_train.fasta" "p_test.fasta" と "n_test.fasta" のファイル名を、使用するファイル名に置き換える必要があります。このコマンドでのこれらの 4 つのファイルの順序は変更できません。ファイルにアミノ酸配列が含まれている場合、最後のパラメータは "aa" にする必要があります。ファイルに核酸配列が含まれている場合、最後のパラメータは "nt" にする必要があります。このコマンドは、生物学的配列をデジタル化するために「ワンホット」符号化形式を使用します。「ワンホット」エンコーディング形式の導入は、補足資料に記載されています。ステップ 5.1 では、仮想マシンを GPU で高速化できないため、データサイズによっては、このプロセスに数時間または数日かかる場合があります。各反復エポックの進行状況バーがターミナルに表示されます。エポックの数を50に設定し、トレーニングプロセスが終了すると合計50のプログレスバーが表示されます。テストプロセスが終了すると、テストセットの精度が端末に表示されます。仮想マシンの 「DeepLearning」 フォルダーに「予測.csvという名前のファイルが作成されます。このファイルには、テスト データのすべての予測スコアが含まれています。これらのスコアの順序は、"p_test.fasta" と "n_test.fasta" のシーケンス順序に対応します (これらのスコアの前半は "p_test.fasta" に対応し、後半は "n_test.fatsa" に対応します)。ユーザーが、真のクラスが不明なシーケンスの予測を行う場合は、これらの未知のシーケンスを "p_test.fasta" または "n_test.fasta" ファイルに保存することもできます。このように、これらの未知のシーケンスのスコアも「予測.csvファイルに表示されますが、端末の「精度」表示は意味をなさない。このスクリプトは、分類を実行するために畳み込みニューラル ネットワークを採用しています。ニューラルネットワークの構造とニューラルネットワークのコードは 補足資料に示されています。
ディープラーニングの特徴の1つは、多くのパラメータ設定が経験を必要とし、初心者にとって大きな課題になることです。多数の数式による初心者の不安を避けるために、我々は深層学習の数学的原則に焦点を当てず、仮想マシンでは、特別なパラメータ設定インターフェースを提供していません。これは初心者には良い選択かもしれませんが、不適切なパラメータの選択は精度の低下につながる可能性があります。初心者がパラメータを変更する方法をより良く体験できるように、スクリプト「train.py」で関連コードにいくつかのコメントを追加し、ユーザーはこれらのパラメータがパフォーマンスにどのような影響を与えるかを確認するために、畳み込みカーネルの数などの関連パラメータを変更することができます。
さらに、多くのディープラーニングプログラムをGPUで実行する必要があります。ただし、GPU を構成するには、コンピュータのスキルが必要な場合もあります。したがって、仮想マシンのコードを最適化することを選択します。
このガイドラインに基づいて他のシーケンス分類タスクを解決する場合、ユーザーは 4 つのシーケンス ファイルを独自のデータに置き換えるだけで済みます。例えば、メタジノミックデータでプラスミド由来配列と染色体由来配列を区別する必要がある場合、RefSeqデータベースからプラスミドゲノム(https://ftp.ncbi.nlm.nih.gov/refseq/release/plasmid/)と細菌染色体ゲノム(https://ftp.ncbi.nlm.nih.gov/refseq/release/bacteria/)を直接ダウンロードし、ゲノムをトレーニングセットとテストセットに分離することができます。メタゲノムデータのDNA配列は、完全なゲノムではなく断片化されることが多いことは注目に値する。このような場合、ユーザーはMetaSim13 ツールを使用して、完全なゲノムからDNA断片を抽出することができます。MetaSimはGUIインターフェイスを備えたユーザーフレンドリーなツールで、キーボードでコマンドを入力しなくてもマウスを使ってほとんどの操作を完了できます。初心者のための操作を簡素化するために、私たちのチュートリアルは、2クラスの分類タスクのために設計されています。ただし、多くのタスクで複数分類を実行する必要があります。このような場合、初心者は、複数分類タスクを複数の 2 クラスの分類タスクに分けようとすることができます。例えば、ファージ宿主を同定するために、Zhang ら.は 、与えられたファージ配列が特定の宿主に感染できるかどうかを特定するために9つの2クラス分類子を構築した。
このチュートリアルのホームページは GitHub サイト https://github.com/zhenchengfang/DL-VM に入金されています。チュートリアルの更新は、ウェブサイト上で説明されます。ユーザーは、ウェブサイト上でこのチュートリアルについての疑問を提起することができます。
Subscription Required. Please recommend JoVE to your librarian.
Disclosures
著者らは、利益相反はないと宣言している。
Acknowledgments
この調査は、中国国立自然科学財団(81925026、82002201、81800746、82102508)によって財政的に支援されました。
Materials
Name | Company | Catalog Number | Comments |
PC or server | NA | NA | Suggested memory: >6GB |
VirtualBox software | NA | NA | Link: https://www.virtualbox.org |
References
- Liang, Q., Bible, P. W., Liu, Y., Zou, B., Wei, L. DeepMicrobes: taxonomic classification for metagenomics with deep learning. NAR Genomics and Bioinformatics. 2 (1), (2020).
- Ren, J., et al. VirFinder: a novel k -mer based tool for identifying viral sequences from assembled metagenomic data. Microbiome. 5 (1), 69 (2017).
- Fang, Z., et al. PPR-Meta: a tool for identifying phages and plasmids from metagenomic fragments using deep learning. GigaScience. 8 (6), (2019).
- Ren, J., et al. Identifying viruses from metagenomic data using deep learning. Quantitative Biology. 8 (1), 64-77 (2020).
- Zhou, F., Xu, Y. cBar: a computer program to distinguish plasmid-derived from chromosome-derived sequence fragments in metagenomics data. Bioinformatics. 26 (16), 2051-2052 (2010).
- Krawczyk, P. S., Lipinski, L., Dziembowski, A. PlasFlow: predicting plasmid sequences in metagenomic data using genome signatures. Nucleic Acids Research. 46 (6), (2018).
- Pellow, D., Mizrahi, I., Shamir, R. PlasClass improves plasmid sequence classification. PLOS Computational Biology. 16 (4), (2020).
- Arango-Argoty, G., et al. DeepARG: a deep learning approach for predicting antibiotic resistance genes from metagenomic data. Microbiome. 6 (1), 1-15 (2018).
- Zheng, D., Pang, G., Liu, B., Chen, L., Yang, J. Learning transferable deep convolutional neural networks for the classification of bacterial virulence factors. Bioinformatics. 36 (12), 3693-3702 (2020).
- LeCun, Y., Bengio, Y., Hinton, G.
Deep learning. Nature. 521 (7553), 436-444 (2015). - Fang, Z., Zhou, H. VirionFinder: Identification of Complete and Partial Prokaryote Virus Virion Protein From Virome Data Using the Sequence and Biochemical Properties of Amino Acids. Frontiers in Microbiology. 12, 615711 (2021).
- Fang, Z., Zhou, H. Identification of the conjugative and mobilizable plasmid fragments in the plasmidome using sequence signatures. Microbial Genomics. 6 (11), (2020).
- Richter, D. C., Ott, F., Auch, A. F., Schmid, R., Huson, D. H. MetaSim-a sequencing simulator for genomics and metagenomics. PLoS One. 3 (10), 3373 (2008).
- Zhang, M., et al. Prediction of virus-host infectious association by supervised learning methods. BMC Bioinformatics. 18 (3), 143-154 (2017).