name = 'heme_bound_to_two_cysteines'
symbol = 'heme'

FE = Atom('Fe')
NA = Atom('N')
C1A = Atom('C')
C2A = Atom('C')
CAA = Atom('C')
HP71 = Atom('H')
HP72 = Atom('H')
CBA = Atom('C')
HP73 = Atom('H')
HP74 = Atom('H')
CGA = Atom('C')
O1A = Atom('O')
O2A = Atom('O')
C3A = Atom('C')
CMA = Atom('C')
HM81 = Atom('H')
HM82 = Atom('H')
HM83 = Atom('H')
C4A = Atom('C')
CHB = Atom('C')
HDM = Atom('H')
C1B = Atom('C')
NB = Atom('N')
C2B = Atom('C')
CMB = Atom('C')
HM11 = Atom('H')
HM12 = Atom('H')
HM13 = Atom('H')
C3B = Atom('C')
CAB = Atom('C')
CBB = Atom('C')
HVC2 = Atom('H')
HVT2 = Atom('H')
C4B = Atom('C')
CHC = Atom('C')
HAM = Atom('H')
C1C = Atom('C')
NC = Atom('N')
C2C = Atom('C')
CMC = Atom('C')
HM31 = Atom('H')
HM32 = Atom('H')
HM33 = Atom('H')
C3C = Atom('C')
CAC = Atom('C')
CBC = Atom('C')
HVC4 = Atom('H')
HVT4 = Atom('H')
C4C = Atom('C')
CHD = Atom('C')
HBM = Atom('H')
C1D = Atom('C')
ND = Atom('N')
C2D = Atom('C')
CMD = Atom('C')
HM51 = Atom('H')
HM52 = Atom('H')
HM53 = Atom('H')
C3D = Atom('C')
C4D = Atom('C')
CHA = Atom('C')
HGM = Atom('H')
CAD = Atom('C')
HP61 = Atom('H')
HP62 = Atom('H')
CBD = Atom('C')
HP63 = Atom('H')
HP64 = Atom('H')
CGD = Atom('C')
O1D = Atom('O')
O2D = Atom('O')

bonds = [Bond(NA, FE), Bond(C1A, NA), Bond(C2A, C1A), Bond(CAA, C2A),
         Bond(HP71, CAA), Bond(HP72, CAA), Bond(CBA, CAA), Bond(HP73, CBA),
         Bond(HP74, CBA), Bond(CGA, CBA), Bond(O1A, CGA), Bond(O2A, CGA),
         Bond(C3A, C2A), Bond(CMA, C3A), Bond(HM81, CMA), Bond(HM82, CMA),
         Bond(HM83, CMA), Bond(C4A, C3A), Bond(CHB, C4A), Bond(HDM, CHB),
         Bond(C1B, CHB), Bond(NB, C1B), Bond(C2B, C1B), Bond(CMB, C2B),
         Bond(HM11, CMB), Bond(HM12, CMB), Bond(HM13, CMB), Bond(C3B, C2B),
         Bond(CAB, C3B), Bond(CBB, CAB), Bond(HVC2, CBB),
         Bond(HVT2, CBB), Bond(C4B, C3B), Bond(CHC, C4B), Bond(HAM, CHC),
         Bond(C1C, CHC), Bond(NC, C1C), Bond(C2C, C1C), Bond(CMC, C2C),
         Bond(HM31, CMC), Bond(HM32, CMC), Bond(HM33, CMC), Bond(C3C, C2C),
         Bond(CAC, C3C), Bond(CBC, CAC), Bond(HVC4, CBC),
         Bond(HVT4, CBC), Bond(C4C, C3C), Bond(CHD, C4C), Bond(HBM, CHD),
         Bond(C1D, CHD), Bond(ND, C1D), Bond(C2D, C1D), Bond(CMD, C2D),
         Bond(HM51, CMD), Bond(HM52, CMD), Bond(HM53, CMD), Bond(C3D, C2D),
         Bond(C4D, C3D), Bond(CHA, C4D), Bond(HGM, CHA), Bond(CAD, C3D),
         Bond(HP61, CAD), Bond(HP62, CAD), Bond(CBD, CAD), Bond(HP63, CBD),
         Bond(HP64, CBD), Bond(CGD, CBD), Bond(O1D, CGD), Bond(O2D, CGD),
         Bond(NA, C4A), Bond(FE, NB), Bond(FE, NC), Bond(FE, ND),
         Bond(NB, C4B), Bond(NC, C4C), Bond(ND, C4D), Bond(C1A, CHA)]

