Repository: a-r-j/graphein (language: python)

Issue:
Add additional inputs for CLI
**Describe the solution you'd like**
* inputs for chain selection as a separate .txt file
* Input as list of PDB codes (txt file) rather than PDB directory path


Discussion / hints:

Fix patch:
diff --git a/.requirements/base.in b/.requirements/base.in
index 797a23ec..8365aede 100644
--- a/.requirements/base.in
+++ b/.requirements/base.in
@@ -10,6 +10,7 @@ numpy
 pandas
 plotly
 pydantic
+rich
 seaborn
 pyyaml>=5.1,<6.*
 scikit-learn
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1abc8d16..1383348b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,14 @@
+### 1.5.0 - UNRELEASED
+
+* [Feature] - #163 Adds support for conformer generation for SMILE inputs to molecule graph construction.
+* [Feature] - #163 Adds support for molecule graph generation from an RDKit.Chem.Mol input.
+* [Feature] - #163 Adds support for multiprocess molecule graph construction.
+* [Patch] - #163 uses tqdm.contrib.process_map insteap of multiprocessing.Pool.map to provide progress bars in multiprocessing.
+
+#### Breaking Changes
+
+* #163 changes separate filetype input paths to `graphein.molecule.graphs.construct_graph`. Interface is simplified to simply `path="some/path.extension"` instead of separate inputs like `mol2_path=...` and `sdf_path=...`.
+
 ### 1.4.0 - UNRELEASED
 
 * [Patch] - #158 changes the eigenvector computation method from `nx.eigenvector_centrality` to `nx.eigenvector_centrality_numpy`.
diff --git a/graphein/molecule/config.py b/graphein/molecule/config.py
index 4840e8f3..dcb4f75e 100644
--- a/graphein/molecule/config.py
+++ b/graphein/molecule/config.py
@@ -47,6 +47,9 @@ class MoleculeGraphConfig(BaseModel):
     :type verbose: bool
     :param add_hs: Specifies whether hydrogens should be added to the graph.
     :type add_hs: bool
+    :param generate_conformer: Specifies whether or not to generate a conformer for inputs that do not provide coordinates (e.g. SMILES).
+        Uses :meth:`graphein.molecule.graphs.generate_3d` to generate conformers.
+        Default: ``False``.
     :param edge_construction_functions: List of functions that take an ``nx.Graph`` and return an ``nx.Graph`` with desired
         edges added. Prepared edge constructions can be found in :ref:`graphein.protein.edges`
     :type edge_construction_functions: List[Callable]
@@ -61,6 +64,7 @@ class MoleculeGraphConfig(BaseModel):
 
     verbose: bool = False
     add_hs: bool = False
