
RES_BUILD_INFO = {
    'ALA': {
        'torsion-names': [],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB'],
        'single-letter': 'A'
    },
    'ARG': {
        'torsion-names': ['N-CA-CB-CG', 'CA-CB-CG-CD', 'CB-CG-CD-NE', 'CG-CD-NE-CZ'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG', 'CD', 'NE', 'CZ'],
        'single-letter': 'R'
    },
    'ASN': {
        'torsion-names': ['N-CA-CB-CG', 'CA-CB-CG-OD1'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG', 'OD1', 'ND2'],
        'single-letter': 'N'
    },
    'ASP': {
        'torsion-names': ['N-CA-CB-CG', 'CA-CB-CG-OD1'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG', 'OD1', 'OD2'],
        'single-letter': 'D'
    },
    'CYS': {
        'torsion-names': ['N-CA-CB-SG'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'SG'],
        'single-letter': 'C'
    },
    'GLN': {
        'torsion-names': ['N-CA-CB-CG', 'CA-CB-CG-CD', 'CB-CG-CD-OE1'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG', 'CD', 'OE1', 'NE2'],
        'single-letter': 'Q'
    },
    'GLU': {
        'torsion-names': ['N-CA-CB-CG', 'CA-CB-CG-CD', 'CB-CG-CD-OE1'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG', 'CD', 'OE1', 'OE2'],
        'single-letter': 'E'
    },
    'GLY': {
        'torsion-names': [],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB'],
        'single-letter': 'G'
    },
    'HIS': {
        'torsion-names': ['N-CA-CB-CG', 'CA-CB-CG-ND1'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG', 'ND1', 'CD2', 'CE1', 'NE2'],
        'single-letter': 'H'
    },
    'ILE': {
        'torsion-names': ['N-CA-CB-CG1', 'CA-CB-CG1-CD1'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG1', 'CG2', 'CD1'],
        'single-letter': 'I'
    },
    'LEU': {
        'torsion-names': ['N-CA-CB-CG', 'CA-CB-CG-CD1'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG', 'CD1', 'CD2'],
        'single-letter': 'L'
    },
    'LYS': {
        'torsion-names': ['N-CA-CB-CG', 'CA-CB-CG-CD', 'CB-CG-CD-CE', 'CG-CD-CE-NZ'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG', 'CD', 'CE', 'NZ'],
        'single-letter': 'K'
    },
    'MET': {
        'torsion-names': ['N-CA-CB-CG', 'CA-CB-CG-SD', 'CB-CG-SD-CE'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG', 'SD', 'CE'],
        'single-letter': 'M'
    },
    'PHE': {
        'torsion-names': ['N-CA-CB-CG', 'CA-CB-CG-CD1'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG', 'CD1', 'CD2', 'CE1', 'CE2', 'CZ'],
        'single-letter': 'F'
    },
    'PRO': {
        'torsion-names': ['N-CA-CB-CG', 'CA-CB-CG-CD'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG', 'CD'],
        'single-letter': 'P'
    },
    'SER': {
        'torsion-names': ['N-CA-CB-OG'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'OG'],
        'single-letter': 'S'
    },
    'THR': {
        'torsion-names': ['N-CA-CB-OG1'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'OG1', 'CG2'],
        'single-letter': 'T'
    },
    'TRP': {
        'torsion-names': ['N-CA-CB-CG', 'CA-CB-CG-CD1'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG', 'CD1', 'CD2', 'NE1', 'CE2', 'CE3', 'CZ2', 'CZ3', 'CH2'],
        'single-letter': 'W'
    },
    'TYR': {
        'torsion-names': ['N-CA-CB-CG', 'CA-CB-CG-CD1'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG', 'CD1', 'CD2', 'CE1', 'CE2', 'CZ', 'OH'],
        'single-letter': 'Y'
    },
    'VAL': {
        'torsion-names': ['N-CA-CB-CG1'],
        'atom-names': ['N', 'CA', 'C', 'O', 'CB', 'CG1', 'CG2'],
        'single-letter': 'V'
    },
}

SPECIAL_AA = {
    'MSE': {
        'convert-to': 'MET',
        'atom-mapping': {'SE': 'SD'},
        'remove': [],
        'name': 'selenomethionine'
    },
    'SEC': {
        'convert-to': 'CYS',
        'atom-mapping': {'SE': 'SG'},
        'remove': [],
        'name': 'selenocysteine'
    },
    'CSD': {
        'convert-to': 'CYS',
        'atom-mapping': {},
        'remove': ['OD1', 'OD2'],
        'name': 'sulphinoalanine'
    },
    'PCA': {
        'convert-to': 'GLU',
        'atom-mapping': {'OE': 'OE1'},
        'remove': [],
        'name': 'pyroglutamic_acid'
    },
    'PYL': {
        'convert-to': 'LYS',
        'atom-mapping': {},
        'remove': ['N2', 'CA2', 'C2', 'O2', 'CB2', 'CG2', 'CD2', 'CE2'],
        'name': 'pyrrolysine'
    },
}

EXCLUDE_AA = ['ASX', 'GLX', 'UNK']