pdbmap = [('HEM', {'FE': FE, 'CHA': CHA, 'CHB': CHB, 'CHC': CHC, 'CHD': CHD,
                   'N A': NA, 'C1A': C1A, 'C2A': C2A, 'C3A': C3A, 'C4A': C4A,
                   'CMA': CMA, 'CAA': CAA, 'CBA': CBA, 'CGA': CGA, 'O1A': O1A,
                   'O2A': O2A, 'N B': NB, 'C1B': C1B, 'C2B': C2B, 'C3B': C3B,
                   'C4B': C4B, 'CMB': CMB, 'CAB': CAB, 'CBB': CBB, 'N C': NC,
                   'C1C': C1C, 'C2C': C2C, 'C3C': C3C, 'C4C': C4C, 'CMC': CMC,
                   'CAC': CAC, 'CBC': CBC, 'N D': ND, 'C1D': C1D, 'C2D': C2D,
                   'C3D': C3D, 'C4D': C4D, 'CMD': CMD, 'CAD': CAD, 'CBD': CBD,
                   'CGD': CGD, 'O1D': O1D, 'O2D': O2D, '1HP7': HP71,
                   '2HP7': HP72, '3HP7': HP73, '4HP7': HP74, '1HM8': HM81,
                   '2HM8': HM82, '3HM8': HM83, 'HDM': HDM, '1HM1': HM11,
                   '2HM1': HM12, '3HM1': HM13, '2HVC': HVC2,
                   '2HVT': HVT2, 'HAM': HAM, '1HM3': HM31, '2HM3': HM32,
                   '3HM3': HM33, '4HVC': HVC4, '4HVT': HVT4,
                   'HBM': HBM, '1HM5': HM51, '2HM5': HM52, '3HM5': HM53,
                   'HGM': HGM, '1HP6': HP61, '2HP6': HP62, '3HP6': HP63,
                   '4HP6': HP64})]


amber_atom_type = {FE: 'FE', NA: 'NP', C1A: 'CC', C2A: 'CB', CAA: 'CT',
                   HP71: 'HC', HP72: 'HC', CBA: 'CT', HP73: 'HC', HP74: 'HC',
                   CGA: 'C',  O1A: 'O2', O2A: 'O2', C3A: 'CB', CMA: 'CT',
                   HM81: 'HC', HM82: 'HC', HM83: 'HC', C4A: 'CC', CHB: 'CD',
                   HDM: 'HC', C1B: 'CC', NB: 'NO', C2B: 'CB', CMB: 'CT',
                   HM11: 'HC', HM12: 'HC', HM13: 'HC', C3B: 'CB', CAB: 'CY',
                   CBB: 'CX', HVC2: 'HC', HVT2: 'HC', C4B: 'CC',
                   CHC: 'CD', HAM: 'HC', C1C: 'CC', NC: 'NP', C2C: 'CB',
                   CMC: 'CT', HM31: 'HC', HM32: 'HC', HM33: 'HC', C3C: 'CB',
                   CAC: 'CY', CBC: 'CX', HVC4: 'HC', HVT4: 'HC',
                   C4C: 'CC', CHD: 'CD', HBM: 'HC', C1D: 'CC', ND: 'NO',
                   C2D: 'CB', CMD: 'CT', HM51: 'HC', HM52: 'HC', HM53: 'HC',
                   C3D: 'CB', C4D: 'CC', CHA: 'CD', HGM: 'HC', CAD: 'CT',
                   HP61: 'HC', HP62: 'HC', CBD: 'CT', HP63: 'HC', HP64: 'HC',
                   CGD: 'C',  O1D: 'O2', O2D: 'O2'}

amber_charge = {
    FE:       0.2500,
    NA:      -0.1800,
    C1A:      0.0300,
    C2A:     -0.0200,
    CAA:     -0.1600,
    HP71:     0.1000,
    HP72:     0.1000,
    CBA:     -0.3000,
    HP73:     0.1000,
    HP74:     0.1000,
    CGA:      0.3000,
    O1A:     -0.5000,
    O2A:     -0.5000,
    C3A:      0.0200,
    CMA:     -0.2650,
    HM81:     0.0750,
    HM82:     0.0750,
    HM83:     0.0750,
    C4A:      0.0200,
    CHB:     -0.1100,
    HDM:      0.1500,
    C1B:      0.0300,
    NB:      -0.1800,
    C2B:      0.0200,
    CMB:     -0.2650,
    HM11:     0.0750,
    HM12:     0.0750,
    HM13:     0.0750,
    C3B:     -0.0500,
    CAB:     -0.1300,
    CBB:     -0.3000,
    HVC2:     0.1000,
    HVT2:     0.1000,
    C4B:      0.0200,
    CHC:     -0.1100,
    HAM:      0.1500,
    C1C:      0.0300,
    NC:      -0.1800,
    C2C:      0.0200,
    CMC:     -0.2650,
    HM31:     0.0750,
    HM32:     0.0750,
    HM33:     0.0750,
    C3C:     -0.0500,
    CAC:     -0.1200,
    CBC:     -0.3000,
    HVC4:     0.1000,
    HVT4:     0.1000,
    C4C:      0.0200,
    CHD:     -0.1100,
    HBM:      0.1500,
    C1D:      0.0300,
    ND:      -0.1800,
    C2D:      0.0200,
    CMD:     -0.2650,
    HM51:     0.0750,
    HM52:     0.0750,
    HM53:     0.0750,
    C3D:     -0.0200,
    C4D:      0.0200,
    CHA:     -0.1100,
    HGM:      0.1500,
    CAD:     -0.1600,
    HP61:     0.1000,
    HP62:     0.1000,
    CBD:     -0.3000,
    HP63:     0.1000,
    HP64:     0.1000,
    CGD:      0.3000,
    O1D:     -0.5000,
    O2D:     -0.5000,
    }
