<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def extract_helices_dssp(in_pdb):
 """Uses DSSP to find alpha-helices and extracts helices from 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. """

    from ampal.pdb_parser import split_pdb_lines

    dssp_out = subprocess.check_output(
        [global_settings['dssp']['path'], in_pdb])
    helix = 0
    helices = []
    h_on = False
    for line in dssp_out.splitlines():
        dssp_line = line.split()
        try:
            if dssp_line[4] == 'H':
                if helix not in [x[0] for x in helices]:
                    helices.append(
                        [helix, dssp_line[2], {int(dssp_line[1]): None}])
                else:
                    helices[helix][2][int(dssp_line[1])] = None
                h_on = True
            else:
                if h_on:
                    helix += 1
                    h_on = False
        except IndexError:
            pass
    with open(in_pdb, 'r') as pdb:
        pdb_atoms = split_pdb_lines(pdb.read())
    for atom in pdb_atoms:
        for helix in helices:
            if (atom[2] == "CA") and (atom[5] == helix[1]) and (atom[6] in helix[2].keys()):
                helix[2][atom[6]] = tuple(atom[8:11])
    return helices