新しいAPIによるUniProtプロテオームデータベースのダウンロード
2022年6月、UniProtのウェブサイトがリニューアルされ、ブラウザインターフェースとREST APIの両方が更新されました。旧バージョン(レガシーウェブサイト)については2022_04のリリースまで、新しいURL (https://legacy.uniprot.org/) でも利用できますが、残された猶予はあまりありません。Mascot Serverにとっては新しいAPIへの意向は概ねそれほど問題なく利用可能といえますが、一つ大きな問題があります。Mascotがこれまで利用していたHTTPヘッダー情報が削除されそのままではデータベースの更新機能が正常に働かないため、MASCOTにおいて新たなマイナーアップデート(ver.2.8.2)を実施し、パッチプログラムを公開いたしました。
URLの変更
Uniprot.orgではデータをダウンロードする方法として2種類準備されています。そのうちの1つ、データベース全体が含まれる公開ファイルhttps://ftp.uniprot.org/pub/databases/uniprot/uniref/uniref100/uniref100.fasta.gzについては、URLなど変更はありません。もう1つの方法、タンパク質の配列やプロテオームデータ全体のデータベースを、REST APIでダウンロードすることもできます。
そのURLは、以前のバージョンではwww.uniprot.org/uniprot/?query=...で始まったルールで構成されていました。”query=”以降にはtaxonomy IDなどのフィルター条件が含まれます。これが新しいURLでは以下のようにrest.uniprot.org/uniprotkb/stream?query=... となり、パラメーター名や指定方法も若干変更されました。
この変更に対応するため、UniProtプロテオームを設定するためのドキュメントを更新し、Database Managerで使用するpredefined definitions(databases_1.xml)の情報を更新しました。UniProtプロテオームを、MASCOTのカスタム機能を使って設定する場合、新しいURLに変更するのは簡単です。FASTA のURLを以下のように変更します。
- ホスト名とパス部分の書き換え:rest.uniprot.org/uniprotkb/stream?
- パラメーター compress=noの変更:compressed=false
- パラメーター include=yesの変更:includeIsoform=true
- query=パラメーター変更はありません
例えば、ヒトプロテオームのURLは、以前はhttps://www.uniprot.org/uniprot/?query=proteome:UP000005640&format=fasta&compress=no&include=yesでした。これに対して上記の変更を適用すると、次のような新しいURLになります。https://rest.uniprot.org/uniprotkb/stream?query=proteome:UP000005640&format=fasta&compressed=false&includeIsoform=true
UniProtにウェブブラウザーでアクセスしてファイルをダウンロードする操作を行う事で、上記の新しい形式のURLを簡単に作成することができます。
HTTPヘッダー内の最終修正時刻情報の欠落
Database Managerでは、リモートサーバーと通信する際に標準的なHTTPヘッダーを使用します。特定のHTTPヘッダー情報が利用可能な場合、それらを積極的に利用した整合性チェックを行っています。またヘッダー情報を元に、ファイル設置場所に置かれているファイルが新しいバージョンかどうかを判断して、新しくない場合にはダウンロードをしないように調整する機能を有しています。さらにプロキシサーバーへの対応や、中断されたダウンロードの再開にも対処しなければなりません。
利用可能な HTTP ヘッダー情報は、サーバーやサービスによって大きく異なります。ファイルをダウンロードする場合、サーバーは通常該当ファイルのサイズと最終修正時刻を知っているので、Content-Lengthや Last-Modified といった名称の項目としてHTTPヘッダー内の情報の一部としてユーザー側に送信されます。一方ファイルに含まれるタンパク質の選択範囲をその場で指定しファイル生成とダウンロードを行うストリーム方式の場合、サーバーは送信するデータの総量を必ずしも把握できない事があり、Content-Length情報がヘッダーに含まれない場合もあります。
UniProt REST APIはストリーム方式であり、ファイルの中身は指定されたパラメーターを元に、(公開された情報ではありませんがおそらく)リレーショナルデータベースから生成されます。以前のREST APIでは、UniProtのリリース日を含むLast-Modifiedヘッダー情報がダウンロード時に含まれていました。公式サイトではその目的を、「同じリリースのデータを何度もダウンロードすることを避けるため」としています。 MASCOT Server のDatabase Managerでもこのヘッダー情報を使用していました。
しかし新しいAPIでは残念ながらこのLast-Modified情報がなくなり、それによりDatabase Manager のダウンロードが一部正しく機能しなくなってしまいました。Databse Managerから新規にUniProtプロテオームをセットする動作については問題なく行われ、ファイルを正しくダウンロードすることができます。しかし新規の入手でなくデータベースを更新するために、Database Manager内の”Update”ボタンをクリックしても、正常に動作できません。Database ManagerはHTTPヘッダーをチェックしますがその時にLast-Modifiedがないことを発見し、それによってダウンロードするべき新しいファイルがサイトにはないと判断して、処理を止めてしまうため、データベースを更新されません。このバグはMascot ver.2.6以降でのご利用に影響を及ぼします。それぞれのバージョンにおける対処法や、パッチプログラムを用意しました。下記の該当バージョンにおける対応方法に関する情報をご確認ください。
UniProtのWebサイトの更新についてはツイートされ、さらにその後のツイートで新しいAPIについても発表されましたが、Webサイト上で公開されているニュース項目としては発表がなく、新旧の違いを一覧にしたドキュメントも見つける事ができません。このヘッダー情報の削除について、弊社よりUniProtのサポートに対して問い合わせをしましたが、そのやり取りから再び追加されることはなさそうだというのが弊社の見解です。
Mascot Server 2.8
Mascot Server 2.8.0、2.8.1をお使いの方は、パッチプログラムを入手・インストールしてバージョンを2.8.2にしてください。このアップデートによりHTTPヘッダーの問題が修正されます。また、前回のパッチ2.8.1で新たに引き起こされた、UniProt_proteome_templateなどのテンプレートを使用してデータベースをセットアップするとデータベースの定期更新が停止してしまう不具合も修正されています。
Mascot Server 2.7および2.6について
ver.2.8のようにパッチプログラムは適用されません。UP5640_H_sapiensのようなUniProt proteomeのPredefined definitionを有効にして新規作成する方法については、Mascot Server 2.7および2.6でも問題なく動作し、FASTAファイルは正常にダウンロードされ、Mascotで使用可能にする事ができます。しかしDatabase Managerでデータベースをupdateする事ができません。そのため回避策としては、ご自身でデータベースが更新されている事を確認された後、手動操作で旧ファイルの削除とファイルのダウンロード実行の命令を行う必要があります。具体的には以下の手順となります。
- 該当データベースをDeactivateする
- currentフォルダにあるファイルを削除する
- Database Managerでupdate ボタンをクリックする
- データベースをActivateする
繰り返しになりますが、UniProtプロテオームのpredefined情報を使ったデータベースの新規作成は、問題なく動作します。作成後該当データベースを更新したい場合、上記の回避策をとってください。
MascotServer 2.5および2.4
UniProtはHTTPSでのみ利用可能ですが、Mascot Server 2.5ではクエリパラメータ付きのHTTPSの URLからのデータダウンロードに対応しておらず、またMascot Server 2.4ではHTTPSに全く対応していません。こちらのヘルプにあるようにFASTAファイルを手動でダウンロードしてご利用ください。
Mascot Server 2.3以前のバージョン
2.3以前のバージョンにはDatabase Managerが搭載されていないため影響がありません。
Keywords: database manager, Fasta, HTTPS, sysadmin