🚀 Zilliz Cloudを無料で試す、完全管理型のMilvus—10倍の高速パフォーマンスを体験しよう!今すぐ試す>>

milvus-logo
LFAI
  • Home
  • Blog
  • Milvusに基づくDNA配列の分類

Milvusに基づくDNA配列の分類

  • Scenarios
September 06, 2021
Jael Gu

McGill大学情報学修士課程卒業。AIアプリケーションとベクトルデータベースによる類似性検索に関心を持つ。オープンソースプロジェクトMilvusのコミュニティメンバーとして、推薦システムやDNA配列分類モデルのような様々なソリューションを提供し、改良してきた。挑戦を楽しみ、決してあきらめない!

DNA配列は、遺伝子のトレーサビリティ、種の同定、病気の診断など、学術研究と実用的なアプリケーションの両方で人気のある概念である。あらゆる産業がより知的で効率的な研究手法に飢えている中、人工知能は特に生物学と医学の領域から大きな注目を集めている。ますます多くの科学者や研究者が、バイオインフォマティクスにおける機械学習や深層学習に貢献している。実験結果をより説得力のあるものにするために、一般的な選択肢の一つはサンプルサイズを増やすことである。ゲノミクスにおけるビッグデータとの連携は、現実のユースケースにさらなる可能性をもたらしている。しかし、従来の配列アライメントには限界があり、大規模データには適さない。現実的にトレードオフを少なくするために、ベクター化はDNA配列の大規模データセットに適した選択である。

オープンソースのベクターデータベースMilvusは大規模データに適している。核酸配列のベクターを保存し、高効率の検索を行うことができる。また、生産や研究のコスト削減にも役立つ。Milvusに基づくDNA配列分類システムは、遺伝子分類にわずか数ミリ秒しかかからない。さらに、機械学習における他の一般的な分類器よりも高い精度を示している。

遺伝情報をコードする遺伝子は、4塩基[A, C, G, T]からなるDNA配列の小さな部分からできている。ヒトゲノムには約30,000の遺伝子、約30億のDNA塩基対が存在し、各塩基対には2つの対応する塩基が存在する。多様な用途をサポートするために、DNA配列は様々なカテゴリーに分類することができる。長いDNA塩基配列のデータを利用しやすくするために、データの前処理にk-merが 導入されている。これにより、DNA塩基配列データをプレーンテキストに近づけることができる。また、ベクトル化されたデータは、データ解析や機械学習における計算を高速化することができる。

1.png 1.png

k-mer

k-mer法はDNA配列の前処理によく用いられる。元の塩基配列の各塩基から長さkの小さな部分を抽出し、長さsの長い塩基配列を長さkの(s-k+1)短い塩基配列に変換する。kの値を調整することで、モデルの性能が向上する。短い配列のリストは、データの読み取り、特徴抽出、ベクトル化が容易である。

ベクトル化

DNA配列はテキストの形でベクトル化される。k-merによって変換された配列は、短い配列のリストとなり、文章中の個々の単語のリストのように見える。したがって、ほとんどの自然言語処理モデルは、DNA配列データに対しても同様に機能するはずである。モデルのトレーニング、特徴抽出、符号化にも同様の方法論が適用できる。各モデルにはそれぞれ利点と欠点があるため、モデルの選択はデータの特徴や研究目的によって異なる。例えば、CountVectorizerはBag-of-Wordsモデルであり、単純なトークン化によって特徴抽出を行う。これはデータの長さに制限を設けませんが、返される結果は類似性の比較という点ではあまり明白ではありません。

Milvusは非構造化データを容易に管理し、数兆のベクトルの中から最も類似した結果を平均数ミリ秒の遅延で呼び出すことができる。その類似検索は近似最近傍(ANN)検索アルゴリズムに基づいています。MilvusはDNA配列のベクトルを管理するための優れた選択肢であり、バイオインフォマティクスの発展と応用を促進する。

以下はMilvusを用いたDNA配列分類システムの構築方法を示すデモである。実験データセットには 3つの生物と7つの遺伝子ファミリーが含まれています。全てのデータはk-mersによって短い配列のリストに変換されている。事前にトレーニングされたCountVectorizerモデルにより、システムは配列データをベクトルにエンコードする。以下のフローチャートは、システムの構造と、挿入と検索のプロセスを示している。

1.png 1.png

Milvusブートキャンプでこのデモをお試しください。

