著者 : Ville Koskinen   2025年3月30日 投稿のブログ記事 (元の英文記事へのリンク)

大規模データベース、膨大なピークリスト

検索は、どの程度の規模まで可能なのか?これには大きくわけると2つのポイントがあります。検索が大規模になる理由は、データベースに登録されているエントリー数と、検索queryのピークリストの数です。Mascot Serverのソフトウェアとしては受け付けに関する制限はほとんどなく、どちらの大規模検索にも対応可能です。ただし、ウェブサーバーの仕様という点で、大規模検索に対する別の面での制限にひっかかってしまう可能性があります。その点について以下説明します。

大規模データベース

ヒトや酵母菌のように、よく調べられている生物体を研究している場合、対象のプロテオームに加えて混入物のデータベースを検索することはよくあります。どのようなデータベース検索エンジンでも、数千から数万のタンパク質からなるプロテオームを1つまたは2つ処理することができます。しかし規模を拡大した検索をすることで、さらに興味深いものになるかもしれません。

何百万ものエントリーを持つ配列データベースが必要となるのは、どのような場合でしょうか? 典型的な使用例としては、まだ配列決定されていない珍しい生物や特殊な生物を研究する場合が挙げられます。細菌がわかりやすい例ですが、他にも、例えばカリフォルニアアシカ( California sea lions)のような海洋哺乳類も該当します。 2025年3月現在、詳細情報が記載されたエントリーを登録しているデータベースSwissProtには17件の配列しか登録されていません。そのため、このようなサンプルを解析する際には、SwissProt以外の配列のデータベース、またはすべての哺乳類タンパク質のデータベースを使用した検索の実行が必要です。

MascotがPredefined設定を定めている一般公開データベースについて、登録データ数の例をいくつか挙げると以下の通りです。

  • SwissProt: 0.57M sequences (2025_01)
  • Trembl (UniProt TrEMBL): 253M sequences (2024_06)
  • NCBIprot (NCBI nr): 707M sequences (Jan 2025)

Mascotでよく利用されるデータベースとしては、SwissProtは小規模なデータベースです。Orbitrapから得られた1時間分離のトリプシン消化物のサンプルをSwissProtで検索した場合、ハードウェアがそれほど高スペックでなくとも数分で終了します。一方、サイズの大きなタンパク質データベースの例としてはNCBIprot (NCBInr)が挙げられます。Mascot Server 2.8以降では、最大40億エントリーの配列データベースを処理することができます。そのため7億7070万の配列も問題なく処理することが可能です。

40億という制限値は非常に高いですが、無限ではありません。これは、1つの圧縮ファイルでインデックス値として32ビット整数を使用しているために生じる制限であり、将来的にこれほど大規模な配列データベースが現れた場合には、この制限が解除される可能性もあります。(バージョン2.7以前では、FASTAファイルあたり約3億~4億のデータベース登録数で実質的な上限が定められていました。)そして大きなデータベースに対する検索を行う際にも、ほとんどの場合はTremblまたはNCBIprotにおけるデータベース内すべてのエントリーを検索する必要はありません。「哺乳類」や「プロテオバクテリア」のような適切な生物種フィルターを利用してください。それでも、数百万(哺乳類)または数千万の配列(プロテオバクテリア)が検索対象となります。

MASCOTの動作

Mascotは、タンパク質配列データベースを並列処理するように設計されています。配列(.s00ファイル)とメタデータ(.a00、.b00、.t00ファイル)を「圧縮」し、圧縮ファイルをメモリマッピングしているため可能です。プログラムがファイルを処理する際、OSがRAMへのメモリーページの読み込みとRAMからの読み出しを行うため、非常に効率的な入出力となっています。配列データベースがRAMの容量を超えてしまう場合でも、OSが自動的に未使用のページを削除してメモリー不足を回避します。

Mascotは、データベースの圧縮時ではなく、データベース検索時にタンパク質配列を「消化」処理します。大半の検索は同じ酵素(トリプシン)、切断数設定を使用しているのであれば、計算が無駄になっているように感じるかもしれません。しかし、消化は検索全体の所要時間のほんの一部にすぎません。代わりに検索の柔軟性が得られます。この仕組みであるがために、配列データベースを再圧縮することなく検索の実行時に任意の酵素を選択することができるのです。

25年前のハードウェアの制約、すなわち32ビットシステムと最大3GBのRAMという制約の中で、このストリーミングの手法が唯一実現可能なアーキテクチャで最適な解でした。そして実際にこの設計は今も生き残っています。なぜならこの手法なら基本的に配列データベースのサイズに制限がないことを意味するからです。十分なディスク容量があればMascotは処理できます。膨大な量のRAMは必要ありません。

