我尝试使用Bio.PDB模块(BioPython)下载PDB文件。入藏号列表来自pandas DataFrame。这是我目前正在使用的代码:
def get_pdb(accession, dir='/Users/my_folder'):
pdb1 = PDBList()
pdb1.retrieve_pdb_file(accession, pdir=dir)
for i in df.loc[:, 'Structure_(PDB)_id']:
get_pdb(i)
代码能够将2个文件下载到my_folder,但之后出现此错误:550 Can\'t change directory to pdb1p87.ent.gz: No such file or directory
有关进展情况的任何帮助或提示?这可能是一个FTP问题?
答案 0 :(得分:1)
要获取pdb
个文件,请使用以下网址https://files.rcsb.org/download/1p87.pdb
我的获取程序看起来有点像这样:
import os
import requests as re
def fetchpdb(pdb,dir):
with open(os.join(dir,str(pdb)+'.pdb'),mode='wb') as f:
resp = re.get('https://files.rcsb.org/download/'+str(pdb))
f.write(resp.content)
这个例程没有ftp
的缺点,如果这就是bio.PDB正在使用的那些。
如果你被允许引入requests
作为依赖,我会建议你这样做。
如果您对代码有任何疑问,请随时联系。