TRANSATOR_CLADE_TO_TAILORING_REACTIONS = {'NON_ELONGATING_DB': [('DUMMY_KR', None), ('DUMMY_DH', None)],
                                          'BETA_OH_KETO': [],
                                          'NON_ELONGATING_BETA_OH': [('DUMMY_KR', None)],
                                          'ALPHA_OH': [('DUMMY_AH', None)],
                                          'EDB': [('DUMMY_KR', None), ('DUMMY_EDH', None)],
                                          'ARST': [],
                                          'PYR': [('DUMMY_SC', None)],
                                          'ALPHAME_EDB': [('DUMMY_AMT', None), ('DUMMY_KR', None),
                                                                       ('DUMMY_EDH', None)],
                                          'OXI': [], 'AA': [],
                                          'ALPHAME_BETA_L_OH': [('DUMMY_AMT', None),
                                                                             ('DUMMY_KR', 'B1')],
                                          'NON_ELONGATING_BETA_L_OH': [('DUMMY_KR', 'B1')],
                                          'RED_SHDB': [('DUMMY_KR', None), ('DUMMY_GDH', None)],
                                          'DB': [('DUMMY_KR', None), ('DUMMY_DH', None)],
                                          'KETO': [],
                                          'NON_ELONGATING': [],
                                          'BETA_D_OH': [('DUMMY_KR', None)],
                                          'BETA_L_OH': [('DUMMY_KR', 'B1')], 'BR': [],
                                          'ALPHABETA_OH': [('DUMMY_AH', None), ('DUMMY_KR', None)],
                                          'UNST': [],
                                          'ST': [],
                                          'MEOST': [],
                                          'ACST': [],
                                          'ALPHAME': [('DUMMY_KR', None), ('DUMMY_DH', None),
                                                                   ('DUMMY_ER', None), ('DUMMY_AMT', None)],
                                          'BETA_D_OME': [('DUMMY_KR', None), ('DUMMY_OMT', None)],
                                          'NON_ELONGATING_PYR': [('DUMMY_SC', None)],
                                          'BETA_ME': [('DUMMY_KR', None), ('DUMMY_DH', None),
                                                                   ('DUMMY_ER', None), ('DUMMY_BMT', None)],
                                          'BETA_OH_EDB': [('DUMMY_KR', None)],
                                          'NON_ELONGATING_OXA': [],
                                          'LACST': [],
                                          'SHDB': [('DUMMY_KR', None), ('DUMMY_GDH', None)],
                                          'OUT': [],
                                          'BETA_OH': [('DUMMY_KR', None)],
                                          'ZDB': [('DUMMY_KR', None), ('DUMMY_ZDH', None)],
                                          'BETA_MEDB': [('DUMMY_KR', None), ('DUMMY_EDH', None),
                                                                     ('DUMMY_BMT', None)],
                                          'TRANS_AT_PKS': [], 'OXA': [],
                                          'ALPHAME_BETA_D_OH': [('DUMMY_ALMT', None), ('DUMMY_KR', 'A1')],
                                          'ALPHAME_BETAOH': [('DUMMY_AMT', None), ('DUMMY_KR', None)],
                                          'NON_ELONGATING_ALPHAME_EDB': [('DUMMY_AMT', None),
                                                                                      ('DUMMY_KR', None),
                                                                                      ('DUMMY_EDH', None)],
                                          'RED': [('DUMMY_KR', None), ('DUMMY_DH', None),
                                                                   ('DUMMY_ER', None)]}

