def parse_origin(origin, individual=None):
    """
    The center of the sphere can be given as an Atom, or directly as
    a list of three floats (x,y,z). If it's an Atom, find it and return
    the xyz coords. If not, just turn the list into a tuple.

    Parameters
    ----------
    origin : 3-item list of coordinates, or chimera.Atom
    genes : gaudi.parse.Settings.genes
        List of gene-dicts to look for molecules that may contain
        the referred atom in `origin`

    Returns
    -------
    Tuple of float
        The x,y,z coordinates
    """
    if individual and isinstance(origin, tuple) and len(origin) == 2:
        mol, serial = origin
        return individual.find_molecule(mol).find_atom(serial).coord().data()
    elif isinstance(origin, list) and len(origin) == 3:
        return tuple(origin)
    else:
        raise ValueError('Origin {} cannot be parsed'.format(origin))