Uses DSSP to find polyproline helices in a pdb file.

    Returns a length 3 list with a helix id, the chain id and a dict
    containing the coordinates of each residues CA.

    Parameters
    ----------
    in_pdb : string
        Path to a PDB file.

def extract_pp_helices(in_pdb):
    """Uses DSSP to find polyproline helices in a pdb file.

    Returns a length 3 list with a helix id, the chain id and a dict
    containing the coordinates of each residues CA.

    Parameters
    ----------
    in_pdb : string
        Path to a PDB file.
    """
    t_phi = -75.0
    t_phi_d = 29.0
    t_psi = 145.0
    t_psi_d = 29.0

    pph_dssp = subprocess.check_output(
        [global_settings['dssp']['path'], in_pdb])
    dssp_residues = []
    go = False
    for line in pph_dssp.splitlines():
        if go:
            res_num = int(line[:5].strip())
            chain = line[11:13].strip()
            ss_type = line[16]
            phi = float(line[103:109].strip())
            psi = float(line[109:116].strip())
            dssp_residues.append((res_num, ss_type, chain, phi, psi))
        else:
            if line[2] == '#':
                go = True
            pass
    pp_chains = []
    chain = []
    ch_on = False
    for item in dssp_residues:
        if (item[1] == ' ') and (
            t_phi - t_phi_d < item[3] < t_phi + t_phi_d) and (
            t_psi - t_psi_d < item[4] < t_psi + t_psi_d):
            chain.append(item)
            ch_on = True
        else:
            if ch_on:
                pp_chains.append(chain)
                chain = []
                ch_on = False
    pp_chains = [x for x in pp_chains if len(x) > 1]
    pp_helices = []
    with open(in_pdb, 'r') as pdb:
        pdb_atoms = split_pdb_lines(pdb.read())
    for pp_helix in pp_chains:
        chain_id = pp_helix[0][2]
        res_range = [x[0] for x in pp_helix]
        helix = []
        for atom in pdb_atoms:
            if (atom[2] == "CA") and (
                    atom[5] == chain_id) and (
                    atom[6] in res_range):
                helix.append(tuple(atom[8:11]))
        pp_helices.append(helix)
    return pp_helices