def make_chimera_attribute_file(column, recipient='residues', match_mode=
    '1 - to - 1'):
    """
    Write a UFSC Chimera attribute file. It assumes that the pd.Series index
        matches to the residue number in the target protein structure.
    :param pd.Series column: column with attributes in data and recipient in the index
    :param str recipient: level of attribute assignment. Choice from atoms,
        residues and molecules.
    :param str match_mode:
    :return None:

    .. example:
        generate_chimera_attrFile(variants.applymap(counts).tcga)

    .. note: Documentation
        https://www.cgl.ucsf.edu/chimera/docs/ContributedSoftware/defineattrib/defineattrib.html

    """
    if recipient not in ['atoms', 'residues', 'molecules']:
        raise ValueError('The recipient is not supported.')
    if recipient != 'residues':
        raise NotImplementedError
    try:
        name = column.name
    except AttributeError:
        raise TypeError('Column parameter needs to be a pd.Series.')
    template = """# Generated with ProteoFAV
    attribute: {name}
    match mode: {match_mode}
    recipient: {recipient}
    """
    column = column.reset_index()
    formatter = ['\t:{}'.format, '\t{}'.format]
    lines = column.to_string(index=False, header=False, formatters=formatter)
    lines = lines.replace(' ', '')
    return template.format(name=name, match_mode=match_mode, recipient=
        recipient) + lines
