Download Notebook View in GitHub Open in Google Colab
Inspect parameters assigned to specific molecules
The Open Force Field Toolkit applies parameters based on the SMARTS/SMIRKS language. These examples are intended to expose how ForceField
assigns SMIRKS-based parameters to test molecules.
Example 1: Create an example molecule and label the force terms applied to it.
This example shows the parameters applied to a single molecule that is created from a SMILES string.
The first output section consists of Bond
parameters that would be assigned to the molecule. Each bond is described by the indices of the two atoms it connects, its “parameter ID”, and the SMIRKS that caused it to match the target bond.
The other ParameterHandler
s print in order after that.
Note that the ToolkitAM1BCC
and Electrostatics
handlers do not assign SMIRKS-based parameters, therefore they do not print any match information.
from openff.toolkit import ForceField, Molecule, Topology
# Create a simple molecule from SMILES and turn it into a topology.
molecule = Molecule.from_smiles("C=C(N)(C)")
topology = Topology.from_molecules([molecule])
# Let's label using the Sage force field
forcefield = ForceField("openff-2.2.0.offxml")
# Run the molecule labeling
molecule_force_list = forcefield.label_molecules(topology)
# Print out a formatted description of the parameters applied to this molecule
for mol_idx, mol_forces in enumerate(molecule_force_list):
print(f"Forces for molecule {mol_idx}")
for force_tag, force_dict in mol_forces.items():
print(f"\n{force_tag}:")
for atom_indices, parameter in force_dict.items():
atomstr = ""
for idx in atom_indices:
atomstr += f"{idx:>3}"
print(
f"atoms: {atomstr} parameter_id: {parameter.id} smirks {parameter.smirks}"
)
Forces for molecule 0
Constraints:
atoms: 0 4 parameter_id: c1 smirks [#1:1]-[*:2]
atoms: 0 5 parameter_id: c1 smirks [#1:1]-[*:2]
atoms: 2 6 parameter_id: c1 smirks [#1:1]-[*:2]
atoms: 2 7 parameter_id: c1 smirks [#1:1]-[*:2]
atoms: 3 8 parameter_id: c1 smirks [#1:1]-[*:2]
atoms: 3 9 parameter_id: c1 smirks [#1:1]-[*:2]
atoms: 3 10 parameter_id: c1 smirks [#1:1]-[*:2]
Bonds:
atoms: 0 1 parameter_id: b6 smirks [#6X3:1]=[#6X3:2]
atoms: 0 4 parameter_id: b85 smirks [#6X3:1]-[#1:2]
atoms: 0 5 parameter_id: b85 smirks [#6X3:1]-[#1:2]
atoms: 1 2 parameter_id: b8 smirks [#6X3:1]-[#7X3:2]
atoms: 1 3 parameter_id: b2 smirks [#6X4:1]-[#6X3:2]
atoms: 2 6 parameter_id: b87 smirks [#7:1]-[#1:2]
atoms: 2 7 parameter_id: b87 smirks [#7:1]-[#1:2]
atoms: 3 8 parameter_id: b84 smirks [#6X4:1]-[#1:2]
atoms: 3 9 parameter_id: b84 smirks [#6X4:1]-[#1:2]
atoms: 3 10 parameter_id: b84 smirks [#6X4:1]-[#1:2]
Angles:
atoms: 0 1 2 parameter_id: a10 smirks [*:1]~[#6X3:2]~[*:3]
atoms: 0 1 3 parameter_id: a10 smirks [*:1]~[#6X3:2]~[*:3]
atoms: 1 0 4 parameter_id: a11 smirks [#1:1]-[#6X3:2]~[*:3]
atoms: 1 0 5 parameter_id: a11 smirks [#1:1]-[#6X3:2]~[*:3]
atoms: 1 2 6 parameter_id: a21 smirks [#1:1]-[#7X3$(*~[#6X3,#6X2,#7X2+0]):2]-[*:3]
atoms: 1 2 7 parameter_id: a21 smirks [#1:1]-[#7X3$(*~[#6X3,#6X2,#7X2+0]):2]-[*:3]
atoms: 1 3 8 parameter_id: a1 smirks [*:1]~[#6X4:2]-[*:3]
atoms: 1 3 9 parameter_id: a1 smirks [*:1]~[#6X4:2]-[*:3]
atoms: 1 3 10 parameter_id: a1 smirks [*:1]~[#6X4:2]-[*:3]
atoms: 2 1 3 parameter_id: a10 smirks [*:1]~[#6X3:2]~[*:3]
atoms: 4 0 5 parameter_id: a12 smirks [#1:1]-[#6X3:2]-[#1:3]
atoms: 6 2 7 parameter_id: a21 smirks [#1:1]-[#7X3$(*~[#6X3,#6X2,#7X2+0]):2]-[*:3]
atoms: 8 3 9 parameter_id: a2 smirks [#1:1]-[#6X4:2]-[#1:3]
atoms: 8 3 10 parameter_id: a2 smirks [#1:1]-[#6X4:2]-[#1:3]
atoms: 9 3 10 parameter_id: a2 smirks [#1:1]-[#6X4:2]-[#1:3]
ProperTorsions:
atoms: 0 1 2 6 parameter_id: t74 smirks [*:1]~[#7X3,#7X2-1:2]-!@[#6X3:3]~[*:4]
atoms: 0 1 2 7 parameter_id: t74 smirks [*:1]~[#7X3,#7X2-1:2]-!@[#6X3:3]~[*:4]
atoms: 0 1 3 8 parameter_id: t20 smirks [#1:1]-[#6X4:2]-[#6X3:3]=[#6X3:4]
atoms: 0 1 3 9 parameter_id: t20 smirks [#1:1]-[#6X4:2]-[#6X3:3]=[#6X3:4]
atoms: 0 1 3 10 parameter_id: t20 smirks [#1:1]-[#6X4:2]-[#6X3:3]=[#6X3:4]
atoms: 2 1 0 4 parameter_id: t45 smirks [*:1]-,:[#6X3:2]=[#6X3:3]-,:[*:4]
atoms: 2 1 0 5 parameter_id: t45 smirks [*:1]-,:[#6X3:2]=[#6X3:3]-,:[*:4]
atoms: 2 1 3 8 parameter_id: t17 smirks [*:1]~[#6X3:2]-[#6X4:3]-[*:4]
atoms: 2 1 3 9 parameter_id: t17 smirks [*:1]~[#6X3:2]-[#6X4:3]-[*:4]
atoms: 2 1 3 10 parameter_id: t17 smirks [*:1]~[#6X3:2]-[#6X4:3]-[*:4]
atoms: 3 1 0 4 parameter_id: t45 smirks [*:1]-,:[#6X3:2]=[#6X3:3]-,:[*:4]
atoms: 3 1 0 5 parameter_id: t45 smirks [*:1]-,:[#6X3:2]=[#6X3:3]-,:[*:4]
atoms: 3 1 2 6 parameter_id: t74 smirks [*:1]~[#7X3,#7X2-1:2]-!@[#6X3:3]~[*:4]
atoms: 3 1 2 7 parameter_id: t74 smirks [*:1]~[#7X3,#7X2-1:2]-!@[#6X3:3]~[*:4]
ImproperTorsions:
atoms: 0 1 2 3 parameter_id: i1 smirks [*:1]~[#6X3:2](~[*:3])~[*:4]
atoms: 1 0 4 5 parameter_id: i1 smirks [*:1]~[#6X3:2](~[*:3])~[*:4]
atoms: 1 2 6 7 parameter_id: i4 smirks [*:1]~[#7X3$(*~[#6X3]):2](~[*:3])~[*:4]
vdW:
atoms: 0 parameter_id: n14 smirks [#6:1]
atoms: 1 parameter_id: n14 smirks [#6:1]
atoms: 2 parameter_id: n20 smirks [#7:1]
atoms: 3 parameter_id: n16 smirks [#6X4:1]
atoms: 4 parameter_id: n7 smirks [#1:1]-[#6X3]
atoms: 5 parameter_id: n7 smirks [#1:1]-[#6X3]
atoms: 6 parameter_id: n11 smirks [#1:1]-[#7]
atoms: 7 parameter_id: n11 smirks [#1:1]-[#7]
atoms: 8 parameter_id: n2 smirks [#1:1]-[#6X4]
atoms: 9 parameter_id: n2 smirks [#1:1]-[#6X4]
atoms: 10 parameter_id: n2 smirks [#1:1]-[#6X4]
Electrostatics:
LibraryCharges:
ToolkitAM1BCC:
Example 2: Analyze the parameters assigned to groups of molecules
Here we analyze which parameters are applied to a group of molecules.
This example uses get_molecule_parameterIDs
, a simple utility function similar to label_molecules
, but intended for use on large datasets. get_molecule_parameterIDs
processes a list of molecules using a specified ForceField
and returns the parameters that would be assigned to each molecule, grouping the results both by molecule and by parameter.
This example may be useful when adding new parameters, to ensure that they are applied to molecules in a given data set.
This example also highlights the difference between “specific” and “generic” parameters. In the SMIRNOFF format, more than one SMIRKS-based parameter may match a motif in a molecule. Therefore, some parameters have precedence over others. Parameters which are “generic” are listed near the top of a parameter section, while more “specific” parameters occur near the end of the section. During parameter assignment, the furthest-down parameter that matches a motif in the molecule is assigned.
During actual parameter assignment, if the toolkit is unable to assign SMIRKS-based parameters to any part of a molecule, an UnassignedValenceParameterException
will be raised.
from openff.toolkit import ForceField, Molecule
from openff.toolkit.utils import get_molecule_parameterIDs
# The set of molecules that we want to parametrize in SMILES format.
molecule_smiles = [
"[H][C@@]1([C@](OC1([H])[H])([H])O[H])O[H]",
"[H]C1(C(C(C1([H])O[H])([H])[H])([H])O[H])[H]",
"[H]C1(C(C(O1)([H])[H])([H])O[H])[H]",
"[H][C@@]1(C([C@@](OC1([H])[H])([H])O[H])([H])[H])O[H]",
"[H][C@@]1(C(O[C@](O1)([H])O[H])([H])[H])O[H]",
"[H][C@]1(C([C@](O1)([H])O[H])([H])[H])O[H]",
"[H][C@]1(C(OC(O1)([H])[H])([H])[H])O[H]",
"[H][C@@]1([C@](C(C(C1([H])[H])([H])[H])([H])[H])([H])O[H])O[H]",
"[H][C@]1([C@@](C(OC(C(C1([H])[H])([H])[H])([H])[H])([H])[H])([H])O[H])O[H]",
"[H][C@@]1([C@](OC(C(C1([H])[H])([H])[H])([H])[H])([H])O[H])O[H]",
]
# Create the Molecule objects to parametrize.
mols = [Molecule.from_smiles(smiles) for smiles in molecule_smiles]
# Let's label using the original "Sage" force field
forcefield = ForceField("openff-2.1.0.offxml")
# This utility function creates dictionaries describing parameter assignment,
# grouped both by molecule and by parameter
parameters_by_molecule, parameters_by_ID = get_molecule_parameterIDs(mols, forcefield)
print("Molecules with parameter IDs:")
# parameters_by_ID is a dictionary where keys are parameter IDs and values
# are molecules in which each parameter ID occurs.
pids_ordered = sorted(list(parameters_by_ID.keys()))
for pid in pids_ordered:
print(pid)
for ids in parameters_by_ID[pid]:
print("\t", ids)
Molecules with parameter IDs:
a1
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
a2
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
a28
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
a7
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
a8
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
a9
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
b1
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
b14
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
b16
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
b84
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
b88
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
c1
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
n12
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
n16
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
n18
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
n19
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
n2
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
n3
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
n4
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
n5
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
t1
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
t2
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
t3
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
t4
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
t5
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
t9
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
t93
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
t94
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@]1([H])[C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C]1([H])[C]([H])([H])[C]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
t95
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
t96
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C]1([H])[C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[C]([H])([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@]1([H])[O][H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]
t98
[H][O][C@]1([H])[O][C]([H])([H])[C]([H])([H])[C]([H])([H])[C@@]1([H])[O][H]
[H][O][C@@]1([H])[O][C]([H])([H])[O][C]1([H])[H]
[H][O][C@@]1([H])[O][C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@@]1([H])[O][C]([H])([H])[C@]([H])([O][H])[O]1
[H][O][C@@]1([H])[O][C]([H])([H])[C@@]([H])([O][H])[C]1([H])[H]
[H][O][C@]1([H])[O][C]([H])([H])[C@@]1([H])[O][H]