Repository: Steinbeck-Lab/ChemIcal-DatasEt-comparatoR (language: python)

Issue:
fix: update broken links README.md



Discussion / hints:

Fix patch:
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index bd33e9a..56d8891 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -1,6 +1,6 @@
 # This is a basic workflow to help you get started with Actions
 
-name: CI and pytest
+name: Build and test
 
 # Controls when the workflow will run
 on:
@@ -8,8 +8,9 @@ on:
   push:
     branches: [ main ]
   pull_request:
-    branches: [ main ]
-
+    branches:
+        - development
+        - main
 
 # A workflow run is made up of one or more jobs that can run sequentially or in parallel
 jobs:
diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml
new file mode 100644
index 0000000..5ecf07d
--- /dev/null
+++ b/.github/workflows/release-please.yml
@@ -0,0 +1,20 @@
+
+# This workflow will perform the following actions when the code is pushed to the main branch.
+# - Trigger release-please action to create a release which needs a test to pass first.
+
+name: release-please-action
+
+on:
+  push:
+    branches:
+      - main
+jobs:
+  release-please:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: google-github-actions/release-please-action@v3
+        with:
+          release-type: python
+          package-name: release-please-action
+          token: ${{ secrets.GITHUB_TOKEN }}
+          start-version: '1.0.0'
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000..c573747
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,31 @@
+repos:
+-   repo: https://github.com/pre-commit/pre-commit-hooks
+    rev: v4.5.0
+    hooks:
+    -   id: trailing-whitespace
+    -   id: end-of-file-fixer
+    -   id: check-yaml
+    -   id: debug-statements
+    -   id: requirements-txt-fixer
+-   repo: https://github.com/DanielNoord/pydocstringformatter
+    rev: v0.7.3
+    hooks:
+    -   id: pydocstringformatter
+-   repo: https://github.com/psf/black
+    rev: 22.6.0
+    hooks:
+    -   id: black
+-   repo: https://github.com/asottile/reorder-python-imports
+    rev: v3.12.0
+    hooks:
+    -   id: reorder-python-imports
+        exclude: ^(pre_commit/resources/|testing/resources/python3_hooks_repo/)
+-   repo: https://github.com/PyCQA/flake8
+    rev: 7.0.0
+    hooks:
+    -   id: flake8
+        args: [
+            "--per-file-ignores=__init__.py:F401",
+            "--ignore=E226,E302,E41,E501,W504,F821,E203,W503,E712,F401,E721",
+            ".",
+        ]
diff --git a/.readthedocs.yml b/.readthedocs.yml
index d6c189a..70169a0 100644
--- a/.readthedocs.yml
+++ b/.readthedocs.yml
@@ -4,6 +4,12 @@
 # Required
 version: 2
 
+# Set the OS, Python version and other tools you might need
+build:
+  os: ubuntu-22.04
+  tools:
+    python: "3.10"
+
 # Build documentation in the docs/ directory with Sphinx
 sphinx:
   configuration: docs/conf.py
@@ -14,6 +20,5 @@ formats:
 
 # Optionally set the version of Python and requirements required to build your docs
 python:
-  version: "3.8"
   install:
     - requirements: docs/requirements.txt
diff --git a/CIDER/__init__.py b/CIDER/__init__.py
index 6018f66..5629d6c 100644
--- a/CIDER/__init__.py
+++ b/CIDER/__init__.py
@@ -1,5 +1,6 @@
 """
 CIDER Python Package.
+
 ============================
 ChemIcal DatasEt comparatoR (CIDER) is a Python package and ready-to-use Jupyter Notebook workflow
 which primarily utilizes RDKit to compare two or more chemical structure datasets (SD files) in different aspects,
diff --git a/CIDER/cider.py b/CIDER/cider.py
index 4ddbd15..521c02c 100644
--- a/CIDER/cider.py
+++ b/CIDER/cider.py
@@ -1,10 +1,9 @@
 """
-MIT License
+MIT License.
 
 Copyright (c) 2022 Hannah Busch, Jonas Schaub, Otto Brinkhaus, Kohulan Rajan,
 and Christoph Steinbeck
 
-
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
@@ -23,46 +22,45 @@
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 """
-
 # Section: Import Libraries
-
 import io
 import logging
 import os
 import sys
+from datetime import date
+from datetime import datetime
+from itertools import count
+from typing import Dict
+from typing import List
+from typing import Tuple
+
+import chemplot as cp
+import matplotlib
+import matplotlib.pyplot as plt
+import numpy as np
 import pandas as pd
+import PIL
+from bokeh.plotting import output_file
+from bokeh.plotting import save
+from fpdf import FPDF
+from fpdf import XPos
+from fpdf import YPos
+from fpdf.enums import Align
+from matplotlib_venn import venn2
+from matplotlib_venn import venn3
 from pandas.errors import ParserError
-import numpy as np
-
+from PIL import Image
 from rdkit import Chem
-from rdkit.Chem import (
-    AllChem,
-    AtomValenceException,
-    Descriptors,
-    Draw,
-    Lipinski,
-    KekulizeException,
-    rdchem,
-)
+from rdkit.Chem import AllChem
+from rdkit.Chem import AtomValenceException
+from rdkit.Chem import Descriptors
+from rdkit.Chem import Draw
+from rdkit.Chem import KekulizeException
+from rdkit.Chem import Lipinski
+from rdkit.Chem import rdchem
 from rdkit.Chem.Draw import IPythonConsole
 from rdkit.Chem.Scaffolds import MurckoScaffold
 
-import matplotlib.pyplot as plt
-from matplotlib_venn import venn2, venn3
-import matplotlib
-
-import chemplot as cp
-from bokeh.plotting import output_file, save
-
-from typing import List, Tuple, Dict
-from itertools import count
-import PIL
-from PIL import Image
-
-from fpdf import FPDF, YPos, XPos
-from fpdf.enums import Align
-from datetime import date, datetime
-
 logger = logging.getLogger("CIDER")  # needs to be here
 
 # Section: Constructor
@@ -70,7 +68,7 @@
 
 class ChemicalDatasetComparator:
     """
-    Wrapper class around all Cider functionalities
+    Wrapper class around all Cider functionalities.
 
     ChemIcal DatasEt comparatoR (CIDER) is a Python package and ready-to-use
     Jupyter Notebook workflow which primarily utilizes RDKit to compare two or
@@ -81,7 +79,8 @@ class ChemicalDatasetComparator:
 
     def __init__(self):
         """
-        The class variables of CIDER function as keys for the dictionary in
+        The class variables of CIDER function as keys for the dictionary in.
+
         which all calculated and plotted data will be stored. The keys will be
         generated when the CIDER method is executed.
         """
@@ -130,6 +129,7 @@ def __init__(self):
     def exception_handler_IP(self, exc_type, exc_value, exc_tb, tb_offset=None):
         """
         This function is a callable exception handler when working in IPython.
+
         It logs the exception including the traceback into the log file.
 
         Args:
@@ -144,7 +144,8 @@ def exception_handler_IP(self, exc_type, exc_value, exc_tb, tb_offset=None):
 
     def exception_handler(exc_type, exc_value, exc_tb):
         """
-        This function is a callable exception handler when NOT working in
+        This function is a callable exception handler when NOT working in.
+
         IPython. It logs the exception including the traceback into the log
         file.
 
@@ -177,7 +178,8 @@ def exception_handler(exc_type, exc_value, exc_tb):
 
     def _check_invalid_mols_in_SDF(self, all_dicts: dict) -> None:
         """
-        This function checks if there are invalid entries in the SDFiles/SMI
+        This function checks if there are invalid entries in the SDFiles/SMI.
+
         files that can cause errors in the subsequent functions. Those invalid
         entries will be removed form the rdkit_mol_objects. The entry will
         remain in the original SDFile/SMI File as it is. Header lines from the
@@ -221,7 +223,8 @@ def _check_invalid_mols_in_SDF(self, all_dicts: dict) -> None:
 
     def import_as_data_dict(self, path_to_data: str) -> Dict:
         """
