From 14ec360a193b1bc8f56a16a134e04677e3068d8f Mon Sep 17 00:00:00 2001 From: Amy He Date: Tue, 12 Nov 2024 11:07:36 -0800 Subject: [PATCH 01/44] minor fix to meeko.molsetup.Atom --- meeko/molsetup.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 9d9216b4..ec106242 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -11,6 +11,7 @@ import json import sys import warnings +from typing import Union import numpy as np import rdkit.Chem @@ -191,9 +192,9 @@ def add_molsetup( @dataclass class Atom: index: int - pdbinfo: str or PDBAtomInfo = DEFAULT_PDBINFO + pdbinfo: Union[str, PDBAtomInfo] = DEFAULT_PDBINFO charge: float = DEFAULT_CHARGE - coord: np.ndarray = field(default_factory=np.ndarray) + coord: np.ndarray = field(default_factory=lambda: np.zeros(3)) atomic_num: int = DEFAULT_ATOMIC_NUM atom_type: str = DEFAULT_ATOM_TYPE is_ignore: bool = DEFAULT_IS_IGNORE @@ -271,7 +272,7 @@ def from_json(obj: dict): @dataclass class Bond: - canon_id: (int, int) + canon_id: tuple[int, int] index1: int index2: int rotatable: bool = DEFAULT_BOND_ROTATABLE @@ -394,7 +395,7 @@ class RingClosureInfo: @dataclass class Restraint: atom_index: int - target_coords: (float, float, float) + target_coords: tuple[float, float, float] kcal_per_angstrom_square: float delay_angstroms: float @@ -508,7 +509,7 @@ def add_atom( self, atom_index: int = None, overwrite: bool = False, - pdbinfo: str or PDBAtomInfo = DEFAULT_PDBINFO, + pdbinfo: Union[str, PDBAtomInfo] = DEFAULT_PDBINFO, charge: float = DEFAULT_CHARGE, coord: np.ndarray = None, atomic_num: int = DEFAULT_ATOMIC_NUM, @@ -593,7 +594,7 @@ def add_atom( def add_pseudoatom( self, - pdbinfo: str or PDBAtomInfo = DEFAULT_PDBINFO, + pdbinfo: Union[str, PDBAtomInfo] = DEFAULT_PDBINFO, charge: float = DEFAULT_CHARGE, coord: np.ndarray = None, atom_type: str = DEFAULT_ATOM_TYPE, From 8780dd052acc7a26e3c2c10aa2cc0ac9615e0155 Mon Sep 17 00:00:00 2001 From: diogom Date: Wed, 27 Nov 2024 11:09:21 -0800 Subject: [PATCH 02/44] add cycle_break attribute to molsetup Bond --- meeko/macrocycle.py | 6 ++ meeko/molsetup.py | 20 ++++-- meeko/preparation.py | 10 ++- test/macrocycle_data/lorlatinib.mol | 106 ++++++++++++++++++++++++++++ test/macrocycle_test.py | 25 +++++++ 5 files changed, 160 insertions(+), 7 deletions(-) create mode 100644 test/macrocycle_data/lorlatinib.mol diff --git a/meeko/macrocycle.py b/meeko/macrocycle.py index d3cd947b..a342b603 100644 --- a/meeko/macrocycle.py +++ b/meeko/macrocycle.py @@ -36,6 +36,7 @@ def __init__( double_bond_penalty: float = DEFAULT_DOUBLE_BOND_PENALTY, max_breaks: int = DEFAULT_MAX_BREAKS, allow_break_atype_A: bool = False, + untyped: bool = False, ): """ Initialize macrocycle typer. @@ -50,6 +51,8 @@ def __init__( max_breaks: int allow_break_type_A: bool Allow breaking bonds involving atoms typed A, default is False. + untyped: bool + Does not use atom typing, any rotatable bond can break """ self._min_ring_size = min_ring_size self._max_ring_size = max_ring_size @@ -57,6 +60,7 @@ def __init__( self._double_bond_penalty = double_bond_penalty self.max_breaks = max_breaks self.allow_break_atype_A = allow_break_atype_A + self.untyped = untyped self.setup = None self.breakable_rings = None @@ -117,6 +121,8 @@ def _score_bond(self, bond: tuple[int, int]) -> int: bond = Bond.get_bond_id(bond[0], bond[1]) if not self.setup.bond_info[bond].rotatable: return -1 + if self.untyped: + return 100 atom_idx1, atom_idx2 = bond for i in (atom_idx1, atom_idx2): atype = self.setup.get_atom_type(i) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 9d9216b4..5ee79ed6 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -45,6 +45,7 @@ DEFAULT_GRAPH = [] DEFAULT_BOND_ROTATABLE = False +DEFAULT_BOND_CYCLE_BREAK = False DEFAULT_RING_CORNER_FLIP = False DEFAULT_RING_GRAPH = [] @@ -271,21 +272,19 @@ def from_json(obj: dict): @dataclass class Bond: - canon_id: (int, int) - index1: int - index2: int - rotatable: bool = DEFAULT_BOND_ROTATABLE def __init__( self, index1: int, index2: int, rotatable: bool = DEFAULT_BOND_ROTATABLE, + cycle_break: bool = DEFAULT_BOND_CYCLE_BREAK, ): self.canon_id = self.get_bond_id(index1, index2) self.index1 = index1 self.index2 = index2 self.rotatable = rotatable + self.cycle_break = cycle_break return @staticmethod @@ -332,14 +331,22 @@ def from_json(obj: dict): # Check that all the keys we expect are in the object dictionary as a safety measure expected_json_keys = {"canon_id", "index1", "index2", "rotatable"} - if set(obj.keys()) != expected_json_keys: + # the cycle break attribute was added after v0.6.1, so we are + # defaulting to the default to allow reading .json written + # with v0.6.0 and v0.6.0, at the expense of possibly having + # a macrocycle broken bond that will be incorrectly set with + # cycle_break=False, but JSON is used mostly for the receptor + # and we don't really use macrocycle breaking for the receptor + optional_json_keys = {"cycle_break"} + if set(obj.keys()) - optional_json_keys != expected_json_keys: return obj # Constructs a bond object from the provided keys. index1 = obj["index1"] index2 = obj["index2"] rotatable = obj["rotatable"] - output_bond = Bond(index1, index2, rotatable) + cycle_break = obj.get("cycle_break", DEFAULT_BOND_CYCLE_BREAK) + output_bond = Bond(index1, index2, rotatable, cycle_break) return output_bond @@ -2227,6 +2234,7 @@ def default(self, obj): "index1": obj.index1, "index2": obj.index2, "rotatable": obj.rotatable, + "cycle_break": obj.cycle_break, } return json.JSONEncoder.default(self, obj) diff --git a/meeko/preparation.py b/meeko/preparation.py index 86120e44..370b5df5 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -72,6 +72,7 @@ def __init__( hydrate=False, flexible_amides=False, rigid_macrocycles=False, + untyped_macrocycles=False, min_ring_size=meeko.macrocycle.DEFAULT_MIN_RING_SIZE, max_ring_size=meeko.macrocycle.DEFAULT_MAX_RING_SIZE, keep_chorded_rings=False, @@ -126,6 +127,7 @@ def __init__( self.hydrate = hydrate self.flexible_amides = flexible_amides self.rigid_macrocycles = rigid_macrocycles + self.untyped_macrocycles = untyped_macrocycles self.min_ring_size = min_ring_size self.max_ring_size = max_ring_size self.keep_chorded_rings = keep_chorded_rings @@ -184,6 +186,7 @@ def __init__( self.max_ring_size, self.double_bond_penalty, allow_break_atype_A=self.macrocycle_allow_A, + untyped=self.untyped_macrocycles, ) self._water_builder = HydrateMoleculeLegacy() self._classes_setup = {Chem.rdchem.Mol: RDKitMoleculeSetup} @@ -305,7 +308,12 @@ def calc_flex( setup.flexibility_model = flex_model # add G pseudo atoms and set CG types - update_closure_atoms(setup, bonds_to_break, glue_pseudo_atoms) + if not self.untyped_macrocycles: + update_closure_atoms(setup, bonds_to_break, glue_pseudo_atoms) + + for atom1, atom2 in bonds_to_break: + bond_id = Bond.get_bond_id(atom1, atom2) + setup.bond_info[bond_id].cycle_break = True return diff --git a/test/macrocycle_data/lorlatinib.mol b/test/macrocycle_data/lorlatinib.mol new file mode 100644 index 00000000..6ac3b48f --- /dev/null +++ b/test/macrocycle_data/lorlatinib.mol @@ -0,0 +1,106 @@ +_i0 + RDKit 3D + + 49 52 0 0 0 0 0 0 0 0999 V2000 + 2.0287 0.5847 -2.8580 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.5178 1.0230 -1.4775 C 0 0 1 0 0 0 0 0 0 0 0 0 + 1.8039 2.1855 -1.0050 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.7602 1.9598 -0.1565 C 0 0 0 0 0 0 0 0 0 0 0 0 + -0.4054 1.3343 -0.5803 C 0 0 0 0 0 0 0 0 0 0 0 0 + -1.4241 1.1052 0.3389 C 0 0 0 0 0 0 0 0 0 0 0 0 + -1.2623 1.6088 1.6263 C 0 0 0 0 0 0 0 0 0 0 0 0 + -0.1633 2.2777 2.0483 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.8288 2.4468 1.1546 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9774 3.0843 1.6275 N 0 0 0 0 0 0 0 0 0 0 0 0 + -2.5429 0.2554 -0.0078 C 0 0 0 0 0 0 0 0 0 0 0 0 + -2.5683 -1.1293 -0.3755 C 0 0 0 0 0 0 0 0 0 0 0 0 + -1.4509 -2.1347 -0.5607 C 0 0 0 0 0 0 0 0 0 0 0 0 + -0.1849 -1.7343 0.0593 N 0 0 0 0 0 0 0 0 0 0 0 0 + -0.1318 -1.7409 1.5196 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.9456 -1.6441 -0.7639 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.9295 -1.8994 -1.9639 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.2456 -1.2536 -0.1647 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.8248 -2.2022 0.7057 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.0045 -1.9180 1.3883 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6125 -0.6902 1.1947 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7392 -0.3992 1.8571 F 0 0 0 0 0 0 0 0 0 0 0 0 + 4.0837 0.2356 0.3000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.9075 -0.0357 -0.4407 C 0 0 0 0 0 0 0 0 0 0 0 0 + -3.8322 -1.5421 -0.5749 N 0 0 0 0 0 0 0 0 0 0 0 0 + -4.5864 -0.4479 -0.3709 N 0 0 0 0 0 0 0 0 0 0 0 0 + -6.0209 -0.5372 -0.5309 C 0 0 0 0 0 0 0 0 0 0 0 0 + -3.8650 0.6556 -0.0159 C 0 0 0 0 0 0 0 0 0 0 0 0 + -4.4316 1.9274 0.2613 C 0 0 0 0 0 0 0 0 0 0 0 0 + -4.9252 2.9499 0.4950 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.9823 0.2838 -2.8717 H 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6373 -0.2332 -3.2566 H 0 0 0 0 0 0 0 0 0 0 0 0 + 2.0917 1.4280 -3.5564 H 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4903 1.4646 -1.7456 H 0 0 0 0 0 0 0 0 0 0 0 0 + -0.5136 0.9899 -1.6014 H 0 0 0 0 0 0 0 0 0 0 0 0 + -2.0157 1.4573 2.3952 H 0 0 0 0 0 0 0 0 0 0 0 0 + 2.2724 3.8074 0.9805 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1.7720 3.4374 2.5572 H 0 0 0 0 0 0 0 0 0 0 0 0 + -1.3265 -2.2962 -1.6370 H 0 0 0 0 0 0 0 0 0 0 0 0 + -1.7367 -3.0982 -0.1209 H 0 0 0 0 0 0 0 0 0 0 0 0 + 0.1176 -2.7534 1.8503 H 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6194 -1.0400 1.8902 H 0 0 0 0 0 0 0 0 0 0 0 0 + -1.1006 -1.4673 1.9447 H 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3465 -3.1678 0.8574 H 0 0 0 0 0 0 0 0 0 0 0 0 + 4.4448 -2.6381 2.0701 H 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6138 1.1780 0.1750 H 0 0 0 0 0 0 0 0 0 0 0 0 + -6.2915 -1.5507 -0.8390 H 0 0 0 0 0 0 0 0 0 0 0 0 + -6.3284 0.1769 -1.2988 H 0 0 0 0 0 0 0 0 0 0 0 0 + -6.4900 -0.3038 0.4282 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 + 2 3 1 0 + 3 4 1 0 + 4 5 1 0 + 5 6 2 0 + 6 7 1 0 + 7 8 2 0 + 8 9 1 0 + 9 10 1 0 + 6 11 1 0 + 11 12 1 0 + 12 13 1 0 + 13 14 1 0 + 14 15 1 0 + 14 16 1 0 + 16 17 2 0 + 16 18 1 0 + 18 19 2 0 + 19 20 1 0 + 20 21 2 0 + 21 22 1 0 + 21 23 1 0 + 23 24 2 0 + 12 25 2 0 + 25 26 1 0 + 26 27 1 0 + 26 28 1 0 + 28 29 1 0 + 29 30 3 0 + 24 2 1 0 + 9 4 2 0 + 28 11 2 0 + 24 18 1 0 + 1 31 1 0 + 1 32 1 0 + 1 33 1 0 + 2 34 1 6 + 5 35 1 0 + 7 36 1 0 + 10 37 1 0 + 10 38 1 0 + 13 39 1 0 + 13 40 1 0 + 15 41 1 0 + 15 42 1 0 + 15 43 1 0 + 19 44 1 0 + 20 45 1 0 + 23 46 1 0 + 27 47 1 0 + 27 48 1 0 + 27 49 1 0 +M END diff --git a/test/macrocycle_test.py b/test/macrocycle_test.py index 9bae4b79..acd0988a 100644 --- a/test/macrocycle_test.py +++ b/test/macrocycle_test.py @@ -76,3 +76,28 @@ def run(molname): def test_all(): for molname in num_cycle_breaks: run(molname) + +def test_untyped_macrocycle(): + fn = str(workdir / "macrocycle_data" / "lorlatinib.mol") + mol = Chem.MolFromMolFile(fn, removeHs=False) + + # type based, can only break C-C bonds, but we have none + mk_prep_typed = MoleculePreparation() + molsetup_typed = mk_prep_typed(mol)[0] + count_rotatable = 0 + count_broken = 0 + for bond_id, bond_info in molsetup_typed.bond_info.items(): + count_rotatable += bond_info.rotatable + count_broken += bond_info.cycle_break + assert count_rotatable == 2 + assert count_broken == 0 + + mk_prep_untyped = MoleculePreparation(untyped_macrocycles=True) + molsetup_untyped = mk_prep_untyped(mol)[0] + count_rotatable = 0 + count_broken = 0 + for bond_id, bond_info in molsetup_untyped.bond_info.items(): + count_rotatable += bond_info.rotatable + count_broken += bond_info.cycle_break + assert count_rotatable == 10 + assert count_broken == 1 From 07bc6f740e43c518c530ce4d1a83253df4d6b3eb Mon Sep 17 00:00:00 2001 From: Amy He Date: Wed, 27 Nov 2024 12:19:58 -0800 Subject: [PATCH 03/44] add option rename_atoms in prepare --- meeko/preparation.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/meeko/preparation.py b/meeko/preparation.py index 86120e44..67cd3690 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -439,8 +439,8 @@ def get_defaults_dict(cls): defaults[key] = sig.parameters[key].default return defaults - def __call__(self, *args): - return self.prepare(*args) + def __call__(self, *args, **kwargs): + return self.prepare(*args, **kwargs) def prepare( self, @@ -450,6 +450,7 @@ def prepare( delete_ring_bonds=None, glue_pseudo_atoms=None, conformer_id=-1, + rename_atoms=False, ): """ Create an RDKitMoleculeSetup from an RDKit Mol object. @@ -548,6 +549,19 @@ def prepare( glue_pseudo_atoms, ) + # 5 . rename atoms, new names will be original name + idx (1-based) + if rename_atoms is not False: + for idx, atom in enumerate(setup.atoms): + orig_pdbinfo = atom.pdbinfo + orig_name = orig_pdbinfo.name.strip() + new_name = f"{orig_name}{idx+1}" + if len(new_name) > 4: + raise Warning(f"Attempted to rename atom with original name {orig_name} to {new_name}. " + eol + + f"But the new name is too long (> 4 characters). The original name will be kept. ") + else: + new_atom_info = orig_pdbinfo._replace(name=new_name) + atom.pdbinfo = new_atom_info + if self.reactive_smarts is None: setups = [setup] else: From 1b52b64f963bd4a7043d80be3e6f4849380bd462 Mon Sep 17 00:00:00 2001 From: Amy He Date: Wed, 27 Nov 2024 14:49:34 -0800 Subject: [PATCH 04/44] add rename_atoms to MoleculePreparation and CLI ligprep script --- meeko/cli/mk_prepare_ligand.py | 9 ++++++++- meeko/preparation.py | 5 ++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index 834dac8d..08fce97a 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -235,6 +235,12 @@ def cmd_lineparser(): action="store_true", help="do not write smiles as remark to pdbqt", ) + config_group.add_argument( + "--rename_atoms", + dest="rename_atoms", + action="store_true", + help="rename atoms: the new name will be the original name and its (1-based) index in smiles", + ) reactive_group = parser.add_argument_group("Reactive docking") reactive_group.add_argument( "--reactive_smarts", help="SMARTS pattern for reactive group" @@ -587,6 +593,7 @@ def main(): cov_lig.mol, root_atom_index=root_atom_index, not_terminal_atoms=[root_atom_index], + rename_atoms=args.rename_atoms, ) chain, res, num = cov_lig.res_id suffixes = output.get_suffixes(molsetups) @@ -610,7 +617,7 @@ def main(): print(error_msg, file=sys.stderr) else: - molsetups = preparator.prepare(mol) + molsetups = preparator.prepare(mol, rename_atoms=args.rename_atoms) if len(molsetups) > 1: output.is_multimol = True suffixes = output.get_suffixes(molsetups) diff --git a/meeko/preparation.py b/meeko/preparation.py index 67cd3690..3b33fe01 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -91,6 +91,7 @@ def __init__( reactive_smarts_idx=None, add_index_map=False, remove_smiles=False, + rename_atoms=False, ): """ @@ -119,6 +120,7 @@ def __init__( reactive_smarts_idx add_index_map remove_smiles + rename_atoms """ self.deprecated_setup_access = None @@ -177,6 +179,7 @@ def __init__( self.reactive_smarts_idx = reactive_smarts_idx self.add_index_map = add_index_map self.remove_smiles = remove_smiles + self.rename_atoms = rename_atoms self._bond_typer = BondTyperLegacy() self._macrocycle_typer = FlexMacrocycle( @@ -554,7 +557,7 @@ def prepare( for idx, atom in enumerate(setup.atoms): orig_pdbinfo = atom.pdbinfo orig_name = orig_pdbinfo.name.strip() - new_name = f"{orig_name}{idx+1}" + new_name = f"{orig_name}{atom.index+1}" if len(new_name) > 4: raise Warning(f"Attempted to rename atom with original name {orig_name} to {new_name}. " + eol + f"But the new name is too long (> 4 characters). The original name will be kept. ") From 64ef1343b1685cd87820800bf4ee33a8d5268640 Mon Sep 17 00:00:00 2001 From: Amy He Date: Wed, 27 Nov 2024 14:52:46 -0800 Subject: [PATCH 05/44] correct help message --- meeko/cli/mk_prepare_ligand.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index 08fce97a..b31dc17d 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -239,7 +239,7 @@ def cmd_lineparser(): "--rename_atoms", dest="rename_atoms", action="store_true", - help="rename atoms: the new name will be the original name and its (1-based) index in smiles", + help="rename atoms: the new name will be the original name and its (1-based) index in RDKit mol", ) reactive_group = parser.add_argument_group("Reactive docking") reactive_group.add_argument( From e8cc1f5d9ae05bd829f151df5929fbbf9e690735 Mon Sep 17 00:00:00 2001 From: Amy He Date: Wed, 27 Nov 2024 15:02:30 -0800 Subject: [PATCH 06/44] correct help msg; minor fix --- meeko/cli/mk_prepare_ligand.py | 2 +- meeko/preparation.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index b31dc17d..877dfa65 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -239,7 +239,7 @@ def cmd_lineparser(): "--rename_atoms", dest="rename_atoms", action="store_true", - help="rename atoms: the new name will be the original name and its (1-based) index in RDKit mol", + help="rename atoms: the new name will be the original name and its (1-based) index in MoleculeSetup", ) reactive_group = parser.add_argument_group("Reactive docking") reactive_group.add_argument( diff --git a/meeko/preparation.py b/meeko/preparation.py index 3b33fe01..c51378ba 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -554,7 +554,7 @@ def prepare( # 5 . rename atoms, new names will be original name + idx (1-based) if rename_atoms is not False: - for idx, atom in enumerate(setup.atoms): + for atom in setup.atoms: orig_pdbinfo = atom.pdbinfo orig_name = orig_pdbinfo.name.strip() new_name = f"{orig_name}{atom.index+1}" From 8a3a7103214740ab2b4b00d401106bb54c43c8ae Mon Sep 17 00:00:00 2001 From: Amy He Date: Wed, 27 Nov 2024 15:19:48 -0800 Subject: [PATCH 07/44] remove rename_atoms from MoleculePreparation --- meeko/preparation.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/meeko/preparation.py b/meeko/preparation.py index c51378ba..a94269b5 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -91,7 +91,6 @@ def __init__( reactive_smarts_idx=None, add_index_map=False, remove_smiles=False, - rename_atoms=False, ): """ @@ -120,7 +119,6 @@ def __init__( reactive_smarts_idx add_index_map remove_smiles - rename_atoms """ self.deprecated_setup_access = None @@ -179,7 +177,6 @@ def __init__( self.reactive_smarts_idx = reactive_smarts_idx self.add_index_map = add_index_map self.remove_smiles = remove_smiles - self.rename_atoms = rename_atoms self._bond_typer = BondTyperLegacy() self._macrocycle_typer = FlexMacrocycle( From e27ca1cc458e34c0ed7bbd34b7df21a4dc9ed1e4 Mon Sep 17 00:00:00 2001 From: Amy He Date: Fri, 29 Nov 2024 16:09:31 -0800 Subject: [PATCH 08/44] update templates -> 7924c7f --- meeko/data/residue_chem_templates.json | 1082 ++++++++++++++++++------ 1 file changed, 839 insertions(+), 243 deletions(-) diff --git a/meeko/data/residue_chem_templates.json b/meeko/data/residue_chem_templates.json index e291f86c..3c913ef9 100644 --- a/meeko/data/residue_chem_templates.json +++ b/meeko/data/residue_chem_templates.json @@ -33,114 +33,115 @@ "VAL": ["VAL", "NVAL", "CVAL"], "TRP": ["TRP", "NTRP", "CTRP"], "TYR": ["TYR", "NTYR", "CTYR"], - "HYP": ["HYP", "HYP_fl-ccd"], - "MTB": ["MTB", "MTB_fl-ccd"], - "NLE": ["NLE", "NLE_N", "NLE_C", "NLE_fl-ccd", "NLE_C-ccd"], - "NHE": ["NHE", "NHE_fl-ccd"], - "S1P": ["S1P", "S1P_N", "S1P_C", "S1P_fl-ccd"], - "SEP": ["SEP", "SEP_N", "SEP_C", "SEP_fl-ccd", "SEP_C-ccd"], - "T1P": ["T1P", "T1P_N", "T1P_C", "T1P_fl-ccd"], - "TPO": ["TPO", "TPO_N", "TPO_C", "TPO_fl-ccd", "TPO_C-ccd"], - "Y1P": ["Y1P", "Y1P_N", "Y1P_C", "Y1P_fl-ccd"], - "PTR": ["PTR", "PTR_N", "PTR_C", "PTR_fl-ccd", "PTR_C-ccd"], - "H1D": ["H1D", "H1D_N", "H1D_C", "H1D_fl-ccd", "H1D-ccd", "H1D_N-ccd", "H1D_C-ccd"], - "H2D": ["H2D", "H2D_N", "H2D_C", "H2D_fl-ccd"], - "H2E": ["H2E", "H2E_N", "H2E_C", "H2E_fl-ccd"], - "ALY": ["ALY", "ALY_N", "ALY_C", "ALY_fl-ccd", "ALY_C-ccd"], - "AZF": ["AZF", "AZF_N", "AZF_C", "AZF_fl-ccd"], - "CNX": ["CNX", "CNX_N", "CNX_C", "CNX_fl-ccd"], - "CN": ["CN_", "CN_fl-ccd"], - "OHE": ["OHE_", "OHE_fl-ccd"], - "AMP": ["AMP_", "AMP_fl-ccd", "AMP_-ccd", "AMP_3-ccd", "AMP_5p-ccd", "AMP_5-ccd"], - "CMP": ["CMP_", "CMP_fl-ccd"], - "GMP": ["GMP_", "GMP_fl-ccd"], - "UMP": ["UMP_", "UMP_fl-ccd", "UMP_-ccd", "UMP_3-ccd", "UMP_5p-ccd", "UMP_5-ccd"], - "DAN": ["DAN_", "DAN_fl-ccd"], - "DCN": ["DCN_", "DCN_fl-ccd"], - "DGN": ["DGN_", "DGN_fl-ccd", "DGN-ccd", "DGN_N-ccd", "DGN_C-ccd"], - "DTN": ["DTN_", "DTN_fl-ccd"], - "13P": ["13P_", "13P_3", "13P_5p", "13P_5", "13P_fl-ccd"], - "1MA": ["1MA_", "1MA_3", "1MA_5p", "1MA_5", "1MA_fl-ccd", "1MA_-ccd", "1MA_3-ccd", "1MA_5p-ccd", "1MA_5-ccd"], - "1MG": ["1MG_", "1MG_3", "1MG_5p", "1MG_5", "1MG_fl-ccd", "1MG_5p-ccd"], - "1MI": ["1MI_", "1MI_3", "1MI_5p", "1MI_5", "1MI_fl-ccd"], - "26A": ["26A_", "26A_3", "26A_5p", "26A_5", "26A_fl-ccd"], - "27G": ["27G_", "27G_3", "27G_5p", "27G_5", "27G_fl-ccd"], - "2MA": ["2MA_", "2MA_3", "2MA_5p", "2MA_5", "2MA_fl-ccd", "2MA_-ccd", "2MA_3-ccd", "2MA_5p-ccd", "2MA_5-ccd"], - "2MG": ["2MG_", "2MG_3", "2MG_5p", "2MG_5", "2MG_fl-ccd", "2MG_5p-ccd"], - "2RG": ["2RG_", "2RG_3", "2RG_5p", "2RG_5", "2RG_fl-ccd"], - "3AU": ["3AU_", "3AU_3", "3AU_5p", "3AU_5", "3AU_fl-ccd", "3AU-ccd", "3AU_N-ccd", "3AU_C-ccd", "3AU_-ccd", "3AU_3-ccd", "3AU_5p-ccd", "3AU_5-ccd"], - "3MC": ["3MC_", "3MC_3", "3MC_5p", "3MC_5", "3MC_fl-ccd"], - "3MP": ["3MP_", "3MP_3", "3MP_5p", "3MP_5", "3MP_fl-ccd"], - "3MU": ["3MU_", "3MU_3", "3MU_5p", "3MU_5", "3MU_fl-ccd", "3MU_5p-ccd"], - "4AC": ["4AC_", "4AC_3", "4AC_5p", "4AC_5", "4AC_fl-ccd", "4AC_5p-ccd"], - "4MC": ["4MC_", "4MC_3", "4MC_5p", "4MC_5", "4MC_fl-ccd"], - "5CU": ["5CU_", "5CU_3", "5CU_5p", "5CU_5", "5CU_fl-ccd"], - "5DU": ["5DU_", "5DU_3", "5DU_5p", "5DU_5", "5DU_fl-ccd"], - "5FC": ["5FC_", "5FC_3", "5FC_5p", "5FC_5", "5FC_fl-ccd", "5FC_-ccd", "5FC_3-ccd", "5FC_5p-ccd", "5FC_5-ccd"], - "5HU": ["5HU_", "5HU_3", "5HU_5p", "5HU_5", "5HU_fl-ccd", "5HU_-ccd", "5HU_3-ccd", "5HU_5p-ccd", "5HU_5-ccd"], - "5MC": ["5MC_", "5MC_3", "5MC_5p", "5MC_5", "5MC_fl-ccd", "5MC_5p-ccd"], - "5MU": ["5MU_", "5MU_3", "5MU_5p", "5MU_5", "5MU_fl-ccd", "5MU_5p-ccd"], - "66A": ["66A_", "66A_3", "66A_5p", "66A_5", "66A_fl-ccd"], - "6GA": ["6GA_", "6GA_3", "6GA_5p", "6GA_5", "6GA_fl-ccd"], - "6IA": ["6IA_", "6IA_3", "6IA_5p", "6IA_5", "6IA_fl-ccd", "6IA_-ccd", "6IA_3-ccd", "6IA_5p-ccd", "6IA_5-ccd"], - "6MA": ["6MA_", "6MA_3", "6MA_5p", "6MA_5", "6MA_fl-ccd", "6MA_-ccd", "6MA_3-ccd", "6MA_5p-ccd", "6MA_5-ccd"], - "6TA": ["6TA_", "6TA_3", "6TA_5p", "6TA_5", "6TA_fl-ccd"], - "7MG": ["7MG_", "7MG_3", "7MG_5p", "7MG_5", "7MG_fl-ccd", "7MG_-ccd", "7MG_3-ccd", "7MG_5p-ccd", "7MG_5-ccd"], - "BCU": ["BCU_", "BCU_3", "BCU_5p", "BCU_5", "BCU_fl-ccd"], - "BUG": ["BUG_", "BUG_3", "BUG_5p", "BUG_5", "BUG_fl-ccd", "BUG-ccd", "BUG_N-ccd", "BUG_C-ccd"], - "CMU": ["CMU_", "CMU_3", "CMU_5p", "CMU_5", "CMU_fl-ccd"], - "DAG": ["DAG_", "DAG_3", "DAG_5p", "DAG_5", "DAG_fl-ccd"], - "DHU": ["DHU_", "DHU_3", "DHU_5p", "DHU_5", "DHU_fl-ccd", "DHU_5p-ccd"], - "DMA": ["DMA_", "DMA_3", "DMA_5p", "DMA_5", "DMA_fl-ccd"], - "DMG": ["DMG_", "DMG_3", "DMG_5p", "DMG_5", "DMG_fl-ccd"], - "DMU": ["DMU_", "DMU_3", "DMU_5p", "DMU_5", "DMU_fl-ccd"], - "DWG": ["DWG_", "DWG_3", "DWG_5p", "DWG_5", "DWG_fl-ccd"], - "EQG": ["EQG_", "EQG_3", "EQG_5p", "EQG_5", "EQG_fl-ccd"], - "HCU": ["HCU_", "HCU_3", "HCU_5p", "HCU_5", "HCU_fl-ccd"], - "HIA": ["HIA_", "HIA_3", "HIA_5p", "HIA_5", "HIA_fl-ccd"], - "HMC": ["HMC_", "HMC_3", "HMC_5p", "HMC_5", "HMC_fl-ccd"], - "HNA": ["HNA_", "HNA_3", "HNA_5p", "HNA_5", "HNA_fl-ccd"], - "HWG": ["HWG_", "HWG_3", "HWG_5p", "HWG_5", "HWG_fl-ccd"], - "INO": ["INO_", "INO_3", "INO_5p", "INO_5", "INO_fl-ccd"], - "IWG": ["IWG_", "IWG_3", "IWG_5p", "IWG_5", "IWG_fl-ccd"], - "K2C": ["K2C_", "K2C_3", "K2C_5p", "K2C_5", "K2C_fl-ccd"], - "M1G": ["M1G_", "M1G_3", "M1G_5p", "M1G_5", "M1G_fl-ccd", "M1G_-ccd", "M1G_3-ccd", "M1G_5p-ccd", "M1G_5-ccd"], - "M2A": ["M2A_", "M2A_3", "M2A_5p", "M2A_5", "M2A_fl-ccd", "M2A_5p-ccd"], - "M3U": ["M3U_", "M3U_3", "M3U_5p", "M3U_5", "M3U_fl-ccd"], - "M4C": ["M4C_", "M4C_3", "M4C_5p", "M4C_5", "M4C_fl-ccd", "M4C_5p-ccd"], - "MAU": ["MAU_", "MAU_3", "MAU_5p", "MAU_5", "MAU_fl-ccd"], - "MCU": ["MCU_", "MCU_3", "MCU_5p", "MCU_5", "MCU_fl-ccd"], - "MEU": ["MEU_", "MEU_3", "MEU_5p", "MEU_5", "MEU_fl-ccd", "MEU_C-ccd"], - "MFC": ["MFC_", "MFC_3", "MFC_5p", "MFC_5", "MFC_fl-ccd"], - "MMA": ["MMA_", "MMA_3", "MMA_5p", "MMA_5", "MMA_fl-ccd"], - "MMG": ["MMG_", "MMG_3", "MMG_5p", "MMG_5", "MMG_fl-ccd"], - "MMI": ["MMI_", "MMI_3", "MMI_5p", "MMI_5", "MMI_fl-ccd"], - "MMU": ["MMU_", "MMU_3", "MMU_5p", "MMU_5", "MMU_fl-ccd"], - "MRA": ["MRA_", "MRA_3", "MRA_5p", "MRA_5", "MRA_fl-ccd"], - "MRC": ["MRC_", "MRC_3", "MRC_5p", "MRC_5", "MRC_fl-ccd"], - "MRG": ["MRG_", "MRG_3", "MRG_5p", "MRG_5", "MRG_fl-ccd", "MRG_-ccd", "MRG_3-ccd", "MRG_5p-ccd", "MRG_5-ccd"], - "MRI": ["MRI_", "MRI_3", "MRI_5p", "MRI_5", "MRI_fl-ccd"], - "MRP": ["MRP_", "MRP_3", "MRP_5p", "MRP_5", "MRP_fl-ccd"], - "MRU": ["MRU_", "MRU_3", "MRU_5p", "MRU_5", "MRU_fl-ccd"], - "MTA": ["MTA_", "MTA_3", "MTA_5p", "MTA_5", "MTA_fl-ccd"], - "MTG": ["MTG_", "MTG_3", "MTG_5p", "MTG_5", "MTG_fl-ccd"], - "N2G": ["N2G_", "N2G_3", "N2G_5p", "N2G_5", "N2G_fl-ccd", "N2G_-ccd", "N2G_3-ccd", "N2G_5p-ccd", "N2G_5-ccd"], - "OAU": ["OAU_", "OAU_3", "OAU_5p", "OAU_5", "OAU_fl-ccd"], - "OCU": ["OCU_", "OCU_3", "OCU_5p", "OCU_5", "OCU_fl-ccd"], - "OEU": ["OEU_", "OEU_3", "OEU_5p", "OEU_5", "OEU_fl-ccd"], - "OMU": ["OMU_", "OMU_3", "OMU_5p", "OMU_5", "OMU_fl-ccd", "OMU_-ccd", "OMU_3-ccd", "OMU_5p-ccd", "OMU_5-ccd"], - "PBG": ["PBG_", "PBG_3", "PBG_5p", "PBG_5", "PBG_fl-ccd"], - "PSU": ["PSU_", "PSU_3", "PSU_5p", "PSU_5", "PSU_fl-ccd", "PSU_5p-ccd"], - "QGG": ["QGG_", "QGG_3", "QGG_5p", "QGG_5", "QGG_fl-ccd"], - "QMG": ["QMG_", "QMG_3", "QMG_5p", "QMG_5", "QMG_fl-ccd"], - "QUG": ["QUG_", "QUG_3", "QUG_5p", "QUG_5", "QUG_fl-ccd"], - "SIA": ["SIA_", "SIA_3", "SIA_5p", "SIA_5", "SIA_fl-ccd"], - "SMA": ["SMA_", "SMA_3", "SMA_5p", "SMA_5", "SMA_fl-ccd"], - "SPA": ["SPA_", "SPA_3", "SPA_5p", "SPA_5", "SPA_fl-ccd"], - "STA": ["STA_", "STA_3", "STA_5p", "STA_5", "STA_fl-ccd"], - "WBG": ["WBG_", "WBG_3", "WBG_5p", "WBG_5", "WBG_fl-ccd"], - "WMG": ["WMG_", "WMG_3", "WMG_5p", "WMG_5", "WMG_fl-ccd"] - }, + "HYP": ["HYP_fl", "HYP", "HYP_N", "HYP_C", "HYP_fl-ccd"], + "MTB": ["MTB_fl", "MTB_fl-ccd"], + "NLE": ["NLE_fl", "NLE", "NLE_N", "NLE_C", "NLE_fl-ccd", "NLE_C-ccd"], + "NHE": ["NHE_fl", "NHE_fl-ccd"], + "S1P": ["S1P_fl", "S1P", "S1P_N", "S1P_C", "S1P_fl-ccd"], + "SEP": ["SEP_fl", "SEP", "SEP_N", "SEP_C", "SEP_fl-ccd", "SEP_C-ccd"], + "T1P": ["T1P_fl", "T1P", "T1P_N", "T1P_C", "T1P_fl-ccd"], + "TPO": ["TPO_fl", "TPO", "TPO_N", "TPO_C", "TPO_fl-ccd", "TPO_C-ccd"], + "Y1P": ["Y1P_fl", "Y1P", "Y1P_N", "Y1P_C", "Y1P_fl-ccd"], + "PTR": ["PTR_fl", "PTR", "PTR_N", "PTR_C", "PTR_fl-ccd", "PTR_C-ccd"], + "H1D": ["H1D_fl", "H1D", "H1D_N", "H1D_C", "H1D_fl-ccd", "H1D-ccd", "H1D_N-ccd", "H1D_C-ccd"], + "H2D": ["H2D_fl", "H2D", "H2D_N", "H2D_C", "H2D_fl-ccd"], + "H2E": ["H2E_fl", "H2E", "H2E_N", "H2E_C", "H2E_fl-ccd"], + "ALY": ["ALY_fl", "ALY", "ALY_N", "ALY_C", "ALY_fl-ccd", "ALY_C-ccd"], + "AZF": ["AZF_fl", "AZF", "AZF_N", "AZF_C", "AZF_fl-ccd"], + "CNX": ["CNX_fl", "CNX", "CNX_N", "CNX_C", "CNX_fl-ccd"], + "CYF": ["CYF_fl", "CYF", "CYF_N", "CYF_C", "CYF_fl-ccd"], + "CN": ["CN_fl", "CN_", "CN_fl-ccd"], + "OHE": ["OHE_fl", "OHE_fl-ccd"], + "AMP": ["AMP_fl", "AMP_", "AMP_3", "AMP_5p", "AMP_5", "AMP_fl-ccd", "AMP_-ccd", "AMP_3-ccd", "AMP_5p-ccd", "AMP_5-ccd"], + "CMP": ["CMP_fl", "CMP_", "CMP_3", "CMP_5p", "CMP_5", "CMP_fl-ccd"], + "GMP": ["GMP_fl", "GMP_", "GMP_3", "GMP_5p", "GMP_5", "GMP_fl-ccd"], + "UMP": ["UMP_fl", "UMP_", "UMP_3", "UMP_5p", "UMP_5", "UMP_fl-ccd", "UMP_-ccd", "UMP_3-ccd", "UMP_5p-ccd", "UMP_5-ccd"], + "DAN": ["DAN_fl", "DAN_", "DAN_fl-ccd"], + "DCN": ["DCN_fl", "DCN_", "DCN_fl-ccd"], + "DGN": ["DGN_fl", "DGN_", "DGN_fl-ccd", "DGN-ccd", "DGN_N-ccd", "DGN_C-ccd"], + "DTN": ["DTN_fl", "DTN_", "DTN_fl-ccd"], + "13P": ["13P_fl", "13P_", "13P_3", "13P_5p", "13P_5", "13P_fl-ccd"], + "1MA": ["1MA_fl", "1MA_", "1MA_3", "1MA_5p", "1MA_5", "1MA_fl-ccd", "1MA_-ccd", "1MA_3-ccd", "1MA_5p-ccd", "1MA_5-ccd"], + "1MG": ["1MG_fl", "1MG_", "1MG_3", "1MG_5p", "1MG_5", "1MG_fl-ccd", "1MG_5p-ccd"], + "1MI": ["1MI_fl", "1MI_", "1MI_3", "1MI_5p", "1MI_5", "1MI_fl-ccd"], + "26A": ["26A_fl", "26A_", "26A_3", "26A_5p", "26A_5", "26A_fl-ccd"], + "27G": ["27G_fl", "27G_", "27G_3", "27G_5p", "27G_5", "27G_fl-ccd"], + "2MA": ["2MA_fl", "2MA_", "2MA_3", "2MA_5p", "2MA_5", "2MA_fl-ccd", "2MA_-ccd", "2MA_3-ccd", "2MA_5p-ccd", "2MA_5-ccd"], + "2MG": ["2MG_fl", "2MG_", "2MG_3", "2MG_5p", "2MG_5", "2MG_fl-ccd", "2MG_5p-ccd"], + "2RG": ["2RG_fl", "2RG_fl-ccd"], + "3AU": ["3AU_fl", "3AU_", "3AU_3", "3AU_5p", "3AU_5", "3AU_fl-ccd", "3AU-ccd", "3AU_N-ccd", "3AU_C-ccd", "3AU_-ccd", "3AU_3-ccd", "3AU_5p-ccd", "3AU_5-ccd"], + "3MC": ["3MC_fl", "3MC_", "3MC_3", "3MC_5p", "3MC_5", "3MC_fl-ccd"], + "3MP": ["3MP_fl", "3MP_", "3MP_3", "3MP_5p", "3MP_5", "3MP_fl-ccd"], + "3MU": ["3MU_fl", "3MU_", "3MU_3", "3MU_5p", "3MU_5", "3MU_fl-ccd", "3MU_5p-ccd"], + "4AC": ["4AC_fl", "4AC_", "4AC_3", "4AC_5p", "4AC_5", "4AC_fl-ccd", "4AC_5p-ccd"], + "4MC": ["4MC_fl", "4MC_", "4MC_3", "4MC_5p", "4MC_5", "4MC_fl-ccd"], + "5CU": ["5CU_fl", "5CU_", "5CU_3", "5CU_5p", "5CU_5", "5CU_fl-ccd"], + "5DU": ["5DU_fl", "5DU_", "5DU_3", "5DU_5p", "5DU_5", "5DU_fl-ccd"], + "5FC": ["5FC_fl", "5FC_", "5FC_3", "5FC_5p", "5FC_5", "5FC_fl-ccd", "5FC_-ccd", "5FC_3-ccd", "5FC_5p-ccd", "5FC_5-ccd"], + "5HU": ["5HU_fl", "5HU_", "5HU_3", "5HU_5p", "5HU_5", "5HU_fl-ccd", "5HU_-ccd", "5HU_3-ccd", "5HU_5p-ccd", "5HU_5-ccd"], + "5MC": ["5MC_fl", "5MC_", "5MC_3", "5MC_5p", "5MC_5", "5MC_fl-ccd", "5MC_5p-ccd"], + "5MU": ["5MU_fl", "5MU_", "5MU_3", "5MU_5p", "5MU_5", "5MU_fl-ccd", "5MU_5p-ccd"], + "66A": ["66A_fl", "66A_", "66A_3", "66A_5p", "66A_5", "66A_fl-ccd"], + "6GA": ["6GA_fl", "6GA_", "6GA_3", "6GA_5p", "6GA_5", "6GA_fl-ccd"], + "6IA": ["6IA_fl", "6IA_", "6IA_3", "6IA_5p", "6IA_5", "6IA_fl-ccd", "6IA_-ccd", "6IA_3-ccd", "6IA_5p-ccd", "6IA_5-ccd"], + "6MA": ["6MA_fl", "6MA_", "6MA_3", "6MA_5p", "6MA_5", "6MA_fl-ccd", "6MA_-ccd", "6MA_3-ccd", "6MA_5p-ccd", "6MA_5-ccd"], + "6TA": ["6TA_fl", "6TA_", "6TA_3", "6TA_5p", "6TA_5", "6TA_fl-ccd"], + "7MG": ["7MG_fl", "7MG_", "7MG_3", "7MG_5p", "7MG_5", "7MG_fl-ccd", "7MG_-ccd", "7MG_3-ccd", "7MG_5p-ccd", "7MG_5-ccd"], + "BCU": ["BCU_fl", "BCU_", "BCU_3", "BCU_5p", "BCU_5", "BCU_fl-ccd"], + "BUG": ["BUG_fl", "BUG_", "BUG_3", "BUG_5p", "BUG_5", "BUG_fl-ccd", "BUG-ccd", "BUG_N-ccd", "BUG_C-ccd"], + "CMU": ["CMU_fl", "CMU_", "CMU_3", "CMU_5p", "CMU_5", "CMU_fl-ccd"], + "DAG": ["DAG_fl", "DAG_", "DAG_3", "DAG_5p", "DAG_5", "DAG_fl-ccd"], + "DHU": ["DHU_fl", "DHU_", "DHU_3", "DHU_5p", "DHU_5", "DHU_fl-ccd", "DHU_5p-ccd"], + "DMA": ["DMA_fl", "DMA_", "DMA_3", "DMA_5p", "DMA_5", "DMA_fl-ccd"], + "DMG": ["DMG_fl", "DMG_", "DMG_3", "DMG_5p", "DMG_5", "DMG_fl-ccd"], + "DMU": ["DMU_fl", "DMU_", "DMU_3", "DMU_5p", "DMU_5", "DMU_fl-ccd"], + "DWG": ["DWG_fl", "DWG_", "DWG_3", "DWG_5p", "DWG_5", "DWG_fl-ccd"], + "EQG": ["EQG_fl", "EQG_", "EQG_3", "EQG_5p", "EQG_5", "EQG_fl-ccd"], + "HCU": ["HCU_fl", "HCU_", "HCU_3", "HCU_5p", "HCU_5", "HCU_fl-ccd"], + "HIA": ["HIA_fl", "HIA_", "HIA_3", "HIA_5p", "HIA_5", "HIA_fl-ccd"], + "HMC": ["HMC_fl", "HMC_", "HMC_3", "HMC_5p", "HMC_5", "HMC_fl-ccd"], + "HNA": ["HNA_fl", "HNA_", "HNA_3", "HNA_5p", "HNA_5", "HNA_fl-ccd"], + "HWG": ["HWG_fl", "HWG_", "HWG_3", "HWG_5p", "HWG_5", "HWG_fl-ccd"], + "INO": ["INO_fl", "INO_", "INO_3", "INO_5p", "INO_5", "INO_fl-ccd"], + "IWG": ["IWG_fl", "IWG_", "IWG_3", "IWG_5p", "IWG_5", "IWG_fl-ccd"], + "K2C": ["K2C_fl", "K2C_", "K2C_3", "K2C_5p", "K2C_5", "K2C_fl-ccd"], + "M1G": ["M1G_fl", "M1G_", "M1G_3", "M1G_5p", "M1G_5", "M1G_fl-ccd", "M1G_-ccd", "M1G_3-ccd", "M1G_5p-ccd", "M1G_5-ccd"], + "M2A": ["M2A_fl", "M2A_", "M2A_3", "M2A_5p", "M2A_5", "M2A_fl-ccd", "M2A_5p-ccd"], + "M3U": ["M3U_fl", "M3U_", "M3U_3", "M3U_5p", "M3U_5", "M3U_fl-ccd"], + "M4C": ["M4C_fl", "M4C_", "M4C_3", "M4C_5p", "M4C_5", "M4C_fl-ccd", "M4C_5p-ccd"], + "MAU": ["MAU_fl", "MAU_", "MAU_3", "MAU_5p", "MAU_5", "MAU_fl-ccd"], + "MCU": ["MCU_fl", "MCU_", "MCU_3", "MCU_5p", "MCU_5", "MCU_fl-ccd"], + "MEU": ["MEU_fl", "MEU_", "MEU_3", "MEU_5p", "MEU_5", "MEU_fl-ccd", "MEU_C-ccd"], + "MFC": ["MFC_fl", "MFC_", "MFC_3", "MFC_5p", "MFC_5", "MFC_fl-ccd"], + "MMA": ["MMA_fl", "MMA_", "MMA_3", "MMA_5p", "MMA_5", "MMA_fl-ccd"], + "MMG": ["MMG_fl", "MMG_", "MMG_3", "MMG_5p", "MMG_5", "MMG_fl-ccd"], + "MMI": ["MMI_fl", "MMI_", "MMI_3", "MMI_5p", "MMI_5", "MMI_fl-ccd"], + "MMU": ["MMU_fl", "MMU_", "MMU_3", "MMU_5p", "MMU_5", "MMU_fl-ccd"], + "MRA": ["MRA_fl", "MRA_", "MRA_3", "MRA_5p", "MRA_5", "MRA_fl-ccd"], + "MRC": ["MRC_fl", "MRC_", "MRC_3", "MRC_5p", "MRC_5", "MRC_fl-ccd"], + "MRG": ["MRG_fl", "MRG_", "MRG_3", "MRG_5p", "MRG_5", "MRG_fl-ccd", "MRG_-ccd", "MRG_3-ccd", "MRG_5p-ccd", "MRG_5-ccd"], + "MRI": ["MRI_fl", "MRI_", "MRI_3", "MRI_5p", "MRI_5", "MRI_fl-ccd"], + "MRP": ["MRP_fl", "MRP_", "MRP_3", "MRP_5p", "MRP_5", "MRP_fl-ccd"], + "MRU": ["MRU_fl", "MRU_", "MRU_3", "MRU_5p", "MRU_5", "MRU_fl-ccd"], + "MTA": ["MTA_fl", "MTA_", "MTA_3", "MTA_5p", "MTA_5", "MTA_fl-ccd"], + "MTG": ["MTG_fl", "MTG_", "MTG_3", "MTG_5p", "MTG_5", "MTG_fl-ccd"], + "N2G": ["N2G_fl", "N2G_", "N2G_3", "N2G_5p", "N2G_5", "N2G_fl-ccd", "N2G_-ccd", "N2G_3-ccd", "N2G_5p-ccd", "N2G_5-ccd"], + "OAU": ["OAU_fl", "OAU_", "OAU_3", "OAU_5p", "OAU_5", "OAU_fl-ccd"], + "OCU": ["OCU_fl", "OCU_", "OCU_3", "OCU_5p", "OCU_5", "OCU_fl-ccd"], + "OEU": ["OEU_fl", "OEU_", "OEU_3", "OEU_5p", "OEU_5", "OEU_fl-ccd"], + "OMU": ["OMU_fl", "OMU_", "OMU_3", "OMU_5p", "OMU_5", "OMU_fl-ccd", "OMU_-ccd", "OMU_3-ccd", "OMU_5p-ccd", "OMU_5-ccd"], + "PBG": ["PBG_fl", "PBG_", "PBG_3", "PBG_5p", "PBG_5", "PBG_fl-ccd"], + "PSU": ["PSU_fl", "PSU_", "PSU_3", "PSU_5p", "PSU_5", "PSU_fl-ccd", "PSU_5p-ccd"], + "QGG": ["QGG_fl", "QGG_", "QGG_3", "QGG_5p", "QGG_5", "QGG_fl-ccd"], + "QMG": ["QMG_fl", "QMG_", "QMG_3", "QMG_5p", "QMG_5", "QMG_fl-ccd"], + "QUG": ["QUG_fl", "QUG_", "QUG_3", "QUG_5p", "QUG_5", "QUG_fl-ccd"], + "SIA": ["SIA_fl", "SIA_", "SIA_3", "SIA_5p", "SIA_5", "SIA_fl-ccd"], + "SMA": ["SMA_fl", "SMA_", "SMA_3", "SMA_5p", "SMA_5", "SMA_fl-ccd"], + "SPA": ["SPA_fl", "SPA_", "SPA_3", "SPA_5p", "SPA_5", "SPA_fl-ccd"], + "STA": ["STA_fl", "STA_", "STA_3", "STA_5p", "STA_5", "STA_fl-ccd"], + "WBG": ["WBG_fl", "WBG_", "WBG_3", "WBG_5p", "WBG_5", "WBG_fl-ccd"], + "WMG": ["WMG_fl", "WMG_", "WMG_3", "WMG_5p", "WMG_5", "WMG_fl-ccd"] + }, "padders": { "5-prime": { @@ -796,17 +797,32 @@ "atom_name": ["OXT", "C", "O", "CA", "HA", "N", "CB", "HB3", "HB2", "CG", "HG2", "HG3", "CD", "HD2", "HD3"], "link_labels": {"5": "N-term"} }, - "HYP": { + "HYP_fl": { "smiles": "[H]OC1([H])C([H])([H])N([H])C([H])(C([H])=O)C1([H])[H]", "atom_name": ["HD1", "OD1", "CG", "HG", "CD", "HD22", "HD23", "N", "H_h", "CA", "HA", "C", "H_t", "O", "CB", "HB2", "HB3"], "link_labels": {} }, + "HYP": { + "smiles": "[H]OC1([H])C([H])([H])NC([H])(C=O)C1([H])[H]", + "atom_name": ["HD1", "OD1", "CG", "HG", "CD", "HD22", "HD23", "N", "CA", "HA", "C", "O", "CB", "HB2", "HB3"], + "link_labels": {"7": "N-term", "10": "C-term"} + }, + "HYP_N": { + "smiles": "[H]OC1([H])C([H])([H])N([H])C([H])(C=O)C1([H])[H]", + "atom_name": ["HD1", "OD1", "CG", "HG", "CD", "HD22", "HD23", "N", "H_h", "CA", "HA", "C", "O", "CB", "HB2", "HB3"], + "link_labels": {"11": "C-term"} + }, + "HYP_C": { + "smiles": "[H]OC1([H])C([H])([H])NC([H])(C([H])=O)C1([H])[H]", + "atom_name": ["HD1", "OD1", "CG", "HG", "CD", "HD22", "HD23", "N", "CA", "HA", "C", "H_t", "O", "CB", "HB2", "HB3"], + "link_labels": {"7": "N-term"} + }, "HYP_fl-ccd": { "smiles": "[H]OC1([H])C([H])([H])N([H])C([H])(C(=O)[O-])C1([H])[H]", "atom_name": ["HD1", "OD1", "CG", "HG", "CD", "HD22", "HD23", "N", "H", "CA", "HA", "C", "O", "OXT", "CB", "HB2", "HB3"], "link_labels": {} }, - "MTB": { + "MTB_fl": { "smiles": "[H]C([H])([H])[S-]", "atom_name": ["HB1", "CB", "HB2", "HB3", "SG"], "link_labels": {} @@ -816,6 +832,11 @@ "atom_name": ["HO4'", "O4'", "C4'", "C5'", "H5'", "C6'", "H6'", "C1'", "N1'", "N1", "C1", "C6", "H6", "C5", "H5", "C4", "H4", "C3", "H3", "C2", "C", "O", "OXT", "C2'", "H2'", "C3'", "CT3", "CHV", "H11", "H12", "H13", "CHW", "H21", "H22", "H23", "CHX", "H31", "H32", "H33"], "link_labels": {} }, + "NLE_fl": { + "smiles": "[H]C(=O)C([H])(N([H])[H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])[H]", + "atom_name": ["H_t", "C", "O", "CA", "HA", "N", "H_h", "H", "CB", "HB2", "HB3", "CG", "HG2", "HG3", "CD", "HD2", "HD3", "CE", "HE1", "HE2", "HE3"], + "link_labels": {} + }, "NLE": { "smiles": "[H]NC([H])(C=O)C([H])([H])C([H])([H])C([H])([H])C([H])([H])[H]", "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB2", "HB3", "CG", "HG2", "HG3", "CD", "HD2", "HD3", "CE", "HE1", "HE2", "HE3"], @@ -841,7 +862,7 @@ "atom_name": ["H2", "N", "CA", "HA", "C", "O", "OXT", "CB", "HB2", "HB3", "CG", "HG2", "HG3", "CD", "HD2", "HD3", "CE", "HE1", "HE2", "HE3"], "link_labels": {"1": "N-term"} }, - "NHE": { + "NHE_fl": { "smiles": "[H]N([H])[H]", "atom_name": ["H_h", "N", "HN1", "HN2"], "link_labels": {} @@ -851,6 +872,11 @@ "atom_name": ["HN", "N", "C1", "HC11", "HC12", "C2", "HC21", "HC22", "S", "O1", "O2", "O3", "C1'", "HC'1", "C2'", "H2'1", "H2'2", "C3'", "H3'1", "H3'2", "C4'", "H4'1", "H4'2", "C5'", "H5'1", "H5'2", "C6'", "H6'1", "H6'2"], "link_labels": {} }, + "S1P_fl": { + "smiles": "[H]OP(=O)([O-])OC([H])([H])C([H])(C([H])=O)N([H])[H]", + "atom_name": ["H1P", "O1P", "P", "O2P", "O3P", "OG", "CB", "HB2", "HB3", "CA", "HA", "C", "H_t", "O", "N", "H_h", "H"], + "link_labels": {} + }, "S1P": { "smiles": "[H]NC([H])(C=O)C([H])([H])OP(=O)([O-])O[H]", "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB2", "HB3", "OG", "P", "O2P", "O3P", "O1P", "H1P"], @@ -871,6 +897,11 @@ "atom_name": ["HO3", "O3", "C3", "H3", "C4", "H4", "C5", "H5", "C6", "H6", "H6A", "C7", "H7", "H7A", "C8", "H8", "H8A", "C9", "H9", "H9A", "C10", "H10", "H10A", "C11", "H11", "H11A", "C12", "H12", "H12A", "C13", "H13", "H13A", "C14", "H14", "H14A", "C15", "H15", "H15A", "C16", "H16", "H16A", "C17", "H17", "H17A", "C18", "H18", "H18A", "H18B", "C2", "H2", "N2", "HN2", "HN2A", "C1", "H1", "H1A", "O1", "P22", "O25", "O23", "O24"], "link_labels": {} }, + "SEP_fl": { + "smiles": "[H]C(=O)C([H])(N([H])[H])C([H])([H])OP(=O)([O-])[O-]", + "atom_name": ["H_t", "C", "O", "CA", "HA", "N", "H_h", "H", "CB", "HB2", "HB3", "OG", "P", "O1P", "O2P", "O3P"], + "link_labels": {} + }, "SEP": { "smiles": "[H]NC([H])(C=O)C([H])([H])OP(=O)([O-])[O-]", "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB2", "HB3", "OG", "P", "O1P", "O2P", "O3P"], @@ -896,6 +927,11 @@ "atom_name": ["H2", "N", "CA", "HA", "C", "O", "OXT", "CB", "HB2", "HB3", "OG", "P", "O1P", "O2P", "O3P"], "link_labels": {"1": "N-term"} }, + "T1P_fl": { + "smiles": "[H]OP(=O)([O-])OC([H])(C([H])([H])[H])C([H])(C([H])=O)N([H])[H]", + "atom_name": ["H1P", "O1P", "P", "O2P", "O3P", "OG1", "CB", "HB", "CG2", "HG21", "HG22", "HG23", "CA", "HA", "C", "H_t", "O", "N", "H_h", "H"], + "link_labels": {} + }, "T1P": { "smiles": "[H]NC([H])(C=O)C([H])(OP(=O)([O-])O[H])C([H])([H])[H]", "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB", "OG1", "P", "O2P", "O3P", "O1P", "H1P", "CG2", "HG21", "HG22", "HG23"], @@ -916,6 +952,11 @@ "atom_name": ["H26", "O26", "C14", "H141", "H142", "C13", "H13", "O23", "H23", "C12", "H12", "O21", "H21", "C11", "H11", "O19", "H19", "C10", "H101", "H102", "N7", "C6", "O6", "N5", "C15", "H151", "H152", "C16", "H161", "H162", "C17", "H171", "H172", "O27", "P", "O32", "O33", "O31", "C9", "C8", "N1", "H1", "C2", "O2", "N3", "H3", "C4", "O4"], "link_labels": {} }, + "TPO_fl": { + "smiles": "[H]C(=O)C([H])(N([H])[H])C([H])(OP(=O)([O-])[O-])C([H])([H])[H]", + "atom_name": ["H_t", "C", "O", "CA", "HA", "N", "H_h", "H", "CB", "HB", "OG1", "P", "O1P", "O2P", "O3P", "CG2", "HG21", "HG22", "HG23"], + "link_labels": {} + }, "TPO": { "smiles": "[H]NC([H])(C=O)C([H])(OP(=O)([O-])[O-])C([H])([H])[H]", "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB", "OG1", "P", "O1P", "O2P", "O3P", "CG2", "HG21", "HG22", "HG23"], @@ -941,19 +982,24 @@ "atom_name": ["H2", "N", "CA", "HA", "C", "O", "OXT", "CB", "HB", "OG1", "P", "O1P", "O2P", "O3P", "CG2", "HG21", "HG22", "HG23"], "link_labels": {"1": "N-term"} }, + "Y1P_fl": { + "smiles": "[H]OP(=O)([O-])OC1=C([H])C([H])=C(C([H])([H])C([H])(C([H])=O)N([H])[H])C([H])=C1[H]", + "atom_name": ["H1P", "O1P", "P", "O2P", "O3P", "OG", "CZ", "CE2", "HE2", "CD2", "HD2", "CG", "CB", "HB2", "HB3", "CA", "HA", "C", "H_t", "O", "N", "H_h", "H", "CD1", "HD1", "CE1", "HE1"], + "link_labels": {} + }, "Y1P": { "smiles": "[H]NC([H])(C=O)C([H])([H])C1=C([H])C([H])=C(OP(=O)([O-])O[H])C([H])=C1[H]", - "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB2", "HB3", "CG", "CD1", "HD1", "CE1", "HE1", "CZ", "OG", "P", "O2P", "O3P", "O1P", "H1P", "CE2", "HE2", "CD2", "HD2"], + "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB2", "HB3", "CG", "CD2", "HD2", "CE2", "HE2", "CZ", "OG", "P", "O2P", "O3P", "O1P", "H1P", "CE1", "HE1", "CD1", "HD1"], "link_labels": {"1": "N-term", "4": "C-term"} }, "Y1P_N": { "smiles": "[H]OP(=O)([O-])OC1=C([H])C([H])=C(C([H])([H])C([H])(C=O)N([H])[H])C([H])=C1[H]", - "atom_name": ["H1P", "O1P", "P", "O2P", "O3P", "OG", "CZ", "CE1", "HE1", "CD1", "HD1", "CG", "CB", "HB2", "HB3", "CA", "HA", "C", "O", "N", "H_h", "H", "CD2", "HD2", "CE2", "HE2"], + "atom_name": ["H1P", "O1P", "P", "O2P", "O3P", "OG", "CZ", "CE2", "HE2", "CD2", "HD2", "CG", "CB", "HB2", "HB3", "CA", "HA", "C", "O", "N", "H_h", "H", "CD1", "HD1", "CE1", "HE1"], "link_labels": {"17": "C-term"} }, "Y1P_C": { "smiles": "[H]NC([H])(C([H])=O)C([H])([H])C1=C([H])C([H])=C(OP(=O)([O-])O[H])C([H])=C1[H]", - "atom_name": ["H", "N", "CA", "HA", "C", "H_t", "O", "CB", "HB2", "HB3", "CG", "CD1", "HD1", "CE1", "HE1", "CZ", "OG", "P", "O2P", "O3P", "O1P", "H1P", "CE2", "HE2", "CD2", "HD2"], + "atom_name": ["H", "N", "CA", "HA", "C", "H_t", "O", "CB", "HB2", "HB3", "CG", "CD2", "HD2", "CE2", "HE2", "CZ", "OG", "P", "O2P", "O3P", "O1P", "H1P", "CE1", "HE1", "CD1", "HD1"], "link_labels": {"1": "N-term"} }, "Y1P_fl-ccd": { @@ -961,6 +1007,11 @@ "atom_name": ["H14", "C10", "C9", "H13", "C8", "H12", "C7", "C6", "O2", "N2", "C5", "H11", "H10", "C4", "H8", "H9", "N1", "C3", "O1", "N", "H7", "C2", "H6", "H5", "C1", "H4", "H3", "O", "C", "H", "H1", "H2", "C12", "H18", "H17", "C11", "H15", "H16", "O3"], "link_labels": {} }, + "PTR_fl": { + "smiles": "[H]C(=O)C([H])(N([H])[H])C([H])([H])C1=C([H])C([H])=C(OP(=O)([O-])[O-])C([H])=C1[H]", + "atom_name": ["H_t", "C", "O", "CA", "HA", "N", "H_h", "H", "CB", "HB2", "HB3", "CG", "CD2", "HD2", "CE2", "HE2", "CZ", "OH", "P", "O1P", "O2P", "O3P", "CE1", "HE1", "CD1", "HD1"], + "link_labels": {} + }, "PTR": { "smiles": "[H]NC([H])(C=O)C([H])([H])C1=C([H])C([H])=C(OP(=O)([O-])[O-])C([H])=C1[H]", "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB2", "HB3", "CG", "CD2", "HD2", "CE2", "HE2", "CZ", "OH", "P", "O1P", "O2P", "O3P", "CE1", "HE1", "CD1", "HD1"], @@ -986,6 +1037,11 @@ "atom_name": ["H2", "N", "CA", "HA", "C", "O", "OXT", "CB", "HB2", "HB3", "CG", "CD1", "HD1", "CE1", "HE1", "CZ", "OH", "P", "O1P", "O2P", "O3P", "CE2", "HE2", "CD2", "HD2"], "link_labels": {"1": "N-term"} }, + "H1D_fl": { + "smiles": "[H]OP(=O)([O-])[N+]1=C([H])N([H])C([H])=C1C([H])([H])C([H])(C([H])=O)N([H])[H]", + "atom_name": ["H1P", "O1P", "P", "O2P", "O3P", "ND1", "CE1", "HE1", "NE2", "HE2", "CD2", "HD2", "CG", "CB", "HB2", "HB3", "CA", "HA", "C", "H_t", "O", "N", "H_h", "H"], + "link_labels": {} + }, "H1D": { "smiles": "[H]NC([H])(C=O)C([H])([H])C1=C([H])N([H])C([H])=[N+]1P(=O)([O-])O[H]", "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB2", "HB3", "CG", "CD2", "HD2", "NE2", "HE2", "CE1", "HE1", "ND1", "P", "O2P", "O3P", "O1P", "H1P"], @@ -1021,6 +1077,11 @@ "atom_name": ["HN2", "N", "CA", "HA", "C", "OXT", "O", "CB", "HB1", "HB2", "CG", "HG1", "HG2", "SD", "C5", "H51", "H52", "C4", "H4", "O4", "HO4", "C3", "H3", "O3", "HO3", "C2", "O2", "N1", "HN1", "O1", "HO1"], "link_labels": {"1": "N-term"} }, + "H2D_fl": { + "smiles": "[H]C(=O)C([H])(N([H])[H])C([H])([H])C1=C([H])N([H])C([H])=[N+]1P(=O)([O-])[O-]", + "atom_name": ["H_t", "C", "O", "CA", "HA", "N", "H_h", "H", "CB", "HB2", "HB3", "CG", "CD2", "HD2", "NE2", "HE2", "CE1", "HE1", "ND1", "P", "O1P", "O2P", "O3P"], + "link_labels": {} + }, "H2D": { "smiles": "[H]NC([H])(C=O)C([H])([H])C1=C([H])N([H])C([H])=[N+]1P(=O)([O-])[O-]", "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB2", "HB3", "CG", "CD2", "HD2", "NE2", "HE2", "CE1", "HE1", "ND1", "P", "O1P", "O2P", "O3P"], @@ -1041,6 +1102,11 @@ "atom_name": ["H9", "C1", "C2", "H10", "C3", "N2", "H11", "C4", "O2", "C5", "H1", "C6", "C13", "H8", "C12", "H14", "C11", "H13", "C10", "H7", "C9", "H12", "C7", "H2", "H3", "C8", "H4", "H5", "H6", "N1", "O1"], "link_labels": {} }, + "H2E_fl": { + "smiles": "[H]C(=O)C([H])(N([H])[H])C([H])([H])C1=C([H])N(P(=O)([O-])[O-])C([H])=[N+]1[H]", + "atom_name": ["H_t", "C", "O", "CA", "HA", "N", "H_h", "H", "CB", "HB2", "HB3", "CG", "CD2", "HD2", "NE2", "P", "O1P", "O2P", "O3P", "CE1", "HE1", "ND1", "HD1"], + "link_labels": {} + }, "H2E": { "smiles": "[H]NC([H])(C=O)C([H])([H])C1=C([H])N(P(=O)([O-])[O-])C([H])=[N+]1[H]", "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB2", "HB3", "CG", "CD2", "HD2", "NE2", "P", "O1P", "O2P", "O3P", "CE1", "HE1", "ND1", "HD1"], @@ -1061,6 +1127,11 @@ "atom_name": ["H23", "C19", "C18", "H22", "C17", "C21", "C22", "H25", "C23", "O5", "C24", "H12", "C25", "N2", "C26", "H26", "H27", "C27", "H28", "H29", "O4", "C28", "H30", "H31", "C29", "H32", "H33", "O3", "C2", "S1", "C3", "C9", "H20", "C8", "H19", "C7", "O1", "C10", "H3", "C16", "H14", "H15", "H16", "C11", "H4", "H5", "N1", "C12", "H6", "H7", "C13", "H8", "H9", "O2", "C14", "H10", "H11", "C15", "H17", "H18", "C6", "H13", "C4", "C5", "H1", "H2", "C1", "C20", "H24"], "link_labels": {} }, + "ALY_fl": { + "smiles": "[H]C(=O)C([H])(N([H])[H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])N([H])C(=O)C([H])([H])[H]", + "atom_name": ["H_t", "C", "O", "CA", "HCA", "N", "H_h", "H", "CB", "HB2", "HB3", "CG", "HG2", "HG3", "CD", "HD2", "HD3", "CE", "HE2", "HE3", "NZ", "HZ", "CH", "OH", "CH3", "HH31", "HH32", "HH33"], + "link_labels": {} + }, "ALY": { "smiles": "[H]NC([H])(C=O)C([H])([H])C([H])([H])C([H])([H])C([H])([H])N([H])C(=O)C([H])([H])[H]", "atom_name": ["H", "N", "CA", "HCA", "C", "O", "CB", "HB2", "HB3", "CG", "HG2", "HG3", "CD", "HD2", "HD3", "CE", "HE2", "HE3", "NZ", "HZ", "CH", "OH", "CH3", "HH31", "HH32", "HH33"], @@ -1086,19 +1157,24 @@ "atom_name": ["H2", "N", "CA", "HA", "C", "O", "OXT", "CB", "HB3", "HB2", "CG", "HG3", "HG2", "CD", "HD3", "HD2", "CE", "HE3", "HE2", "NZ", "HZ", "CH", "OH", "CH3", "HH31", "HH32", "HH33"], "link_labels": {"1": "N-term"} }, + "AZF_fl": { + "smiles": "[H]C(=O)C([H])(N([H])[H])C([H])([H])C1=C([H])C([H])=C(N=[N+]=[N-])C([H])=C1[H]", + "atom_name": ["H_t", "C", "O", "CA", "HA", "N", "H_h", "H", "CB", "HB2", "HB3", "CG", "CD2", "HD2", "CE2", "HE2", "CZ", "N1", "N2", "N3", "CE1", "HE1", "CD1", "HD1"], + "link_labels": {} + }, "AZF": { "smiles": "[H]NC([H])(C=O)C([H])([H])C1=C([H])C([H])=C(N=[N+]=[N-])C([H])=C1[H]", - "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB2", "HB3", "CG", "CD1", "HD1", "CE1", "HE1", "CZ", "N1", "N2", "N3", "CE2", "HE2", "CD2", "HD2"], + "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB2", "HB3", "CG", "CD2", "HD2", "CE2", "HE2", "CZ", "N1", "N2", "N3", "CE1", "HE1", "CD1", "HD1"], "link_labels": {"1": "N-term", "4": "C-term"} }, "AZF_N": { "smiles": "[H]C1=C([H])C(C([H])([H])C([H])(C=O)N([H])[H])=C([H])C([H])=C1N=[N+]=[N-]", - "atom_name": ["HE2", "CE2", "CD2", "HD2", "CG", "CB", "HB2", "HB3", "CA", "HA", "C", "O", "N", "H_h", "H", "CD1", "HD1", "CE1", "HE1", "CZ", "N1", "N2", "N3"], + "atom_name": ["HE1", "CE1", "CD1", "HD1", "CG", "CB", "HB2", "HB3", "CA", "HA", "C", "O", "N", "H_h", "H", "CD2", "HD2", "CE2", "HE2", "CZ", "N1", "N2", "N3"], "link_labels": {"10": "C-term"} }, "AZF_C": { "smiles": "[H]NC([H])(C([H])=O)C([H])([H])C1=C([H])C([H])=C(N=[N+]=[N-])C([H])=C1[H]", - "atom_name": ["H", "N", "CA", "HA", "C", "H_t", "O", "CB", "HB2", "HB3", "CG", "CD1", "HD1", "CE1", "HE1", "CZ", "N1", "N2", "N3", "CE2", "HE2", "CD2", "HD2"], + "atom_name": ["H", "N", "CA", "HA", "C", "H_t", "O", "CB", "HB2", "HB3", "CG", "CD2", "HD2", "CE2", "HE2", "CZ", "N1", "N2", "N3", "CE1", "HE1", "CD1", "HD1"], "link_labels": {"1": "N-term"} }, "AZF_fl-ccd": { @@ -1106,6 +1182,11 @@ "atom_name": ["H6", "O6", "C6", "H6C1", "H6C2", "C5", "H5", "N2", "H2", "N", "H", "C2", "H2C1", "H2C2", "C3", "H3", "O3", "HB", "C4", "HA", "O4", "H4"], "link_labels": {} }, + "CNX_fl": { + "smiles": "[H]C(=O)C([H])(N([H])[H])C([H])([H])SSC([H])([H])C1=C([H])C(C([H])([H])[H])(C([H])([H])[H])[N+](=O)C1(C([H])([H])[H])C([H])([H])[H]", + "atom_name": ["H_t", "C", "O", "CA", "HA", "N", "H_h", "H", "CB", "HB2", "HB3", "SG", "S1", "C4", "H41", "H42", "C3", "C2", "H2", "C1", "C8", "H81", "H82", "H83", "C9", "H91", "H92", "H93", "N1", "O1", "C5", "C6", "H61", "H62", "H63", "C7", "H71", "H72", "H73"], + "link_labels": {} + }, "CNX": { "smiles": "[H]NC([H])(C=O)C([H])([H])SSC([H])([H])C1=C([H])C(C([H])([H])[H])(C([H])([H])[H])[N+](=O)C1(C([H])([H])[H])C([H])([H])[H]", "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB2", "HB3", "SG", "S1", "C4", "H41", "H42", "C3", "C2", "H2", "C1", "C8", "H81", "H82", "H83", "C9", "H91", "H92", "H93", "N1", "O1", "C5", "C6", "H61", "H62", "H63", "C7", "H71", "H72", "H73"], @@ -1126,17 +1207,47 @@ "atom_name": ["H7", "C7", "H7A", "H7B", "C6", "H6", "H6A", "C5", "H5", "H5A", "C4", "H4", "H4A", "C3", "H3", "H3A", "C2", "H2", "H2A", "C1", "N1"], "link_labels": {} }, - "CN_": { + "CYF_fl": { + "smiles": "[H]C(=O)C([H])(N([H])[H])C([H])([H])C1=C([H])C([H])=C([C+]=[N-])C([H])=C1[H]", + "atom_name": ["H_t", "C", "O", "CA", "HA", "N", "H_h", "H", "CB", "HB", "HBA", "CG", "CD1", "HD1", "CE1", "HE1", "CZ", "C1", "N1", "CE2", "HE2", "CD2", "HD2"], + "link_labels": {} + }, + "CYF": { + "smiles": "[H]NC([H])(C=O)C([H])([H])C1=C([H])C([H])=C([C+]=[N-])C([H])=C1[H]", + "atom_name": ["H", "N", "CA", "HA", "C", "O", "CB", "HB", "HBA", "CG", "CD1", "HD1", "CE1", "HE1", "CZ", "C1", "N1", "CE2", "HE2", "CD2", "HD2"], + "link_labels": {"1": "N-term", "4": "C-term"} + }, + "CYF_N": { + "smiles": "[H]C1=C([H])C(C([H])([H])C([H])(C=O)N([H])[H])=C([H])C([H])=C1[C+]=[N-]", + "atom_name": ["HE2", "CE2", "CD2", "HD2", "CG", "CB", "HB", "HBA", "CA", "HA", "C", "O", "N", "H_h", "H", "CD1", "HD1", "CE1", "HE1", "CZ", "C1", "N1"], + "link_labels": {"10": "C-term"} + }, + "CYF_C": { + "smiles": "[H]NC([H])(C([H])=O)C([H])([H])C1=C([H])C([H])=C([C+]=[N-])C([H])=C1[H]", + "atom_name": ["H", "N", "CA", "HA", "C", "H_t", "O", "CB", "HB", "HBA", "CG", "CD1", "HD1", "CE1", "HE1", "CZ", "C1", "N1", "CE2", "HE2", "CD2", "HD2"], + "link_labels": {"1": "N-term"} + }, + "CYF_fl-ccd": { + "smiles": "[H]OC1=C([H])C([H])=C2C(=C1[H])OC1=C(C([H])=C([H])C(O[H])=C1[H])C2([H])C1=C([H])C([H])=C(N([H])C(=O)C([H])([H])SC([H])([H])C([H])(C(=O)N([H])[H])N([H])[H])C([H])=C1C(=O)[O-]", + "atom_name": ["HO3", "O3", "C6", "C7", "H7", "C8", "H8", "C9", "C4", "C5", "H5", "O2", "C3", "C11", "C12", "H12", "C13", "H13", "C1", "O1", "HO1", "C2", "HC2", "C10", "H10", "C14", "C15", "H15", "C16", "H16", "C17", "NL", "HNL", "CL", "OL", "CAL", "HAL3", "HAL2", "SG", "CB", "HB3", "HB2", "CA", "HA", "C", "O", "NT", "HNT1", "HNT2", "N", "H", "H2", "C18", "H18", "C19", "C20", "O4", "O5"], + "link_labels": {} + }, + "CN_fl": { "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C(=O)N=C(N([H])[H])C([H])=C2[H])C([H])(O[H])C1([H])O[H]", "atom_name": ["HO5'", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "H41", "H42", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'", "HO3'"], "link_labels": {} }, + "CN_": { + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C(=O)N=C(N([H])[H])C([H])=C2[H])C([H])(O[H])C1([H])O", + "atom_name": ["HO5'", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "H41", "H42", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'"], + "link_labels": {"28": "3-prime"} + }, "CN_fl-ccd": { "smiles": "[H]C#N", "atom_name": ["H1", "C1", "N1"], "link_labels": {} }, - "OHE_": { + "OHE_fl": { "smiles": "[H]O[H]", "atom_name": ["HOP3", "OP3", "H_t"], "link_labels": {} @@ -1146,11 +1257,31 @@ "atom_name": ["HO", "O", "C2", "H21", "H22", "C1", "H11", "H12", "H13"], "link_labels": {} }, - "AMP_": { + "AMP_fl": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])[H])N=C([H])N=C32)OC([H])(C([H])([H])OP(=O)([O-])O[H])C1([H])O[H]", "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "H61", "H62", "N1", "C2", "H2", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "HP3", "C3'", "H3'", "O3'", "H_t"], "link_labels": {} }, + "AMP_": { + "smiles": "[H]OP(=O)OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C(N([H])[H])N=C([H])N=C32)C([H])(O[H])C1([H])O", + "atom_name": ["HP3", "OP3", "P", "OP1", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "H61", "H62", "N1", "C2", "H2", "N3", "C4", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'"], + "link_labels": {"2": "5-prime", "33": "3-prime"} + }, + "AMP_3": { + "smiles": "[H]OP(=O)OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C(N([H])[H])N=C([H])N=C32)C([H])(O[H])C1([H])O[H]", + "atom_name": ["HP3", "OP3", "P", "OP1", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "H61", "H62", "N1", "C2", "H2", "N3", "C4", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {"2": "5-prime"} + }, + "AMP_5p": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])[H])N=C([H])N=C32)OC([H])(C([H])([H])OP(=O)([O-])O[H])C1([H])O", + "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "H61", "H62", "N1", "C2", "H2", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "HP3", "C3'", "H3'", "O3'"], + "link_labels": {"34": "3-prime"} + }, + "AMP_5": { + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C(N([H])[H])N=C([H])N=C32)C([H])(O[H])C1([H])O", + "atom_name": ["H63", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "H61", "H62", "N1", "C2", "H2", "N3", "C4", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'"], + "link_labels": {"30": "3-prime"} + }, "AMP_fl-ccd": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C([H])N=C3N([H])[H])OC([H])(C([H])([H])OP(=O)([O-])[O-])C1([H])O[H]", "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "HN61", "HN62", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "O3P", "C3'", "H3'", "O3'", "HO3'"], @@ -1176,31 +1307,91 @@ "atom_name": ["H9", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "HN61", "HN62", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'"], "link_labels": {"30": "3-prime"} }, - "CMP_": { + "CMP_fl": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N=C(N([H])[H])C([H])=C2[H])OC([H])(C([H])([H])OP(=O)([O-])O[H])C1([H])O[H]", "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "H41", "H42", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "HP3", "C3'", "H3'", "O3'", "H_t"], "link_labels": {} }, + "CMP_": { + "smiles": "[H]OP(=O)OC([H])([H])C1([H])OC([H])(N2C(=O)N=C(N([H])[H])C([H])=C2[H])C([H])(O[H])C1([H])O", + "atom_name": ["HP3", "OP3", "P", "OP1", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "H41", "H42", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'"], + "link_labels": {"2": "5-prime", "31": "3-prime"} + }, + "CMP_3": { + "smiles": "[H]OP(=O)OC([H])([H])C1([H])OC([H])(N2C(=O)N=C(N([H])[H])C([H])=C2[H])C([H])(O[H])C1([H])O[H]", + "atom_name": ["HP3", "OP3", "P", "OP1", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "H41", "H42", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {"2": "5-prime"} + }, + "CMP_5p": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N=C(N([H])[H])C([H])=C2[H])OC([H])(C([H])([H])OP(=O)([O-])O[H])C1([H])O", + "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "H41", "H42", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "HP3", "C3'", "H3'", "O3'"], + "link_labels": {"32": "3-prime"} + }, + "CMP_5": { + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C(=O)N=C(N([H])[H])C([H])=C2[H])C([H])(O[H])C1([H])O", + "atom_name": ["H43", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "H41", "H42", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'"], + "link_labels": {"28": "3-prime"} + }, "CMP_fl-ccd": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C([H])N=C3N([H])[H])OC2([H])C([H])([H])OP(=O)([O-])OC21[H]", "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "HN61", "HN62", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "O3'", "C3'", "H3'"], "link_labels": {} }, - "GMP_": { + "GMP_fl": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(N([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP(=O)([O-])O[H])C1([H])O[H]", "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "H21", "H22", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "HP3", "C3'", "H3'", "O3'", "H_t"], "link_labels": {} }, + "GMP_": { + "smiles": "[H]OP(=O)OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C2N=C(N([H])[H])N([H])C3=O)C([H])(O[H])C1([H])O", + "atom_name": ["HP3", "OP3", "P", "OP1", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "H21", "H22", "N1", "H1", "C6", "O6", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'"], + "link_labels": {"2": "5-prime", "34": "3-prime"} + }, + "GMP_3": { + "smiles": "[H]OP(=O)OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C2N=C(N([H])[H])N([H])C3=O)C([H])(O[H])C1([H])O[H]", + "atom_name": ["HP3", "OP3", "P", "OP1", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "H21", "H22", "N1", "H1", "C6", "O6", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {"2": "5-prime"} + }, + "GMP_5p": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(N([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP(=O)([O-])O[H])C1([H])O", + "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "H21", "H22", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "HP3", "C3'", "H3'", "O3'"], + "link_labels": {"35": "3-prime"} + }, + "GMP_5": { + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C2N=C(N([H])[H])N([H])C3=O)C([H])(O[H])C1([H])O", + "atom_name": ["H23", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "H21", "H22", "N1", "H1", "C6", "O6", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'"], + "link_labels": {"31": "3-prime"} + }, "GMP_fl-ccd": { "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C2N=C(N([H])[H])N([H])C3=O)C([H])(O[H])C1([H])O[H]", "atom_name": ["HO5'", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "HN21", "HN22", "N1", "HN1", "C6", "O6", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'", "HO3'"], "link_labels": {} }, - "UMP_": { + "UMP_fl": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C([H])=C2[H])OC([H])(C([H])([H])OP(=O)([O-])O[H])C1([H])O[H]", "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "HP3", "C3'", "H3'", "O3'", "H_t"], "link_labels": {} }, + "UMP_": { + "smiles": "[H]OP(=O)OC([H])([H])C1([H])OC([H])(N2C(=O)N([H])C(=O)C([H])=C2[H])C([H])(O[H])C1([H])O", + "atom_name": ["HP3", "OP3", "P", "OP1", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'"], + "link_labels": {"2": "5-prime", "30": "3-prime"} + }, + "UMP_3": { + "smiles": "[H]OP(=O)OC([H])([H])C1([H])OC([H])(N2C(=O)N([H])C(=O)C([H])=C2[H])C([H])(O[H])C1([H])O[H]", + "atom_name": ["HP3", "OP3", "P", "OP1", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {"2": "5-prime"} + }, + "UMP_5p": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C([H])=C2[H])OC([H])(C([H])([H])OP(=O)([O-])O[H])C1([H])O", + "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "HP3", "C3'", "H3'", "O3'"], + "link_labels": {"31": "3-prime"} + }, + "UMP_5": { + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C(=O)N([H])C(=O)C([H])=C2[H])C([H])(O[H])C1([H])O", + "atom_name": ["H7", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'"], + "link_labels": {"27": "3-prime"} + }, "UMP_fl-ccd": { "smiles": "[H]OC1([H])C([H])([H])C([H])(N2C(=O)N([H])C(=O)C([H])=C2[H])OC1([H])C([H])([H])OP(=O)([O-])[O-]", "atom_name": ["HO3'", "O3'", "C3'", "H3'", "C2'", "H2'", "H2''", "C1'", "H1'", "N1", "C2", "O2", "N3", "HN3", "C4", "O4", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3"], @@ -1226,31 +1417,46 @@ "atom_name": ["H7", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "HN3", "C4", "O4", "C5", "H5", "C6", "H6", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'"], "link_labels": {"26": "3-prime"} }, - "DAN_": { - "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C2N=C([H])N=C3N([H])[H])C([H])([H])C1([H])O[H]", - "atom_name": ["HO5'", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "H61", "H62", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'", "HO3'"], + "DAN_fl": { + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C(N([H])[H])N=C([H])N=C32)C([H])([H])C1([H])O[H]", + "atom_name": ["HO5'", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "H61", "H62", "N1", "C2", "H2", "N3", "C4", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'", "HO3'"], "link_labels": {} }, + "DAN_": { + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C(N([H])[H])N=C([H])N=C32)C([H])([H])C1([H])O", + "atom_name": ["HO5'", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "H61", "H62", "N1", "C2", "H2", "N3", "C4", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'"], + "link_labels": {"29": "3-prime"} + }, "DAN_fl-ccd": { "smiles": "[H]OC([H])([H])C([H])(O[H])C([H])(O[H])C1([H])OC(C(=O)[O-])=C([H])C([H])(O[H])C1([H])N([H])C(=O)C([H])([H])[H]", "atom_name": ["HO9", "O9", "C9", "H91", "H92", "C8", "H8", "O8", "HO8", "C7", "H7", "O7", "HO7", "C6", "H6", "O6", "C2", "C1", "O1A", "O1B", "C3", "H3", "C4", "H4", "O4", "HO4", "C5", "H5", "N5", "HN5", "C10", "O10", "C11", "H111", "H112", "H113"], "link_labels": {} }, - "DCN_": { + "DCN_fl": { "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C(=O)N=C(N([H])[H])C([H])=C2[H])C([H])([H])C1([H])O[H]", "atom_name": ["HO5'", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "H41", "H42", "C5", "H5", "C6", "H6", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'", "HO3'"], "link_labels": {} }, + "DCN_": { + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C(=O)N=C(N([H])[H])C([H])=C2[H])C([H])([H])C1([H])O", + "atom_name": ["HO5'", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "H41", "H42", "C5", "H5", "C6", "H6", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'"], + "link_labels": {"27": "3-prime"} + }, "DCN_fl-ccd": { "smiles": "[H]OC1=C(OC2=C([H])C([H])=C(Cl)C([H])=C2[H])C([H])=C([H])C(Cl)=C1[H]", "atom_name": ["H17", "O17", "C6", "C5", "O7", "C8", "C9", "H9", "C10", "H10", "C11", "CL15", "C12", "H12", "C13", "H13", "C4", "H4", "C3", "H3", "C2", "CL14", "C1", "H1"], "link_labels": {} }, - "DGN_": { + "DGN_fl": { "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C2N=C(N([H])[H])N([H])C3=O)C([H])([H])C1([H])O[H]", "atom_name": ["HO5'", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "H21", "H22", "N1", "H1", "C6", "O6", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'", "HO3'"], "link_labels": {} }, + "DGN_": { + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C2N=C(N([H])[H])N([H])C3=O)C([H])([H])C1([H])O", + "atom_name": ["HO5'", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "H21", "H22", "N1", "H1", "C6", "O6", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'"], + "link_labels": {"30": "3-prime"} + }, "DGN_fl-ccd": { "smiles": "[H]N([H])C(=O)C([H])([H])C([H])([H])C([H])(C(=O)[O-])N([H])[H]", "atom_name": ["HE21", "NE2", "HE22", "CD", "OE1", "CG", "HG2", "HG3", "CB", "HB2", "HB3", "CA", "HA", "C", "O", "OXT", "N", "H", "H2"], @@ -1271,16 +1477,26 @@ "atom_name": ["H2", "N", "CA", "HA", "C", "O", "OXT", "CB", "HB2", "HB3", "CG", "HG2", "HG3", "CD", "OE1", "NE2", "HE21", "HE22"], "link_labels": {"1": "N-term"} }, - "DTN_": { + "DTN_fl": { "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C(=O)N([H])C(=O)C(C([H])([H])[H])=C2[H])C([H])([H])C1([H])O[H]", "atom_name": ["HO5'", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C7", "H71", "H72", "H73", "C6", "H6", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'", "HO3'"], "link_labels": {} }, + "DTN_": { + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C(=O)N([H])C(=O)C(C([H])([H])[H])=C2[H])C([H])([H])C1([H])O", + "atom_name": ["HO5'", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C7", "H71", "H72", "H73", "C6", "H6", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'"], + "link_labels": {"29": "3-prime"} + }, "DTN_fl-ccd": { "smiles": "O=S([O-])S(=O)[O-]", "atom_name": ["O1", "S1", "O2", "S2", "O3", "O4"], "link_labels": {} }, + "13P_fl": { + "smiles": "[H]OC1([H])C([H])(C2=C([H])N(C([H])([H])[H])C(=O)N(C([H])([H])C([H])([H])C([H])([H])C([H])(C(=O)[O-])N([H])[H])C2=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "C5", "C6", "H6", "N1", "C10", "H20", "H21", "H22", "C2", "O2", "N3", "C11", "H23", "H24", "C12", "H25", "H26", "C13", "H27", "H28", "C14", "H29", "C15", "O30", "O31", "N40", "H30", "H31", "C4", "O4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "13P_": { "smiles": "[H]OC1([H])C([H])(C2=C([H])N(C([H])([H])[H])C(=O)N(C([H])([H])C([H])([H])C([H])([H])C([H])(C(=O)[O-])N([H])[H])C2=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "C5", "C6", "H6", "N1", "C10", "H20", "H21", "H22", "C2", "O2", "N3", "C11", "H23", "H24", "C12", "H25", "H26", "C13", "H27", "H28", "C14", "H29", "C15", "O30", "O31", "N40", "H30", "H31", "C4", "O4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1306,6 +1522,11 @@ "atom_name": ["HO3", "O3", "C3", "H31", "H32", "C2", "O2", "C1", "H11", "H12", "O1", "P", "O1P", "O2P", "O3P"], "link_labels": {} }, + "1MA_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C([H])N(C([H])([H])[H])C3=[N+]([H])[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C10", "H20", "H21", "H22", "C6", "N6", "H61", "H62", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "1MA_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C([H])N(C([H])([H])[H])C3=[N+]([H])[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C10", "H20", "H21", "H22", "C6", "N6", "H61", "H62", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1351,6 +1572,11 @@ "atom_name": ["HN61", "N6", "C6", "C5", "C4", "N3", "C2", "H2", "N1", "CM1", "HM11", "HM12", "HM13", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "H9", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO2'", "C8", "H8", "N7"], "link_labels": {"26": "3-prime"} }, + "1MG_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(N([H])[H])N(C([H])([H])[H])C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "C10", "H20", "H21", "H22", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "1MG_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(N([H])[H])N(C([H])([H])[H])C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "C10", "H20", "H21", "H22", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1381,6 +1607,11 @@ "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "HN21", "HN22", "N1", "CM1", "HM11", "HM12", "HM13", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "C3'", "H3'", "O3'"], "link_labels": {"37": "3-prime"} }, + "1MI_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C([H])N(C([H])([H])[H])C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C10", "H20", "H21", "H22", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "1MI_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C([H])N(C([H])([H])[H])C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C10", "H20", "H21", "H22", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1406,6 +1637,11 @@ "atom_name": ["H9", "O2", "C4", "H7", "H8", "C1", "H1", "H2", "C", "H10", "C3", "H5", "H6", "O1", "H11", "C2", "H3", "H4", "O", "H12"], "link_labels": {} }, + "26A_fl": { + "smiles": "[H]OC([H])(C([H])(C(=O)[O-])N([H])C(=O)N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C3([H])O[H])C2=NC(SC([H])([H])[H])=N1)C([H])([H])C([H])([H])[H]", + "atom_name": ["H28", "O33", "C12", "H22", "C11", "H21", "C15", "O30", "O32", "N40", "H20", "C10", "O31", "N6", "H61", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "S28", "C16", "H29", "H30", "H31", "N1", "C13", "H23", "H24", "C14", "H25", "H26", "H27"], + "link_labels": {} + }, "26A_": { "smiles": "[H]OC([H])(C([H])(C(=O)[O-])N([H])C(=O)N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C3([H])O[H])C2=NC(SC([H])([H])[H])=N1)C([H])([H])C([H])([H])[H]", "atom_name": ["H28", "O33", "C12", "H22", "C11", "H21", "C15", "O30", "O32", "N40", "H20", "C10", "O31", "N6", "H61", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "S28", "C16", "H29", "H30", "H31", "N1", "C13", "H23", "H24", "C14", "H25", "H26", "H27"], @@ -1431,6 +1667,11 @@ "atom_name": ["H5'", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "C10", "H101", "H102", "H103", "C9", "H91", "H92", "H93", "N1", "C2", "H2", "N3", "C4", "C2'", "H2'", "O2'", "HO'2", "C3'", "H3'", "O3'", "HO'3"], "link_labels": {} }, + "27G_fl": { + "smiles": "[H]OC1([H])C([H])([N+]2=C([H])N(C([H])([H])[H])C3=C2N=C(N([H])C([H])([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C11", "H23", "H24", "H25", "C5", "C4", "N3", "C2", "N2", "1H2", "C10", "H20", "H21", "H22", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "27G_": { "smiles": "[H]OC1([H])C([H])([N+]2=C([H])N(C([H])([H])[H])C3=C2N=C(N([H])C([H])([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C11", "H23", "H24", "H25", "C5", "C4", "N3", "C2", "N2", "1H2", "C10", "H20", "H21", "H22", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1456,24 +1697,29 @@ "atom_name": ["H18", "CAD", "CAE", "H17", "CAI", "H16", "CAU", "CAP", "H14", "H15", "OAR", "CAT", "OAC", "CAW", "CAL", "H13", "CAH", "H12", "CAG", "H11", "CAK", "H10", "CAV", "CAS", "OAB", "OAQ", "CAO", "H8", "H9", "CAN", "H6", "H7", "CAM", "H4", "H5", "CAA", "H1", "H2", "H3", "CAJ", "H20", "CAF", "H19"], "link_labels": {} }, + "2MA_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])[H])N=C(C([H])([H])[H])N=C32)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "H61", "H62", "N1", "C2", "C10", "H20", "H21", "H22", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "2MA_": { - "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(C([H])([H])[H])N=C3N([H])[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", - "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "C10", "H20", "H21", "H22", "N1", "C6", "N6", "H61", "H62", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])[H])N=C(C([H])([H])[H])N=C32)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "H61", "H62", "N1", "C2", "C10", "H20", "H21", "H22", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], "link_labels": {"30": "5-prime", "35": "3-prime"} }, "2MA_3": { - "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(C([H])([H])[H])N=C3N([H])[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O[H]", - "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "C10", "H20", "H21", "H22", "N1", "C6", "N6", "H61", "H62", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])[H])N=C(C([H])([H])[H])N=C32)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "H61", "H62", "N1", "C2", "C10", "H20", "H21", "H22", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], "link_labels": {"30": "5-prime"} }, "2MA_5p": { - "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(C([H])([H])[H])N=C3N([H])[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O", - "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "C10", "H20", "H21", "H22", "N1", "C6", "N6", "H61", "H62", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'"], + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])[H])N=C(C([H])([H])[H])N=C32)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "H61", "H62", "N1", "C2", "C10", "H20", "H21", "H22", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'"], "link_labels": {"36": "3-prime"} }, "2MA_5": { - "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C2N=C(C([H])([H])[H])N=C3N([H])[H])C([H])(O[H])C1([H])O", - "atom_name": ["H63", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "C10", "H20", "H21", "H22", "N1", "C6", "N6", "H61", "H62", "C2'", "H2'", "O2'", "HO'2", "C3'", "H3'", "O3'"], + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C(N([H])[H])N=C(C([H])([H])[H])N=C32)C([H])(O[H])C1([H])O", + "atom_name": ["H63", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "H61", "H62", "N1", "C2", "C10", "H20", "H21", "H22", "N3", "C4", "C2'", "H2'", "O2'", "HO'2", "C3'", "H3'", "O3'"], "link_labels": {"33": "3-prime"} }, "2MA_fl-ccd": { @@ -1501,6 +1747,11 @@ "atom_name": ["HN6", "N6", "C6", "C5", "C4", "N3", "C2", "CM2", "HM21", "HM22", "HM23", "N1", "HN1", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "H9", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO2'", "C8", "H8", "N7"], "link_labels": {"26": "3-prime"} }, + "2MG_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(N([H])C([H])([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "C10", "H20", "H21", "H22", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "2MG_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(N([H])C([H])([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "C10", "H20", "H21", "H22", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1531,31 +1782,21 @@ "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "HN2", "CM2", "HM21", "HM22", "HM23", "N1", "HN1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "C3'", "H3'", "O3'"], "link_labels": {"37": "3-prime"} }, - "2RG_": { - "smiles": "[H]OC1([H])C([H])(OC2([H])C([H])(N3C([H])=NC4=C3N=C(N([H])[H])N([H])C4=O)OC([H])(C([H])([H])OP(=O)[O-])C2([H])O)OC([H])(C([H])([H])OP(=O)([O-])O[H])C1([H])O[H]", - "atom_name": ["H21", "O31", "C10", "H20", "CM2", "HM'1", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "O30", "C12", "H24", "C13", "H25", "H26", "O33", "P33", "O35", "O36", "O34", "H27", "C11", "H22", "O32", "H23"], - "link_labels": {"33": "5-prime", "38": "3-prime"} - }, - "2RG_3": { - "smiles": "[H]OC1([H])C([H])(OC2([H])C([H])(N3C([H])=NC4=C3N=C(N([H])[H])N([H])C4=O)OC([H])(C([H])([H])OP(=O)[O-])C2([H])O[H])OC([H])(C([H])([H])OP(=O)([O-])O[H])C1([H])O[H]", - "atom_name": ["H21", "O31", "C10", "H20", "CM2", "HM'1", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "O30", "C12", "H24", "C13", "H25", "H26", "O33", "P33", "O35", "O36", "O34", "H27", "C11", "H22", "O32", "H23"], - "link_labels": {"33": "5-prime"} - }, - "2RG_5p": { - "smiles": "[H]OC1([H])C([H])(OC2([H])C([H])(N3C([H])=NC4=C3N=C(N([H])[H])N([H])C4=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C2([H])O)OC([H])(C([H])([H])OP(=O)([O-])O[H])C1([H])O[H]", - "atom_name": ["H21", "O31", "C10", "H20", "CM2", "HM'1", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "O30", "C12", "H24", "C13", "H25", "H26", "O33", "P33", "O35", "O36", "O34", "H27", "C11", "H22", "O32", "H23"], - "link_labels": {"39": "3-prime"} - }, - "2RG_5": { - "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C2N=C(N([H])[H])N([H])C3=O)C([H])(OC2([H])OC([H])(C([H])([H])OP(=O)([O-])O[H])C([H])(O[H])C2([H])O[H])C1([H])O", - "atom_name": ["H28", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "C2'", "H2'", "O2'", "CM2", "HM'1", "O30", "C12", "H24", "C13", "H25", "H26", "O33", "P33", "O35", "O36", "O34", "H27", "C11", "H22", "O32", "H23", "C10", "H20", "O31", "H21", "C3'", "H3'", "O3'"], - "link_labels": {"52": "3-prime"} + "2RG_fl": { + "smiles": "[H]OC1([H])C([H])(OC2([H])C([H])(N3C([H])=NC4=C3N=C(N([H])[H])N([H])C4=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C2([H])O[H])OC([H])(C([H])([H])OP(=O)([O-])O[H])C1([H])O[H]", + "atom_name": ["H21", "O31", "C10", "H20", "CM2", "HM'1", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "O30", "C12", "H24", "C13", "H25", "H26", "O33", "P33", "O35", "O36", "O34", "H27", "C11", "H22", "O32", "H23"], + "link_labels": {} }, "2RG_fl-ccd": { "smiles": "[H]OC([H])(C([H])([H])[H])C([H])(C([H])=O)C1([H])N=C(C(=O)[O-])C([H])(SC2([H])C([H])([H])N([H])C([H])(C(=O)N([H])C3=C([H])C(C(=O)[O-])=C([H])C([H])=C3[H])C2([H])[H])C1([H])C([H])([H])[H]", "atom_name": ["HOAG", "OAG", "CAE", "HAE", "CAF", "HAF", "HAFA", "HAFB", "CAB", "HAB", "CAA", "HAA", "OAC", "CAD", "HAD", "NAJ", "CAL", "CAM", "OAU", "OAT", "CAI", "HAI", "SAK", "CG", "HG", "CD", "HD", "HDA", "N", "HN", "CA", "HA", "C", "O", "NAX", "HNAX", "CAY", "CAZ", "HAZ", "CBA", "CBE", "OBF", "OBG", "CBB", "HBB", "CBC", "HBC", "CBD", "HBD", "CB", "HB", "HBA", "CAH", "HAH", "CAS", "HAS", "HASA", "HASB"], "link_labels": {} }, + "3AU_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N(C([H])([H])C([H])([H])C([H])(C(=O)[O-])[N+]([H])([H])[H])C(=O)C([H])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C10", "H20", "H21", "C11", "H22", "H23", "C12", "H24", "C13", "O30", "O31", "N40", "H25", "H26", "H27", "C4", "O4", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "3AU_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N(C([H])([H])C([H])([H])C([H])(C(=O)[O-])[N+]([H])([H])[H])C(=O)C([H])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C10", "H20", "H21", "C11", "H22", "H23", "C12", "H24", "C13", "O30", "O31", "N40", "H25", "H26", "H27", "C4", "O4", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1616,6 +1857,11 @@ "atom_name": ["H13", "O5'", "C5'", "H5'", "H5'A", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C10", "H10", "H10A", "C11", "H11", "H11A", "C12", "H12", "C13", "O30", "O31", "N40", "HN40", "HN4A", "C4", "O4", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'"], "link_labels": {"40": "3-prime"} }, + "3MC_fl": { + "smiles": "[H]N=C1C([H])=C([H])N(C2([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C2([H])O[H])C(=O)N1C([H])([H])[H]", + "atom_name": ["1H4", "N4", "C4", "C5", "H5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C2", "O2", "N3", "C10", "H20", "H21", "H22"], + "link_labels": {} + }, "3MC_": { "smiles": "[H]N=C1C([H])=C([H])N(C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])O[H])C(=O)N1C([H])([H])[H]", "atom_name": ["1H4", "N4", "C4", "C5", "H5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C2", "O2", "N3", "C10", "H20", "H21", "H22"], @@ -1641,6 +1887,11 @@ "atom_name": ["H5", "C5", "C6", "H6", "N1", "HN1", "C2", "O2", "N3", "CN3", "H31", "H32", "H33", "C4", "N4", "HN41", "HN42"], "link_labels": {} }, + "3MP_fl": { + "smiles": "[H]OC1([H])C([H])(C2=C([H])N([H])C(=O)N(C([H])([H])[H])C2=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "C5", "C6", "H6", "N1", "HN1", "C2", "O2", "N3", "C10", "H20", "H21", "H22", "C4", "O4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "3MP_": { "smiles": "[H]OC1([H])C([H])(C2=C([H])N([H])C(=O)N(C([H])([H])[H])C2=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "C5", "C6", "H6", "N1", "HN1", "C2", "O2", "N3", "C10", "H20", "H21", "H22", "C4", "O4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1666,6 +1917,11 @@ "atom_name": ["HD2", "CD2", "NE2", "CZ", "HZ", "CE1", "HE1", "CD1", "HD1", "CG", "CB", "HB1", "HB2", "HB3"], "link_labels": {} }, + "3MU_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N(C([H])([H])[H])C(=O)C([H])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C10", "H20", "H21", "H22", "C4", "O4", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "3MU_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N(C([H])([H])[H])C(=O)C([H])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C10", "H20", "H21", "H22", "C4", "O4", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1696,6 +1952,11 @@ "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C10", "H10", "H10A", "H10B", "C4", "O4", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'", "H5'A", "O5'", "P", "OP1", "OP2", "O9", "C3'", "H3'", "O3'"], "link_labels": {"33": "3-prime"} }, + "4AC_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N=C(N([H])C(=O)C([H])([H])[H])C([H])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "1H4", "C10", "O30", "C11", "H20", "H21", "H22", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "4AC_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N=C(N([H])C(=O)C([H])([H])[H])C([H])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "1H4", "C10", "O30", "C11", "H20", "H21", "H22", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1726,6 +1987,11 @@ "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "H4", "C7", "O7", "CM7", "HM71", "HM72", "HM73", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP3", "OP2", "C3'", "H3'", "O3'"], "link_labels": {"36": "3-prime"} }, + "4MC_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N=C(N([H])C([H])([H])[H])C([H])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "1H4", "C10", "H20", "H21", "H22", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "4MC_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N=C(N([H])C([H])([H])[H])C([H])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "1H4", "C10", "H20", "H21", "H22", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1751,6 +2017,11 @@ "atom_name": ["H03", "N03", "C02", "N02", "H021", "H022", "N01", "H01", "C01", "H011", "H012", "C11", "H111", "H112", "C10", "H101", "H102", "C9", "H9", "C17", "O3", "N2", "HN2", "C18", "H18", "C27", "H27", "C28", "H28", "S1", "O5", "O4", "CAB", "CAD", "HAD", "CAF", "HAF", "CAE", "HAE", "CAC", "HAC", "CAA", "HAA", "C19", "H191", "H192", "C20", "H201", "H202", "C21", "C26", "H26", "C25", "H25", "C24", "H24", "C23", "H23", "C22", "H22", "N1", "HN1", "C8", "O2", "N3", "C48", "H481", "H482", "C49", "H491", "H492", "N4", "C33", "H331", "H332", "H333", "C40", "H401", "H402", "C39", "H391", "H392"], "link_labels": {} }, + "5CU_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(C([H])([H])C(=O)[O-])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "C11", "O30", "O31", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "5CU_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(C([H])([H])C(=O)[O-])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "C11", "O30", "O31", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1776,6 +2047,11 @@ "atom_name": ["H4", "C6", "C5", "C51", "O53", "O52", "C4", "O4", "N3", "H3", "C2", "O2", "N1", "H2"], "link_labels": {} }, + "5DU_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(C([H])([H])N([H])C([H])([H])C(=O)[O-])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "N40", "H22", "C11", "H23", "H24", "C12", "O30", "O31", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "5DU_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(C([H])([H])N([H])C([H])([H])C(=O)[O-])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "N40", "H22", "C11", "H23", "H24", "C12", "O30", "O31", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1801,6 +2077,11 @@ "atom_name": ["H5", "O27", "C26", "H3", "H4", "C25", "H1", "H2", "S24", "C8", "C9", "F13", "C10", "N14", "H8", "C15", "H9", "C19", "C20", "H10", "C21", "H11", "C22", "H12", "C23", "H13", "C18", "C17", "H14", "H15", "C16", "H16", "H17", "C5", "S1", "O3", "O2", "N4", "H6", "H7", "C6", "F11", "C7", "F12"], "link_labels": {} }, + "5FC_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N=C(N([H])[H])C(C([H])=O)=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "1H4", "2H4", "C5", "C10", "H20", "O30", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "5FC_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N=C(N([H])[H])C(C([H])=O)=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "1H4", "2H4", "C5", "C10", "H20", "O30", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1846,6 +2127,11 @@ "atom_name": ["H7", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "HN41", "HN42", "C5", "C5A", "H5A", "O5A", "C6", "H6", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'"], "link_labels": {"29": "3-prime"} }, + "5HU_fl": { + "smiles": "[H]OC1=C([H])N(C2([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C2([H])O[H])C(=O)N([H])C1=O", + "atom_name": ["H20", "O30", "C5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C2", "O2", "N3", "H3", "C4", "O4"], + "link_labels": {} + }, "5HU_": { "smiles": "[H]OC1=C([H])N(C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])O[H])C(=O)N([H])C1=O", "atom_name": ["H20", "O30", "C5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C2", "O2", "N3", "H3", "C4", "O4"], @@ -1891,6 +2177,11 @@ "atom_name": ["HO5B", "O5B", "C5A", "H5A1", "H5A2", "C5", "C6", "HC6", "N1", "C1'", "HC1'", "O4'", "C4'", "HC4'", "C5'", "H5'", "H5''", "O5'", "H1", "C3'", "HC3'", "O3'", "C2'", "H2'", "H2''", "C2", "O2", "N3", "HN3", "C4", "O4"], "link_labels": {"21": "3-prime"} }, + "5MC_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N=C(N([H])[H])C(C([H])([H])[H])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "1H4", "2H4", "C5", "C10", "H20", "H21", "H22", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "5MC_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N=C(N([H])[H])C(C([H])([H])[H])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "1H4", "2H4", "C5", "C10", "H20", "H21", "H22", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1921,6 +2212,11 @@ "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "HN41", "HN42", "C5", "CM5", "HM51", "HM52", "HM53", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "C3'", "H3'", "O3'"], "link_labels": {"34": "3-prime"} }, + "5MU_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(C([H])([H])[H])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "H22", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "5MU_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(C([H])([H])[H])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "H22", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -1951,31 +2247,41 @@ "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "HN3", "C4", "O4", "C5", "C5M", "H71", "H72", "H73", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "C3'", "H3'", "O3'"], "link_labels": {"33": "3-prime"} }, + "66A_fl": { + "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N(C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C3([H])O[H])C2=NC([H])=N1)C([H])([H])[H])C([H])(O[H])C([H])([H])[H]", + "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C15", "H28", "H29", "H30", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], + "link_labels": {} + }, "66A_": { - "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N(C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C1([H])O[H])C([H])([H])[H])C([H])(O[H])C([H])([H])[H]", - "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C15", "H28", "H29", "H30", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], - "link_labels": {"31": "5-prime", "36": "3-prime"} + "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N(C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C3([H])O[H])C2=NC([H])=N1)C([H])([H])[H])C([H])(O[H])C([H])([H])[H]", + "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C15", "H28", "H29", "H30", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], + "link_labels": {"26": "5-prime", "31": "3-prime"} }, "66A_3": { - "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N(C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O[H])C1([H])O[H])C([H])([H])[H])C([H])(O[H])C([H])([H])[H]", - "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C15", "H28", "H29", "H30", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], - "link_labels": {"31": "5-prime"} + "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N(C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O[H])C3([H])O[H])C2=NC([H])=N1)C([H])([H])[H])C([H])(O[H])C([H])([H])[H]", + "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C15", "H28", "H29", "H30", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], + "link_labels": {"26": "5-prime"} }, "66A_5p": { - "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N(C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C1([H])O[H])C([H])([H])[H])C([H])(O[H])C([H])([H])[H]", - "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C15", "H28", "H29", "H30", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], - "link_labels": {"37": "3-prime"} + "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N(C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C3([H])O[H])C2=NC([H])=N1)C([H])([H])[H])C([H])(O[H])C([H])([H])[H]", + "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C15", "H28", "H29", "H30", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], + "link_labels": {"32": "3-prime"} }, "66A_5": { - "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N(C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])O[H])C([H])(O)C1([H])O[H])C([H])([H])[H])C([H])(O[H])C([H])([H])[H]", - "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "H31", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C15", "H28", "H29", "H30", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], - "link_labels": {"34": "3-prime"} + "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N(C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])O[H])C([H])(O)C3([H])O[H])C2=NC([H])=N1)C([H])([H])[H])C([H])(O[H])C([H])([H])[H]", + "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "H31", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C15", "H28", "H29", "H30", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], + "link_labels": {"29": "3-prime"} }, "66A_fl-ccd": { "smiles": "[H]C1=NC(N([H])[H])=C2C(=N1)N(C1([H])C([H])([H])C([H])(C([H])([H])N3C([H])([H])C([H])([H])C3([H])[H])C1([H])[H])C([H])=C2C1=C([H])C([H])=C([H])C(OC([H])([H])C2=C([H])C([H])=C([H])C([H])=C2[H])=C1[H]", "atom_name": ["H26", "C04", "N05", "C06", "N24", "H16", "H17", "C07", "C02", "N03", "N01", "C25", "H24", "C26", "H20", "H21", "C27", "H9", "C29", "H18", "H19", "N30", "C31", "H10", "H11", "C32", "H12", "H13", "C33", "H14", "H15", "C28", "H22", "H23", "C09", "H27", "C08", "C10", "C15", "H4", "C14", "H3", "C13", "H2", "C12", "O16", "C17", "H28", "H29", "C18", "C23", "H30", "C22", "H8", "C21", "H7", "C20", "H6", "C19", "H5", "C11", "H1"], "link_labels": {} }, + "6GA_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])C(=O)N([H])C([H])([H])C(=O)[O-])N=C([H])N=C32)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C10", "O31", "N40", "H20", "C11", "H21", "H22", "C12", "O30", "O32", "N1", "C2", "H2", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "6GA_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])C(=O)N([H])C([H])([H])C(=O)[O-])N=C([H])N=C32)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C10", "O31", "N40", "H20", "C11", "H21", "H22", "C12", "O30", "O32", "N1", "C2", "H2", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2001,6 +2307,11 @@ "atom_name": ["H17", "O2", "N1", "H16", "C12", "O15", "C11", "H1", "C9", "O10", "N8", "H8", "C1", "H9", "H10", "C2", "C7", "H15", "C6", "H14", "C5", "H13", "C4", "H12", "C3", "H11", "C16", "H2", "H3", "C17", "C18", "H4", "C19", "H5", "C20", "F29", "C21", "H7", "C22", "H6"], "link_labels": {} }, + "6IA_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C([H])N=C3N([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "1H6", "C10", "H20", "H21", "C11", "H22", "C12", "C13", "H23", "H24", "H25", "C14", "H26", "H27", "H28", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "6IA_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C([H])N=C3N([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "1H6", "C10", "H20", "H21", "C11", "H22", "C12", "C13", "H23", "H24", "H25", "C14", "H26", "H27", "H28", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2046,6 +2357,11 @@ "atom_name": ["H164", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "HN6", "C12", "H121", "H122", "C13", "H131", "H132", "C14", "H14", "C15", "H151", "H152", "H153", "C16", "H161", "H162", "H163", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'"], "link_labels": {"45": "3-prime"} }, + "6MA_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])C([H])([H])[H])N=C([H])N=C32)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C10", "H20", "H21", "H22", "N1", "C2", "H2", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "6MA_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])C([H])([H])[H])N=C([H])N=C32)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C10", "H20", "H21", "H22", "N1", "C2", "H2", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2091,31 +2407,41 @@ "atom_name": ["H62", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "H61", "C1", "H11", "H12", "H13", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'"], "link_labels": {"32": "3-prime"} }, + "6TA_fl": { + "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N([H])C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C1([H])O[H])C([H])(O[H])C([H])([H])[H]", + "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "1H6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], + "link_labels": {} + }, "6TA_": { - "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C3([H])O[H])C2=NC([H])=N1)C([H])(O[H])C([H])([H])[H]", - "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], - "link_labels": {"27": "5-prime", "32": "3-prime"} + "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N([H])C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C1([H])O[H])C([H])(O[H])C([H])([H])[H]", + "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "1H6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], + "link_labels": {"32": "5-prime", "37": "3-prime"} }, "6TA_3": { - "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O[H])C3([H])O[H])C2=NC([H])=N1)C([H])(O[H])C([H])([H])[H]", - "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], - "link_labels": {"27": "5-prime"} + "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N([H])C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O[H])C1([H])O[H])C([H])(O[H])C([H])([H])[H]", + "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "1H6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], + "link_labels": {"32": "5-prime"} }, "6TA_5p": { - "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C3([H])O[H])C2=NC([H])=N1)C([H])(O[H])C([H])([H])[H]", - "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], - "link_labels": {"33": "3-prime"} + "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N([H])C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C1([H])O[H])C([H])(O[H])C([H])([H])[H]", + "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "1H6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], + "link_labels": {"38": "3-prime"} }, "6TA_5": { - "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])O[H])C([H])(O)C3([H])O[H])C2=NC([H])=N1)C([H])(O[H])C([H])([H])[H]", - "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "H28", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], - "link_labels": {"30": "3-prime"} + "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N([H])C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])O[H])C([H])(O)C1([H])O[H])C([H])(O[H])C([H])([H])[H]", + "atom_name": ["H27", "O31", "C12", "O32", "C11", "H21", "N40", "H20", "C10", "O30", "N6", "1H6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "H28", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C13", "H22", "O33", "H23", "C14", "H24", "H25", "H26"], + "link_labels": {"35": "3-prime"} }, "6TA_fl-ccd": { "smiles": "[H]C1=NC([H])=C2C(=C1[H])C([H])([H])N(C(=O)N([H])C([H])([H])C1([H])C([H])([H])C13C([H])([H])C([H])([H])N(C(=O)OC(C([H])([H])[H])(C([H])([H])[H])C([H])([H])[H])C([H])([H])C3([H])[H])C2([H])[H]", "atom_name": ["H11", "C24", "N25", "C26", "H12", "C27", "C22", "C23", "H30", "C21", "H9", "H10", "N20", "C18", "O19", "N17", "H29", "C16", "H27", "H28", "C15", "H8", "C14", "H25", "H26", "C11", "C12", "H23", "H24", "C13", "H6", "H7", "N8", "C6", "O7", "O5", "C2", "C4", "H1", "H2", "H3", "C1", "H15", "H16", "H17", "C3", "H18", "H19", "H20", "C9", "H21", "H22", "C10", "H4", "H5", "C28", "H13", "H14"], "link_labels": {} }, + "7MG_fl": { + "smiles": "[H]OC1([H])C([H])([N+]2=C([H])N(C([H])([H])[H])C3=C2N=C(N([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C10", "H20", "H21", "H22", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "7MG_": { "smiles": "[H]OC1([H])C([H])([N+]2=C([H])N(C([H])([H])[H])C3=C2N=C(N([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C10", "H20", "H21", "H22", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2161,6 +2487,11 @@ "atom_name": ["H83", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C4", "C5", "C6", "O6", "N1", "HN1", "C2", "N2", "HN21", "HN22", "N3", "N7", "CM7", "HM71", "HM72", "HM73", "C8", "H81", "H82", "C2'", "H2'", "O2'", "HO2'", "C3'", "H3'", "O3'"], "link_labels": {"36": "3-prime"} }, + "BCU_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(C([H])([H])C(=O)N([H])[H])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "C11", "O30", "N40", "H22", "H23", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "BCU_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(C([H])([H])C(=O)N([H])[H])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "C11", "O30", "N40", "H22", "H23", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2186,6 +2517,11 @@ "atom_name": ["H1", "O12", "C11", "H2", "H3", "C2", "H4", "C3", "H5", "H6", "O4", "C5", "C6", "C7", "H10", "C8", "H9", "C9", "H8", "C10", "H7", "C1", "H11", "H12"], "link_labels": {} }, + "BUG_fl": { + "smiles": "[H]OC([H])(C([H])([H])C1=C(C([H])([H])[H])N=C2N1C(=O)C1=C(N2C([H])([H])[H])N(C2([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C2([H])O[H])C([H])=N1)C([H])(C(=O)[O-])N([H])[H]", + "atom_name": ["H31", "O32", "C15", "H28", "C14", "H26", "H27", "C13", "C12", "C11", "H23", "H24", "H25", "N2", "C2", "N1", "C6", "O6", "C5", "C4", "N3", "C10", "H20", "H21", "H22", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C8", "H8", "N7", "C16", "H29", "C17", "O30", "O31", "N40", "H30", "H32"], + "link_labels": {} + }, "BUG_": { "smiles": "[H]OC([H])(C([H])([H])C1=C(C([H])([H])[H])N=C2N1C(=O)C1=C(N2C([H])([H])[H])N(C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])O[H])C([H])=N1)C([H])(C(=O)[O-])N([H])[H]", "atom_name": ["H31", "O32", "C15", "H28", "C14", "H26", "H27", "C13", "C12", "C11", "H23", "H24", "H25", "N2", "C2", "N1", "C6", "O6", "C5", "C4", "N3", "C10", "H20", "H21", "H22", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C8", "H8", "N7", "C16", "H29", "C17", "O30", "O31", "N40", "H30", "H32"], @@ -2226,6 +2562,11 @@ "atom_name": ["H2", "N", "CA", "HA1", "C", "O", "OXT", "CB", "CG1", "HG11", "HG12", "HG13", "CG2", "HG21", "HG22", "HG23", "CG3", "HG31", "HG32", "HG33"], "link_labels": {"1": "N-term"} }, + "CMU_fl": { + "smiles": "[H]OC([H])(C(=O)OC([H])([H])[H])C1=C([H])N(C2([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C2([H])O[H])C(=O)N([H])C1=O", + "atom_name": ["H21", "O31", "C10", "H20", "C11", "O30", "O32", "C12", "H22", "H23", "H24", "C5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C2", "O2", "N3", "H3", "C4", "O4"], + "link_labels": {} + }, "CMU_": { "smiles": "[H]OC([H])(C(=O)OC([H])([H])[H])C1=C([H])N(C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])O[H])C(=O)N([H])C1=O", "atom_name": ["H21", "O31", "C10", "H20", "C11", "O30", "O32", "C12", "H22", "H23", "H24", "C5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C2", "O2", "N3", "H3", "C4", "O4"], @@ -2251,6 +2592,11 @@ "atom_name": ["H10", "N10", "C9", "N5", "C4", "H4C1", "H4C2", "C3", "C2", "CL1", "C15", "O16", "N14", "HN2", "C12", "O13", "N11", "HN1", "C6", "H6C1", "H6C2", "C7", "H7C1", "H7C2", "C8", "H8C1", "H8C2"], "link_labels": {} }, + "DAG_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=C(C([H])([H])N([H])[H])C3=C2N=C(N([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "C7", "C10", "H20", "H21", "N40", "H22", "H23", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "DAG_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=C(C([H])([H])N([H])[H])C3=C2N=C(N([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "C7", "C10", "H20", "H21", "N40", "H22", "H23", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2276,6 +2622,11 @@ "atom_name": ["HO1", "O1", "C1", "H1", "O5", "C5", "H5", "C6", "H61", "H62", "H63", "C4", "H4", "N4", "HN41", "HN42", "C3", "H3", "O3", "HO3", "C2", "H2", "O2", "HO2"], "link_labels": {} }, + "DHU_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C([H])([H])C2([H])[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "H5", "H20", "C6", "H6", "H21", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "DHU_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C([H])([H])C2([H])[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "H5", "H20", "C6", "H6", "H21", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2306,6 +2657,11 @@ "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "HN3", "C4", "O4", "C5", "H51", "H52", "C6", "H61", "H62", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "C3'", "H3'", "O3'"], "link_labels": {"32": "3-prime"} }, + "DMA_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N(C([H])([H])[H])C([H])([H])[H])N=C([H])N=C32)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "C10", "H20", "H21", "H22", "C11", "H23", "H24", "H25", "N1", "C2", "H2", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "DMA_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N(C([H])([H])[H])C([H])([H])[H])N=C([H])N=C32)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "C10", "H20", "H21", "H22", "C11", "H23", "H24", "H25", "N1", "C2", "H2", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2331,6 +2687,11 @@ "atom_name": ["H2", "C2", "C3", "C4", "H41", "H42", "H43", "C5", "H51", "H52", "H53", "C1", "H11", "H12", "O1", "PA", "O1A", "O2A", "O3A", "PB", "O1B", "O2B", "O3B"], "link_labels": {} }, + "DMG_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(N(C([H])([H])[H])C([H])([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "C10", "H20", "H21", "H22", "C11", "H23", "H24", "H25", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "DMG_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(N(C([H])([H])[H])C([H])([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "C10", "H20", "H21", "H22", "C11", "H23", "H24", "H25", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2356,6 +2717,11 @@ "atom_name": ["H41", "C4", "H42", "H43", "N", "C5", "H51", "H52", "H53", "CA", "HA3", "HA2", "C", "O", "OXT"], "link_labels": {} }, + "DMU_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C([H])(C([H])([H])[H])C2([H])[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "H5", "C10", "H21", "H22", "H23", "C6", "H6", "H20", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "DMU_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C([H])(C([H])([H])[H])C2([H])[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "H5", "C10", "H21", "H22", "H23", "C6", "H6", "H20", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2381,6 +2747,11 @@ "atom_name": ["H42", "O6", "C11", "H40", "H41", "C9", "H35", "O1", "C10", "H36", "O7", "C3", "H3", "C4", "H4", "C57", "H29", "H30", "O61", "H31", "O5", "C6", "H5", "O16", "C18", "H6", "H7", "C19", "H8", "H9", "C22", "H10", "H11", "C25", "H12", "H13", "C28", "H14", "H15", "C31", "H16", "H17", "C34", "H18", "H19", "C37", "H20", "H21", "C40", "H22", "H23", "C43", "H24", "H25", "H26", "C1", "H1", "O49", "H27", "C2", "H2", "O55", "H28", "C5", "H32", "O3", "H38", "C7", "H33", "O4", "H39", "C8", "H34", "O2", "H37"], "link_labels": {} }, + "DWG_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N([H])C2=NC(C([H])([H])[H])=C([H])N2C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "H24", "C2", "N2", "C11", "C10", "H20", "H21", "H22", "C12", "H23", "N1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "DWG_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N([H])C2=NC(C([H])([H])[H])=C([H])N2C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "H24", "C2", "N2", "C11", "C10", "H20", "H21", "H22", "C12", "H23", "N1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2406,6 +2777,11 @@ "atom_name": ["H14", "C32", "C20", "C21", "N22", "C23", "N24", "H24", "C25", "C26", "H6", "C27", "H10", "C28", "H7", "C29", "H11", "C30", "H13", "N31", "C9", "C10", "C15", "H5", "C14", "H9", "C13", "H4", "C12", "H8", "C11", "H12", "C8", "H2", "H3", "C5", "H1", "C6", "N7", "C4", "O33", "C2", "H19", "C1", "H21", "H22", "H23", "C16", "H20", "C18", "H17", "H18", "C19", "H15", "H16"], "link_labels": {} }, + "EQG_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=C(C([H])([H])N([H])C3([H])C([H])(O[H])C([H])(O[H])C4([H])OC43[H])C3=C2N=C(N([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "C7", "C10", "H20", "H21", "N40", "H22", "C11", "H23", "C12", "H24", "O30", "H25", "C13", "H26", "O31", "H27", "C14", "H28", "O32", "C15", "H29", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "EQG_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=C(C([H])([H])N([H])C3([H])C([H])(O[H])C([H])(O[H])C4([H])OC43[H])C3=C2N=C(N([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "C7", "C10", "H20", "H21", "N40", "H22", "C11", "H23", "C12", "H24", "O30", "H25", "C13", "H26", "O31", "H27", "C14", "H28", "O32", "C15", "H29", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2431,6 +2807,11 @@ "atom_name": ["H391", "N39", "C38", "N40", "H1", "H401", "N37", "H371", "O36", "C35", "H351", "H352", "C34", "H341", "H342", "C33", "H331", "C02", "O01", "N03", "H031", "C04", "H041", "C11", "O32", "N12", "H121", "C13", "H131", "C28", "H281", "H282", "C29", "H291", "C30", "H301", "H302", "H303", "C31", "H311", "H312", "H313", "C14", "H141", "O15", "H151", "C16", "H161", "H162", "C17", "O27", "N18", "H181", "C19", "H191", "H192", "C20", "H201", "H202", "C21", "C22", "H221", "C23", "H231", "C24", "H241", "C25", "H251", "C26", "H261", "C05", "H051", "C10", "H101", "H102", "C09", "H091", "H092", "C08", "H081", "H082", "C07", "H071", "H072", "C06", "H061", "H062", "N41", "H411", "C42", "O51", "O43", "C44", "H441", "H442", "C45", "C50", "H501", "C49", "H491", "C48", "H481", "C47", "H471", "C46", "H461"], "link_labels": {} }, + "HCU_fl": { + "smiles": "[H]OC([H])(C(=O)[O-])C1=C([H])N(C2([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C2([H])O[H])C(=O)N([H])C1=O", + "atom_name": ["H21", "O30", "C10", "H20", "C11", "O31", "O32", "C5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C2", "O2", "N3", "H3", "C4", "O4"], + "link_labels": {} + }, "HCU_": { "smiles": "[H]OC([H])(C(=O)[O-])C1=C([H])N(C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])O[H])C(=O)N([H])C1=O", "atom_name": ["H21", "O30", "C10", "H20", "C11", "O31", "O32", "C5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C2", "O2", "N3", "H3", "C4", "O4"], @@ -2456,31 +2837,41 @@ "atom_name": ["H14", "O2", "C10", "H7", "H8", "C8", "H6", "C9", "H12", "H13", "O3", "P1", "O5", "O4", "O6", "C7", "H4", "H5", "C6", "H2", "H3", "N3", "C5", "H1", "N4", "C4", "C3", "N2", "H9", "C2", "N5", "H10", "H11", "N1", "C1", "O1"], "link_labels": {} }, + "HIA_fl": { + "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C1([H])O[H])C([H])([H])[H]", + "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C13", "H23", "H24", "H25"], + "link_labels": {} + }, "HIA_": { - "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C3([H])O[H])C2=NC([H])=N1)C([H])([H])[H]", - "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C13", "H23", "H24", "H25"], - "link_labels": {"28": "5-prime", "33": "3-prime"} + "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C1([H])O[H])C([H])([H])[H]", + "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C13", "H23", "H24", "H25"], + "link_labels": {"33": "5-prime", "38": "3-prime"} }, "HIA_3": { - "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O[H])C3([H])O[H])C2=NC([H])=N1)C([H])([H])[H]", - "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C13", "H23", "H24", "H25"], - "link_labels": {"28": "5-prime"} + "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O[H])C1([H])O[H])C([H])([H])[H]", + "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C13", "H23", "H24", "H25"], + "link_labels": {"33": "5-prime"} }, "HIA_5p": { - "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C3([H])O[H])C2=NC([H])=N1)C([H])([H])[H]", - "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C13", "H23", "H24", "H25"], - "link_labels": {"34": "3-prime"} + "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C1([H])O[H])C([H])([H])[H]", + "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C13", "H23", "H24", "H25"], + "link_labels": {"39": "3-prime"} }, "HIA_5": { - "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])O[H])C([H])(O)C3([H])O[H])C2=NC([H])=N1)C([H])([H])[H]", - "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "H29", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C13", "H23", "H24", "H25"], - "link_labels": {"31": "3-prime"} + "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])O[H])C([H])(O)C1([H])O[H])C([H])([H])[H]", + "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "H29", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C13", "H23", "H24", "H25"], + "link_labels": {"36": "3-prime"} }, "HIA_fl-ccd": { "smiles": "[H]C1=NC([H])=C(C([H])([H])C([H])(C(=O)N([H])[H])N([H])[H])N1[H]", "atom_name": ["HE1", "CE1", "NE2", "CD2", "HD2", "CG", "CB", "HB2", "HB3", "CA", "HA", "C", "O", "NXT", "HXT1", "HXT2", "N", "H", "H2", "ND1", "HD1"], "link_labels": {} }, + "HMC_fl": { + "smiles": "[H]OC([H])([H])C1=C([H])N(C2([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C2([H])O[H])C(=O)N=C1N([H])[H]", + "atom_name": ["H22", "O30", "C10", "H20", "H21", "C5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C2", "O2", "N3", "C4", "N4", "1H4", "2H4"], + "link_labels": {} + }, "HMC_": { "smiles": "[H]OC([H])([H])C1=C([H])N(C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])O[H])C(=O)N=C1N([H])[H]", "atom_name": ["H22", "O30", "C10", "H20", "H21", "C5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C2", "O2", "N3", "C4", "N4", "1H4", "2H4"], @@ -2506,24 +2897,29 @@ "atom_name": ["HO7", "O7", "C7", "H71", "H72", "C5", "C6", "H6", "C1", "H1", "O1", "HO1", "C2", "H2", "O2", "HO2", "C3", "H3", "O3", "HO3", "C4", "H4", "O4", "HO4"], "link_labels": {} }, + "HNA_fl": { + "smiles": "[H]OC([H])(C([H])(C(=O)[O-])N([H])C(=O)N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C3([H])O[H])C2=NC([H])=N1)C([H])([H])C([H])([H])[H]", + "atom_name": ["H28", "O33", "C12", "H22", "C11", "H21", "C15", "O30", "O32", "N40", "H20", "C10", "O31", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C13", "H23", "H24", "C14", "H25", "H26", "H27"], + "link_labels": {} + }, "HNA_": { - "smiles": "[H]OC([H])(C([H])(C(=O)[O-])N([H])C(=O)N([H])C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C1([H])O[H])C([H])([H])C([H])([H])[H]", - "atom_name": ["H28", "O33", "C12", "H22", "C11", "H21", "C15", "O30", "O32", "N40", "H20", "C10", "O31", "N6", "1H6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C13", "H23", "H24", "C14", "H25", "H26", "H27"], - "link_labels": {"35": "5-prime", "40": "3-prime"} + "smiles": "[H]OC([H])(C([H])(C(=O)[O-])N([H])C(=O)N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C3([H])O[H])C2=NC([H])=N1)C([H])([H])C([H])([H])[H]", + "atom_name": ["H28", "O33", "C12", "H22", "C11", "H21", "C15", "O30", "O32", "N40", "H20", "C10", "O31", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C13", "H23", "H24", "C14", "H25", "H26", "H27"], + "link_labels": {"30": "5-prime", "35": "3-prime"} }, "HNA_3": { - "smiles": "[H]OC([H])(C([H])(C(=O)[O-])N([H])C(=O)N([H])C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O[H])C1([H])O[H])C([H])([H])C([H])([H])[H]", - "atom_name": ["H28", "O33", "C12", "H22", "C11", "H21", "C15", "O30", "O32", "N40", "H20", "C10", "O31", "N6", "1H6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C13", "H23", "H24", "C14", "H25", "H26", "H27"], - "link_labels": {"35": "5-prime"} + "smiles": "[H]OC([H])(C([H])(C(=O)[O-])N([H])C(=O)N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O[H])C3([H])O[H])C2=NC([H])=N1)C([H])([H])C([H])([H])[H]", + "atom_name": ["H28", "O33", "C12", "H22", "C11", "H21", "C15", "O30", "O32", "N40", "H20", "C10", "O31", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C13", "H23", "H24", "C14", "H25", "H26", "H27"], + "link_labels": {"30": "5-prime"} }, "HNA_5p": { - "smiles": "[H]OC([H])(C([H])(C(=O)[O-])N([H])C(=O)N([H])C1=NC([H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C1([H])O[H])C([H])([H])C([H])([H])[H]", - "atom_name": ["H28", "O33", "C12", "H22", "C11", "H21", "C15", "O30", "O32", "N40", "H20", "C10", "O31", "N6", "1H6", "C6", "N1", "C2", "H2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C13", "H23", "H24", "C14", "H25", "H26", "H27"], - "link_labels": {"41": "3-prime"} + "smiles": "[H]OC([H])(C([H])(C(=O)[O-])N([H])C(=O)N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C3([H])O[H])C2=NC([H])=N1)C([H])([H])C([H])([H])[H]", + "atom_name": ["H28", "O33", "C12", "H22", "C11", "H21", "C15", "O30", "O32", "N40", "H20", "C10", "O31", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "H2", "N1", "C13", "H23", "H24", "C14", "H25", "H26", "H27"], + "link_labels": {"36": "3-prime"} }, "HNA_5": { - "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C2N=C([H])N=C3N([H])C(=O)N([H])C([H])(C(=O)[O-])C([H])(O[H])C([H])([H])C([H])([H])[H])C([H])(O[H])C1([H])O", - "atom_name": ["H29", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "1H6", "C10", "O31", "N40", "H20", "C11", "H21", "C15", "O30", "O32", "C12", "H22", "O33", "H28", "C13", "H23", "H24", "C14", "H25", "H26", "H27", "C2'", "H2'", "O2'", "HO'2", "C3'", "H3'", "O3'"], + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C(N([H])C(=O)N([H])C([H])(C(=O)[O-])C([H])(O[H])C([H])([H])C([H])([H])[H])N=C([H])N=C32)C([H])(O[H])C1([H])O", + "atom_name": ["H29", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C10", "O31", "N40", "H20", "C11", "H21", "C15", "O30", "O32", "C12", "H22", "O33", "H28", "C13", "H23", "H24", "C14", "H25", "H26", "H27", "N1", "C2", "H2", "N3", "C4", "C2'", "H2'", "O2'", "HO'2", "C3'", "H3'", "O3'"], "link_labels": {"49": "3-prime"} }, "HNA_fl-ccd": { @@ -2531,6 +2927,11 @@ "atom_name": ["HO22", "O22", "C22", "C23", "HC23", "C24", "HC24", "C25", "HC25", "C14", "C15", "C16", "O16", "C2", "C1", "O1", "HO1", "C6", "HC6", "C5", "HC5", "C4", "N4", "O4A", "O4B", "C3", "C13", "O13"], "link_labels": {} }, + "HWG_fl": { + "smiles": "[H]OC([H])(C([H])([H])C1=C(C([H])([H])[H])N=C2N1C(=O)C1=C(N2C([H])([H])[H])N(C2([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C2([H])O[H])C([H])=N1)C([H])(C(=O)OC([H])([H])[H])N([H])C(=O)OC([H])([H])[H]", + "atom_name": ["H37", "O34", "C15", "H28", "C14", "H26", "H27", "C13", "C12", "C11", "H23", "H24", "H25", "N2", "C2", "N1", "C6", "O6", "C5", "C4", "N3", "C10", "H20", "H21", "H22", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C8", "H8", "N7", "C16", "H29", "C17", "O30", "O31", "C18", "H30", "H31", "H32", "N40", "H33", "C19", "O32", "O33", "C20", "H34", "H35", "H36"], + "link_labels": {} + }, "HWG_": { "smiles": "[H]OC([H])(C([H])([H])C1=C(C([H])([H])[H])N=C2N1C(=O)C1=C(N2C([H])([H])[H])N(C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])O[H])C([H])=N1)C([H])(C(=O)OC([H])([H])[H])N([H])C(=O)OC([H])([H])[H]", "atom_name": ["H37", "O34", "C15", "H28", "C14", "H26", "H27", "C13", "C12", "C11", "H23", "H24", "H25", "N2", "C2", "N1", "C6", "O6", "C5", "C4", "N3", "C10", "H20", "H21", "H22", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C8", "H8", "N7", "C16", "H29", "C17", "O30", "O31", "C18", "H30", "H31", "H32", "N40", "H33", "C19", "O32", "O33", "C20", "H34", "H35", "H36"], @@ -2556,6 +2957,11 @@ "atom_name": ["H8", "C8", "C7", "H7", "C12", "C39", "O43", "N41", "H41", "N40", "C38", "O42", "C3", "C4", "H4", "C5", "C30", "H301", "H302", "H303", "C6", "H6", "C1", "C26", "H261", "H262", "H263", "C2", "H2", "C45", "C46", "H461", "H462", "H463", "C50", "H501", "H502", "H503", "C54", "H541", "H542", "H543", "C11", "C34", "H341", "H342", "H343", "C10", "C9", "O13", "C14", "H141", "H142", "C15", "H151", "H152", "O16"], "link_labels": {} }, + "INO_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C([H])N([H])C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "INO_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C([H])N([H])C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2581,6 +2987,11 @@ "atom_name": ["HO3", "O3", "C2", "C3", "H3", "C4", "C7", "O1", "O2", "C5", "H5", "C6", "H6", "N1", "O4"], "link_labels": {} }, + "IWG_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N([H])C2=NC(C([H])([H])[H])=C(C([H])([H])[H])N2C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "H23", "C2", "N2", "C11", "C10", "H20", "H21", "H22", "C12", "C13", "H24", "H25", "H26", "N1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "IWG_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N([H])C2=NC(C([H])([H])[H])=C(C([H])([H])[H])N2C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "H23", "C2", "N2", "C11", "C10", "H20", "H21", "H22", "C12", "C13", "H24", "H25", "H26", "N1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2606,6 +3017,11 @@ "atom_name": ["H1", "C5", "C2", "O8", "C6", "C7", "C14", "H6", "C16", "H7", "C17", "H3", "C15", "H2", "C9", "C10", "CL13", "C12", "H5", "C11", "H4", "S3", "N1", "N4"], "link_labels": {} }, + "K2C_fl": { + "smiles": "[H]OC1([H])C([H])([N+]2=C(N([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])(C(=O)[O-])N([H])[H])N=C(N([H])[H])C([H])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "N40", "H20", "C10", "H21", "H22", "C11", "H23", "H24", "C12", "H25", "H26", "C13", "H27", "H28", "C14", "H29", "H30", "C15", "H31", "C16", "O30", "O31", "N41", "H32", "H33", "N3", "C4", "N4", "1H4", "2H4", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "K2C_": { "smiles": "[H]OC1([H])C([H])([N+]2=C(N([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])(C(=O)[O-])N([H])[H])N=C(N([H])[H])C([H])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "N40", "H20", "C10", "H21", "H22", "C11", "H23", "H24", "C12", "H25", "H26", "C13", "H27", "H28", "C14", "H29", "H30", "C15", "H31", "C16", "O30", "O31", "N41", "H32", "H33", "N3", "C4", "N4", "1H4", "2H4", "C5", "H5", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -2631,6 +3047,11 @@ "atom_name": ["H9", "C9", "C10", "H10", "C11", "H11", "C19", "C20", "C8", "H8", "C21", "C22", "C23", "C16", "C15", "C14", "C1", "H1", "C2", "H2", "C3", "H3", "C4", "H4", "N13", "HN13", "C17", "C18", "N12", "HN12", "C5", "O24", "N6", "HN6", "C7", "H71", "H72"], "link_labels": {} }, + "M1G_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C([H])=NC3=C2N=C(N([H])[H])N(C([H])([H])[H])C3=O)C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "C10", "H20", "H21", "H22", "C6", "O6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "M1G_": { "smiles": "[H]C1=NC2=C(N=C(N([H])[H])N(C([H])([H])[H])C2=O)N1C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C1([H])OC([H])([H])[H]", "atom_name": ["H8", "C8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "C10", "H20", "H21", "H22", "C6", "O6", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], @@ -2676,6 +3097,11 @@ "atom_name": ["H9", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "C6A", "H6A", "C7A", "H7A", "C8A", "H8A", "N1", "C6", "O6", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'"], "link_labels": {"33": "3-prime"} }, + "M2A_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C([H])=NC3=C2N=C([H])N(C([H])([H])[H])C3=[N+]([H])[H])C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C10", "H20", "H21", "H22", "C6", "N6", "1H6", "2H6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "M2A_": { "smiles": "[H]C1=NC2=C(N=C([H])N2C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])OC([H])([H])[H])C(=[N+]([H])[H])N1C([H])([H])[H]", "atom_name": ["H2", "C2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C6", "N6", "1H6", "2H6", "N1", "C10", "H20", "H21", "H22"], @@ -2706,6 +3132,11 @@ "atom_name": ["H19", "C15", "N3", "C14", "C17", "N6", "C18", "H22", "N2", "C4", "H9", "O9", "C2", "H6", "C1", "H4", "H5", "O7", "P2", "O6", "O5", "O4", "P1", "O1", "O2", "O3", "C3", "H7", "O8", "C5", "H10", "O10", "C6", "O11", "C7", "C12", "N1", "H15", "C13", "H16", "H17", "H18", "C11", "H14", "C10", "H13", "C9", "H12", "C8", "H11", "C16", "N5", "H20", "H21", "N4"], "link_labels": {"28": "3-prime"} }, + "M3U_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C(=O)N(C([H])([H])[H])C(=O)C([H])=C2[H])C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C10", "H20", "H21", "H22", "C4", "O4", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "M3U_": { "smiles": "[H]C1=C([H])N(C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])OC([H])([H])[H])C(=O)N(C([H])([H])[H])C1=O", "atom_name": ["H5", "C5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C2", "O2", "N3", "C10", "H20", "H21", "H22", "C4", "O4"], @@ -2731,6 +3162,11 @@ "atom_name": ["H12", "C10", "N3", "C11", "C12", "H13", "N4", "H14", "N5", "C13", "C14", "H15", "C9", "C8", "O3", "N2", "C7", "H10", "H11", "C5", "H8", "O2", "C6", "H9", "F1", "F2", "C4", "H6", "H7", "C3", "H5", "C2", "O1", "N1", "H4", "C1", "H1", "H2", "H3"], "link_labels": {} }, + "M4C_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C(=O)N=C(N([H])C([H])([H])[H])C([H])=C2[H])C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "1H4", "C10", "H20", "H21", "H22", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "M4C_": { "smiles": "[H]C1=C([H])N(C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])OC([H])([H])[H])C(=O)N=C1N([H])C([H])([H])[H]", "atom_name": ["H5", "C5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C2", "O2", "N3", "C4", "N4", "1H4", "C10", "H20", "H21", "H22"], @@ -2761,6 +3197,11 @@ "atom_name": ["H5", "C4", "C5", "H6", "N1", "C6", "H1'", "O4", "C10", "H4'", "C11", "H5'", "H5'A", "O5", "P1", "O6", "O7", "O8", "C9", "H3'", "O3", "C8", "H2'", "O2", "C2", "H14", "H15", "H16", "C1", "O1", "N2", "C3", "N3", "HN4", "C7", "H10", "H10A", "H10B"], "link_labels": {"20": "3-prime"} }, + "MAU_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C(=O)N([H])C(=O)C(C([H])([H])N([H])C([H])([H])C(=O)[O-])=C2[H])C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "N40", "H22", "C11", "H23", "H24", "C12", "O30", "O31", "C6", "H6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MAU_": { "smiles": "[H]C1=C(C([H])([H])N([H])C([H])([H])C(=O)[O-])C(=O)N([H])C(=O)N1C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C1([H])OC([H])([H])[H]", "atom_name": ["H6", "C6", "C5", "C10", "H20", "H21", "N40", "H22", "C11", "H23", "H24", "C12", "O30", "O31", "C4", "O4", "N3", "H3", "C2", "O2", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], @@ -2786,6 +3227,11 @@ "atom_name": ["HO4", "O4", "C4", "C3", "C7", "O7", "C8", "C9", "HC9", "C10", "HC01", "C11", "HC11", "C12", "HC21", "C13", "HC31", "C14", "HC41", "O18", "C17", "HC71", "C19", "HC91", "C42", "H421", "H422", "H423", "C20", "HC02", "O20", "C43", "H431", "H432", "H433", "C21", "C22", "HC22", "C23", "HC32", "C24", "HC42", "C25", "H251", "H252", "N26", "HN62", "C27", "O27", "C28", "HC82", "C45", "H451", "H452", "C46", "H461", "H462", "H463", "C29", "O29", "HO92", "O34", "C33", "HC33", "C35", "HC53", "C36", "HC63", "C37", "HC73", "C38", "HC83", "C39", "H391", "H392", "H393", "C32", "C47", "H471", "H472", "H473", "C48", "H481", "H482", "H483", "C31", "HC13", "O31", "HO13", "C30", "H30", "O30", "HO3", "C44", "H441", "H442", "H443", "C16", "HC61", "O16", "HO61", "C15", "HC51", "O15", "HO51", "C41", "H411", "H412", "H413", "C2", "O2", "N1", "C40", "H401", "H402", "H403", "C6", "HC6", "C5", "HC5"], "link_labels": {} }, + "MCU_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C(=O)N([H])C(=O)C(C([H])([H])C(=O)N([H])[H])=C2[H])C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "C11", "O30", "N40", "H22", "H23", "C6", "H6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MCU_": { "smiles": "[H]C1=C(C([H])([H])C(=O)N([H])[H])C(=O)N([H])C(=O)N1C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C1([H])OC([H])([H])[H]", "atom_name": ["H6", "C6", "C5", "C10", "H20", "H21", "C11", "O30", "N40", "H22", "H23", "C4", "O4", "N3", "H3", "C2", "O2", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], @@ -2811,6 +3257,11 @@ "atom_name": ["HO1", "O1", "C1", "H1", "O5", "C5", "H5", "C6", "O6A", "O6B", "C6A", "H12", "H13", "H14", "C4", "H4", "O4", "C4A", "H1A", "H2A", "H3A", "C3", "H3", "O3", "HO3", "C2", "H2", "O2", "HO2"], "link_labels": {} }, + "MEU_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C(=O)N([H])C(=O)C(C([H])([H])C(=O)OC([H])([H])[H])=C2[H])C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "C11", "O31", "O30", "C12", "H22", "H23", "H24", "C6", "H6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MEU_": { "smiles": "[H]C1=C(C([H])([H])C(=O)OC([H])([H])[H])C(=O)N([H])C(=O)N1C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C1([H])OC([H])([H])[H]", "atom_name": ["H6", "C6", "C5", "C10", "H20", "H21", "C11", "O31", "O30", "C12", "H22", "H23", "H24", "C4", "O4", "N3", "H3", "C2", "O2", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], @@ -2841,6 +3292,11 @@ "atom_name": ["H2", "N", "CA", "HA2", "HA3", "C", "O", "OXT", "CB", "HB1", "HB2", "HB3"], "link_labels": {"1": "N-term"} }, + "MFC_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C(=O)N=C(N([H])[H])C(C([H])=O)=C2[H])C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "1H4", "2H4", "C5", "C10", "H20", "O30", "C6", "H6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MFC_": { "smiles": "[H]C(=O)C1=C([H])N(C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])OC([H])([H])[H])C(=O)N=C1N([H])[H]", "atom_name": ["H20", "C10", "O30", "C5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C2", "O2", "N3", "C4", "N4", "1H4", "2H4"], @@ -2866,24 +3322,29 @@ "atom_name": ["HOH", "OH", "CZ", "CE1", "HE1", "CD1", "HD1", "CG2", "CB2", "HB2", "CA2", "N2", "C1", "CA1", "HA1", "N1", "H", "H2", "CB1", "HB1", "OG1", "HG1", "CG1", "HG11", "HG12", "HG13", "N3", "CA3", "HA31", "HA32", "C3", "O3", "OXT", "C2", "O2", "CD2", "HD2", "CE2", "F"], "link_labels": {} }, + "MMA_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C([H])=NC3=C(N([H])C([H])([H])[H])N=C([H])N=C32)C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C10", "H20", "H21", "H22", "N1", "C2", "H2", "N3", "C4", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MMA_": { - "smiles": "[H]C1=NC2=C(N=C([H])N2C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])OC([H])([H])[H])C(N([H])C([H])([H])[H])=N1", - "atom_name": ["H2", "C2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C6", "N6", "1H6", "C10", "H20", "H21", "H22", "N1"], - "link_labels": {"18": "5-prime", "23": "3-prime"} + "smiles": "[H]C1=NC(N([H])C([H])([H])[H])=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C3([H])OC([H])([H])[H])C2=N1", + "atom_name": ["H2", "C2", "N1", "C6", "N6", "1H6", "C10", "H20", "H21", "H22", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C4", "N3"], + "link_labels": {"24": "5-prime", "29": "3-prime"} }, "MMA_3": { - "smiles": "[H]OC1([H])C([H])(C([H])([H])OP(=O)[O-])OC([H])(N2C([H])=NC3=C2N=C([H])N=C3N([H])C([H])([H])[H])C1([H])OC([H])([H])[H]", - "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "1H6", "C10", "H20", "H21", "H22", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP(=O)[O-])OC([H])(N2C([H])=NC3=C(N([H])C([H])([H])[H])N=C([H])N=C32)C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C10", "H20", "H21", "H22", "N1", "C2", "H2", "N3", "C4", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], "link_labels": {"10": "5-prime"} }, "MMA_5p": { - "smiles": "[H]C1=NC2=C(N=C([H])N2C2([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C2([H])OC([H])([H])[H])C(N([H])C([H])([H])[H])=N1", - "atom_name": ["H2", "C2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C6", "N6", "1H6", "C10", "H20", "H21", "H22", "N1"], - "link_labels": {"24": "3-prime"} + "smiles": "[H]C1=NC(N([H])C([H])([H])[H])=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C3([H])OC([H])([H])[H])C2=N1", + "atom_name": ["H2", "C2", "N1", "C6", "N6", "1H6", "C10", "H20", "H21", "H22", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C4", "N3"], + "link_labels": {"30": "3-prime"} }, "MMA_5": { - "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C2N=C([H])N=C3N([H])C([H])([H])[H])C([H])(OC([H])([H])[H])C1([H])O", - "atom_name": ["H23", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "1H6", "C10", "H20", "H21", "H22", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C3'", "H3'", "O3'"], + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C(N([H])C([H])([H])[H])N=C([H])N=C32)C([H])(OC([H])([H])[H])C1([H])O", + "atom_name": ["H23", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C10", "H20", "H21", "H22", "N1", "C2", "H2", "N3", "C4", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C3'", "H3'", "O3'"], "link_labels": {"36": "3-prime"} }, "MMA_fl-ccd": { @@ -2891,6 +3352,11 @@ "atom_name": ["HO6", "O6", "C6", "H61", "H62", "C5", "H5", "O5", "C1", "H1", "O1", "C7", "H71", "H72", "H73", "C2", "H2", "O2", "HO2", "C3", "H3", "O3", "HO3", "C4", "H4", "O4", "HO4"], "link_labels": {} }, + "MMG_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C([H])=NC3=C2N=C(N([H])C([H])([H])[H])N([H])C3=O)C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "C10", "H20", "H21", "H22", "N1", "H1", "C6", "O6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MMG_": { "smiles": "[H]C1=NC2=C(N=C(N([H])C([H])([H])[H])N([H])C2=O)N1C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C1([H])OC([H])([H])[H]", "atom_name": ["H8", "C8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "C10", "H20", "H21", "H22", "N1", "H1", "C6", "O6", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], @@ -2916,6 +3382,11 @@ "atom_name": ["H12", "C12", "N22", "C19", "C17", "C10", "H10", "C16", "C13", "C5", "H5", "C3", "H3", "C1", "H1", "C2", "H2", "C4", "H4", "C18", "C14", "C6", "H6", "C8", "H8", "C15", "C20", "O23", "O24", "C9", "H9", "C7", "H7", "C11", "H11", "N21", "HN21"], "link_labels": {} }, + "MMI_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C([H])=NC3=C2N=C([H])N(C([H])([H])[H])C3=O)C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C10", "H20", "H21", "H22", "C6", "O6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MMI_": { "smiles": "[H]C1=NC2=C(N=C([H])N2C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])OC([H])([H])[H])C(=O)N1C([H])([H])[H]", "atom_name": ["H2", "C2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C6", "O6", "N1", "C10", "H20", "H21", "H22"], @@ -2941,6 +3412,11 @@ "atom_name": ["H31", "O31", "C32", "H32", "C37", "H371", "H372", "C38", "H38", "C30", "O32", "N4", "HN4", "C41", "H41", "C45", "O4", "N5", "HN5", "C51", "H511", "H512", "C52", "C57", "H57", "C56", "H56", "C55", "H55", "C54", "H54", "C53", "H53", "C42", "H42", "C44", "H441", "H442", "H443", "C43", "H431", "H432", "H433", "C39", "H391", "H392", "H393", "C31", "H1", "N3", "HN3", "C29", "O21", "C21", "H21", "N21", "H2", "C15", "O11", "C11", "H11", "C12", "H12", "C13", "H131", "H132", "H133", "C14", "H141", "H142", "H143", "N1", "HN1", "C16", "O12", "O13", "C17", "H171", "H172", "C28", "H281", "H282", "C27", "H271", "H272", "C26", "H261", "H262", "C25", "H251", "H252", "C24", "H241", "H242", "N22", "H22", "C23", "O22", "C22", "H221", "H222", "C33", "H331", "H332", "C34", "H34", "C35", "H351", "H352", "H353", "C36", "H361", "H362", "H363"], "link_labels": {} }, + "MMU_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C(=O)N([H])C(=O)C(C([H])([H])[H])=C2[H])C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "H22", "C6", "H6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MMU_": { "smiles": "[H]C1=C(C([H])([H])[H])C(=O)N([H])C(=O)N1C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C1([H])OC([H])([H])[H]", "atom_name": ["H6", "C6", "C5", "C10", "H20", "H21", "H22", "C4", "O4", "N3", "H3", "C2", "O2", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], @@ -2966,24 +3442,29 @@ "atom_name": ["HN1", "N1", "CAF", "OAC", "N2", "HN2", "CAB", "HAB", "HABA", "HABB", "CAA", "HAA", "HAAA", "HAAB"], "link_labels": {} }, + "MRA_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C([H])=NC3=C2N=C([H])N=C3N([H])[H])C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "1H6", "2H6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MRA_": { - "smiles": "[H]C1=NC(N([H])[H])=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C3([H])OC([H])([H])[H])C2=N1", - "atom_name": ["H2", "C2", "N1", "C6", "N6", "1H6", "2H6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C4", "N3"], - "link_labels": {"21": "5-prime", "26": "3-prime"} + "smiles": "[H]C1=NC2=C(N=C([H])N2C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])OC([H])([H])[H])C(N([H])[H])=N1", + "atom_name": ["H2", "C2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C6", "N6", "1H6", "2H6", "N1"], + "link_labels": {"18": "5-prime", "23": "3-prime"} }, "MRA_3": { - "smiles": "[H]OC1([H])C([H])(C([H])([H])OP(=O)[O-])OC([H])(N2C([H])=NC3=C(N([H])[H])N=C([H])N=C32)C1([H])OC([H])([H])[H]", - "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "2H6", "N1", "C2", "H2", "N3", "C4", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP(=O)[O-])OC([H])(N2C([H])=NC3=C2N=C([H])N=C3N([H])[H])C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "1H6", "2H6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], "link_labels": {"10": "5-prime"} }, "MRA_5p": { - "smiles": "[H]C1=NC(N([H])[H])=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C3([H])OC([H])([H])[H])C2=N1", - "atom_name": ["H2", "C2", "N1", "C6", "N6", "1H6", "2H6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C4", "N3"], - "link_labels": {"27": "3-prime"} + "smiles": "[H]C1=NC2=C(N=C([H])N2C2([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C2([H])OC([H])([H])[H])C(N([H])[H])=N1", + "atom_name": ["H2", "C2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C6", "N6", "1H6", "2H6", "N1"], + "link_labels": {"24": "3-prime"} }, "MRA_5": { - "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C(N([H])[H])N=C([H])N=C32)C([H])(OC([H])([H])[H])C1([H])O", - "atom_name": ["H9", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "2H6", "N1", "C2", "H2", "N3", "C4", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C3'", "H3'", "O3'"], + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C2N=C([H])N=C3N([H])[H])C([H])(OC([H])([H])[H])C1([H])O", + "atom_name": ["H9", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "1H6", "2H6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C3'", "H3'", "O3'"], "link_labels": {"33": "3-prime"} }, "MRA_fl-ccd": { @@ -2991,6 +3472,11 @@ "atom_name": ["H8", "C8", "C7", "C6", "C5", "H5", "C4", "H4", "C3", "N1", "HN1", "C9", "C14", "F1", "C13", "F2", "C12", "H12", "C11", "H11", "C10", "C15", "O1", "N2", "HN2", "O2", "C16", "H161", "H162", "C17", "H171", "H172", "O3", "HO3", "C2", "F3", "C1", "H1"], "link_labels": {} }, + "MRC_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C(=O)N=C(N([H])[H])C([H])=C2[H])C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "C4", "N4", "1H4", "2H4", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MRC_": { "smiles": "[H]C1=C([H])N(C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])OC([H])([H])[H])C(=O)N=C1N([H])[H]", "atom_name": ["H5", "C5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C2", "O2", "N3", "C4", "N4", "1H4", "2H4"], @@ -3016,6 +3502,11 @@ "atom_name": ["HO6", "O6", "C6", "H2", "C5", "H91", "C4", "H1", "H172", "C3", "C2", "H171", "C1", "O1B", "O1A", "C9'", "H9'1", "H9'2", "C8'", "H8'1", "H8'2", "C7'", "H7'1", "H7'2", "C6'", "H6'1", "H6'2", "C5'", "H5'1", "H5'2", "C4'", "H4'1", "H4'2", "C3'", "H3'1", "H3'2", "C2'", "H2'1", "H2'2", "C1'", "O1Q", "O1P", "C15", "H151", "H152", "H153", "O5", "C16", "H161", "H162", "C8", "H4", "C9", "H5", "H92", "C10", "H10", "O10", "C11", "H11", "C12", "H12", "C17", "H6", "H7", "H173", "C13", "H13", "O13", "HO13", "C14", "H141", "H142", "H143", "C7", "H3", "O7", "HO7"], "link_labels": {} }, + "MRG_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C([H])=NC3=C2N=C(N([H])[H])N([H])C3=O)C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MRG_": { "smiles": "[H]C1=NC2=C(N=C(N([H])[H])N([H])C2=O)N1C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C1([H])OC([H])([H])[H]", "atom_name": ["H8", "C8", "N7", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], @@ -3061,6 +3552,11 @@ "atom_name": ["H233", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "H21", "C21", "H211", "H212", "C22", "H221", "H222", "C23", "H231", "H232", "S24", "H24", "N1", "H1", "C6", "O6", "C2'", "H2'", "H2''", "C3'", "H3'", "O3'"], "link_labels": {"40": "3-prime"} }, + "MRI_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C([H])=NC3=C2N=C([H])N([H])C3=O)C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "H1", "C6", "O6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MRI_": { "smiles": "[H]C1=NC2=C(N=C([H])N2C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])OC([H])([H])[H])C(=O)N1[H]", "atom_name": ["H2", "C2", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C6", "O6", "N1", "H1"], @@ -3086,6 +3582,11 @@ "atom_name": ["H4", "OAF", "CAR", "CAP", "H5", "CAJ", "CAI", "CAN", "OAD", "CAM", "OAB", "H1", "CAK", "CAL", "CAQ", "OAE", "H10", "CAU", "H9", "CAW", "OAG", "H8", "CAV", "H7", "CAT", "H6", "OAA", "CAO", "OAC", "H2", "CAS", "H3"], "link_labels": {} }, + "MRP_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(C2=C([H])N([H])C(=O)N([H])C2=O)C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "C5", "C6", "H6", "N1", "HN1", "C2", "O2", "N3", "HN3", "C4", "O4", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MRP_": { "smiles": "[H]C1=C(C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])OC([H])([H])[H])C(=O)N([H])C(=O)N1[H]", "atom_name": ["H6", "C6", "C5", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C4", "O4", "N3", "HN3", "C2", "O2", "N1", "HN1"], @@ -3111,6 +3612,11 @@ "atom_name": ["HO1", "O1", "C1", "H1", "O5", "C5", "H5", "C6", "H61", "H62", "H63", "C4", "H4", "O4", "HO4", "C3", "H3", "O3", "C7", "H71", "H72", "H73", "C2", "H2", "O2", "HO2"], "link_labels": {} }, + "MRU_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C(=O)N([H])C(=O)C([H])=C2[H])C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MRU_": { "smiles": "[H]C1=C([H])N(C2([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C2([H])OC([H])([H])[H])C(=O)N([H])C1=O", "atom_name": ["H5", "C5", "C6", "H6", "N1", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C2", "O2", "N3", "H3", "C4", "O4"], @@ -3136,6 +3642,11 @@ "atom_name": ["HO3", "O3", "C3", "H3", "C2", "O2", "C1", "H11", "H12", "O1", "P1", "O3P", "O1P", "O2P", "C4", "H4", "O4", "HO4", "C5", "H51", "H52", "S1", "C6", "H61", "H62", "H63"], "link_labels": {} }, + "MTA_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C([H])=NC3=C(N(C([H])([H])[H])C([H])([H])[H])N=C([H])N=C32)C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "C10", "H20", "H21", "H22", "C11", "H23", "H24", "H25", "N1", "C2", "H2", "N3", "C4", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MTA_": { "smiles": "[H]C1=NC(N(C([H])([H])[H])C([H])([H])[H])=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C3([H])OC([H])([H])[H])C2=N1", "atom_name": ["H2", "C2", "N1", "C6", "N6", "C10", "H20", "H21", "H22", "C11", "H23", "H24", "H25", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3", "C4", "N3"], @@ -3161,6 +3672,11 @@ "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "H2", "N1", "C6", "N6", "H61", "H62", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "S5'", "CS", "HCS1", "HCS2", "HCS3", "C3'", "H3'", "O3'", "H3T"], "link_labels": {} }, + "MTG_fl": { + "smiles": "[H]OC1([H])C([H])(C([H])([H])OP([H])(=O)[O-])OC([H])(N2C([H])=NC3=C2N=C(N(C([H])([H])[H])C([H])([H])[H])N([H])C3=O)C1([H])OC([H])([H])[H]", + "atom_name": ["H_t", "O3'", "C3'", "H3'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "C10", "H20", "H21", "H22", "C11", "H23", "H24", "H25", "N1", "H1", "C6", "O6", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], + "link_labels": {} + }, "MTG_": { "smiles": "[H]C1=NC2=C(N=C(N(C([H])([H])[H])C([H])([H])[H])N([H])C2=O)N1C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C1([H])OC([H])([H])[H]", "atom_name": ["H8", "C8", "N7", "C5", "C4", "N3", "C2", "N2", "C10", "H20", "H21", "H22", "C11", "H23", "H24", "H25", "N1", "H1", "C6", "O6", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "CM2", "HM'1", "HM'2", "HM'3"], @@ -3186,6 +3702,11 @@ "atom_name": ["H41", "C4", "H42", "H43", "S3", "C2", "H21", "H22", "C1", "O5", "O6"], "link_labels": {} }, + "N2G_fl": { + "smiles": "[H]OC1([H])C([H])([N+]2=C([H])N(C([H])([H])[H])C3=C2N=C(N(C([H])([H])[H])C([H])([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C12", "H26", "H27", "H28", "C5", "C4", "N3", "C2", "N2", "C10", "H20", "H21", "H22", "C11", "H23", "H24", "H25", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "N2G_": { "smiles": "[H]OC1([H])C([H])([N+]2=C([H])N(C([H])([H])[H])C3=C2N=C(N(C([H])([H])[H])C([H])([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C12", "H26", "H27", "H28", "C5", "C4", "N3", "C2", "N2", "C10", "H20", "H21", "H22", "C11", "H23", "H24", "H25", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -3231,6 +3752,11 @@ "atom_name": ["H9", "O5'", "CAN", "HAN1", "HAN2", "CBD", "HBD", "OAU", "CBE", "HBE", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "N2", "H2", "CAM", "HAM1", "HAM2", "CAV", "CAH", "HAH", "CAG", "HAG", "CAJ", "HAJ", "CAY", "CAZ", "CAK", "HAK", "CAF", "HAF", "CAE", "HAE", "CAI", "HAI", "N1", "H1", "C6", "O6", "CAO", "HAO1", "HAO2", "CBC", "HBC", "O3'"], "link_labels": {"49": "3-prime"} }, + "OAU_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(OC([H])([H])C(=O)[O-])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "O30", "C10", "H20", "H21", "C11", "O31", "O32", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "OAU_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(OC([H])([H])C(=O)[O-])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "O30", "C10", "H20", "H21", "C11", "O31", "O32", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -3256,6 +3782,11 @@ "atom_name": ["H10", "C14", "H11", "C13", "C15", "H12", "H13", "H14", "C12", "H9", "C16", "H16", "H15", "C17", "H18", "H17", "C18", "C20", "H22", "C21", "H24", "H23", "C19", "H19", "H20", "H21", "C2", "H1", "N1", "C1", "C3", "H2", "C4", "C5", "H3", "N2", "H4", "C6", "C7", "H5", "C8", "H6", "C9", "H7", "C10", "H8", "C11"], "link_labels": {} }, + "OCU_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(C([H])([H])C(=O)OC([H])([H])[H])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "C11", "O31", "O30", "C12", "H22", "H23", "H24", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "OCU_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(C([H])([H])C(=O)OC([H])([H])[H])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "C10", "H20", "H21", "C11", "O31", "O30", "C12", "H22", "H23", "H24", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -3281,6 +3812,11 @@ "atom_name": ["H20", "O6", "C19", "C18", "O5", "H19", "C17", "H18", "C16", "C15", "C14", "H17", "C13", "O4", "H16", "C12", "O3", "H15", "C11", "H14", "C10", "S", "O", "O7", "N", "C9", "H12", "H13", "C8", "H10", "H11", "N1", "S1", "O1", "O2", "C2", "C3", "H4", "C4", "N2", "H5", "H6", "C5", "H7", "C6", "H8", "C7", "H9", "C1", "H2", "H3", "C", "H", "H1", "C21", "H22", "C20", "H21"], "link_labels": {} }, + "OEU_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(OC([H])([H])C(=O)OC([H])([H])[H])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "O30", "C10", "H20", "H21", "C11", "O31", "O32", "C12", "H22", "H23", "H24", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "OEU_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(OC([H])([H])C(=O)OC([H])([H])[H])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "O30", "C10", "H20", "H21", "C11", "O31", "O32", "C12", "H22", "H23", "H24", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -3306,6 +3842,11 @@ "atom_name": ["HO21", "O21", "C20", "H20", "C39", "H39", "H39A", "H39B", "C18", "H18", "C16", "O17", "N14", "HN14", "C12", "H12", "C10", "O11", "N30", "HN30", "C8", "H8", "H8A", "C1", "C6", "CL7", "C5", "H5", "C4", "H4", "C3", "H3", "C2", "H2", "C13", "H13", "H13A", "C15", "H15", "H15A", "C22", "C23", "H23", "C25", "H25", "C26", "H26", "C27", "H27", "C24", "H24", "N19", "HN19", "C28", "O29", "C9", "H9", "H9A", "C31", "H31", "H31A", "C32", "C33", "C38", "H38", "H38A", "H38B", "C34", "H34", "C35", "H35", "C37", "H37", "C36", "H36"], "link_labels": {} }, + "OMU_fl": { + "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(OC([H])([H])[H])=C2[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "O30", "C10", "H20", "H21", "H22", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "OMU_": { "smiles": "[H]OC1([H])C([H])(N2C(=O)N([H])C(=O)C(OC([H])([H])[H])=C2[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N1", "C2", "O2", "N3", "H3", "C4", "O4", "C5", "O30", "C10", "H20", "H21", "H22", "C6", "H6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -3351,6 +3892,11 @@ "atom_name": ["H7", "O5'", "C5'", "H5'", "H5''", "C4'", "H4'", "O4'", "C1'", "H1'", "N1", "C2", "O2", "N3", "HN3", "C4", "O4", "C5", "H5", "C6", "H6", "C2'", "H2'", "O2'", "CM2", "HM21", "HM22", "HM23", "C3'", "H3'", "O3'"], "link_labels": {"30": "3-prime"} }, + "PBG_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N(C([H])([H])[H])C2=NC(C([H])([H])[H])=C(C([H])([H])C([H])(C(=O)[O-])C([H])(C(=O)OC([H])([H])[H])N([H])C(=O)OC([H])([H])[H])N2C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C10", "H20", "H21", "H22", "C2", "N2", "C12", "C11", "H23", "H24", "H25", "C13", "C14", "H26", "H27", "C15", "H28", "C21", "O34", "O35", "C16", "H29", "C17", "O30", "O31", "C18", "H30", "H31", "H32", "N40", "H33", "C19", "O32", "O33", "C20", "H34", "H35", "H36", "N1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "PBG_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N(C([H])([H])[H])C2=NC(C([H])([H])[H])=C(C([H])([H])C([H])(C(=O)[O-])C([H])(C(=O)OC([H])([H])[H])N([H])C(=O)OC([H])([H])[H])N2C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C10", "H20", "H21", "H22", "C2", "N2", "C12", "C11", "H23", "H24", "H25", "C13", "C14", "H26", "H27", "C15", "H28", "C21", "O34", "O35", "C16", "H29", "C17", "O30", "O31", "C18", "H30", "H31", "H32", "N40", "H33", "C19", "O32", "O33", "C20", "H34", "H35", "H36", "N1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -3376,6 +3922,11 @@ "atom_name": ["H4A1", "C4A", "C3A", "C7A", "H7A2", "H7A1", "C8A", "H8A2", "H8A1", "C9A", "O3A", "O4A", "C2A", "C5A", "H5A2", "H5A1", "C6A", "O1A", "O2A", "C1A", "CHA", "HHA2", "HHA1", "N1", "H12", "H11", "NA", "HA"], "link_labels": {} }, + "PSU_fl": { + "smiles": "[H]OC1([H])C([H])(C2=C([H])N([H])C(=O)N([H])C2=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "C5", "C6", "H6", "N1", "HN1", "C2", "O2", "N3", "HN3", "C4", "O4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "PSU_": { "smiles": "[H]OC1([H])C([H])(C2=C([H])N([H])C(=O)N([H])C2=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "C5", "C6", "H6", "N1", "HN1", "C2", "O2", "N3", "HN3", "C4", "O4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -3406,6 +3957,11 @@ "atom_name": ["HO2'", "O2'", "C2'", "H2'", "C1'", "H1'", "C5", "C6", "H6", "N1", "HN1", "C2", "O2", "N3", "HN3", "C4", "O4", "O4'", "C4'", "H4'", "C5'", "H5'", "H5''", "O5'", "P", "OP1", "OP2", "OP3", "C3'", "H3'", "O3'"], "link_labels": {"30": "3-prime"} }, + "QGG_fl": { + "smiles": "[H]OC([H])([H])C1([H])OC([H])(OC2([H])C([H])(O[H])C([H])=C([H])C2([H])N([H])C([H])([H])C2=C([H])N(C3([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C3([H])O[H])C3=C2C(=O)N([H])C(N([H])[H])=N3)C([H])(O[H])C([H])(O[H])C1([H])O[H]", + "atom_name": ["H39", "O36", "C21", "H37", "H38", "C18", "H31", "O32", "C16", "H29", "O30", "C12", "H24", "C13", "H25", "O31", "H26", "C14", "H27", "C15", "H28", "C11", "H23", "N40", "H22", "C10", "H20", "H21", "C7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C4", "C5", "C6", "O6", "N1", "H1", "C2", "N2", "1H2", "2H2", "N3", "C17", "H30", "O33", "H34", "C19", "H32", "O34", "H35", "C20", "H33", "O35", "H36"], + "link_labels": {} + }, "QGG_": { "smiles": "[H]OC([H])([H])C1([H])OC([H])(OC2([H])C([H])(O[H])C([H])=C([H])C2([H])N([H])C([H])([H])C2=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C3([H])O[H])C3=C2C(=O)N([H])C(N([H])[H])=N3)C([H])(O[H])C([H])(O[H])C1([H])O[H]", "atom_name": ["H39", "O36", "C21", "H37", "H38", "C18", "H31", "O32", "C16", "H29", "O30", "C12", "H24", "C13", "H25", "O31", "H26", "C14", "H27", "C15", "H28", "C11", "H23", "N40", "H22", "C10", "H20", "H21", "C7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "C5", "C6", "O6", "N1", "H1", "C2", "N2", "1H2", "2H2", "N3", "C17", "H30", "O33", "H34", "C19", "H32", "O34", "H35", "C20", "H33", "O35", "H36"], @@ -3431,6 +3987,11 @@ "atom_name": ["H6", "C6", "N5", "C4", "N3", "C2", "N1", "H1N1", "H1N2", "N27", "H271", "H272", "C14", "C13", "H13", "C12", "S15", "O16", "O17", "N18", "C19", "H191", "H192", "C20", "H201", "H202", "C21", "H211", "H212", "C22", "H22", "C24", "O25", "O26", "C11", "H11", "C10", "H10", "C9", "C7", "CL8"], "link_labels": {} }, + "QMG_fl": { + "smiles": "[H]OC([H])([H])C1([H])OC([H])(OC2([H])C([H])(O[H])C([H])=C([H])C2([H])N([H])C([H])([H])C2=C([H])N(C3([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C3([H])O[H])C3=C2C(=O)N([H])C(N([H])[H])=N3)C([H])(O[H])C([H])(O[H])C1([H])O[H]", + "atom_name": ["H35", "O34", "C21", "H33", "H34", "C18", "H30", "O32", "C16", "H29", "O30", "C12", "H24", "C13", "H25", "O31", "H26", "C14", "H27", "C15", "H28", "C11", "H23", "N40", "H22", "C10", "H20", "H21", "C7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C4", "C5", "C6", "O6", "N1", "H1", "C2", "N2", "1H2", "2H2", "N3", "C17", "H36", "O36", "H39", "C19", "H31", "O33", "H32", "C20", "H37", "O35", "H38"], + "link_labels": {} + }, "QMG_": { "smiles": "[H]OC([H])([H])C1([H])OC([H])(OC2([H])C([H])(O[H])C([H])=C([H])C2([H])N([H])C([H])([H])C2=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C3([H])O[H])C3=C2C(=O)N([H])C(N([H])[H])=N3)C([H])(O[H])C([H])(O[H])C1([H])O[H]", "atom_name": ["H35", "O34", "C21", "H33", "H34", "C18", "H30", "O32", "C16", "H29", "O30", "C12", "H24", "C13", "H25", "O31", "H26", "C14", "H27", "C15", "H28", "C11", "H23", "N40", "H22", "C10", "H20", "H21", "C7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "C5", "C6", "O6", "N1", "H1", "C2", "N2", "1H2", "2H2", "N3", "C17", "H36", "O36", "H39", "C19", "H31", "O33", "H32", "C20", "H37", "O35", "H38"], @@ -3456,6 +4017,11 @@ "atom_name": ["H4", "C21", "N20", "C19", "C05", "C06", "C07", "H7", "C08", "C09", "O14", "N10", "H19", "C11", "H8", "C13", "H1", "H2", "C12", "H9", "H10", "C15", "H3", "C16", "H11", "C17", "C18", "H12", "H13", "H14", "C04", "H6", "C03", "C02", "O01", "C25", "H16", "H17", "H18", "N24", "C23", "H15", "C22", "H5"], "link_labels": {} }, + "QUG_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=C(C([H])([H])N([H])C3([H])C([H])([H])C([H])([H])C([H])(O[H])C3([H])O[H])C3=C2N=C(N([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "C7", "C10", "H20", "H21", "N40", "H22", "C11", "H23", "C15", "H30", "H31", "C14", "H28", "H29", "C13", "H26", "O31", "H27", "C12", "H24", "O30", "H25", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "QUG_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=C(C([H])([H])N([H])C3([H])C([H])([H])C([H])([H])C([H])(O[H])C3([H])O[H])C3=C2N=C(N([H])[H])N([H])C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "C7", "C10", "H20", "H21", "N40", "H22", "C11", "H23", "C15", "H30", "H31", "C14", "H28", "H29", "C13", "H26", "O31", "H27", "C12", "H24", "O30", "H25", "C5", "C4", "N3", "C2", "N2", "1H2", "2H2", "N1", "H1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -3481,31 +4047,41 @@ "atom_name": ["H16", "O1", "C6", "H6", "C10", "H2", "C9", "H9", "C8", "H8", "N3", "H12", "C11", "H3", "H4", "C5", "C4", "H5", "N2", "H11", "C3", "C2", "C1", "O2", "N", "C", "N4", "H14", "H15", "N1", "H10", "C7", "H7", "O", "H1"], "link_labels": {} }, + "SIA_fl": { + "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=NC(SC([H])([H])[H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C1([H])O[H])C([H])([H])[H]", + "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "N1", "C2", "S28", "C15", "H29", "H30", "H31", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C13", "H23", "H24", "H25"], + "link_labels": {} + }, "SIA_": { - "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C3([H])O[H])C2=NC(SC([H])([H])[H])=N1)C([H])([H])[H]", - "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "S28", "C15", "H29", "H30", "H31", "N1", "C13", "H23", "H24", "H25"], - "link_labels": {"28": "5-prime", "33": "3-prime"} + "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=NC(SC([H])([H])[H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C1([H])O[H])C([H])([H])[H]", + "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "N1", "C2", "S28", "C15", "H29", "H30", "H31", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C13", "H23", "H24", "H25"], + "link_labels": {"37": "5-prime", "42": "3-prime"} }, "SIA_3": { - "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O[H])C3([H])O[H])C2=NC(SC([H])([H])[H])=N1)C([H])([H])[H]", - "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "S28", "C15", "H29", "H30", "H31", "N1", "C13", "H23", "H24", "H25"], - "link_labels": {"28": "5-prime"} + "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=NC(SC([H])([H])[H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O[H])C1([H])O[H])C([H])([H])[H]", + "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "N1", "C2", "S28", "C15", "H29", "H30", "H31", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C13", "H23", "H24", "H25"], + "link_labels": {"37": "5-prime"} }, "SIA_5p": { - "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C3([H])O[H])C2=NC(SC([H])([H])[H])=N1)C([H])([H])[H]", - "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "S28", "C15", "H29", "H30", "H31", "N1", "C13", "H23", "H24", "H25"], - "link_labels": {"34": "3-prime"} + "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=NC(SC([H])([H])[H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O)C1([H])O[H])C([H])([H])[H]", + "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "N1", "C2", "S28", "C15", "H29", "H30", "H31", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C13", "H23", "H24", "H25"], + "link_labels": {"43": "3-prime"} }, "SIA_5": { - "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])O[H])C([H])(O)C3([H])O[H])C2=NC(SC([H])([H])[H])=N1)C([H])([H])[H]", - "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "H32", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "S28", "C15", "H29", "H30", "H31", "N1", "C13", "H23", "H24", "H25"], - "link_labels": {"31": "3-prime"} + "smiles": "[H]OC([H])([H])C(=C([H])C([H])([H])N([H])C1=NC(SC([H])([H])[H])=NC2=C1N=C([H])N2C1([H])OC([H])(C([H])([H])O[H])C([H])(O)C1([H])O[H])C([H])([H])[H]", + "atom_name": ["H28", "O30", "C14", "H26", "H27", "C12", "C11", "H22", "C10", "H20", "H21", "N6", "1H6", "C6", "N1", "C2", "S28", "C15", "H29", "H30", "H31", "N3", "C4", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "H32", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C13", "H23", "H24", "H25"], + "link_labels": {"40": "3-prime"} }, "SIA_fl-ccd": { "smiles": "[H]OC([H])([H])C([H])(O[H])C([H])(O[H])C1([H])OC(O[H])(C(=O)[O-])C([H])([H])C([H])(O[H])C1([H])N([H])C(=O)C([H])([H])[H]", "atom_name": ["HO9", "O9", "C9", "H92", "H91", "C8", "H8", "O8", "HO8", "C7", "H7", "O7", "HO7", "C6", "H6", "O6", "C2", "O2", "HO2", "C1", "O1A", "O1B", "C3", "H32", "H31", "C4", "H4", "O4", "HO4", "C5", "H5", "N5", "HN5", "C10", "O10", "C11", "H111", "H113", "H112"], "link_labels": {} }, + "SMA_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])C([H])([H])[H])N=C(SC([H])([H])[H])N=C32)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C10", "H20", "H21", "H22", "N1", "C2", "S22", "C11", "H23", "H24", "H25", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "SMA_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])C([H])([H])[H])N=C(SC([H])([H])[H])N=C32)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C10", "H20", "H21", "H22", "N1", "C2", "S22", "C11", "H23", "H24", "H25", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -3531,24 +4107,29 @@ "atom_name": ["H44", "O8", "C8", "C7", "O7", "C7M", "H8", "H9", "H10", "C6", "H7", "C5", "O5", "C5M", "H4", "H5", "H6", "C4A", "C8A", "O1", "C2", "C9", "H11", "H12", "C10", "H13", "H14", "C11", "H15", "C22", "H29", "H30", "H31", "C12", "H16", "O12", "C23", "H32", "H33", "H34", "C13", "H17", "C24", "H35", "H36", "H37", "C14", "H18", "O14", "C25", "H38", "H39", "H40", "C15", "H19", "C16", "H21", "C17", "H22", "C18", "H23", "C19", "C20", "H25", "C21", "H26", "H27", "H28", "C26", "H41", "H42", "H43", "C3", "C3M", "H1", "H2", "H3", "C4", "O4"], "link_labels": {} }, + "SPA_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])N=C(SC([H])([H])[H])N=C32)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C11", "H23", "H24", "C12", "H25", "C13", "C14", "H26", "H27", "H28", "C15", "H29", "H30", "H31", "N1", "C2", "SS", "C10", "H20", "H21", "H22", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "SPA_": { - "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(SC([H])([H])[H])N=C3N([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", - "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "SS", "C10", "H20", "H21", "H22", "N1", "C6", "N6", "1H6", "C11", "H23", "H24", "C12", "H25", "C13", "C14", "H26", "H27", "H28", "C15", "H29", "H30", "H31", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])N=C(SC([H])([H])[H])N=C32)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C11", "H23", "H24", "C12", "H25", "C13", "C14", "H26", "H27", "H28", "C15", "H29", "H30", "H31", "N1", "C2", "SS", "C10", "H20", "H21", "H22", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], "link_labels": {"44": "5-prime", "49": "3-prime"} }, "SPA_3": { - "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(SC([H])([H])[H])N=C3N([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])OC([H])(C([H])([H])OP(=O)[O-])C1([H])O[H]", - "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "SS", "C10", "H20", "H21", "H22", "N1", "C6", "N6", "1H6", "C11", "H23", "H24", "C12", "H25", "C13", "C14", "H26", "H27", "H28", "C15", "H29", "H30", "H31", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])N=C(SC([H])([H])[H])N=C32)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C11", "H23", "H24", "C12", "H25", "C13", "C14", "H26", "H27", "H28", "C15", "H29", "H30", "H31", "N1", "C2", "SS", "C10", "H20", "H21", "H22", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], "link_labels": {"44": "5-prime"} }, "SPA_5p": { - "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N=C(SC([H])([H])[H])N=C3N([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O", - "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "SS", "C10", "H20", "H21", "H22", "N1", "C6", "N6", "1H6", "C11", "H23", "H24", "C12", "H25", "C13", "C14", "H26", "H27", "H28", "C15", "H29", "H30", "H31", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'"], + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C(N([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])N=C(SC([H])([H])[H])N=C32)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C11", "H23", "H24", "C12", "H25", "C13", "C14", "H26", "H27", "H28", "C15", "H29", "H30", "H31", "N1", "C2", "SS", "C10", "H20", "H21", "H22", "N3", "C4", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'"], "link_labels": {"50": "3-prime"} }, "SPA_5": { - "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C2N=C(SC([H])([H])[H])N=C3N([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])(O[H])C1([H])O", - "atom_name": ["H32", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C2", "SS", "C10", "H20", "H21", "H22", "N1", "C6", "N6", "1H6", "C11", "H23", "H24", "C12", "H25", "C13", "C14", "H26", "H27", "H28", "C15", "H29", "H30", "H31", "C2'", "H2'", "O2'", "HO'2", "C3'", "H3'", "O3'"], + "smiles": "[H]OC([H])([H])C1([H])OC([H])(N2C([H])=NC3=C(N([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])N=C(SC([H])([H])[H])N=C32)C([H])(O[H])C1([H])O", + "atom_name": ["H32", "O5'", "C5'", "H5'1", "H5'2", "C4'", "H4'", "O4'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C6", "N6", "1H6", "C11", "H23", "H24", "C12", "H25", "C13", "C14", "H26", "H27", "H28", "C15", "H29", "H30", "H31", "N1", "C2", "SS", "C10", "H20", "H21", "H22", "N3", "C4", "C2'", "H2'", "O2'", "HO'2", "C3'", "H3'", "O3'"], "link_labels": {"47": "3-prime"} }, "SPA_fl-ccd": { @@ -3556,6 +4137,11 @@ "atom_name": ["H5", "C5", "C4", "H4", "C3", "H3", "C2", "C6", "H61", "H62", "C7", "O1", "O2", "S1"], "link_labels": {} }, + "STA_fl": { + "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP([H])(=O)[O-])C([H])(O[H])C3([H])O[H])C2=NC(SC([H])([H])[H])=N1)C([H])(O[H])C([H])([H])[H]", + "atom_name": ["H30", "O31", "C13", "O32", "C12", "H25", "N40", "H26", "C11", "O30", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "SS", "C10", "H27", "H28", "H29", "N1", "C14", "H20", "O33", "H24", "C15", "H21", "H22", "H23"], + "link_labels": {} + }, "STA_": { "smiles": "[H]OC(=O)C([H])(N([H])C(=O)N([H])C1=C2N=C([H])N(C3([H])OC([H])(C([H])([H])OP(=O)[O-])C([H])(O)C3([H])O[H])C2=NC(SC([H])([H])[H])=N1)C([H])(O[H])C([H])([H])[H]", "atom_name": ["H30", "O31", "C13", "O32", "C12", "H25", "N40", "H26", "C11", "O30", "N6", "1H6", "C6", "C5", "N7", "C8", "H8", "N9", "C1'", "H1'", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'", "C2'", "H2'", "O2'", "HO'2", "C4", "N3", "C2", "SS", "C10", "H27", "H28", "H29", "N1", "C14", "H20", "O33", "H24", "C15", "H21", "H22", "H23"], @@ -3581,6 +4167,11 @@ "atom_name": ["HH", "OH", "CH", "HC", "CM", "HM1", "HM2", "C", "O", "OXT", "CA", "HA", "N", "H", "H2", "CB", "HB1", "HB2", "CG", "HG", "CD1", "HD11", "HD12", "HD13", "CD2", "HD21", "HD22", "HD23"], "link_labels": {} }, + "WBG_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N(C([H])([H])[H])C2=NC(C([H])([H])[H])=C(C([H])([H])C([H])([H])C([H])(C(=O)OC([H])([H])[H])N([H])C(=O)OC([H])([H])[H])N2C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C10", "H20", "H21", "H22", "C2", "N2", "C12", "C11", "H23", "H24", "H25", "C13", "C14", "H26", "H27", "C15", "H28", "H29", "C16", "H30", "C17", "O30", "O31", "C18", "H31", "H32", "H33", "N40", "H34", "C19", "O32", "O33", "C20", "H35", "H36", "H37", "N1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "WBG_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N(C([H])([H])[H])C2=NC(C([H])([H])[H])=C(C([H])([H])C([H])([H])C([H])(C(=O)OC([H])([H])[H])N([H])C(=O)OC([H])([H])[H])N2C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C10", "H20", "H21", "H22", "C2", "N2", "C12", "C11", "H23", "H24", "H25", "C13", "C14", "H26", "H27", "C15", "H28", "H29", "C16", "H30", "C17", "O30", "O31", "C18", "H31", "H32", "H33", "N40", "H34", "C19", "O32", "O33", "C20", "H35", "H36", "H37", "N1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], @@ -3606,6 +4197,11 @@ "atom_name": ["H161", "C16", "C17", "H171", "C18", "H181", "C19", "H191", "C14", "N13", "H131", "C12", "C03", "C04", "C09", "H091", "C08", "H081", "C07", "O10", "C11", "H112", "H113", "H111", "C06", "H061", "C05", "H051", "C02", "O01", "N37", "N36", "C29", "C30", "C35", "H351", "C34", "H341", "C33", "H331", "C32", "H321", "C31", "H311", "C22", "C23", "C24", "H241", "C25", "H251", "H252", "C26", "H262", "H261", "C27", "H271", "H272", "C28", "H282", "H281", "C21", "N20", "H201", "N15"], "link_labels": {} }, + "WMG_fl": { + "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N(C([H])([H])[H])C2=NC(C([H])([H])[H])=C(C([H])([H])[H])N2C3=O)OC([H])(C([H])([H])OP([H])(=O)[O-])C1([H])O[H]", + "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C14", "H26", "H27", "H28", "C2", "N2", "C11", "C10", "H20", "H21", "H22", "C12", "C13", "H23", "H24", "H25", "N1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "H_h", "O1P", "O2P", "C3'", "H3'", "O3'", "H_t"], + "link_labels": {} + }, "WMG_": { "smiles": "[H]OC1([H])C([H])(N2C([H])=NC3=C2N(C([H])([H])[H])C2=NC(C([H])([H])[H])=C(C([H])([H])[H])N2C3=O)OC([H])(C([H])([H])OP(=O)[O-])C1([H])O", "atom_name": ["HO'2", "O2'", "C2'", "H2'", "C1'", "H1'", "N9", "C8", "H8", "N7", "C5", "C4", "N3", "C14", "H26", "H27", "H28", "C2", "N2", "C11", "C10", "H20", "H21", "H22", "C12", "C13", "H23", "H24", "H25", "N1", "C6", "O6", "O4'", "C4'", "H4'", "C5'", "H5'1", "H5'2", "O5'", "P", "O1P", "O2P", "C3'", "H3'", "O3'"], From e549a58406028761c32fe26b4b6958525d9423e5 Mon Sep 17 00:00:00 2001 From: Amy He Date: Fri, 29 Nov 2024 16:14:51 -0800 Subject: [PATCH 09/44] edit ambiguous dict for CHARMM27 resnames --- meeko/data/residue_chem_templates.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meeko/data/residue_chem_templates.json b/meeko/data/residue_chem_templates.json index 3c913ef9..58e2bc09 100644 --- a/meeko/data/residue_chem_templates.json +++ b/meeko/data/residue_chem_templates.json @@ -4,6 +4,10 @@ "U": ["U", "U3", "U5p", "U5"], "C": ["C", "C3", "C5p", "C5"], "G": ["G", "G3", "G5p", "G5"], + "RA": ["A", "A3", "A5p", "A5"], + "RU": ["U", "U3", "U5p", "U5"], + "RC": ["C", "C3", "C5p", "C5"], + "RG": ["G", "G3", "G5p", "G5"], "DA": ["DA", "DA3", "DA5p", "DA5"], "DT": ["DT", "DT3", "DT5p", "DT5"], "DC": ["DC", "DC3", "DC5p", "DC5"], From 5874160a33b923f4dbe4578c97a13afa7d319a32 Mon Sep 17 00:00:00 2001 From: Amy He Date: Fri, 29 Nov 2024 21:51:46 -0800 Subject: [PATCH 10/44] use utility functions in jsonutils: string_to_tuple and tuple_to_string to fix dihedral (tuple of ints) as key problem in json --- meeko/molsetup.py | 12 ++++++------ test/json_serialization_test.py | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 9d9216b4..0c087d42 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -1377,7 +1377,7 @@ def from_json(obj): obj["ring_closure_info"]["bonds_removed"], obj["ring_closure_info"]["pseudos_by_atom"], ) - molsetup.rotamers = obj["rotamers"] + molsetup.rotamers = [{string_to_tuple(k, element_type=int): v for k,v in rotamer.items()} for rotamer in obj["rotamers"]] molsetup.atom_params = obj["atom_params"] molsetup.restraints = [Restraint.from_json(x) for x in obj["restraints"]] molsetup.flexibility_model = obj["flexibility_model"] @@ -2147,8 +2147,8 @@ def from_json(obj): ] # TODO: Dihedral decoding may need another look rdkit_molsetup.dihedral_interactions = obj["dihedral_interactions"] - rdkit_molsetup.dihedral_partaking_atoms = obj["dihedral_partaking_atoms"] - rdkit_molsetup.dihedral_labels = obj["dihedral_labels"] + rdkit_molsetup.dihedral_partaking_atoms = {string_to_tuple(k, element_type=int): string_to_tuple(v, element_type=int) for k,v in obj["dihedral_partaking_atoms"].items()} + rdkit_molsetup.dihedral_labels = {string_to_tuple(k, element_type=int): v for k,v in obj["dihedral_labels"].items()} rdkit_molsetup.atom_to_ring_id = { int(k): [string_to_tuple(t) for t in v] for k, v in obj["atom_to_ring_id"].items() @@ -2332,7 +2332,7 @@ def default(self, obj): for k, v in obj.rings.items() }, "ring_closure_info": obj.ring_closure_info.__dict__, - "rotamers": obj.rotamers, + "rotamers": [{tuple_to_string(k): v for k, v in rotamer.items()} for rotamer in obj.rotamers], "atom_params": obj.atom_params, "restraints": [ self.restraint_encoder.default(x) for x in obj.restraints @@ -2358,8 +2358,8 @@ def default(self, obj): output_dict["mol"] = rdMolInterchange.MolToJSON(obj.mol) output_dict["modified_atom_positions"] = obj.modified_atom_positions output_dict["dihedral_interactions"] = obj.dihedral_interactions - output_dict["dihedral_partaking_atoms"] = obj.dihedral_partaking_atoms - output_dict["dihedral_labels"] = obj.dihedral_labels + output_dict["dihedral_partaking_atoms"] = {tuple_to_string(k): tuple_to_string(v) for k,v in obj.dihedral_partaking_atoms.items()} + output_dict["dihedral_labels"] = {tuple_to_string(k): v for k,v in obj.dihedral_labels.items()} output_dict["atom_to_ring_id"] = obj.atom_to_ring_id output_dict["ring_corners"] = obj.ring_corners output_dict["rmsd_symmetry_indices"] = obj.rmsd_symmetry_indices diff --git a/test/json_serialization_test.py b/test/json_serialization_test.py index 217b37ce..efab09cc 100644 --- a/test/json_serialization_test.py +++ b/test/json_serialization_test.py @@ -401,6 +401,7 @@ def check_molsetup_equality(decoded_obj: MoleculeSetup, starting_obj: MoleculeSe for idx, component_dict in enumerate(starting_obj.rotamers): decoded_dict = decoded_obj.rotamers[idx] for key in component_dict: + print(key, decoded_dict) assert key in decoded_dict assert decoded_dict[key] == component_dict[key] for key in starting_obj.atom_params: From 638c4f4d2ecc15012b169f696b62b503d3186fcc Mon Sep 17 00:00:00 2001 From: Amy He Date: Fri, 29 Nov 2024 22:01:13 -0800 Subject: [PATCH 11/44] remove unnecessary print --- test/json_serialization_test.py | 1 - 1 file changed, 1 deletion(-) diff --git a/test/json_serialization_test.py b/test/json_serialization_test.py index efab09cc..217b37ce 100644 --- a/test/json_serialization_test.py +++ b/test/json_serialization_test.py @@ -401,7 +401,6 @@ def check_molsetup_equality(decoded_obj: MoleculeSetup, starting_obj: MoleculeSe for idx, component_dict in enumerate(starting_obj.rotamers): decoded_dict = decoded_obj.rotamers[idx] for key in component_dict: - print(key, decoded_dict) assert key in decoded_dict assert decoded_dict[key] == component_dict[key] for key in starting_obj.atom_params: From 726ae0b1bce81cccb8faad738e5ed5a5d05b0219 Mon Sep 17 00:00:00 2001 From: Amy He Date: Fri, 29 Nov 2024 23:24:31 -0800 Subject: [PATCH 12/44] add args to read charges from atom prop --- meeko/molsetup.py | 19 +++++++++++-------- meeko/preparation.py | 14 ++++++++++++-- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 9d9216b4..f0f925ea 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -1480,7 +1480,7 @@ def add_dihedral_interaction(self, fourier_series): return index @abstractmethod - def init_atom(self, assign_charges, coords): + def init_atom(self, compute_gasteiger_charges, coords, read_charges_from_prop): pass @abstractmethod @@ -1561,7 +1561,8 @@ def from_mol( mol: Chem.Mol, keep_chorded_rings: bool = False, keep_equivalent_rings: bool = False, - assign_charges: bool = True, + compute_gasteiger_charges: bool = True, + read_charges_from_prop: str = None, conformer_id: int = -1, ): """ @@ -1572,7 +1573,7 @@ def from_mol( RDKit Mol object to build the RDKitMoleculeSetup from. keep_chorded_rings: bool keep_equivalent_rings: bool - assign_charges: bool + compute_gasteiger_charges: bool conformer_id: int Returns @@ -1615,7 +1616,7 @@ def from_mol( molsetup.atom_true_count = molsetup.get_num_mol_atoms() molsetup.name = molsetup.get_mol_name() coords = rdkit_conformer.GetPositions() - molsetup.init_atom(assign_charges, coords) + molsetup.init_atom(compute_gasteiger_charges, read_charges_from_prop, coords) molsetup.init_bond() molsetup.perceive_rings(keep_chorded_rings, keep_equivalent_rings) molsetup.rmsd_symmetry_indices = cls.get_symmetries_for_rmsd(mol) @@ -1659,14 +1660,14 @@ def remove_elements(mol, to_rm=(12, 20, 25, 26, 30)): return mol, idx_to_rm, rm_to_neigh - def init_atom(self, assign_charges: bool, coords: list[np.ndarray]): + def init_atom(self, compute_gasteiger_charges: bool, read_charges_from_prop: str, coords: list[np.ndarray]) """ Generates information about the atoms in an RDKit Mol and adds them to an RDKitMoleculeSetup. Parameters ---------- - assign_charges: bool - Indicates whether we should extract/generate charges. + compute_gasteiger_charges: bool + Indicates whether we should compute gasteiger charges. coords: list[np.ndarray] Atom coordinates for the RDKit Mol. @@ -1675,7 +1676,7 @@ def init_atom(self, assign_charges: bool, coords: list[np.ndarray]): None """ # extract/generate charges - if assign_charges: + if compute_gasteiger_charges: things = self.remove_elements(self.mol) copy_mol, idx_rm_to_formal_charge, rm_to_neigh = things for atom in copy_mol.GetAtoms(): @@ -1716,6 +1717,8 @@ def init_atom(self, assign_charges: bool, coords: list[np.ndarray]): # print(f"{idx=} {newidx=}") ok_charges[i] += chrg_by_heavy_atom[newidx] charges = ok_charges + elif read_charges_from_prop: + pass else: charges = [0.0] * self.mol.GetNumAtoms() # register atom diff --git a/meeko/preparation.py b/meeko/preparation.py index 86120e44..99eb9948 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -86,6 +86,7 @@ def __init__( input_offatom_params=None, load_offatom_params=None, charge_model="gasteiger", + charge_propname=None, dihedral_model=None, reactive_smarts=None, reactive_smarts_idx=None, @@ -147,7 +148,7 @@ def __init__( raise NotImplementedError("load_offatom_params not implemented") self.load_offatom_params = load_offatom_params - allowed_charge_models = ["espaloma", "gasteiger", "zero"] + allowed_charge_models = ["espaloma", "gasteiger", "zero", "read"] if charge_model not in allowed_charge_models: raise ValueError( "unrecognized charge_model: %s, allowed options are: %s" @@ -155,6 +156,14 @@ def __init__( ) self.charge_model = charge_model + self.charge_propname = charge_propname + + if self.charge_model!="read" and self.charge_propname: + raise ValueError( + "A charge_propname (%s) is given to MoleculePreparation but its current charge_model is %s. " + eol + + "To read charges from atom properties in the input mol, set charge_model to 'read' and name the property in 'charge_propname'. " + eol + % (charge_propname, charge_model) + ) allowed_dihedral_models = [None, "openff", "espaloma"] if dihedral_model in (None, "espaloma"): @@ -490,7 +499,8 @@ def prepare( mol, keep_chorded_rings=self.keep_chorded_rings, keep_equivalent_rings=self.keep_equivalent_rings, - assign_charges=self.charge_model == "gasteiger", + compute_gasteiger_charges=self.charge_model == "gasteiger", + read_charges_from_prop=self.charges_propname, conformer_id=conformer_id, ) From 63b0fff94786a6abea821088a8c0d5956189ca71 Mon Sep 17 00:00:00 2001 From: Amy He Date: Sat, 30 Nov 2024 13:17:40 -0800 Subject: [PATCH 13/44] edit init_atom to support read charges from atom prop --- meeko/molsetup.py | 22 ++++++++++++++++++---- meeko/preparation.py | 19 +++++++++++++++---- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index f0f925ea..9541dc56 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -1660,7 +1660,7 @@ def remove_elements(mol, to_rm=(12, 20, 25, 26, 30)): return mol, idx_to_rm, rm_to_neigh - def init_atom(self, compute_gasteiger_charges: bool, read_charges_from_prop: str, coords: list[np.ndarray]) + def init_atom(self, compute_gasteiger_charges: bool, read_charges_from_prop: str, coords: list[np.ndarray]): """ Generates information about the atoms in an RDKit Mol and adds them to an RDKitMoleculeSetup. @@ -1676,7 +1676,11 @@ def init_atom(self, compute_gasteiger_charges: bool, read_charges_from_prop: str None """ # extract/generate charges - if compute_gasteiger_charges: + if compute_gasteiger_charges: + if read_charges_from_prop is not None: + raise ValueError( + "Conflicting options: compute_gasteiger_charges and read_charges_from_prop cannot both be set. " + ) things = self.remove_elements(self.mol) copy_mol, idx_rm_to_formal_charge, rm_to_neigh = things for atom in copy_mol.GetAtoms(): @@ -1717,8 +1721,18 @@ def init_atom(self, compute_gasteiger_charges: bool, read_charges_from_prop: str # print(f"{idx=} {newidx=}") ok_charges[i] += chrg_by_heavy_atom[newidx] charges = ok_charges - elif read_charges_from_prop: - pass + elif read_charges_from_prop is not None: + if not isinstance(read_charges_from_prop, str): + raise ValueError( + f"Invalid value for read_charges_from_prop: expected a string (str), but got {type(read_charges_from_prop).__name__} instead. " + ) + if not read_charges_from_prop: + read_charges_from_prop = "partial_charge" + raise Warning( + "The charge_model of MoleculePreparation is set to be 'read', but a valid charge_propname is not given. " + eol + + "The default property name ('partial_charge') will be used. " + ) + charges = [atom.GetProp(read_charges_from_prop) for atom in self.mol.GetAtoms()] else: charges = [0.0] * self.mol.GetNumAtoms() # register atom diff --git a/meeko/preparation.py b/meeko/preparation.py index 99eb9948..7d8c2a20 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -161,10 +161,21 @@ def __init__( if self.charge_model!="read" and self.charge_propname: raise ValueError( "A charge_propname (%s) is given to MoleculePreparation but its current charge_model is %s. " + eol + - "To read charges from atom properties in the input mol, set charge_model to 'read' and name the property in 'charge_propname'. " + eol + "To read charges from atom properties in the input mol, set charge_model to 'read' and name the property in 'charge_propname'. " % (charge_propname, charge_model) ) - + if self.charge_model=="read": + if not self.charge_propname: + self.charge_propname = "partial_charge" + raise Warning( + "The charge_model of MoleculePreparation is set to be 'read', but a valid charge_propname is not given. " + eol + + "The default property name ('partial_charge') will be used. " + ) + elif not isinstance(self.charge_propname, str): + raise ValueError( + f"Invalid value for charge_propname: expected a string (str), but got {type(self.charge_propname).__name__} instead. " + ) + allowed_dihedral_models = [None, "openff", "espaloma"] if dihedral_model in (None, "espaloma"): dihedral_list = [] @@ -500,7 +511,7 @@ def prepare( keep_chorded_rings=self.keep_chorded_rings, keep_equivalent_rings=self.keep_equivalent_rings, compute_gasteiger_charges=self.charge_model == "gasteiger", - read_charges_from_prop=self.charges_propname, + read_charges_from_prop=self.charge_propname, conformer_id=conformer_id, ) @@ -510,7 +521,7 @@ def prepare( AtomTyper.type_everything( setup, self.atom_params, - self.charge_model, + self.charge_model, # charge_model is not accessed in type_everything self.offatom_params, self.dihedral_params, ) From bedbdb7528c4fc2d4a05487699f2db0afde5bc14 Mon Sep 17 00:00:00 2001 From: Amy He Date: Sat, 30 Nov 2024 13:34:33 -0800 Subject: [PATCH 14/44] finish draft charges from mol2 --- meeko/molsetup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 9541dc56..4fc4c67f 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -1732,7 +1732,7 @@ def init_atom(self, compute_gasteiger_charges: bool, read_charges_from_prop: str "The charge_model of MoleculePreparation is set to be 'read', but a valid charge_propname is not given. " + eol + "The default property name ('partial_charge') will be used. " ) - charges = [atom.GetProp(read_charges_from_prop) for atom in self.mol.GetAtoms()] + charges = [float(atom.GetProp(read_charges_from_prop)) for atom in self.mol.GetAtoms()] else: charges = [0.0] * self.mol.GetNumAtoms() # register atom From 2d9492e5940e66bc978c4e7e873eb2372f9284fc Mon Sep 17 00:00:00 2001 From: Amy He Date: Sat, 30 Nov 2024 13:50:47 -0800 Subject: [PATCH 15/44] change default read_charge_from_propname to _TriposPartialCharge --- meeko/preparation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meeko/preparation.py b/meeko/preparation.py index 7d8c2a20..cbe93a30 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -166,10 +166,10 @@ def __init__( ) if self.charge_model=="read": if not self.charge_propname: - self.charge_propname = "partial_charge" + self.charge_propname = "_TriposPartialCharge" raise Warning( "The charge_model of MoleculePreparation is set to be 'read', but a valid charge_propname is not given. " + eol + - "The default property name ('partial_charge') will be used. " + "The default property name ('_TriposPartialCharge') will be used. " ) elif not isinstance(self.charge_propname, str): raise ValueError( From 31c0d4b225bdcc85dfda83c1935b9013a896bf00 Mon Sep 17 00:00:00 2001 From: Amy He Date: Sat, 30 Nov 2024 13:56:43 -0800 Subject: [PATCH 16/44] fixup! change default read_charge_from_propname to _TriposPartialCharge --- meeko/molsetup.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 4fc4c67f..90b9f136 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -9,6 +9,7 @@ from collections import defaultdict from dataclasses import asdict, dataclass, field import json +from os import linesep as eol import sys import warnings @@ -1574,6 +1575,7 @@ def from_mol( keep_chorded_rings: bool keep_equivalent_rings: bool compute_gasteiger_charges: bool + read_charges_from_prop: str conformer_id: int Returns @@ -1727,10 +1729,10 @@ def init_atom(self, compute_gasteiger_charges: bool, read_charges_from_prop: str f"Invalid value for read_charges_from_prop: expected a string (str), but got {type(read_charges_from_prop).__name__} instead. " ) if not read_charges_from_prop: - read_charges_from_prop = "partial_charge" + read_charges_from_prop = "_TriposPartialCharge" raise Warning( "The charge_model of MoleculePreparation is set to be 'read', but a valid charge_propname is not given. " + eol + - "The default property name ('partial_charge') will be used. " + "The default property name ('_TriposPartialCharge') will be used. " ) charges = [float(atom.GetProp(read_charges_from_prop)) for atom in self.mol.GetAtoms()] else: From f6699e7463b1fc4f58c5eda28e995cb574a1835d Mon Sep 17 00:00:00 2001 From: Amy He Date: Sat, 30 Nov 2024 18:37:10 -0800 Subject: [PATCH 17/44] fixup! change default read_charge_from_propname to _TriposPartialCharge --- meeko/molsetup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 90b9f136..e086639d 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -1481,7 +1481,7 @@ def add_dihedral_interaction(self, fourier_series): return index @abstractmethod - def init_atom(self, compute_gasteiger_charges, coords, read_charges_from_prop): + def init_atom(self, compute_gasteiger_charges, read_charges_from_prop, coords): pass @abstractmethod From 4b08a31ab83474dcb9050c717dd9d8f03d9c6220 Mon Sep 17 00:00:00 2001 From: diogom Date: Wed, 4 Dec 2024 11:05:04 -0800 Subject: [PATCH 18/44] add test for dihedral JSON (de)serialization --- meeko/molsetup.py | 4 ++-- test/json_serialization_test.py | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 0c087d42..2954da54 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -2147,7 +2147,7 @@ def from_json(obj): ] # TODO: Dihedral decoding may need another look rdkit_molsetup.dihedral_interactions = obj["dihedral_interactions"] - rdkit_molsetup.dihedral_partaking_atoms = {string_to_tuple(k, element_type=int): string_to_tuple(v, element_type=int) for k,v in obj["dihedral_partaking_atoms"].items()} + rdkit_molsetup.dihedral_partaking_atoms = {string_to_tuple(k, element_type=int): v for k,v in obj["dihedral_partaking_atoms"].items()} rdkit_molsetup.dihedral_labels = {string_to_tuple(k, element_type=int): v for k,v in obj["dihedral_labels"].items()} rdkit_molsetup.atom_to_ring_id = { int(k): [string_to_tuple(t) for t in v] @@ -2358,7 +2358,7 @@ def default(self, obj): output_dict["mol"] = rdMolInterchange.MolToJSON(obj.mol) output_dict["modified_atom_positions"] = obj.modified_atom_positions output_dict["dihedral_interactions"] = obj.dihedral_interactions - output_dict["dihedral_partaking_atoms"] = {tuple_to_string(k): tuple_to_string(v) for k,v in obj.dihedral_partaking_atoms.items()} + output_dict["dihedral_partaking_atoms"] = {tuple_to_string(k): v for k,v in obj.dihedral_partaking_atoms.items()} output_dict["dihedral_labels"] = {tuple_to_string(k): v for k,v in obj.dihedral_labels.items()} output_dict["atom_to_ring_id"] = obj.atom_to_ring_id output_dict["ring_corners"] = obj.ring_corners diff --git a/test/json_serialization_test.py b/test/json_serialization_test.py index 217b37ce..7101f313 100644 --- a/test/json_serialization_test.py +++ b/test/json_serialization_test.py @@ -31,6 +31,12 @@ from meeko.utils.pdbutils import PDBAtomInfo +try: + import openforcefields + _got_openff = True +except ImportError as err: + _got_openff = False + # from ..meeko.utils.pdbutils import PDBAtomInfo pkgdir = pathlib.Path(meeko.__file__).parents[1] @@ -413,6 +419,11 @@ def check_molsetup_equality(decoded_obj: MoleculeSetup, starting_obj: MoleculeSe decoded_obj.restraints[idx], starting_obj.restraints[idx] ) + # dihedrals + assert decoded_obj.dihedral_partaking_atoms == starting_obj.dihedral_partaking_atoms + assert decoded_obj.dihedral_interactions == starting_obj.dihedral_interactions + assert decoded_obj.dihedral_labels == starting_obj.dihedral_labels + # Checking flexibility model for key in starting_obj.flexibility_model: assert key in decoded_obj.flexibility_model @@ -763,5 +774,18 @@ def check_polymer_equality( assert decoded_obj.log == starting_obj.log return +@pytest.mark.skipif(not _got_openff, reason="requires openff-forcefields") +def test_dihedral_equality(): + mk_prep = MoleculePreparation( + merge_these_atom_types=(), + dihedral_model="openff", + ) + fn = str(pkgdir/"test"/"flexibility_data"/"non_sequential_atom_ordering_01.mol") + mol = Chem.MolFromMolFile(fn, removeHs=False) + starting_molsetup = mk_prep(mol)[0] + json_str = json.dumps(starting_molsetup, cls=MoleculeSetupEncoder) + decoded_molsetup = json.loads(json_str, object_hook=RDKitMoleculeSetup.from_json) + check_molsetup_equality(starting_molsetup, decoded_molsetup) + return # endregion From cad0e5e2361b9b28050f902715ca19d0863997d2 Mon Sep 17 00:00:00 2001 From: diogom Date: Wed, 4 Dec 2024 11:28:49 -0800 Subject: [PATCH 19/44] warn rename_atoms with warnings --- meeko/preparation.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meeko/preparation.py b/meeko/preparation.py index a94269b5..b59bb518 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -550,14 +550,14 @@ def prepare( ) # 5 . rename atoms, new names will be original name + idx (1-based) - if rename_atoms is not False: + if rename_atoms: for atom in setup.atoms: orig_pdbinfo = atom.pdbinfo orig_name = orig_pdbinfo.name.strip() new_name = f"{orig_name}{atom.index+1}" if len(new_name) > 4: - raise Warning(f"Attempted to rename atom with original name {orig_name} to {new_name}. " + eol + - f"But the new name is too long (> 4 characters). The original name will be kept. ") + warnings.warn(f"Attempted to rename atom with original name {orig_name} to {new_name}." + eol + + f"But the new name is too long (> 4 characters). The original name will be kept.") else: new_atom_info = orig_pdbinfo._replace(name=new_name) atom.pdbinfo = new_atom_info From e0f7c53c50b367277e6f0b27e8f21f930b285e4f Mon Sep 17 00:00:00 2001 From: Amy He Date: Wed, 4 Dec 2024 18:39:31 -0800 Subject: [PATCH 20/44] set default atom property name to PartialCharge; revise error handling and warning msg --- meeko/molsetup.py | 23 ++++++++++++++--------- meeko/preparation.py | 6 +++--- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index e086639d..882ec8d4 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -1724,17 +1724,22 @@ def init_atom(self, compute_gasteiger_charges: bool, read_charges_from_prop: str ok_charges[i] += chrg_by_heavy_atom[newidx] charges = ok_charges elif read_charges_from_prop is not None: - if not isinstance(read_charges_from_prop, str): + if not isinstance(read_charges_from_prop, str) or not read_charges_from_prop: raise ValueError( - f"Invalid value for read_charges_from_prop: expected a string (str), but got {type(read_charges_from_prop).__name__} instead. " + f"Invalid atom property name for read_charges_from_prop: expected a nonempty string (str), but got {type(read_charges_from_prop).__name__} instead. " ) - if not read_charges_from_prop: - read_charges_from_prop = "_TriposPartialCharge" - raise Warning( - "The charge_model of MoleculePreparation is set to be 'read', but a valid charge_propname is not given. " + eol + - "The default property name ('_TriposPartialCharge') will be used. " - ) - charges = [float(atom.GetProp(read_charges_from_prop)) for atom in self.mol.GetAtoms()] + charges = [ + float(atom.GetProp(read_charges_from_prop)) + if atom.HasProp(read_charges_from_prop) else None + for atom in self.mol.GetAtoms() + ] + if None in charges: + for idx, charge in enumerate(charges): + if charge is None: + print(f"Charge at index {idx} is None.") + raise ValueError( + f"The list of charges based on atom property name {read_charges_from_prop} contains None. " + ) else: charges = [0.0] * self.mol.GetNumAtoms() # register atom diff --git a/meeko/preparation.py b/meeko/preparation.py index cbe93a30..01449540 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -166,10 +166,10 @@ def __init__( ) if self.charge_model=="read": if not self.charge_propname: - self.charge_propname = "_TriposPartialCharge" - raise Warning( + self.charge_propname = "PartialCharge" + warnings.warn( "The charge_model of MoleculePreparation is set to be 'read', but a valid charge_propname is not given. " + eol + - "The default property name ('_TriposPartialCharge') will be used. " + "The default atom property ('PartialCharge') will be used. " ) elif not isinstance(self.charge_propname, str): raise ValueError( From 6741616883315c3ad2d4dece32825276df3eb4a3 Mon Sep 17 00:00:00 2001 From: Amy He Date: Wed, 4 Dec 2024 18:46:01 -0800 Subject: [PATCH 21/44] rename charge_propname to charge_atom_prop --- meeko/preparation.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/meeko/preparation.py b/meeko/preparation.py index 01449540..419ea313 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -86,7 +86,7 @@ def __init__( input_offatom_params=None, load_offatom_params=None, charge_model="gasteiger", - charge_propname=None, + charge_atom_prop=None, dihedral_model=None, reactive_smarts=None, reactive_smarts_idx=None, @@ -156,24 +156,24 @@ def __init__( ) self.charge_model = charge_model - self.charge_propname = charge_propname + self.charge_atom_prop = charge_atom_prop - if self.charge_model!="read" and self.charge_propname: + if self.charge_model!="read" and self.charge_atom_prop: raise ValueError( - "A charge_propname (%s) is given to MoleculePreparation but its current charge_model is %s. " + eol + - "To read charges from atom properties in the input mol, set charge_model to 'read' and name the property in 'charge_propname'. " - % (charge_propname, charge_model) + "A charge_atom_prop (%s) is given to MoleculePreparation but its current charge_model is %s. " + eol + + "To read charges from atom properties in the input mol, set charge_model to 'read' and name the property as 'charge_atom_prop'. " + % (charge_atom_prop, charge_model) ) if self.charge_model=="read": - if not self.charge_propname: - self.charge_propname = "PartialCharge" + if not self.charge_atom_prop: + self.charge_atom_prop = "PartialCharge" warnings.warn( - "The charge_model of MoleculePreparation is set to be 'read', but a valid charge_propname is not given. " + eol + + "The charge_model of MoleculePreparation is set to be 'read', but a valid charge_atom_prop is not given. " + eol + "The default atom property ('PartialCharge') will be used. " ) - elif not isinstance(self.charge_propname, str): + elif not isinstance(self.charge_atom_prop, str): raise ValueError( - f"Invalid value for charge_propname: expected a string (str), but got {type(self.charge_propname).__name__} instead. " + f"Invalid value for charge_atom_prop: expected a string (str), but got {type(self.charge_atom_prop).__name__} instead. " ) allowed_dihedral_models = [None, "openff", "espaloma"] @@ -511,7 +511,7 @@ def prepare( keep_chorded_rings=self.keep_chorded_rings, keep_equivalent_rings=self.keep_equivalent_rings, compute_gasteiger_charges=self.charge_model == "gasteiger", - read_charges_from_prop=self.charge_propname, + read_charges_from_prop=self.charge_atom_prop, conformer_id=conformer_id, ) From 2bfa6a264fa65786cff4a9ab5bb78d8a1cf7ce31 Mon Sep 17 00:00:00 2001 From: Amy He Date: Wed, 4 Dec 2024 19:16:20 -0800 Subject: [PATCH 22/44] add option charge_from_prop to mk_prepare_ligand.py --- meeko/cli/mk_prepare_ligand.py | 20 +++++++++++++++++++- meeko/preparation.py | 2 +- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index 834dac8d..aa5d87c9 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -78,6 +78,11 @@ def cmd_lineparser(): "--name_from_prop", help="set molecule name from RDKit/SDF property", ) + io_group.add_argument( + "--charge_from_prop", + nargs="*", + help="set atom partial charges from the input file. The default is PartialCharge for SDF and _TriposPartialCharge for MOL2 unless overriden by a user defined property name. ", + ) io_group.add_argument( "-o", "--out", @@ -214,7 +219,7 @@ def cmd_lineparser(): ) config_group.add_argument( "--charge_model", - choices=("gasteiger", "espaloma", "zero"), + choices=("gasteiger", "espaloma", "zero", "read"), help="default is 'gasteiger', 'zero' sets all zeros", default="gasteiger", ) @@ -551,6 +556,19 @@ def main(): nr_failures = 0 is_after_first = False preparator = MoleculePreparation.from_config(config) + + if args.charge_from_prop is not None: + if args.charge_model != "read": + print('--charge_from_prop must be used with --charge_model "read"') + sys.exit(1) + + preparator.charge_model = "read" + if args.charge_from_prop: + preparator.charge_atom_prop = args.charge_from_prop[0] + else: + if ext=="mol2": + preparator.charge_atom_prop = "_TriposPartialCharge" + for mol in mol_supplier: if is_after_first and output.is_multimol == False: print("Processed only the first molecule of multiple molecule input.") diff --git a/meeko/preparation.py b/meeko/preparation.py index 419ea313..e0bf07e2 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -169,7 +169,7 @@ def __init__( self.charge_atom_prop = "PartialCharge" warnings.warn( "The charge_model of MoleculePreparation is set to be 'read', but a valid charge_atom_prop is not given. " + eol + - "The default atom property ('PartialCharge') will be used. " + "The default atom property ('PartialCharge') will be used. " ) elif not isinstance(self.charge_atom_prop, str): raise ValueError( From c7f0fb4f9557413bac5768b262732fda79ca3e19 Mon Sep 17 00:00:00 2001 From: Amy He Date: Wed, 4 Dec 2024 19:27:15 -0800 Subject: [PATCH 23/44] use arguments from cli to override config, before preparator = MoleculePreparation.from_config(config); minor edits to help msg --- meeko/cli/mk_prepare_ligand.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index aa5d87c9..6533ffe7 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -81,7 +81,7 @@ def cmd_lineparser(): io_group.add_argument( "--charge_from_prop", nargs="*", - help="set atom partial charges from the input file. The default is PartialCharge for SDF and _TriposPartialCharge for MOL2 unless overriden by a user defined property name. ", + help="set atom partial charges from an RDKit atom property based on the input file. The default is 'PartialCharge' for SDF and '_TriposPartialCharge' for MOL2 unless overriden by a user defined property name. ", ) io_group.add_argument( "-o", @@ -555,19 +555,20 @@ def main(): ) nr_failures = 0 is_after_first = False - preparator = MoleculePreparation.from_config(config) if args.charge_from_prop is not None: if args.charge_model != "read": print('--charge_from_prop must be used with --charge_model "read"') sys.exit(1) - preparator.charge_model = "read" + config["charge_model"] = "read" if args.charge_from_prop: - preparator.charge_atom_prop = args.charge_from_prop[0] + config["charge_atom_prop"] = args.charge_from_prop[0] else: if ext=="mol2": - preparator.charge_atom_prop = "_TriposPartialCharge" + config["charge_atom_prop"] = "_TriposPartialCharge" + + preparator = MoleculePreparation.from_config(config) for mol in mol_supplier: if is_after_first and output.is_multimol == False: From 7f1380f0ea724fd24a0aabd13bcd18407200c029 Mon Sep 17 00:00:00 2001 From: Amy He Date: Wed, 4 Dec 2024 19:39:39 -0800 Subject: [PATCH 24/44] fixup! use arguments from cli to override config, before preparator = MoleculePreparation.from_config(config); minor edits to help msg --- meeko/cli/mk_prepare_ligand.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index 6533ffe7..37b61964 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -558,14 +558,13 @@ def main(): if args.charge_from_prop is not None: if args.charge_model != "read": - print('--charge_from_prop must be used with --charge_model "read"') + print(f'--charge_from_prop must be used with --charge_model "read", but the current charge_model is "{args.charge_model}". ') sys.exit(1) config["charge_model"] = "read" - if args.charge_from_prop: - config["charge_atom_prop"] = args.charge_from_prop[0] - else: - if ext=="mol2": + config["charge_atom_prop"] = args.charge_from_prop[0] if args.charge_from_prop else "_TriposPartialCharge" if ext == "mol2" else None + else: + if ext=="mol2": config["charge_atom_prop"] = "_TriposPartialCharge" preparator = MoleculePreparation.from_config(config) From 056894137f14f082db2a1b197c8b510a68e06c9d Mon Sep 17 00:00:00 2001 From: Amy He Date: Thu, 5 Dec 2024 13:39:55 -0800 Subject: [PATCH 25/44] fix mistakes in handling args charge_from_prop and config; minor fix in error msg --- meeko/cli/mk_prepare_ligand.py | 20 +++++++++----------- meeko/preparation.py | 3 +-- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index 37b61964..6973cf53 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -79,8 +79,7 @@ def cmd_lineparser(): help="set molecule name from RDKit/SDF property", ) io_group.add_argument( - "--charge_from_prop", - nargs="*", + "--charge_atom_prop", help="set atom partial charges from an RDKit atom property based on the input file. The default is 'PartialCharge' for SDF and '_TriposPartialCharge' for MOL2 unless overriden by a user defined property name. ", ) io_group.add_argument( @@ -556,16 +555,15 @@ def main(): nr_failures = 0 is_after_first = False - if args.charge_from_prop is not None: - if args.charge_model != "read": - print(f'--charge_from_prop must be used with --charge_model "read", but the current charge_model is "{args.charge_model}". ') + if config["charge_atom_prop"] is not None: + if config["charge_model"] != "read": + print(f'--charge_atom_prop must be used with --charge_model "read", but the current charge_model is "{config["charge_model"]}". ') sys.exit(1) - - config["charge_model"] = "read" - config["charge_atom_prop"] = args.charge_from_prop[0] if args.charge_from_prop else "_TriposPartialCharge" if ext == "mol2" else None - else: - if ext=="mol2": - config["charge_atom_prop"] = "_TriposPartialCharge" + elif config["charge_model"] == "read": + if ext=="sdf": + config["charge_atom_prop"] = "PartialCharge" + elif ext=="mol2": + config["charge_atom_prop"] = "_TriposPartialCharge" preparator = MoleculePreparation.from_config(config) diff --git a/meeko/preparation.py b/meeko/preparation.py index e0bf07e2..a02a50c0 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -160,9 +160,8 @@ def __init__( if self.charge_model!="read" and self.charge_atom_prop: raise ValueError( - "A charge_atom_prop (%s) is given to MoleculePreparation but its current charge_model is %s. " + eol + + f"A charge_atom_prop ({charge_atom_prop}) is given to MoleculePreparation but its current charge_model is {charge_model}. " + eol + "To read charges from atom properties in the input mol, set charge_model to 'read' and name the property as 'charge_atom_prop'. " - % (charge_atom_prop, charge_model) ) if self.charge_model=="read": if not self.charge_atom_prop: From 772c8d90b5dc00badf23300eaf896f418fa2c6a9 Mon Sep 17 00:00:00 2001 From: Amy He Date: Thu, 5 Dec 2024 17:33:06 -0800 Subject: [PATCH 26/44] Only explicitly provided command line arguments override config --- meeko/cli/mk_prepare_ligand.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index 6973cf53..596b4cea 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -297,9 +297,29 @@ def cmd_lineparser(): sys.exit(2) args.reactive_smarts_idx -= 1 # convert from 1- to 0-index - # command line arguments override config - for key in config: - if key in args.__dict__: + # Only explicitly provided command line arguments override config + explicitly_provided_args = { + arg.lstrip('-') for arg in remaining_argv if arg.startswith('--') + } + + # Mapping arguments short-form to long-form + short_to_long = {} + + for action in parser._actions: + option_strings = action.option_strings + + short_option = next((opt for opt in option_strings if opt.startswith('-') and not opt.startswith('--')), None) + long_option = next((opt for opt in option_strings if opt.startswith('--')), None) + + if short_option and long_option: + short_to_long[short_option.lstrip('-')] = long_option.lstrip('--') + + explicitly_provided_args = explicitly_provided_args | { + short_to_long[arg.lstrip('-')] for arg in remaining_argv if arg.startswith('-') and not arg.startswith('--') + } + + for key in explicitly_provided_args: + if key in config: config[key] = args.__dict__[key] config["load_atom_params"] = args.load_atom_params From 3c4422c0c9fd004988328b48cb91b046bd1b5817 Mon Sep 17 00:00:00 2001 From: Amy He Date: Thu, 5 Dec 2024 21:35:08 -0800 Subject: [PATCH 27/44] remove special & redundant handling of explicitly prvided args; fix the special handling of some agrs that unexpectly end up with default (without referring to config) --- meeko/cli/mk_prepare_ligand.py | 39 ++++++++++++---------------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index 596b4cea..396ba21c 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -48,12 +48,21 @@ def cmd_lineparser(): confargs, remaining_argv = conf_parser.parse_known_args() config = MoleculePreparation.get_defaults_dict() + print("init config:", config) if confargs.config_file is not None: with open(confargs.config_file) as f: c = json.load(f) - config.update(c) + + for key in c: + if key not in config: + print(f"Got unsupported keyword ({key}) for MoleculePreparation from the config file ({confargs.config_file}). ") + sys.exit(2) + config.update(c) + + print("conf from file:", config) +# region CLIArgParser parser = ( argparse.ArgumentParser() ) # parents=[conf_parser]) # parents shows --config_file in help msg @@ -277,6 +286,7 @@ def cmd_lineparser(): help="indices (1-based) of the SMARTS atoms that will be attached (default: 1 2)", ) +# endregion parser.set_defaults(**config) args = parser.parse_args(remaining_argv) @@ -297,33 +307,10 @@ def cmd_lineparser(): sys.exit(2) args.reactive_smarts_idx -= 1 # convert from 1- to 0-index - # Only explicitly provided command line arguments override config - explicitly_provided_args = { - arg.lstrip('-') for arg in remaining_argv if arg.startswith('--') - } - - # Mapping arguments short-form to long-form - short_to_long = {} - - for action in parser._actions: - option_strings = action.option_strings - - short_option = next((opt for opt in option_strings if opt.startswith('-') and not opt.startswith('--')), None) - long_option = next((opt for opt in option_strings if opt.startswith('--')), None) - - if short_option and long_option: - short_to_long[short_option.lstrip('-')] = long_option.lstrip('--') - - explicitly_provided_args = explicitly_provided_args | { - short_to_long[arg.lstrip('-')] for arg in remaining_argv if arg.startswith('-') and not arg.startswith('--') - } - - for key in explicitly_provided_args: + for key in args.__dict__: if key in config: config[key] = args.__dict__[key] - config["load_atom_params"] = args.load_atom_params - if args.add_atom_types_json is not None: additional_ats = [] for at in args.add_atom_types_json: @@ -332,7 +319,7 @@ def cmd_lineparser(): additional_ats.append(at) elif type(at) == list: additional_ats.extend(at) - config["add_atom_types"] = additional_ats + config["add_atom_types"] += additional_ats if args.multimol_output_dir is not None or args.multimol_prefix is not None: if args.output_pdbqt_filename is not None: From 59957736f93abbc59bf41cab05f05985f78f921e Mon Sep 17 00:00:00 2001 From: Amy He Date: Thu, 5 Dec 2024 21:50:43 -0800 Subject: [PATCH 28/44] clean up unused backend options; redirect error msg to file=sys.stderr --- meeko/cli/mk_prepare_ligand.py | 52 ++++++++++++++++------------------ 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index 396ba21c..51b65708 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -11,7 +11,6 @@ import sys import json import tarfile -import warnings from rdkit import Chem @@ -33,7 +32,6 @@ def cmd_lineparser(): - backend = "rdkit" conf_parser = argparse.ArgumentParser( description=__doc__, @@ -48,7 +46,6 @@ def cmd_lineparser(): confargs, remaining_argv = conf_parser.parse_known_args() config = MoleculePreparation.get_defaults_dict() - print("init config:", config) if confargs.config_file is not None: with open(confargs.config_file) as f: @@ -56,11 +53,10 @@ def cmd_lineparser(): for key in c: if key not in config: - print(f"Got unsupported keyword ({key}) for MoleculePreparation from the config file ({confargs.config_file}). ") + print(f"Got unsupported keyword ({key}) for MoleculePreparation from the config file ({confargs.config_file}). ", + file=sys.stderr,) sys.exit(2) config.update(c) - - print("conf from file:", config) # region CLIArgParser parser = ( @@ -340,7 +336,8 @@ def cmd_lineparser(): num_required_covalent_args += int(args.tether_smarts is not None) if num_required_covalent_args not in [0, 3]: print( - "Error: --receptor, --rec_residue, and --tether_smarts are all required for covalent docking." + "Error: --receptor, --rec_residue, and --tether_smarts are all required for covalent docking.", + file=sys.stderr, ) sys.exit(2) is_covalent = num_required_covalent_args == 3 @@ -375,7 +372,7 @@ def cmd_lineparser(): indices[0] = indices[0] - 1 # convert from 1- to 0-index indices[1] = indices[1] - 1 - return args, config, backend, is_covalent + return args, config, is_covalent class Output: @@ -506,27 +503,27 @@ def get_suffixes(molsetups): return tuple("mk%d" % (i + 1) for i in range(len(molsetups))) def main(): - args, config, backend, is_covalent = cmd_lineparser() + args, config, is_covalent = cmd_lineparser() input_molecule_filename = args.input_molecule_filename # read input input_fname, ext = os.path.splitext(input_molecule_filename) ext = ext[1:].lower() - if backend == "rdkit": - parsers = { - "sdf": Chem.SDMolSupplier, - "mol2": rdkitutils.Mol2MolSupplier, - "mol": Chem.SDMolSupplier, - } - if not ext in parsers: - print( - "*ERROR* Format [%s] not in supported formats [%s]" - % (ext, "/".join(list(parsers.keys()))) - ) - sys.exit(1) - mol_supplier = parsers[ext]( - input_molecule_filename, removeHs=False - ) # input must have explicit H + + parsers = { + "sdf": Chem.SDMolSupplier, + "mol2": rdkitutils.Mol2MolSupplier, + "mol": Chem.SDMolSupplier, + } + if not ext in parsers: + print( + "*ERROR* Format [%s] not in supported formats [%s]" + % (ext, "/".join(list(parsers.keys()))) + ) + sys.exit(1) + mol_supplier = parsers[ext]( + input_molecule_filename, removeHs=False + ) # input must have explicit H # configure output writer if args.output_pdbqt_filename is None: @@ -554,7 +551,6 @@ def main(): rec_prody_mol = prody_parser(rec_filename) covalent_builder = CovalentBuilder(rec_prody_mol, args.rec_residue) - input_mol_counter = 0 input_mol_skipped = 0 input_mol_with_failure = ( 0 # if reactive or covalent, each mol can yield multiple PDBQT @@ -564,7 +560,8 @@ def main(): if config["charge_atom_prop"] is not None: if config["charge_model"] != "read": - print(f'--charge_atom_prop must be used with --charge_model "read", but the current charge_model is "{config["charge_model"]}". ') + print(f'--charge_atom_prop must be used with --charge_model "read", but the current charge_model is "{config["charge_model"]}". ', + file=sys.stderr,) sys.exit(1) elif config["charge_model"] == "read": if ext=="sdf": @@ -584,8 +581,7 @@ def main(): break # check that molecule was successfully loaded - if backend == "rdkit": - is_valid = mol is not None + is_valid = mol is not None input_mol_skipped += int(is_valid == False) if not is_valid: continue From d0fd018714c0eb4fa02141c40bc0953306634fa8 Mon Sep 17 00:00:00 2001 From: Amy He Date: Thu, 5 Dec 2024 21:53:45 -0800 Subject: [PATCH 29/44] clearify error msg; make them all begin with Error: --- meeko/cli/mk_prepare_ligand.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index 51b65708..912daaa7 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -53,7 +53,7 @@ def cmd_lineparser(): for key in c: if key not in config: - print(f"Got unsupported keyword ({key}) for MoleculePreparation from the config file ({confargs.config_file}). ", + print(f"Error: Got unsupported keyword ({key}) for MoleculePreparation from the config file ({confargs.config_file}). ", file=sys.stderr,) sys.exit(2) config.update(c) @@ -289,14 +289,14 @@ def cmd_lineparser(): # check reactive arguments if (args.reactive_smarts is None) != (args.reactive_smarts_idx is None): print( - "Arguments --reactive_smarts and --reactive_smarts_idx require each other", + "Error: Arguments --reactive_smarts and --reactive_smarts_idx require each other", file=sys.stderr, ) sys.exit(2) elif args.reactive_smarts_idx is not None: if args.reactive_smarts_idx < 1: print( - "--reactive_smarts_idx is 1-indexed, but got %d" + "Error: --reactive_smarts_idx is 1-indexed, but got %d" % args.reactive_smarts_idx, file=sys.stderr, ) @@ -342,14 +342,14 @@ def cmd_lineparser(): sys.exit(2) is_covalent = num_required_covalent_args == 3 if is_covalent and not _has_prody: - msg = "Covalent docking requires Prody which is not installed." + eol + msg = "Error: Covalent docking requires Prody which is not installed." + eol msg += "Installable from PyPI (pip install prody) or conda-forge (micromamba install prody)" print(_prody_import_error, file=sys.stderr) print(msg) sys.exit(2) if min(args.tether_smarts_indices) < 1: print( - "--tether_smarts_indices is 1-indexed, all values must be greater than zero", + "Error: --tether_smarts_indices is 1-indexed, all values must be greater than zero", file=sys.stderr, ) sys.exit(2) @@ -517,7 +517,7 @@ def main(): } if not ext in parsers: print( - "*ERROR* Format [%s] not in supported formats [%s]" + "Error: Format [%s] not in supported formats [%s]" % (ext, "/".join(list(parsers.keys()))) ) sys.exit(1) @@ -560,7 +560,7 @@ def main(): if config["charge_atom_prop"] is not None: if config["charge_model"] != "read": - print(f'--charge_atom_prop must be used with --charge_model "read", but the current charge_model is "{config["charge_model"]}". ', + print(f'Error: --charge_atom_prop must be used with --charge_model "read", but the current charge_model is "{config["charge_model"]}". ', file=sys.stderr,) sys.exit(1) elif config["charge_model"] == "read": From 86b0eb2e776b8966bc5b6eae636bfa8feaf9b4dc Mon Sep 17 00:00:00 2001 From: Amy He Date: Thu, 5 Dec 2024 22:36:17 -0800 Subject: [PATCH 30/44] clean up lines added in testing --- meeko/cli/mk_prepare_ligand.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index 912daaa7..5268b2cf 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -58,7 +58,6 @@ def cmd_lineparser(): sys.exit(2) config.update(c) -# region CLIArgParser parser = ( argparse.ArgumentParser() ) # parents=[conf_parser]) # parents shows --config_file in help msg @@ -282,7 +281,6 @@ def cmd_lineparser(): help="indices (1-based) of the SMARTS atoms that will be attached (default: 1 2)", ) -# endregion parser.set_defaults(**config) args = parser.parse_args(remaining_argv) From 36c3af412cb18b289ac90fc7323e4829d8712edc Mon Sep 17 00:00:00 2001 From: Amy He Date: Thu, 5 Dec 2024 23:01:42 -0800 Subject: [PATCH 31/44] revert unecessary changes to make diffs prettier --- meeko/cli/mk_prepare_ligand.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index 5268b2cf..c120bb16 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -11,6 +11,7 @@ import sys import json import tarfile +import warnings from rdkit import Chem @@ -50,12 +51,10 @@ def cmd_lineparser(): if confargs.config_file is not None: with open(confargs.config_file) as f: c = json.load(f) - - for key in c: - if key not in config: - print(f"Error: Got unsupported keyword ({key}) for MoleculePreparation from the config file ({confargs.config_file}). ", - file=sys.stderr,) - sys.exit(2) + if any(key not in config for key in c): + print(f"Error: Got unsupported keyword ({key}) for MoleculePreparation from the config file ({confargs.config_file}). ", + file=sys.stderr,) + sys.exit(2) config.update(c) parser = ( @@ -287,14 +286,14 @@ def cmd_lineparser(): # check reactive arguments if (args.reactive_smarts is None) != (args.reactive_smarts_idx is None): print( - "Error: Arguments --reactive_smarts and --reactive_smarts_idx require each other", + "Arguments --reactive_smarts and --reactive_smarts_idx require each other", file=sys.stderr, ) sys.exit(2) elif args.reactive_smarts_idx is not None: if args.reactive_smarts_idx < 1: print( - "Error: --reactive_smarts_idx is 1-indexed, but got %d" + "--reactive_smarts_idx is 1-indexed, but got %d" % args.reactive_smarts_idx, file=sys.stderr, ) @@ -340,14 +339,14 @@ def cmd_lineparser(): sys.exit(2) is_covalent = num_required_covalent_args == 3 if is_covalent and not _has_prody: - msg = "Error: Covalent docking requires Prody which is not installed." + eol + msg = "Covalent docking requires Prody which is not installed." + eol msg += "Installable from PyPI (pip install prody) or conda-forge (micromamba install prody)" print(_prody_import_error, file=sys.stderr) print(msg) sys.exit(2) if min(args.tether_smarts_indices) < 1: print( - "Error: --tether_smarts_indices is 1-indexed, all values must be greater than zero", + "--tether_smarts_indices is 1-indexed, all values must be greater than zero", file=sys.stderr, ) sys.exit(2) @@ -568,7 +567,6 @@ def main(): config["charge_atom_prop"] = "_TriposPartialCharge" preparator = MoleculePreparation.from_config(config) - for mol in mol_supplier: if is_after_first and output.is_multimol == False: print("Processed only the first molecule of multiple molecule input.") From eb82a91b6890a1613d2af04cf6e8d03fc7ee4f94 Mon Sep 17 00:00:00 2001 From: diogom Date: Fri, 6 Dec 2024 11:05:04 -0800 Subject: [PATCH 32/44] docs: cli args override config file params --- docs/source/lig_prep_advanced.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/lig_prep_advanced.rst b/docs/source/lig_prep_advanced.rst index 711aae27..a1d00a18 100644 --- a/docs/source/lig_prep_advanced.rst +++ b/docs/source/lig_prep_advanced.rst @@ -73,6 +73,8 @@ Alternatively, each parameter can be passed directly: mk_prepare_ligand.py -i mol.sdf --charge_model gasteiger --merge_these_atom_types H +Parameters passed directly as command line arguments override those in the +configuration file. Merging hydrogens (or not) From d9a2b825fc501c5cd9e3dc7fa516a0377d40bcc0 Mon Sep 17 00:00:00 2001 From: diogom Date: Fri, 6 Dec 2024 11:10:12 -0800 Subject: [PATCH 33/44] docs: cli arg add_atom_types extends config (no override) --- docs/source/lig_prep_advanced.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/lig_prep_advanced.rst b/docs/source/lig_prep_advanced.rst index a1d00a18..c7fac456 100644 --- a/docs/source/lig_prep_advanced.rst +++ b/docs/source/lig_prep_advanced.rst @@ -74,7 +74,8 @@ Alternatively, each parameter can be passed directly: mk_prepare_ligand.py -i mol.sdf --charge_model gasteiger --merge_these_atom_types H Parameters passed directly as command line arguments override those in the -configuration file. +configuration file. Exceptionally, option `add_atom_types` extends the +parameters in the configuration file. Merging hydrogens (or not) From 81151af6e7b26ada854318527930ec3c2837a2a1 Mon Sep 17 00:00:00 2001 From: Amy He Date: Fri, 6 Dec 2024 12:57:38 -0800 Subject: [PATCH 34/44] clean up changes; move --charge_atom_prop to config_group --- meeko/cli/mk_prepare_ligand.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index c120bb16..4a02517a 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -51,11 +51,7 @@ def cmd_lineparser(): if confargs.config_file is not None: with open(confargs.config_file) as f: c = json.load(f) - if any(key not in config for key in c): - print(f"Error: Got unsupported keyword ({key}) for MoleculePreparation from the config file ({confargs.config_file}). ", - file=sys.stderr,) - sys.exit(2) - config.update(c) + config.update(c) parser = ( argparse.ArgumentParser() @@ -81,10 +77,6 @@ def cmd_lineparser(): "--name_from_prop", help="set molecule name from RDKit/SDF property", ) - io_group.add_argument( - "--charge_atom_prop", - help="set atom partial charges from an RDKit atom property based on the input file. The default is 'PartialCharge' for SDF and '_TriposPartialCharge' for MOL2 unless overriden by a user defined property name. ", - ) io_group.add_argument( "-o", "--out", @@ -225,6 +217,10 @@ def cmd_lineparser(): help="default is 'gasteiger', 'zero' sets all zeros", default="gasteiger", ) + config_group.add_argument( + "--charge_atom_prop", + help="set atom partial charges from an RDKit atom property based on the input file. The default is 'PartialCharge' for SDF and '_TriposPartialCharge' for MOL2 unless overriden by a user defined property name. ", + ) config_group.add_argument( "--bad_charge_ok", help="NaN and Inf charges allowed in PDBQT", @@ -300,8 +296,9 @@ def cmd_lineparser(): sys.exit(2) args.reactive_smarts_idx -= 1 # convert from 1- to 0-index - for key in args.__dict__: - if key in config: + # command line arguments override config + for key in config: + if key in args.__dict__: config[key] = args.__dict__[key] if args.add_atom_types_json is not None: From a2a7984fecea42856e6bcfabebfef64e9f908287 Mon Sep 17 00:00:00 2001 From: diogom Date: Fri, 6 Dec 2024 14:41:33 -0800 Subject: [PATCH 35/44] clarify argparse overriding config file --- meeko/cli/mk_prepare_ligand.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index 4a02517a..d2de2468 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -46,13 +46,6 @@ def cmd_lineparser(): ) confargs, remaining_argv = conf_parser.parse_known_args() - config = MoleculePreparation.get_defaults_dict() - - if confargs.config_file is not None: - with open(confargs.config_file) as f: - c = json.load(f) - config.update(c) - parser = ( argparse.ArgumentParser() ) # parents=[conf_parser]) # parents shows --config_file in help msg @@ -276,6 +269,18 @@ def cmd_lineparser(): help="indices (1-based) of the SMARTS atoms that will be attached (default: 1 2)", ) + config = MoleculePreparation.get_defaults_dict() + + if confargs.config_file is not None: + with open(confargs.config_file) as f: + c = json.load(f) + config.update(c) + + # Command line arguments should override the config file only for options + # set explicitly by the user. The config file still has priority over the + # defaults set in argparse. To achieve this, we reset the argparse + # defaults to the values from the config file. Then, we can just update + # variable `config` with the values parsed with argparse parser.set_defaults(**config) args = parser.parse_args(remaining_argv) @@ -296,7 +301,10 @@ def cmd_lineparser(): sys.exit(2) args.reactive_smarts_idx -= 1 # convert from 1- to 0-index - # command line arguments override config + # This is where command line arguments override config file. + # Relies on key/parameter names being equal. + # Deliberate mismatch for add_atom_types/add_atom_types_json, as these + # are extended below instead of being replaced for key in config: if key in args.__dict__: config[key] = args.__dict__[key] From 02524c67da25a6d433048886fd602454d306e48c Mon Sep 17 00:00:00 2001 From: Amy He Date: Fri, 6 Dec 2024 16:41:53 -0800 Subject: [PATCH 36/44] use plain \n as eol --- meeko/cli/mk_export.py | 2 +- meeko/cli/mk_prepare_ligand.py | 2 +- meeko/cli/mk_prepare_receptor.py | 2 +- meeko/gridbox.py | 2 +- meeko/molsetup.py | 2 +- meeko/polymer.py | 2 +- meeko/preparation.py | 2 +- meeko/receptor_pdbqt.py | 2 +- meeko/writer.py | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/meeko/cli/mk_export.py b/meeko/cli/mk_export.py index 97ff34e9..3aec691f 100755 --- a/meeko/cli/mk_export.py +++ b/meeko/cli/mk_export.py @@ -7,7 +7,7 @@ import gzip import pathlib import sys -from os import linesep as eol +eol="\n" import warnings import copy import numpy as np diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index 8c115b5e..b506b7bf 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -7,7 +7,7 @@ from datetime import datetime import io import os -from os import linesep as eol +eol="\n" import sys import json import tarfile diff --git a/meeko/cli/mk_prepare_receptor.py b/meeko/cli/mk_prepare_receptor.py index 5aa99104..826cf676 100755 --- a/meeko/cli/mk_prepare_receptor.py +++ b/meeko/cli/mk_prepare_receptor.py @@ -3,7 +3,7 @@ import argparse import json import math -from os import linesep as eol +eol="\n" import pathlib import sys diff --git a/meeko/gridbox.py b/meeko/gridbox.py index 1fa78960..dc27db97 100644 --- a/meeko/gridbox.py +++ b/meeko/gridbox.py @@ -1,4 +1,4 @@ -from os import linesep as eol +eol="\n" import pathlib import numpy as np diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 598aac81..114681e2 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -9,7 +9,7 @@ from collections import defaultdict from dataclasses import asdict, dataclass, field import json -from os import linesep as eol +eol="\n" import sys import warnings from typing import Union diff --git a/meeko/polymer.py b/meeko/polymer.py index 575fd49b..2864bb3c 100644 --- a/meeko/polymer.py +++ b/meeko/polymer.py @@ -3,7 +3,7 @@ import logging import traceback from importlib.resources import files -from os import linesep as eol +eol="\n" from sys import exc_info from typing import Union from typing import Optional diff --git a/meeko/preparation.py b/meeko/preparation.py index 511f3548..6d499b72 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -6,7 +6,7 @@ from inspect import signature import json -from os import linesep as eol +eol="\n" import pathlib import warnings diff --git a/meeko/receptor_pdbqt.py b/meeko/receptor_pdbqt.py index 1dca835f..77eccebc 100644 --- a/meeko/receptor_pdbqt.py +++ b/meeko/receptor_pdbqt.py @@ -6,7 +6,7 @@ from collections import defaultdict import json -from os import linesep as eol +eol="\n" import numpy as np from scipy import spatial diff --git a/meeko/writer.py b/meeko/writer.py index f44e6d79..9b668ed2 100644 --- a/meeko/writer.py +++ b/meeko/writer.py @@ -7,7 +7,7 @@ import sys import json import math -from os import linesep as eol +eol="\n" import numpy as np from rdkit import Chem From 63147930b164d202e26cdc0d09f7eef9088729a4 Mon Sep 17 00:00:00 2001 From: diogom Date: Sun, 8 Dec 2024 11:51:24 -0800 Subject: [PATCH 37/44] don't max out substructure matches at 1000 --- meeko/molsetup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 114681e2..6e50640c 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -1783,7 +1783,8 @@ def find_pattern(self, smarts: str): The substruct matches in the RDKit Mol for the given SMARTS. """ p = Chem.MolFromSmarts(smarts) - return self.mol.GetSubstructMatches(p) + nr_atoms = self.mol.GetNumAtoms() + return self.mol.GetSubstructMatches(p, maxMatches=nr_atoms) def get_mol_name(self): """ From 41ef57263b5e6baa5c5838694024ef711a94b580 Mon Sep 17 00:00:00 2001 From: Amy He Date: Mon, 9 Dec 2024 11:11:33 -0800 Subject: [PATCH 38/44] catch prepare error without interrupting batch processing in mk_prepare_ligand.py --- meeko/cli/mk_prepare_ligand.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/meeko/cli/mk_prepare_ligand.py b/meeko/cli/mk_prepare_ligand.py index b506b7bf..bf67a56d 100755 --- a/meeko/cli/mk_prepare_ligand.py +++ b/meeko/cli/mk_prepare_ligand.py @@ -637,7 +637,15 @@ def main(): print(error_msg, file=sys.stderr) else: - molsetups = preparator.prepare(mol, rename_atoms=args.rename_atoms) + try: + molsetups = preparator.prepare(mol, rename_atoms=args.rename_atoms) + except Exception as error_msg: + nr_failures += 1 + this_mol_had_failure = True + print(error_msg, file=sys.stderr) + input_mol_with_failure += int(this_mol_had_failure) + continue + if len(molsetups) > 1: output.is_multimol = True suffixes = output.get_suffixes(molsetups) From cc7f0dadb0a4eb7e50b2c4538d8041b6dd68fdac Mon Sep 17 00:00:00 2001 From: diogom Date: Mon, 9 Dec 2024 18:43:59 -0800 Subject: [PATCH 39/44] remove dependencies from setup.py --- docs/source/installation.rst | 15 ++++++++++++--- setup.py | 2 -- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/docs/source/installation.rst b/docs/source/installation.rst index 28e44151..52be48b2 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -16,16 +16,25 @@ From conda-forge micromamba install meeko +Other tools like ``mamba`` or ``conda`` can also be used. Note that ``conda`` +is significantly slower. + From PyPI ------------------------- +--------- .. code-block:: bash pip install meeko -If using micromamba or a similar package manager, ``pip`` installs the package -in the active environment. +If using ``micromamba`` or a similar package manager, ``pip`` installs the +package in the active environment. The following dependencies required: +``python``, ``numpy``, ``scipy``, ``gemmi``, and ``rdkit``. + +Installing with ``pip`` does not check for missing dependencies or attempt to +resolve conflicts between versions. That information is included on the +conda-forge recipe and used by a package manager like +``mamba`` or ``micromamba``. From source diff --git a/setup.py b/setup.py index 18754284..ad99017f 100644 --- a/setup.py +++ b/setup.py @@ -31,8 +31,6 @@ def find_files(directory): packages=find_packages(), include_package_data=True, zip_safe=False, - install_requires=['numpy>=1.18', "rdkit", "scipy", "gemmi"], - python_requires='>=3.9, <3.12', license="LGPL-2.1", keywords=["molecular modeling", "drug design", "docking", "autodock"], From dc8b263676247f203962229f32913fb1eb467bd0 Mon Sep 17 00:00:00 2001 From: Amy He Date: Mon, 9 Dec 2024 23:03:01 -0800 Subject: [PATCH 40/44] remove from class Ring the unused attributes: graph and ring_corners --- meeko/molsetup.py | 23 ++--------------------- test/json_serialization_test.py | 5 ----- 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 6e50640c..e2771e98 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -48,8 +48,6 @@ DEFAULT_BOND_ROTATABLE = False -DEFAULT_RING_CORNER_FLIP = False -DEFAULT_RING_GRAPH = [] DEFAULT_RING_IS_AROMATIC = False DEFAULT_RING_CLOSURE_BONDS_REMOVED = [] DEFAULT_RING_CLOSURE_PSEUDOS_BY_ATOM = defaultdict @@ -348,8 +346,6 @@ def from_json(obj: dict): @dataclass class Ring: ring_id: tuple - corner_flip: bool = DEFAULT_RING_CORNER_FLIP - graph: dict = field(default_factory=list) is_aromatic: bool = DEFAULT_RING_IS_AROMATIC @staticmethod @@ -374,16 +370,14 @@ def from_json(obj: dict): return obj # Check that all the keys we expect are in the object dictionary as a safety measure - expected_json_keys = {"ring_id", "corner_flip", "graph", "is_aromatic"} + expected_json_keys = {"ring_id", "is_aromatic"} if set(obj.keys()) != expected_json_keys: return obj # Constructs a Ring object from the provided keys. ring_id = string_to_tuple(obj["ring_id"], int) - corner_flip = obj["corner_flip"] - graph = obj["graph"] is_aromatic = obj["is_aromatic"] - output_ring = Ring(ring_id, corner_flip, graph, is_aromatic) + output_ring = Ring(ring_id, is_aromatic) return output_ring @@ -1524,8 +1518,6 @@ class RDKitMoleculeSetup(MoleculeSetup, MoleculeSetupExternalToolkit): a mapping from tuples of atom indices to dihedral labels atom_to_ring_id: dict() mapping of atom index to ring id of each atom belonging to the ring - ring_corners: dict() - unclear what this is a mapping of, but is used to store corner flexibility for the rings rmsd_symmetry_indices: tuple Tuples of the indices of the molecule's atoms that match a substructure query. needs info. @@ -1543,7 +1535,6 @@ def __init__(self, name: str = None, is_sidechain: bool = False): self.dihedral_partaking_atoms: dict = {} self.dihedral_labels: dict = {} self.atom_to_ring_id = {} - self.ring_corners = {} self.rmsd_symmetry_indices = () def copy(self): @@ -1976,11 +1967,6 @@ def perceive_rings(self, keep_chorded_rings: bool, keep_equivalent_rings: bool): ring_to_add = Ring(ring_atom_indices) if self._is_ring_aromatic(ring_atom_indices): ring_to_add.is_aromatic = True - for atom_idx in ring_atom_indices: - # TODO: add it to some sort of atom to ring id tracking thing -> add to atom data structure - ring_to_add.graph = self._recursive_graph_walk( - atom_idx, collected=[], exclude=list(ring_atom_indices) - ) self.rings[ring_atom_indices] = ring_to_add return @@ -2152,7 +2138,6 @@ def from_json(obj): "dihedral_partaking_atoms", "dihedral_labels", "atom_to_ring_id", - "ring_corners", "rmsd_symmetry_indices", } for key in expected_molsetup_keys: @@ -2179,7 +2164,6 @@ def from_json(obj): int(k): [string_to_tuple(t) for t in v] for k, v in obj["atom_to_ring_id"].items() } - rdkit_molsetup.ring_corners = obj["ring_corners"] rdkit_molsetup.rmsd_symmetry_indices = [ string_to_tuple(v) for v in obj["rmsd_symmetry_indices"] ] @@ -2280,8 +2264,6 @@ def default(self, obj): if isinstance(obj, Ring): return { "ring_id": tuple_to_string(obj.ring_id), - "corner_flip": obj.corner_flip, - "graph": obj.graph, "is_aromatic": obj.is_aromatic, } return json.JSONEncoder.default(self, obj) @@ -2387,7 +2369,6 @@ def default(self, obj): output_dict["dihedral_partaking_atoms"] = {tuple_to_string(k): v for k,v in obj.dihedral_partaking_atoms.items()} output_dict["dihedral_labels"] = {tuple_to_string(k): v for k,v in obj.dihedral_labels.items()} output_dict["atom_to_ring_id"] = obj.atom_to_ring_id - output_dict["ring_corners"] = obj.ring_corners output_dict["rmsd_symmetry_indices"] = obj.rmsd_symmetry_indices # If nothing is in the dict, then none of the possible object types for this encoder matched and we should # return the default JSON encoder. diff --git a/test/json_serialization_test.py b/test/json_serialization_test.py index 7101f313..589103cc 100644 --- a/test/json_serialization_test.py +++ b/test/json_serialization_test.py @@ -525,11 +525,6 @@ def check_ring_equality(decoded_obj: Ring, starting_obj: Ring): """ assert isinstance(decoded_obj.ring_id, tuple) assert decoded_obj.ring_id == starting_obj.ring_id - assert isinstance(decoded_obj.corner_flip, bool) - assert decoded_obj.corner_flip == starting_obj.corner_flip - assert len(decoded_obj.graph) == len(starting_obj.graph) - for idx, val in enumerate(starting_obj.graph): - assert decoded_obj.graph[idx] == val assert isinstance(decoded_obj.is_aromatic, bool) assert decoded_obj.is_aromatic == starting_obj.is_aromatic return From b7ced6ce167f85165069986d87d689097b648144 Mon Sep 17 00:00:00 2001 From: Amy He Date: Tue, 10 Dec 2024 14:24:05 -0800 Subject: [PATCH 41/44] remove call to get_symmetries_for_rmsd from RDKitMoleculeSetup.from_mol() to reduce overhead --- meeko/molsetup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index e2771e98..dbdeb84f 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -1613,7 +1613,7 @@ def from_mol( molsetup.init_atom(compute_gasteiger_charges, read_charges_from_prop, coords) molsetup.init_bond() molsetup.perceive_rings(keep_chorded_rings, keep_equivalent_rings) - molsetup.rmsd_symmetry_indices = cls.get_symmetries_for_rmsd(mol) + # molsetup.rmsd_symmetry_indices = cls.get_symmetries_for_rmsd(mol) # to store sets of coordinates, e.g. docked poses, as dictionaries indexed by # the atom index, because not all atoms need to have new coordinates specified From 573a366ae117de4d57bfc7829d4f30e005fbc93f Mon Sep 17 00:00:00 2001 From: Amy He Date: Tue, 10 Dec 2024 14:44:27 -0800 Subject: [PATCH 42/44] remove is_aromatic from ring's attributes --- meeko/macrocycle.py | 4 +--- meeko/molsetup.py | 10 ++-------- test/json_serialization_test.py | 2 -- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/meeko/macrocycle.py b/meeko/macrocycle.py index d3cd947b..22700d1e 100644 --- a/meeko/macrocycle.py +++ b/meeko/macrocycle.py @@ -83,9 +83,7 @@ def collect_rings(self, setup): setup.rings.keys() ): # ring_id are the atom indices in each ring size = len(ring_id) - if setup.rings[ring_id].is_aromatic: - rigid_rings.append(ring_id) - elif size < self._min_ring_size: + if size < self._min_ring_size: rigid_rings.append(ring_id) # do not add rings > _max_ring_size to rigid_rings # because bonds in rigid rings will not be breakable diff --git a/meeko/molsetup.py b/meeko/molsetup.py index dbdeb84f..211f7ef8 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -48,7 +48,6 @@ DEFAULT_BOND_ROTATABLE = False -DEFAULT_RING_IS_AROMATIC = False DEFAULT_RING_CLOSURE_BONDS_REMOVED = [] DEFAULT_RING_CLOSURE_PSEUDOS_BY_ATOM = defaultdict # endregion @@ -346,7 +345,6 @@ def from_json(obj: dict): @dataclass class Ring: ring_id: tuple - is_aromatic: bool = DEFAULT_RING_IS_AROMATIC @staticmethod def from_json(obj: dict): @@ -370,14 +368,13 @@ def from_json(obj: dict): return obj # Check that all the keys we expect are in the object dictionary as a safety measure - expected_json_keys = {"ring_id", "is_aromatic"} + expected_json_keys = {"ring_id"} if set(obj.keys()) != expected_json_keys: return obj # Constructs a Ring object from the provided keys. ring_id = string_to_tuple(obj["ring_id"], int) - is_aromatic = obj["is_aromatic"] - output_ring = Ring(ring_id, is_aromatic) + output_ring = Ring(ring_id) return output_ring @@ -1965,8 +1962,6 @@ def perceive_rings(self, keep_chorded_rings: bool, keep_equivalent_rings: bool): rings = hjk_ring_detection.scan(keep_chorded_rings, keep_equivalent_rings) for ring_atom_indices in rings: ring_to_add = Ring(ring_atom_indices) - if self._is_ring_aromatic(ring_atom_indices): - ring_to_add.is_aromatic = True self.rings[ring_atom_indices] = ring_to_add return @@ -2264,7 +2259,6 @@ def default(self, obj): if isinstance(obj, Ring): return { "ring_id": tuple_to_string(obj.ring_id), - "is_aromatic": obj.is_aromatic, } return json.JSONEncoder.default(self, obj) diff --git a/test/json_serialization_test.py b/test/json_serialization_test.py index 589103cc..f13112dc 100644 --- a/test/json_serialization_test.py +++ b/test/json_serialization_test.py @@ -525,8 +525,6 @@ def check_ring_equality(decoded_obj: Ring, starting_obj: Ring): """ assert isinstance(decoded_obj.ring_id, tuple) assert decoded_obj.ring_id == starting_obj.ring_id - assert isinstance(decoded_obj.is_aromatic, bool) - assert decoded_obj.is_aromatic == starting_obj.is_aromatic return From cd40ef138b0ad079c042e7f1586f23a4f45874d4 Mon Sep 17 00:00:00 2001 From: diogom Date: Tue, 10 Dec 2024 16:23:41 -0800 Subject: [PATCH 43/44] test aromatic rings unbreakable with macrocycle code --- test/macrocycle_test.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/macrocycle_test.py b/test/macrocycle_test.py index 9bae4b79..7463f4cf 100644 --- a/test/macrocycle_test.py +++ b/test/macrocycle_test.py @@ -62,6 +62,30 @@ def test_external_ring_closure(): mindist = min(mindist, abs(x - xcoord)) assert(mindist < 1e-3) # loose matching +def test_aromatic_rings_unbroken(): + write_pdbqt = PDBQTWriterLegacy.write_string + mol = Chem.MolFromMolFile(filenames["macrocycle3"], removeHs=False) + mk_prep = MoleculePreparation(min_ring_size=5) + setups = mk_prep(mol) + assert len(setups) == 1 + setup = setups[0] + nr_rot = sum([b.rotatable for _, b in setup.bond_info.items()]) + assert nr_rot == 9 + pdbqt_string, is_ok, error_msg = write_pdbqt(setup) + assert pdbqt_string.count("ENDBRANCH") == 8 + # now we will check that a 6-member ring that is not aromatic does break + # when we set the min ring size to six or less + mol2 = Chem.MolFromMolFile(filenames["macrocycle5"], removeHs=False) + setups_broken = mk_prep(mol2) + mk_prep = MoleculePreparation(min_ring_size=7) + setups_unbroken = mk_prep(mol2) + assert len(setups_broken) == 1 + assert len(setups_unbroken) == 1 + pdbqt_broken, is_ok, err = write_pdbqt(setups_broken[0]) + pdbqt_unbroken, is_ok, err = write_pdbqt(setups_unbroken[0]) + assert pdbqt_broken.count("ENDBRANCH") > pdbqt_unbroken.count("ENDBRANCH") + + def run(molname): filename = filenames[molname] mol = Chem.MolFromMolFile(filename, removeHs=False) @@ -76,3 +100,4 @@ def run(molname): def test_all(): for molname in num_cycle_breaks: run(molname) + From 2a756b0eb0373e28a495eeab1f59f9f1976cd021 Mon Sep 17 00:00:00 2001 From: diogom Date: Tue, 17 Dec 2024 09:14:06 -0800 Subject: [PATCH 44/44] minor fixes and minor clean up --- meeko/data/params/ad4_hb.json | 1 + meeko/molsetup.py | 42 ++--------------------------------- meeko/polymer.py | 2 +- 3 files changed, 4 insertions(+), 41 deletions(-) diff --git a/meeko/data/params/ad4_hb.json b/meeko/data/params/ad4_hb.json index b2320e7a..5bc72d55 100644 --- a/meeko/data/params/ad4_hb.json +++ b/meeko/data/params/ad4_hb.json @@ -1,4 +1,5 @@ {"ad4_hb": [ + { "ad4_hb_hydrogen": false, "smarts": "[*]"}, { "ad4_hb_hydrogen": true, "smarts": "[#1][#7,#8,#9,#15,#16]"}, {"ad4_hb_rij": 1.9, "ad4_hb_epsij": 5.0, "smarts": "[#8]"}, {"ad4_hb_rij": 1.9, "ad4_hb_epsij": 5.0, "smarts": "[#7;!+1;!+2;!$([#7X3v3][a]);!$([#7X3v3][#6X3v4])]"}, diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 211f7ef8..07eb8a17 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -1903,45 +1903,6 @@ def get_smiles_and_order(self): return smiles, order # region Ring Construction - def _is_ring_aromatic(self, ring_atom_indices: list[(int, int)]): - """ - Determines whether a ring is aromatic. - - Parameters - ---------- - ring_atom_indices: the atom indices in the ring. - - Returns - ------- - A boolean indicating whether this ring is aromatic. - """ - for atom_idx1, atom_idx2 in self.get_bonds_in_ring(ring_atom_indices): - bond = self.mol.GetBondBetweenAtoms(atom_idx1, atom_idx2) - if not bond.GetIsAromatic(): - return False - return True - - @staticmethod - def _construct_old_graph(atom_list: list[Atom]): - """ - To support older implementations of helper functions in Meeko, takes a list of atoms and uses it to create a - list of each atom's graph value, where the index of a graph in the list corresponds to the atom's atom_index. - - Parameters - ---------- - atom_list: list[Atom] - A list of populated Atom objects. - - Returns - ------- - A dict mapping from atom index to lists of ints, where each list of ints represents the bonds from that - atom index to other atom indices. - """ - output_graph = {} - for atom in atom_list: - output_graph[atom.index] = atom.graph - return output_graph - def perceive_rings(self, keep_chorded_rings: bool, keep_equivalent_rings: bool): """ Uses Hanser-Jauffret-Kaufmann exhaustive ring detection to find the rings in the molecule @@ -1957,7 +1918,8 @@ def perceive_rings(self, keep_chorded_rings: bool, keep_equivalent_rings: bool): ------- None """ - old_graph = self._construct_old_graph(self.atoms) + + old_graph = {atom.index: atom.graph for atom in self.atoms} hjk_ring_detection = utils.HJKRingDetection(old_graph) rings = hjk_ring_detection.scan(keep_chorded_rings, keep_equivalent_rings) for ring_atom_indices in rings: diff --git a/meeko/polymer.py b/meeko/polymer.py index 2864bb3c..e6dba128 100644 --- a/meeko/polymer.py +++ b/meeko/polymer.py @@ -623,7 +623,7 @@ def padder_from_dict(data): def add_dict(self, data, overwrite=False): bad_keys = set(data) - {"ambiguous", "residue_templates", "padders"} if bad_keys: - raise ValueError("unexpected keys: {bad_keys}") + raise ValueError(f"unexpected keys: {bad_keys}") new_ambiguous = data.get("ambiguous", {}) if overwrite: self.ambiguous.update(new_ambiguous)