def parse_prot_cntct_line(prot_cntct_line):

    """Returns a dictionary containing the info from a line of a protein
    contact report from MOE

    Usage:
    
    parse_prot_cntct_line(prot_cntct_line)
    where pc_line is a string from a protein contact line from a MOE 
    protein contact report.

    Returns a dictionary of the parts of the line, the keys of which are

    'line_num':        The contact line number
    'intrcn_typ':      The type of residue--residue interaction
    'chain1'/'2':      The chain of the first/second residue in the contact
    'pdb_res_dex1'/'2' The pdb index of the first/second residue
    'moe_dex1'/'2':    The MOE-assigned index of the first/second residue
    'atom1'/'2':       The atom designation w/n residue of 1st/2nd residue
    'res_typ1'/'2':    The type of residue 
    'net':             To which network the contact belongs

    """

    assert type(prot_cntct_line) == str
    parts = {}
    line_parts = prot_cntct_line.split()
    parts['line_num'] = line_parts[0]
    parts['intrcn_typ'] = line_parts[1]
    parts['chain1'] = line_parts[2]
    parts['moe_dex1'] = line_parts[3]
    contact_point = line_parts[4]
    res, parts['atom1'] = contact_point.split('.')
    parts['res_typ1'] = res[:3]
    parts['pdb_res_dex1'] = res[3:]
    parts['chain2'] = line_parts[5]
    parts['moe_dex2'] = line_parts[6]
    contact_point = line_parts[7]
    res, parts['atom2'] = contact_point.split('.')
    parts['res_typ2'] = res[:3]
    parts['pdb_res_dex2'] = res[3:]
    parts['net'] = line_parts[8]
    assert type(parts) == dict
    return parts