Parameters
    ----------
    code : str
        PDB code.
    mmol_number : int
        mmol number (biological assembly number) of file to download. Numbers from PDBe.
        If None, defaults to the preferred biological assembly listed for code on the PDBe.
    outfile : str
        Filepath. Writes returned value to this file.

    Returns
    -------
    cif_string : str, or None
        Content of the cif file as a string.
        None if unable to download the cif_file from the pdbe site.

def get_cif(code, mmol_number, outfile=None):
    """
    Parameters
    ----------
    code : str
        PDB code.
    mmol_number : int
        mmol number (biological assembly number) of file to download. Numbers from PDBe.
        If None, defaults to the preferred biological assembly listed for code on the PDBe.
    outfile : str
        Filepath. Writes returned value to this file.

    Returns
    -------
    cif_string : str, or None
        Content of the cif file as a string.
        None if unable to download the cif_file from the pdbe site.
    """
    pdbe_url = "http://www.ebi.ac.uk/pdbe/static/entry/download/{0}-assembly-{1}.cif.gz".format(code, mmol_number)
    r = requests.get(pdbe_url)
    if r.status_code == 200:
        temp_gz = tempfile.NamedTemporaryFile()
        temp_gz.write(r.content)
        with gzip.open(temp_gz.name, 'rb') as foo:
            cif_string = foo.read().decode()
    else:
        print("Could not download cif file for {0}".format(code))
        return None
    # Write to file.
    if outfile and cif_string:
        with open(outfile, 'w') as foo:
            foo.write(cif_string)
    return cif_string