-        This function creates a dictionary with the names of the imported file
+        This function creates a dictionary with the names of the imported file.
+
         as keys. The values of each of these keys is a subdictionary. The first
         entry of every subdictionary is self.import_keyname (class variable,
         can be changed) as key and rdkit_mol_objects (either a rdkit.Chem.
@@ -268,7 +271,8 @@ def import_as_data_dict(self, path_to_data: str) -> Dict:
 
     def import_smi_as_data_dict(self, path_to_data: str):
         """
-        This function creates a dictionary with the names of the imported file
+        This function creates a dictionary with the names of the imported file.
+
         as keys. The values of each of these keys is a subdictionary. The first
         entry of every subdictionary is self.import_keyname (class variable,
         can be changed) as key and rdkit_mol Objects (list of rdkit.Chem.rdchem.
@@ -351,8 +355,8 @@ def import_smi_as_data_dict(self, path_to_data: str):
     def _save_to_figure_dict(
         self, all_dicts: dict, keyname: str, fig, data_type: str = "png"
     ) -> None:
-        """
-        This function stores the images and figures created by CIDER in the
+        """This function stores the images and figures created by CIDER in the.
+
         'figure' (self.figure_dict_keyname) subdictionary and exports them to
         the output folder with a given data type. When the name for a figure is
         already used there will be a increasing number added. This only works
@@ -398,7 +402,8 @@ def _save_to_figure_dict(
 
     def get_number_of_molecules(self, all_dicts: dict) -> None:
         """
-        This function updates the subdictionaries in the given dictionary
+        This function updates the subdictionaries in the given dictionary.
+
         (created from import_as_data_dict function) with the number of
         molecules in every dataset as new key-value pair. The key is the class
         variable 'cider.dataset_length_keyname'.
@@ -431,7 +436,8 @@ def draw_molecules(
         fontsize_subtitle: int = 20,
     ) -> matplotlib.figure.Figure:
         """
-        This function creates an grid image of the first molecules of each
+        This function creates an grid image of the first molecules of each.
+
         dataset and exports the image to an output folder.
 
         Args:
@@ -503,7 +509,8 @@ def draw_molecules(
 
     def get_database_id(self, all_dicts: dict, id_name: str) -> None:
         """
-        This function updates subdictionaries of a given dictionary with a list
+        This function updates subdictionaries of a given dictionary with a list.
+
         of database IDs for the single molecules as new key-value pairs.
         Depending on which database the molecules are coming from, the key as a
         class variable can be changed accordingly.
@@ -543,7 +550,8 @@ def _get_identifier_list(
         self, moleculeset, id_type: str = "inchi"
     ) -> Tuple[list, count]:
         """
-        This function returns a list of InChI, InChIKey or canonical SMILES
+        This function returns a list of InChI, InChIKey or canonical SMILES.
+
         strings for all molecules in the given rdkit_mol Objects (rdkit.Chem.
         rdmol.Mol or rdkit.Chem.rdmolfile.SDMolSupplier). (private method)
 
@@ -582,7 +590,8 @@ def _get_identifier_list(
 
     def get_identifier_list_key(self, all_dicts: dict, id_type: str = "inchi") -> None:
         """
-        This function updates the subdictionaries in the given dictionary
+        This function updates the subdictionaries in the given dictionary.
+
         (created with the import_as_data_dict function) with a list of
         identifiers (InChI, InChIKey, canonical SMILES strings) as a new
         key-value pair using  _get_identifier_list on the rdkit_mol Objects
@@ -615,7 +624,8 @@ def get_identifier_list_key(self, all_dicts: dict, id_type: str = "inchi") -> No
 
     def get_duplicate_key(self, all_dicts: dict) -> None:
         """
-        This function updates the subdictionaries in the given dictionary with
+        This function updates the subdictionaries in the given dictionary with.
+
         the number of duplicates in the identifier list as a new key-value-Pair
         (key: self.duplicates_keyname), a list of the duplicated identifier
         (key: self.duplicates_id_keyname) and a list of the indices of the
@@ -674,7 +684,8 @@ def get_duplicate_key(self, all_dicts: dict) -> None:
 
     def get_shared_molecules_key(self, all_dicts: dict) -> None:
         """
-        This function updates the subdictionaries in the given dictionary
+        This function updates the subdictionaries in the given dictionary.
+
         (created with the import_as_data_dict function) with the number of
         molecules that can be found in all of the given datasets (key:
         self.shared_mols_keyname) and an identifier list of these molecules
@@ -738,7 +749,8 @@ def visualize_intersection(
         self, all_dicts: dict, data_type: str = "png"
     ) -> matplotlib.figure.Figure:
         """
-        This function returns a Venn diagram of the intersection between the
+        This function returns a Venn diagram of the intersection between the.
+
         molecules in the subdictionaries of the given dictionary. Every
         subdictionary is represented as a circle and the overlaps between the
         circles indicate the molecules present in more than one subdictionary.
@@ -796,7 +808,8 @@ def _get_descriptor_list(
         descriptor: callable,
     ) -> List:
         """
-        This function returns a list of descriptor values for all molecules in
+        This function returns a list of descriptor values for all molecules in.
+
         the given rdkit_mol objects (rdkit.Chem.rdmol.Mol or rdkit.Chem.
         rdmolfiles.SDMolSupplier) and a callable descriptor (e.g Descriptors.
         MolWt or rdMolDescriptors.CalcExactMolWt). (private method)
@@ -822,7 +835,8 @@ def get_descriptor_list_key(
         self, all_dicts: dict, descriptor: callable, descriptor_list_keyname: str
     ) -> None:
         """
-        This function updates the subdictionaries in the given dictionary with
+        This function updates the subdictionaries in the given dictionary with.
+
         a list of descriptor values as a new key-value pair using
         _get_descriptor_list on the rdkit_mol Objects (rdkit.Chem.rdmol.Mol or
         rdkit.Chem.rdmolfiles.SDMolSupplier) in the subdictionaries.
@@ -849,7 +863,8 @@ def _get_discrete_descriptor_counts(
         self, all_dicts: dict, descriptor_list_keyname: str
     ) -> None:
         """
-        This function updates the subdictionaries in the given dictionary with
+        This function updates the subdictionaries in the given dictionary with.
+
         the binned descriptor values for a given descriptor value list with
         discrete values (e.g. number of H-Bond donors or acceptors). (private
         method)
@@ -895,7 +910,8 @@ def _get_continuous_descriptor_counts(
         self, all_dicts: dict, descriptor_list_keyname: str, width_of_bins: float = 10.0
     ) -> None:
         """
-        This function updates the subdictionaries in the given dictionary with
+        This function updates the subdictionaries in the given dictionary with.
+
         the binned descriptor values for a given descriptor value list with
         continuous values (e.g. molecular weight or logP values). The interval
         size of the bins can be chosen. (private method)
@@ -975,7 +991,8 @@ def _discrete_descriptor_plot(
         fontsize_title: int = 24,
     ) -> matplotlib.figure.Figure:
         """
-        This function returns a bar-plot for a discrete descriptor with was
+        This function returns a bar-plot for a discrete descriptor with was.
+
         previously binned.
         The plot is saved in an output folder as an image (data type can be
         chosen) and the data frame can also be saved as CSV file.
@@ -1063,7 +1080,8 @@ def _continuous_descriptor_plot(
         fontsize_title: int = 24,
     ) -> matplotlib.figure.Figure:
         """
-        This function returns bar-plot for a continuous descriptor which was
+        This function returns bar-plot for a continuous descriptor which was.
+
         previously binned.
         The plot is saved in an output folder as an image (data type can be
         chosen) and the data frame can also be saved as CSV file.
@@ -1152,7 +1170,8 @@ def descriptor_counts_and_plot(
         fontsize_title: int = 24,
     ) -> matplotlib.figure.Figure:
         """
-        This function updates the subdictionaries in the given dictionary with
+        This function updates the subdictionaries in the given dictionary with.
+
         the binned descriptor values for a given descriptor value list. The
         values can either be continuous (binning with
         _get_continuous_descriptor_counts and plotted with
@@ -1203,7 +1222,7 @@ def descriptor_counts_and_plot(
                 + str(descriptor_list_keyname)
                 + ") is needed for plotting. Please run 'get_descriptor_list_key'!"
             )
-        elif type(all_dicts[first_dict][descriptor_list_keyname][0]) == int:
+        elif isinstance(all_dicts[first_dict][descriptor_list_keyname][0], int):
             self._get_discrete_descriptor_counts(all_dicts, descriptor_list_keyname)
             fig = self._discrete_descriptor_plot(
                 all_dicts,
@@ -1217,10 +1236,9 @@ def descriptor_counts_and_plot(
                 fontsize_xlabel,
                 fontsize_title,
             )
-        elif (
-            type(all_dicts[first_dict][descriptor_list_keyname][0]) == float
-            or type(all_dicts[first_dict][descriptor_list_keyname][0]) == np.float64
-        ):
+        elif isinstance(
+            all_dicts[first_dict][descriptor_list_keyname][0], float
+        ) or isinstance(all_dicts[first_dict][descriptor_list_keyname][0], np.float64):
             self._get_continuous_descriptor_counts(
                 all_dicts, descriptor_list_keyname, width_of_bins
             )
@@ -1246,7 +1264,8 @@ def descriptor_counts_and_plot(
 
     def _test_for_lipinski(self, moleculeset) -> List[int]:
         """
-        This function returns a list with the number of Lipinski Rules broken
+        This function returns a list with the number of Lipinski Rules broken.
+
         for every molecule in the given molecule set.
 
         Args:
@@ -1275,7 +1294,8 @@ def _test_for_lipinski(self, moleculeset) -> List[int]:
 
     def get_lipinski_key(self, all_dicts: dict) -> None:
         """
-        This function updates the subdictionaries in the given dictionary with
+        This function updates the subdictionaries in the given dictionary with.
+
         the list of the number of broken Lipinski Rules for every molecule
         (lipinski_list_keyname) and a summary of the broken rules
         (lipinski_summary_keyname) using _test_for_lipinski.
@@ -1319,7 +1339,8 @@ def lipinski_plot(
         fontsize_title: int = 24,
     ) -> matplotlib.figure.Figure:
         """
-        This function returns a bar plot for the number of molecules in every
+        This function returns a bar plot for the number of molecules in every.
+
         subdictionary breaking 0 to 4 Lipinski rules using the
         'lipinski_summary' key in the given dictionary. The plot is saved in an
         output folder (data type can be chosen) and the created data frame can
@@ -1413,7 +1434,8 @@ def _get_scaffold(
         normalize: bool = True,
     ) -> Tuple[PIL.PngImagePlugin.PngImageFile, list, pd.core.series.Series]:
         """
-        This function creates a grid images of a chosen number of scaffolds/
+        This function creates a grid images of a chosen number of scaffolds/.
+
         frameworks/graph framework for the molecules in a given rdkit_mol
         Object (rdkit.Chem.rdmol.Mol or rdkit.Chem.rdmolfiles.SDMolSupplier).
         The scaffolds/frameworks/graph framework are sorted by their frequency.
@@ -1534,7 +1556,8 @@ def draw_most_frequent_scaffolds(
         fontsize_subtitle: int = 20,
     ) -> matplotlib.figure.Figure:
         """
-        This function creates a grid images of a chosen number of scaffolds/
+        This function creates a grid images of a chosen number of scaffolds/.
+
         frameworks/graph framework for every subdictionary in the given
         dictionary and shows them together. The scaffolds/frameworks/graph
         framework in each gird image are sorted by their frequency. The
@@ -1616,7 +1639,8 @@ def chemical_space_visualization(
         interactive: bool = True,
     ):
         """
-        This function returns a 2D visualization of the chemical space of the
+        This function returns a 2D visualization of the chemical space of the.
+
         molecules in all datasets using the chemplot module.
         On basis of the calculated identifier (self.identifier_keyname) for
         every molecule a Extended Connectivity Fingerprint (ECFP) will be
@@ -1730,7 +1754,8 @@ def chemical_space_visualization(
 
     def export_single_dict_values(self, all_dicts: dict) -> None:
         """
-        This function exports only the (not-binned) descriptor values for each
+        This function exports only the (not-binned) descriptor values for each.
+
         dictionary according to the imported SDFile as a single csv file in the
         output folder.
 
@@ -1746,7 +1771,7 @@ def export_single_dict_values(self, all_dicts: dict) -> None:
             for key in new_dict.copy():
                 if key == self.import_keyname or self.duplicates_index_keyname:
                     new_dict.pop(key)
-                elif type(new_dict[key]) == list:
+                elif isinstance(new_dict[key], list):
                     counter += 1
                 else:
                     new_dict.pop(key)
@@ -1760,7 +1785,8 @@ def export_single_dict_values(self, all_dicts: dict) -> None:
 
     def export_figure_report(self, all_dicts: dict) -> None:
         """
-        This function exports a pdf including some general information and all
+        This function exports a pdf including some general information and all.
+
         created figures form the figures subdictionary.
 
         Args:
diff --git a/CITATION.cff b/CITATION.cff
index 2ac6b1c..d22ffcc 100644
--- a/CITATION.cff
+++ b/CITATION.cff
@@ -15,7 +15,7 @@ authors:
     orcid: "https://orcid.org/0000-0003-1066-7792"
   - family-names: "Steinbeck"
     given-names: "Christoph"
-    orcid: "https://orcid.org/0000-0001-6966-0814"  
+    orcid: "https://orcid.org/0000-0001-6966-0814"
 title: "ChemIcal DatasEt comparatoR CIDER"
 version: 0.0.1-dev
 doi: 10.5281/??
diff --git a/Python_Requirements.txt b/Python_Requirements.txt
deleted file mode 100644
index c5b0de4..0000000
--- a/Python_Requirements.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-rdkit-pypi
-matplotlib==3.5.1
-seaborn==0.11.2
-chemplot==1.2.0
-matplotlib_venn==0.11.6
-FPDF2==2.6.0
-bokeh==2.4.3
-IPython
diff --git a/README.md b/README.md
index 9fb238d..3c971a5 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,17 @@
-# ChemIcal DatasEt comparatoR (CIDER)
+<p align="center"><a href="https://chemical-dataset-comparator.readthedocs.io/en/latest/" target="_blank"><img src="Cider_white.png" width="400" alt="CMS Logo"></a></p>
+
 [![License](https://img.shields.io/badge/License-MIT%202.0-blue.svg)](https://opensource.org/licenses/MIT)
-[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-blue.svg)](https://GitHub.com/hannbus/ChemIcal_DatasEt_compaRator/graphs/commit-activity)
-[![GitHub issues](https://img.shields.io/github/issues/hannbus/ChemIcal_DatasEt_compaRator.svg)](https://GitHub.com/hannbus/ChemIcal_DatasEt_compaRator/issues/)
-[![GitHub contributors](https://img.shields.io/github/contributors/hannbus/ChemIcal_DatasEt_compaRator.svg)](https://GitHub.com/hannbus/ChemIcal_DatasEt_compaRator/graphs/contributors/)
+[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-blue.svg)](https://GitHub.com/Steinbeck-Lab/ChemIcal-DatasEt-comparatoR/graphs/commit-activity)
+[![GitHub issues](https://img.shields.io/github/issues/Steinbeck-Lab/ChemIcal-DatasEt-comparatoR.svg)](https://GitHub.com/Steinbeck-Lab/ChemIcal-DatasEt-comparatoR/issues/)
+[![GitHub contributors](https://img.shields.io/github/contributors/Steinbeck-Lab/ChemIcal-DatasEt-comparatoR.svg)](https://GitHub.com/Steinbeck-Lab/ChemIcal_DatasEt_compaRator/graphs/contributors/)
+[![GitHub release](https://img.shields.io/github/release/Steinbeck-Lab/ChemIcal-DatasEt-comparatoR.svg)](https://github.com/Steinbeck-Lab/ChemIcal-DatasEt-comparatoR/releases/)
+[![RDKit badge](https://img.shields.io/badge/Powered%20by-RDKit-3838ff.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAFVBMVEXc3NwUFP8UPP9kZP+MjP+0tP////9ZXZotAAAAAXRSTlMAQObYZgAAAAFiS0dEBmFmuH0AAAAHdElNRQfmAwsPGi+MyC9RAAAAQElEQVQI12NgQABGQUEBMENISUkRLKBsbGwEEhIyBgJFsICLC0iIUdnExcUZwnANQWfApKCK4doRBsKtQFgKAQC5Ww1JEHSEkAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xMVQxNToyNjo0NyswMDowMDzr2J4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTFUMTU6MjY6NDcrMDA6MDBNtmAiAAAAAElFTkSuQmCC)](https://www.rdkit.org/)
+![Workflow](https://github.com/Steinbeck-Lab/ChemIcal-DatasEt-comparatoR/actions/workflows/main.yml/badge.svg)
 [![DOI](https://zenodo.org/badge/501949039.svg)](https://zenodo.org/badge/latestdoi/501949039)
 [![Documentation Status](https://readthedocs.org/projects/chemical-dataset-comparator/badge/?version=latest)](https://chemical-dataset-comparator.readthedocs.io/en/latest/?badge=latest)
-[![GitHub release](https://img.shields.io/github/release/hannbus/ChemIcal_DatasEt_compaRator.svg)](https://github.com/hannbus/ChemIcal_DatasEt_compaRator/releases/)
 [![PyPI version fury.io](https://badge.fury.io/py/cider-chem.svg)](https://pypi.python.org/pypi/cider-chem/)
 
-[![GitHub Logo](https://github.com/hannbus/ChemIcal_DatasEt_compaRator/blob/main/Cider_white.png?raw=true)](https://pypi.python.org/pypi/cider-chem/)
-
+# Overview of ChemIcal DatasEt comparatoR (CIDER) :globe_with_meridians:
 - ChemIcal DatasEt comparatoR (CIDER) is a Python package and ready-to-use Jupyter Notebook workflow which primarily utilizes RDKit to compare two or more chemical structure datasets (SD files) in different aspects, e.g. size, overlap, molecular descriptor distributions, chemical space clustering, etc., most of which can be visually inspected in the notebook.
 
 ## Usage
@@ -26,7 +28,7 @@ $ bash Miniconda3-latest-Linux-x86_64.sh
 ### Installation
 
 ```shell
-$ git clone https://github.com/hannbus/ChemIcal_DatasEt_compaRator.git
+$ git clone https://github.com/Steinbeck-Lab/ChemIcal_DatasEt_compaRator.git
 $ cd ChemIcal_DatasEt_compaRator
 $ conda create --name cider_chem python=3.10
 $ conda activate cider_chem
@@ -39,7 +41,7 @@ $ pip install .
 ### Alternative
 ```shell
 $ python -m pip install -U pip #Upgrade pip
-$ pip install git+https://github.com/hannbus/ChemIcal_DatasEt_compaRator.git
+$ pip install git+https://github.com/Steinbeck-Lab/ChemIcal_DatasEt_compaRator.git
 ```
 
 ### Install from PyPI
@@ -47,7 +49,7 @@ $ pip install git+https://github.com/hannbus/ChemIcal_DatasEt_compaRator.git
 $ pip install cider-chem
 ```
 
-### Basic usage: 
+### Basic usage:
 ```python
 from CIDER import ChemicalDatasetComparator
 cider = ChemicalDatasetComparator()
@@ -63,6 +65,10 @@ cider.get_number_of_molecules(testdict)
 ### Cite us
 - Busch, H., Schaub, J., Brinkhaus, H. O., Rajan, K., & Steinbeck, C. (2022). ChemIcal DatasEt comparatoR CIDER (Version 0.0.1-dev) [Computer software]. https://doi.org/10.5281/zenodo.6630494
 
-## More information about our research group
+## Maintained by :wrench:
+ChemIcal DatasEt comparatoR is developed and maintained by the [Steinbeck group](https://cheminf.uni-jena.de) at the [Friedrich Schiller University](https://www.uni-jena.de/en/) Jena, Germany.
+The code for this web application is released under the [MIT license](https://opensource.org/licenses/MIT). Copyright © CC-BY-SA 2024
+
+
 
 [![GitHub Logo](https://github.com/Kohulan/DECIMER-Image-to-SMILES/blob/master/assets/CheminfGit.png?raw=true)](https://cheminf.uni-jena.de)
diff --git a/Workflow/data/set_chlorbenzene-5.sdf b/Workflow/data/set_chlorbenzene-5.sdf
index cbe3cf8..d5d650a 100644
--- a/Workflow/data/set_chlorbenzene-5.sdf
+++ b/Workflow/data/set_chlorbenzene-5.sdf
@@ -1975,4 +1975,4 @@ C7H4ClNO2
 >  <FW>
 169.5652
 
-$$$$
\ No newline at end of file
+$$$$
diff --git a/Workflow/data/set_chlorbenzene.sdf b/Workflow/data/set_chlorbenzene.sdf
index 74f3fc6..67bf9e8 100644
--- a/Workflow/data/set_chlorbenzene.sdf
+++ b/Workflow/data/set_chlorbenzene.sdf
@@ -24,10 +24,10 @@ M  V30 7 2 2 7
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0009107
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1
 
 $$$$
@@ -59,10 +59,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0341270
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Cl)C=C1
 
 $$$$
@@ -96,10 +96,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0206286
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Cl)C(Cl)=C1
 
 $$$$
@@ -131,10 +131,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0284887
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1Cl
 
 $$$$
@@ -166,10 +166,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0080171
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(Cl)=C1
 
 $$$$
@@ -203,10 +203,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0401033
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -240,10 +240,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0231789
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(Cl)=C1O
 
 $$$$
@@ -275,10 +275,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0109649
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(O)=C1
 
 $$$$
@@ -310,10 +310,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0071171
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1O
 
 $$$$
@@ -347,10 +347,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0236901
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Cl)C(O)=C1
 
 $$$$
@@ -384,10 +384,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0060336
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(O)=C1Cl
 
 $$$$
@@ -421,10 +421,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0386646
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1Cl
 
 $$$$
@@ -456,10 +456,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0334769
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1
 
 $$$$
@@ -495,10 +495,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0161827
 
-> <SMILES> 
+> <SMILES>
 N#CC=1C(Cl)=CC=CC1Cl
 
 $$$$
@@ -532,10 +532,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0081205
 
-> <SMILES> 
+> <SMILES>
 FC1=CC(N)=CC=C1Cl
 
 $$$$
@@ -569,10 +569,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0331365
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC(O)=CC=C1O
 
 $$$$
@@ -606,10 +606,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0040093
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Cl)C(N)=C1
 
 $$$$
@@ -643,10 +643,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0079961
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(N)=C1Cl
 
 $$$$
@@ -680,10 +680,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0211688
 
-> <SMILES> 
+> <SMILES>
 FC1=CC(Cl)=CC=C1N
 
 $$$$
@@ -717,10 +717,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0042746
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=CC1Cl
 
 $$$$
@@ -754,10 +754,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0262942
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(Cl)C=C1N
 
 $$$$
@@ -791,10 +791,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0029750
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(Cl)=C1N
 
 $$$$
@@ -828,10 +828,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0048955
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(N)C(Cl)=C1
 
 $$$$
@@ -867,10 +867,10 @@ M  V30 10 2 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0001453
 
-> <SMILES> 
+> <SMILES>
 O=C([O-])C=1C=CC=C(Cl)C1
 
 $$$$
@@ -904,10 +904,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0309778
 
-> <SMILES> 
+> <SMILES>
 [S-]C1=CC=C(Cl)C=C1N
 
 $$$$
@@ -939,10 +939,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0066965
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(N)=C1
 
 $$$$
@@ -976,10 +976,10 @@ M  V30 9 2 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0001454
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=C(Cl)C1
 
 $$$$
@@ -1013,10 +1013,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0365419
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(Cl)C(N)=C1
 
 $$$$
@@ -1050,10 +1050,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0099468
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(N)C(Cl)=C1
 
 $$$$
@@ -1087,10 +1087,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0045325
 
-> <SMILES> 
+> <SMILES>
 FC=1C(Cl)=CC=CC1N
 
 $$$$
@@ -1124,10 +1124,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0038991
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(N)C=C1Cl
 
 $$$$
@@ -1161,10 +1161,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0257608
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=CC(Cl)=C1N
 
 $$$$
@@ -1200,10 +1200,10 @@ M  V30 10 1 3 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0066778
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(Cl)C(Cl)=C1
 
 $$$$
@@ -1241,10 +1241,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0175601
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C(Cl)C=C1Cl
 
 $$$$
@@ -1282,10 +1282,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0291002
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -1319,10 +1319,10 @@ M  V30 9 1 7 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0209531
 
-> <SMILES> 
+> <SMILES>
 [O-]C1=CC=C(Cl)C(=C1)C
 
 $$$$
@@ -1356,10 +1356,10 @@ M  V30 9 1 5 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0186814
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(C(Br)=C1)C
 
 $$$$
@@ -1397,10 +1397,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0037006
 
-> <SMILES> 
+> <SMILES>
 FC(F)(F)C=1C=CC=CC1Cl
 
 $$$$
@@ -1436,10 +1436,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0231069
 
-> <SMILES> 
+> <SMILES>
 N#CNC1=CC=C(Cl)C=C1
 
 $$$$
@@ -1471,10 +1471,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0335361
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1C
 
 $$$$
@@ -1510,10 +1510,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0083959
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C=1C=CC=CC1Cl
 
 $$$$
@@ -1549,10 +1549,10 @@ M  V30 10 2 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0206363
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C=1C=CC=C(Cl)C1
 
 $$$$
@@ -1589,10 +1589,10 @@ M  V30 11 1 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0193006
 
-> <SMILES> 
+> <SMILES>
 O=C1C=2C(Cl)=CC=CC2C1
 
 $$$$
@@ -1624,10 +1624,10 @@ M  V30 8 1 5 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0177290
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(C=C1)C
 
 $$$$
@@ -1665,10 +1665,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0047539
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC(Cl)=CC=C1O
 
 $$$$
@@ -1702,10 +1702,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0266846
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Br)C=C1C
 
 $$$$
@@ -1743,10 +1743,10 @@ M  V30 11 1 5 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0062089
 
-> <SMILES> 
+> <SMILES>
 FC(F)(F)C1=CC=C(Cl)C=C1
 
 $$$$
@@ -1780,10 +1780,10 @@ M  V30 9 1 7 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0064949
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Br)C(=C1)C
 
 $$$$
@@ -1822,10 +1822,10 @@ M  V30 12 2 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0052683
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=2N=NN(O)C2C1
 
 $$$$
@@ -1864,10 +1864,10 @@ M  V30 12 2 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0199487
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=2OC(O)=NC2C1
 
 $$$$
@@ -1901,10 +1901,10 @@ M  V30 9 1 5 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0253916
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(C=C1Cl)C
 
 $$$$
@@ -1940,10 +1940,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0147578
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C(Cl)C=C1
 
 $$$$
@@ -1981,10 +1981,10 @@ M  V30 11 2 5 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0310438
 
-> <SMILES> 
+> <SMILES>
 FC(F)(F)C=1C=CC=C(Cl)C1
 
 $$$$
@@ -2018,10 +2018,10 @@ M  V30 9 1 4 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0145784
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC(=CC=C1O)C
 
 $$$$
@@ -2055,10 +2055,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0329015
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1C
 
 $$$$
@@ -2094,10 +2094,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0325354
 
-> <SMILES> 
+> <SMILES>
 FC=1C(Cl)=CC=CC1OC
 
 $$$$
@@ -2131,10 +2131,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0024117
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1NN
 
 $$$$
@@ -2172,10 +2172,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0189889
 
-> <SMILES> 
+> <SMILES>
 O=C(N)C=1C(Cl)=CC=CC1Cl
 
 $$$$
@@ -2213,10 +2213,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0052470
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(C=C1)C(Cl)=NO
 
 $$$$
@@ -2254,10 +2254,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0067522
 
-> <SMILES> 
+> <SMILES>
 S=C(N)C=1C(Cl)=CC=CC1Cl
 
 $$$$
@@ -2295,10 +2295,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0370665
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(Cl)C(N)=C1
 
 $$$$
@@ -2334,10 +2334,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0143389
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(Cl)=C1OC
 
 $$$$
@@ -2373,10 +2373,10 @@ M  V30 10 1 6 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0353020
 
-> <SMILES> 
+> <SMILES>
 N#CC1=CC=C(C=C1Cl)C
 
 $$$$
@@ -2412,10 +2412,10 @@ M  V30 10 2 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0036584
 
-> <SMILES> 
+> <SMILES>
 O=C(N)C=1C=CC=C(Cl)C1
 
 $$$$
@@ -2453,10 +2453,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0207817
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=CC(Cl)=C1C=NO
 
 $$$$
@@ -2494,10 +2494,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0094694
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC(Cl)=CC=C1N
 
 $$$$
@@ -2533,10 +2533,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0045832
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=CC(Cl)=C1OC
 
 $$$$
@@ -2577,10 +2577,10 @@ M  V30 13 2 6 12
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0163801
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC=2NC(Cl)=C(Cl)C12
 
 $$$$
@@ -2618,10 +2618,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0131355
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -2657,10 +2657,10 @@ M  V30 10 1 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0036786
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(C=NO)C=C1
 
 $$$$
@@ -2696,10 +2696,10 @@ M  V30 10 1 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0048957
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(OC)C(Cl)=C1
 
 $$$$
@@ -2737,10 +2737,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0052096
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(C=NO)C=C1Cl
 
 $$$$
@@ -2776,10 +2776,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0034380
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(OC)C=C1Cl
 
 $$$$
@@ -2815,10 +2815,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0369428
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(OC)C=C1Cl
 
 $$$$
@@ -2860,10 +2860,10 @@ M  V30 13 2 11 13
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0307258
 
-> <SMILES> 
+> <SMILES>
 O=N(=O)C1=CC=C(Cl)C(=C1)N(=O)=O
 
 $$$$
@@ -2902,10 +2902,10 @@ M  V30 12 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0335896
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C2OC(=N)NC2=C1
 
 $$$$
@@ -2939,10 +2939,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0167565
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(OC)=C1
 
 $$$$
@@ -2983,10 +2983,10 @@ M  V30 13 2 6 12
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0152356
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC=2C(Cl)=C(Cl)NC12
 
 $$$$
@@ -3024,10 +3024,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0065931
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(Cl)C=C1N
 
 $$$$
@@ -3063,10 +3063,10 @@ M  V30 10 1 5 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0033668
 
-> <SMILES> 
+> <SMILES>
 N#CC1=CC(=CC=C1Cl)C
 
 $$$$
@@ -3104,10 +3104,10 @@ M  V30 11 1 9 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0048870
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(Cl)C(=C1)C
 
 $$$$
@@ -3145,10 +3145,10 @@ M  V30 11 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0096171
 
-> <SMILES> 
+> <SMILES>
 O=C(C1=CC=C(F)C=C1Cl)C
 
 $$$$
@@ -3182,10 +3182,10 @@ M  V30 9 1 7 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0245359
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(N)C(=C1)C
 
 $$$$
@@ -3223,10 +3223,10 @@ M  V30 11 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0373878
 
-> <SMILES> 
+> <SMILES>
 O=C(C=1C(F)=CC=CC1Cl)C
 
 $$$$
@@ -3264,10 +3264,10 @@ M  V30 11 1 5 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0172129
 
-> <SMILES> 
+> <SMILES>
 O=C(O)NC1=CC=C(Cl)C=C1
 
 $$$$
@@ -3301,10 +3301,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0024502
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(N)C=C1C
 
 $$$$
@@ -3347,10 +3347,10 @@ M  V30 14 1 2 13
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0039527
 
-> <SMILES> 
+> <SMILES>
 O=C1OC=2C=CC(Cl)=CC2C([O-])=C1
 
 $$$$
@@ -3391,10 +3391,10 @@ M  V30 13 2 2 12
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0346227
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC2=C(Cl)C=CN=C2C1
 
 $$$$
@@ -3432,10 +3432,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0150804
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C=1C=CC=C(Cl)C1N
 
 $$$$
@@ -3478,10 +3478,10 @@ M  V30 14 2 6 13
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0252914
 
-> <SMILES> 
+> <SMILES>
 O=C1C=COC=2C(Br)=CC(Cl)=CC12
 
 $$$$
@@ -3519,10 +3519,10 @@ M  V30 11 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0168029
 
-> <SMILES> 
+> <SMILES>
 O=C(C1=CC=C(F)C(Cl)=C1)C
 
 $$$$
@@ -3556,10 +3556,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0028854
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC(N)=CC=C1C
 
 $$$$
@@ -3597,10 +3597,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0130254
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC(Cl)=CC=C1C
 
 $$$$
@@ -3641,10 +3641,10 @@ M  V30 13 1 6 12
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0240355
 
-> <SMILES> 
+> <SMILES>
 O=C1C=COC2=CC=C(Cl)C=C12
 
 $$$$
@@ -3687,10 +3687,10 @@ M  V30 14 2 6 13
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0175827
 
-> <SMILES> 
+> <SMILES>
 O=C1C=COC=2C(Cl)=CC(Cl)=CC12
 
 $$$$
@@ -3724,10 +3724,10 @@ M  V30 9 1 4 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0363714
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC(=CC=C1N)C
 
 $$$$
@@ -3770,10 +3770,10 @@ M  V30 14 1 7 13
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0100364
 
-> <SMILES> 
+> <SMILES>
 O=C1C(Br)=COC2=CC=C(Cl)C=C12
 
 $$$$
@@ -3809,10 +3809,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0112835
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1CO
 
 $$$$
@@ -3846,10 +3846,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0102945
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(N)=C1C
 
 $$$$
@@ -3887,10 +3887,10 @@ M  V30 11 1 3 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0146169
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(Cl)C(OC)=C1
 
 $$$$
diff --git a/Workflow/data/set_phenole.sdf b/Workflow/data/set_phenole.sdf
index a976471..1d38b54 100644
--- a/Workflow/data/set_phenole.sdf
+++ b/Workflow/data/set_phenole.sdf
@@ -28,10 +28,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0216116
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C(Br)=C1
 
 $$$$
@@ -63,10 +63,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0085593
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C=C1
 
 $$$$
@@ -100,10 +100,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0401033
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -135,10 +135,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0109649
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(O)=C1
 
 $$$$
@@ -172,10 +172,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0088749
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(Br)C(O)=C1
 
 $$$$
@@ -207,10 +207,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0071171
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1O
 
 $$$$
@@ -240,10 +240,10 @@ M  V30 7 2 2 7
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0155356
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=CC1
 
 $$$$
@@ -277,10 +277,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0061661
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(O)C(Br)=C1
 
 $$$$
@@ -314,10 +314,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0395062
 
-> <SMILES> 
+> <SMILES>
 FC1=CC(O)=CC=C1Br
 
 $$$$
@@ -351,10 +351,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0236901
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Cl)C(O)=C1
 
 $$$$
@@ -386,10 +386,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0032139
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(O)C=C1
 
 $$$$
@@ -423,10 +423,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0059204
 
-> <SMILES> 
+> <SMILES>
 FC1=CC(Br)=CC=C1O
 
 $$$$
@@ -460,10 +460,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0060336
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(O)=C1Cl
 
 $$$$
@@ -495,10 +495,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0083000
 
-> <SMILES> 
+> <SMILES>
 BrC=1C=CC=CC1O
 
 $$$$
@@ -532,10 +532,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0386646
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1Cl
 
 $$$$
@@ -567,10 +567,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0334769
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1
 
 $$$$
@@ -604,10 +604,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0331365
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC(O)=CC=C1O
 
 $$$$
@@ -641,10 +641,10 @@ M  V30 9 1 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0148599
 
-> <SMILES> 
+> <SMILES>
 N#CC1=CC=C(O)C=C1
 
 $$$$
@@ -678,10 +678,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0409072
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=CC(O)=C1O
 
 $$$$
@@ -713,10 +713,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0414137
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC(O)=C1
 
 $$$$
@@ -748,10 +748,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0246516
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(O)C=C1
 
 $$$$
@@ -785,10 +785,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0161760
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC(O)=CC=C1O
 
 $$$$
@@ -822,10 +822,10 @@ M  V30 9 2 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0104146
 
-> <SMILES> 
+> <SMILES>
 N#CC=1C=CC=C(O)C1
 
 $$$$
@@ -859,10 +859,10 @@ M  V30 9 1 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0178351
 
-> <SMILES> 
+> <SMILES>
 N#[N+]C1=CC=C(O)C=C1
 
 $$$$
@@ -894,10 +894,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0143972
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=CC1O
 
 $$$$
@@ -933,10 +933,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0284631
 
-> <SMILES> 
+> <SMILES>
 N#CC1=CC(O)=CC=C1O
 
 $$$$
@@ -974,10 +974,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0291002
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -1013,10 +1013,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0273783
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(O)C=C1
 
 $$$$
@@ -1048,10 +1048,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0115137
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=CC1N
 
 $$$$
@@ -1083,10 +1083,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0172517
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC(N)=C1
 
 $$$$
@@ -1122,10 +1122,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0157204
 
-> <SMILES> 
+> <SMILES>
 N#CSC1=CC=C(O)C=C1
 
 $$$$
@@ -1159,10 +1159,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0187325
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(O)C(O)=C1
 
 $$$$
@@ -1196,10 +1196,10 @@ M  V30 9 2 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0106037
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=C(O)C1
 
 $$$$
@@ -1233,10 +1233,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0420325
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(N)C(O)=C1
 
 $$$$
@@ -1272,10 +1272,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0068656
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C=1C=CC=CC1O
 
 $$$$
@@ -1311,10 +1311,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0293189
 
-> <SMILES> 
+> <SMILES>
 N#CC1=CC=C(O)C=C1O
 
 $$$$
@@ -1351,10 +1351,10 @@ M  V30 11 2 6 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0295607
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC=2NN=NC12
 
 $$$$
@@ -1388,10 +1388,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0248019
 
-> <SMILES> 
+> <SMILES>
 FC1=CC(O)=CC=C1N
 
 $$$$
@@ -1425,10 +1425,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0070007
 
-> <SMILES> 
+> <SMILES>
 FC1=CC(N)=CC=C1O
 
 $$$$
@@ -1464,10 +1464,10 @@ M  V30 10 1 3 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0155663
 
-> <SMILES> 
+> <SMILES>
 N#CC1=CC=C(O)C(O)=C1
 
 $$$$
@@ -1505,10 +1505,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0047539
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC(Cl)=CC=C1O
 
 $$$$
@@ -1540,10 +1540,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0149529
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(N)C=C1
 
 $$$$
@@ -1580,10 +1580,10 @@ M  V30 11 2 5 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0079924
 
-> <SMILES> 
+> <SMILES>
 OC1=NOC=2C=CC=CC12
 
 $$$$
@@ -1617,10 +1617,10 @@ M  V30 9 1 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0076387
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(O)C=C1
 
 $$$$
@@ -1654,10 +1654,10 @@ M  V30 9 1 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0230702
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(O)C=C1
 
 $$$$
@@ -1696,10 +1696,10 @@ M  V30 12 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0374905
 
-> <SMILES> 
+> <SMILES>
 O=C1OC2=CC(O)=CC=C2S1
 
 $$$$
@@ -1733,10 +1733,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0410095
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=CC1O
 
 $$$$
@@ -1770,10 +1770,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0132365
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=CC1O
 
 $$$$
@@ -1807,10 +1807,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0062122
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(O)C(N)=C1
 
 $$$$
@@ -1846,10 +1846,10 @@ M  V30 10 1 3 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0212461
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(O)C(Br)=C1
 
 $$$$
@@ -1886,10 +1886,10 @@ M  V30 11 2 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0361868
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=2NN=NC2C1
 
 $$$$
@@ -1923,10 +1923,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0308187
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC(O)=C1O
 
 $$$$
@@ -1964,10 +1964,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0155417
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C([O-])C(O)=C1
 
 $$$$
@@ -2005,10 +2005,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0077475
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC(F)=CC=C1O
 
 $$$$
@@ -2046,10 +2046,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0210532
 
-> <SMILES> 
+> <SMILES>
 O=C(Cl)C1=CC=C(O)C=C1O
 
 $$$$
@@ -2087,10 +2087,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0038089
 
-> <SMILES> 
+> <SMILES>
 O=C([O-])C=1C(O)=CC=CC1O
 
 $$$$
@@ -2124,10 +2124,10 @@ M  V30 9 1 4 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0145784
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC(=CC=C1O)C
 
 $$$$
@@ -2166,10 +2166,10 @@ M  V30 12 2 5 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0334574
 
-> <SMILES> 
+> <SMILES>
 OC1=NOC=2C=C(O)C=CC12
 
 $$$$
@@ -2206,10 +2206,10 @@ M  V30 11 2 6 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0278370
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC=2OC=CC12
 
 $$$$
@@ -2243,10 +2243,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0329015
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1C
 
 $$$$
@@ -2282,10 +2282,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0326066
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC(O)=CC=C1O
 
 $$$$
@@ -2323,10 +2323,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0002331
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(O)C=C1O
 
 $$$$
@@ -2362,10 +2362,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0253685
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C(O)C=C1
 
 $$$$
@@ -2403,10 +2403,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0030665
 
-> <SMILES> 
+> <SMILES>
 O=C([O-])C=1C=CC=C(O)C1O
 
 $$$$
@@ -2440,10 +2440,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0025703
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C=C1C
 
 $$$$
@@ -2479,10 +2479,10 @@ M  V30 10 1 3 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0203672
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(O)C(O)=C1
 
 $$$$
@@ -2518,10 +2518,10 @@ M  V30 10 2 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0217243
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C=1C=CC=C(O)C1
 
 $$$$
@@ -2560,10 +2560,10 @@ M  V30 12 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0192870
 
-> <SMILES> 
+> <SMILES>
 O=C1SC2=CC(O)=CC=C2N1
 
 $$$$
@@ -2601,10 +2601,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0415681
 
-> <SMILES> 
+> <SMILES>
 O=S(=O)([O-])C=1C=CC=CC1O
 
 $$$$
@@ -2640,10 +2640,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0382408
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(O)C=C1O
 
 $$$$
@@ -2675,10 +2675,10 @@ M  V30 8 1 5 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0267550
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(C=C1)C
 
 $$$$
@@ -2714,10 +2714,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0104242
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=C(O)C1O
 
 $$$$
@@ -2753,10 +2753,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0315067
 
-> <SMILES> 
+> <SMILES>
 O=[N](O)C1=CC=C(O)C=C1
 
 $$$$
@@ -2793,10 +2793,10 @@ M  V30 11 2 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0360936
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=2OC=CC2C1
 
 $$$$
@@ -2833,10 +2833,10 @@ M  V30 11 2 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0083825
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=2NC=NC2C1
 
 $$$$
@@ -2873,10 +2873,10 @@ M  V30 11 1 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0223104
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C2OCOC2=C1
 
 $$$$
@@ -2914,10 +2914,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0283266
 
-> <SMILES> 
+> <SMILES>
 O=NC1=CC(C=O)=CC=C1O
 
 $$$$
@@ -2955,10 +2955,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0131355
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -2990,10 +2990,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0242840
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=CC1C
 
 $$$$
@@ -3025,10 +3025,10 @@ M  V30 8 1 6 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0355586
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC(=C1)C
 
 $$$$
@@ -3062,10 +3062,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0176630
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(O)C(N)=C1
 
 $$$$
@@ -3103,10 +3103,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0047841
 
-> <SMILES> 
+> <SMILES>
 O=C([O-])C1=CC=C(O)C=C1O
 
 $$$$
@@ -3143,10 +3143,10 @@ M  V30 11 2 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0263236
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=2C=COC2C1
 
 $$$$
@@ -3184,10 +3184,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0027644
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC(O)=CC=C1O
 
 $$$$
@@ -3225,10 +3225,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0064333
 
-> <SMILES> 
+> <SMILES>
 O=P([O-])([O-])C=1C=CC=CC1O
 
 $$$$
@@ -3266,10 +3266,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0085708
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC(O)=CC=C1[O-]
 
 $$$$
@@ -3308,10 +3308,10 @@ M  V30 12 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0377919
 
-> <SMILES> 
+> <SMILES>
 O=C1OC2=CC(O)=CC=C2N1
 
 $$$$
@@ -3349,10 +3349,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0392208
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(O)C(O)=C1
 
 $$$$
@@ -3390,10 +3390,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0414254
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C(O)C(Br)=C1
 
 $$$$
@@ -3429,10 +3429,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0230203
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C=1C=CC=CC1O
 
 $$$$
@@ -3470,10 +3470,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0086341
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C([O-])C(O)=C1
 
 $$$$
@@ -3511,10 +3511,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0200151
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C=1C(O)=CC=CC1O
 
 $$$$
@@ -3548,10 +3548,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0268248
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC(OC)=C1
 
 $$$$
@@ -3587,10 +3587,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0232327
 
-> <SMILES> 
+> <SMILES>
 N#CCC1=CC=C(O)C=C1
 
 $$$$
@@ -3624,10 +3624,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0103281
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(C=C1)CO
 
 $$$$
@@ -3661,10 +3661,10 @@ M  V30 9 1 7 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0324010
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(O)C(=C1)C
 
 $$$$
@@ -3698,10 +3698,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0104167
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=CC1CO
 
 $$$$
@@ -3739,10 +3739,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0080275
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(O)C(O)=C1O
 
 $$$$
@@ -3778,10 +3778,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0231136
 
-> <SMILES> 
+> <SMILES>
 OC=NC=1C=CC=CC1O
 
 $$$$
@@ -3819,10 +3819,10 @@ M  V30 11 2 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0288393
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=C(O)C1C=O
 
 $$$$
diff --git a/Workflow/data2/no_lipinski.sdf b/Workflow/data2/no_lipinski.sdf
index 54d15da..7ba48f3 100644
--- a/Workflow/data2/no_lipinski.sdf
+++ b/Workflow/data2/no_lipinski.sdf
@@ -123,10 +123,10 @@ M  V30 59 1 53 54
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0125965
 
-> <SMILES> 
+> <SMILES>
 OCC1OC(OC2C(O)C(O)C(OC2OC3CCC4(CO)C(CCC5(C)C4CCC6C(CCC65C)C(O)CCC=C(C)C)C3(C)C)CO)C(O)C(O)C1O
 
 $$$$
@@ -307,10 +307,10 @@ M  V30 88 1 76 77
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0436865
 
-> <SMILES> 
+> <SMILES>
 O=C1OC2C3CC(O)C4(CCCC4)CC3CC5(C=C6C=CCC(CCCCC(C)(CC=7C=CC(N)NC7)CC=8C=CC=C9C(=O)C%10(OC1%10C(=O)C98)CC(=C(C)CCC%11=CCNC=%12NC(NC)CCC%12%11)CO)C6CC25)NCC
 
 $$$$
@@ -432,10 +432,10 @@ M  V30 55 1 33 51
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0211232
 
-> <SMILES> 
+> <SMILES>
 O=C(OCCCCCCCC1NC(=N)N2C(=C1C(=O)OCCCCNC(=N)N)CCC2)C3=C(N=C4NC(CCCCCCC)CC5N4C3CC5)C
 
 $$$$
@@ -557,10 +557,10 @@ M  V30 55 1 33 51
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0436877
 
-> <SMILES> 
+> <SMILES>
 O=C(OCCCCCCCC1NC(=N)N2C(=C1C(=O)OCCCCNC(=N)N)CCC2)C3=C(N=C4NC(CCCCCCC)CC5CCC3[NH+]45)C
 
 $$$$
@@ -743,10 +743,10 @@ M  V30 88 1 68 79
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0096266
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC)CCC1=CC=2C=COC2C=3OCCNC4CCC(C)CCCC(O)C5(OC(OC31)C6(O)C(O)C5(O)CC7C=CC(O)C(CO)C76)CSSC84CCC9(CCC(CNC)C9)C8CCC%10(O)CCCC(CCCCC)C%10
 
 $$$$
@@ -963,10 +963,10 @@ M  V30 107 2 49 94
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0153122
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C2C=C1OC(CO)CC#CC(NCNCC(O)(C)CC(C)C)C3(OCNC4CCCC5(CCCC5COC6CCCC6)C4)CC=7C(OC23)=C8C(OC(CO)CC8)=C9C=%10C=CC(O)=C%11C=C(CNCCCC=%12C=CC=CC%12)C(C=%13C=CC=%14NC=CC%14C%13)C(C%10%11)CC97
 
 $$$$
@@ -1135,10 +1135,10 @@ M  V30 77 1 75 76
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0271735
 
-> <SMILES> 
+> <SMILES>
 OCC1OC(OC(C)(C)CCC(C=CC(=CC=CC(=CC=CC(=CC=CC=C(C=CC=C(C=CC=C(C=CC(CCC(OC2OC(CO)C(O)C(O)C2O)(C)C)C(O)(C)C)C)C)C)C)C)C)C(O)(C)C)C(O)C(O)C1O
 
 $$$$
@@ -1268,10 +1268,10 @@ M  V30 59 1 54 55
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0097989
 
-> <SMILES> 
+> <SMILES>
 OC=1C=C2C(=CC1OC3CCC(CNC)C(C3)C4CCCC(C)C4)CCC(OCO)CC(O)C(CC5=CC(OC)=C(O)C(OC)=C5)C(O)CSSC2CCO
 
 $$$$
@@ -1466,10 +1466,10 @@ M  V30 92 1 86 87
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0235956
 
-> <SMILES> 
+> <SMILES>
 O=C1OC2C(OC(C)C(OC3OC(C)C(OC4OC(O)C(OC(=O)C(C)CC)C(O)C4O)C(OC5OC(C)C(O)C(O)C5O)C3OC(=O)CCCCCCCCCCC)C2O)OC6C(OC(CCCCC)CCCCCCCCC1)OC(C)C(O)C6O
 
 $$$$
@@ -1645,10 +1645,10 @@ M  V30 86 1 19 74
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0152948
 
-> <SMILES> 
+> <SMILES>
 O=C1C=CC(=O)N1C2(CCCCC2)C3CC4CCC5C6=CC=CC=7C=CC3C(C76)(C(CO)COC8=CC(=CC(OC)=C8O)C9COC=%10C=C%11NC(O)C=%12C(OCNCC)=CC(OC)=C%13C%12C%11=C(C%10C9O)CC%13)C4C5
 
 $$$$
@@ -1949,10 +1949,10 @@ M  V30 150 1 127 135
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0280674
 
-> <SMILES> 
+> <SMILES>
 O=C1OCC2OC(OC(=O)C3=CC(O)=C(O)C(O)=C3)C(OC(=O)C4=CC(O)=C(O)C(O)=C4OC=5C=C6C(=O)OCC7OC(OC(=O)C8=CC(O)=C(O)C(O)=C8)C9OC(=O)C%10=CC(O)=C(O)C=%11OC%12(O)C(C(=CC(=O)C%12(O)O)C(=O)OC7C9OC(=O)C%13=CC(O)=C(O)C(O)=C%13C6=C(O)C5O)C%11%10)C(OC(=O)C%14=CC(O)=C(O)C(O)=C%14C%15=C(O)C(O)=C(O)C=C1%15)C2OC(=O)C%16=CC(O)=C(O)C(O)=C%16
 
 $$$$
@@ -2183,10 +2183,10 @@ M  V30 109 1 4 106
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0059407
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1(OC(CO)C(O)C2OC(OC3C(O)C(OC(CO)C3O)OC4C(O)C(O)C(OCC(NC(=O)CCCCCCCCCCCCCCCCCCCCC)C(O)C=CCCCCCCCCCCCCC)OC4CO)(C(=O)O)CC(O)C2NC(=O)C)OC(C(O)C(O)CO)C(NC(=O)C)C(O)C1
 
 $$$$
@@ -2328,10 +2328,10 @@ M  V30 63 1 62 63
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0084420
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC(OC(=O)CCCCCCCCCCCCCCCCC)COP(=O)(O)OC1C(O)C(O)C(O)C(O)C1O)CCCCCCCCC=CCC=CCC=CCC=CCC
 
 $$$$
@@ -2613,10 +2613,10 @@ M  V30 133 1 131 133
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0073501
 
-> <SMILES> 
+> <SMILES>
 O=C1OC(C)C(NC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(O)CO)CC(C)C)C)CC(C)C)CC(C)C)C(C)CC)CCCNC(=N)N)CC(C)C)CC(C)C)C(C)C)CCCCN)CC(C)C)C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC1CCCCN)CCCCN)CO)CC(C)C
 
 $$$$
@@ -2814,10 +2814,10 @@ M  V30 97 1 61 85
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0307371
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(C=C1)C=CC=2C(=C(O)C=C3OC(C4=CC=C(O)C=C4)C(C=5C=C(O)C=C(O)C5)C32)C(C6=CC=C(O)C=C6)C7C=8C=C(O)C=C(O)C8C(C9=CC=C(O)C=C9)C7C=%10C=C(O)C=C%11OC(C%12=CC=C(O)C=C%12)C(C=%13C=C(O)C=C(O)C%13)C%11%10
 
 $$$$
@@ -3003,10 +3003,10 @@ M  V30 90 1 68 80
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0436931
 
-> <SMILES> 
+> <SMILES>
 O=C1C(NCC(O)C)=C2C3(O)CCC(C(O)(C)C4(O)CCCC(O)C5C4OC6CCC(CCC)CCC65)C3(CC7(O)C=CC8(C=CC27C9(CC(O)C(O)CC19)C8)C=%10C=CC(N)NC%10CCCO)C%11CCC(CNC)(CCOC)CC%11
 
 $$$$
@@ -3222,10 +3222,10 @@ M  V30 102 1 46 98
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0103963
 
-> <SMILES> 
+> <SMILES>
 O=C1OC(C(C)CCC2OC(C)CC(OC)C2)C(C)C(O)C(C)C(O)CC(O)C(C)C(OC)CC3OC(CCC3)CC(O)CC=C(C=CC(=O)OC(C(C)C(O)CC(O)C(C)C(OC)CC4OC(C=CC4)CC(O)CC=C(C=C1)C)C(C)C(O)C(C)CCC5OC(C)CC(OC)C5)C
 
 $$$$
@@ -3351,10 +3351,10 @@ M  V30 57 1 2 53
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0436939
 
-> <SMILES> 
+> <SMILES>
 O=C(OC(CCC=1C=C(OCCO)C(O)=CC1C=2C=C(N)NCC2)CC(OC(=O)C)C3CC(CO)CC4CC(C3)C(CC4CC5=CC=CN5)C(C)C)C
 
 $$$$
@@ -3565,10 +3565,10 @@ M  V30 105 1 21 90
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0436955
 
-> <SMILES> 
+> <SMILES>
 O=C1OC=2C3=C1C4C(CC3CCC2C5(CC)CCCC5)C6C7=C8C(=O)OC(=CCC(C(SSCNC9=CC(=CCN9)C7CN%10C(=O)C=CC%10=O)NC%11CCC%12CCCC(CC=%13N=CNC%13)C%12C%11O)C%14C%15C=CC%16C#CC(CO)CC(CO)CC(C%15)CC%16%14)C84CC6
 
 $$$$
@@ -3778,10 +3778,10 @@ M  V30 100 2 89 94
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0051053
 
-> <SMILES> 
+> <SMILES>
 O=C(OC1C(OC(C)C(OC(=O)CCCCCCCCC)C1O)OC2C(OC(OC3C(O)C4OC(=O)CCCCCCCCCC(OC5OC(C)C(O)C(O)C5OC4OC3C)CCCCC)C(OC(=O)C(C)C)C2OC6OC(C)C(O)C(O)C6O)C)C=CC=7C=CC=CC7
 
 $$$$
@@ -3905,10 +3905,10 @@ M  V30 54 1 53 54
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0436958
 
-> <SMILES> 
+> <SMILES>
 O=C(O)CC(C(=O)O)CC(=O)OC(CC(C)CCCCCCCCC(O)C(C)[NH+]1C=C(O)C=CC1)C(OC(=O)CC(C(=O)O)CC(=O)O)C(C)CCCC
 
 $$$$
@@ -4066,10 +4066,10 @@ M  V30 75 1 59 67
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0436964
 
-> <SMILES> 
+> <SMILES>
 O=C1CC(C2=CC(O)=C(O)C(OCC3C=CCC(C)C3)=C2)CCC4=C(C=CC5=CC(O)=CC=C54)NC6=CC(=CCN6)C7(CCC(O)C7CC8=CC=CN8)C1C(O)CCC9=CC=C(O)C(OC)=C9
 
 $$$$
@@ -4212,10 +4212,10 @@ M  V30 66 1 59 61
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0082413
 
-> <SMILES> 
+> <SMILES>
 O=C1C2=C(O)C=C(O)C(=C2OC(C=3C=CC(OCC=C(C)C)=CC3O)=C1CC=C(C)C)C4C=C(C)CC(C5=CC=C(O)C=C5O)C4C(=O)C6=CC=C(O)C(=C6O)CC=C(C)C
 
 $$$$
@@ -4537,10 +4537,10 @@ M  V30 161 1 144 145
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0063891
 
-> <SMILES> 
+> <SMILES>
 O=C1OC=2C(O)=C3C(=CC2OC4=C(O)C(O)=C(O)C=C14)C(=O)OC5C(OC(=O)C6=CC(O)=C(O)C(O)=C63)C(OC(=O)C7=CC(O)=C(O)C(O)=C7)OC(COC(=O)C8=CC(O)=C(O)C(O)=C8)C5OC(=O)C9=CC(O)=C(O)C(O)=C9OC=%10C=C%11C(=O)OC%12C(OC(=O)C%13=CC(O)=C(O)C(O)=C%13)OC%14COC(=O)C%15=CC(O)=C(O)C(O)=C%15C%16=C(O)C(O)=C(O)C=C%16C(=O)OC%14C%12OC(=O)C%17=CC(O)=C(O)C(O)=C%17C%11=C(O)C%10O
 
 $$$$
@@ -4727,10 +4727,10 @@ M  V30 91 1 19 80
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0436979
 
-> <SMILES> 
+> <SMILES>
 O=C1OC(=CC2(CC)CCCC2)C3=C1C4C(CC3)C5C6=C7C(=O)OC(=CCC(C(SSCNC8=CC(=CCN8)C6CN9C(=O)C=CC9=O)NCC(O)C)C%10CCC%11CC(CO)CC(C#CCC%10C%11)C(O)CC=%12C=CC=CC%12)C74CC5
 
 $$$$
@@ -4931,10 +4931,10 @@ M  V30 94 1 2 91
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437007
 
-> <SMILES> 
+> <SMILES>
 O=C(NC1C(O)C(O)C(OC1OCC2OC(OC3C(O)C(O)C(OC3OCC(NC(=O)C(O)CCCCCCCCCCCCCCCCCC)C(O)C(O)CCCCCCCCCCCCCCC)CO)C(O)C(O)C2O)COC4OC(C(O)C)C(O)C4O)C
 
 $$$$
@@ -5112,10 +5112,10 @@ M  V30 82 1 79 80
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0000456
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC(OC(=O)CCCCCC=CCCCCCCCC)COP(=O)(O)OC1C(OC2OC(CO)C(O)C(O)C2O)C(O)C(O)C(O)C1OC3OC(CO)C(O)C(O)C3O)CCCCCCCCCCCCCCCCCC
 
 $$$$
@@ -5326,10 +5326,10 @@ M  V30 103 1 79 92
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437066
 
-> <SMILES> 
+> <SMILES>
 O=C(C=C(C1=CC(OC)=C(O)C=C1CC2=CNC(N)C=C2CCC=3C=CC=C(C3)CCC=4C=CC=CC4)CO)CC(=O)CC5CCC6C(C5)(CC(NCC(O)C)C76CC8NCC(C=9C=CC=CC9)CC(CN=C(N)N)C8C7)CC%10C%11NCC=CC%11CC%12CNCCC%12%10
 
 $$$$
@@ -5507,10 +5507,10 @@ M  V30 85 2 72 77
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0257632
 
-> <SMILES> 
+> <SMILES>
 O=C(OC1CC2(C(=O)O)C(O)CC3(C(=CCC4C5(C)CCC(OC6OC(COC7OCC(O)C(O)C7OC8OCC(O)C(O)C8O)C(O)C(O)C6NC(=O)C)C(C)(C)C5CCC43C)C2CC1(C)C)C)C=CC=9C=CC=CC9
 
 $$$$
@@ -5655,10 +5655,10 @@ M  V30 65 1 10 64
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0081665
 
-> <SMILES> 
+> <SMILES>
 O=C(N)CCC1NC(=O)C(NC(=O)C(NC(=O)C(NC(=O)CC(OC(=O)C(NC(=O)C(NC1=O)CC2=CC=C(O)C=C2)C(C)CC)C(C)CCCCCCCCCCC)C(O)C)C)C
 
 $$$$
@@ -5799,10 +5799,10 @@ M  V30 63 1 61 62
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437077
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC(OC(=O)CCCC=CCC=CCC=CCC=CCC1OC1CC)COP(=O)(O)OC2C(O)C(O)C(O)C(O)C2O)CCCCCCCC=CCCCCCCCC
 
 $$$$
@@ -5992,10 +5992,10 @@ M  V30 88 1 2 86
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0426966
 
-> <SMILES> 
+> <SMILES>
 O=C(NC1C(O)C(O)C(OC1OCC2OC(OCC(NC(=O)C(O)CCCCCCCCCCCCCCCCCCCCC)C(O)C(O)CCCCCCCCCCCCCCCCC)C(OC3OC(CO)C(O)C(O)C3O)C(O)C2O)CO)C
 
 $$$$
@@ -6168,10 +6168,10 @@ M  V30 82 1 5 75
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0236088
 
-> <SMILES> 
+> <SMILES>
 O=C1CCC2=CC=C(OC)C(OCC3=C4C=CC(C=5C=C(O)C(=C(C=C3C(O)O)C45)C(C#COC(C1)CC6C=C(O)C=CC6CC(CO)CCC=7C=CC=C(C7)NC(=N)NC)CC=8C=CC=C(C8)CCOCC)C)=C2
 
 $$$$
@@ -6309,10 +6309,10 @@ M  V30 61 1 60 61
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0058972
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC(OC(=O)CCCCCCCCCC=CCCCCCC)COP(=O)(O)OC1C(O)C(O)C(O)C(OP(=O)(O)O)C1O)CCCCCCCCCCCCCCC
 
 $$$$
@@ -6479,10 +6479,10 @@ M  V30 79 2 2 72
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0319508
 
-> <SMILES> 
+> <SMILES>
 OC=1C=C(O)C=C(OC2=C(O)C=C(OC=3C(O)=CC(O)=CC3OC4=C(O)C=C(OC=5C(O)=CC(O)=CC5OC6=C(O)C=C(OC=7C(O)=CC(O)=C(C7O)C=8C=C(O)C(O)=CC8O)C=C6O)C=C4O)C=C2O)C1
 
 $$$$
@@ -6682,10 +6682,10 @@ M  V30 97 1 74 87
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437113
 
-> <SMILES> 
+> <SMILES>
 O=C(C=C(C1=CC(OC)=C(O)C=C1CC2=CNC(N)C=C2CCC=3C=CC=C(C3)CCC=4C=CC=CC4)CO)CC(=O)CC5CCC6C(C5)(CC(NCC(O)C7CCCCC7)C86CCC(CCN=C(N)N)C8)CC9C%10NCC=CC%10CC%11CNCCC%119
 
 $$$$
@@ -6867,10 +6867,10 @@ M  V30 84 1 81 82
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0000703
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC(OC(=O)CCCCCCCCCCCCCCCCCC)COP(=O)(O)OC1C(OC2OC(CO)C(O)C(O)C2O)C(O)C(O)C(O)C1OC3OC(CO)C(O)C(O)C3O)C=CC=CCCCCCCCCCCCCC
 
 $$$$
@@ -7016,10 +7016,10 @@ M  V30 65 1 64 65
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0066154
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC(OC(=O)CCCCCCCC=CCC=CCCCCC)COP(=O)(O)OC1C(O)C(O)C(O)C(OP(=O)(O)O)C1O)CCCC=CCC=CCC=CCCCCCCCC
 
 $$$$
@@ -7234,10 +7234,10 @@ M  V30 106 1 92 93
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0147861
 
-> <SMILES> 
+> <SMILES>
 O=C1C=C(C(=O)N1C2(CCCCC2)C3CCCC4(C=5C=CC=CC5C=CC34)C(CO)COC6=CC(=CC(OC)=C6O)C7COC=8C=C9NC(O)C=%10C(OC%11%12NC(C)CCC%12C(CCC%11)CCC%13CCCC(NC)C%13)=CC(OCCNC)=C%14C%10C9=C(C8C7O)CC%14)CNC
 
 $$$$
@@ -7560,10 +7560,10 @@ M  V30 161 1 144 146
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0052692
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC(O)=C(O)C(O)=C1OC=2C=C3C(=O)OCC(OC(=O)C4=CC(O)=C(O)C(O)=C4C5C=6C(O)=C(O)C(O)=C7C6C(=O)OC5C(OC(=O)C8=CC(O)=C(O)C(O)=C87)C9OC(=O)C%10=CC(O)=C(O)C(O)=C%10C%11=C(O)C(O)=C(O)C=C%11C(=O)OCC9OC(=O)C%12=CC(O)=C(O)C(O)=C%12)C(OC(=O)C%13=CC(O)=C(O)C(O)=C%13C3=C(O)C2O)C%14OC(=O)C%15=CC(O)=C(O)C(O)=C%15C%16=C(O)C(O)=C(O)C=C%16C(=O)OC%14C(=O)O
 
 $$$$
@@ -7716,10 +7716,10 @@ M  V30 69 1 67 68
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437141
 
-> <SMILES> 
+> <SMILES>
 O=C(NC(COC1OC(CO)C(O)C(OC2OC(C(O)CO)C(O)C2O)C1O)C(O)C(O)CCCCCCCCCCCCCC)C(O)CCCCCCCCCCCCCCCCCCCC
 
 $$$$
@@ -7871,10 +7871,10 @@ M  V30 68 1 2 68
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0212788
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC(OC(=O)CC(C)C)C(O)(C)CCCC1(O)CCC(O)C(C)CCCCC(C)C(O)CCC(O)(CCCC(O)(C)C(OC(=O)C(C)CC)COC(=O)C)C(CC(C)C)C1CC(C)C)C
 
 $$$$
@@ -8048,10 +8048,10 @@ M  V30 83 1 74 75
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0391402
 
-> <SMILES> 
+> <SMILES>
 O=C1C2C(O)C(CC=3C=CNC3)CC4=CC=C(O)C(OC)=C4CC5=C(C=CC6=CC=CC(=C65)C(SSCC2CC(O)C1(C=7C=C(O)C=C(C7)CNC)CC8=CC=C(O)C(OC9CCCC(COCC)C9)=C8)CO)CC
 
 $$$$
@@ -8193,10 +8193,10 @@ M  V30 63 1 62 63
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0144127
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC(OC(=O)CCCCCCCCCCCCCCC)COP(=O)(O)OC1C(O)C(O)C(O)C(OP(=O)(O)O)C1O)CCCC=CCC=CCC=CCC=CCCCCC
 
 $$$$
@@ -8424,10 +8424,10 @@ M  V30 114 1 97 98
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437153
 
-> <SMILES> 
+> <SMILES>
 O=C(OC1CC2=C(O)C=3C(=O)C=C(OC3C4=C2OC1(C)C5CC6=CNC7NC(C=CC7=C6CCC5C8C9=C(N)NCC=C9C4C(C%10=CC(O)=CC=C%10CC%118CCCC%11)CO)C)CO)C(=CC)C%12(O)CC%13C=%14C=CC=C%15C%14C%16(C=CC%13C%12C%16)CC(CC(O)CC(C)C%17CCCCC%17)C%15O
 
 $$$$
@@ -8567,10 +8567,10 @@ M  V30 62 1 61 62
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437155
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC(OC(=O)CCCC=CCC=CCC=CCC=CC=CC(O)CC)COP(=O)(O)OC1C(O)C(O)C(O)C(O)C1O)CCCCCCCCCCCCCCCCC
 
 $$$$
@@ -8747,10 +8747,10 @@ M  V30 85 1 2 76
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437166
 
-> <SMILES> 
+> <SMILES>
 O=C(OC1CC(OC(CCC2=CC=C(O)C(OC3CCCC4(NC(=NC(N5C=C6C=CNC6=C5)C4C(O)NC7CCCCC7)NCCCC=8C=C(N)NCC8)C3)=C2)C1)C9=CC(O)=C(O)C(OCCC=%10C=NC=CC%10)=C9)C
 
 $$$$
@@ -8946,10 +8946,10 @@ M  V30 97 1 82 83
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0105945
 
-> <SMILES> 
+> <SMILES>
 O=CC(C=1C=C(C=C(C1)C2(O)CCOCC2)C3CCCCC3)C4=CN5C6=C4NC=C6CC7CC#CCC89CCC%10C(C(=O)C%11C=%12C=CNC%12C%13CCC%11(C%13)C%10(C)C9C(O)C(C%14=C(C(=O)CC%148C)C7(C)CC(O)C%15OC%15(C)C)C5)(C)CCNC
 
 $$$$
@@ -9203,10 +9203,10 @@ M  V30 126 1 111 112
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0164243
 
-> <SMILES> 
+> <SMILES>
 O=C(C=CC1=CC=C2OC(C3=CC=C(O)C=C3)C(C2=C1)C(C4=CC=C(O)C=C4O)C=5C=C(C(O)=CC5O)C(C6=CC(=C(O)C=C6O)C7OC(C8=CC=C(O)C=C8)C(C(=O)C9=CC=C(O)C=C9O)C7CC%10=CC=C(O)C=C%10)C%11C%12=CC(C=CC(=O)C%13=CC=C(O)C=C%13O)=CC=C%12OC%11C%14=CC=C(O)C=C%14)C%15=CC=C(O)C=C%15O
 
 $$$$
@@ -9409,10 +9409,10 @@ M  V30 97 1 88 90
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0309701
 
-> <SMILES> 
+> <SMILES>
 O=C(OC1C(OC(=O)C(C)CC)C2(CO)C(O)C(O)C3(C(=CCC4C5(C)CCC(OC6OC(C(=O)OCCCCC)C(OC7OC(CO)C(O)C7O)C(O)C6OC8OC(CO)C(O)C(O)C8O)C(C)(C)C5CCC43C)C2CC1(C)C)C)C=C(C)CCC=C(C)C
 
 $$$$
@@ -9616,10 +9616,10 @@ M  V30 100 1 87 88
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0337352
 
-> <SMILES> 
+> <SMILES>
 N=C(NC1CCC2(CCCC2)C(C=3C=CC=C(O)C3)C1)NC4CSSCC5C(N)CC6CC(CCC=7OC(=CC7CO)CCC8=CC=C(O)C(OCC(O)C9=CC%10=C(N9)C%11C=CC%12(CCCC%12C%13%11CCCC%13)C%10CNCC(O)C)=C8)CCC5C6CCC4C
 
 $$$$
@@ -9810,10 +9810,10 @@ M  V30 92 1 78 83
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0138742
 
-> <SMILES> 
+> <SMILES>
 O=C(OC(C)C1CCC2(O)C3CCC4CC(OC5OC(C)C(OC6OC(C)C(OC7OC(C)C(OC8OC(CO)C(O)C(O)C8O)C(OC)C7O)C(OC)C6)C(OC)C5)CCC4(C)C3CC(OC(=O)C=9C=CC=CC9)C12C)C=%10C=CC=CC%10
 
 $$$$
@@ -9995,10 +9995,10 @@ M  V30 85 1 80 81
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0160899
 
-> <SMILES> 
+> <SMILES>
 O=C1OC2C(OC(C)C(OC3OC(C)C(OC4OC(C)C(OC(=O)CCCCCCCCC)C(O)C4O)C(OC(=O)CCCCCCCCC)C3O)C2O)OC5C(OC(CCCCC)CCCCCCCCC1)OC(CO)C(O)C5O
 
 $$$$
@@ -10153,10 +10153,10 @@ M  V30 71 1 67 68
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0426995
 
-> <SMILES> 
+> <SMILES>
 O=C(NC1C(=O)OCC(NC(=O)C=2C=CC=C(O)C2O)C(=O)OCC(NC(=O)CC(O)CCCCCCCCC)C(=O)OCC(NC(=O)C=3C=CC=C(O)C3O)C(=O)OC1)C=4C=CC=C(O)C4O
 
 $$$$
@@ -10343,10 +10343,10 @@ M  V30 88 1 53 83
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0145165
 
-> <SMILES> 
+> <SMILES>
 O=C1OC2C(O)C(OC3OC(C)C(OC4OC(C)C(O)C(O)C4O)C(OC5OC(CO)C(O)C(O)C5O)C3OC(=O)CCCCCCCCCCC)C(OC2OC6C(O)C(O)C(OC6OC(CCCCC)CCCCCCCCC1)CO)C
 
 $$$$
@@ -10495,10 +10495,10 @@ M  V30 67 1 65 66
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0000806
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC(OC(=O)CCCCCCCCCCCCC)COP(=O)(O)OC1C(O)C(O)C(O)C(O)C1OC2OC(CO)C(O)C(O)C2O)CCCCCCCCCCCCCCCCC
 
 $$$$
@@ -10676,10 +10676,10 @@ M  V30 84 1 15 78
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0341417
 
-> <SMILES> 
+> <SMILES>
 O=C(O)CC1C2NC(C)CCC1C(O)C3(C4=CC=C(C=C4)CC5(NC(C(=C(C=CC(O)C(O)CCCC)CCC=6C=CC=CC6C#CC5)CC(O)CO)CCC2O)C(O)(C)C(C7=CC=C(O)C=C7)CCC(C)C)CCCCC3
 
 $$$$
@@ -10902,10 +10902,10 @@ M  V30 112 1 78 95
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0091813
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC(=C1)C2=CC=C(O)C=C2CC3=CC(OC4CCCC4)=CC5=C3OCC(C5O)C6C7OC8C9C=CC(CC9O)C%108NC%11(NCC%10C#CCOC=%12C=C7C(OC6CCCOC)=C%13C=CC(O)=CC%12%13)CC%14(CCCC%14)C%15%16CCC%17(CCC%18C(CCOC)CC(CC%11%15)C%18%17)C%16
 
 $$$$
@@ -11139,10 +11139,10 @@ M  V30 111 1 4 107
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0053929
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1(OC2C(O)C(OC(CO)C2O)OC3C(O)C(O)C(OCC(NC(=O)C(O)CCCCCCCCCCCCCCCCCCCC)C(O)C(O)CCCCCCCCCCCC)OC3CO)OC(C(O)C(O)CO)C(NC(=O)C)C(OC4OC(CO)C(OC5OC(C(O)C)C(O)C5O)C(O)C4O)C1
 
 $$$$
@@ -11326,10 +11326,10 @@ M  V30 88 1 5 80
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0115729
 
-> <SMILES> 
+> <SMILES>
 O=C1CCC2=CC=C(OC)C(OCC3=C4C=CC(C=5C=C(O)C(=C(C=C3C(O)O)C45)C6C#COC(C1)CC7C=C(O)C(=CC7CCCCC=8C=CC=C(C8)NC(=N)NC)C(CNCCC)CC6C=9C=CC=C(C9)CCOCC)C)=C2
 
 $$$$
@@ -11539,10 +11539,10 @@ M  V30 105 1 88 89
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0266583
 
-> <SMILES> 
+> <SMILES>
 O=C(OC=1C=2C(=CC=C3C=C4C=CC=CC4=CC32)NC1CO)C5OC6(O)C(O)C7CC8C9CC%10C(O)C%11(CCC%12CCC%13CC(C%14=CC(O)=CC=C%14C%12%13%11)C(SSCC%10NC)CSSC7CNCCC%15(C=%16C=CC=CC%16)CCCC%17(CCCC%17)C%15)C9OC5C86O
 
 $$$$
@@ -11725,10 +11725,10 @@ M  V30 89 1 74 78
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0099074
 
-> <SMILES> 
+> <SMILES>
 O=C1C2=C3CCC4C5(CC(C=6C=C(O)C=C(C6)CNC)C(=O)C7(C)CCCCC(O)(C)CNC(CC4(C(CO)CCC8CCC(CO)CC8C2CC(O)C9OC9(C)C%10CCCC%10C=%11C=CC=C(N)C%11)C3(C)C1)C75)C%12CCCC%12
 
 $$$$
@@ -11926,10 +11926,10 @@ M  V30 91 1 90 91
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0302618
 
-> <SMILES> 
+> <SMILES>
 O=C(O)CCC(NC(=O)C(NC(=O)CC(O)CCCCCCCCCCC)CC(C)C)C(=O)NC1C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)OC1C)C(C)C)CO)CC(C)C)CC(C)C)CO)CC(C)C)C(C)CC
 
 $$$$
@@ -12098,10 +12098,10 @@ M  V30 78 1 74 75
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0152781
 
-> <SMILES> 
+> <SMILES>
 O=C(OC(C)C1N=C(O)C(N=C(O)C(N=C(O)C(N=C(O)C(N=C(O)C(N=C(O)C(=CC2=CC=C(O)C=C2)N(C1=O)C)CC(C)C)CC=3C=CC=CC3)C(O)C)CC(=N)O)CO)C=CC=4C=CC=CC4C=CCCC
 
 $$$$
@@ -12261,10 +12261,10 @@ M  V30 72 1 71 72
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0216492
 
-> <SMILES> 
+> <SMILES>
 O=C(O)CCC1NC(=O)CC(OC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(NC1=O)CC(C)C)CC(C)C)C(C)C)CC(=O)O)CC(C)C)CC(C)C)CCCCCCCCCCC
 
 $$$$
@@ -12408,10 +12408,10 @@ M  V30 66 1 60 62
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0137075
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC(OCNC(=N)NC)=C(OC2OC3(CCC=4C(OC)=C(O)C(OCCC=5C=CC=C(C5)CC)=C(O)C4C(=O)OC3O)C(O)C(O)C2O)C=C1NC(C)CCC(C)C
 
 $$$$
@@ -12603,10 +12603,10 @@ M  V30 94 1 28 82
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0100339
 
-> <SMILES> 
+> <SMILES>
 O=C1C=CC2C3CC(CC)CCC3C(CCCO)C4CCCC24C5=CC=6OC7(CNC)CC8C(C#COC6C(=C5)NC(=NC#CCC9CCCC19CC%10=CC=C(O)C(OC)=C%10)NC)C=CC%11CC8(CC%12(O)OC%13C(CO)CCC%13CC%11%12)C7
 
 $$$$
@@ -12721,10 +12721,10 @@ M  V30 49 1 48 50
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0112751
 
-> <SMILES> 
+> <SMILES>
 O=C(O)CC(O)C(N=C(O)C(N=C(O)CC(O)C(N=C(O)C(N=C(O)C(N=C(O)CC(C)C)CC(C)C)CC(C)C)CC(C)C)C)CC(C)C
 
 $$$$
@@ -12846,10 +12846,10 @@ M  V30 55 1 49 51
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0401378
 
-> <SMILES> 
+> <SMILES>
 O=C(C1=C(O)C=C(O)C(=C1O)CC23OC=4C(=C(O)C=C(O)C4C3C(C=5C(O)=CC(O)=C(C(=O)CC(C)C)C5O)CO2)C(=O)CC(C)C)CC(C)C
 
 $$$$
@@ -13017,10 +13017,10 @@ M  V30 76 1 74 76
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0427015
 
-> <SMILES> 
+> <SMILES>
 O=C1NC(C(=O)N(C)C(C(=O)NC(C(=O)NCCC(=O)NC(C(=O)N(C)C(C(=O)NCCC(=O)NC(C(=O)N(C)C(C(=O)NC(C(=O)NCC1)C)C(C)C)C(C)CC)C(C)CC)CC(C)C)C(C)C)C(C)C)CC(C)C
 
 $$$$
@@ -13271,10 +13271,10 @@ M  V30 118 1 2 117
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0148254
 
-> <SMILES> 
+> <SMILES>
 O=C(NC1C(OC(CO)C(O)C1O)OC2C(O)C(NC(=O)C)C(OC2CO)OP(=O)(O)OP(=O)(O)OCCC(C)CCC=C(C)CCC=C(C)CCC=C(C)CCC=C(C)CCC=C(C)CCC=C(C)CCC=C(C)CCC=C(C)CCC=C(C)CCC=C(C)CCC=C(C)CCC=C(C)CCC=C(C)CCC=C(C)CCC=C(C)C)C
 
 $$$$
@@ -13405,10 +13405,10 @@ M  V30 60 1 54 55
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0093286
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C(OC(=O)C=CC1=CC(O)=C(O)C2=C1C=C(C3=CC(O)=C(O)C4=C3C=5C=CC=C(O)C5CCC4)CC2CC)C(C6=CC(O)=C(O)C(O)=C6)CNCC
 
 $$$$
@@ -13504,10 +13504,10 @@ M  V30 40 1 39 40
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437336
 
-> <SMILES> 
+> <SMILES>
 O=C(OC(CO)COP(=O)(O)OC1C(O)C(O)C(O)C(O)C1O)CCCCCCCCCCCCCCCCC
 
 $$$$
@@ -13685,10 +13685,10 @@ M  V30 85 1 5 77
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0305375
 
-> <SMILES> 
+> <SMILES>
 O=C1CCC2=CC=C(OC)C(OCC3=C4C=CC(C=5C=C(O)C(=C(C=C3C(O)O)C45)C(C#COC(C1)CC6C=C(O)C=CC6CCCCC=7C=CC=C(C7)NC(=N)NC)CC=8C=CC=C(C8)CCOCC9CCCC9)C)=C2
 
 $$$$
@@ -13861,10 +13861,10 @@ M  V30 82 1 74 75
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0090462
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC(OCNC(=N)NCCCCO)=C2OC3OC4(CCC=5C(OC)=C(O)C(OCCC=6C=CC=C(C6)CC)=C(O)C5C(=O)OC4O)C(O)C(O)(CC#CC7C(CC(C)C)C(NC1=C2C87CCCC8)C)C3O
 
 $$$$
@@ -14060,10 +14060,10 @@ M  V30 90 1 88 90
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0212175
 
-> <SMILES> 
+> <SMILES>
 O=C(N)CC1NC(=O)C(NC(=O)C(NC(=O)CCNC(=O)CNC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(NC(=O)C(NC1=O)C)CC(O)C(=O)N)C(O)C)C(O)C)CCC(O)CCCCCCCCC)CCCCCCCC(O)CCCCCC)CC(=O)N
 
 $$$$
@@ -14228,10 +14228,10 @@ M  V30 76 2 68 73
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0259989
 
-> <SMILES> 
+> <SMILES>
 O=C1NC(C(=O)NC(C(=O)N(C)C(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC1C)CC(C)CO)C(O)C2=CN(C=3C=CC=CC32)C(C=C)(C)C)C(C=C(C)C)C)CC(C)C)C(C)C)C(OC)C=4C=CC=CC4
 
 $$$$
@@ -14405,10 +14405,10 @@ M  V30 81 1 76 77
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0189449
 
-> <SMILES> 
+> <SMILES>
 O=C1OC2C(OC(C)C(OC3OC(C)C(OC4OC(C)C(OC(=O)CCCCCCC)C(O)C4O)C(O)C3OC(=O)CCCCCCC)C2O)OC5C(OC(CCCCC)CCCCCCCCC1)OC(CO)C(O)C5O
 
 $$$$
@@ -14652,10 +14652,10 @@ M  V30 116 1 4 112
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0118603
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1(OC2C(O)C(OC(CO)C2OC3OC(CO)C(O)C(OC4OC(CO)C(O)C(O)C4O)C3CC(=O)C)OC5C(O)C(O)C(OCC(NC(=O)CCCCCCCCCCCCCCCCCCCCCC)C(O)CCCCCCCCCCCCCCC)OC5CO)OC(C(O)C(O)CO)C(NC(=O)C)C(O)C1
 
 $$$$
@@ -14820,10 +14820,10 @@ M  V30 75 1 2 74
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437386
 
-> <SMILES> 
+> <SMILES>
 O=C(NC1C(OC(CO)C(O)C1O)OC2C(O)C(O)C(OCC(NC(=O)C(O)CCCCCCCCCCCCCCCCCCCCC)C(O)C(O)CCCCCCCCCCCCCCCC)OC2CO)C
 
 $$$$
@@ -15039,10 +15039,10 @@ M  V30 102 1 97 98
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0343077
 
-> <SMILES> 
+> <SMILES>
 O=C1OCC2OC(OC(CC(=O)OCC3OC(OC(C1)CCCCCCCCCCCCCC(OC4OC(CO)C(O)C(O)C4O)CCCCCC(O)C)C(O)C(O)C3O)CCCCCCCCCCCC(OC5OC(CO)C(O)C(O)C5O)CCCCCC(O)C)C(O)C(O)C2O
 
 $$$$
@@ -15212,10 +15212,10 @@ M  V30 82 1 59 72
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437397
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC(=C1)CC2=CC(=CC=C2O)CCCCCCC3OCC=4C=CC(N)NC4N5C=C6C=C(C=C(C6=C5)COC7=C(O)C=C(C8=C7C=CC(C8)C(O)C3)CO)C9%10C=%11C=CC=CC%11CCC%10COCC9
 
 $$$$
@@ -15377,10 +15377,10 @@ M  V30 77 1 4 69
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0315548
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C12CCC(C)(CO)CC2C3=CCC4C(C)(CCC5C(C)(CO)C(OC6OCC(O)C(O)C6O)C(O)C(CC7C(C(=O)NC7C(C=8N=CNC8)CCCN)CO)C54C9CCCCC9)C3(C)CC1
 
 $$$$
@@ -15547,10 +15547,10 @@ M  V30 80 1 70 71
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437416
 
-> <SMILES> 
+> <SMILES>
 O=C1OCC2C(C=C3C=CCC4C(C=CC2C34)CCCC(C)(CC=5C=CC(N)NC5)CC=6C=CC=C7C(=O)C8(OC18C(=O)C76)CC=C(C)CC9(NC(=NCCC9)NC)C=%10C=C(NCC%10)NCNC)NCC
 
 $$$$
@@ -15676,10 +15676,10 @@ M  V30 55 1 53 55
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0171764
 
-> <SMILES> 
+> <SMILES>
 O=C(NC1C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)OC1C)C)CC(C)C)CC(C)C)CC(C)C)CC(C)C)C)CC(C)C
 
 $$$$
@@ -15888,10 +15888,10 @@ M  V30 98 1 4 95
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0142781
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C(=CCC(O)CC1OC(CC=C1)CC(OC)C(C)C(O)CC(O)C(C)C(OC(=O)C(=CCC(O)CC2OC(CC=C2)CC(OC)C(C)C(O)CC(O)C(C)C(O)C(C)C(O)C(C)CCC3OC(C)CC(OC)C3)C)C(C)C(O)C(C)CCC4OC(C)CC(OC)C4)C
 
 $$$$
@@ -16053,10 +16053,10 @@ M  V30 77 1 2 69
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0100625
 
-> <SMILES> 
+> <SMILES>
 O=C(OC1C(OC(C)C(O)C1OC(=O)C)OC2(C)CC(OC34OCC5(C3)C6CCC7C(C)(C)C(OC8OCC(OC9OC(C)C(O)C(O)C9O)C(O)C8O)CCC7(C)C6CCC5C42C)C=C(C)C)C
 
 $$$$
@@ -16196,10 +16196,10 @@ M  V30 62 1 61 62
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437429
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC(OC(=O)CCCC=CCC=CC=CC(O)CC=CCC=CCC)COP(=O)(O)OC1C(O)C(O)C(O)C(O)C1O)CCCCCCCC=CCCCCCCCC
 
 $$$$
@@ -16327,10 +16327,10 @@ M  V30 56 1 55 56
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0113770
 
-> <SMILES> 
+> <SMILES>
 O=C(NC(COP(=O)(O)OC1C(O)C(O)C(O)C(O)C1O)C(O)C(O)CCCCCCCCCCCCCC)CCCCCCCCCCCCCCCCC
 
 $$$$
@@ -16540,10 +16540,10 @@ M  V30 104 1 80 90
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437469
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC(=C1)CC2=CC(=CC=C2O)CCC3C#CC=4C5=C(NC6NC(OC)CCC46)N7C=C8C=C(C=C(C8=C7)COC9=C(O)C=C(C%10=C9C(CCCO)CC(C%10)C(O)CC(OC5)CCC3)CO)C%11%12C=%13C%14=CC=CC%13CCC%12C%15(OCC%11CC%14)CCCCC%15
 
 $$$$
@@ -16701,10 +16701,10 @@ M  V30 71 1 70 71
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0141958
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC(OC(=O)CCCCCCCC=CCCCCCCCC)COP(=O)(O)OC1C(O)C(OP(=O)(O)O)C(OP(=O)(O)O)C(OP(=O)(O)O)C1O)CCCCCCCCCC=CCCCCCC
 
 $$$$
@@ -16861,10 +16861,10 @@ M  V30 71 1 69 70
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0115112
 
-> <SMILES> 
+> <SMILES>
 O=C(NC(COC1OC(CO)C(O)C(OC2OC(C(O)CO)C(O)C2O)C1O)C(O)C(O)CCCCCCCCCCCCCC)C(O)CCCCCCCCCCCCCCCCCCCCCC
 
 $$$$
@@ -17045,10 +17045,10 @@ M  V30 87 1 74 78
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0087412
 
-> <SMILES> 
+> <SMILES>
 O=C1OCC(C2C#CCC3CC4(O)C5=C(NC(C(=O)CCC6=CC=C(O)C=C6)CO)C(=O)C7CC(O)C(O)CC7(C)C5CCC4(CCN=C(N)N)C3C(O)(C)C(O)CC(C)C8CC=C9CCC(C)CC9C8C2)C1C=%10C=CNC%10
 
 $$$$
@@ -17205,10 +17205,10 @@ M  V30 74 1 66 67
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0328579
 
-> <SMILES> 
+> <SMILES>
 O=C1C=CC2C3CC(C=CC3C(CCCO)C4CCCC24C5=CC(OC6(CNC)CCC(CC(O)OC)C6)=C(O)C(=C5)NC(=NC#CCC7CCCC17CC8=CC=C(O)C(OC)=C8)NC)CC
 
 $$$$
@@ -17340,10 +17340,10 @@ M  V30 58 1 57 58
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437492
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC(OC(=O)CCCCCCCC=CCC=CCCCCC)COP(=O)(O)OC1C(O)C(O)C(O)C(O)C1O)CCCCCCCCCCCCCCCC
 
 $$$$
@@ -17754,10 +17754,10 @@ M  V30 207 1 180 188
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0075232
 
-> <SMILES> 
+> <SMILES>
 O=C(OCC1OC(OC(=O)C2=CC(O)=C(O)C(O)=C2)C(OC(=O)C3=CC(O)=C(O)C(O)=C3)C(OC(=O)C4=CC(O)=C(O)C(O)=C4)C1OC(=O)C5=CC(O)=C(O)C(O)=C5OC=6C=C7C(=O)OCC8OC(OC(=O)C9=CC(O)=C(O)C(O)=C9OC=%10C=C%11C(=O)OCC%12OC(O)C%13OC(=O)C%14=CC(O)=C(O)C(O)=C%14C%15=C(O)C(O)=C(O)C=C%15C(=O)OC%13C%12OC(=O)C%16=CC(O)=C(O)C(O)=C%16C%11=C(O)C%10O)C(OC(=O)C%17=CC(O)=C(O)C(O)=C%17)C(OC%18=CC(O)=C(O)C(O)=C%18)C8OC(=O)C%19=CC(O)=C(O)C(O)=C%19C7=C(O)C6O)C%20=CC(O)=C(O)C(O)=C%20
 
 $$$$
@@ -17929,10 +17929,10 @@ M  V30 80 2 71 76
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0267238
 
-> <SMILES> 
+> <SMILES>
 O=C1NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)N2CCCC2C(=O)N3CCCC3C(=O)NC1CC=4C=CC=CC4)C(C)CC)CC(C)C)CCS(=O)C)C(C)CC)C(C)C)CC=5C=CC=CC5
 
 $$$$
@@ -18106,10 +18106,10 @@ M  V30 83 2 71 75
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0197274
 
-> <SMILES> 
+> <SMILES>
 O=C1OCC(C2C#CCC3CC4(O)C5=C(NC(C(=O)C)CO)C(=O)C6(CCCCC)CC(O)C(O)CC6(C)C5CCC4(CCN=C(N)N)C3C(O)(C)C(O)CC(C)C7CC=C8CCC(C)CC8C7C2)C1C=9C=CNC9
 
 $$$$
@@ -18316,10 +18316,10 @@ M  V30 97 1 93 94
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0437537
 
-> <SMILES> 
+> <SMILES>
 O=C(C=CC=1C=CC=CC1C(O)C(O)C=CC)NC2C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)NC(C(=O)OC2C)CC(C)C)C(C)C)C3=CC=C(O)C=C3)CO)C(O)C)CO)CC=4C=CC=CC4)CC(C)C)CO
 
 $$$$
@@ -18510,10 +18510,10 @@ M  V30 93 1 75 82
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0100801
 
-> <SMILES> 
+> <SMILES>
 O=C1OC2=CCC3(CCC(C3)C(NCC(O)C)C=4C=C(C=C(C4)CCNCC5=CC=CC(=C5)C=6C=CC(O)=CC6C7=C8C(=O)OC(=CC(CC=9C=CC=CC9)CCO)C8%10CCC7C%11CCC2=C1C%11%10)CNCC(C)C)C%12CCNC(NC)C%12
 
 $$$$
diff --git a/Workflow/data2/set_chlorbenzene.sdf b/Workflow/data2/set_chlorbenzene.sdf
index 74f3fc6..67bf9e8 100644
--- a/Workflow/data2/set_chlorbenzene.sdf
+++ b/Workflow/data2/set_chlorbenzene.sdf
@@ -24,10 +24,10 @@ M  V30 7 2 2 7
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0009107
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1
 
 $$$$
@@ -59,10 +59,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0341270
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Cl)C=C1
 
 $$$$
@@ -96,10 +96,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0206286
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Cl)C(Cl)=C1
 
 $$$$
@@ -131,10 +131,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0284887
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1Cl
 
 $$$$
@@ -166,10 +166,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0080171
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(Cl)=C1
 
 $$$$
@@ -203,10 +203,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0401033
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -240,10 +240,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0231789
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(Cl)=C1O
 
 $$$$
@@ -275,10 +275,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0109649
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(O)=C1
 
 $$$$
@@ -310,10 +310,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0071171
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1O
 
 $$$$
@@ -347,10 +347,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0236901
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Cl)C(O)=C1
 
 $$$$
@@ -384,10 +384,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0060336
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(O)=C1Cl
 
 $$$$
@@ -421,10 +421,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0386646
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1Cl
 
 $$$$
@@ -456,10 +456,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0334769
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1
 
 $$$$
@@ -495,10 +495,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0161827
 
-> <SMILES> 
+> <SMILES>
 N#CC=1C(Cl)=CC=CC1Cl
 
 $$$$
@@ -532,10 +532,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0081205
 
-> <SMILES> 
+> <SMILES>
 FC1=CC(N)=CC=C1Cl
 
 $$$$
@@ -569,10 +569,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0331365
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC(O)=CC=C1O
 
 $$$$
@@ -606,10 +606,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0040093
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Cl)C(N)=C1
 
 $$$$
@@ -643,10 +643,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0079961
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(N)=C1Cl
 
 $$$$
@@ -680,10 +680,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0211688
 
-> <SMILES> 
+> <SMILES>
 FC1=CC(Cl)=CC=C1N
 
 $$$$
@@ -717,10 +717,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0042746
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=CC1Cl
 
 $$$$
@@ -754,10 +754,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0262942
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(Cl)C=C1N
 
 $$$$
@@ -791,10 +791,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0029750
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(Cl)=C1N
 
 $$$$
@@ -828,10 +828,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0048955
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(N)C(Cl)=C1
 
 $$$$
@@ -867,10 +867,10 @@ M  V30 10 2 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0001453
 
-> <SMILES> 
+> <SMILES>
 O=C([O-])C=1C=CC=C(Cl)C1
 
 $$$$
@@ -904,10 +904,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0309778
 
-> <SMILES> 
+> <SMILES>
 [S-]C1=CC=C(Cl)C=C1N
 
 $$$$
@@ -939,10 +939,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0066965
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(N)=C1
 
 $$$$
@@ -976,10 +976,10 @@ M  V30 9 2 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0001454
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=C(Cl)C1
 
 $$$$
@@ -1013,10 +1013,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0365419
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(Cl)C(N)=C1
 
 $$$$
@@ -1050,10 +1050,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0099468
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(N)C(Cl)=C1
 
 $$$$
@@ -1087,10 +1087,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0045325
 
-> <SMILES> 
+> <SMILES>
 FC=1C(Cl)=CC=CC1N
 
 $$$$
@@ -1124,10 +1124,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0038991
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(N)C=C1Cl
 
 $$$$
@@ -1161,10 +1161,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0257608
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=CC(Cl)=C1N
 
 $$$$
@@ -1200,10 +1200,10 @@ M  V30 10 1 3 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0066778
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(Cl)C(Cl)=C1
 
 $$$$
@@ -1241,10 +1241,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0175601
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C(Cl)C=C1Cl
 
 $$$$
@@ -1282,10 +1282,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0291002
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -1319,10 +1319,10 @@ M  V30 9 1 7 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0209531
 
-> <SMILES> 
+> <SMILES>
 [O-]C1=CC=C(Cl)C(=C1)C
 
 $$$$
@@ -1356,10 +1356,10 @@ M  V30 9 1 5 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0186814
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(C(Br)=C1)C
 
 $$$$
@@ -1397,10 +1397,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0037006
 
-> <SMILES> 
+> <SMILES>
 FC(F)(F)C=1C=CC=CC1Cl
 
 $$$$
@@ -1436,10 +1436,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0231069
 
-> <SMILES> 
+> <SMILES>
 N#CNC1=CC=C(Cl)C=C1
 
 $$$$
@@ -1471,10 +1471,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0335361
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1C
 
 $$$$
@@ -1510,10 +1510,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0083959
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C=1C=CC=CC1Cl
 
 $$$$
@@ -1549,10 +1549,10 @@ M  V30 10 2 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0206363
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C=1C=CC=C(Cl)C1
 
 $$$$
@@ -1589,10 +1589,10 @@ M  V30 11 1 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0193006
 
-> <SMILES> 
+> <SMILES>
 O=C1C=2C(Cl)=CC=CC2C1
 
 $$$$
@@ -1624,10 +1624,10 @@ M  V30 8 1 5 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0177290
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(C=C1)C
 
 $$$$
@@ -1665,10 +1665,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0047539
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC(Cl)=CC=C1O
 
 $$$$
@@ -1702,10 +1702,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0266846
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Br)C=C1C
 
 $$$$
@@ -1743,10 +1743,10 @@ M  V30 11 1 5 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0062089
 
-> <SMILES> 
+> <SMILES>
 FC(F)(F)C1=CC=C(Cl)C=C1
 
 $$$$
@@ -1780,10 +1780,10 @@ M  V30 9 1 7 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0064949
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Br)C(=C1)C
 
 $$$$
@@ -1822,10 +1822,10 @@ M  V30 12 2 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0052683
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=2N=NN(O)C2C1
 
 $$$$
@@ -1864,10 +1864,10 @@ M  V30 12 2 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0199487
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=2OC(O)=NC2C1
 
 $$$$
@@ -1901,10 +1901,10 @@ M  V30 9 1 5 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0253916
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(C=C1Cl)C
 
 $$$$
@@ -1940,10 +1940,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0147578
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C(Cl)C=C1
 
 $$$$
@@ -1981,10 +1981,10 @@ M  V30 11 2 5 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0310438
 
-> <SMILES> 
+> <SMILES>
 FC(F)(F)C=1C=CC=C(Cl)C1
 
 $$$$
@@ -2018,10 +2018,10 @@ M  V30 9 1 4 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0145784
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC(=CC=C1O)C
 
 $$$$
@@ -2055,10 +2055,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0329015
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1C
 
 $$$$
@@ -2094,10 +2094,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0325354
 
-> <SMILES> 
+> <SMILES>
 FC=1C(Cl)=CC=CC1OC
 
 $$$$
@@ -2131,10 +2131,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0024117
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1NN
 
 $$$$
@@ -2172,10 +2172,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0189889
 
-> <SMILES> 
+> <SMILES>
 O=C(N)C=1C(Cl)=CC=CC1Cl
 
 $$$$
@@ -2213,10 +2213,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0052470
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(C=C1)C(Cl)=NO
 
 $$$$
@@ -2254,10 +2254,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0067522
 
-> <SMILES> 
+> <SMILES>
 S=C(N)C=1C(Cl)=CC=CC1Cl
 
 $$$$
@@ -2295,10 +2295,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0370665
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(Cl)C(N)=C1
 
 $$$$
@@ -2334,10 +2334,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0143389
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(Cl)=C1OC
 
 $$$$
@@ -2373,10 +2373,10 @@ M  V30 10 1 6 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0353020
 
-> <SMILES> 
+> <SMILES>
 N#CC1=CC=C(C=C1Cl)C
 
 $$$$
@@ -2412,10 +2412,10 @@ M  V30 10 2 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0036584
 
-> <SMILES> 
+> <SMILES>
 O=C(N)C=1C=CC=C(Cl)C1
 
 $$$$
@@ -2453,10 +2453,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0207817
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=CC(Cl)=C1C=NO
 
 $$$$
@@ -2494,10 +2494,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0094694
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC(Cl)=CC=C1N
 
 $$$$
@@ -2533,10 +2533,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0045832
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=CC(Cl)=C1OC
 
 $$$$
@@ -2577,10 +2577,10 @@ M  V30 13 2 6 12
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0163801
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC=2NC(Cl)=C(Cl)C12
 
 $$$$
@@ -2618,10 +2618,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0131355
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -2657,10 +2657,10 @@ M  V30 10 1 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0036786
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(C=NO)C=C1
 
 $$$$
@@ -2696,10 +2696,10 @@ M  V30 10 1 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0048957
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(OC)C(Cl)=C1
 
 $$$$
@@ -2737,10 +2737,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0052096
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(C=NO)C=C1Cl
 
 $$$$
@@ -2776,10 +2776,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0034380
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(OC)C=C1Cl
 
 $$$$
@@ -2815,10 +2815,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0369428
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(OC)C=C1Cl
 
 $$$$
@@ -2860,10 +2860,10 @@ M  V30 13 2 11 13
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0307258
 
-> <SMILES> 
+> <SMILES>
 O=N(=O)C1=CC=C(Cl)C(=C1)N(=O)=O
 
 $$$$
@@ -2902,10 +2902,10 @@ M  V30 12 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0335896
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C2OC(=N)NC2=C1
 
 $$$$
@@ -2939,10 +2939,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0167565
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(OC)=C1
 
 $$$$
@@ -2983,10 +2983,10 @@ M  V30 13 2 6 12
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0152356
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC=2C(Cl)=C(Cl)NC12
 
 $$$$
@@ -3024,10 +3024,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0065931
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(Cl)C=C1N
 
 $$$$
@@ -3063,10 +3063,10 @@ M  V30 10 1 5 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0033668
 
-> <SMILES> 
+> <SMILES>
 N#CC1=CC(=CC=C1Cl)C
 
 $$$$
@@ -3104,10 +3104,10 @@ M  V30 11 1 9 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0048870
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(Cl)C(=C1)C
 
 $$$$
@@ -3145,10 +3145,10 @@ M  V30 11 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0096171
 
-> <SMILES> 
+> <SMILES>
 O=C(C1=CC=C(F)C=C1Cl)C
 
 $$$$
@@ -3182,10 +3182,10 @@ M  V30 9 1 7 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0245359
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(N)C(=C1)C
 
 $$$$
@@ -3223,10 +3223,10 @@ M  V30 11 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0373878
 
-> <SMILES> 
+> <SMILES>
 O=C(C=1C(F)=CC=CC1Cl)C
 
 $$$$
@@ -3264,10 +3264,10 @@ M  V30 11 1 5 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0172129
 
-> <SMILES> 
+> <SMILES>
 O=C(O)NC1=CC=C(Cl)C=C1
 
 $$$$
@@ -3301,10 +3301,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0024502
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(N)C=C1C
 
 $$$$
@@ -3347,10 +3347,10 @@ M  V30 14 1 2 13
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0039527
 
-> <SMILES> 
+> <SMILES>
 O=C1OC=2C=CC(Cl)=CC2C([O-])=C1
 
 $$$$
@@ -3391,10 +3391,10 @@ M  V30 13 2 2 12
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0346227
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC2=C(Cl)C=CN=C2C1
 
 $$$$
@@ -3432,10 +3432,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0150804
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C=1C=CC=C(Cl)C1N
 
 $$$$
@@ -3478,10 +3478,10 @@ M  V30 14 2 6 13
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0252914
 
-> <SMILES> 
+> <SMILES>
 O=C1C=COC=2C(Br)=CC(Cl)=CC12
 
 $$$$
@@ -3519,10 +3519,10 @@ M  V30 11 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0168029
 
-> <SMILES> 
+> <SMILES>
 O=C(C1=CC=C(F)C(Cl)=C1)C
 
 $$$$
@@ -3556,10 +3556,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0028854
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC(N)=CC=C1C
 
 $$$$
@@ -3597,10 +3597,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0130254
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC(Cl)=CC=C1C
 
 $$$$
@@ -3641,10 +3641,10 @@ M  V30 13 1 6 12
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0240355
 
-> <SMILES> 
+> <SMILES>
 O=C1C=COC2=CC=C(Cl)C=C12
 
 $$$$
@@ -3687,10 +3687,10 @@ M  V30 14 2 6 13
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0175827
 
-> <SMILES> 
+> <SMILES>
 O=C1C=COC=2C(Cl)=CC(Cl)=CC12
 
 $$$$
@@ -3724,10 +3724,10 @@ M  V30 9 1 4 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0363714
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC(=CC=C1N)C
 
 $$$$
@@ -3770,10 +3770,10 @@ M  V30 14 1 7 13
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0100364
 
-> <SMILES> 
+> <SMILES>
 O=C1C(Br)=COC2=CC=C(Cl)C=C12
 
 $$$$
@@ -3809,10 +3809,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0112835
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1CO
 
 $$$$
@@ -3846,10 +3846,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0102945
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(N)=C1C
 
 $$$$
@@ -3887,10 +3887,10 @@ M  V30 11 1 3 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0146169
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(Cl)C(OC)=C1
 
 $$$$
diff --git a/Workflow/data2/set_phenole.sdf b/Workflow/data2/set_phenole.sdf
index a976471..1d38b54 100644
--- a/Workflow/data2/set_phenole.sdf
+++ b/Workflow/data2/set_phenole.sdf
@@ -28,10 +28,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0216116
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C(Br)=C1
 
 $$$$
@@ -63,10 +63,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0085593
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C=C1
 
 $$$$
@@ -100,10 +100,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0401033
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -135,10 +135,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0109649
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(O)=C1
 
 $$$$
@@ -172,10 +172,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0088749
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(Br)C(O)=C1
 
 $$$$
@@ -207,10 +207,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0071171
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1O
 
 $$$$
@@ -240,10 +240,10 @@ M  V30 7 2 2 7
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0155356
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=CC1
 
 $$$$
@@ -277,10 +277,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0061661
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(O)C(Br)=C1
 
 $$$$
@@ -314,10 +314,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0395062
 
-> <SMILES> 
+> <SMILES>
 FC1=CC(O)=CC=C1Br
 
 $$$$
@@ -351,10 +351,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0236901
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Cl)C(O)=C1
 
 $$$$
@@ -386,10 +386,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0032139
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(O)C=C1
 
 $$$$
@@ -423,10 +423,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0059204
 
-> <SMILES> 
+> <SMILES>
 FC1=CC(Br)=CC=C1O
 
 $$$$
@@ -460,10 +460,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0060336
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(O)=C1Cl
 
 $$$$
@@ -495,10 +495,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0083000
 
-> <SMILES> 
+> <SMILES>
 BrC=1C=CC=CC1O
 
 $$$$
@@ -532,10 +532,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0386646
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1Cl
 
 $$$$
@@ -567,10 +567,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0334769
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1
 
 $$$$
@@ -604,10 +604,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0331365
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC(O)=CC=C1O
 
 $$$$
@@ -641,10 +641,10 @@ M  V30 9 1 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0148599
 
-> <SMILES> 
+> <SMILES>
 N#CC1=CC=C(O)C=C1
 
 $$$$
@@ -678,10 +678,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0409072
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=CC(O)=C1O
 
 $$$$
@@ -713,10 +713,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0414137
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC(O)=C1
 
 $$$$
@@ -748,10 +748,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0246516
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(O)C=C1
 
 $$$$
@@ -785,10 +785,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0161760
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC(O)=CC=C1O
 
 $$$$
@@ -822,10 +822,10 @@ M  V30 9 2 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0104146
 
-> <SMILES> 
+> <SMILES>
 N#CC=1C=CC=C(O)C1
 
 $$$$
@@ -859,10 +859,10 @@ M  V30 9 1 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0178351
 
-> <SMILES> 
+> <SMILES>
 N#[N+]C1=CC=C(O)C=C1
 
 $$$$
@@ -894,10 +894,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0143972
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=CC1O
 
 $$$$
@@ -933,10 +933,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0284631
 
-> <SMILES> 
+> <SMILES>
 N#CC1=CC(O)=CC=C1O
 
 $$$$
@@ -974,10 +974,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0291002
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -1013,10 +1013,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0273783
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(O)C=C1
 
 $$$$
@@ -1048,10 +1048,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0115137
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=CC1N
 
 $$$$
@@ -1083,10 +1083,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0172517
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC(N)=C1
 
 $$$$
@@ -1122,10 +1122,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0157204
 
-> <SMILES> 
+> <SMILES>
 N#CSC1=CC=C(O)C=C1
 
 $$$$
@@ -1159,10 +1159,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0187325
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(O)C(O)=C1
 
 $$$$
@@ -1196,10 +1196,10 @@ M  V30 9 2 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0106037
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=C(O)C1
 
 $$$$
@@ -1233,10 +1233,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0420325
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(N)C(O)=C1
 
 $$$$
@@ -1272,10 +1272,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0068656
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C=1C=CC=CC1O
 
 $$$$
@@ -1311,10 +1311,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0293189
 
-> <SMILES> 
+> <SMILES>
 N#CC1=CC=C(O)C=C1O
 
 $$$$
@@ -1351,10 +1351,10 @@ M  V30 11 2 6 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0295607
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC=2NN=NC12
 
 $$$$
@@ -1388,10 +1388,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0248019
 
-> <SMILES> 
+> <SMILES>
 FC1=CC(O)=CC=C1N
 
 $$$$
@@ -1425,10 +1425,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0070007
 
-> <SMILES> 
+> <SMILES>
 FC1=CC(N)=CC=C1O
 
 $$$$
@@ -1464,10 +1464,10 @@ M  V30 10 1 3 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0155663
 
-> <SMILES> 
+> <SMILES>
 N#CC1=CC=C(O)C(O)=C1
 
 $$$$
@@ -1505,10 +1505,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0047539
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC(Cl)=CC=C1O
 
 $$$$
@@ -1540,10 +1540,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0149529
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(N)C=C1
 
 $$$$
@@ -1580,10 +1580,10 @@ M  V30 11 2 5 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0079924
 
-> <SMILES> 
+> <SMILES>
 OC1=NOC=2C=CC=CC12
 
 $$$$
@@ -1617,10 +1617,10 @@ M  V30 9 1 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0076387
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(O)C=C1
 
 $$$$
@@ -1654,10 +1654,10 @@ M  V30 9 1 3 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0230702
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(O)C=C1
 
 $$$$
@@ -1696,10 +1696,10 @@ M  V30 12 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0374905
 
-> <SMILES> 
+> <SMILES>
 O=C1OC2=CC(O)=CC=C2S1
 
 $$$$
@@ -1733,10 +1733,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0410095
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=CC1O
 
 $$$$
@@ -1770,10 +1770,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0132365
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=CC1O
 
 $$$$
@@ -1807,10 +1807,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0062122
 
-> <SMILES> 
+> <SMILES>
 FC1=CC=C(O)C(N)=C1
 
 $$$$
@@ -1846,10 +1846,10 @@ M  V30 10 1 3 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0212461
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(O)C(Br)=C1
 
 $$$$
@@ -1886,10 +1886,10 @@ M  V30 11 2 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0361868
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=2NN=NC2C1
 
 $$$$
@@ -1923,10 +1923,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0308187
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC(O)=C1O
 
 $$$$
@@ -1964,10 +1964,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0155417
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C([O-])C(O)=C1
 
 $$$$
@@ -2005,10 +2005,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0077475
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC(F)=CC=C1O
 
 $$$$
@@ -2046,10 +2046,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0210532
 
-> <SMILES> 
+> <SMILES>
 O=C(Cl)C1=CC=C(O)C=C1O
 
 $$$$
@@ -2087,10 +2087,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0038089
 
-> <SMILES> 
+> <SMILES>
 O=C([O-])C=1C(O)=CC=CC1O
 
 $$$$
@@ -2124,10 +2124,10 @@ M  V30 9 1 4 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0145784
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC(=CC=C1O)C
 
 $$$$
@@ -2166,10 +2166,10 @@ M  V30 12 2 5 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0334574
 
-> <SMILES> 
+> <SMILES>
 OC1=NOC=2C=C(O)C=CC12
 
 $$$$
@@ -2206,10 +2206,10 @@ M  V30 11 2 6 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0278370
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC=2OC=CC12
 
 $$$$
@@ -2243,10 +2243,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0329015
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C=C1C
 
 $$$$
@@ -2282,10 +2282,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0326066
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC(O)=CC=C1O
 
 $$$$
@@ -2323,10 +2323,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0002331
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(O)C=C1O
 
 $$$$
@@ -2362,10 +2362,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0253685
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C(O)C=C1
 
 $$$$
@@ -2403,10 +2403,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0030665
 
-> <SMILES> 
+> <SMILES>
 O=C([O-])C=1C=CC=C(O)C1O
 
 $$$$
@@ -2440,10 +2440,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0025703
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C=C1C
 
 $$$$
@@ -2479,10 +2479,10 @@ M  V30 10 1 3 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0203672
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(O)C(O)=C1
 
 $$$$
@@ -2518,10 +2518,10 @@ M  V30 10 2 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0217243
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C=1C=CC=C(O)C1
 
 $$$$
@@ -2560,10 +2560,10 @@ M  V30 12 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0192870
 
-> <SMILES> 
+> <SMILES>
 O=C1SC2=CC(O)=CC=C2N1
 
 $$$$
@@ -2601,10 +2601,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0415681
 
-> <SMILES> 
+> <SMILES>
 O=S(=O)([O-])C=1C=CC=CC1O
 
 $$$$
@@ -2640,10 +2640,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0382408
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(O)C=C1O
 
 $$$$
@@ -2675,10 +2675,10 @@ M  V30 8 1 5 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0267550
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(C=C1)C
 
 $$$$
@@ -2714,10 +2714,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0104242
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=C(O)C1O
 
 $$$$
@@ -2753,10 +2753,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0315067
 
-> <SMILES> 
+> <SMILES>
 O=[N](O)C1=CC=C(O)C=C1
 
 $$$$
@@ -2793,10 +2793,10 @@ M  V30 11 2 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0360936
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=2OC=CC2C1
 
 $$$$
@@ -2833,10 +2833,10 @@ M  V30 11 2 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0083825
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=2NC=NC2C1
 
 $$$$
@@ -2873,10 +2873,10 @@ M  V30 11 1 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0223104
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C2OCOC2=C1
 
 $$$$
@@ -2914,10 +2914,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0283266
 
-> <SMILES> 
+> <SMILES>
 O=NC1=CC(C=O)=CC=C1O
 
 $$$$
@@ -2955,10 +2955,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0131355
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -2990,10 +2990,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0242840
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=CC1C
 
 $$$$
@@ -3025,10 +3025,10 @@ M  V30 8 1 6 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0355586
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC(=C1)C
 
 $$$$
@@ -3062,10 +3062,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0176630
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(O)C(N)=C1
 
 $$$$
@@ -3103,10 +3103,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0047841
 
-> <SMILES> 
+> <SMILES>
 O=C([O-])C1=CC=C(O)C=C1O
 
 $$$$
@@ -3143,10 +3143,10 @@ M  V30 11 2 2 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0263236
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=2C=COC2C1
 
 $$$$
@@ -3184,10 +3184,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0027644
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC(O)=CC=C1O
 
 $$$$
@@ -3225,10 +3225,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0064333
 
-> <SMILES> 
+> <SMILES>
 O=P([O-])([O-])C=1C=CC=CC1O
 
 $$$$
@@ -3266,10 +3266,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0085708
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC(O)=CC=C1[O-]
 
 $$$$
@@ -3308,10 +3308,10 @@ M  V30 12 1 2 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0377919
 
-> <SMILES> 
+> <SMILES>
 O=C1OC2=CC(O)=CC=C2N1
 
 $$$$
@@ -3349,10 +3349,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0392208
 
-> <SMILES> 
+> <SMILES>
 O=[N+]([O-])C1=CC=C(O)C(O)=C1
 
 $$$$
@@ -3390,10 +3390,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0414254
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C(O)C(Br)=C1
 
 $$$$
@@ -3429,10 +3429,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0230203
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C=1C=CC=CC1O
 
 $$$$
@@ -3470,10 +3470,10 @@ M  V30 11 1 4 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0086341
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C1=CC=C([O-])C(O)=C1
 
 $$$$
@@ -3511,10 +3511,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0200151
 
-> <SMILES> 
+> <SMILES>
 O=C(O)C=1C(O)=CC=CC1O
 
 $$$$
@@ -3548,10 +3548,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0268248
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=CC(OC)=C1
 
 $$$$
@@ -3587,10 +3587,10 @@ M  V30 10 1 4 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0232327
 
-> <SMILES> 
+> <SMILES>
 N#CCC1=CC=C(O)C=C1
 
 $$$$
@@ -3624,10 +3624,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0103281
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(C=C1)CO
 
 $$$$
@@ -3661,10 +3661,10 @@ M  V30 9 1 7 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0324010
 
-> <SMILES> 
+> <SMILES>
 OC1=CC=C(O)C(=C1)C
 
 $$$$
@@ -3698,10 +3698,10 @@ M  V30 9 1 8 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0104167
 
-> <SMILES> 
+> <SMILES>
 OC=1C=CC=CC1CO
 
 $$$$
@@ -3739,10 +3739,10 @@ M  V30 11 1 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0080275
 
-> <SMILES> 
+> <SMILES>
 O=CC1=CC=C(O)C(O)=C1O
 
 $$$$
@@ -3778,10 +3778,10 @@ M  V30 10 1 9 10
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0231136
 
-> <SMILES> 
+> <SMILES>
 OC=NC=1C=CC=CC1O
 
 $$$$
@@ -3819,10 +3819,10 @@ M  V30 11 2 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0288393
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=C(O)C1C=O
 
 $$$$
diff --git a/docs/conf.py b/docs/conf.py
index 7fdca62..05251a9 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -3,9 +3,7 @@
 # This file only contains a selection of the most common options. For a full
 # list see the documentation:
 # https://www.sphinx-doc.org/en/master/usage/configuration.html
-
 # -- Path setup --------------------------------------------------------------
-
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.
diff --git a/docs/requirements.txt b/docs/requirements.txt
index 5b667be..266782c 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1,13 +1,14 @@
-nbsphinx
-sphinx-autodoc-typehints
-furo
-rdkit-pypi
-matplotlib==3.5.1
-seaborn==0.11.2
+bokeh==2.4.3
 chemplot==1.2.0
-matplotlib_venn==0.11.6
 fpdf2==2.6.0
-bokeh==2.4.3
+furo
 IPython
+matplotlib==3.5.1
+matplotlib_venn==0.11.6
+nbsphinx
+pre-commit
 pytest
+rdkit-pypi==2022.9.5
 scikit-learn==1.1.1
+seaborn==0.11.2
+sphinx-autodoc-typehints
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..e96b497
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,11 @@
+bokeh==2.4.3
+chemplot==1.2.0
+chemplot @ git+https://github.com/Kohulan/ChemPlot.git@main#egg=chemplot
+fpdf2==2.6.0
+IPython
+matplotlib==3.5.1
+matplotlib_venn==0.11.6
+pre-commit
+rdkit-pypi==2022.9.5
+scikit-learn==1.1.1
+seaborn==0.11.2
diff --git a/setup.py b/setup.py
index 9d4a421..3aa4bb7 100644
--- a/setup.py
+++ b/setup.py
@@ -1,5 +1,4 @@
 #!/usr/bin/env python
-
 import setuptools
 
 with open("README.md", "r") as fh:
@@ -7,7 +6,7 @@
 
 setuptools.setup(
     name="cider-chem",
-    version="0.0.1-dev",
+    version="0.0.1",
     author="Hannah Busch",
     author_email="hannah.busch@uni-jena.de",
     maintainer="Jonas Schaub, Otto Brinkhaus, Kohulan Rajan",
@@ -24,7 +23,7 @@
         "matplotlib==3.5.1",
         "matplotlib_venn==0.11.6",
         "fpdf2==2.6.0",
-        "rdkit-pypi",
+        "rdkit-pypi==2022.9.5",
         "pytest",
         "scikit-learn==1.1.1",
         "chemplot @ git+https://github.com/Kohulan/ChemPlot.git@main#egg=chemplot",
@@ -33,8 +32,6 @@
     package_data={"CIDER": ["assets/*.*", "assets/*/*.*", "assets/*/*/*.*"]},
     classifiers=[
         "Programming Language :: Python :: 3",
-        "Programming Language :: Python :: 3.5",
-        "Programming Language :: Python :: 3.6",
         "Programming Language :: Python :: 3.7",
         "Programming Language :: Python :: 3.8",
         "Programming Language :: Python :: 3.9",
diff --git a/tox.ini b/tox.ini
index bb1e500..229f755 100644
--- a/tox.ini
+++ b/tox.ini
@@ -46,7 +46,7 @@ exclude =
     Workflow/data/set_chlorbenzene.sdf
     Workflow/data/set_phenole.sdf
     CIDER/__init__.py,
-    
+
 [pytest]
 filterwarnings =
     ignore::DeprecationWarning


Test patch:
diff --git a/Tests/test_functions.py b/Tests/test_functions.py
index f0270e9..007fe95 100644
--- a/Tests/test_functions.py
+++ b/Tests/test_functions.py
@@ -1,7 +1,9 @@
-from CIDER import ChemicalDatasetComparator
+import os
+
 from rdkit.Chem import Descriptors
 from rdkit.Chem import rdMolDescriptors
-import os
+
+from CIDER import ChemicalDatasetComparator
 
 cider = ChemicalDatasetComparator()
 test_dict_path = os.path.join(os.path.split(__file__)[0], "unittest_data")
@@ -146,7 +148,8 @@ def test_get_duplicate_key():
         key == cider.duplicates_id_keyname for key in list(testdict["set_A.sdf"].keys())
     )
     assert any(
-        key == cider.duplicates_index_keyname for key in list(testdict["set_A.sdf"].keys())
+        key == cider.duplicates_index_keyname
+        for key in list(testdict["set_A.sdf"].keys())
     )
     # Assert that the function returns the right number of duplicates
     assert testdict["set_A.sdf"][cider.duplicates_keyname] == 0
diff --git a/Tests/unittest_data/set_A.sdf b/Tests/unittest_data/set_A.sdf
index b16ca04..ccbc6c3 100644
--- a/Tests/unittest_data/set_A.sdf
+++ b/Tests/unittest_data/set_A.sdf
@@ -28,10 +28,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0206286
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(Cl)C(Cl)=C1
 
 $$$$
@@ -63,10 +63,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0284887
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1Cl
 
 $$$$
@@ -98,10 +98,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0080171
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(Cl)=C1
 
 $$$$
@@ -144,10 +144,10 @@ M  V30 14 1 7 13
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0100364
 
-> <SMILES> 
+> <SMILES>
 O=C1C(Br)=COC2=CC=C(Cl)C=C12
 
-$$$$
\ No newline at end of file
+$$$$
diff --git a/Tests/unittest_data/set_B.sdf b/Tests/unittest_data/set_B.sdf
index 10de890..d2169b5 100644
--- a/Tests/unittest_data/set_B.sdf
+++ b/Tests/unittest_data/set_B.sdf
@@ -28,10 +28,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0216116
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C(Br)=C1
 
 $$$$
@@ -63,10 +63,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0085593
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C=C1
 
 $$$$
@@ -100,10 +100,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0401033
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -135,8 +135,8 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0080171
 
-> <SMILES> 
-ClC1=CC=CC(Cl)=C1
\ No newline at end of file
+> <SMILES>
+ClC1=CC=CC(Cl)=C1
diff --git a/Tests/unittest_data/set_D.sdf b/Tests/unittest_data/set_D.sdf
index 0230313..cfb3d2b 100644
--- a/Tests/unittest_data/set_D.sdf
+++ b/Tests/unittest_data/set_D.sdf
@@ -28,10 +28,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0216116
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C(Br)=C1
 
 $$$$
@@ -63,10 +63,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0085593
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C=C1
 
 $$$$
@@ -100,10 +100,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0401033
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -135,10 +135,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0085593
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C=C1
 
 $$$$
@@ -170,10 +170,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0080171
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(Cl)=C1
 
 $$$$
@@ -205,10 +205,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0284887
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1Cl
 
 $$$$
@@ -246,10 +246,10 @@ M  V30 11 2 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0288393
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=C(O)C1C=O
 
-$$$$
\ No newline at end of file
+$$$$
diff --git a/Tests/unittest_data_invalid/set_D_invalid.sdf b/Tests/unittest_data_invalid/set_D_invalid.sdf
index d15bf36..2e1cdf5 100644
--- a/Tests/unittest_data_invalid/set_D_invalid.sdf
+++ b/Tests/unittest_data_invalid/set_D_invalid.sdf
@@ -28,10 +28,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0216116
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C(Br)=C1
 
 $$$$
@@ -63,10 +63,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0085593
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C=C1
 
 $$$$
@@ -100,10 +100,10 @@ M  V30 9 1 2 9
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0401033
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=C(O)C(Cl)=C1
 
 $$$$
@@ -135,10 +135,10 @@ M  V30 8 1 2 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0085593
 
-> <SMILES> 
+> <SMILES>
 BrC1=CC=C(O)C=C1
 
 $$$$
@@ -169,10 +169,10 @@ M  V30 7 2 6 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0080171
 
-> <SMILES> 
+> <SMILES>
 ClC1=CC=CC(Cl)=C1
 
 $$$$
@@ -204,10 +204,10 @@ M  V30 8 1 7 8
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0284887
 
-> <SMILES> 
+> <SMILES>
 ClC=1C=CC=CC1Cl
 
 $$$$
@@ -245,10 +245,10 @@ M  V30 11 2 10 11
 M  V30 END BOND
 M  V30 END CTAB
 M  END
-> <coconut_id> 
+> <coconut_id>
 CNP0288393
 
-> <SMILES> 
+> <SMILES>
 O=CC=1C=CC=C(O)C1C=O
 
-$$$$
\ No newline at end of file
+$$$$
diff --git a/Tests/unittest_smi_data/blankspace.smi b/Tests/unittest_smi_data/blankspace.smi
index a09745f..d42ad1b 100644
--- a/Tests/unittest_smi_data/blankspace.smi
+++ b/Tests/unittest_smi_data/blankspace.smi
@@ -6,4 +6,4 @@ O=C1OC2C(O)C=CC3C4=C5C(=O)C=6C=CC=C(O)C6C(=O)C5=C(O)C=C4CC32C(O)C7=CC(=CC(OC)=C1
 O=C1OC(C)C(O)C12C(O)C(O)CCC2C CNP0000007
 O=C1OC2C(OC(=O)C)C=CC3C4=C5C(=O)C=6C(OC(=O)C)=CC=C(OC(=O)C)C6C(=O)C5=C(OC(=O)C)C=C4CC32C(OC(=O)C)C7=CC(=CC(OC(=O)C)=C17)C CNP0000008
 O=C(OCCC1(C)CC(OC(=O)C)C(OC(=O)C)C2CC(C)(C)CC21)C CNP0000009
-O=CCC1(C)CC(=O)C(O)C2CC(C)(C)CC21 CNP0000010
\ No newline at end of file
+O=CCC1(C)CC(=O)C(O)C2CC(C)(C)CC21 CNP0000010
diff --git a/Tests/unittest_smi_data/header.smi b/Tests/unittest_smi_data/header.smi
index ffd5dad..8fae892 100644
--- a/Tests/unittest_smi_data/header.smi
+++ b/Tests/unittest_smi_data/header.smi
@@ -7,4 +7,4 @@ O=C1OC2C(O)C=CC3C4=C5C(=O)C=6C=CC=C(O)C6C(=O)C5=C(O)C=C4CC32C(O)C7=CC(=CC(OC)=C1
 O=C1OC(C)C(O)C12C(O)C(O)CCC2C CNP0000007
 O=C1OC2C(OC(=O)C)C=CC3C4=C5C(=O)C=6C(OC(=O)C)=CC=C(OC(=O)C)C6C(=O)C5=C(OC(=O)C)C=C4CC32C(OC(=O)C)C7=CC(=CC(OC(=O)C)=C17)C CNP0000008
 O=C(OCCC1(C)CC(OC(=O)C)C(OC(=O)C)C2CC(C)(C)CC21)C CNP0000009
-O=CCC1(C)CC(=O)C(O)C2CC(C)(C)CC21 CNP0000010
\ No newline at end of file
+O=CCC1(C)CC(=O)C(O)C2CC(C)(C)CC21 CNP0000010
diff --git a/Tests/unittest_smi_data/id_first.smi b/Tests/unittest_smi_data/id_first.smi
index 8f39385..195a7c7 100644
--- a/Tests/unittest_smi_data/id_first.smi
+++ b/Tests/unittest_smi_data/id_first.smi
@@ -3,4 +3,4 @@ CNP0000002 O=C(O)C=1C(=O)C(O)(CC(=O)C1N)C2OC(COC(=O)C)C(OC(=O)C(N=CS)=CC)C(OC3OC
 CNP0000003 O=C1OC2C(O)C=CC3C4=C5C(=O)C=6C(OC)=CC=C(OC)C6C(=O)C5=C(OC)C=C4CC32C(O)C7=CC(=CC(OC)=C17)C CNP0000003
 CNP0000004 O=C1OC2C(O)C=CC3C4=C5C(=O)C=6C=CC=C(O)C6C(=O)C5=C(OC)C=C4CC32C(O)C7=CC(=CC(OC)=C17)C CNP0000004
 CNP0000005 O=C(OC1CC(C)(CCOC(=O)C(C)(C)C)C2CC(C)(C)CC2C1OC(=O)C=3C=CC=CC3)C=4C=CC=CC4 CNP0000005
-CNP0000006 O=C1OC2C(O)C=CC3C4=C5C(=O)C=6C=CC=C(O)C6C(=O)C5=C(O)C=C4CC32C(O)C7=CC(=CC(OC)=C17)C CNP0000006
\ No newline at end of file
+CNP0000006 O=C1OC2C(O)C=CC3C4=C5C(=O)C=6C=CC=C(O)C6C(=O)C5=C(O)C=C4CC32C(O)C7=CC(=CC(OC)=C17)C CNP0000006
diff --git a/Tests/unittest_smi_data/komma.smi b/Tests/unittest_smi_data/komma.smi
index 37b4ba2..6558df9 100644
--- a/Tests/unittest_smi_data/komma.smi
+++ b/Tests/unittest_smi_data/komma.smi
@@ -1,4 +1,4 @@
 O=C1OC(C)C(O)C12C(O)C(O)CCC2C, CNP0000007
 O=C1OC2C(OC(=O)C)C=CC3C4=C5C(=O)C=6C(OC(=O)C)=CC=C(OC(=O)C)C6C(=O)C5=C(OC(=O)C)C=C4CC32C(OC(=O)C)C7=CC(=CC(OC(=O)C)=C17)C, CNP0000008
 O=C(OCCC1(C)CC(OC(=O)C)C(OC(=O)C)C2CC(C)(C)CC21)C, CNP0000009
-O=CCC1(C)CC(=O)C(O)C2CC(C)(C)CC21, CNP0000010
\ No newline at end of file
+O=CCC1(C)CC(=O)C(O)C2CC(C)(C)CC21, CNP0000010