# TODO: Map all these SMILES to names, make Enums for them
TRANSATOR_CLADE_TO_STARTER_SUBSTRATE = {'NON_ELONGATING_DB': 'ACETYL_COA',
                                        # TODO: choose SMILES
                                        'BETA_OH_KETO': 'ACETYL_COA',
                                        'NON_ELONGATING_BETA_OH': 'ACETYL_COA',
                                        'ALPHA_OH': 'ACETYL_COA',
                                        'EDB': "ACETYL_COA",
                                        'ARST': 'PHENYLACETYLCOA', 'PYR': 'ACETYL_COA',
                                        'ALPHAME_EDB': "ACETYL_COA",
                                        'OXI': 'ACETYL_COA', 'AA': 'GLYCINE',
                                        'ALPHAME_BETA_L_OH': "ACETYL_COA",
                                        'NON_ELONGATING_BETA_L_OH': "ACETYL_COA",
                                        'RED_SHDB': 'ACETYL_COA',
                                        'DB': "ACETYL_COA",
                                        'KETO': 'ACETYL_COA',
                                        'NON_ELONGATING': 'ACETYL_COA',
                                        'BETA_D_OH': "ACETYL_COA",
                                        'BETA_L_OH': "ACETYL_COA",
                                        'BR': 'ACETYL_COA',
                                        'ALPHABETA_OH': 'ACETYL_COA',
                                        'UNST': 'PROPIONYL_COA', 'ST': 'ACETYL_COA',
                                        'MEOST': 'METHOXYFORMYL_COA',
                                        'ACST': 'ACETYL_COA',
                                        'ALPHAME': 'ACETYL_COA',
                                        'BETA_D_OME': "MACETYL_COA",
                                        'NON_ELONGATING_PYR': 'ACETYL_COA',
                                        'BETA_ME': 'ACETYL_COA',
                                        'BETA_OH_EDB': 'ACETYL_COA',
                                        'NON_ELONGATING_OXA': 'ACETYL_COA',
                                        'LACST': 'LACTYL_COA',
                                        'SHDB': 'ACETYL_COA',
                                        'OUT': 'ACETYL_COA',
                                        'BETA_OH': "ACETYL_COA",
                                        'ZDB': 'ACETYL_COA',
                                        'BETA_MEDB': "ACETYL_COA",
                                        'TRANS_AT_PKS': 'ACETYL_COA', 'OXA': 'ACETYL_COA',
                                        'ALPHAME_BETA_D_OH': 'ACETYL_COA',
                                        'ALPHAME_BETAOH': 'ACETYL_COA',
                                        'NON_ELONGATING_ALPHAME_EDB': "ACETYL_COA",
                                        'RED': 'ACETYL_COA'}

TRANSATOR_CLADE_TO_ELONGATING = {'NON_ELONGATING_DB': False,
                                 'BETA_OH_KETO': True,
                                 'NON_ELONGATING_BETA_OH': False,
                                 'ALPHA_OH': True, 'EDB': True,
                                 'ARST': True, 'PYR': True,
                                 'ALPHAME_EDB': True, 'OXI': True,
                                 'AA': True, 'ALPHAME_BETA_L_OH': True,
                                 'NON_ELONGATING_BETA_L_OH': False,
                                 'RED_SHDB': True, 'DB': True,
                                 'KETO': True, 'NON_ELONGATING': False,
                                 'BETA_D_OH': True, 'BETA_L_OH': True,
                                 'BR': True, 'ALPHABETA_OH': True,
                                 'UNST': True, 'ST': True,
                                 'MEOST': True, 'ACST': True,
                                 'ALPHAME': True, 'BETA_D_OME': True,
                                 'NON_ELONGATING_PYR': False,
                                 'BETA_ME': True, 'BETA_OH_EDB': True,
                                 'NON_ELONGATING_OXA': False,
                                 'LACST': True,
                                 'SHDB': True, 'OUT': True,
                                 'BETA_OH': True, 'ZDB': True,
                                 'BETA_MEDB': True, 'TRANS_AT_PKS': True,
                                 'OXA': True, 'ALPHAME_BETA_D_OH': True,
                                 'ALPHAME_BETAOH': True,
                                 'NON_ELONGATING_ALPHAME_EDB': False,
                                 'RED': True}
