Source code for molsysmt.form.file_bcif_gz.download
from molsysmt._private.download import download_with_retries
from molsysmt._private.files_and_directories import temp_filename
[docs]
def download(pdb_id=None, output_filename=None, tempfile=False, wwPDB_Partner='RCSB PDB', skip_digestion=False, retries=5, timeout=30, backoff_base=2.0):
"""Downloading a remote bcif.gz file from a wwPDB partner."""
if pdb_id.startswith('pdb_id:'):
pdb_id = pdb_id.split(':')[-1]
elif pdb_id.startswith('pdb_'):
pdb_id = pdb_id[-4:]
if wwPDB_Partner != 'RCSB PDB':
raise NotImplementedError("Only 'RCSB PDB' is supported at the moment.")
if output_filename is None:
if tempfile:
output_filename = temp_filename(extension="bcif.gz")
else:
output_filename = f"{pdb_id}.bcif.gz"
return download_with_retries(
url="https://models.rcsb.org/{pdb_id}.bcif.gz".format(pdb_id=pdb_id),
output_filename=output_filename,
resource=f"{pdb_id}.bcif.gz",
provider=wwPDB_Partner,
caller="molsysmt.form.file_bcif_gz.download",
retries=retries,
timeout=timeout,
backoff_base=backoff_base,
)