検索にはどのくらいの時間がかかるでしょうか?データベースのサイズを2倍にすると、検索にかかる時間はほぼ2倍になります。ほとんどの場合、検索時間は直線的に増加しますが、プロセッサのハードウェアによっては異なる動作を示す場合もあります。より正しい言い方は、「検索スペースのサイズを2倍にすると、検索にかかる時間もほぼ2倍になる」となります。生物種絞り込みフィルターが選択されている場合は、その絞り込み後のタンパク質配列の数が速度に関係あります。

コンピュータのハードウェアによる制限

Mascot Serverには制限はありませんが、コンピュータのハードウェアについてはいくつか注意すべき点があります。

まずは十分なRAMがあることを確認してください。理想的には、配列データベースのサイズよりも多くのRAMがある場合、すべてがメモリマップされ検索速度が速くなります。これはNCBIprotでは難しいですが、Trembl(253Mの配列、RAMに収めるには約118GB)のような「より小さい」データベースでは完全に可能です。RAMが少ない場合でもMascotは問題なく動作しますが、検索中にディスク入出力によるOSのオーバーヘッドが発生します。

高速なプロセッサも用意してください。理想的には、クロック速度が高く、コア数が少ない(最大16コア)プロセッサです。1つのスレッドの速度がより速いほうが好ましいです。弊社では、AMD Ryzen 9およびThreadRipperプロセッサで良好な結果を得ています。なお関連事項として、プロセッサの速度が十分でない場合、データベース構築後最初に行われるテスト検索でタイムアウトとなってしまい、データベースのオンライン化に失敗することがあります。もしそのような問題が発生したら、Mascotの関連設定である「MonitorTestTimeout」の数値を変更して大きくしてください。

機械学習アルゴリズム(選択モデルHCD2021)の適用により、同定されたペプチド配列が26%、タンパク質は17%増加しました。

MS/MSスペクトル数が多い検索

2つめの「大規模」は、入力データ、つまりピークリストファイルのサイズです。クライアントプログラム(Mascot Daemon、Mascot Distiller、Thermo Proteome Discovererなど)によってMascot Serverにアップロードされる入力ファイルです。

サイズを左右する第一の要素はMS/MSスキャンの数です。Mascot Serverは非常に大量のファイルであっても検索できるように設計されています。検索の開始時に、Mascotは入力を固定サイズの塊に分割します(SplitNumberOfQueries)。塊はそれぞれ個別に検索され、最後に結果が結合されます。つまり入力ファイルのサイズは問題ではなく、検索時間はチャンクの数に比例して直線的に増加する、ということになります。

一般的に、LC-MS/MS分析におけるスキャンの数は、装置のスキャン速度とグラジエントの長さからある程度わかります。例えばThermo Orbitrap Explorisは22Hzでスキャンするため、120分のグラジエントでは約150,000のスキャンとなります。一方、Thermo Orbitrap Astralは200Hzでスキャンできるため、同じグラジエント長であれば、1回の実行で約140万のスキャンを取得できます。

第二の要素は、各ピークリストの平均サイズ(バイト単位)です。ピークピッキングが適切に機能し、ノイズピークが正しく除去されている限り、実際のペプチドのMS/MSスペクトルに100~200以上のピークが存在することはありません。これらのピークがテキストファイルに数値としてエンコードされた場合、平均サイズは約2キロバイトとなります。したがって、100万のピークリストのファイルサイズが2GBを超えることはありません。

ウェブサーバーによる制限

気を付けなければならない別の制約があります。ウェブサーバーによる制限です。

ウェブサーバーの制限で最も私たちに報告されるのは、ピークリストのアップロードサイズです。Windowsが使用するWEBサーバーであるMicrosoft IISはアップロード可能なファイルサイズが2GBに制限されており、これがMGFファイルの最大サイズとなってしまいます。約100万のMS/MSスキャンに相当します。この問題の回避策として、Mascot Daemonを使用して検索を実行する場合、Mascot DaemonをMascot Serverと同じPCにインストールして、Webサーバーをバイパスしコマンドで直接検索を実行させる方法があります。また別の方法としては、IISからApache Webサーバーに切り替えるという方法もあります。

Linuxにおいて最も一般的なWebサーバーはApache httpdです。一部のLinuxディストリビューションでは、Apache構成にアップロード制限が適用されています。Apacheの設定値のうち、LimitRequestBody の値を確認してください。2GB (2147483648) 未満の場合は、その値を2倍または3倍にしてください。あるいは、0 (無制限) に設定することもできます。Mascot はアップロードされたピークリストを mascot/data ディレクトリの「daily」ディレクトリに保存するため、/tmp パーティションの容量が不足する心配はありません。

Thermo Proteome Discovererなどの一部のクライアントプログラムでは、MGFファイルを分割して検索することができます。機械学習の統合を使用していない場合は、この方法で十分です。ただし、Mascot Server 3.1以降を使用しており、Mascotの機械学習機能を利用したい場合(過去のブログ記事、日本語英語)は、Proteome Discovererの入力データの小分割化を無効にしてください。分割は機械学習の結果に悪影響を及ぼしてしまいます。

Keywords: , ,