alphafold2安装记录230610,Database下载
许多现存教程是先把命令放上,最后再写踩坑,导致学的人再踩一遍坑,下几天再删了重下或者改命令,很坑。 这里主要根据github官方文献,报错后参考了许多已有教程的有效部分。
主要难点是Database的下载,
Tip1: Database不要放到alphafold的目录下,会导致docker占用空间太大。
Tip2:输入的下载目录一定要是绝对路径,否则会报错。
Tip3:一开始运行download_all_data.sh脚本,报错后,不要删掉已经下载的文件然后重新运行这个脚本。而是看报错的是哪个文件,前面下载的如果没报错,则只删掉这个文件,运行alphafold/scripts下对应的脚本就可以了。
download_all_data.sh <下载目录>这个脚本是个坑,境内的网基本不可能无错下载全部文件,我试了4次,不行。
一共需要这么多文件

上面是github官网的截图,也不是实时更新的,有些项会更大。下面是我23年6月下载后的实际大小。

git clone https://github.com/deepmind/alphafold
cd alphafold
cd ../
mkdir Database
Database最好不要在alphafold文件夹下,说是会导致docker过大。这里有的教程会有如下命令,是用conda安装时配置环境所用,我最后没用conda,不需要下面命令
# stereo_chemical_props.txt下载 ,
wget -P alphafold/alphafold/common/ https://git.scicore.unibas.ch/schwede/openstructure/-/raw/7102c63615b64735c4941278d92b554ec94415f8/modules/mol/alg/src/stereo_chemical_props.txt (后面conda安装时用到,.txt文件在alphafold/alphafold/common路径)
sudo bash /绝对路径/download_all_data.sh /绝对路径/Database
按顺序下载到pdb_mmcif这里会报错,前面的bfd,mgnify,params,pdb70是下载成功的。

pdb_mmcif是20万个文件的文件夹,按脚本中的命令运行,即使有些文件没有下载完成也不会报错,会导致后面运行时出问题。有攻略使用多线程同步(https://www.rehiy.com/post/134),实际运行中10线程会中断,换5线程,换日本的源都不行先放着。不知道是运气好还是改了确实有用,运行下面命令
cat /etc/rsyncd.conf
在打开的文件中改参数,最后是这个样子
uid = nobody
gid = nobody
use chroot = no
max connections = 24
pid file = /var/run/rsyncd.pid
Exclude = lost+found
Transfer logging = yes
Timeout = 90000000
Ignore nonreadable = yes
Don’t compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
其他没改,就把use chroot改成no
max connections从4改成24
timeout原先是900,加了几个0.

然后下载速度就8.2 MB/s, 两个小时下好了。
pdb_seqres, raw, uniref30三个,运行alphafold/scripts文件里对应的脚本就行了。命令格式和download_all_data.sh一样。此外,下载了bfd,就不需要small_bfd(这个是空间不足时使用的)。
uniref90也是个坑,使用自带的脚本,或者迅雷,IDM都不行,最后会卡死,超时断开。
采用axel下载,没安装的这样安装
sudo apt-get install axel
(如果是Red-hat,Cent-OS系统sudo yum install axel)
随后cd 到想要下载的目录,输入下面命令下载
axel -n 24 ftp://ftp.uniprot.org/pub/databases/uniprot/uniref/uniref90/uniref90.fasta.gz
实测速度比较稳定,查了下,还有断点续传功能,中断了重新输入上述命令就行。(我为什么会知道,uniref90这个网址就是不稳定,有些时间段死活连不上,当时用原脚本,aria2改线程数都没大用,等了段时间还是用axel下载完的)


下载好后是解压,正常做法是注释掉download_uniref90.sh脚本中的下载行命令,再执行修改后的脚本,但是我此时还不会,注释掉后,解压后删除的是解压后文件而不是另外两个文件。(后来才想到目录中是aria2未完全下载的,解压后会不见gzip: uniref90.fasta.gz: unexpected end of file)

只好cd到下载的压缩文件所在目录
gunzip uniref90.fasta.gz
最后的uniprot,依旧不耐烦等,cd到要下载的位置,采用axel多线程下载
sudo axel -n 24 https://ftp.ebi.ac.uk/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_trembl.fasta.gz
sudo axel -n 24 https://ftp.ebi.ac.uk/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_sprot.fasta.gz
注释掉scripts/download_uniprot.sh中这三行

sudo bash download_uniprot.sh /绝对路径/Database
至此所有database文件齐活了。