+    generate_conformer: bool = False
     # Graph construction functions
     edge_construction_functions: List[Union[Callable, str]] = [
         add_fully_connected_edges,
diff --git a/graphein/molecule/graphs.py b/graphein/molecule/graphs.py
index f6e0b70c..76eae752 100644
--- a/graphein/molecule/graphs.py
+++ b/graphein/molecule/graphs.py
@@ -7,10 +7,14 @@
 # Code Repository: https://github.com/a-r-j/graphein
 from __future__ import annotations
 
-from typing import Callable, List, Optional
+import logging
+import traceback
+from functools import partial
+from typing import Callable, Dict, List, Optional, Tuple, Union
 
 import networkx as nx
 import numpy as np
+from tqdm.contrib.concurrent import process_map, thread_map
 
 from graphein.molecule.edges.atomic import add_atom_bonds
 from graphein.utils.utils import (
@@ -23,9 +27,13 @@
 
 from .config import MoleculeGraphConfig
 
+log = logging.getLogger(__name__)
+
+
 try:
     import rdkit
     from rdkit import Chem
+    from rdkit.Chem import AllChem
 except ImportError:
     import_message("graphein.molecule.graphs", "rdkit", "rdkit", True)
 
@@ -82,19 +90,53 @@ def add_nodes_to_graph(
     return G
 
 
+def generate_3d(
+    mol: Union[nx.Graph, Chem.Mol], recompute_graph: bool = False
+) -> Union[nx.Graph, rdkit.Chem.rdchem.Mol]:
+    """
+    Generate a 3D structure for a RDKit molecule.
+
+    Steps:
+    1. Adds Hydrogens
+    2. Embeds molecule with ``AllChem.ETKDGv3`` (using ``useSmallRingTorsions=True``)
+    3. Optimizes molecule with ``AllChem.MMFFOptimizeMolecule``
+    4. Removes Hydrogens
+    5. Returns molecule OR (optionally) recomputes the molecular graph (if ``recompute_graph=True``) using the new coordinates.
+
+    :param mol: input molecule
+    :type mol: Union[nx.Graph, Chem.Mol]
+    :param recompute_graph: whether to recompute the graph based on the generated conformer.
+    :type recompute_graph: bool
+    :return: molecule with 3D coordinates or recomputed molecular graph.
+    :rtype: Union[nx.Graph, Chem.Mol]
+    """
+    rdmol = mol.graph["rdmol"] if isinstance(mol, nx.Graph) else mol
+    rdmol = Chem.AddHs(rdmol)
+    params = AllChem.ETKDGv3()
+    params.useSmallRingTorsions = True
+    Chem.AddHs(rdmol)
+    AllChem.EmbedMolecule(rdmol, params=params)
+    AllChem.MMFFOptimizeMolecule(rdmol)
+    rdmol = Chem.RemoveHs(rdmol)
+
+    if recompute_graph:
+        return construct_graph(config=mol.graph["config"], mol=rdmol)
+
+    return rdmol
+
+
 def construct_graph(
     config: Optional[MoleculeGraphConfig] = None,
-    sdf_path: Optional[str] = None,
+    mol: Optional[rdkit.Mol] = None,
+    path: Optional[str] = None,
     smiles: Optional[str] = None,
-    mol2_path: Optional[str] = None,
-    pdb_path: Optional[str] = None,
     edge_construction_funcs: Optional[str] = None,
     edge_annotation_funcs: Optional[List[Callable]] = None,
     node_annotation_funcs: Optional[List[Callable]] = None,
     graph_annotation_funcs: Optional[List[Callable]] = None,
 ) -> nx.Graph:
     """
-    Constructs protein structure graph from a ``sdf_path``, ``mol2_path``  or ``smiles``.
+    Constructs protein structure graph from a ``sdf_path``, ``mol2_path``, ``smiles`` or RDKit Mol.
 
     Users can provide a :class:`~graphein.molecule.config.MoleculeGraphConfig`
     object to specify construction parameters.
@@ -103,14 +145,12 @@ def construct_graph(
 
     :param config: :class:`~graphein.molecule.config.MoleculeGraphConfig` object. If None, defaults to config in ``graphein.molecule.config``.
     :type config: graphein.molecule.config.MoleculeGraphConfig, optional
-    :param sdf_path: Path to ``sdf_file`` to build graph from. Default is ``None``.
-    :type sdf_path: str, optional
+    :param mol: rdkit.Mol object to build graph from. Defaults to ``None``.
+    :type mol: rdkit.Mol, optional
+    :param path: Path to either a ``.sdf``, ``.mol2``, ``.smi`` or ``pdb`` file. Defaults to ``None``.
+    :type path: str
     :param smiles: smiles string to build graph from. Default is ``None``.
     :type smiles: str, optional
-    :param mol2_path: Path to ``mol2_file`` to build graph from. Default is ``None``.
-    :type mol2_path: str, optional
-    :param pdb_path: Path to ``pdb_file`` to build graph from. Default is ``None``.
-    :type pdb_path: str, optional
     :param edge_construction_funcs: List of edge construction functions. Default is ``None``.
     :type edge_construction_funcs: List[Callable], optional
     :param edge_annotation_funcs: List of edge annotation functions. Default is ``None``.
@@ -152,26 +192,49 @@ def construct_graph(
     if smiles is not None:
         name = smiles
         rdmol = Chem.MolFromSmiles(smiles)
-
-    if sdf_path is not None:
-        name = sdf_path.split("/")[-1].split(".")[0]
-        rdmol = Chem.SDMolSupplier(sdf_path)[0]
-        coords = [
-            list(rdmol.GetConformer(0).GetAtomPosition(idx))
-            for idx in range(rdmol.GetNumAtoms())
-        ]
-
-    if mol2_path is not None:
-        name = mol2_path.split("/")[-1].split(".")[0]
-        rdmol = Chem.MolFromMol2File(mol2_path)
-        coords = [
-            list(rdmol.GetConformer(0).GetAtomPosition(idx))
-            for idx in range(rdmol.GetNumAtoms())
-        ]
-
-    if pdb_path is not None:
-        name = pdb_path.split("/")[-1].split(".")[0]
-        rdmol = Chem.MolFromPDBFile(pdb_path)
+        if config.generate_conformer:
+            rdmol = generate_3d(mol=rdmol, recompute_graph=False)
+            coords = [
+                list(rdmol.GetConformer(0).GetAtomPosition(idx))
+                for idx in range(rdmol.GetNumAtoms())
+            ]
+
+    if path is not None:
+        name = path.split("/")[-1].split(".")[0]
+        if path.lower().endswith(".sdf"):
+            rdmol = Chem.SDMolSupplier(path)[0]
+            coords = [
+                list(rdmol.GetConformer(0).GetAtomPosition(idx))
+                for idx in range(rdmol.GetNumAtoms())
+            ]
+        elif path.lower().endswith(".mol2"):
+            rdmol = Chem.MolFromMol2File(path)
+            coords = [
+                list(rdmol.GetConformer(0).GetAtomPosition(idx))
+                for idx in range(rdmol.GetNumAtoms())
+            ]
+        elif path.lower().endswith(".pdb"):
+            name = path.split("/")[-1].split(".")[0]
+            rdmol = Chem.MolFromPDBFile(path)
+            coords = [
+                list(rdmol.GetConformer(0).GetAtomPosition(idx))
+                for idx in range(rdmol.GetNumAtoms())
+            ]
+        elif path.lower().endswith(".smi"):
+            with open(path) as f:
+                smiles = f.readlines()[0]
+            name = smiles
+            rdmol = Chem.MolFromSmiles(smiles)
+            if config.generate_conformer:
+                rdmol = generate_3d(mol=rdmol, recompute_graph=False)
+                coords = [
+                    list(rdmol.GetConformer(0).GetAtomPosition(idx))
+                    for idx in range(rdmol.GetNumAtoms())
+                ]
+
+    elif mol is not None:
+        name = Chem.MolToSmiles(mol)
+        rdmol = mol
         coords = [
             list(rdmol.GetConformer(0).GetAtomPosition(idx))
             for idx in range(rdmol.GetNumAtoms())
@@ -227,3 +290,103 @@ def construct_graph(
         g = annotate_edge_metadata(g, config.edge_metadata_functions)
 
     return g
+
+
+def _mp_graph_constructor(
+    input: Union[str, Chem.Mol],
+    config: MoleculeGraphConfig,
+    use_mol: bool = False,
+    use_file: bool = False,
+    use_smiles: bool = False,
+) -> nx.Graph:
+    """
+    Molecule graph constructor for use in multiprocessing several molecular graphs.
+
+    :param args: Tuple of pdb code/path and the chain selection for that PDB
+    :type args: Tuple[str, str]
+    :param use_mol: Whether or not we are using RDKit Mols
+    :type use_mol: bool
+    :param use_file: Whether or not we are using file paths
+    :type use_file: bool
+    :param use_smiles: Whether or not we are using SMILES strings
+    :type use_smiles: bool
+    :param config: Protein structure graph construction config
+    :type config: ProteinGraphConfig
+    :return: Protein structure graph
+    :rtype: nx.Graph
+    """
+    # log.info(f"Constructing graph for: {args[0]}. Chain selection: {args[1]}")
+    func = partial(construct_graph, config=config)
+    try:
+        if use_mol:
+            return func(mol=input)
+        if use_file:
+            return func(path=input)
+        if use_smiles:
+            return func(smiles=input)
+    except Exception as e:
+        log.info(
+            f"Graph construction error for ({input})! {traceback.format_exc()}"
+        )
+        log.info(e)
+        return None
+
+
+def construct_graphs_mp(
+    path_it: Optional[List[str]] = None,
+    smiles_it: Optional[List[str]] = None,
+    mol_it: Optional[List[Chem.Mol]] = None,
+    config: MoleculeGraphConfig = MoleculeGraphConfig(),
+    num_cores: int = 16,
+    return_dict: bool = True,
+) -> Union[List[nx.Graph], Dict[str, nx.Graph]]:
+    """
+    Constructs protein graphs for a list of pdb codes or pdb paths using multiprocessing.
+
+    :param pdb_code_it: List of pdb codes to use for protein graph construction
+    :type pdb_code_it: Optional[List[str]], defaults to None
+    :param pdb_path_it: List of paths to PDB files to use for protein graph construction
+    :type pdb_path_it: Optional[List[str]], defaults to None
+    :param chain_selections: List of chains to select from the protein structures (e.g. ["ABC", "A", "L", "CD"...])
+    :type chain_selections: Optional[List[str]], defaults to None
+    :param config: ProteinGraphConfig to use.
+    :type config: graphein.protein.config.ProteinGraphConfig, defaults to default config params
+    :param num_cores: Number of cores to use for multiprocessing. The more the merrier
+    :type num_cores: int, defaults to 16
+    :param return_dict: Whether or not to return a dictionary (indexed by pdb codes/paths) or a list of graphs.
+    :type return_dict: bool, default to True
+    :return: Iterable of protein graphs. None values indicate there was a problem in constructing the graph for this particular pdb
+    :rtype: Union[List[nx.Graph], Dict[str, nx.Graph]]
+    """
+    assert (
+        path_it is not None or smiles_it is not None or mol_it is not None
+    ), "Iterable of paths, smiles strings OR RDKit mols is required."
+
+    use_file, use_smiles, use_mol = False, False, False
+
+    if path_it is not None:
+        inputs = path_it
+        use_file = True
+
+    if smiles_it is not None:
+        inputs = smiles_it
+        use_smiles = True
+
+    if mol_it is not None:
+        inputs = mol_it
+        use_mol = True
+
+    constructor = partial(
+        _mp_graph_constructor,
+        use_file=use_file,
+        use_mol=use_mol,
+        use_smiles=use_smiles,
+        config=config,
+    )
+
+    graphs = list(thread_map(constructor, list(inputs), max_workers=num_cores))
+
+    if return_dict:
+        graphs = {molecule: graphs[i] for i, molecule in enumerate(inputs)}
+
+    return graphs
diff --git a/graphein/protein/graphs.py b/graphein/protein/graphs.py
index 1ec1d910..fb5e9a10 100644
--- a/graphein/protein/graphs.py
+++ b/graphein/protein/graphs.py
@@ -8,7 +8,6 @@
 from __future__ import annotations
 
 import logging
-import multiprocessing
 import traceback
 from functools import partial
 from typing import Any, Callable, Dict, List, Optional, Tuple, Union
@@ -18,6 +17,7 @@
 import pandas as pd
 from Bio.PDB.Polypeptide import three_to_one
 from biopandas.pdb import PandasPdb
+from tqdm.contrib.concurrent import process_map
 
 from graphein.protein.config import (
     DSSPConfig,
@@ -659,22 +659,25 @@ def construct_graphs_mp(
     config: ProteinGraphConfig = ProteinGraphConfig(),
     num_cores: int = 16,
     return_dict: bool = True,
+    out_path: Optional[str] = None,
 ) -> Union[List[nx.Graph], Dict[str, nx.Graph]]:
     """
     Constructs protein graphs for a list of pdb codes or pdb paths using multiprocessing.
 
     :param pdb_code_it: List of pdb codes to use for protein graph construction
-    :type pdb_code_it: Optional[List[str]], defaults to None
+    :type pdb_code_it: Optional[List[str]], defaults to ``None``
     :param pdb_path_it: List of paths to PDB files to use for protein graph construction
-    :type pdb_path_it: Optional[List[str]], defaults to None
-    :param chain_selections: List of chains to select from the protein structures (e.g. ["ABC", "A", "L", "CD"...])
-    :type chain_selections: Optional[List[str]], defaults to None
+    :type pdb_path_it: Optional[List[str]], defaults to ``None``
+    :param chain_selections: List of chains to select from the protein structures (e.g. ``["ABC", "A", "L", "CD"...]``)
+    :type chain_selections: Optional[List[str]], defaults to ``None``
     :param config: ProteinGraphConfig to use.
     :type config: graphein.protein.config.ProteinGraphConfig, defaults to default config params
     :param num_cores: Number of cores to use for multiprocessing. The more the merrier
-    :type num_cores: int, defaults to 16
+    :type num_cores: int, defaults to ``16``
     :param return_dict: Whether or not to return a dictionary (indexed by pdb codes/paths) or a list of graphs.
-    :type return_dict: bool, default to True
+    :type return_dict: bool, default to ``True``
+    :param out_path: Path to save the graphs to. If None, graphs are not saved.
+    :type out_path: Optional[str], defaults to ``None``
     :return: Iterable of protein graphs. None values indicate there was a problem in constructing the graph for this particular pdb
     :rtype: Union[List[nx.Graph], Dict[str, nx.Graph]]
     """
@@ -697,15 +700,20 @@ def construct_graphs_mp(
         _mp_graph_constructor, use_pdb_code=use_pdb_code, config=config
     )
 
-    pool = multiprocessing.Pool(num_cores)
     graphs = list(
-        pool.map(
+        process_map(
             constructor,
             [(pdb, chain_selections[i]) for i, pdb in enumerate(pdbs)],
+            max_workers=num_cores,
         )
     )
-    pool.close()
-    pool.join()
+    if out_path is not None:
+        [
+            nx.write_gpickle(
+                g, str(f"{out_path}/" + f"{g.graph['name']}.pickle")
+            )
+            for g in graphs
+        ]
 
     if return_dict:
         graphs = {pdb: graphs[i] for i, pdb in enumerate(pdbs)}
diff --git a/notebooks/molecule_tutorial.ipynb b/notebooks/molecule_tutorial.ipynb
index ee6ff39a..6d4cbe06 100644
--- a/notebooks/molecule_tutorial.ipynb
+++ b/notebooks/molecule_tutorial.ipynb
@@ -6,14 +6,14 @@
    "source": [
     "# Creating Molecular Graphs in Graphein\n",
     "\n",
-    "Graphein provides a set of tools for working with molecular graphs. Under the hood, we wrap RDKit functions for the graph construction. While the main format used is an nx.Graph, each graph, node & edge has its underlying [RDKit object](https://www.rdkit.org/docs/source/rdkit.Chem.rdchem.html) stored as metadata so RDKit methods can still be used.\n",
+    "[Graphein](https://github.com/a-r-j/graphein) provides a set of tools for working with molecular graphs. Under the hood, we wrap [RDKit](https://www.rdkit.org/) functions for the graph construction. While the main format used is a [NetworkX](https://networkx.org/) `nx.Graph`, each graph, node & edge has its underlying [RDKit object](https://www.rdkit.org/docs/source/rdkit.Chem.rdchem.html) stored as metadata so RDKit methods can still be used.\n",
     "\n",
-    "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/a-r-j/graphein/blob/master/notebooks/molecule_tutorial.ipynb)"
+    "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/a-r-j/graphein/blob/master/notebooks/molecule_tutorial.ipynb) [![GitHub](https://img.shields.io/badge/-View%20on%20GitHub-181717?logo=github&logoColor=ffffff)](https://github.com/a-r-j/graphein/blob/master/notebooks/molecule_tutorial.ipynb)"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -23,20 +23,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
      "name": "stderr",
      "output_type": "stream",
      "text": [
-      "INFO:rdkit:Enabling RDKit 2022.03.1 jupyter extensions\n"
+      "RDKit WARNING: [14:28:33] Enabling RDKit 2019.09.3 jupyter extensions\n",
+      "[14:28:33] Enabling RDKit 2019.09.3 jupyter extensions\n"
      ]
     }
    ],
    "source": [
     "import networkx as nx\n",
     "import logging\n",
+    "from rich import inspect, print\n",
     "logging.getLogger(\"matplotlib\").setLevel(logging.WARNING)\n",
     "\n",
     "import graphein.molecule as gm"
@@ -52,23 +54,74 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [
     {
      "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #000080; text-decoration-color: #000080\">╭───────────────── </span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">class</span><span style=\"color: #000000; text-decoration-color: #000000\"> </span><span style=\"color: #008000; text-decoration-color: #008000\">'graphein.molecule.config.MoleculeGraphConfig'</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">&gt;</span><span style=\"color: #000080; text-decoration-color: #000080\"> ──────────────────╮</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">Config Object for Molecule Structure Graph Construction.</span>                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">╭───────────────────────────────────────────────────────────────────────────────────────╮</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">MoleculeGraphConfig</span><span style=\"font-weight: bold\">(</span><span style=\"color: #808000; text-decoration-color: #808000\">verbose</span>=<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>, <span style=\"color: #808000; text-decoration-color: #808000\">add_hs</span>=<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>, <span style=\"color: #808000; text-decoration-color: #808000\">generate_conformer</span>=<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,            <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"color: #808000; text-decoration-color: #808000\">edge_construction_functions</span>=<span style=\"font-weight: bold\">[&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> add_fully_connected_edges at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c593f9d0</span><span style=\"font-weight: bold\">&gt;</span>,  <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> add_k_nn_edges at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c593fa60</span><span style=\"font-weight: bold\">&gt;</span>, <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> add_distance_threshold at </span>     <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c593f940</span><span style=\"font-weight: bold\">&gt;</span>, <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> add_atom_bonds at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c593f550</span><span style=\"font-weight: bold\">&gt;]</span>,                        <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"color: #808000; text-decoration-color: #808000\">node_metadata_functions</span>=<span style=\"font-weight: bold\">[&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> atom_type_one_hot at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c56e1f70</span><span style=\"font-weight: bold\">&gt;]</span>,             <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"color: #808000; text-decoration-color: #808000\">edge_metadata_functions</span>=<span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, <span style=\"color: #808000; text-decoration-color: #808000\">graph_metadata_functions</span>=<span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span><span style=\"font-weight: bold\">)</span>                          <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">╰───────────────────────────────────────────────────────────────────────────────────────╯</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                      <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">add_hs</span> = <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>                                                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">edge_construction_functions</span> = <span style=\"font-weight: bold\">[</span>                                                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                   <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> add_fully_connected_edges at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c593f9d0</span><span style=\"font-weight: bold\">&gt;</span>, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                   <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> add_k_nn_edges at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c593fa60</span><span style=\"font-weight: bold\">&gt;</span>,            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                   <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> add_distance_threshold at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c593f940</span><span style=\"font-weight: bold\">&gt;</span>,    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                   <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> add_atom_bonds at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c593f550</span><span style=\"font-weight: bold\">&gt;</span>             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                               <span style=\"font-weight: bold\">]</span>                                                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>     <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">edge_metadata_functions</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>                                                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>          <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">generate_conformer</span> = <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>                                                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>    <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">graph_metadata_functions</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>                                                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>     <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">node_metadata_functions</span> = <span style=\"font-weight: bold\">[&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> atom_type_one_hot at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c56e1f70</span><span style=\"font-weight: bold\">&gt;]</span>            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                     <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">verbose</span> = <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>                                                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
+       "<span style=\"color: #000080; text-decoration-color: #000080\">╰───────────────────────────────────────────────────────────────────────────────────────────╯</span>\n",
+       "</pre>\n"
+      ],
       "text/plain": [
-       "MoleculeGraphConfig(verbose=False, add_hs=False, edge_construction_functions=[<function add_fully_connected_edges at 0x7fbf40c425e0>, <function add_k_nn_edges at 0x7fbf40c42670>, <function add_distance_threshold at 0x7fbf40c42550>, <function add_atom_bonds at 0x7fbf40c420d0>], node_metadata_functions=[<function atom_type_one_hot at 0x7fbf8071b9d0>], edge_metadata_functions=None, graph_metadata_functions=None)"
+       "\u001b[34m╭─\u001b[0m\u001b[34m──────────────── \u001b[0m\u001b[1;34m<\u001b[0m\u001b[1;95mclass\u001b[0m\u001b[39m \u001b[0m\u001b[32m'graphein.molecule.config.MoleculeGraphConfig'\u001b[0m\u001b[1;34m>\u001b[0m\u001b[34m ─────────────────\u001b[0m\u001b[34m─╮\u001b[0m\n",
+       "\u001b[34m│\u001b[0m \u001b[36mConfig Object for Molecule Structure Graph Construction.\u001b[0m                                  \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m                                                                                           \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m \u001b[32m╭───────────────────────────────────────────────────────────────────────────────────────╮\u001b[0m \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[1;35mMoleculeGraphConfig\u001b[0m\u001b[1m(\u001b[0m\u001b[33mverbose\u001b[0m=\u001b[3;91mFalse\u001b[0m, \u001b[33madd_hs\u001b[0m=\u001b[3;91mFalse\u001b[0m, \u001b[33mgenerate_conformer\u001b[0m=\u001b[3;91mFalse\u001b[0m,            \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[33medge_construction_functions\u001b[0m=\u001b[1m[\u001b[0m\u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m add_fully_connected_edges at \u001b[0m\u001b[1;36m0x7f10c593f9d0\u001b[0m\u001b[1m>\u001b[0m,  \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m add_k_nn_edges at \u001b[0m\u001b[1;36m0x7f10c593fa60\u001b[0m\u001b[1m>\u001b[0m, \u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m add_distance_threshold at \u001b[0m     \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[1;36m0x7f10c593f940\u001b[0m\u001b[1m>\u001b[0m, \u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m add_atom_bonds at \u001b[0m\u001b[1;36m0x7f10c593f550\u001b[0m\u001b[1m>\u001b[0m\u001b[1m]\u001b[0m,                        \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[33mnode_metadata_functions\u001b[0m=\u001b[1m[\u001b[0m\u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m atom_type_one_hot at \u001b[0m\u001b[1;36m0x7f10c56e1f70\u001b[0m\u001b[1m>\u001b[0m\u001b[1m]\u001b[0m,             \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[33medge_metadata_functions\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mgraph_metadata_functions\u001b[0m=\u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m                          \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m \u001b[32m╰───────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m                                                                                           \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m                      \u001b[3;33madd_hs\u001b[0m = \u001b[3;91mFalse\u001b[0m                                                       \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m \u001b[3;33medge_construction_functions\u001b[0m = \u001b[1m[\u001b[0m                                                           \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m                                   \u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m add_fully_connected_edges at \u001b[0m\u001b[1;36m0x7f10c593f9d0\u001b[0m\u001b[1m>\u001b[0m, \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m                                   \u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m add_k_nn_edges at \u001b[0m\u001b[1;36m0x7f10c593fa60\u001b[0m\u001b[1m>\u001b[0m,            \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m                                   \u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m add_distance_threshold at \u001b[0m\u001b[1;36m0x7f10c593f940\u001b[0m\u001b[1m>\u001b[0m,    \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m                                   \u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m add_atom_bonds at \u001b[0m\u001b[1;36m0x7f10c593f550\u001b[0m\u001b[1m>\u001b[0m             \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m                               \u001b[1m]\u001b[0m                                                           \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m     \u001b[3;33medge_metadata_functions\u001b[0m = \u001b[3;35mNone\u001b[0m                                                        \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m          \u001b[3;33mgenerate_conformer\u001b[0m = \u001b[3;91mFalse\u001b[0m                                                       \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m    \u001b[3;33mgraph_metadata_functions\u001b[0m = \u001b[3;35mNone\u001b[0m                                                        \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m     \u001b[3;33mnode_metadata_functions\u001b[0m = \u001b[1m[\u001b[0m\u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m atom_type_one_hot at \u001b[0m\u001b[1;36m0x7f10c56e1f70\u001b[0m\u001b[1m>\u001b[0m\u001b[1m]\u001b[0m            \u001b[34m│\u001b[0m\n",
+       "\u001b[34m│\u001b[0m                     \u001b[3;33mverbose\u001b[0m = \u001b[3;91mFalse\u001b[0m                                                       \u001b[34m│\u001b[0m\n",
+       "\u001b[34m╰───────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n"
       ]
      },
-     "execution_count": 2,
      "metadata": {},
-     "output_type": "execute_result"
+     "output_type": "display_data"
     }
    ],
    "source": [
     "config = gm.MoleculeGraphConfig()\n",
-    "config"
+    "inspect(config)"
    ]
   },
   {
@@ -84,30 +137,36 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "CC(=O)OC1=CC=CC=C1C(=O)O\n"
-     ]
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Graph named <span style=\"color: #008000; text-decoration-color: #008000\">'CC(=O)OC1=CC=CC=C1C(=O)O'</span> with <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">13</span> nodes and <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">13</span> edges\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "Graph named \u001b[32m'CC\u001b[0m\u001b[32m(\u001b[0m\u001b[32m=O\u001b[0m\u001b[32m)\u001b[0m\u001b[32mOC1\u001b[0m\u001b[32m=\u001b[0m\u001b[32mCC\u001b[0m\u001b[32m=\u001b[0m\u001b[32mCC\u001b[0m\u001b[32m=\u001b[0m\u001b[32mC1C\u001b[0m\u001b[32m(\u001b[0m\u001b[32m=O\u001b[0m\u001b[32m)\u001b[0m\u001b[32mO'\u001b[0m with \u001b[1;36m13\u001b[0m nodes and \u001b[1;36m13\u001b[0m edges\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
     },
     {
      "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAACWCAIAAADCEh9HAAAABmJLR0QA/wD/AP+gvaeTAAAeVklEQVR4nO3deVxU5f4H8M8Aw6oiq4AIgmmCGKYiJLibgoC4MKmVmHRL6xqmVni73R9Sva5otwLLK5gbLVYgaowpydVUEBFRUnDBBZBYVHaJfWbO749DNALKPmfO4ft++Q/PnDnnS+nn9Zznec5zRAzDgBBCSHdpcF0AIYTwG8UoIYT0CMUoIYT0CMUoIYT0CMUo6Rfq6+u5LoEIFsUoEbjExMRVq1ZZWVl5eHhEREQUFxdzXRERGhEteCICtn///pUrVzY2NmpqasrlcgCampoeHh6LFi1atGiRtbU11wUSIaDeKBGsbdu2LV++vLGxMSgo6P79+9HR0RKJRFdX9/Tp02vXrh02bNiYMWM2bdqUnZ3NdaWE36g3SgSIYZjQ0NDQ0FCRSLR58+bg4OCWj2pra0+cOBEbG3v48OHq6mq20dHRUSKR+Pr6TpgwgaOSCY9RjBKhkclkq1ev3r17t5aWVlRUVGBgYLuH1dXV/e9//4uNjY2Pj6+qqmIb7e3tfXx8JBKJu7u7SCRSYdWExyhGiaDU1NS88MILR48eNTAwiI2N9fLy6vArcrn83LlzsbGxP/744/3799lGW1tbPz8/iUQyefJkDQ0a+yJPQjFKhKO8vNzX1zclJcXExEQqlT733HNd+npLnh44cKCoqIhtNDMz8/T0lEgknp6eYrG4D6omvEcxSgQiLy/P09MzOzvbzs4uISFh1KhR3T6VQqHIyMiQSqXffffd7du32UYTE5N58+ZJJJK5c+dqa2v3UtVECChGiRBkZWV5eXkVFBQ4OTklJCQMHTr0cUfu3bt39uzZw4YN6+SZr169yt7v37hxg20ZPHjw888/7+Pjs2jRogEDBvRC9YTnKEYJ7506dWrBggVVVVUzZsw4dOiQoaHh447Mzs4ePXo0/pyaX7p0KftjZ1y9evXIkSNSqfTs2bNsi56e3qxZsyQSyYIFCwYNGtTzX4TwFUMInx06dEhXVxfAwoUL6+rqnnxwVlaWv7+/gYFBy99/Z2fn0NDQrKyszl8xJycnPDxceSpfV1fXx8cnKirqwYMHPfttCC9RjBIe+/LLL9lp9DVr1sjl8k5+q66uLj4+fvny5cr9Vjs7u6CgoKSkJIVC0cnz5OXlffrpp+7u7i1T+f7+/iUlJd39bQhfUYwSvgoLCwMgEolCQkK6dwaZTJaUlBQUFGRhYdGSpzY2Nmyedj6Xi4qKtm/fPnbsWLFYHBAQ0L1iCH/R2CjhH7lc/uabb+7cuVNTU3PHjh2vvfZaz0/ILnWKi4srLCxkG01NTb28vDq/1OnixYsTJ04cPXr09evXe1gP4ReKUcIzDQ0NL730UlxcnL6+fkxMjLe3dy+evGWp0/79+2/dusU2Ghsbe3t7d7jUqampydDQsL6+vqyszMjIqBerImqOYpTwSUVFxfz585OTk42MjKRSqbu7e99di13qFBMT09K77HCpk7u7e0pKyvHjx59//vm+K4yoHY4HFQjptMLCwmeeeQaAlZXVlStXVHbdzMzMTZs2sZdmGRgYpKamtj1y3bp1AD766COV1UbUAT0sTPjh2rVrbm5uV65ccXR0TE1NHTt2rMou7eTkFBIScvny5dzcXHapE9vY9shJkyYBSEtLU1ltRB3QTT3hgfPnz/v4+JSWlrq5uR05csTExITbesrLy42Njdu25+bm2tvbm5ubt2xxQvoD6o0SdRcfHz9jxozS0lI/P7+TJ09ynqEA2s1QAHZ2dkOGDHnw4EFeXp5qKyJcohglam3fvn2LFy+uq6tbuXLlgQMH9PT0uK6oAy4uLgDOnz/PdSFEdShGifrasmXLypUrZTJZcHDwnj17tLS0uK6oYzQ82g/x4O8l6Yfkcvlbb721Y8cOTU3NL7/8cvXq1VxX1Fmurq6g3mg/Q1NMRO00NDQEBATExMTo6Oh88803EomE64q6oLKy0tjYWEdH5+HDh7TNcz9BN/VE7WzdujUmJsbIyCgxMZFfGQpg8ODBI0eOrK+vz8rK4roWoiIUo0S9MAyTnJysra19/PjxKVOmcF1Od9B9fX9DMUrUi0gkKi0tbWxsrKur47qWbqIY7W8oRonaYSe7+RtDNFnf31CMErXD9ubajaEHDx7U1taqvKKuGTdunJ6e3vXr1ysrK7muhagCxShRO4+7KQ4ICBgyZMjx48e5KKoLxGKxs7MzwzAXL17kuhaiChSjRO2MHj168ODB+fn5xcXFyu22trbgyc0+DY/2KxSjRO2IRKIJEyYAuHDhgnI7j7KJhkf7FYpRoo7aTUy2MT09XS6Xc1NWp/Eo8UnPUYwKUUEB1q2DiwtGjsT06fjsM/Bt8VC7MWRmZjZ8+PDq6uobN25wVFdn2dvbm5qa3rt3Lz8/n+taSJ+jGBWca9fw7LM4cwYvvoiPP8bUqdi8GbNmob6e68q6wM3NDUBaWppCoVBu50svTyQS8X3ZFuk8ilHBef112Nri7FmsW4clS/Dhhzh9Gr/9hk8+4bqyLjA3N7exsamurs7OzlZu51E20fBo/0ExKiw5OTh7FuvXQ1f3r0ZHRyxejG++4a6s7njC8CgvsokvHWfScxSjwsJuh+Hg0Lp9zBjcvs2v+/p2e3Pjx48Xi8WZmZk1NTUc1dVZkyZNEolEFy9elMlkXNdC+hbFqLCwT/i0fcWFiQkYBmr//I+ydntzenp6Y8eOlcvlly5d4qiuzjI2Nh4xYkRtbS1t9SR4FKPCwgZoUVHr9sJCiMUYNEj1FXXbhAkTtLS0MjMzWz39yaObZR4NQZCeoBgVlvHjoaWFts8gXriACRPAh5dwtNDX13dycmpqasrIyFBu59HUDY8Sn/QExaiwmJpCIsGWLSgs/Kvx6FEcO4Y1a7grq5ueMMvEi2ziUeKTnqAYFZxt22BmhmeewSuv4IMP4OeH+fOxahVeeonryrqs3RhqeeK+qO3YhZoZN26cjo7OtWvXHj58yHUtpA9RjAqOqSlSU/H559DUxM2bsLPDiRPYsaP5U7V/jFJZux1PkUg0ceJEtHniXg3p6Og4OzsrFAra6knYKEaFSFsbAQHYvRsxMQgPx7RpALBtG6ysEBnJdXFd4ODgMGjQoLy8vPv37yu38+hmmUdDEKTbKEaF6Pp1REYiJ+eRRrEYxcXgQ/S00NDQ4MVWT/n5+f7+/hUVFW0/4lHik26jGBWisDC88QZ++eWRRldXAFCb6OmkdhPzcU/ccyIrK2vy5MlxcXHvvfde20/Z+lNTU1VeF1EdilEhajcxx46Fvj5u3kR7nSa11W6Mmpub29raqsNWT6mpqdOnTy8sLJw2bdp//vOftgdcvnxZX19/2bJl6r+5H+k2ilEhmjQJaBOjYjGefRYMA7WfmVHWsoK9VcdTHW6Wf/rpp5kzZ5aVlS1YsODYsWOGhoatDvj888+XLFlSW1s7ZMgQTU1NTookKkAxKkTOztDTQ3Y2Wr1SjYf39ZaWltbW1lVVVbdu3VJu53x4dO/evf7+/nV1dYGBgbGxsXp6esqfMgyzadOm9evXMwwTFhbW7v0+EQyKUSESizFuHBgG6emPtLO9VL5Nd6jhIvwtW7YEBgbKZLLg4ODdu3drPfp4mEwme/3110NDQ7W0tHbt2hUcHMxJkURlKEYFqt2OJw97o3j8Vk/sE/cq3upJLpe/8cYbGzdu1NTUjIyMDAsLa3VATU2Nn5/frl27DAwM4uPjAwMDVVke4QTFqEC12/EcPhxDhqCkBLm5nBTVPe12PNkn7mUy2W+//aayShoaGpYtWxYZGamjo/PDDz+sWrWq1QHl5eVz5sw5evSosbFxYmKil5eXymojHKIYFSi249l2nY2LC8CzDunEiRO1tLQuX75c9+gbpVxdXe3t7Stbjf/2mcrKyjlz5sTGxhoZGSUmJvr7+7c6IC8vb/LkySkpKcOHD09JSXnuuedUUxjhHkOEytycAZi8vEcaP/qIAZh16ziqqZueeeYZACkpKcqNTU1NKiugqKjI2dkZgKWl5eXLl9sekJmZaW1tDcDJyamgoEBlhRF1QL1R4Wq348nP4dF27+u1VLXv3/Xr193c3C5fvuzg4JCamspmurLTp097eHgUFBRMnz49OTl56NChqimMqAmKUeFqd3h00iRoaODSJTQ1cVJU93C4SjQtLW3atGn5+fmurq5nzpyxsbFpdcDhw4e9vLyqqqoWLlzY7upRIngUo8LVbsfT0BAjR6K+HpmZnBTVPVwtb0pMTJw1a1ZJSYmvr+/JkydNTU1bHbB9+/bFixfX1dWtWbPmwIEDuspvEiT9B9ejCqTPVFQwIhGjp8c0Nio3VwYFZU+Zcn7fPq7q6ga5XD5w4EAA9+/fV9lFo6OjxWIxgBUrVrQ7DsuudhKJRCEhISqriqgh6o0K1+DBGDkSdXWKq1eVm78dNerppKT//vorV3V1g4aGxvjx4wEkJSWp5ooRERGvvPJKU1NTcHDw3r17W43DyuXy1atXs6tHo6KiNm3apJqqiJriOsdJH/p+w4YJFhaRkZHKjeymcw4ODlxV1Q319fVOTk5Dhw4Vi8WzZ88ODw/vu26pQqHYsGEDAE1Nze3bt7dbDLvaSV9fXyqV9lEZhEcoRoXsiy++ALBy5UrlxsbGRj09PZFIVFFRwVVhXVJeXu7h4QHAwMBAQ6P5/kksFs+ZMycqKurevXu9eK2GhoalS5cCYBfYt1vMlClTABgZGSUlJfXipQl/UYwKGTsn4+jo2KqdXRmemJjISVVd0rJg08rK6vLlyyUlJdHR0T4+Ptra2myeamhouLu7h4WF3b59u+eXu3v3rqWlpaGh4a+//tr208LCQna1k5WV1ZUrV3p+OSIMFKNC1tDQoKOjo6GhUVVVpdz+9ttvA/j444+5KqyTrl27xi4wcnR0vHv3rvJH5eXl0dHREonEwMCgZYTK0dExJCTkxo0bPbloRkZGuwvslYvJz8/vySWIwFCMChy7VOjEiRPKjfv37wcwf/58rqrqjPPnz7MLjFxdXUtKSh53WE1NTXx8/PLly9mpfOU8TU9P761iUlNT2WLc3NxKS0t767REGChGBS4oKAjAv//9b+XGO3fuADA3N+eqqg5JpVJ9fX0Avr6+NTU1nflKXV0dm6fKC+Dt7e2DgoKSkpIUCkW3i4mPj2eL8fPzq62t7fZ5iFBRjArct99+C2DBggWt2s3NzQHktXriXj20LNhklxx19esymSwpKSkoKGjIkCEteWpra8vmqVwu79LZ9u3bx6526l4xpD+gGBU4dtN4S0vLVu3e3t4AfvzxR06qeoLw8HCRSAQgODi4J11IRilPraysWvLUzMxs+fLl8fHxjY8+ldCusLCwlmJ6UgkRNopRgVMoFOygXqtZkdDQUAAbNmzgqrC2Olyw2W1yuTw9PT0kJGTkyJEteWpsbMzmaUNDQ9uvyGSyN998ky1mx44dvVgMER6KUeFjNw+OjY1VbkxISADg4eHBVVWt1dd/sXYtAF1d3QMHDvTddbKyskJCQkaPHt2Sp4MHD5ZIJNHR0dXV1X/WUr9kyRJ29agadtiJuqEYFb6QkBAA7777rnJjWVmZSCTS09PrzL1tn6usZGbMaNDWlkydeurUKdVc88qVKyEhIWPHjm3J0wEDBrzwwgvR0dEzZ85k4/X06dOqKYbwGsWo8B09ehTA1KlTW7Wzd7gZGRmcVPWX4mLm2WcZgLGwYLgoJicnJzw83N3dnR0GZW/kaYE96TzamkT4XF1dRSJRenq6TCZjW9h3vrNLSi9evMhlcTk5mDIFGRkYMQJJSRg3TvUl2NnZrV27Njk5OTc397PPPjMxMZHL5Z988olyR5WQJ1DR/uGEQ8bGxiNGjLh9+/bVq1dlMtn3339/8ODBMWPGTJ06NTMz08nJibPK0tPh7Y0HD+Digp9/hpkZZ5UAAGxtbdetW3f37t2IiIi8vDxuiyE8okl7fPUHxcXFTz31lJaW1rJly06dOlVVVXXz5s3ExMQ9e/akpqY2NDTY2NiwK8xV58QJeHujvByzZ+PoURgZqfTqj1deXn7w4MGBAweye5QQ0jGuRxWIirTszf7yyy/n5uZGRUX5+Pi0bKOpqanp7u4eHh5eWFioimq+/ZYRixmAefllRh3muJTcvn0bgIWFBdeFEN6gGO0XIiIi2C3mgoKClB/jKS0tfdyGSbdu3eqrasLDGQ0NBmCCgpguPlOkAi0rbVtthkLI41CMCpxCoWAXPIlEorCwsMcdVlZWtm/fPl9f35a3CYlEIhcXlzPbtzO9mKcKBRMczACMSMRs3dprp+1t8+bNAxATE8N1IYQfKEaFrKmp6dVXXwWgpaW1e/fuznyl1YZJ911cGIBxdGSCg5ke7lLc1MQEBjIAo63NfPddj07Vx9gJg3feeYfrQgg/UIwK1h9//MH2qgwMDI4ePdrVr9fW1h48eFD2yivM4MEM0Pzn6aeZf/yD6cwGdDU1TG4u8+dzQQzDMI2NjJcXM2AAc+xYV4tRsWPHjgGYMmUK14UQfhAxDKO6+SyiKuXl5b6+vikpKSYmJlKplN3uvpvkcpw7h9hYxMTg3r3mRhsbLFgAX19Mn45HX/eGS5ewYQOSkiCXQySCqyu2bsWUKQBQU4OcHKj9eszy8nJTU1M9Pb2qqqpWL7MjpB1c5zjpfbm5uU8//TSA4cOHZ2dn99p5ZTImKYkJCmKGDv2rf2pqyixfzsTHN0+4Z2UxAwYw3t5MSgrz4AGTlsYsWcJoa/d0QEDl1OURL8IHFKNCk5mZaW1tDcDJyamgoKBPriGXM2fPMuvXM8OH/5Wn7C4n3t6Mk9Mja5jkcsbdnXFx6ZNK+sxLL70EICoqiutCCA/Qw6CCcurUKQ8Pj4KCghkzZiQnJw8dOrRPLqOhgcmT8emnyM1FVhZCQuDggJkzUV+PxES8+CLE4kcOXrECFy6guLhPiukb7JOy7DsBCXkyGvcRjsOHDy9btqy+vn7hwoX79+9vWbrUt8aMwZgx2LQJTU3Iy0NjI+zsWh8zYgQA5OTA0lIVJfWGSZMmgWKUdA71RgVi+/btixcvrq+vX7NmTcsDSyolFkOhAIA/V/L/RUcHAP7cGIUXxo0bp6Ojc/369YcPH3JdC1F3FKNCsGXLljVr1jAMExIS8sUXX7APLHHAwgIiEX7/vXX73bsAYG2t+oq6TUdHx9nZWaFQcLwDFuEDilF+k8vlq1at2rhxo6amZlRUFMcbzRgaYsIE/PJL6/aEBAwfDnt7LmrqPhoeJZ1EMcpjDQ0NS5cu3blzp76+/uHDh1977TWuKwLefx/HjiEiAi3rkb/+Gt99hw8+wJ+bIvMFOzyalpbGdSFE3dHye76qqKiYP39+cnKykZGRVCp1d3fnuqI/bduGf/wD+vp4+mncuYPycvzrX/jnP3kXo7du3Ro1apSlpWVRURHXtRC1RjHKS0VFRV5eXleuXLGyskpISFC7fdpLS3HqFEpKYGSE6dNhYcF1Qd3BMIyZmVlZWdnvv/9uzauBXaJitOCJf65du+bl5ZWfn+/o6JiQkDBs2DCuK2rD1BT+/lwX0VPsHlcJCQnnz5+nGCVPQGOjPHP+/Plp06bl5+e7ubmdOXNGHTNUQGh4lHQGxSifSKXSmTNnlpaW+vn5nTx50sTEhOuKBI4m60ln0Ngob+zbt++1116TyWQrV67cuXMn7TykAmVlZWZmZvr6+pWVlfQfnDwO9Ub5YcuWLYGBgTKZLDg4eM+ePfRPWjVMTEzs7e1ramquXbvGdS1EfVGMqju5XP73v/9948aNGhoaO3bsCAsL47qi/oWGR0mHKEbV3bZt2/773//q6urGxsauXr2a63L6HRoeJR2iGFV3b7zxhp+f3/HjxxcuXMh1Lf0RxSjpEE0xEfIkDQ0NhoaGTU1NlZWV7Gv+CGmFeqOEPImOjs7YsWMVCsWlS5e4roWoKYpRQjpA9/XkyShGCekATdaTJ6MYJaQDLb3R2traiRMn/t///d9vv/3GdVFEjdAUEyEdYBjGxMSkoqLiq6++atnUdcSIEYsXL160aNGkSZNEfNsDkPQu6o0S0gF2qycARkZGSUlJQUFBlpaWd+7c2bp1q5ubm42NzapVq6RSqYxXL5sivYhilJCOTZgwAUB6erqHh0dERERBQUFSUlJwcPBTTz1VUFCwc+fO+fPnW1hYBAQESKXSxsZGruslKkU39YR0oLKycubMmZWVldHR0VOmTFH+iGGYCxcuxMXFxcXF3blzh200MjKaP3/+P5ctGzltGlT/ilaichSjhDxJYWGhl5dXZmamtbX1mTNn7OzsHnfk1atXY2Njjxw5wr5M9A8HB4O7dzFzJiQSLFwIWrovXBSjhDzWjRs35s6dm5+f7+DgkJCQYGNj05lvZWdnH//pp7diYtDycmY9PXh6YtEi+PrC0LAPKyZcoBglpH1paWk+Pj4lJSWurq4bNmzYuHGjj4+PRCJxd3fv7NR8fj4OHUJsLM6dg0IBAJqacHODRIIlS3j6iirSFsUoIe1ITExcvHhxdXW1r6/vDz/88P7770dERLAf2dvbs0udXF1dO5unJSU4dgyxsfjlFzQ1AUp56u+PoUP77PcgqkAxSkhrX3/99d/+9rempqYVK1bs2rVLS0tLLpefO3cuNjb2wIEDLe9bNjMz8/T0lEgknp6eYrG4U6cuKcHhwzh4ECdPgp3Q19DAmjX4M6MJH1GMEvKIiIiIdevWMQwTHBy8efPmVv1NhUKRkpJy5MiRuLi427dvs40mJibz5s2TSCRz587V1tbu1GUqK5GYCKkUhw5hyxa8+SYYBr/+ipQU1NRg2DD4+KBzQ7GEewwhhGEYhlEoFO+88w4AkUj06aefdnhwWloau3S05V+TkZFRQEBA5c8/M3V1nb1qdTVTXc1UVDDTpzM6OszUqYxEwowcyWhrMxERPf2ViEpQjBLCMAzT0NCwdOlSANra2j/88EOXvpuVlRUWFubu7g5gpLExo6XF6OkxPj5MdDRTVdWpUyxdylhaMtnZzT8qFMzmzYxIxJw82cXfg3CAbuoJAR4+LA4KGvX995p6eocPH54+fXr3TnPz5s3i48enRUcjPb25SVcXc+c2L3UyMmr/awUFsLVFZCT+fGAfABgG48dj2DDEx3evGKIyFKOk37t3D/PmISMjx8urevNmZ2fnXjgnu9TpyBGcOgX2WfuWqfkXXoCl5SMHHzgAiQRZWRgz5pH2t97C99+jtLQX6iF9iZ6pJ/1bTg6mTkVGBuzt7bdt650MBWBjg7VrkZiI4mJER8PHBxoaOHsWb78Na2t4eCAiAgUFzQezQdl22ZO1NcrLmxecEjVGMUr6sfR0PPccbt2CiwvOnYPSZFGvMTVFQACkUhQVYdcuzJsHLa3mPLWxwZ49AKCnBwBVVa2/W1kJXV1o0D9SdUf/h0h/deIEZs3CgweYPRsnTsDcvG8vZ2qKV1/Fzz+jogLx8Vi+HAYGmDwZABwcAODmzdZfyc6Go2PfVkV6A42Nkn7pu++wciWamvDyy9izB51cPN+76uqa+6EKBZ56Cs7OOHgQLctU79yBkxM+/BDvvstBbaQrKEZJ/xMRgfXroVAgKAiff64Wd82JifDxwYIFCAiApSUyMvDRRzA1RXIybbWn/ihGSX/CMAgNRWgoRCKEheG997guSElqKj78EMnJ+OMP2NpCIsEHH2DQIK7LIh2jGCX9hkyGVauwZw+0tbF3L158keuCiEBQjJJ+w88P8fEYOBBxcXj+ea6rIcKhxXUBhHRFaSkuXcK0adDR+asxKwt1dXBxaf6xoQFnz+L33zFgACZNwrBhze2BgUhNxU8/wc1N1WUTQaPeKOGVo0fh7Y2CgkcWq69YgTt3kJwMAL/8gsBAlJZi1Cjcv4+yMgQG4ssvm2O3pgYGBtxUToRLDeYoCekt169jwQJ4eqKiApmZePAAx47hxx+xfn3zAZShpA9QjBIB+eQTWFggMhL6+s0tc+bgX//CV1/h3j1OKyNCRjFKBOTXXzFjRuu19PPmoamp+ZafkD5AU0yEhyZOfGTNfGUlnn0WAIqL29kx3ta2+SNC+gbFKOGh8HCYmPz149atqK0FALEY9fWtD2ZbOvluD0K6jmKU8JCHxyMz9d98gzt3AMDeHrm5rQ9mPxoxQlXFkX6HxkaJgPj6IiEBJSWPNH79NUxM4O7OUU1E+ChGiYCsX4/Bg+HtjeRk1NUhNxehoYiMRFhY815KhPQBuqknAmJsjDNn8NZbmDGj+dUdtrbYtw/Ll3NdGREyeoqJ8ArDoKmp9XyRXA6GgZZSn6C6GgUFGDgQ1tYqLpD0QxSjhBDSIzQ2SgghPUIxSgghPUIxSgghPUIxSgghPUIxSgghPfL/4hEEkYUdDJEAAAEUelRYdHJka2l0UEtMIHJka2l0IDIwMjIuMDMuMQAAeJx7v2/tPQYg4GVAAF4obmBkY0gA0ozMbAwaQJqZhQNCM8FoNgeIOJtDBohmZsTLgKrFMAusgJGRm4GRgZFJg4mRWYGZRYGFNYOJlS2BjT2DiZ0jgYMzg4mTS4GLW4OJi0eBkyVBhJGNhZODnY1VfBnIhXCn5/0pPvBg65L9IE77dp0DR3wn7AOxE044HLi/bro9iD3h8KL9i9PswGpEzinuK9vTagdin8/9uC/X8C5YzeYYFft3L/UcQOw3OSwO/yIFwewjtRIOEY99wWr2FC6yl2zzBZufO/mUvXDxVbCZZfMdHKo8OQ6A2A1qH+wOcmmD2WIAXU1DIJFuwzMAAAF0elRYdE1PTCByZGtpdCAyMDIyLjAzLjEAAHicfZNRbsMgDIbfcwpfoMg2BpvHtqmmaWoibd3usPfdX7NTdaQSGsQRkA8bfjsTRHuf375/4K/xPE0A+M/TWoOvjIjTFWIAp8vL6wLn2/H0WDmvn8vtAyjHg9Gf2eNtvT5WCM5wyMmI2RgOlNiqoW9JuLW+l4PkVJspOolOkkkekBnW8InuMyIksoIsA1AC9JBKpeVwqZK1jMgSwTFRMYw7Ja7EOIpd76C4SyGPrWyoNADVQUxV3E0DTpozsg04c44T1kZiPvCzEo24tnHZuGr1z4bCZSQjeX78XFwbtrrJiKioI5I2srhLV891qlWLjtQhdiFdcGx+jUgScRMrIzJy4/J4dJEtncolj/S5LPNTodxL57Qucy+d6NzrI3ruReDfQHqqya30fPoEas+auGnPjbhZT4G4ta60uNFeUdpetFOO40W8U4i2lbxTQmJX2V94f72YP/4qH0+/MSuvwgJABCwAAAC9elRYdFNNSUxFUyByZGtpdCAyMDIyLjAzLjEAAHicJY7LDQJRCEVbcakJQ/jDy8TVFGARtmHx3qfsOBzgXtf9+Xq83vrepf/u9rkfzqNmQ4eyTQ2dh3GtaToEQCccyFkgOSnrpBgI7NZc2+rwzgAT1hxRJ2yWmviPBbxQrLaNNJ3CFZgtMm73LRlLLU0A3FTbwMeQRXgkLOnENxi/SCK9rygnFNuxqzpBkFFWOyG/2orZn6KWRGxUben0+HwBo5c17EB1a6kAAAAASUVORK5CYII=",
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAACWCAIAAADCEh9HAAAABmJLR0QA/wD/AP+gvaeTAAAeOElEQVR4nO3deVRTZ/4G8CcJi2yCICgIClZ0RGlHRJEGFQeqIAmKTEZc69HaZezBqUvteM6UttPaOnV+QqedHk6LVotrgCIBURBtDcVqwbqAgraIiiyiLLITkvv74zoUEARZcpPL93P8Y3hzkzyc0ad3e98rYBgGhBBC+krIdQBCCNFvVKOEENIvVKOEENIvVKOEENIvVKOE/xiGaW5u5joF4S2qUcJz//rXv7Zv325tbS2VSvfv319bW8t1IsI3ArrhifCVRqPZvHlzZGSkSCRSq9XsoKmpaUBAQGhoaFBQkKWlJbcJCT9QjRJ+amlpWbNmzaFDh4yMjPbt2+ft7Z2YmCiXy7Oysti/8yKRaNasWTKZLCwsbNSoUVznJXqMapTwUF1dnUwmO3HihLm5eVxc3IIFC9peqqioSE1NlcvlJ0+eVKlUaNenMpnMwcGBu9REX1GNEr4pLy8PCgrKyckZPXp0SkqKh4dHl5s9fPgwJSVFLpenpaW1tLQAEAqF06ZNk0gkK1ascHV11W5qoseoRgmv3Lp1a8GCBTdv3hw/fvyJEyd604bV1dXp6ekKhSIhIaG+vp4ddHNzY4/3//CHPwxyZKL3qEYJf1y9ejUgIKCkpMTT0zMlJcXOzu6Z3t7Y2Hjq1Cm5XH7s2LFHjx6xg25ublKpVCKR+Pj4DEJkwgdUo4QnTp8+HRIS8ujRIz8/v4SEhOHDh/f5o5qamtLT05OTk7/77ruKigp20MXFRSqVymQysVgsEAgGKDXhA6pRwgfx8fErV65sampasWLF3r17DQ0Nu9uypqam9/c5qdXqc+fOyeXyo0ePlpWVsYNjx45dvHixVCr19fU1MDAYgPRE3zGE6LnPPvtMKBQCCA8PV6vVT9kyLy9PJBKJxeLIyMiSkpLef4VarVYqleHh4WPGjGn7tzNy5MhVq1YlJSW1tLT0+5cgeoxqlOgxjUYTEREBQCAQRERE9Lj9/v372/YfRSKRr6/vZ599dvfu3Wf60tzc3IiIiIkTJ7b1qbW1NdunTU1NffxNiD6jGiX6SqVSvfLKKwAMDAxiYmJ6+a6HDx/u27dPIpEYGxu39aCbm1tERER+fv4zBcjJydm+fXv7S/mWlpbr169/9l+F6Dc6N0r0Un19/V/+8pfjx4+bmZnJ5fLAwMBn/YSGhoaMjAy5XJ6YmNg20Z69z0kqlU6fPr33H1VYWKhQKNgpUpMnT5bJZO+9996z5iH6i2qU6J/KykqpVJqVlWVtbZ2cnOzt7d2fT2u7zykpKammpoYdHD9+vEQiedbr8kqlcs6cOdbW1g8ePKCr+UMH1SjRM0VFRQEBAQUFBc7OzidOnJg0adJAfXJzc7NSqVQoFEeOHCkvL2cHx40bt2jRot736ZgxY0pKSn799dfnnntuoIIRHUc1SvRJXl5eQEBAcXHx1KlTT5w40f66+QBqu88pLi6upKSEHbS1tQ0ICJDJZAEBAU+5oWrx4sXHjh07cODA8uXLByMb0UG03ijRGz/88INYLC4uLvb19c3MzBykDgUgEol8fHyioqLu3r2rVCq3bds2YcKEioqKb7/9Njg42N7efvXq1QqFgp2J38nMmTMBnD9/fpCyER1Ee6NEPyQmJi5fvryxsTEkJOTgwYPDhg3TcoC8vDy5XH7kyJH8/HwAQqGwuLjY3t6+02YZGRn+/v6zZs06d+6clhMSrlCNEj3wxRdfhIeHazSaDRs2tN1sz5UrV67Ex8ffvXt3z549T75aW1trZWVlaGhYU1PT/p4qwmNUo0TX7dy585133hEIBO+++65e3Eg0ZcqUa9euXbhwYcaMGVxnIdpA50aJ7lKr1a+//vo777wjEomio6P1okMBeHl5gU6PDiVUo0RHNTc3h4WFRUdHm5qaJiYmrl+/nutEvcVeZbpw4QLXQYiW0Po0RBdVVVUFBwdnZmaOGDFCoVCIxWKuEz0D2hsdaujcKNE5JSUlgYGBV65ccXBwOHHihLu7O9eJnk1ra6uVlVVDQ0NFRYWNjQ3Xccigo4N6oluuXbvm7e195coVNze3n376Se86FICBgcEf//hHhmGys7O5zkK0gWqU6BCNRrN06dI7d+7Mnj07MzPTycmJ60R9xB7X0+nRIYLOjRId8vPPP6tUKmdn57S0NO3fYD+A6PTokEJ7o0SHWFtbFxQUNDc363WHgi7WDzF0iYnoEIZhbG1tHz58ePfuXUdHR67j9Mvo0aPLy8sLCwtdXFy4zkIGF+2NEh0iEAg8PT3R/eGwWq3WbqK+ozVKhg6qUaJburs4s3XrVhsbm1OnTnERqi/o9OjQQTVKdEt37cMwTGVlpR61Ep0eHTqoRolu8fLyEggE2dnZra2t7cf1rpVmzpwpFAovXrzY5bKkhE+oRolusbGxcXFxqa+vv379evtxvbsT09LScuLEiU1NTVevXuU6CxlcVKNE53R5XD9u3Dh7e/uKiorCwkKOcj0zOj06RFCNEp3TXfuwy3fq0Q6p3p2IIH1DNcojaWmYMwdmZrCwgL8/MjO5DtRH3bWP3t1CRHujQwTVKF8cPYrgYCxejMJC5Odjzhz4+yM9netYfTFt2jQjI6O8vLza2tr243p3evT55583MTEpKCioqqriOgsZRFSjvNDaio0bsWULNm3CqFEYMwbvvouXX8bGjVwn64thw4Y9//zzarX64sWL7cdnzJihX9e+DQ0Np02bRks98R7VKC9cvoyyMqxa1WFw9Wpcv447dzjK1C9dHg7r47VvOj06FFCN8sKDBwDQ6bntDg4AUFHBQZ5+66599O5so94FJn1ANcoLI0cCQElJh0H2R1tbDvL0W3fto3enR6lGhwKqUV544QWMGoXY2A6DsbGYNAljx3KUqV8mTpw4YsSI4uLie/futR/Xu4v1Li4udnZ29+/fLyoq4joLGSxUo7xgYIDdu/Hpp4iMxP37KC3FRx9h715ERXGdrI8EAkGXd4nq47VvvbvdlTwrqlG+WLYMCQmIi4OzM1xdkZGBtDRYWGDTJqSmch2uL7o8PaqP177puJ73qEZ5RCxGZiYaGlBXh9OnMWcOzp3D7t1ISuI6WV/w5vSo3p2IIM+KapQvpk/HiBGorOww6OUFAPr5D5ity+zs7E5LNetsK2k0mi7H2TWrcnJyVCqVliMR7aAa5QszM2g06LSP5uEBAwNcvYr6eo5i9Z2tra2zs3NtbW2XSz3pWo3eunXLw8MjKyvryZesrKxcXV2bmppyc3O1H4xoAdUoX7A7np1q1NQUU6eitRWXLnESqp+6PH5vu/Z9+/ZtjnJ1lp2dPWvWrMuXL3/00UddbuDh4QHdq34yUKhG+WLmTKCr43f9P67vbqknHWml06dP+/n53b9/38/P7/Dhw09uUFpaeuHChRdeeOHFF1/UfjyiBVSjfNFWl50e9dpdveqDp89l0oWrTAcPHgwMDHz06NHKlStTU1MtLCw6bZCfn+/t7V1YWKhSqZycnDgJSQYdQ3jD3p4BmN9+6zCYm8sAjLMzR5n6paGhwdDQUCQS1dXVtR8/efIkAB8fH66CsaKiooRCIYDw8HC1Wv3kBufPn7e1tQXg5eVVUVGh/YREO6hGeSQ4mAGYgwc7DKrVzPDhDMCUlXEUq1/Ys4pnz55tP1hVVSUQCExMTFpaWjhJpdFoIiIiAAgEgp07d3a5TVpaGrtzKpVK6+vrtZyQaBMd1PNIl1eZhEJ4enYxrie6PD3KXvtubGzk5Np3a2vr+vXr33//fSMjo9jY2LfffvvJbfbv3x8UFFRbW/vyyy8nJCSYmppqPyfRGqpRHnn6VSb9rFFdW+qpvr5+0aJFMTExZmZmiYmJy5cvf3KbqKioNWvWqFSqbdu27d2718DAQMshiZZRjfLIzJkQCvHLL+i0qrE+X2Xqri7Zer1x44Y2w1RWVs6fP//48eM2Njbp6emBgYGdNmAYZuvWrX/7298A/Pvf//7kk08EAoE2ExJucH1WgQyoyZMZgPn55w6DJSUMwFhaMl1dBtFxGo3GysoKwL1799qPV1VVlWn3bO+tW7cmTZoEwMXFpaCg4MkNmpubw8LCABgZGR0+fFib2Qi3aG+UX7o8fre3h5MTamqg3X23ASEQCDw9PQH8/PPP7cetrKxGjRqltRi5ubmzZ88uKChwd3dXKpUTJ07stEFdXV1wcPDhw4fNzc0VCsXSpUu1lo1wjmqUX/h4Ez7nz+H4/vvvfXx8iouL582bp1Qqx3R6ygBQXl4+d+7ckydPjh49+uzZs/Pnz+ckJ+EK1Si/dHc1ia1X/bzKxO0k+sTExMDAwJqampCQkOPHj1taWnbaoLCwcPbs2RcvXhw/frxSqZw2bRonOQmHqEb5xd0dJiYoKEDHVY3vi8X/njVrzc2bXOXqj1mzZgG4cOFCd0soDZ4vvvgiNDS0qanpzTffjIuLGzZsWKcNsrOzvb29b968OWPGjHPnzk2YMEHLCYlO4PrkLBlgGh+fxgkTyk6fbj9YX19vYGBgaGjY0NDAVbD+GDduHIC8vDytfWP7G+wjIiK63CYjI2P48OEA/Pz8Hj16pLVsRNfQ3ijfvOPlZfLrr1/9+GP7QVNT0ylTpqhUql9++YWrYP3h7OwM4K233srMzNTCPqlarX799dfff/99kUgUHR393nvvPbnNgQMHnj6bngwhXPc4GWCHDh0CIJFIOo2vX78ewO7duzlJ1R979+4ViUQ2Njbs39iRI0euWrUqKSlpkGaCNjU1hYaGAjA1NU1OTu5ym8jIyKfPpidDCtUo3xQWFgKwtbXtNP71118DCAsL4yRVn0VGRrJ3sIeFhW3evNnFxaVtD8DGxmbt2rUpKSlNTU0D+I3+/v7sh587d+7JV3szm54MNVSjPMTeUHnr1q32g1evXgXg4uLCUahnptFotmzZwhbWrl272sZzc3MjIiLc3Nza+tTU1FQikezbt6+2trb/35uenu7q6nr9+vUnX1KpVOvWrQNgZGR04MCB/n8X4QeqUR6SSCQAOk2kUavV7PWQ8vJyroL1XnNz87Jly9jCOnToUJfb/Pbbb5GRkWKxuG3CpYmJCdun1dXV/fz2Jwfr6urY2Z9mZmapqan9+XzCM1SjPPTBBx8A2LRpU6dxX19fAN2d79MdtbW1CxYsAGBubn7y5Mket79161anPjU2Nvb394+MjByo/2Y8fPjQ29v7KQf7ZCijGuUhdlVjsVjcaXzbtm0A/vGPf3CSqpfKysrYNUZHjx598eLFZ3rvnTt3oqOjJRJJ26JKIpFILBZHRkZ2mpL/THqcTU+GOKpRHqqqqhIKhcOGDet0LTs+Ph7A/PnzuQrWo8LCQldXVwDjx4+/efNmnz/nwYMH+/btk0gkRkZGbJ8KhUKxWPzJJ58868devXqVnf3p7u5eXFzc50iEx6hG+Ynde8rJyWk/eO/ePQBWVlYajYarYE+RnZ1tZ2cHwNPTc6AOxisrK/ft2yeTyczMzNouSbm5uUVEROTn5/f49jNnzrCzP+fNm9fP862Ex6hG+Wn16tUA/vvf/3YaZ3esdPDItP2MoJqamgH//Pr6+qSkpFWrVrW/T57t0+zs7C7fkpCQwM7+XLJkSWNj44BHIrxBNcpPn3/+OYA1a9Z0Gl+yZAmA/fv3c5KqO/JDh9ij75UrVw7245UaGxvZPm2/yIiLi0t4eLhSqWzbT//888/ZG+zffPNNusGePB3VKD+xq3NOnjy50/gnn3wCYMOGDZyk6lpU1JVJk6wsLbU8I6ipqSklJWXt2rVt86PYPt28eTM74+sps+kJaY9qlJ9aWlpMTEwEAkFVVVX78TNnzgCYMWMGV8E60GiYrVsZgBEI7nz5JVcpWltblUpleHi4g4ND23xTkUi0d+9eriIR/UI1ylvsfY7p6ensj62trQzD1NbWikQiCwsLlUrFaTqGUamYdesYgDEwYGJiOA7DMAzDqNVqpVLJLro8d+5cruMQvUErPPFW26LxLS0tf/3rX7du3TplypQPP/wwJibmwYMHHD+usr4eixYhJgZmZkhKwtq1XIb5H6FQ6OPjs3v3bgBFRUVcxyF6Q8AwDNcZyKA4duzYV199JZPJYmNjT506ZW5uXldXx740YcKE0NDQ0NBQT09PDh5dWVkJqRRZWbCxgUIBb29tB3gqhmGsra2rq6tLSkrs7e25jkP0ANUon5WXlwcFBeXk5IwePVqhUDQ1NcnlcrlcXlpaym7g5OQUEhIilUp9fX21tH9aVISAABQUwNkZJ0/iiWfD6QJ/f/+MjIxjx44FBwdznYXoA45PKpBB035G0I0bN9rG2TOA4eHhjo6ObX8NBnsRz8euXmUcHRmAmTqV0eEZQdu3bwewfft2roMQ/UA1yk9Xrlxhrzs/ZUaQRqM5d+7cli1bnlzEMzk5uWVAF/FkGIY5c4axtGQAZt48RrdnBCUmJgLw9/fnOgjRD3RQz0OnT58OCQl59OiRn59fQkICOzvo6fLy8tjj/WvXrgEYbmxcPWKEwNMTMhlCQtD/J2QkJmLZMjQ1ISQEBw/iiWfD6ZSysjJ7e3tLS8vKykr2JnxCnobrHicDLD4+np3CuGLFij4coefl5f3zn//8/M9/ZoDHf0xNmdBQ5sABps9zND//nBEKGYB5801GT2YEjR07FsC1a9e4DkL0ANUor3z22WcD9oygoiImMpIRixmB4HGfikSMWMxERjJlZc/wOZWVjJ0dIxAwO3b0K492yWQyAHQHPukNqlGe6M0Dgfvo7l0mOpqRSBgDg8592stFPLOzmW++GchIg+/TTz8F8MYbb3AdhOgBqlE+aG1tfeWVVwAYGBjEDN6MoPJyJjqamT+fMTR83KdCIePjw/zf/zG3bzMMw5w8ycyezZiaMubmjJ8fo1QOVpLBd/bsWQAeHh5cByF6gC4x6b36+vqlS5empKSYmZnJ5XL2eUGDq6oKp05BoUBCAurrAeDttzF9Olavxo4dWLECra2IicGOHVAo8NJLg55nEDQ0NFhaWgoEgurqalNTU67jEJ1GNarfKisrpVJpVlaWtbV1cnKyt5ZnBNXW4vhxxMdj0yaEhGDdOnz44e+vvvYalEpcu6bVSANn2rRply5dyszMFIvFXGchOo1u5tBjt2/ffvHFF7OyspydnbOysrTdoQAsLLB0KY4ehaEhysqwalWHV1evxvXruHNH26kGSNuiBFwHIbqOalRf5eXl+fj4FBQUTJ06NTMzk31qCGcePACAMWM6DLLrzlVUcJBnIHh5eQE4f/4810GIrqMa1Us//PCDWCwuLi729fXNzMwc06m/tG/kSAAoKekwyP5oa8tBnoHA7o1SjZIeUY3qn8TExMDAwJqampCQkNTU1PYPw+DMCy9g1CjExnYYjI3FpEkYO5ajTP3l5uY2fPjwoqKi8vJyrrMQnUY1qmf27Nkjk8kaGxs3bNgQFxc3TEdmVRoYYPdufPopIiNx/z5KS/HRR9i7F1FRXCfrO6FQOH36dADsE1kI6Q7VqD7ZuXPnunXr1Gp1RERE2zPXdMWyZUhIQFwcnJ3h6oqMDKSlYcECrmP1C50eJb3B6RLopNfUavWGDRuio6NFItGXX37JPnNN5wQGQgt3rWoRXawnvUH3jeqB5ubmlStXsofwsbGxoaGhXCcaKkpLSx0cHKysrB4+fKhb+/5El9DfDF1XVVX10ksvxcXFjRgxIj09nTpUm+zt7R0dHaurq2/evMl1FqK7qEZ1WklJia+vr1KpdHBw+OGHH3x8fLhONOTQ6VHSI6pR3XX9+nVvb+8rV664ubn99NNP7u7uXCcaiuj0KOkR1aiOOn/+/Jw5c+7cuTNr1qyzZ886OTlxnWiIor1R0iO6xKSLFApFWFhYQ0NDcHDw4cOHTUxMuE40dNXX11tZWQkEgpqaGvo/gnSJ9kZ1TlFRUWhoaENDw6uvvpqQkED/dLllZmbm5uamUqkuXbrEdRaio6hGdY6zs/OuXbsiIiLYu0S5jkPo9CjpAd1+r4vCw8O5jkB+5+Xl9fXXX9PpUdId2hslpAd0lYk8HV1iIqQHGo3Gysqqtra2vLzczs6O6zhE59DeKCE9EAqFHh4eALKzs7nOQnQR1SghPWs7rs/Ly9u+fXtOTg7XiYgOoRolpGdtK+EfOnTo448/9vT0HDdu3MaNG0+dOtXa2sp1OsIxOjdKSM+Ki4udnJysra1TUlK+/fbbxMTEkv89McXBwWHx4sWhoaFz586lG9SGJqpRQnrF0dHx3r17N27ccHV11Wg0v/zyi0KhOHjwYNviT9bW1kFBQTKZbP78+cbGxtymJdpENUpIz5qamiZPnmxsbLxv3z72PGmbvLw8uVx+9OjR69evsyOmpqZ/+tOfZDLZkiVLzM3NuchLtIpqlJAeVFdXL1q06OzZs+7u7pcuXepu/ebc3NyEhISEhITLly+zI2ZmZtfWrh374osICoKFhRYjE62iGiXkaUpLSxcuXHjp0iUHB4fU1NTnn3++x7cUFRUdO3ZMLpffuHTpPsOgoQHGxpg9GxIJli0D3XnKO1SjhHQrPz8/ICDg9u3bbm5uERER48aNmzlzpkAg6OXbq4uLreLjER+PH3+ERgMAhobw9UVoKBYvxqhRgxidaBHVKCFdu3DhgkQiqaio8PLySk5OlkqlP/30k6Oj48KFCyUSSWBgoIFBr5ekePgQKSmQy5GWhpYWABAK4e0NqRR//jOee27wfguiBVSjhHSBfexVbW2tVCo9cuSIsbHx5s2b4+Pj7969y25gZ2fH3uc0b948Q0PD3n5uVRUUCiQn4/hx1Nc/HnRzg0yGZcswadIg/Cpk0FGNEtLZ/v37X3nlFZVKtWbNmq+++qr9Xid7Xf7IkSP5+fnsyIgRIyQSiVQqXbhwoZmZWW+/49EjpKQgPh6pqWhoeDy4dCkOHx7I34RoBdUoIR1ERUW99dZbDMNs27bt448/7u5MKNunycnJbRND2+5zCgkJsej9dfmmJqSnQy5HUhLeegsREQPyWxBtohol5DGGYd5+++1du3aJRKL//Oc/b7zxRm/elZ+fn5CQEB8ff/HiRXbExMRk0cKFB0NCBBIJLC17+/XNzWhuxvDhfQtPuMQQQhimubk5LCwMgLGx8ZEjR/rwCbdv346MjBSLxUKh8O/TpzMAIxIxYjETGcmUlvb2U06eZGbPZkxNGXNzxs+PUSr7kIRoGe2NEgLU1LSsXh2Sm5tVWZmYmDh37tz+fNi9e/da0tJcvv0WZ89CrQYAkQhz52LJEoSEwMGh23cePYrVq7FjB1asQGsrYmKwYwcUCrz0Un/ykMFGNUqGvNJSLFyIS5eaPTxufPONu7v7gH1yZSWSkzvf5zRtGiQSLF+OiRM7bNzaCicnrFuHDz/8ffC116BU4tq1AYtEBgHVKBnaCguxYAF+/RXPPYcTJzBhwqB8S3U10tOhUOC771BX93iQvc9p6VJMngwAOTnw9ER+fofbnn78ET4+uH0bY8cOSjAyEKhGyRCWnY2gINy/jxkzkJICW9tB/8a6OqSmIj4ex4+jtvbx4JQp2LULAgECAlBbi/armdy6hfHjkZ2N6dMHPRvpK1q2mQxVGRnw88P9+/D3R0aGNjoUgLk5ZDIcPoz795GUhFdfhZ0d8vJgYYGRIwHgf8uYPsb+qJ1spK9ob5QMSbGxWLsWKhVWrUJMDHo/DWnAqVT4/nv4+UGjgaMjXn0VH3zw+6tvvIEzZ/C/W/2JbqLn1JOhJyoKmzZBo0F4OHbvRjcL32mJoeHjC/FCIXbvxtq1sLbG8uVQq7FnD/buxbFjXMYjvUB7o2QoYRj8/e/YuRMCAXbuxNatXAd6QmoqPvoIFy9CKMTMmXjvPcyZw3Um0gOqUTJktLbitdewZw+MjPDNN1i2jOtAhCfooJ4MDfX1kMmQmgpzc8jlCAjgOhDhD6pRMjTU1eHGDYwahePH4eHBdRrCK3RQT4aM334DQGskkwFHNUoIIf1Ct98TPefj02ESOgCBAN9///h/p6VhzhyYmcHCAv7+yMzUej7Cf1SjhL+OHkVwMBYvRmEh8vMxZw78/ZGeznUswjd0iYnwVGsrNm7Eli3YtOnxyLvv4t49bNxICyaRgUV7o4SnLl9GWRlWreowuHo1rl/HnTscZSL8RDVK9N/HH2PkyN//sB48AIAxYzpsyS6ZXFGh3XyE5+ignui/DRsQHv77j05OAH5fMKn96si0YBIZBLQ3SvTf8OFwdPz9D+uFFzBqFGJjO2wZG4tJk2gJZDKwaG+U8JSBAS2YRLSD9kYJfy1bhoQExMXB2RmursjIQFoaFizgOhbhG5rFRAgh/fL/G+FdeLX903cAAAAASUVORK5CYII=",
       "text/plain": [
-       "<rdkit.Chem.rdchem.Mol at 0x7fbef06ee640>"
+       "<rdkit.Chem.rdchem.Mol at 0x7f10c5030340>"
       ]
      },
-     "execution_count": 3,
+     "execution_count": 7,
      "metadata": {},
      "output_type": "execute_result"
     },
     {
      "data": {
-      "image/png": "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",
+      "image/png": "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",
       "text/plain": [
        "<Figure size 432x288 with 1 Axes>"
       ]
@@ -132,27 +191,333 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "{'atomic_num': 6, 'element': 'C', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbef06eeb20>, 'coords': None, 'atom_type_one_hot': array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}\n",
-      "{'atomic_num': 6, 'element': 'C', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbef06ee700>, 'coords': None, 'atom_type_one_hot': array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}\n",
-      "{'atomic_num': 8, 'element': 'O', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbef06ee820>, 'coords': None, 'atom_type_one_hot': array([0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0])}\n",
-      "{'atomic_num': 8, 'element': 'O', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbef06ee7c0>, 'coords': None, 'atom_type_one_hot': array([0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0])}\n",
-      "{'atomic_num': 6, 'element': 'C', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbef06ee880>, 'coords': None, 'atom_type_one_hot': array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}\n",
-      "{'atomic_num': 6, 'element': 'C', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbef06ee8e0>, 'coords': None, 'atom_type_one_hot': array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}\n",
-      "{'atomic_num': 6, 'element': 'C', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbef06ee940>, 'coords': None, 'atom_type_one_hot': array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}\n",
-      "{'atomic_num': 6, 'element': 'C', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbef06ee9a0>, 'coords': None, 'atom_type_one_hot': array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}\n",
-      "{'atomic_num': 6, 'element': 'C', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbef06eea00>, 'coords': None, 'atom_type_one_hot': array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}\n",
-      "{'atomic_num': 6, 'element': 'C', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbef06eea60>, 'coords': None, 'atom_type_one_hot': array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}\n",
-      "{'atomic_num': 6, 'element': 'C', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbef06eeac0>, 'coords': None, 'atom_type_one_hot': array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}\n",
-      "{'atomic_num': 8, 'element': 'O', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbef06eeb80>, 'coords': None, 'atom_type_one_hot': array([0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0])}\n",
-      "{'atomic_num': 8, 'element': 'O', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbef06eebe0>, 'coords': None, 'atom_type_one_hot': array([0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0])}\n"
-     ]
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'C'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030460</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m6\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'C'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030460\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'C'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c50304c0</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m6\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'C'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c50304c0\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">8</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'O'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030520</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m8\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'O'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030520\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">8</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'O'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030580</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m8\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'O'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030580\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'C'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c50305e0</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m6\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'C'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c50305e0\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'C'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030640</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m6\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'C'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030640\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'C'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c50306a0</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m6\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'C'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c50306a0\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'C'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030700</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m6\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'C'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030700\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'C'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030760</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m6\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'C'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030760\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'C'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c50307c0</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m6\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'C'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c50307c0\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'C'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030820</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m6\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'C'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030820\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">8</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'O'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030880</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m8\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'O'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030880\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">8</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'O'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c50308e0</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m8\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'O'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c50308e0\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
     }
    ],
    "source": [
@@ -163,33 +528,183 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 9,
    "metadata": {},
    "outputs": [
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "C:0 C:1 {'kind': {'bond'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf80732220>}\n",
-      "C:1 O:2 {'kind': {'bond'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf80732280>}\n",
-      "C:1 O:3 {'kind': {'bond'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf807322e0>}\n",
-      "O:3 C:4 {'kind': {'bond'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf80732340>}\n",
-      "C:4 C:5 {'kind': {'bond'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf807323a0>}\n",
-      "C:4 C:9 {'kind': {'bond'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf807326a0>}\n",
-      "C:5 C:6 {'kind': {'bond'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf80732400>}\n",
-      "C:6 C:7 {'kind': {'bond'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf80732460>}\n",
-      "C:7 C:8 {'kind': {'bond'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf807324c0>}\n",
-      "C:8 C:9 {'kind': {'bond'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf80732520>}\n",
-      "C:9 C:10 {'kind': {'bond'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf80732580>}\n",
-      "C:10 O:11 {'kind': {'bond'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf807325e0>}\n",
-      "C:10 O:12 {'kind': {'bond'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf80732640>}\n"
-     ]
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span><span style=\"font-weight: bold\">}</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030dc0</span><span style=\"font-weight: bold\">&gt;}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'bond'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030dc0\u001b[0m\u001b[1m>\u001b[0m\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span><span style=\"font-weight: bold\">}</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030e20</span><span style=\"font-weight: bold\">&gt;}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'bond'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030e20\u001b[0m\u001b[1m>\u001b[0m\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span><span style=\"font-weight: bold\">}</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030e80</span><span style=\"font-weight: bold\">&gt;}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'bond'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030e80\u001b[0m\u001b[1m>\u001b[0m\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span><span style=\"font-weight: bold\">}</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030ee0</span><span style=\"font-weight: bold\">&gt;}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'bond'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030ee0\u001b[0m\u001b[1m>\u001b[0m\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span><span style=\"font-weight: bold\">}</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030f40</span><span style=\"font-weight: bold\">&gt;}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'bond'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030f40\u001b[0m\u001b[1m>\u001b[0m\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span><span style=\"font-weight: bold\">}</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5048280</span><span style=\"font-weight: bold\">&gt;}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'bond'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5048280\u001b[0m\u001b[1m>\u001b[0m\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span><span style=\"font-weight: bold\">}</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030fa0</span><span style=\"font-weight: bold\">&gt;}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'bond'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030fa0\u001b[0m\u001b[1m>\u001b[0m\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span><span style=\"font-weight: bold\">}</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5048040</span><span style=\"font-weight: bold\">&gt;}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'bond'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5048040\u001b[0m\u001b[1m>\u001b[0m\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span><span style=\"font-weight: bold\">}</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c50480a0</span><span style=\"font-weight: bold\">&gt;}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'bond'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c50480a0\u001b[0m\u001b[1m>\u001b[0m\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span><span style=\"font-weight: bold\">}</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5048100</span><span style=\"font-weight: bold\">&gt;}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'bond'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5048100\u001b[0m\u001b[1m>\u001b[0m\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span><span style=\"font-weight: bold\">}</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5048160</span><span style=\"font-weight: bold\">&gt;}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'bond'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5048160\u001b[0m\u001b[1m>\u001b[0m\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span><span style=\"font-weight: bold\">}</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c50481c0</span><span style=\"font-weight: bold\">&gt;}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'bond'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c50481c0\u001b[0m\u001b[1m>\u001b[0m\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span><span style=\"font-weight: bold\">}</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5048220</span><span style=\"font-weight: bold\">&gt;}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'bond'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5048220\u001b[0m\u001b[1m>\u001b[0m\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
     }
    ],
    "source": [
     "# Edge metadata\n",
     "for u, v, d in graph.edges(data=True):\n",
-    "    print(u, v, d)"
+    "    print(d)"
    ]
   },
   {
@@ -203,43 +718,43 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 10,
    "metadata": {},
    "outputs": [
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "<class 'pathlib.Path'>\n",
-      "long_test\n"
-     ]
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Graph named <span style=\"color: #008000; text-decoration-color: #008000\">'long_test'</span> with <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">20</span> nodes and <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">21</span> edges\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "Graph named \u001b[32m'long_test'\u001b[0m with \u001b[1;36m20\u001b[0m nodes and \u001b[1;36m21\u001b[0m edges\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
     },
     {
      "data": {
-      "image/png": "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",
+      "image/png": "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",
       "text/plain": [
-       "<rdkit.Chem.rdchem.Mol at 0x7fbef06d82e0>"
+       "<rdkit.Chem.rdchem.Mol at 0x7f10c4e68d00>"
       ]
      },
-     "execution_count": 14,
+     "execution_count": 10,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "import pkg_resources\n",
-    "\n",
-    "SDF_PATH = pkg_resources.resource_filename(\"graphein\", \"../tests/molecule/test_data/long_test.sdf\")\n",
-    "\n",
-    "graph = gm.construct_graph(sdf_path=SDF_PATH, config=config)\n",
-    "\n",
+    "graph = gm.construct_graph(path=\"../tests/molecule/test_data/long_test.sdf\", config=config)\n",
     "print(graph)\n",
     "graph.graph[\"rdmol\"]"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 11,
    "metadata": {},
    "outputs": [
     {
@@ -401,26 +916,26 @@
          },
          "mode": "markers",
          "text": [
-          "N0",
-          "C1",
-          "C2",
-          "C3",
-          "C4",
-          "C5",
-          "C6",
-          "C7",
-          "C8",
-          "O9",
-          "C10",
-          "N11",
-          "C12",
-          "C13",
-          "C14",
-          "C15",
-          "C16",
-          "C17",
-          "C18",
-          "O19"
+          "N:0",
+          "C:1",
+          "C:2",
+          "C:3",
+          "C:4",
+          "C:5",
+          "C:6",
+          "C:7",
+          "C:8",
+          "O:9",
+          "C:10",
+          "N:11",
+          "C:12",
+          "C:13",
+          "C:14",
+          "C:15",
+          "C:16",
+          "C:17",
+          "C:18",
+          "O:19"
          ],
          "type": "scatter3d",
          "x": [
@@ -2015,39 +2530,43 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 22,
+   "execution_count": 12,
    "metadata": {},
    "outputs": [
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "short_test\n"
-     ]
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Graph named <span style=\"color: #008000; text-decoration-color: #008000\">'short_test'</span> with <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">3</span> nodes and <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2</span> edges\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "Graph named \u001b[32m'short_test'\u001b[0m with \u001b[1;36m3\u001b[0m nodes and \u001b[1;36m2\u001b[0m edges\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
     },
     {
      "data": {
-      "image/png": "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",
+      "image/png": "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",
       "text/plain": [
-       "<rdkit.Chem.rdchem.Mol at 0x7fbf30c08100>"
+       "<rdkit.Chem.rdchem.Mol at 0x7f10c4ce2100>"
       ]
      },
-     "execution_count": 22,
+     "execution_count": 12,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "MOL2_PATH = pkg_resources.resource_filename(\"graphein\", \"../tests/molecule/test_data/short_test.mol2\")\n",
-    "\n",
-    "graph = gm.construct_graph(mol2_path=MOL2_PATH, config=config)\n",
+    "graph = gm.construct_graph(path=\"../tests/molecule/test_data/short_test.mol2\", config=config)\n",
     "print(graph)\n",
     "graph.graph[\"rdmol\"]"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 23,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [
     {
@@ -3071,7 +3590,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 24,
+   "execution_count": 14,
    "metadata": {},
    "outputs": [
     {
@@ -3083,13 +3602,187 @@
      ]
     },
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "{'atomic_num': 6, 'element': 'C', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbf30bdeac0>, 'coords': array([ 0.9862, -0.257 , -0.1905]), 'atom_type_one_hot': array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), 'mass': 12.011, 'degree': 1, 'total_degree': 4, 'total_valence': 4, 'explicit_valence': 4, 'implicit_valence': 0, 'num_explicit_h': 3, 'num_implicit_h': 0, 'total_num_h': 3, 'num_radical_electrons': 0, 'formal_charge': 0, 'hybridization': rdkit.Chem.rdchem.HybridizationType.SP3, 'is_aromatic': False, 'is_isotope': 0, 'is_ring': False, 'chiral_tag': rdkit.Chem.rdchem.ChiralType.CHI_UNSPECIFIED, 'is_ring_5': False, 'is_ring_7': False}\n",
-      "{'atomic_num': 6, 'element': 'C', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbf30bde1c0>, 'coords': array([-0.2052,  0.2236,  0.6206]), 'atom_type_one_hot': array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), 'mass': 12.011, 'degree': 2, 'total_degree': 4, 'total_valence': 4, 'explicit_valence': 4, 'implicit_valence': 0, 'num_explicit_h': 2, 'num_implicit_h': 0, 'total_num_h': 2, 'num_radical_electrons': 0, 'formal_charge': 0, 'hybridization': rdkit.Chem.rdchem.HybridizationType.SP3, 'is_aromatic': False, 'is_isotope': 0, 'is_ring': False, 'chiral_tag': rdkit.Chem.rdchem.ChiralType.CHI_UNSPECIFIED, 'is_ring_5': False, 'is_ring_7': False}\n",
-      "{'atomic_num': 7, 'element': 'N', 'rdmol_atom': <rdkit.Chem.rdchem.Atom object at 0x7fbf30bde460>, 'coords': array([-1.4201,  0.2357, -0.1847]), 'atom_type_one_hot': array([0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]), 'mass': 14.007, 'degree': 1, 'total_degree': 3, 'total_valence': 3, 'explicit_valence': 3, 'implicit_valence': 0, 'num_explicit_h': 2, 'num_implicit_h': 0, 'total_num_h': 2, 'num_radical_electrons': 0, 'formal_charge': 0, 'hybridization': rdkit.Chem.rdchem.HybridizationType.SP3, 'is_aromatic': False, 'is_isotope': 0, 'is_ring': False, 'chiral_tag': rdkit.Chem.rdchem.ChiralType.CHI_UNSPECIFIED, 'is_ring_5': False, 'is_ring_7': False}\n"
-     ]
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'C'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c4e35d60</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span> <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.9862</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-0.257</span> , <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-0.1905</span><span style=\"font-weight: bold\">])</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'mass'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">12.011</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'degree'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'total_degree'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'total_valence'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'explicit_valence'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'implicit_valence'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'num_explicit_h'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">3</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'num_implicit_h'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'total_num_h'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">3</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'num_radical_electrons'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'formal_charge'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'hybridization'</span>: rdkit.Chem.rdchem.HybridizationType.SP3,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_aromatic'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_isotope'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_ring'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'chiral_tag'</span>: rdkit.Chem.rdchem.ChiralType.CHI_UNSPECIFIED,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_ring_5'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_ring_7'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m6\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'C'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c4e35d60\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m \u001b[1;36m0.9862\u001b[0m, \u001b[1;36m-0.257\u001b[0m , \u001b[1;36m-0.1905\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m,\n",
+       "    \u001b[32m'mass'\u001b[0m: \u001b[1;36m12.011\u001b[0m,\n",
+       "    \u001b[32m'degree'\u001b[0m: \u001b[1;36m1\u001b[0m,\n",
+       "    \u001b[32m'total_degree'\u001b[0m: \u001b[1;36m4\u001b[0m,\n",
+       "    \u001b[32m'total_valence'\u001b[0m: \u001b[1;36m4\u001b[0m,\n",
+       "    \u001b[32m'explicit_valence'\u001b[0m: \u001b[1;36m4\u001b[0m,\n",
+       "    \u001b[32m'implicit_valence'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'num_explicit_h'\u001b[0m: \u001b[1;36m3\u001b[0m,\n",
+       "    \u001b[32m'num_implicit_h'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'total_num_h'\u001b[0m: \u001b[1;36m3\u001b[0m,\n",
+       "    \u001b[32m'num_radical_electrons'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'formal_charge'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'hybridization'\u001b[0m: rdkit.Chem.rdchem.HybridizationType.SP3,\n",
+       "    \u001b[32m'is_aromatic'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'is_isotope'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'is_ring'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'chiral_tag'\u001b[0m: rdkit.Chem.rdchem.ChiralType.CHI_UNSPECIFIED,\n",
+       "    \u001b[32m'is_ring_5'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'is_ring_7'\u001b[0m: \u001b[3;91mFalse\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'C'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c4e359a0</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-0.2052</span>,  <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.2236</span>,  <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.6206</span><span style=\"font-weight: bold\">])</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'mass'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">12.011</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'degree'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'total_degree'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'total_valence'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'explicit_valence'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'implicit_valence'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'num_explicit_h'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'num_implicit_h'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'total_num_h'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'num_radical_electrons'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'formal_charge'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'hybridization'</span>: rdkit.Chem.rdchem.HybridizationType.SP3,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_aromatic'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_isotope'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_ring'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'chiral_tag'</span>: rdkit.Chem.rdchem.ChiralType.CHI_UNSPECIFIED,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_ring_5'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_ring_7'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m6\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'C'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c4e359a0\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-0.2052\u001b[0m,  \u001b[1;36m0.2236\u001b[0m,  \u001b[1;36m0.6206\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m,\n",
+       "    \u001b[32m'mass'\u001b[0m: \u001b[1;36m12.011\u001b[0m,\n",
+       "    \u001b[32m'degree'\u001b[0m: \u001b[1;36m2\u001b[0m,\n",
+       "    \u001b[32m'total_degree'\u001b[0m: \u001b[1;36m4\u001b[0m,\n",
+       "    \u001b[32m'total_valence'\u001b[0m: \u001b[1;36m4\u001b[0m,\n",
+       "    \u001b[32m'explicit_valence'\u001b[0m: \u001b[1;36m4\u001b[0m,\n",
+       "    \u001b[32m'implicit_valence'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'num_explicit_h'\u001b[0m: \u001b[1;36m2\u001b[0m,\n",
+       "    \u001b[32m'num_implicit_h'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'total_num_h'\u001b[0m: \u001b[1;36m2\u001b[0m,\n",
+       "    \u001b[32m'num_radical_electrons'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'formal_charge'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'hybridization'\u001b[0m: rdkit.Chem.rdchem.HybridizationType.SP3,\n",
+       "    \u001b[32m'is_aromatic'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'is_isotope'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'is_ring'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'chiral_tag'\u001b[0m: rdkit.Chem.rdchem.ChiralType.CHI_UNSPECIFIED,\n",
+       "    \u001b[32m'is_ring_5'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'is_ring_7'\u001b[0m: \u001b[3;91mFalse\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atomic_num'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">7</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'element'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'N'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol_atom'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Atom</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c4e358e0</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-1.4201</span>,  <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.2357</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-0.1847</span><span style=\"font-weight: bold\">])</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'atom_type_one_hot'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">])</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'mass'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">14.007</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'degree'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'total_degree'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">3</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'total_valence'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">3</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'explicit_valence'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">3</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'implicit_valence'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'num_explicit_h'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'num_implicit_h'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'total_num_h'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'num_radical_electrons'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'formal_charge'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'hybridization'</span>: rdkit.Chem.rdchem.HybridizationType.SP3,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_aromatic'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_isotope'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_ring'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'chiral_tag'</span>: rdkit.Chem.rdchem.ChiralType.CHI_UNSPECIFIED,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_ring_5'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'is_ring_7'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'atomic_num'\u001b[0m: \u001b[1;36m7\u001b[0m,\n",
+       "    \u001b[32m'element'\u001b[0m: \u001b[32m'N'\u001b[0m,\n",
+       "    \u001b[32m'rdmol_atom'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Atom\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c4e358e0\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m-1.4201\u001b[0m,  \u001b[1;36m0.2357\u001b[0m, \u001b[1;36m-0.1847\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m,\n",
+       "    \u001b[32m'atom_type_one_hot'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m,\n",
+       "    \u001b[32m'mass'\u001b[0m: \u001b[1;36m14.007\u001b[0m,\n",
+       "    \u001b[32m'degree'\u001b[0m: \u001b[1;36m1\u001b[0m,\n",
+       "    \u001b[32m'total_degree'\u001b[0m: \u001b[1;36m3\u001b[0m,\n",
+       "    \u001b[32m'total_valence'\u001b[0m: \u001b[1;36m3\u001b[0m,\n",
+       "    \u001b[32m'explicit_valence'\u001b[0m: \u001b[1;36m3\u001b[0m,\n",
+       "    \u001b[32m'implicit_valence'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'num_explicit_h'\u001b[0m: \u001b[1;36m2\u001b[0m,\n",
+       "    \u001b[32m'num_implicit_h'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'total_num_h'\u001b[0m: \u001b[1;36m2\u001b[0m,\n",
+       "    \u001b[32m'num_radical_electrons'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'formal_charge'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'hybridization'\u001b[0m: rdkit.Chem.rdchem.HybridizationType.SP3,\n",
+       "    \u001b[32m'is_aromatic'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'is_isotope'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'is_ring'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'chiral_tag'\u001b[0m: rdkit.Chem.rdchem.ChiralType.CHI_UNSPECIFIED,\n",
+       "    \u001b[32m'is_ring_5'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'is_ring_7'\u001b[0m: \u001b[3;91mFalse\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
     }
    ],
    "source": [
@@ -3118,7 +3811,7 @@
     "        partial(gm.is_ring_size, ring_size=7)\n",
     "    ]\n",
     ")\n",
-    "graph = gm.construct_graph(mol2_path=MOL2_PATH, config=config)\n",
+    "graph = gm.construct_graph(path=\"../tests/molecule/test_data/short_test.mol2\", config=config)\n",
     "\n",
     "for n, d in graph.nodes(data=True):\n",
     "    print(d)"
@@ -3133,7 +3826,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 25,
+   "execution_count": 15,
    "metadata": {},
    "outputs": [
     {
@@ -3173,16 +3866,194 @@
      ]
     },
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "{'kind': {'distance_threshold', 'fully_connected'}, 'bond_type': None, 'aromatic': None, 'conjugated': None, 'ring': None, 'bond_stereo': None, 'ring_size_5': None, 'ring_size_7': None}\n",
-      "{'kind': {'bond', 'distance_threshold', 'k_nn_1', 'fully_connected'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf30c08520>, 'bond_type': rdkit.Chem.rdchem.BondType.SINGLE, '_aromatic': False, 'conjugated': False, 'ring': False, 'bond_stereo': rdkit.Chem.rdchem.BondStereo.STEREONONE, 'ring_size_5': False, 'ring_size_7': False}\n",
-      "{'kind': {'distance_threshold', 'fully_connected'}, 'bond_type': None, 'aromatic': None, 'conjugated': None, 'ring': None, 'bond_stereo': None, 'ring_size_5': None, 'ring_size_7': None}\n",
-      "{'kind': {'distance_threshold', 'fully_connected'}, 'bond_type': None, 'aromatic': None, 'conjugated': None, 'ring': None, 'bond_stereo': None, 'ring_size_5': None, 'ring_size_7': None}\n",
-      "{'kind': {'bond', 'distance_threshold', 'k_nn_1', 'fully_connected'}, 'bond': <rdkit.Chem.rdchem.Bond object at 0x7fbf30c08700>, 'bond_type': rdkit.Chem.rdchem.BondType.SINGLE, '_aromatic': False, 'conjugated': False, 'ring': False, 'bond_stereo': rdkit.Chem.rdchem.BondStereo.STEREONONE, 'ring_size_5': False, 'ring_size_7': False}\n",
-      "{'kind': {'distance_threshold', 'fully_connected'}, 'bond_type': None, 'aromatic': None, 'conjugated': None, 'ring': None, 'bond_stereo': None, 'ring_size_5': None, 'ring_size_7': None}\n"
-     ]
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'distance_threshold'</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'fully_connected'</span><span style=\"font-weight: bold\">}</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond_type'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'aromatic'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'conjugated'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond_stereo'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring_size_5'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring_size_7'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'distance_threshold'\u001b[0m, \u001b[32m'fully_connected'\u001b[0m\u001b[1m}\u001b[0m,\n",
+       "    \u001b[32m'bond_type'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'aromatic'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'conjugated'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'ring'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'bond_stereo'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'ring_size_5'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'ring_size_7'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'distance_threshold'</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'fully_connected'</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'k_nn_1'</span><span style=\"font-weight: bold\">}</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c4e68820</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond_type'</span>: rdkit.Chem.rdchem.BondType.SINGLE,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'_aromatic'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'conjugated'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond_stereo'</span>: rdkit.Chem.rdchem.BondStereo.STEREONONE,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring_size_5'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring_size_7'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'distance_threshold'\u001b[0m, \u001b[32m'bond'\u001b[0m, \u001b[32m'fully_connected'\u001b[0m, \u001b[32m'k_nn_1'\u001b[0m\u001b[1m}\u001b[0m,\n",
+       "    \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c4e68820\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'bond_type'\u001b[0m: rdkit.Chem.rdchem.BondType.SINGLE,\n",
+       "    \u001b[32m'_aromatic'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'conjugated'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'ring'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'bond_stereo'\u001b[0m: rdkit.Chem.rdchem.BondStereo.STEREONONE,\n",
+       "    \u001b[32m'ring_size_5'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'ring_size_7'\u001b[0m: \u001b[3;91mFalse\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'distance_threshold'</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'fully_connected'</span><span style=\"font-weight: bold\">}</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond_type'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'aromatic'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'conjugated'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond_stereo'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring_size_5'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring_size_7'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'distance_threshold'\u001b[0m, \u001b[32m'fully_connected'\u001b[0m\u001b[1m}\u001b[0m,\n",
+       "    \u001b[32m'bond_type'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'aromatic'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'conjugated'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'ring'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'bond_stereo'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'ring_size_5'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'ring_size_7'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'distance_threshold'</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'fully_connected'</span><span style=\"font-weight: bold\">}</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond_type'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'aromatic'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'conjugated'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond_stereo'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring_size_5'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring_size_7'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'distance_threshold'\u001b[0m, \u001b[32m'fully_connected'\u001b[0m\u001b[1m}\u001b[0m,\n",
+       "    \u001b[32m'bond_type'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'aromatic'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'conjugated'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'ring'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'bond_stereo'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'ring_size_5'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'ring_size_7'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'distance_threshold'</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'fully_connected'</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'k_nn_1'</span><span style=\"font-weight: bold\">}</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Bond</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c4cb6220</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond_type'</span>: rdkit.Chem.rdchem.BondType.SINGLE,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'_aromatic'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'conjugated'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond_stereo'</span>: rdkit.Chem.rdchem.BondStereo.STEREONONE,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring_size_5'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring_size_7'</span>: <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'distance_threshold'\u001b[0m, \u001b[32m'bond'\u001b[0m, \u001b[32m'fully_connected'\u001b[0m, \u001b[32m'k_nn_1'\u001b[0m\u001b[1m}\u001b[0m,\n",
+       "    \u001b[32m'bond'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Bond\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c4cb6220\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'bond_type'\u001b[0m: rdkit.Chem.rdchem.BondType.SINGLE,\n",
+       "    \u001b[32m'_aromatic'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'conjugated'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'ring'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'bond_stereo'\u001b[0m: rdkit.Chem.rdchem.BondStereo.STEREONONE,\n",
+       "    \u001b[32m'ring_size_5'\u001b[0m: \u001b[3;91mFalse\u001b[0m,\n",
+       "    \u001b[32m'ring_size_7'\u001b[0m: \u001b[3;91mFalse\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'kind'</span>: <span style=\"font-weight: bold\">{</span><span style=\"color: #008000; text-decoration-color: #008000\">'distance_threshold'</span>, <span style=\"color: #008000; text-decoration-color: #008000\">'fully_connected'</span><span style=\"font-weight: bold\">}</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond_type'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'aromatic'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'conjugated'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'bond_stereo'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring_size_5'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ring_size_7'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'kind'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'distance_threshold'\u001b[0m, \u001b[32m'fully_connected'\u001b[0m\u001b[1m}\u001b[0m,\n",
+       "    \u001b[32m'bond_type'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'aromatic'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'conjugated'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'ring'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'bond_stereo'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'ring_size_5'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
+       "    \u001b[32m'ring_size_7'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
     }
    ],
    "source": [
@@ -3197,7 +4068,7 @@
     "        partial(gm.bond_is_in_ring_size, ring_size=7)\n",
     "    ]\n",
     ")\n",
-    "graph = gm.construct_graph(mol2_path=MOL2_PATH, config=config)\n",
+    "graph = gm.construct_graph(path=\"../tests/molecule/test_data/short_test.mol2\", config=config)\n",
     "\n",
     "for u, v, d in graph.edges(data=True):\n",
     "    print(d)"
@@ -3213,7 +4084,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 26,
+   "execution_count": 16,
    "metadata": {},
    "outputs": [
     {
@@ -3225,13 +4096,445 @@
      ]
     },
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "{'name': 'short_test', 'rdmol': <rdkit.Chem.rdchem.Mol object at 0x7fbf6087ad60>, 'coords': array([[ 0.9862, -0.257 , -0.1905],\n",
-      "       [-0.2052,  0.2236,  0.6206],\n",
-      "       [-1.4201,  0.2357, -0.1847]]), 'smiles': 'CCN', 'config': MoleculeGraphConfig(verbose=False, add_hs=False, edge_construction_functions=[<function add_fully_connected_edges at 0x7fbf40c425e0>, <function add_k_nn_edges at 0x7fbf40c42670>, <function add_distance_threshold at 0x7fbf40c42550>, <function add_atom_bonds at 0x7fbf40c420d0>], node_metadata_functions=[<function atom_type_one_hot at 0x7fbf8071b9d0>], edge_metadata_functions=None, graph_metadata_functions=[<function mol_descriptors at 0x7fbf40c42b80>]), 'MaxEStateIndex': 4.847222222222222, 'MinEStateIndex': 0.75, 'MaxAbsEStateIndex': 4.847222222222222, 'MinAbsEStateIndex': 0.75, 'qed': 0.40623709538988323, 'MolWt': 45.084999999999994, 'HeavyAtomMolWt': 38.028999999999996, 'ExactMolWt': 45.057849223999995, 'NumValenceElectrons': 20, 'NumRadicalElectrons': 0, 'MaxPartialCharge': -0.010576265829206462, 'MinPartialCharge': -0.3307484184390755, 'MaxAbsPartialCharge': 0.3307484184390755, 'MinAbsPartialCharge': 0.010576265829206462, 'FpDensityMorgan1': 2.0, 'FpDensityMorgan2': 2.0, 'FpDensityMorgan3': 2.0, 'BCUT2D_MWHI': 14.489350501685236, 'BCUT2D_MWLOW': 10.840990590774261, 'BCUT2D_CHGHI': 1.3223586846717188, 'BCUT2D_CHGLO': -1.5255036511694584, 'BCUT2D_LOGPHI': 1.1976547781828029, 'BCUT2D_LOGPLOW': -1.871495321468652, 'BCUT2D_MRHI': 3.9983956644101193, 'BCUT2D_MRLOW': 1.1354269715888405, 'BalabanJ': 1.6329931618554523, 'BertzCT': 2.7548875021634682, 'Chi0': 2.7071067811865475, 'Chi0n': 2.284457050376173, 'Chi0v': 2.284457050376173, 'Chi1': 1.4142135623730951, 'Chi1n': 1.1153550716504106, 'Chi1v': 1.1153550716504106, 'Chi2n': 0.408248290463863, 'Chi2v': 0.408248290463863, 'Chi3n': 0.0, 'Chi3v': 0.0, 'Chi4n': 0.0, 'Chi4v': 0.0, 'HallKierAlpha': -0.04, 'Ipc': 2.7548875021634682, 'Kappa1': 2.9600000000000004, 'Kappa2': 1.96, 'Kappa3': 1.9600000000000033, 'LabuteASA': 20.444083839238875, 'PEOE_VSA1': 5.733667477162185, 'PEOE_VSA10': 0.0, 'PEOE_VSA11': 0.0, 'PEOE_VSA12': 0.0, 'PEOE_VSA13': 0.0, 'PEOE_VSA14': 0.0, 'PEOE_VSA2': 0.0, 'PEOE_VSA3': 0.0, 'PEOE_VSA4': 0.0, 'PEOE_VSA5': 0.0, 'PEOE_VSA6': 6.923737199690624, 'PEOE_VSA7': 6.544756405912575, 'PEOE_VSA8': 0.0, 'PEOE_VSA9': 0.0, 'SMR_VSA1': 0.0, 'SMR_VSA10': 0.0, 'SMR_VSA2': 0.0, 'SMR_VSA3': 0.0, 'SMR_VSA4': 5.733667477162185, 'SMR_VSA5': 6.923737199690624, 'SMR_VSA6': 6.544756405912575, 'SMR_VSA7': 0.0, 'SMR_VSA8': 0.0, 'SMR_VSA9': 0.0, 'SlogP_VSA1': 5.733667477162185, 'SlogP_VSA10': 0.0, 'SlogP_VSA11': 0.0, 'SlogP_VSA12': 0.0, 'SlogP_VSA2': 6.544756405912575, 'SlogP_VSA3': 0.0, 'SlogP_VSA4': 0.0, 'SlogP_VSA5': 6.923737199690624, 'SlogP_VSA6': 0.0, 'SlogP_VSA7': 0.0, 'SlogP_VSA8': 0.0, 'SlogP_VSA9': 0.0, 'TPSA': 26.02, 'EState_VSA1': 0.0, 'EState_VSA10': 0.0, 'EState_VSA11': 0.0, 'EState_VSA2': 0.0, 'EState_VSA3': 0.0, 'EState_VSA4': 6.544756405912575, 'EState_VSA5': 0.0, 'EState_VSA6': 0.0, 'EState_VSA7': 6.923737199690624, 'EState_VSA8': 0.0, 'EState_VSA9': 5.733667477162185, 'VSA_EState1': 0.0, 'VSA_EState10': 0.0, 'VSA_EState2': 0.0, 'VSA_EState3': 0.0, 'VSA_EState4': 4.847222222222222, 'VSA_EState5': 0.0, 'VSA_EState6': 0.0, 'VSA_EState7': 0.0, 'VSA_EState8': 2.6527777777777777, 'VSA_EState9': 0.0, 'FractionCSP3': 1.0, 'HeavyAtomCount': 3, 'NHOHCount': 2, 'NOCount': 1, 'NumAliphaticCarbocycles': 0, 'NumAliphaticHeterocycles': 0, 'NumAliphaticRings': 0, 'NumAromaticCarbocycles': 0, 'NumAromaticHeterocycles': 0, 'NumAromaticRings': 0, 'NumHAcceptors': 1, 'NumHDonors': 1, 'NumHeteroatoms': 1, 'NumRotatableBonds': 0, 'NumSaturatedCarbocycles': 0, 'NumSaturatedHeterocycles': 0, 'NumSaturatedRings': 0, 'RingCount': 0, 'MolLogP': -0.03499999999999981, 'MolMR': 14.728400000000002, 'fr_Al_COO': 0, 'fr_Al_OH': 0, 'fr_Al_OH_noTert': 0, 'fr_ArN': 0, 'fr_Ar_COO': 0, 'fr_Ar_N': 0, 'fr_Ar_NH': 0, 'fr_Ar_OH': 0, 'fr_COO': 0, 'fr_COO2': 0, 'fr_C_O': 0, 'fr_C_O_noCOO': 0, 'fr_C_S': 0, 'fr_HOCCN': 0, 'fr_Imine': 0, 'fr_NH0': 0, 'fr_NH1': 0, 'fr_NH2': 1, 'fr_N_O': 0, 'fr_Ndealkylation1': 0, 'fr_Ndealkylation2': 0, 'fr_Nhpyrrole': 0, 'fr_SH': 0, 'fr_aldehyde': 0, 'fr_alkyl_carbamate': 0, 'fr_alkyl_halide': 0, 'fr_allylic_oxid': 0, 'fr_amide': 0, 'fr_amidine': 0, 'fr_aniline': 0, 'fr_aryl_methyl': 0, 'fr_azide': 0, 'fr_azo': 0, 'fr_barbitur': 0, 'fr_benzene': 0, 'fr_benzodiazepine': 0, 'fr_bicyclic': 0, 'fr_diazo': 0, 'fr_dihydropyridine': 0, 'fr_epoxide': 0, 'fr_ester': 0, 'fr_ether': 0, 'fr_furan': 0, 'fr_guanido': 0, 'fr_halogen': 0, 'fr_hdrzine': 0, 'fr_hdrzone': 0, 'fr_imidazole': 0, 'fr_imide': 0, 'fr_isocyan': 0, 'fr_isothiocyan': 0, 'fr_ketone': 0, 'fr_ketone_Topliss': 0, 'fr_lactam': 0, 'fr_lactone': 0, 'fr_methoxy': 0, 'fr_morpholine': 0, 'fr_nitrile': 0, 'fr_nitro': 0, 'fr_nitro_arom': 0, 'fr_nitro_arom_nonortho': 0, 'fr_nitroso': 0, 'fr_oxazole': 0, 'fr_oxime': 0, 'fr_para_hydroxylation': 0, 'fr_phenol': 0, 'fr_phenol_noOrthoHbond': 0, 'fr_phos_acid': 0, 'fr_phos_ester': 0, 'fr_piperdine': 0, 'fr_piperzine': 0, 'fr_priamide': 0, 'fr_prisulfonamd': 0, 'fr_pyridine': 0, 'fr_quatN': 0, 'fr_sulfide': 0, 'fr_sulfonamd': 0, 'fr_sulfone': 0, 'fr_term_acetylene': 0, 'fr_tetrazole': 0, 'fr_thiazole': 0, 'fr_thiocyan': 0, 'fr_thiophene': 0, 'fr_unbrch_alkane': 0, 'fr_urea': 0}\n"
-     ]
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">{</span>\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'name'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'short_test'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'rdmol'</span>: <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">rdkit.Chem.rdchem.Mol</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5030820</span><span style=\"font-weight: bold\">&gt;</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'coords'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">array</span><span style=\"font-weight: bold\">([[</span> <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.9862</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-0.257</span> , <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-0.1905</span><span style=\"font-weight: bold\">]</span>,\n",
+       "       <span style=\"font-weight: bold\">[</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-0.2052</span>,  <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.2236</span>,  <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.6206</span><span style=\"font-weight: bold\">]</span>,\n",
+       "       <span style=\"font-weight: bold\">[</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-1.4201</span>,  <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.2357</span>, <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-0.1847</span><span style=\"font-weight: bold\">]])</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'smiles'</span>: <span style=\"color: #008000; text-decoration-color: #008000\">'CCN'</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'config'</span>: <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">MoleculeGraphConfig</span><span style=\"font-weight: bold\">(</span><span style=\"color: #808000; text-decoration-color: #808000\">verbose</span>=<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>, <span style=\"color: #808000; text-decoration-color: #808000\">add_hs</span>=<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>, <span style=\"color: #808000; text-decoration-color: #808000\">generate_conformer</span>=<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>, \n",
+       "<span style=\"color: #808000; text-decoration-color: #808000\">edge_construction_functions</span>=<span style=\"font-weight: bold\">[&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> add_fully_connected_edges at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c593f9d0</span><span style=\"font-weight: bold\">&gt;</span>, \n",
+       "<span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> add_k_nn_edges at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c593fa60</span><span style=\"font-weight: bold\">&gt;</span>, <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> add_distance_threshold at </span>\n",
+       "<span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c593f940</span><span style=\"font-weight: bold\">&gt;</span>, <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> add_atom_bonds at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c593f550</span><span style=\"font-weight: bold\">&gt;]</span>, \n",
+       "<span style=\"color: #808000; text-decoration-color: #808000\">node_metadata_functions</span>=<span style=\"font-weight: bold\">[&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> atom_type_one_hot at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c56e1f70</span><span style=\"font-weight: bold\">&gt;]</span>, \n",
+       "<span style=\"color: #808000; text-decoration-color: #808000\">edge_metadata_functions</span>=<span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, <span style=\"color: #808000; text-decoration-color: #808000\">graph_metadata_functions</span>=<span style=\"font-weight: bold\">[&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> mol_descriptors at </span>\n",
+       "<span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x7f10c5945280</span><span style=\"font-weight: bold\">&gt;])</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'MaxEStateIndex'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4.847222222222222</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'MinEStateIndex'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.75</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'MaxAbsEStateIndex'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4.847222222222222</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'MinAbsEStateIndex'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.75</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'qed'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.40623709538988323</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'MolWt'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">45.084999999999994</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'HeavyAtomMolWt'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">38.028999999999996</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'ExactMolWt'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">45.057849223999995</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumValenceElectrons'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">20</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumRadicalElectrons'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'MaxPartialCharge'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-0.010576265829206462</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'MinPartialCharge'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-0.3307484184390755</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'MaxAbsPartialCharge'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.3307484184390755</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'MinAbsPartialCharge'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.010576265829206462</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'FpDensityMorgan1'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'FpDensityMorgan2'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'FpDensityMorgan3'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'BalabanJ'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.6329931618554523</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'BertzCT'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2.7548875021634682</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Chi0'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2.7071067811865475</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Chi0n'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2.284457050376173</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Chi0v'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2.284457050376173</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Chi1'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.4142135623730951</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Chi1n'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.1153550716504106</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Chi1v'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.1153550716504106</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Chi2n'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.408248290463863</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Chi2v'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.408248290463863</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Chi3n'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Chi3v'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Chi4n'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Chi4v'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'HallKierAlpha'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-0.04</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Ipc'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2.7548875021634682</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Kappa1'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2.9600000000000004</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Kappa2'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.96</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'Kappa3'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.9600000000000033</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'LabuteASA'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">20.444083839238875</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA1'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">5.733667477162185</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA10'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA11'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA12'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA13'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA14'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA2'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA3'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA4'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA5'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA6'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6.923737199690624</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA7'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6.544756405912575</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA8'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'PEOE_VSA9'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SMR_VSA1'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SMR_VSA10'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SMR_VSA2'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SMR_VSA3'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SMR_VSA4'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">5.733667477162185</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SMR_VSA5'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6.923737199690624</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SMR_VSA6'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6.544756405912575</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SMR_VSA7'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SMR_VSA8'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SMR_VSA9'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SlogP_VSA1'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">5.733667477162185</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SlogP_VSA10'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SlogP_VSA11'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SlogP_VSA12'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SlogP_VSA2'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6.544756405912575</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SlogP_VSA3'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SlogP_VSA4'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SlogP_VSA5'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6.923737199690624</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SlogP_VSA6'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SlogP_VSA7'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SlogP_VSA8'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'SlogP_VSA9'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'TPSA'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">26.02</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'EState_VSA1'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'EState_VSA10'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'EState_VSA11'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'EState_VSA2'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'EState_VSA3'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'EState_VSA4'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6.544756405912575</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'EState_VSA5'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'EState_VSA6'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'EState_VSA7'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">6.923737199690624</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'EState_VSA8'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'EState_VSA9'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">5.733667477162185</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'VSA_EState1'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'VSA_EState10'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'VSA_EState2'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'VSA_EState3'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'VSA_EState4'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4.847222222222222</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'VSA_EState5'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'VSA_EState6'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'VSA_EState7'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'VSA_EState8'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2.6527777777777777</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'VSA_EState9'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'FractionCSP3'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'HeavyAtomCount'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">3</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NHOHCount'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NOCount'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumAliphaticCarbocycles'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumAliphaticHeterocycles'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumAliphaticRings'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumAromaticCarbocycles'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumAromaticHeterocycles'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumAromaticRings'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumHAcceptors'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumHDonors'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumHeteroatoms'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumRotatableBonds'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumSaturatedCarbocycles'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumSaturatedHeterocycles'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'NumSaturatedRings'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'RingCount'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'MolLogP'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">-0.03499999999999981</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'MolMR'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">14.728400000000002</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_Al_COO'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_Al_OH'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_Al_OH_noTert'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_ArN'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_Ar_COO'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_Ar_N'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_Ar_NH'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_Ar_OH'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_COO'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_COO2'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_C_O'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_C_O_noCOO'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_C_S'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_HOCCN'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_Imine'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_NH0'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_NH1'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_NH2'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_N_O'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_Ndealkylation1'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_Ndealkylation2'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_Nhpyrrole'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_SH'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_aldehyde'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_alkyl_carbamate'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_alkyl_halide'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_allylic_oxid'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_amide'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_amidine'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_aniline'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_aryl_methyl'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_azide'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_azo'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_barbitur'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_benzene'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_benzodiazepine'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_bicyclic'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_diazo'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_dihydropyridine'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_epoxide'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_ester'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_ether'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_furan'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_guanido'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_halogen'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_hdrzine'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_hdrzone'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_imidazole'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_imide'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_isocyan'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_isothiocyan'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_ketone'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_ketone_Topliss'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_lactam'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_lactone'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_methoxy'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_morpholine'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_nitrile'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_nitro'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_nitro_arom'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_nitro_arom_nonortho'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_nitroso'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_oxazole'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_oxime'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_para_hydroxylation'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_phenol'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_phenol_noOrthoHbond'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_phos_acid'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_phos_ester'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_piperdine'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_piperzine'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_priamide'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_prisulfonamd'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_pyridine'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_quatN'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_sulfide'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_sulfonamd'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_sulfone'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_term_acetylene'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_tetrazole'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_thiazole'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_thiocyan'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_thiophene'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_unbrch_alkane'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>,\n",
+       "    <span style=\"color: #008000; text-decoration-color: #008000\">'fr_urea'</span>: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span>\n",
+       "<span style=\"font-weight: bold\">}</span>\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[1m{\u001b[0m\n",
+       "    \u001b[32m'name'\u001b[0m: \u001b[32m'short_test'\u001b[0m,\n",
+       "    \u001b[32m'rdmol'\u001b[0m: \u001b[1m<\u001b[0m\u001b[1;95mrdkit.Chem.rdchem.Mol\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x7f10c5030820\u001b[0m\u001b[1m>\u001b[0m,\n",
+       "    \u001b[32m'coords'\u001b[0m: \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1m[\u001b[0m \u001b[1;36m0.9862\u001b[0m, \u001b[1;36m-0.257\u001b[0m , \u001b[1;36m-0.1905\u001b[0m\u001b[1m]\u001b[0m,\n",
+       "       \u001b[1m[\u001b[0m\u001b[1;36m-0.2052\u001b[0m,  \u001b[1;36m0.2236\u001b[0m,  \u001b[1;36m0.6206\u001b[0m\u001b[1m]\u001b[0m,\n",
+       "       \u001b[1m[\u001b[0m\u001b[1;36m-1.4201\u001b[0m,  \u001b[1;36m0.2357\u001b[0m, \u001b[1;36m-0.1847\u001b[0m\u001b[1m]\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m,\n",
+       "    \u001b[32m'smiles'\u001b[0m: \u001b[32m'CCN'\u001b[0m,\n",
+       "    \u001b[32m'config'\u001b[0m: \u001b[1;35mMoleculeGraphConfig\u001b[0m\u001b[1m(\u001b[0m\u001b[33mverbose\u001b[0m=\u001b[3;91mFalse\u001b[0m, \u001b[33madd_hs\u001b[0m=\u001b[3;91mFalse\u001b[0m, \u001b[33mgenerate_conformer\u001b[0m=\u001b[3;91mFalse\u001b[0m, \n",
+       "\u001b[33medge_construction_functions\u001b[0m=\u001b[1m[\u001b[0m\u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m add_fully_connected_edges at \u001b[0m\u001b[1;36m0x7f10c593f9d0\u001b[0m\u001b[1m>\u001b[0m, \n",
+       "\u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m add_k_nn_edges at \u001b[0m\u001b[1;36m0x7f10c593fa60\u001b[0m\u001b[1m>\u001b[0m, \u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m add_distance_threshold at \u001b[0m\n",
+       "\u001b[1;36m0x7f10c593f940\u001b[0m\u001b[1m>\u001b[0m, \u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m add_atom_bonds at \u001b[0m\u001b[1;36m0x7f10c593f550\u001b[0m\u001b[1m>\u001b[0m\u001b[1m]\u001b[0m, \n",
+       "\u001b[33mnode_metadata_functions\u001b[0m=\u001b[1m[\u001b[0m\u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m atom_type_one_hot at \u001b[0m\u001b[1;36m0x7f10c56e1f70\u001b[0m\u001b[1m>\u001b[0m\u001b[1m]\u001b[0m, \n",
+       "\u001b[33medge_metadata_functions\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mgraph_metadata_functions\u001b[0m=\u001b[1m[\u001b[0m\u001b[1m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m mol_descriptors at \u001b[0m\n",
+       "\u001b[1;36m0x7f10c5945280\u001b[0m\u001b[1m>\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m,\n",
+       "    \u001b[32m'MaxEStateIndex'\u001b[0m: \u001b[1;36m4.847222222222222\u001b[0m,\n",
+       "    \u001b[32m'MinEStateIndex'\u001b[0m: \u001b[1;36m0.75\u001b[0m,\n",
+       "    \u001b[32m'MaxAbsEStateIndex'\u001b[0m: \u001b[1;36m4.847222222222222\u001b[0m,\n",
+       "    \u001b[32m'MinAbsEStateIndex'\u001b[0m: \u001b[1;36m0.75\u001b[0m,\n",
+       "    \u001b[32m'qed'\u001b[0m: \u001b[1;36m0.40623709538988323\u001b[0m,\n",
+       "    \u001b[32m'MolWt'\u001b[0m: \u001b[1;36m45.084999999999994\u001b[0m,\n",
+       "    \u001b[32m'HeavyAtomMolWt'\u001b[0m: \u001b[1;36m38.028999999999996\u001b[0m,\n",
+       "    \u001b[32m'ExactMolWt'\u001b[0m: \u001b[1;36m45.057849223999995\u001b[0m,\n",
+       "    \u001b[32m'NumValenceElectrons'\u001b[0m: \u001b[1;36m20\u001b[0m,\n",
+       "    \u001b[32m'NumRadicalElectrons'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'MaxPartialCharge'\u001b[0m: \u001b[1;36m-0.010576265829206462\u001b[0m,\n",
+       "    \u001b[32m'MinPartialCharge'\u001b[0m: \u001b[1;36m-0.3307484184390755\u001b[0m,\n",
+       "    \u001b[32m'MaxAbsPartialCharge'\u001b[0m: \u001b[1;36m0.3307484184390755\u001b[0m,\n",
+       "    \u001b[32m'MinAbsPartialCharge'\u001b[0m: \u001b[1;36m0.010576265829206462\u001b[0m,\n",
+       "    \u001b[32m'FpDensityMorgan1'\u001b[0m: \u001b[1;36m2.0\u001b[0m,\n",
+       "    \u001b[32m'FpDensityMorgan2'\u001b[0m: \u001b[1;36m2.0\u001b[0m,\n",
+       "    \u001b[32m'FpDensityMorgan3'\u001b[0m: \u001b[1;36m2.0\u001b[0m,\n",
+       "    \u001b[32m'BalabanJ'\u001b[0m: \u001b[1;36m1.6329931618554523\u001b[0m,\n",
+       "    \u001b[32m'BertzCT'\u001b[0m: \u001b[1;36m2.7548875021634682\u001b[0m,\n",
+       "    \u001b[32m'Chi0'\u001b[0m: \u001b[1;36m2.7071067811865475\u001b[0m,\n",
+       "    \u001b[32m'Chi0n'\u001b[0m: \u001b[1;36m2.284457050376173\u001b[0m,\n",
+       "    \u001b[32m'Chi0v'\u001b[0m: \u001b[1;36m2.284457050376173\u001b[0m,\n",
+       "    \u001b[32m'Chi1'\u001b[0m: \u001b[1;36m1.4142135623730951\u001b[0m,\n",
+       "    \u001b[32m'Chi1n'\u001b[0m: \u001b[1;36m1.1153550716504106\u001b[0m,\n",
+       "    \u001b[32m'Chi1v'\u001b[0m: \u001b[1;36m1.1153550716504106\u001b[0m,\n",
+       "    \u001b[32m'Chi2n'\u001b[0m: \u001b[1;36m0.408248290463863\u001b[0m,\n",
+       "    \u001b[32m'Chi2v'\u001b[0m: \u001b[1;36m0.408248290463863\u001b[0m,\n",
+       "    \u001b[32m'Chi3n'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'Chi3v'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'Chi4n'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'Chi4v'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'HallKierAlpha'\u001b[0m: \u001b[1;36m-0.04\u001b[0m,\n",
+       "    \u001b[32m'Ipc'\u001b[0m: \u001b[1;36m2.7548875021634682\u001b[0m,\n",
+       "    \u001b[32m'Kappa1'\u001b[0m: \u001b[1;36m2.9600000000000004\u001b[0m,\n",
+       "    \u001b[32m'Kappa2'\u001b[0m: \u001b[1;36m1.96\u001b[0m,\n",
+       "    \u001b[32m'Kappa3'\u001b[0m: \u001b[1;36m1.9600000000000033\u001b[0m,\n",
+       "    \u001b[32m'LabuteASA'\u001b[0m: \u001b[1;36m20.444083839238875\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA1'\u001b[0m: \u001b[1;36m5.733667477162185\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA10'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA11'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA12'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA13'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA14'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA2'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA3'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA4'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA5'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA6'\u001b[0m: \u001b[1;36m6.923737199690624\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA7'\u001b[0m: \u001b[1;36m6.544756405912575\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA8'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'PEOE_VSA9'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SMR_VSA1'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SMR_VSA10'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SMR_VSA2'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SMR_VSA3'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SMR_VSA4'\u001b[0m: \u001b[1;36m5.733667477162185\u001b[0m,\n",
+       "    \u001b[32m'SMR_VSA5'\u001b[0m: \u001b[1;36m6.923737199690624\u001b[0m,\n",
+       "    \u001b[32m'SMR_VSA6'\u001b[0m: \u001b[1;36m6.544756405912575\u001b[0m,\n",
+       "    \u001b[32m'SMR_VSA7'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SMR_VSA8'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SMR_VSA9'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SlogP_VSA1'\u001b[0m: \u001b[1;36m5.733667477162185\u001b[0m,\n",
+       "    \u001b[32m'SlogP_VSA10'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SlogP_VSA11'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SlogP_VSA12'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SlogP_VSA2'\u001b[0m: \u001b[1;36m6.544756405912575\u001b[0m,\n",
+       "    \u001b[32m'SlogP_VSA3'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SlogP_VSA4'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SlogP_VSA5'\u001b[0m: \u001b[1;36m6.923737199690624\u001b[0m,\n",
+       "    \u001b[32m'SlogP_VSA6'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SlogP_VSA7'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SlogP_VSA8'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'SlogP_VSA9'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'TPSA'\u001b[0m: \u001b[1;36m26.02\u001b[0m,\n",
+       "    \u001b[32m'EState_VSA1'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'EState_VSA10'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'EState_VSA11'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'EState_VSA2'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'EState_VSA3'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'EState_VSA4'\u001b[0m: \u001b[1;36m6.544756405912575\u001b[0m,\n",
+       "    \u001b[32m'EState_VSA5'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'EState_VSA6'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'EState_VSA7'\u001b[0m: \u001b[1;36m6.923737199690624\u001b[0m,\n",
+       "    \u001b[32m'EState_VSA8'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'EState_VSA9'\u001b[0m: \u001b[1;36m5.733667477162185\u001b[0m,\n",
+       "    \u001b[32m'VSA_EState1'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'VSA_EState10'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'VSA_EState2'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'VSA_EState3'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'VSA_EState4'\u001b[0m: \u001b[1;36m4.847222222222222\u001b[0m,\n",
+       "    \u001b[32m'VSA_EState5'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'VSA_EState6'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'VSA_EState7'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'VSA_EState8'\u001b[0m: \u001b[1;36m2.6527777777777777\u001b[0m,\n",
+       "    \u001b[32m'VSA_EState9'\u001b[0m: \u001b[1;36m0.0\u001b[0m,\n",
+       "    \u001b[32m'FractionCSP3'\u001b[0m: \u001b[1;36m1.0\u001b[0m,\n",
+       "    \u001b[32m'HeavyAtomCount'\u001b[0m: \u001b[1;36m3\u001b[0m,\n",
+       "    \u001b[32m'NHOHCount'\u001b[0m: \u001b[1;36m2\u001b[0m,\n",
+       "    \u001b[32m'NOCount'\u001b[0m: \u001b[1;36m1\u001b[0m,\n",
+       "    \u001b[32m'NumAliphaticCarbocycles'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'NumAliphaticHeterocycles'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'NumAliphaticRings'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'NumAromaticCarbocycles'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'NumAromaticHeterocycles'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'NumAromaticRings'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'NumHAcceptors'\u001b[0m: \u001b[1;36m1\u001b[0m,\n",
+       "    \u001b[32m'NumHDonors'\u001b[0m: \u001b[1;36m1\u001b[0m,\n",
+       "    \u001b[32m'NumHeteroatoms'\u001b[0m: \u001b[1;36m1\u001b[0m,\n",
+       "    \u001b[32m'NumRotatableBonds'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'NumSaturatedCarbocycles'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'NumSaturatedHeterocycles'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'NumSaturatedRings'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'RingCount'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'MolLogP'\u001b[0m: \u001b[1;36m-0.03499999999999981\u001b[0m,\n",
+       "    \u001b[32m'MolMR'\u001b[0m: \u001b[1;36m14.728400000000002\u001b[0m,\n",
+       "    \u001b[32m'fr_Al_COO'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_Al_OH'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_Al_OH_noTert'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_ArN'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_Ar_COO'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_Ar_N'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_Ar_NH'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_Ar_OH'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_COO'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_COO2'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_C_O'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_C_O_noCOO'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_C_S'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_HOCCN'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_Imine'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_NH0'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_NH1'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_NH2'\u001b[0m: \u001b[1;36m1\u001b[0m,\n",
+       "    \u001b[32m'fr_N_O'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_Ndealkylation1'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_Ndealkylation2'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_Nhpyrrole'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_SH'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_aldehyde'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_alkyl_carbamate'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_alkyl_halide'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_allylic_oxid'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_amide'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_amidine'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_aniline'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_aryl_methyl'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_azide'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_azo'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_barbitur'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_benzene'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_benzodiazepine'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_bicyclic'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_diazo'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_dihydropyridine'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_epoxide'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_ester'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_ether'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_furan'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_guanido'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_halogen'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_hdrzine'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_hdrzone'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_imidazole'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_imide'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_isocyan'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_isothiocyan'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_ketone'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_ketone_Topliss'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_lactam'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_lactone'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_methoxy'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_morpholine'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_nitrile'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_nitro'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_nitro_arom'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_nitro_arom_nonortho'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_nitroso'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_oxazole'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_oxime'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_para_hydroxylation'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_phenol'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_phenol_noOrthoHbond'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_phos_acid'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_phos_ester'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_piperdine'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_piperzine'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_priamide'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_prisulfonamd'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_pyridine'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_quatN'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_sulfide'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_sulfonamd'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_sulfone'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_term_acetylene'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_tetrazole'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_thiazole'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_thiocyan'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_thiophene'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_unbrch_alkane'\u001b[0m: \u001b[1;36m0\u001b[0m,\n",
+       "    \u001b[32m'fr_urea'\u001b[0m: \u001b[1;36m0\u001b[0m\n",
+       "\u001b[1m}\u001b[0m\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
     }
    ],
    "source": [
@@ -3240,18 +4543,25 @@
     "        gm.mol_descriptors\n",
     "    ]\n",
     ")\n",
-    "graph = gm.construct_graph(mol2_path=MOL2_PATH, config=config)\n",
+    "graph = gm.construct_graph(path=\"../tests/molecule/test_data/short_test.mol2\", config=config)\n",
     "\n",
     "print(graph.graph)"
    ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
   }
  ],
  "metadata": {
   "interpreter": {
-   "hash": "0ab7f988027852efc1ebacd06db3f130eb65d2a20cb6a366311359132c20a952"
+   "hash": "18b92dcb3aeecaafcda3e696c227fe0e653d0ebba9b1df5f8e7485b6c09cf261"
   },
   "kernelspec": {
-   "display_name": "Python 3.8.13 ('graphein')",
+   "display_name": "Python 3.8.10 ('graphein-dev-test')",
    "language": "python",
    "name": "python3"
   },
@@ -3265,7 +4575,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.8.12"
+   "version": "3.8.10"
   },
   "orig_nbformat": 4
  },


Test patch:
diff --git a/tests/molecule/test_graphs.py b/tests/molecule/test_graphs.py
index f978f6b0..a7701bab 100644
--- a/tests/molecule/test_graphs.py
+++ b/tests/molecule/test_graphs.py
@@ -31,7 +31,7 @@
 
 def test_generate_graph_sdf():
     """Tests graph construction from an SDF file."""
-    g = construct_graph(config=config, sdf_path=LONG_SDF)
+    g = construct_graph(config=config, path=LONG_SDF)
 
     assert isinstance(g, nx.Graph), f"{g} is not a graph"
 
@@ -85,7 +85,7 @@ def test_generate_graph_smiles():
 
 def test_generate_graph_mol2():
     """Tests graph construction from a Mol2 file."""
-    g = construct_graph(config=config, mol2_path=SHORT_MOL2)
+    g = construct_graph(config=config, path=SHORT_MOL2)
     assert g.graph["name"] == "short_test"
 
     # Check nodes
@@ -114,7 +114,7 @@ def test_generate_graph_mol2():
 
 def test_generate_graph_pdb():
     """Tests graph construction from a PDB file."""
-    g = construct_graph(config=config, pdb_path=LONG_PDB)
+    g = construct_graph(config=config, path=LONG_PDB)
     assert g.graph["name"] == "long_test"
 
     # Check nodes