拿走不谢!Alphafold3依赖数据库已打包百度网盘(文末领取链接)
写在前面的
最近DeepMind团队公开了Alphafold3的全部源代码。蛋白质结构预测和蛋白质及其生物大分子的相互作用分析能在部署了Alphafold3的本地服务器被批量操作,极大提高了生物信息学和生物大分子互作动力学分析的效率。在AlphaFold3和Alphafold2中,MSA(多序列比对,Multiple Sequence Alignment)是一个关键的组件,MSA通过对数据库中已知的同源序列进行比对,提取经过处理的残基类型分布等信息,从而整合来自多个相关蛋白质序列的信息,这些信息可以帮助模型识别保守的氨基酸残基和结构特征,从而提高预测的准确性。尽管AlphaFold3通过Pairformer模块的改进设计使得其MSA模块比AlphaFold2更为简化,但是由于当前AlphaFold3可以处理超过99%的已知分子类型,包括蛋白质、核酸(如DNA和RNA)、小分子、离子以及各种化学修饰,并且能够预测蛋白质、DNA、RNA及其与配体、离子和共价修饰的复合物结构,这使得相比于Alphafold2,Alphafold3的MSA过程会处理更多类型的生化分子,其依赖的数据库显著增大。之前的推送简单介绍了在本地服务器上部署Alphafold3的软硬件要求,特别提到了下载完Alphafold3的源代码后需要使用其中一个名为fetch_databases.py的python代码下载Alphafold3的依赖数据库,根据DeepMind团队的信息,这个数据库的压缩文件总大小超过了250GB,解压后的大小超过630GB。考虑到中国大陆可能受到网络速度的限制,或者一些内网服务器无法联网,从而难以尽快完成Alphafold3的依赖数据库下载,因此本期的推送无损下载好了Alphafold3需要的全部数据库依赖,并打包上传至了百度网盘,中国大陆有需要下载Alphafold3数据库的同行可以通过本推送中的网盘链接无损下载数据库。
Alphafold3依赖数据库
1. BFD small
2. PDB (structures in the mmCIF format)
3. PDB seqres
4. UniProt
5. UniRef90
6. NT database
7. RFam
8. RNACentral
9. MGnify
在不受网络限制的情况下,使用deepmind团队给出的fetch_databases.py程序完成数据库下载后一共会出现如下文件(总共大小超过220GB)
pdb_2022_09_28_mmcif_files.tar.zst # ~200k PDB mmCIF files in this tar.
bfd-first_non_consensus_sequences.fasta.zst
mgy_clusters_2022_05.fa.zst
nt_rna_2023_02_23_clust_seq_id_90_cov_80_rep_seq.fasta.zst
pdb_seqres_2022_09_28.fasta.zst
rfam_14_9_clust_seq_id_90_cov_80_rep_seq.fasta.zst
rnacentral_active_seq_id_90_cov_80_linclust.fasta.zst
uniprot_all_2021_04.fa.zst
uniref90_2022_05.fa.zst
Alphafold3数据库构建
如果想尝试自己下载构建Alphafold3数据库,建议在其他路径下创建一个文件夹专门用于存放数据,例如我的做法是
mkdir /home/dell/mishika/database/AF3-DB
chomd -R 777 /home/dell/mishika/database/AF3-DB
python3 fetch_databases.py --download_destination=/home/dell/mishika/database/AF3-DB
切记要将Alphafold3数据库的路径权限设置为可读可写可执行,否则在后面实际使用Alphafold3软件预测复合体结构时,MSA进程可能报错。此外,建议使用python版本在3.7到3.9之间。
下载Alphafold3数据库踩过的坑
1.服务器不支持断点续传
虽然我使用境外网络下载Alphafold3的数据库,但是依然会因为网络的波动从而导致下载中断。由于我使用的设备不支持断点续传功能,当我的下载因为网络中断时,我再次运行fetch_databases.py程序会出现报错。这是因为在这个python程序中设定了使用curl的断点续传功能
subprocess.run(
args=(
'curl',
'--progress-bar',
*('--continue-at', '-'),
*('--output', f'{download_destination}/{filename}'),
f'{bucket_path}/{filename}',
*('--stderr', '/dev/stdout'),
),
check=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
# Same as text=True in Python 3.7+, used for backwards compatibility.
universal_newlines=True,
)
上面的代码是DeepMind团队的fetch_databases.py下载数据库的指令,--continue-at -是告诉curl执行断点续传,如果读者使用的服务器设定了不允许断点续传,需要将*('--continue-at', '-'),这个代码前加#注释掉不执行。注释掉这个代码后重新执行会重新下载新的数据库文件覆盖旧的缺损文件。也可以使用root权限修改设备的断点续传设置。
2.无法解压文件
由于fetch_databases.py开启了多线程池下载数据库,因此,当一些小的数据库提前下好后,这个python程序就会立刻执行解压缩,
subprocess.run( #fetch_databases.py会在完成下载后执行这段命令,这个命令依赖zstd软件
['zstd', '--decompress', '--force', f'{download_destination}/{filename}'],
check=True,
)
print(f'FINISHED decompressing of {filename}')
由于Alphafold3依赖的所有数据库都是以.zst的方式进行压缩的,Linux常规的压缩软件bzip, gzip和zip无法解压这些.zst结尾的文件。因此依然会报错中断下载。解决方法是安装zstd压缩软件
conda install zstd
完整的Alphafold3数据库百度网盘链接
通过百度网盘分享的文件:AF3-database
链接:https://pan.baidu.com/s/1Q3yBu1cpzEvn2CVccUA3JA
提取码:bmdg
通过百度网盘下载好数据库后上传至服务器,执行如下命令解压缩
ls *zst | while read file; do zstd --decompress --force ${file}; done
解压缩成功后就部署好了Alphafold3的完整数据库。

