AlphaFold のデータベースダウンロードのトラブルシューティング
AlphaFold / OpenFold は、タンパク質の立体構造予測において革新的なツールです。実行するには巨大なデータベースのダウンロードが必要となります。本記事では、EC2 インスタンスでの AlphaFold データベースダウンロード時の問題と対策を紹介します。
背景と課題
私は AlphaFold ではなく OpenFold の環境構築していました。 その際に EC2 インスタンス(EBS)への AlphaFold のデータベースをダウンロード時に以下の問題がありました。
- EBS 容量不足によるダウンロード失敗
- 長いダウンロード時間
- ダウンロードの途中失敗
以下、各問題の詳細と解決策を説明します。
EBS容量不足
問題の背景
コストを節約するために必要最小限の EBS 容量を確保していたので要因です。
必要容量
OpenFold の全データベースには約 2.7TB 以上のストレージが必要です。データベースの容量は以下の通りです。
- BFD: 1.8 TB
- MGnify: 120 GB
- PDB mmCIF: 238 GB
- UniRef30: 206 GB
- UniRef90: 67 GB
- UniProt: 105 GB
- PDB70: 56 GB
- PDB seqres: 0.2 GB
- OpenFold パラメータ: 3.5 GB
推奨対策
- 必要容量を確認する(最低 2.7TB)
長いダウンロード時間
問題の背景
ダウンロード時間の長さは、私の検証タイミングによると AlphaFold 2 のリリース直後(2021 年)から現在(2024 年)まで継続しています。
具体的な所要時間
- 北米リージョンの EC2 インスタンス:約一晩
- 日本国内のオンプレミス環境:約一日
推奨対策
- ダウンロードスクリプトをバックグランド実行(※後述)
- 下手に手を出さずに大人しく待つ
データベースファイルの保存場所と影響
データベースファイルは世界各地に分散して保存されているため、特定のリージョンを選択してもダウンロード速度の大幅な改善は期待できない可能性があります。
- アメリカ
- ヨーロッパ
- Google Cloud Storage(リージョン不明)
注意: CDN を利用している可能性があるため、実際のダウンロード速度は予測が困難です。
以下、データベースファイルのホスト先情報です。
BFD
- スクリプト: download_bfd.sh
- ソース: https://storage.googleapis.com/alphafold-databases/v2.3/UniRef30_2021_03.tar.g
- 地域: 不明(Google Cloud Storage)
MGnify
- スクリプト: download_mgnify.sh
- ソース: https://storage.googleapis.com/alphafold-databases/v2.3/mgy_clusters_2022_05.fa.gz
- 地域: 不明(Google Cloud Storage)
PDB70
- スクリプト: download_pdb70.sh
- ソース: http://wwwuser.gwdg.de/~compbiol/data/hhsuite/databases/hhsuite_dbs/old-releases/pdb70_from_mmcif_latest.tar.gz
- 地域: ドイツ
PDB mmCIF
- スクリプト: download_pdb_mmcif.sh
- ソース: https://ftp.wwpdb.org/pub/pdb/data/structures/divided/mmCIF/
- 地域: アメリカ
UniRef30
- スクリプト: download_uniref30.sh
- ソース: https://storage.googleapis.com/alphafold-databases/v2.3/UniRef30_2021_03.tar.g
- 地域: 不明(Google Cloud Storage)
UniRef90
- スクリプト: download_uniref90.sh
- ソース: ftp://ftp.uniprot.org/pub/databases/uniprot/uniref/uniref90/uniref90.fasta.gz
- 地域: イギリス
UniProt
- スクリプト: download_uniprot.sh
- ソース:
- ftp://ftp.ebi.ac.uk/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_trembl.fasta.gz
- ftp://ftp.ebi.ac.uk/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_sprot.fasta.gz
- 地域: イギリス
PDB seqres
- スクリプト: download_pdb_seqres.sh
- ソース: ftp://ftp.wwpdb.org/pub/pdb/derived_data/pdb_seqres.txt
- 地域: アメリカ
OpenFold パラメータ
- スクリプト: download_openfold_params.sh
- ソース: s3://openfold/openfold_params/ (us-east-1)
- 地域: AWS 北米リージョン
ダウンロードの途中失敗
問題の背景
download_alphafold_dbs.sh
スクリプトの完了メッセージが確認できないaria2c
コマンドによるレジューム機能が期待通りに動作しない
原因は特定できないのですが、ダウンロードが完了しなく何度も再実行しても完了メッセージを確認できませんでした。
推奨対策
個別のダウンロードスクリプトをバックグラウンドで実行する。一括ダウンロードスクリプトではなく、個別のスクリプトを実行する方針にしました。
nohup bash scripts/download_bfd.sh data/ > bfd_download.log 2>&1 & nohup bash scripts/download_uniclust30.sh data/ > uniclust30_download.log 2>&1 & nohup bash scripts/download_mgnify.sh data/ > mgnify_download.log 2>&1 & nohup bash scripts/download_pdb70.sh data/ > pdb70_download.log 2>&1 & nohup bash scripts/download_pdb_mmcif.sh data/ > pdb_mmcif_download.log 2>&1 & nohup bash scripts/download_uniprot.sh data/ > uniprot_download.log 2>&1 & nohup bash scripts/download_openfold_params.sh data/ > openfold_params_download.log 2>&1 &
まとめ
以下が EC2 での OpenFold データベースのダウンロード対策です。
- EBS 容量の適切な設定: 最低 2.7TB を確保
- バックグラウンドでのダウンロード実行(
nohup
コマンドの使用) - 大人しく待つこと
おわりに
この備忘録が OpenFold を用いたタンパク質の立体構造予測の実現に一歩近づくことを願っています。ここで紹介した情報と対策が、同様の問題を抱える方々の助けとなれば幸いです。