Milvusでは、システムがコレクションを作成し、対応するDNA配列のベクターをコレクション(有効な場合はパーティション)に挿入する。Milvusはクエリーリクエストを受信すると、入力DNA配列のベクトルとデータベース内の最も類似した結果との間の距離を返す。入力配列のクラスと DNA 配列間の類似性は、結果のベクトル距離から判断することができる。

# Insert vectors to Milvus collection (partition "human")
DNA_human = collection.insert([human_ids, human_vectors], partition_name='human')
# Search topK results (in partition "human") for test vectors
res = collection.search(test_vectors, "vector_field", search_params, limit=topK, partition_names=['human'])
for results in res:
    res_ids = results.ids # primary keys of topK results
    res_distances = results.distances # distances between topK results & search input

DNA 配列の分類Milvus で最も類似した DNA 配列を検索することで、未知のサンプルの遺伝子ファミリーを示唆し、その可能 性ある機能を知ることができる。 ある配列がGPCRに分類された場合、その配列はおそらく身体機能に影響を与えていると考えられる。 このデモでは、Milvusは検索されたヒトDNA配列の遺伝子ファミリーを同定することに成功している。

3.png 3.png 4.png4.png

遺伝子の類似性

生物間の平均DNA配列類似度は、そのゲノムがいかに近いかを示している。このデモでは、ヒトのデータから、チンパンジーとイヌそれぞれのDNA配列と最も類似したDNA配列を検索する。そして、平均内積距離(チンパンジーは0.97、イヌは0.70)を計算し、比較することで、チンパンジーはイヌよりもヒトと類似した遺伝子を共有していることを証明している。Milvusは、より複雑なデータとシステム設計により、より高いレベルでの遺伝子研究をサポートすることができる。

search_params = {"metric_type": "IP", "params": {"nprobe": 20}}

パフォーマンス

このデモでは、80%のヒトサンプルデータ(合計3629件)で分類モデルを学習し、残りをテストデータとして使用している。Milvusを使用したDNA配列分類モデルと、Mysqlを使用した分類モデルおよび5つの一般的な機械学習分類器の性能を比較している。Milvusを使ったモデルは、精度で他のモデルを上回っている。

from sklearn.model_selection import train_test_split
X, y = human_sequence_kmers, human_labels
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

1.png 1.png

ビッグデータ技術の発展に伴い、DNA配列のベクトル化は遺伝学的研究と実践においてより重要な役割を果たすだろう。バイオインフォマティクスの専門的知識と組み合わせることで、DNA配列のベクトル化の関与から関連研究がさらに恩恵を受けることができる。従って、Milvusはより良い結果を実践の場で示すことができる。Milvusを利用した類似性検索と距離計算は、様々なシナリオやユーザーのニーズに応じ、大きな可能性と多くの可能性を示します。

  • 未知の配列の研究 一部の研究者によれば、ベクトル化はDNA配列データを圧縮することができる。同時に、未知のDNA配列の構造、機能、進化を研究するための労力も少なくて済む。milvusは、精度を落とすことなく、膨大な数のDNA配列ベクターを保存し、取り出すことができる。
  • デバイスを適応させる:従来の配列アライメントのアルゴリズムに制限され、類似性検索はデバイス(CPU/GPU)の改良の恩恵をほとんど受けることができない。通常のCPU計算とGPUアクセラレーションの両方をサポートするMilvusは、近似最近傍アルゴリズムによりこの問題を解決する。
  • ウイルスを検出し、起源を追跡する科学者たちはゲノム配列を比較し、コウモリ由来の可能性が高いCOVID19ウイルスがSARS-COVに属することを報告した。この結論に基づき、研究者はより多くの証拠とパターンを得るためにサンプルサイズを拡大することができる。
  • 病気の診断臨床的には、医師は病気の原因となる変異遺伝子を特定するために、患者と健康なグループのDNA配列を比較することができる。適切なアルゴリズムを用いて特徴を抽出し、これらのデータを符号化することが可能である。Milvusはベクトル間の距離を返すことができ、それは病気のデータと関連づけることができる。このアプリケーションは、病気の診断に役立つだけでなく、標的治療の研究にも役立つ。

Milvusは、膨大な数の人工知能およびベクトル類似性検索アプリケーションを強化できる強力なツールです。プロジェクトの詳細については、以下のリソースをご覧ください:

  • ブログを読む
  • Slackでオープンソースコミュニティと交流する。
  • GitHubで世界で最も人気のあるベクトル・データベースを利用したり、貢献する。
  • 新しいブートキャンプでAIアプリケーションを素早くテストし、デプロイする。

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    続けて読む