Takes a flat list of atomic coordinates and converts it to a `Polymer`.

    Parameters
    ----------
    atom_list : [Atom]
        Flat list of coordinates.
    atom_group_s : int, optional
        Size of atom groups.

    Returns
    -------
    polymer : Polypeptide
        `Polymer` object containing atom coords converted `Monomers`.

    Raises
    ------
    ValueError
        Raised if `atom_group_s` != 4 or 5

def flat_list_to_polymer(atom_list, atom_group_s=4):
    """Takes a flat list of atomic coordinates and converts it to a `Polymer`.

    Parameters
    ----------
    atom_list : [Atom]
        Flat list of coordinates.
    atom_group_s : int, optional
        Size of atom groups.

    Returns
    -------
    polymer : Polypeptide
        `Polymer` object containing atom coords converted `Monomers`.

    Raises
    ------
    ValueError
        Raised if `atom_group_s` != 4 or 5
    """
    atom_labels = ['N', 'CA', 'C', 'O', 'CB']
    atom_elements = ['N', 'C', 'C', 'O', 'C']
    atoms_coords = [atom_list[x:x + atom_group_s]
                    for x in range(0, len(atom_list), atom_group_s)]
    atoms = [[Atom(x[0], x[1]) for x in zip(y, atom_elements)]
             for y in atoms_coords]
    if atom_group_s == 5:
        monomers = [Residue(OrderedDict(zip(atom_labels, x)), 'ALA')
                    for x in atoms]
    elif atom_group_s == 4:
        monomers = [Residue(OrderedDict(zip(atom_labels, x)), 'GLY')
                    for x in atoms]
    else:
        raise ValueError(
            'Parameter atom_group_s must be 4 or 5 so atoms can be labeled correctly.')
    polymer = Polypeptide(monomers=monomers)
    return polymer