はじめに
Uniprotは蛋白質の配列や機能に関する情報を提供する公共データベースです。あらゆる蛋白質の情報が網羅的に格納されています。
Uniprotから多種類の情報を一括して取得したり、プロジェクト特有な解析を行う場合は、APIを利用して自動的にデータを取得するのがおすすめです。この記事ではUniprotのAPIについて概説したいと思います。
スクレイピング手法
様々なプログラミング言語からスクレイピングのためのプログラムを実装することが可能です。Pythonに関しては以下の記事がUniprotに特化して詳説されていて参考になったので、リンクを共有します。

当サイト関連動画でselenium basic (Excel VBA)インストール手順について解説しているので、Excel VBAでの実装を検討される方はご参考にしていただけると嬉しいです。
Uniprot REST API
ここからはUniprotのデータ構造についてです。UniprotのAPIについては以下のリンクをご参照ください。
またデータ構造についても公式のドキュメントが存在します。
Uniprotでは個々のタンパク質エントリに対して複数のフォーマットで情報が公開されています。
• WEB: https://www.uniprot.org/uniprot/P12345
• TEXT: https://www.uniprot.org/uniprot/P12345.txt
• XML: https://www.uniprot.org/uniprot/P12345.xml
• RDF: https://www.uniprot.org/uniprot/P12345.rdf
• FASTA: https://www.uniprot.org/uniprot/P12345.fasta
• GFF: https://www.uniprot.org/uniprot/P12345.gff
エントリ構造
テキストやXMLは直感的に構造化データを扱えるので利用するのにおすすめです。早速例としてhuman PD1 (ID: Q15116)を確認してみましょう。
テキストデータは各行の先頭にアルファベット2文字のラインコードが付与されているので、必要な情報の検索に役立ちます。以下によく使用するラインコードの意味をまとめます。
ID | エントリー名(アクセッション番号のように安定した識別子でないことに注意)、情報の状態(レビューの有無)、配列長(アミノ酸)があります。 |
DE | 蛋白質の推奨名です。 |
OS | 配列の由来となる生物種です。 |
CC | 自由記述コメント。各コメントはさらに機能、疾患、補因子などのトピックに分類されます。 各コメントの文頭は、-!- “TOPIC”: で開始します。 |
KW | 蛋白質の機能に関わるキーワードがアノテーションされています。 |
FT | シグナル配列などの前駆ペプチド、ドメイン鎖、翻訳修飾サイト、変異バリアントなど配列に特化した情報が格納されています。配列は開始と終了位置の数値で定義されていて、その中身は後述するSQコード内に記載されています。それぞれの配列は”feature types”として分類されています。 以下に主なfeature typesについて記載します。 ・SIGNAL シグナル配列 ・CHAIN mature proteinとしての全長配列 ・DOMAIN 機能ドメイン ・MOD_RES 翻訳後修飾残基 ・VARIANT 変異 |
SQ | 配列長、分子量とともに、1文字表記のアミノ酸配列が格納されています。 10残基ごとに半角スペース、60残基ごとに改行されています。 |
// | 終了コードです。これ以下にデータはありません。 |
コメント