Exemplo n.º 1
0
def download_xml(pdb_id, dest_dir, silent = True, filename = None, unzip = False):
    assert(os.path.exists(dest_dir))
    lower_case_gz_filename = os.path.join(dest_dir, '{0}.sifts.xml.gz'.format(pdb_id.lower()))
    upper_case_gz_filename = os.path.join(dest_dir, '{0}.sifts.xml.gz'.format(pdb_id.upper()))
    lower_case_filename = os.path.join(dest_dir, '{0}.sifts.xml'.format(pdb_id.lower()))
    upper_case_filename = os.path.join(dest_dir, '{0}.sifts.xml'.format(pdb_id.upper()))

    if filename:
        requested_filename = os.path.join(dest_dir, filename)
        if os.path.exists(requested_filename):
            return read_file(requested_filename)

    if unzip == True:
        if os.path.exists(lower_case_filename):
            contents = read_file(lower_case_filename)
        elif os.path.exists(upper_case_filename):
            contents = read_file(upper_case_filename)
        elif os.path.exists(lower_case_gz_filename):
            contents = read_gzip_in_memory(read_file(lower_case_gz_filename))
        elif os.path.exists(upper_case_gz_filename):
            contents = read_gzip_in_memory(read_file(upper_case_gz_filename))
        else:
            contents = retrieve_xml(pdb_id, silent = silent, unzip = True)
            write_file(os.path.join(dest_dir, filename or '{0}.sifts.xml'.format(pdb_id)), contents)
        return contents
    else:
        if os.path.exists(lower_case_gz_filename):
            contents = read_file(lower_case_gz_filename) # Note: read_file already unzips .gz files
        if os.path.exists(upper_case_gz_filename):
            contents = read_file(upper_case_gz_filename) # Note: read_file already unzips .gz files
        else:
            gzip_contents = retrieve_xml(pdb_id, silent = silent, unzip = False)
            write_file(os.path.join(dest_dir, filename or '{0}.sifts.xml.gz'.format(pdb_id)), gzip_contents)
            contents = read_gzip_in_memory(gzip_contents)
        return contents
Exemplo n.º 2
0
def retrieve_xml(pdb_id, silent = True, unzip = True):
    if unzip:
        return read_gzip_in_memory(retrieve_file_from_EBI("/pub/databases/msd/sifts/xml/%s.xml.gz" % pdb_id.lower(), silent))
    else:
        return retrieve_file_from_EBI("/pub/databases/msd/sifts/xml/%s.xml.gz" % pdb_id.lower(), silent)