summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2021-06-25 11:29:49 +0200
committerChristoph Helma <helma@in-silico.ch>2021-06-25 11:29:49 +0200
commit7a6d28d9ad32198af1feb848352731ab2fd7e2f1 (patch)
tree437635e565f43273d75546c462df3e0d4d22e36c
parent967d01a4761af3a0e3faf9536780cc5b6e9b5d22 (diff)
first revision
-rw-r--r--Makefile2
-rw-r--r--bibliography.bib83
-rw-r--r--figures/PA-Schema.pngbin0 -> 110967 bytes
-rw-r--r--mutagenicity.md305
-rw-r--r--mutagenicity.pdfbin3184575 -> 3301047 bytes
-rw-r--r--pyrrolizidine-alkaloids/pa-sa37.csv603
-rwxr-xr-xscripts/sa37.rb35
7 files changed, 811 insertions, 217 deletions
diff --git a/Makefile b/Makefile
index 8b30f57..c27924d 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@
ARTICLE_FILE = mutagenicity.mustache.md
PANDOC_SCHOLAR_PATH = pandoc-scholar
OUTFILE_PREFIX = mutagenicity
-DEFAULT_EXTENSIONS = pdf docx
+DEFAULT_EXTENSIONS = latex pdf docx
PANDOC_WRITER_OPTIONS = --filter=pandoc-crossref --filter=pandoc-citeproc
TEMPLATE_FILE_LATEX = pandoc-scholar.latex
diff --git a/bibliography.bib b/bibliography.bib
index 0fea5e0..d69d4a6 100644
--- a/bibliography.bib
+++ b/bibliography.bib
@@ -1,3 +1,34 @@
+@article{Wang2005,
+ author = {Wang, Y.P. and Yan, J. and Fu, P.P. and Chou, M.W.},
+ title = {Human liver microsomal reduction of pyrrolizidine alkaloid N-oxides to form the corresponding carcinogenic parent alkaloid},
+ journal = {Toxicol Lett},
+ year = 2005,
+ number = {155(3)},
+ pages = {411-420},
+ doi = {10.1016/j.toxlet.2004.11.010}
+}
+
+@article{Lin1998,
+ author = {Lin, G. and Cui, Y.Y. and Hawes, E.M.},
+ title = {Microsomal Formation of a Pyrrolic Alcohol Glutathione Conjugate of Clivorine.  Firm evidence for the formation of a pyrrolic metabolite of an otonecine-type pyrrolizidine alkaloid},
+ journal = {Drug Metab Dispos},
+ year = 1998,
+ number = {26(2)},
+ pages = {181-4}
+}
+
+@article{Ruan2014,
+ author = {Ruan, J. and Yang, M. and Fu, P. and Ye, Y. and Lin, G.},
+ year = 2014,
+ title = {Metabolic activation of pyrrolizidine alkaloids: Insights into the structural and enzymatic basis},
+ journal = {Chem. Res. Toxicol.},
+ number = 27,
+ pages = {1030–1039},
+ doi = {10.1021/tx500071q}
+}
+
+
+
@incollection{Piegorsch1991,
author = {Piegorsch, W.W. and Zeiger, E.},
booktitle = {Statistical Methods in Toxicology, Lecture Notes in Medical Informatics},
@@ -9,21 +40,19 @@
}
@article{Dunkel1984,
-author = {Dunkel, Virginia C. and Zeiger, Errol and Brusick, David and McCoy, Elena and McGregor, Douglas and Mortelmans, Kristien and Rosenkranz, Herbert S. and Simmon, Vincent F.},
-title = {Reproducibility of microbial mutagenicity assays: I. Tests with Salmonella typhimurium and Escherichia coli using a standardized protocol},
-journal = {Environmental Mutagenesis},
-volume = {6},
-number = {S2},
-pages = {1-50},
-keywords = {mutagenicity, Salmonella, E. coli, interlaboratory reproducibility, collaborative study, standardized protocol},
-doi = {https://doi.org/10.1002/em.2860060702},
-url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/em.2860060702},
-eprint = {https://onlinelibrary.wiley.com/doi/pdf/10.1002/em.2860060702},
-year = {1984}
+ author = {Dunkel, Virginia C. and Zeiger, Errol and Brusick, David and McCoy, Elena and McGregor, Douglas and Mortelmans, Kristien and Rosenkranz, Herbert S. and Simmon, Vincent F.},
+ title = {Reproducibility of microbial mutagenicity assays: I. Tests with Salmonella typhimurium and Escherichia coli using a standardized protocol},
+ journal = {Environmental Mutagenesis},
+ volume = {6},
+ number = {S2},
+ pages = {1-50},
+ keywords = {mutagenicity, Salmonella, E. coli, interlaboratory reproducibility, collaborative study, standardized protocol},
+ doi = {https://doi.org/10.1002/em.2860060702},
+ url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/em.2860060702},
+ eprint = {https://onlinelibrary.wiley.com/doi/pdf/10.1002/em.2860060702},
+ year = {1984}
}
-
-
@article{Kamber2009,
author = {Kamber, Markus and Flückiger-Isler, Sini and Engelhardt, Günter and Jaeckh, Rudolf and Zeiger, Errol},
title = "{Comparison of the Ames II and traditional Ames test responses with respect to mutagenicity, strain specificities, need for metabolism and correlation with rodent carcinogenicity}",
@@ -59,7 +88,7 @@ year = {2016},
issn = {0378-4274},
doi = {https://doi.org/10.1016/j.toxlet.2016.05.002},
url = {https://www.sciencedirect.com/science/article/pii/S0378427416300911},
-author = {Karl-Heinz Merz and Dieter Schrenk},
+author = {K.H. Merz and D. Schrenk},
keywords = {Pyrrolizidine alkaloids, Relative potency factors, Risk assessment, Toxicity},
abstract = {Pyrrolizidine alkaloids (PAs) are among the most potent natural toxins occurring in a broad spectrum of plant species from various families. Recently, findings of considerable contamination of teas/herbal infusions prepared from non-PA plants have been reported. These are obviously due to cross-contamination with minor amounts of PA plants and can affect both food and herbal medicines. Another source of human exposure is honey collected from PA plants. These findings illustrate the requirement for a comprehensive risk assessment of PAs, hampered by the enormous number of different PA congeners occurring in nature. Up to now, risk assessment is based on the carcinogenicity of certain PAs after chronic application to rats using the sum of detected PAs as dose metric. Because of the well-documented large structure-dependent differences between sub-groups of PA congeners with respect to their genotoxicity and (cyto)toxicity, however, this procedure is inadequate. Here we provide an overview of recent attempts to assess the risk of PA exposure and the available literature on the toxic effects and potencies of different congeners. Based on these considerations, we have derived interim Relative Potency (REP) factors for a number of abundant PAs suggesting a factor of 1.0 for cyclic di-esters and open-chain di-esters with 7S configuration, of 0.3 for mono-esters with 7S configuration, of 0.1 for open-chain di-esters with 7R configuration and of 0.01 for mono-esters with 7R configuration. For N-oxides we suggest to apply the REP factor of the corresponding PA. We are confident that the use of these values can provide a more scientific basis for PA risk assessment until a more detailed experimental analysis of the potencies of all relevant congeners can be carried out.}
}
@@ -143,7 +172,7 @@ year = {2013},
issn = {0378-8741},
doi = {https://doi.org/10.1016/j.jep.2013.09.010},
url = {https://www.sciencedirect.com/science/article/pii/S0378874113006430},
-author = {Yan Hong Li and Winnie Lai Ting Kan and Na Li and Ge Lin},
+author = {Y. H. Li and W. L. T. Kan and N. Li and G. Lin},
keywords = {Pyrrolizidine alkaloids, model, Cytotoxicity, HepG2 cell},
abstract = {Ethnopharmacological relevance
Pyrrolizidine alkaloids (PAs) are a group of heterocyclic phytotoxins present in a wide range of plants. The consumption of PA-containing medicinal herbs or PA-contaminated foodstuffs has long been reported to cause human hepatotoxicity. However, the degrees of hepatotoxicity of different PAs are unknown, which makes it difficult to determine a universal threshold of toxic dose of individual PAs for safe regulation of PA-containing natural products. The aim of the present study is to develop a simple and convenient in vitro model to assess the hepatotoxicity of different PAs.
@@ -184,7 +213,7 @@ Using the developed in vitro model, the cytotoxicity of different PAs and the ex
issn = {0278-6915},
doi = {https://doi.org/10.1016/j.fct.2019.05.040},
url = {https://www.sciencedirect.com/science/article/pii/S0278691519303072},
- author = {Jochem Louisse and Deborah Rijkers and Geert Stoopen and Wendy Jansen Holleboom and Mona Delagrange and Elise Molthof and Patrick P.J. Mulder and Ron L.A.P. Hoogenboom and Marc Audebert and Ad A.C.M. Peijnenburg},
+ author = {J. Louisse and D. Rijkers and G. Stoopen and W. J. Holleboom and M. Delagrange and E. Molthof and P. P.J. Mulder and R. L.A.P. Hoogenboom and M. Audebert and A. A.C.M. Peijnenburg},
keywords = {Pyrrolizidine alkaloids (PAs), HepaRG, Genotoxicity, γH2AX assay, Relative potency factor (RPF)},
abstract = {Pyrrolizidine alkaloids (PAs) are secondary metabolites from plants that have been found in substantial amounts in herbal supplements, infusions and teas. Several PAs cause cancer in animal bioassays, mediated via a genotoxic mode of action, but for the majority of the PAs, carcinogenicity data are lacking. It is assumed in the risk assessment that all PAs have the same potency as riddelliine, which is considered to be one of the most potent carcinogenic PAs in rats. This may overestimate the risks, since many PAs are expected to have lower potencies. In this study we determined the concentration-dependent genotoxicity of 37 PAs representing different chemical classes using the γH2AX in cell western assay in HepaRG human liver cells. Based on these in vitro data, PAs were grouped into different potency classes. The group with the highest potency consists particularly of open diester PAs and cyclic diester PAs (including riddelliine). The group of the least potent or non-active PAs includes the monoester PAs, non-esterified necine bases, PA N-oxides, and the unsaturated PA trachelanthamine. This study reveals differences in in vitro genotoxic potencies of PAs, supporting that the assumption that all PAs have a similar potency as riddelliine is rather conservative.}
}
@@ -198,7 +227,7 @@ Using the developed in vitro model, the cytotoxicity of different PAs and the ex
issn = {0278-6915},
doi = {https://doi.org/10.1016/j.fct.2018.08.003},
url = {https://www.sciencedirect.com/science/article/pii/S027869151830512X},
- author = {Ashley Allemang and Catherine Mahony and Cathy Lester and Stefan Pfuhler},
+ author = {A. Allemang and C. Mahony and C. Lester and S. Pfuhler},
keywords = {Pyrrolizidine alkaloids, HepaRG, Genetic toxicology, Micronucleus test, Relative potency factor, Risk assessment},
abstract = {Plant-based 1,2-unsaturated Pyrrolizidine Alkaloids (PAs) can be found as contaminants in foods like teas, herbs and honey. PAs are responsible for liver genotoxicity/carcinogenicity following metabolic activation, making them a relevant concern for safety assessment. Current regulatory risk assessments take a precautionary approach and assume all PAs are as potent as the known most potent representatives: lasiocarpine and riddelliine. Our study investigated whether genotoxicity potency differed as a consequence of structural differences, assessing micronuclei in vitro in HepaRG cells which express metabolising enzymes at levels similar to primary human hepatocytes. Benchmark Dose (BMD) analysis was used to calculate the critical effect dose for 15 PAs representing 6 structural classes. When BMD confidence intervals were used to rank PAs, lasiocarpine was the most potent PA and plotted distinctly from all other PAs examined. PA-N-oxides were least potent, notably less potent than their corresponding parent PA's. The observed genotoxic potency compared favorably with existing in vitro data when metabolic competency was considered. Although further consideration of biokinetics will be needed to develop a robust understanding of relative potencies for a realistic risk assessment of PA mixtures, these data facilitate understanding of their genotoxic potencies and affirm that not all PAs are created equal.}
}
@@ -211,7 +240,7 @@ Using the developed in vitro model, the cytotoxicity of different PAs and the ex
issn = {1383-5718},
doi = {https://doi.org/10.1016/j.mrgentox.2020.503305},
url = {https://www.sciencedirect.com/science/article/pii/S1383571820301765},
- author = {Naji Said Aboud Hadi and Ezgi Eyluel Bankoglu and Lea Schott and Eva Leopoldsberger and Vanessa Ramge and Olaf Kelber and Hartwig Sievers and Helga Stopper},
+ author = {N. S. A. Hadi and E. E. Bankoglu and L. Schott and E. Leopoldsberger and V. Ramge and O. Kelber and H. Sievers and H. Stopper},
keywords = {Pyrrolizidine alkaloids, Genomic damage, Micronuclei, Crosslink comet assay, HepG2 cells, Huh6 cells},
abstract = {Introduction
Pyrrolizidine alkaloids (PAs) are found in many plant species as secondary metabolites which affect humans via contaminated food sources, herbal medicines and dietary supplements. Hundreds of compounds belonging to PAs have been identified. PAs undergo hepatic metabolism, after which they can induce hepatotoxicity and carcinogenicity. Many aspects of their mechanism of carcinogenicity are still unclear and it is important for human risk assessment to investigate this class of compounds further.
@@ -244,7 +273,7 @@ The widely available human hepatoma cell lines HepG2 and Huh6 were suitable for
}
@article{Weininger1989,
- author = {David Weininger and Arthur Weininger and Joseph L. Weininger},
+ author = {D. Weininger and A. Weininger and J. L. Weininger},
title = {SMILES. 2. Algorithm for generation of unique SMILES notation},
journal = {J. Chem. Inf. Comput. Sci.},
year = 1989,
@@ -263,7 +292,7 @@ The widely available human hepatoma cell lines HepG2 and Huh6 were suitable for
}
@article{Schoening2017,
- author = {Verena Schöning and Felix Hammann and Mark Peinl and Jürgen Drewe},
+ author = {V. Schöning and F. Hammann and M. Peinl and J. Drewe},
title = {Editor's Highlight: Identification of Any Structure-Specific Hepatotoxic Potential of Different Pyrrolizidine Alkaloids Using Random Forests and Artificial Neural Networks},
journal = {Toxicol. Sci.},
year = 2017,
@@ -273,7 +302,7 @@ The widely available human hepatoma cell lines HepG2 and Huh6 were suitable for
}
@book{Mattocks1986,
- author = {Mattocks, AR},
+ author = {Mattocks, A.R.},
title = {Chemistry and Toxicology of Pyrrolizidine Alkaloids},
year = 1986,
publisher = {Academic Press},
@@ -289,7 +318,7 @@ The widely available human hepatoma cell lines HepG2 and Huh6 were suitable for
}
@article{Helma2018,
- author = { Christoph Helma and David Vorgrimmler and Denis Gebele and Martin Gütlein and Barbara Engeli and Jürg Zarn and Benoit Schilter and Elena Lo Piparo},
+ author = { C. Helma and D. Vorgrimmler and D. Gebele and M. Gütlein and B. Engeli and J. Zarn and B. Schilter and E. Lo Piparo},
title = "Modeling Chronic Toxicity: A comparison of experimental variability with {(Q)SAR}/read-across predictions",
year = 2018,
journal = {Frontiers in Pharmacology},
@@ -331,7 +360,7 @@ eprint = {
}
@article{Hansen2009,
- author = {Hansen, Katja and Mika, Sebastian and Schroeter, Timon and Sutter, Andreas and ter Laak, Antonius and Steger-Hartmann, Thomas and Heinrich, Nikolaus and Müller, Klaus-Robert},
+ author = {Hansen, K. and Mika, S. and Schroeter, T. and Sutter, A. and ter Laak, A. and Steger-Hartmann, T. and Heinrich, N. and Müller, K. R.},
title = {Benchmark Data Set for in Silico Prediction of Ames Mutagenicity},
journal = {Journal of Chemical Information and Modeling},
volume = {49},
@@ -355,8 +384,8 @@ eprint = {
}
@Article{Bender2004,
- author = "Andreas Bender and Hamse Y. Mussa and Robert C.
- Glen and Stephan Reiling",
+ author = "A. Bender and H. Y. Mussa and R. C.
+ Glen and S. Reiling",
title = "Molecular Similarity Searching Using Atom
Environments, Information-Based Feature Selection, and
a Naïve Bayesian Classifier",
@@ -375,7 +404,7 @@ eprint = {
@article{OBoyle2011a,
abstract = {{BACKGROUND: A frequent problem in computational modeling is the interconversion of chemical structures between different formats. While standard interchange formats exist (for example, Chemical Markup Language) and de facto standards have arisen (for example, SMILES format), the need to interconvert formats is a continuing problem due to the multitude of different application areas for chemistry data, differences in the data stored by different formats (0D versus 3D, for example), and competition between software along with a lack of vendor-neutral formats.RESULTS: We discuss, for the first time, Open Babel, an open-source chemical toolbox that speaks the many languages of chemical data. Open Babel version 2.3 interconverts over 110 formats. The need to represent such a wide variety of chemical and molecular data requires a library that implements a wide range of cheminformatics algorithms, from partial charge assignment and aromaticity detection, to bond order perception and canonicalization. We detail the implementation of Open Babel, describe key advances in the 2.3 release, and outline a variety of uses both in terms of software products and scientific research, including applications far beyond simple format interconversion.CONCLUSIONS: Open Babel presents a solution to the proliferation of multiple chemical file formats. In addition, it provides a variety of useful utilities from conformer searching and 2D depiction, to filtering, batch conversion, and substructure and similarity searching. For developers, it can be used as a programming library to handle chemical data in areas such as organic chemistry, drug design, materials science, and computational chemistry. It is freely available under an open-source license from http://openbabel.org.}},
added-at = {2019-03-11T21:00:05.000+0100},
- author = {O'Boyle, Noel and Banck, Michael and James, Craig and Morley, Chris and Vandermeersch, Tim and Hutchison, Geoffrey},
+ author = {O'Boyle, N. and Banck, M. and James, C. and Morley, C. and Vandermeersch, T. and Hutchison, G.},
biburl = {https://www.bibsonomy.org/bibtex/27ab2699fef73132efcfa6853c3031bf0/fairybasslet},
booktitle = {Journal of Cheminformatics},
citeulike-article-id = {9866193},
@@ -432,7 +461,7 @@ eprint = {
}
@Article{doi:10.1021/ci00057a005,
- author = "David Weininger",
+ author = "D. Weininger",
title = "SMILES, a chemical language and information system. 1.
Introduction to methodology and encoding rules",
journal = "Journal of Chemical Information and Computer
diff --git a/figures/PA-Schema.png b/figures/PA-Schema.png
new file mode 100644
index 0000000..2fa72c8
--- /dev/null
+++ b/figures/PA-Schema.png
Binary files differ
diff --git a/mutagenicity.md b/mutagenicity.md
index c80bdf1..1014cc1 100644
--- a/mutagenicity.md
+++ b/mutagenicity.md
@@ -49,7 +49,7 @@ Abstract
========
Random forest, support vector machine, logistic regression, neural networks and
-k-nearest neighbor (`lazar`) algorithms, were applied to new *Salmonella*
+k-nearest neighbor (`lazar`) algorithms, were applied to a new *Salmonella*
mutagenicity dataset with {{cv.n_uniq}} unique chemical structures utilizing
MolPrint2D and Chemistry Development Kit (CDK) descriptors. Crossvalidation
accuracies of all investigated models ranged from 80-85% which is comparable
@@ -62,7 +62,7 @@ Introduction
============
The assessment of mutagenicity is an important part in the safety assessment of
-chemical structures, because genomic changes may lead to cancer and germ
+chemical structures, because mutations may lead to cancer and germ
cells damage. The *Salmonella typhimurium* bacterial reverse mutation
test (Ames test) is capable to identify substances that cause mutations (e.g.,
base-pair substitutions, frameshifts, insertions, deletions) and is generally
@@ -93,9 +93,9 @@ Within this study we attempted
- to compare the performance of MolPrint2D (*MP2D*) fingerprints with Chemistry Development Kit (*CDK*) descriptors for mutagenicity predictions
- to compare the performance of global QSAR models (random forests (*RF*), support vector machines (*SVM*), logistic regression (*LR*), neural nets (*NN*)) with local models (`lazar`)
-In order to highlight potentials and problems with the application of
-mutagenicity models to compounds with limited experimental data we decided to
-apply these mutagenicity models to {{pa.nr}} Pyrrolizidine alkaloids (PAs).
+To demonstrate the application of mutagenicity models to compounds with very
+limited experimental data and to show their strengths an weaknesses we decided
+to apply them to {{pa.nr}} Pyrrolizidine alkaloids (PAs).
Pyrrolizidine alkaloids (PAs) are characteristic metabolites of some plant
families, mainly: *Asteraceae*, *Boraginaceae*, *Fabaceae* and *Orchidaceae*
@@ -103,14 +103,28 @@ families, mainly: *Asteraceae*, *Boraginaceae*, *Fabaceae* and *Orchidaceae*
herbivores. PAs are heterocyclic ester alkaloids composed of a necine base (two
fused five-membered rings joined by a single nitrogen atom) and a necic acid
(one or two carboxylic ester arms), occurring principally in two forms,
-tertiary base PAs and PA N-oxides. Several *in vitro* studies have shown the
-mutagenic potential of PAs, which seems highly dependent on structure of necine
+tertiary base PAs and PA N-oxides.
+
+In mammals, PAs are mainly metabolized in the liver. There are three principal metabolic pathways for 1,2-unsaturated PAs (@Chen2010): 
+
+Detoxification by 
+
+- hydrolysis of the ester bond on positions C7 and C9 by non-specific esterases to release necine base and necic acid 
+
+- N-oxidation of the necine base to form a PA N-oxides, which can be either conjugated by phase II enzymes and then excreted or converted back into the corresponding parent PA (following ref) This detoxification pathway is not possible for otonecine-type PAs, as they are N-methylated (see @fig:pa-schema, @Wang2005)
+
+- Metabolic activation or toxification by oxidation (for retronecine-type PAs) or oxidative N-demethylation (for otonecine-type Pas) by cytochromes P450 isoforms CYP2B and 3A (@Lin1998, @Ruan2014)
+
+The latter reactions result in the formation of dehydropyrrolizidine (DHP) that is highly reactive and causes damage by building adducts with protein, lipids and DNA (@Chen2010). On the other hand, open diesters and macrocyclic PAs have a reduced detoxification due to steric hinderance of the respective esterases (@Ruan2014)
+
+Therefore the
+mutagenic probability of PAs is highly dependent on structure of necine
base and necic acid (@Hadi2021; @Allemang2018, @Louisse2019). However, due to
limited availability of pure substances, only a limited number of PAs have been
-investigated with regards to their structure-specific mutagenicity. To overcome
-this bottleneck, the prediction of structure-specific mutagenic potential of
-PAs with different machine learning models could provide further inside in the
-mechanisms.
+investigated with regards to their structure-specific mutagenicity and
+experimentally in an Ames test. To overcome this bottleneck, the prediction of
+structure-specific mutagenic probabilities of PAs with different machine learning
+models could provide further insights in the mechanisms.
Materials and Methods
=====================
@@ -129,10 +143,17 @@ training dataset was compiled from the following sources:
- EFSA Dataset (695 compounds @EFSA2016): <https://data.europa.eu/euodp/data/storage/f/2017-0719T142131/GENOTOX%20data%20and%20dictionary.xls>
-Mutagenicity classifications from Kazius and Hansen datasets were used
-without further processing. To achieve consistency with these
-datasets, EFSA compounds were classified as mutagenic, if at least one
-positive result was found for TA98 or T100 Salmonella strains.
+Mutagenicity classifications from Kazius and Hansen datasets were used without
+further processing. According to these publications compounds were classified
+as mutagenic, if at least one positive result has been obtained in *Salmonella
+typhimurium* strains TA98, TA100, TA1535, TA1537, TA97, TA102 and 1538 either
+with or without metabolic activation by S9. *E. coli* results were not
+considered in these databases. To achieve consistency with these datasets, EFSA
+compounds were classified as mutagenic, if at least one positive result was
+found for TA98 or T100 Salmonella strains either with or without metabolic
+activation. The complete dataset contains chemicals for very diverse
+application areas (e.g. pharmaceuticals, pesticides, industrial chemicals,
+environmental contaminants).
Dataset merges were based on unique SMILES (*Simplified Molecular Input Line
Entry Specification*, @Weininger1989) strings of the compound structures.
@@ -158,10 +179,14 @@ substances were searched individually in PubChem and, if available, downloaded
separately. Non-PA substances, duplicates, and isomers were removed from the
files, but artificial PAs, even if unlikely to occur in nature, were kept. The
resulting PA dataset comprised a total of {{pa.n}} different PAs.
+Further details about the compilation of the PA dataset are described in @Schoening2017.
+
The PAs in the dataset were classified according to structural features. A
total of 9 different structural features were assigned to the necine base,
-modifications of the necine base and to the necic acid:
+modifications of the necine base and to the necic acid (@fig:pa-schema):
+
+![Structural features of pyrrolizidine alkaloids](figures/PA-Schema.png){#fig:pa-schema}
For the necine base, the following structural features were chosen:
@@ -172,8 +197,8 @@ For the necine base, the following structural features were chosen:
For the modifications of the necine base, the following structural features were chosen:
- N-oxide-type ({{pa.groups.N_oxide.n}} compounds)
+ - Dehydropyrrolizidine-type (DHP, pyrrolic ester, {{pa.groups.Dehydropyrrolizidine.n}} compounds)
- Tertiary-type (PAs which were neither from the N-oxide- nor DHP-type, {{pa.groups.Tertiary_PA.n}} compounds)
- - Dehydropyrrolizidine-type (pyrrolic ester, {{pa.groups.Dehydropyrrolizidine.n}} compounds)
For the necic acid, the following structural features were chosen:
@@ -181,8 +206,6 @@ For the necic acid, the following structural features were chosen:
- Open-ring diester-type ({{pa.groups.Diester.n}} compounds)
- Macrocyclic diester-type ({{pa.groups.Macrocyclic_diester.n}} compounds)
-The compilation of the PA dataset is described in detail in @Schoening2017.
-
Descriptors
-----------
@@ -201,7 +224,8 @@ descriptors. In addition, they allow the efficient calculation of chemical
similarities (e.g. Tanimoto indices) with simple set operations.
MolPrint2D fingerprints were calculated with the OpenBabel cheminformatics
-library (@OBoyle2011a). They can be obtained from the following locations:
+library (@OBoyle2011a) for the complete training dataset with {{cv.n}}
+instances. They can be obtained from the following locations:
*Training data:*
@@ -220,9 +244,9 @@ program (<http://www.yapcwsoft.com> version 2.21, @Yap2011). PaDEL uses the
Chemistry Development Kit (*CDK*, <https://cdk.github.io/index.html>) library
for descriptor calculations.
-As the training dataset contained {{cv.n_uniq}} instances, it was decided to
-delete instances with missing values during data pre-processing. Furthermore,
-substances with equivocal outcome were removed. The final training dataset
+As the training dataset contained {{cv.n}} instances, it was decided to
+delete all instances where CDK descriptor calculations failed during pre-processing. Furthermore,
+all substances with contradictory experimental mutagenicity data were removed. The final training dataset
contained {{cv.cdk.n_descriptors}} descriptors for {{cv.cdk.n_compounds}}
compounds.
@@ -601,12 +625,16 @@ models ({{pa.mp2d_svm.mut_perc}}-{{pa.mp2d_lazar_high_confidence.mut_perc}}%,
@tbl:pa-summary, @fig:pa-groups). 
Over all models, the mean value of mutagenic predicted PAs was highest for
-otonecines ({{pa.groups.Otonecine.mut_perc}}%,
-{{pa.groups.Otonecine.mut}}/{{pa.groups.Otonecine.n_pred}}),
-followed by macrocyclic diesters ({{pa.groups.Macrocyclic_diester.mut_perc}}%, {{pa.groups.Macrocyclic_diester.mut}}/{{pa.groups.Macrocyclic_diester.n_pred}}),
-dehydropyrrolizidines ({{pa.groups.Dehydropyrrolizidine.mut_perc}}%, {{pa.groups.Dehydropyrrolizidine.mut}}/{{pa.groups.Dehydropyrrolizidine.n_pred}}),
-tertiary PAs ({{pa.groups.Tertiary_PA.mut_perc}}%, {{pa.groups.Tertiary_PA.mut}}/{{pa.groups.Tertiary_PA.n_pred}}) and
-retronecines ({{pa.groups.Retronecine.mut_perc}}%, {{pa.groups.Retronecine.mut}}/{{pa.groups.Retronecine.n_pred}}).
+otonecines ({{pa.groups.Otonecine.mut_perc}}%,
+{{pa.groups.Otonecine.mut}}/{{pa.groups.Otonecine.n_pred}}), followed by
+macrocyclic diesters ({{pa.groups.Macrocyclic_diester.mut_perc}}%,
+{{pa.groups.Macrocyclic_diester.mut}}/{{pa.groups.Macrocyclic_diester.n_pred}}),
+dehydropyrrolizidines ({{pa.groups.Dehydropyrrolizidine.mut_perc}}%,
+{{pa.groups.Dehydropyrrolizidine.mut}}/{{pa.groups.Dehydropyrrolizidine.n_pred}}),
+tertiary PAs ({{pa.groups.Tertiary_PA.mut_perc}}%,
+{{pa.groups.Tertiary_PA.mut}}/{{pa.groups.Tertiary_PA.n_pred}}) and
+retronecines ({{pa.groups.Retronecine.mut_perc}}%,
+{{pa.groups.Retronecine.mut}}/{{pa.groups.Retronecine.n_pred}}).
When excluding the aforementioned three deviating models,
the rank order stays the same, but the percentage of mutagenic PAs is higher.
@@ -674,8 +702,8 @@ This allows a critical examination of individual predictions and prevents blind
trust in models that are intransparent to users with a toxicological
background.
-<!--
![`lazar` screenshot of 12,21-Dihydroxy-4-methyl-4,8-secosenecinonan-8,11,16-trione mutagenicity prediction](figures/lazar-screenshot.png){#fig:lazar}
+<!--
-->
Descriptors
@@ -725,25 +753,6 @@ Pyrrolizidine alkaloid mutagenicity predictions
### Algorithms and descriptors
-<!--
-The largest proportion of mutagenic predictions
-was observed for Otonecines {{pa.groups.Otonecine.mut_perc}}%
-({{pa.groups.Otonecine.mut}}/{{pa.groups.Otonecine.n_pred}}), the lowest for
-Monoesters {{pa.groups.Monoester.mut_perc}}%
-({{pa.groups.Monoester.mut}}/{{pa.groups.Monoester.n_pred}}) and N-Oxides
-{{pa.groups.N_oxide.mut_perc}}%
-({{pa.groups.N_oxide.mut}}/{{pa.groups.N_oxide.n_pred}}).
-
-Although most of the models show similar accuracies, sensitivities and
-specificities in crossvalidation experiments some of the models (MPD-RF, CDK-RF
-and CDK-SVM) predict a lower number of mutagens
-({{pa.cdk_rf.mut_perc}}-{{pa.mp2d_rf.mut_perc}}%) than the majority of the
-models ({{pa.mp2d_svm.mut_perc}}-{{pa.mp2d_lazar_high_confidence.mut_perc}}%
-(@fig:pa-groups). lazar-CDK on the other hand
-predicts the largest number of mutagens for all groups with exception of
-Otonecines.
--->
-
@fig:pa-groups shows a clear differentiation between the different
pyrrolizidine alkaloid groups.
Nevertheless differences between predictions from different algorithms and descriptors
@@ -753,7 +762,7 @@ In order to investigate, if any of the investigated models show systematic
errors in the vicinity of pyrrolizidine-alkaloids we have performed a
detailled t-SNE analysis of all models (see @fig:tsne-mp2d-rf and
@fig:tsne-cdk-lazar-all for two examples, all visualisations can be found at
-<https://git.in-silico.ch/mutagenicity-paper/figures>.
+<https://git.in-silico.ch/mutagenicity-paper/figures>).
None of the models showed obvious deviations from their expected
behaviour, so the reason for the disagreement between some of the models
@@ -761,15 +770,24 @@ remains unclear at the moment. It is however possible that some
systematic errors are covered up by converting high dimensional spaces to two
coordinates and are thus invisible in t-SNE visualisations.
+Only two compounds from the PA dataset (Senecivernine and Retronecine) are part
+of the training set. Both are non-mutagenic and were predicted as non-mutagenic
+by all models (instances have been removed from the training set for unbiased
+predictions). Despite the exact concordance, we cannot draw any general
+conclusions about model performance based on two examples with a single
+outcome.
+
### Necic acid
The rank order of the necic acid is comparable in all models. PAs from the
-monoester type had the lowest genotoxic potential, followed by PAs from the
+monoester type had the lowest genotoxic probability, followed by PAs from the
open-ring diester type. PAs with macrocyclic diesters had the highest genotoxic
-potential. The result fits well with current state of knowledge: in general,
-PAs, which have a macrocyclic diesters as necic acid, are considered to be more toxic
-than those with an open-ring diester or monoester (@EFSA2011, @Fu2004,
-Ruan2014b). This was also confirmed by more recent studies, confirming that
+probability. The result fits well with current state of knowledge: in general,
+PAs, which have a macrocyclic diesters as necic acid, are considered to be more
+mutagenic than those with an open-ring diester or monoester (@EFSA2011,
+@Fu2004). As pointed out above, open diesters and macrocyclic PAs have a
+reduced detoxification due to steric hinderance of the respective esterases
+(@Ruan2014). This was also confirmed by more recent studies, confirming that
macrocyclic- and open-diesters are more genotoxic *in vitro* than monoesters
(@Hadi2021; @Allemang2018, @Louisse2019). 
@@ -777,17 +795,20 @@ macrocyclic- and open-diesters are more genotoxic *in vitro* than monoesters
In the rank order of necine base PAs, platynecine is the least mutagenic, followed
by retronecine, and otonecine. Saturated PAs of the platynecine-type are
-generally accepted to be less or non-toxic and have been shown in *in vitro*
+generally accepted to be less or non-mutagenic and have been shown in *in vitro*
experiments to form no DNA-adducts (@Xia2013). In literature,
-otonecine-type PAs were shown to be more toxic than those of the
+otonecine-type PAs were shown to be more mutagenic than those of the
retronecine-type (@Li2013). 
### Modifications of necine base
The group-specific results reflect the expected relationship between the
-groups: the low mutagenic potential of *N*-oxides and the high potential of
-dehydropyrrolizidines (DHP) (@Chen2010). 
-However, *N*-oxides may be *in vivo* converted back to their parent toxic/tumorigenic parent PA (@Yan2008),  on the other hand they are highly water soluble and generally considered as detoxification products, which are *in vivo* quickly renally eliminated (@Chen2010).
+groups: the low mutagenic probability of *N*-oxides and the high probability of
+dehydropyrrolizidines (DHP) (@Chen2010).  However, *N*-oxides may be *in vivo*
+converted back to their parent mutagenic/tumorigenic parent PA (@Yan2008),  on the
+other hand they are highly water soluble and generally considered as
+detoxification products, which are *in vivo* quickly renally eliminated
+(@Chen2010).
DHP are regarded as the toxic principle in the metabolism of
PAs, and are known to produce protein- and DNA-adducts (@Chen2010). None of our investigated
@@ -800,107 +821,50 @@ training set. In addition, DHP has two unsaturated double bounds in its necine
base, making it highly reactive. DHP and other comparable molecules have a very
short lifespan *in vivo*, and usually cannot be used in *in vitro* experiments.
-<!--
-Furthermore, the probabilities for this substance groups needs to be considered, and not only the consolidated prediction. In the LAZAR model, all DHPs had probabilities for both outcomes (genotoxic and not genotoxic) mainly below 30%. Additionally, the probabilities for both outcomes were close together, often within 10% of each other. The fact that for both outcomes, the probabilities were low and close together, indicates a lower confidence in the prediction of the model for DHPs. 
--->
-
-<!--
-PA N-oxides are easily conjugated for extraction, they are generally considered
-as detoxification products, which are *in vivo* quickly renally eliminated
-(@Chen2010).
--->
-
Overall the low number of positive mutagenicity predictions was unexpected.
-PAs are generally considered to be genotoxic, and the mode of action is also known.
-Therefore, the fact that some models predict the majority of PAs as not
+PAs are generally considered to be genotoxic, and the mode of action is also
+known. Therefore, the fact that some models predict the majority of PAs as not
mutagenic seems contradictory. To understand this result, the experimental
-basis of the training dataset has to be considered. The
-training dataset is based on the *Salmonella typhimurium* mutagenicity bioassay (Ames test). There are some
-studies, which show mutagenicity of PAs in the Ames test (@Chen2010).
-Also, @Rubiolo1992 examined several different PAs and several
-different extracts of PA-containing plants in the AMES test. They found that
-the Ames test was indeed able to detect mutagenicity of PAs, but in general,
-appeared to have a low sensitivity. The pre-incubation phase for metabolic
-activation of PAs by microsomal enzymes was the sensitivity-limiting step. This
-could very well mean that the low sensitivity of the Ames test for PAs is also reflected in the investigated models.
+basis of the training dataset has to be considered. The training dataset is
+based on the *Salmonella typhimurium* mutagenicity bioassay (Ames test). There
+are some studies, which show mutagenicity of PAs in the Ames test (@Chen2010).
+Also, @Rubiolo1992 examined several different PAs and several different
+extracts of PA-containing plants in the Ames test. They found that the Ames
+test was indeed able to detect mutagenicity of PAs, but in general, appeared to
+have a low sensitivity. The pre-incubation phase for metabolic activation of
+PAs by microsomal enzymes was the sensitivity-limiting step. This could very
+well mean that the low sensitivity of the Ames test for PAs is also reflected
+in the investigated models.
+<!--
A *in vitro* screen of cellular PA effects (metabolic activation and mutagenic
effects) in human and rodent hepatocytes (HepG2 and H-4-II-E) showed that
results may also critically depend on the cellular model and cell culture
conditions and may underestimate the effects of PAs (@Forsch2018).
+-->
-In summary, we found marked differences in the predicted genotoxic potential
-between the PA groups: most toxic appeared the otonecines and macrocyclic
-diesters, least toxic the platynecines and the mono- and diesters. These
+In summary, we found marked differences in the predicted genotoxic probability
+between the PA groups: most mutagenic appeared the otonecines and macrocyclic
+diesters, least mutagenic the platynecines and the mono- and diesters. These
results are comparable with *in vitro* measurements in hepatic HepaRG cells
(@Louisse2019), where relative potencies (RP) were determined: for otonecines
and cyclic diesters RP = 1, for open diesters RP = 0.1 and for monoesters RP =
0.01.
-Due to a lack of
-differential data, European authorities based their risk assessment in a
-worst-case approach on lasiocarpine, for which sufficient data on genotoxicity
-and carcinogenicity were available (@HMPC2014, @EMA2020). Our data further support a tiered risk assessment
-based on *in silico* and experimental data on the relative potency of
-individual PAs as already suggested by other authors (@Merz2016, @Rutz2020, @Louisse2019). 
+Due to a lack of differential data, European authorities based their risk
+assessment in a worst-case approach on lasiocarpine, for which sufficient data
+on genotoxicity and carcinogenicity were available (@HMPC2014, @EMA2020). Our
+data further support a tiered risk assessment based on *in silico* and
+experimental data on the relative potency of individual PAs as already
+suggested by other authors (@Merz2016, @Rutz2020, @Louisse2019). 
-<!--
-non-conflicting CIDs
-43040
-186980
-187805
-610955
-3033169
-6429355
-10095536
-10251171
-10577975
-10838897
-10992912
-10996028
-11618501
-11827237
-11827238
-16687858
-73893122
-91747608
-91749688
-91751314
-91752877
-100979630
-100979631
-101648301
-102478913
-148322
-194088
-21626760
-91747610
-91747612
-91749428
-91749448
-102596226
-6440436
-4483893
-5315247
-46930232
-67189194
-91747354
-91749894
-101324794
-118701599
-
-R RF and SVM models favor very strongly non-mutagenic predictions (only {{pa.r.rf.mut_perc}} and {{pa.r.svm.mut_perc}} % mutagenic PAs), while Tensorflow models classify approximately half of the PAs as mutagenic (RF {{pa.tf.rf.mut_perc}}%, LR-sgd {{pa.tf.lr_sgd}}%, LR-scikit:{{pa.tf.lr_scikit.mut_perc}}, LR-NN:{{pa.tf.nn.mut_perc}}%). `lazar` models predict predominately non-mutagenicity, but to a lesser extend than R models (MP2D:{{pa.lazar.mp2d.all.mut_perc}}, CDK:{{pa.lazar.padel.all.mut_perc}}).
-
-It is interesting to note, that different implementations of the same algorithm show little accordance in their prediction (see e.g R-RF vs. Tensorflow-RF and LR-sgd vs. LR-scikit in Table 4 and @tbl:pa-summary).
-
-@fig:tsne-mp2d and @fig:tsne-padel show the t-SNE of training data and pyrrolizidine alkaloids. In @fig:tsne-mp2d the PAs are located closely together at the outer border of the training set. In @fig:tsne-padel they are less clearly separated and spread over the space occupied by the training examples.
-
-This is probably the reason why CDK models predicted all instances and the MP2D model only {{pa.lazar.mp2d.all.n}} PAs. Predicting a large number of instances is however not the ultimate goal, we need accurate predictions and an unambiguous estimation of the applicability domain. With CDK descriptors *all* PAs are within the applicability domain of the training data, which is unlikely despite the size of the training set. MolPrint2D descriptors provide a clearer separation, which is also reflected in a better separation between high and low confidence predictions in `lazar` MP2D predictions as compared to `lazar` CDK predictions. Crossvalidation results with substantially higher accuracies for MP2D models than for CDK models also support this argument.
-
-Differences between MP2D and CDK descriptors can be explained by their specific properties: CDK calculates a fixed set of descriptors for all structures, while MolPrint2D descriptors resemble substructures that are present in a compound. For this reason there is no fixed number of MP2D descriptors, the descriptor space are all unique substructures of the training set. If a query compound contains new substructures, this is immediately reflected in a lower similarity to training compounds, which makes applicability domain estimations very straightforward. With CDK (or any other predefined descriptors), the same set of descriptors is calculated for every compound, even if a compound comes from an completely new chemical class.
-
-From a practical point we still have to face the question, how to choose model predictions, if no experimental data is available (we found two PAs in the training data, but this number is too low, to draw any general conclusions). Based on crossvalidation results and the arguments in favor of MolPrint2D descriptors we would put the highest trust in `lazar` MolPrint2D predictions, especially in high-confidence predictions. `lazar` predictions have a accuracy comparable to experimental variability (@Helma2018) for compounds within the applicability domain. But they should not be trusted blindly. For practical purposes it is important to study the rationales (i.e. neighbors and their experimental activities) for each prediction of relevance. A freely accessible GUI for this purpose has been implemented at https://lazar.in-silico.ch.
--->
+The practical question how to choose model predictions in the absence of
+experimental data remains open. Tensorflow predictions do not include
+applicability domain estimations and the rationales for predictions cannot be
+traced by toxicologists. Transparent models like `lazar` may have an advantage
+in this context, because they present rationales for predictions (similar
+compounds with experimental data) which can be accepted or rejected by
+toxicologists and provide validated applicability domain estimations.
Conclusions
===========
@@ -918,48 +882,11 @@ however a substantially lower number of mutagenicity predictions, despite
similar crossvalidation results and we were unable to identify the reasons for
this discrepancy within this investigation.
-Thus the practical question how to choose model predictions in the absence of
-experimental data remains open. Tensorflow predictions do not include
-applicability domain estimations and the rationales for predictions cannot be
-traced by toxicologists. Transparent models like `lazar` may have an advantage
-in this context, because they present rationales for predictions (similar
-compounds with experimental data) which can be accepted or rejected by
-toxicologists and provide validated applicability domain estimations.
-
-Our data show that large difference exist with regard to genotoxic potential between different pyrrolizidine subgroups. These results may allow to adjust risk assessment of pyrrolizidine contamination.
-
-<!---
-in a form that is understandable and criticiseable by toxicologists without a machine learning background.
-
-is available (we found two PAs in the training data, but this number is too low, to draw any general conclusions). Based on crossvalidation results and the arguments in favor of MolPrint2D descriptors we would put the highest trust in `lazar` MolPrint2D predictions, especially in high-confidence predictions. `lazar` predictions have a accuracy comparable to experimental variability (@Helma2018) for compounds within the applicability domain. But they should not be trusted blindly. For practical purposes it is important to study the rationales (i.e. neighbors and their experimental activities) for each prediction of relevance. A freely accessible GUI for this purpose has been implemented at https://lazar.in-silico.ch.
-The best performance was obtained with `lazar` models
-using MolPrint2D descriptors, with prediction accuracies
-({{cv.lazar-high-confidence.acc_perc}}%) comparable to the interlaboratory variability
-of the Ames test (80-85%). Models based on CDK descriptors had lower
-accuracies than MolPrint2D models, but only the `lazar` algorithm could use
-MolPrint2D descriptors.
-
-**TODO**: PA Vorhersagen
-
-In this study, an attempt was made to predict the genotoxic potential of
-PAs using five different machine learning techniques (LAZAR, RF, SVM, DL
-(R-project and Tensorflow). The results of all models fitted only partly
-to the findings in literature, with best results obtained with the
-Tensorflow DL model. Therefore, modelling allows statements on the
-relative risks of genotoxicity of the different PA groups. Individual
-predictions for selective PAs appear, however, not reliable on the
-current basis of the used training dataset.
-
-This study emphasises the importance of critical assessment of
-predictions by QSAR models. This includes not only extensive literature
-research to assess the plausibility of the predictions, but also a good
-knowledge of the metabolism of the test substances and understanding for
-possible mechanisms of toxicity.
-
-In further studies, additional machine learning techniques or a modified
-(extended) training dataset should be used for an additional attempt to
-predict the genotoxic potential of PAs.
---->
+Our data show that large difference exist with regard to genotoxic probabilities
+between different pyrrolizidine subgroups. To adjust risk assessment of
+pyrrolizidine contamination, our data supports a tiered risk assessment based
+on *in silico* and experimental data on the relative potency of individual
+pyrrolizidine alkaloids.
References
==========
diff --git a/mutagenicity.pdf b/mutagenicity.pdf
index 44aeec5..9448fb9 100644
--- a/mutagenicity.pdf
+++ b/mutagenicity.pdf
Binary files differ
diff --git a/pyrrolizidine-alkaloids/pa-sa37.csv b/pyrrolizidine-alkaloids/pa-sa37.csv
new file mode 100644
index 0000000..d5340e9
--- /dev/null
+++ b/pyrrolizidine-alkaloids/pa-sa37.csv
@@ -0,0 +1,603 @@
+Canonical SMILES,SA37
+O=C1O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@]([C@]([C@H]1C)(C)O)(C)O,1
+C/C=C\1/C[C@@H](C)[C@](O)(CO)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@]([C@@H](O)C)(C(C)C)O,1
+CC([C@H]1C(=O)O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@]([C@]1(C)O)(C)O)C,1
+O[C@@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)[C@]([C@@H](O)C)(C(C)C)O)[O-],1
+C/C=C\1/C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+C/C=C/1\C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+C/C=C\1/C[C@@H](C)[C@](O)(CO)C(=O)OCC2=CC[N+]3([C@H]2[C@H](OC1=O)CC3)[O-],1
+C/C=C\1/CC(=C)[C@](O)(CO)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+C/C=C/1\C[C@@H](C)[C@](O)(CO)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+C/C=C\1/C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CC[N+]3([C@H]2[C@H](OC1=O)CC3)[O-],1
+C=C/C/1=C/[C@H](C)[C@](C)(OC(=O)C)C(=O)OCC2=CC[N+]3(C2([C@H](OC1=O)CC3)[O-])C,1
+COC(C(C(O)(C)C)(C(=O)OCC1=CCN2C1C(CC2)OC(=O)C(=CC)C)O)C,1
+C/C=C\1/CC(=C)[C@@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+CO[C@@H]([C@](C(=O)OCC1=CC[N+]2([C@H]1[C@@H](O)CC2)[O-])(C(C)C)O)C,1
+COC(C(C(=O)OCC1=CCN2C1C(O)CC2)(C(C)C)O)C,1
+OCC1=CCN2[C@H]1[C@H](O)CC2,1
+O=C1OCC2=CCN3C2C(CC3)OC(=O)C2(CC(C1(C)O)C)OC2C,1
+CC([C@H]1C(=O)O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@@]([C@@H]1O)(O)[C@H](O)C)C,1
+CC[C@@]1(O)C[C@@H](C)[C@](C)(OC(=O)C)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+O=C1O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@H]([C@]([C@H]1C)(C)O)C,1
+C/C=C(\C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@]([C@@H](O)C)(C(C)C)O)/C,1
+C/C=C(/C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@]([C@@H](O)C)(C(C)C)O)\C,1
+C/C=C(/C(=O)OC1CCN2C1C(=CC2)COC(=O)C1(O)C(C)OC(=O)C1C)\C,1
+C/C=C\1/CC(=C)[C@](O)(CO)C(=O)OCC2=CC[N+]3([C@H]2[C@H](OC1=O)CC3)[O-],1
+C/C=C/1\CC(CO)C(C)(O)C(=O)OCC2=CCN3C2C(OC1=O)CC3,1
+OC/C=C/1\C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CC[N+]3([C@]2([C@H](OC1=O)CC3)O)C,1
+C/C=C\1/CC2(CO)OC2(C)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+C/C=C\1/CC(=C)[C@@](C)(OC(=O)C)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+CC1OCC23CC1(O)C(=O)O[C@@H]1CCN4[C@@H]1C(=CC4)COC(=O)C3(O2)C,1
+C/C=C\1/C[C@@H](C)[C@](O)(CO)C(=O)OCC2=CC[N@@+]3([C@]2([C@H](OC1=O)CC3)O)C,1
+COC(C(C(O)(C)C)(C(=O)OCC1=CCN2C1C(O)CC2)O)C,1
+O=C1OC2CC[N+]3(C2C(=CC3)COC(=O)C(C(C1C)(C)O)(C)O)[O-],1
+CC(=O)O[C@@]1(C)[C@@H](C)C(=O)O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@]1(C)O,1
+CC(=O)O[C@@]1(C)C(=O)OCC2=CCN3[C@H]2[C@H](OC(=O)[C@@H]([C@]1(C)OC(=O)C)C)CC3,1
+O=C1OC2CCN3C2C(=CC3)COC(=O)C(C2(C(C1=C)C)OC2)(C)O,1
+COC(C(C(O)(C)C)(C(=O)OCC1=CC[N+]2(C1C(O)CC2)[O-])O)C,1
+CCC(c1ccccc1)(C(=O)OCC1=CC[N+]2(C1C(O)CC2)[O-])O,1
+O=C(Cc1ccccc1)OCC1=CCN2[C@H]1[C@H](O)CC2,1
+CC(CC(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)C,1
+O[C@@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)[C@@]([C@H](O)C)(C(C)C)O)[O-],1
+C1OCC2=CCN3C2C(O1)CC3,1
+CCNC(=O)O[C@@H]1CC[N+]2(C1C(=CC2)COC(=O)C(c1ccc(cc1)Cl)(CC)O)[O-],1
+CCC(c1ccc(cc1)Cl)(C(=O)OCC1=CC[N+]2(C1[C@@H](CC2)OC(=O)Nc1ccccc1)[O-])O,1
+C/C=C(\C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@](C(O)(C)C)([C@@H](O)C)O)/C,1
+CO[C@H]([C@@](C(O)(C)C)(C(=O)OCC1=CC[N+]2([C@H]1[C@H](CC2)OC(=O)/C(=C\C)/C)[O-])O)C,1
+C/C=C/1\CC(=C)[C@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+C/C=C(/C(=O)O[C@H]([C@](C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)(C(C)C)O)C)\C,1
+C/C=C/1\C[C@H](C)[C@](O)(CO)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+O=C1O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@]2(O[C@](C1)(C)[C@H](O)[C@H]2C)C,1
+CC[C@](c1ccccc1)(C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)O,1
+CCC(c1ccccc1)(C(=O)OCC1=CCN2[C@H]1[C@H](CC2)OC(=O)C(c1ccccc1)(CC)O)O,1
+OC1CC[N+]2(C1C(=CC2)COC(=O)C(c1ccccc1)(O)C)[O-],1
+O[C@@H]1CC[N+]2(C1C(=CC2)COC(=O)c1ccccc1)[O-],1
+O[C@@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)C(C(O)C)(O)C)[O-],1
+C/C=C(/C(=O)O[C@H]([C@](C(=O)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)C)(C(C)C)O)C)\C,1
+CC[C@](c1ccccc1)(C(=O)O[C@H]1CCN2[C@@H]1C(=CC2)CO)O,1
+CC[C@](c1ccccc1)(C(=O)O[C@H]1CC[N+]2([C@@H]1C(=CC2)CO)[O-])O,1
+CCC(c1ccccc1)(C(=O)OCC1=CC[N+]2([C@H]1[C@H](CC2)OC(=O)[C@@](c1ccccc1)(CC)O)[O-])O,1
+C/C=C(\C(=O)O[C@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)[C@@]([C@H](OC)C)(C(C)C)O)[O-])/C,1
+C=C1C(=O)O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)C([C@@H]([C@H]1C)C)(C)C,1
+C/C=C/1\C[C@@H](C)[C@](O)(COC(=O)C)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+C/C=C(\C(=O)O[C@@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)[C@](C(O)(C)C)([C@@H](O)C)O)[O-])/C,1
+C/C=C\1/CC(=C)C(C)(C)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+CC=C1CC(=C)C(C)(C)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+CC=C1CC(=C)C(O)(CO)C(=O)OCC2=CCN3C2C(OC1=O)CC3,1
+COC(C(C(=O)OCC1=CCN2C1[C@H](CC2)OC(=O)C)(C(C)C)O)C,1
+CCCCC(=O)OCC1=CCN2C1[C@H](CC2)OC(=O)CCCC,1
+CC([C@@]1(O)C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3)Cl,1
+CC=C1C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CC[N+]3([C@H]2[C@H](OC1=O)CC3)[O-],1
+O=C1O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@](C(=C)C[C@]21O[C@H]2C)(C)O,1
+COC(C(C(O)(C)C)(C(=O)OCC1=CC[N+]2(C1C(CC2)OC(=O)C(=CC)C)[O-])O)C,1
+Clc1ccc(cc1)C(=O)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)c1ccc(cc1)Cl,1
+COc1c(OC)cc(cc1OC)C(=O)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)c1cc(OC)c(c(c1)OC)OC,1
+O=C(c1ccc2c(c1)OCO2)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)c1ccc2c(c1)OCO2,1
+O=C(Cc1ccccc1)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)Cc1ccccc1,1
+C=C1C(=O)OC2CCN3C2C(=CC3)COC(=O)C(C(C1C)C)(C)O,1
+CC(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@]([C@@H](O)C)(C(C)C)O,1
+O=C1OC(C)C(O)(C(C)C)C(=O)OCC2=CCN3C2C(OC(=O)C(C1)(O)C(C)C)CC3,1
+CC1C(=O)O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)C(C(C1C)C)O,1
+O=C1OC2CCN3C2C(=CC3)COC(=O)C(C(C1C)C)C(O)C,1
+CC(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@](C(O)(C)C)([C@@H](O)C)O,1
+CCC(C1(O)C(=O)O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)C(C(OC(=O)C1O)C)(O)C(C)C)(O)C,1
+O=C1O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@]([C@@]2(CC31O[C@H]3C)OC2)(C)O,1
+O=C(c1ccc(cc1)[N+](=O)[O-])OCC1=CCN2C1C(CC2)OC(=O)c1ccc(cc1)[N+](=O)[O-],1
+OCC1(O)C(=O)O[C@@H]2CCN3C2C(=CC3)COC(=O)C([C@@H](C1C)C)(C)O,1
+CCC12C(=O)OC3CC[N+]4(C3(O)C(=CC4)COC(=O)C(C2C)(OC1=O)C)C,1
+CC(CC(=O)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)CC(C)C)C,1
+CC([C@H]1C(=O)O[C@@H]2CC[N@+]3([C@]2(O)C(=CC3)COC(=O)[C@]([C@H]1C)(C)O)C)C,1
+CCC1CC(=C)C(C)(O)C(=O)OCC2=CC[N+]3(C2([C@H](OC1=O)CC3)O)C,1
+CCC(C(=O)OC1CC[N+]2(C1C(=CC2)COOC(=O)C1=C(C)OC(=O)C1C)[O-])C,1
+CC(C1C(=O)OC2CCN3C2C(=CC3)COC(=O)C(C1O)(C)O)C,1
+O=C(CC(O)(C)C)OC1CCN2C1C(=CC2)COC(=O)C(C(O)C)(C(C)C)O,1
+O=C1OC2CC[N+]3(C2(O)C(=CC3)COC(=O)C(C(CC21OC2C)C)(C)O)C,1
+CC[C@H]1C[C@@H](C)[C@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+CC[C@@]1(O)C[C@@H](C)[C@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+OC1CCN2C1C(=CC2)COC(=O)C1(C)C(C)OC(=O)C1C,1
+CCNC(=O)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)NCC,1
+COCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)NCC,1
+CCNC(=O)OCC1=CCN2[C@H]1[C@H](O)CC2,1
+CC(C(C(=O)OCC1=CCN2C1C(CC2)OC(=O)C(C(O)C)(O)C)(O)C)O,1
+CCC(C(=O)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)C)(OC(=O)C)C,1
+CC(=O)OC1CCN2C1C(=CC2)COC(=O)C(C(OC(=O)C)C)(C(C)C)OC(=O)C,1
+O=C1O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@@]2(O[C@](C1)(C)C[C@H]2C)C,1
+CCC1(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC(=O)C([C@H]1O)C(C)C)CC3,1
+O=C1OC2CC[N+]3(C2C(=CC3)COC(=O)C(C(C1C)(C)O)C)[O-],1
+CC(=O)OC1(C)C(=O)OCC2=CCN3C2C(OC(=O)C(C1(C)OC(=O)C)C)CC3,1
+CCC[N+]12CCC(C2C(=CC1)CO)O,1
+O=C1OC2CC[N+]3(C2C(=CC3)COC(=O)C(C(C1C)(C)O)(C)O)C,1
+C=CC[N+]12CCC3C2C(=CC1)COC(=O)C(C(C(C(=O)O3)C)(C)O)(C)O,1
+OCC1=CC[N+]2(C1C(O)CC2)CC,1
+OC1CC[N+]2(C1C(=CC2)COC(=O)C(C(O)C)(C(C)C)O)C,1
+OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)[C@]([C@H](O)C)(C(C)C)O,1
+CO[C@H]([C@@](C(O)(C)C)(C(=O)OCC1=CCN2[C@H]1[C@H](CC2)OC(=O)C(=CC)C)O)C,1
+CC=C(C(=O)OC1CCN2C1C(=CC2)COC(=O)C1(O)C(C)OC(=O)C1C)C,1
+CC=C(C(=O)OC1CCN2C1C(=CC2)COC(=O)C(=CC)CO)C,1
+CC(C(C(O[Si](C)(C)C)C)(C(=O)OCC1=CCN2C1C(CC2)O[Si](C)(C)C)O[Si](C)(C)C)C,1
+O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@](C(C)C)(O)C,1
+CC(=O)O[C@@H]1CCN2[C@H]1C(=CC2)COC(=O)[C@]1(O)[C@H](C)OC(=O)[C@H]1C,1
+C/C=C(\C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)/C,1
+O=C(C(C)(C)C)OCC1=CCN2[C@H]1[C@H](CC2)OC(=O)C(C)(C)C,1
+OCC1=CC[N@+]2([C@H]1[C@H](O)CC2)[O-],1
+CC[C@@](c1ccc(cc1)Cl)(C(=O)OCC1=CC[N+]2([C@H]1[C@H](O)CC2)[O-])O,1
+CCC1(C)C(=O)OC2CCN3[C@@H]2C(=CC3)COC(=O)C(C1(C)O)(C)O,1
+O=C1O[C@H](C)[C@@](O)(C(C)C)C(=O)OCC2=CCN3[C@H]2[C@H](OC(=O)[C@@]([C@H]1O)(O)C(C)C)CC3,1
+COCC1=CCN2C1C(O)CC2,1
+CC=C1C=C(C)C(C)(O)C(=O)OCC2=CCN3C2C(OC1=O)CC3,1
+COC(C(C(=O)OCC1=CCN2C1C(O)CC2)C(C)C)C,1
+OCC1(O)C(=O)OCC2=CCN3C2C(OC(=O)C(C1(C)O)C(C)C)CC3,1
+C/C(=C/C)/C(=O)O[C@H]1CCN2[C@@H]1C(=CC2)CO,1
+C/C=C(/C(=O)OCC1=CCN2C1[C@H](O)CC2)\C,1
+O=C1OC2CCN3[C@@H]2C(=CC3)COC(=O)[C@@]([C@]([C@H]1C)(C)O)(C)O,1
+C/C=C(/C(=O)O[C@@H]1CCN2C1C(=CC2)COC(=O)[C@@]([C@@H](O)C)(C(C)C)O)\C,1
+C/C=C/1\CC(C)C(O)C(=O)OCC2=CCN3C2[C@H](OC1=O)CC3,1
+OCC1(O)C(=O)OCC2=CCN3C2[C@H](OC(=O)C([C@@H](C1C)C)(C)O)CC3,1
+OC/C(=C/C(=O)OC1CCN2C1C(=CC2)COC(=O)/C(=C\C)/CO)/C,1
+C/C=C\1/C(=O)OC2CC[N+]3(C2(O)C(=CC3)COC(=O)C(C(C1OC(=O)C)C)(C)OC(=O)C)C,1
+C/C=C\1/CC(=C)[C@](C)(O)C(=O)OCC2=CCN3[C@@H]2[C@H](OC1=O)CC3,1
+C/C=C/1\CC(=C)C(O)(CO)C(=O)OCC2=CCN3C2C(OC1=O)CC3,1
+C/C=C/1\CC(C)C(C)(O)C(=O)OCC2=CC[N+]3(C2C(OC1=O)CC3)[O-],1
+C/C=C/1\C=C(\C)/C(C)(O)C(=O)OCC2=CCN3C2C(OC1=O)CC3,1
+CO[C@@H]([C@@](C(O)(C)C)(C(=O)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)/C(=C\C)/C)O)C,1
+COCC1=CCN2C1[C@H](OC)CC2,1
+CC(=O)O[C@@H]1CCN2C1C(=CC2)COC(=O)C(C(O)C)O,1
+CC(=O)O[C@@H]1CCN2C1C(=CC2)COC(=O)C(C(C)C)O,1
+CCC(C(=O)OCC1=CCN2C1[C@@H](CC2)OC(=O)C)C,1
+OCC1=CCN2C1[C@@H](CC2)OC(=O)C,1
+C/C=C(\C(=O)O[C@@H]1CCN2C1C(=CC2)COC(=O)C(C(O)(C)C)(C(OC(=O)C)C)O)/C,1
+CCC(C(=O)O[C@@H]1CCN2C1C(=CC2)COC(=O)C(C(O)C)O)C,1
+C/C=C/1\C[C@@H](C)[C@](O)(CO)C(=O)OCC2=CC[N+]3(C2[C@H](OC1=O)CC3)[O-],1
+C/C=C/1\CC(C)C(O)(CO)C(=O)OCC2=CC[N+]3(C2(C(OC1=O)CC3)O)C,1
+C=C/C/1=C\C(C)C(C)(OC(=O)C)C(=O)OCC2=CC[N+]3(C2(C(OC1=O)CC3)O)C,1
+C/C=C/1\C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CC[N+]3([C@]2([C@H](OC1=O)CC3)O)C,1
+C/C=C(/C(=O)OC1CC[N+]2(C1C(=CC2)COC(=O)C(C(O)C)(C(C)C)O)[O-])\C,1
+O=C1/C=C(\C)/C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](O1)CC3,1
+C/C=C(/C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)/C(=C\C)/CO)\C,1
+C/C=C\1/CC2(OC2)C(C)(O)C(=O)OCC2=CCN3C2C(OC1=O)CC3,1
+O=C(OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)/C=C/c1ccccc1)/C=C/c1ccccc1,1
+O=C(OC([C@](C(=O)OCC1=CCN2[C@H]1[C@@H](O)CC2)(C(C)C)O)C)/C=C/c1ccc(cc1)O,1
+C/C=C(\C(=O)OCC1=CC[N+]2([C@H]1[C@H](O)CC2)[O-])/C,1
+C/C=C/1\C(=O)OC2CC[N+]3(C2(O)C(=CC3)COC(=O)C(C(C1OC(=O)C)C)(C)OC(=O)C)C,1
+C/C=C/1\CC(=C)[C@@](C)(O)C(=O)OCC2=CC[N+]3([C@H]2[C@H](OC1=O)CC3)[O-],1
+CCNC(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)/C(=C/C)/C,1
+CC([C@@H]1C(=O)O[C@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@]([C@]1(C)O)(C)O)C,1
+OCC[C@]1(O)C(=O)OCC2=CCN3C2[C@H](OC(=O)C(=CC)C[C@H]1C)CC3,1
+CC=C1CC(=C)[C@@](C)(O)C(=O)OCC2=CCN3[C@@H]2[C@H](OC1=O)CC3,1
+C/C=C/1\C=C(\C)/[C@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+OCC1=CC[N+]2([C@H]1[C@H](O)CC2)Cc1ccccc1,1
+C/C=C/1\CO[C@@H]2CCN3[C@@H]2C(=CC3)COC[C@H]([C@@H](C1)C)C,1
+OC[C@@]1(O)CC(=C)CC(=C)C(=O)O[C@H]2C3C(=CCN3CC2)COC1=O,1
+C/C=C(\C(=O)O[C@H]1CCN2[C@@H]1C(=CC2)COC(=O)C(C(OC)C)(C(C)C)O)/C,1
+O=C(CC(O)(C)C)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@](C(C)(C)C)([C@@H](OC(=O)C)C)O,1
+O=C(CC(O)(C)C)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@](C(C)(C)C)([C@@H](O)C)O,1
+C/C=C(\C(=O)O[C@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)C(C(O)(C)C)(C(OC(=O)C)C)O)[O-])/C,1
+COC(C(C(OC(=O)C)(C)C)(C(=O)OCC1=CC[N+]2([C@H]1[C@H](CC2)OC(=O)/C(=C\C)/C)[O-])O)C,1
+CC(=O)O[C@@H]1[C@@H](C)[C@@]2(O[C@@]1(C)CC(=O)O[C@@H]1CCN3[C@@H]1C(=CC3)COC2=O)C,1
+O=C1O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@]2(O[C@](C1)(C)C[C@]2(C)O)C,1
+O=C1O[C@@H]2CCN3[C@H]2C(=CC3)COC(=O)[C@]([C@H](C1)C)(C)OCc1ccccc1,1
+SCCCSC(=O)C[C@H]([C@@](C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)(OCc1ccc(cc1)OC)C)C,1
+COc1ccc(cc1)CO[C@]1(C)C(=O)OCC2=CCN3[C@H]2[C@H](OC(=O)C[C@H]1C)CC3,1
+CCC(C(=O)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)/C(=C\C)/C)C,1
+COc1ccc(cc1)CO[C@@]([C@@H](C=C1SCCCS1)C)(C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)C,1
+CCC(C(=O)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)/C(=C/C)/C)C,1
+O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@]([C@@H](C=C1SCCCS1)C)(OCc1ccccc1)C,1
+C/C=C(\C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)C(C(O)C)O)/C,1
+SCCCSC(=O)C[C@H]([C@@](C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)(OCc1ccccc1)C)C,1
+CSCO[C@]([C@@H](C/C(=C/C)/C(=O)O)C)(C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)C,1
+[O-]S(=O)(=O)OC12C(OCc3ccccc3)CC[N+]2(C)CC=C1COCc1ccccc1,1
+C/C=C(\C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)CO[Si](C(C)(C)C)(C)C)/C,1
+CC[C@H]1C[C@H](C)[C@](C)(OC(=O)C)C(=O)OCC2=CC[N+]3([C@H]2[C@H](OC1=O)CC3)[O-],1
+O=C(C(=C)[C@@H]([C@H]([C@](C(=O)OCC[Si](C)(C)C)(O[Si](C(C)(C)C)(C)C)C)C)C)O[C@@H]1CCN2[C@@H]1C(=CC2)CO[Si](C(C)(C)C)(C)C,1
+COC(=O)C1=CCN2[C@H]1[C@H](O)CC2,1
+O[C@@H]1CCN2[C@@H]1C(=CC2)CO[Si](C(C)(C)C)(C)C,1
+OCC1=CCN2[C@H]1[C@H](O)CC2.CCCC[Sn]CCCC,1
+CSCO[C@@]1(C)C(=O)OCC2=CCN3[C@H]2[C@H](OC(=O)/C(=C/C)/C[C@H]1C)CC3,1
+CC[C@H]1C[C@H](C)[C@](C)(OC(=O)C)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+OCC1=CCN2[C@H]1[C@H](CC2)OC(C)(C)C,1
+CCOC(=O)C1=CCN2[C@H]1[C@H](CC2)OC(C)(C)C,1
+CC(C[C@@](C(=O)OCC1=CCN2[C@H]1[C@@H](O)CC2)([C@@H](O)C)O)C,1
+CC([C@@]1(O)[C@@H](C)O[C@@H]2CCN3[C@@H]2C(=CC3)COC1=O)C,1
+COC(=O)C1=CCN2[C@H]1[C@@H](CC2)O[C@H](c1c(cc(cc1C(C)C)C(C)C)C(C)C)C,1
+CSCO[C@@]1(C)C(=O)OCC2=CCN3[C@H]2[C@H](OC(=O)/C(=C\C)/C[C@H]1C)CC3,1
+CO/C(=N\S(=O)(=O)OC12C(OCc3ccccc3)CC[N+]2(C)CC=C1COCc1ccccc1)/[O-],1
+COC(=O)NS(=O)(=O)OC12C(OCc3ccccc3)CC[N+]2(C)CC=C1COCc1ccccc1,1
+O[C@@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)[C@](C(O)(C)C)([C@H](O)C)O)[O-],1
+O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@](C(O)(C)C)([C@H](O)C)O,1
+CC(=O)O[C@@H]([C@@](C(O)(C)C)(C(=O)OCC1=CC[N+]2([C@H]1[C@@H](CC2)OC(=O)C=C(C)C)[O-])O)C,1
+C/C=C\1/C[C@@H](C)[C@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+C/C=C(/C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@](C(O)(C)C)([C@H](O)C)O)\C,1
+C/C(=C\C)/C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)CO,1
+C/C=C\1/CC(=C)[C@@](C)(O)C(=O)OCC2=CC[N+]3([C@H]2[C@H](OC1=O)CC3)[O-],1
+C/C=C(\C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@]1(O)[C@H](C)OC(=O)[C@@H]1C)/C,1
+C/C=C(/C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)\C,1
+OC1CCN2C1C(=CC2)COC(=O)c1ccccc1,1
+CC[C@@]1(O)C(=O)OCC2=CCN3[C@H]2[C@@H](CC3)OC(=O)[C@@]([C@@H](C(=O)O[C@@H]1C)O)(O)C(C)C,1
+OC/C=C/1\C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+CCC([C@]1(O)C(=O)O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@]([C@H](OC(=O)[C@@H]1O)C)(O)CC)C,1
+CCC([C@]1(O)C(=O)O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@]([C@H](OC(=O)[C@@H]1O)C)(O)C(C)C)C,1
+O=C1O[C@H](C)[C@@](O)(C(C)C)C(=O)OCC2=CCN3[C@H]2[C@H](OC(=O)[C@@](C1)(O)C(C)C)CC3,1
+CCC([C@@]1(O)CC(=O)O[C@H](C)[C@@](O)(CC)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3)C,1
+CC(=O)O[C@H]([C@@](C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)(C(C)C)O)C,1
+CC(=CC(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@](C(O)(C)C)([C@@H](O)C)O)C,1
+OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)C=C(C)C,1
+CC(=CC(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@]([C@@H](O)C)(C(C)C)O)C,1
+O=C1OC2CCN3C2C(=CC3)COC(=O)CC(C1)(C)O,1
+OCC1=CC[N+]2(C1C(O)CC2)[O-],1
+C/C=C(/C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@](C(O)(C)C)([C@@H](OC(=O)C)C)O)\C,1
+CC(=CC(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)C,1
+C/C=C\1/C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CC[N+]3(C2([C@H](OC1=O)CC3)[O-])C,1
+CCCC[Sn]1(CCCC)OCC2=CCN3[C@H]2[C@H](O1)CC3,1
+O=C1OC2CC[N+]3([C@@H]2C(=CC3)COC(=O)[C@]([C@]([C@H]1C)(C)O)(C)O)[O-],1
+ClC[N@@+]12CC[C@@H]3[C@H]2C(=CC1)COC(=O)[C@]1(O[C@](CC(=O)O3)(C)C[C@H]1C)C,1
+CO[C@@H](C(C(=O)OCC1=CC[N+]2([C@H]1[C@@H](O)CC2)C)(C(C)C)O)C,1
+C/C=C\1/C[C@@H](CO)[C@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+CCC1(C)CO[C@@H]2CC[N+]3(C2(O)C(=CC3)COCC(C1=C)(C)O)C,1
+OCC1=CC[N+]2([C@H]1[C@H](O)CC2)C,1
+O=C1/C=C(/C)\C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](O1)CC3,1
+C/C=C/1\C(=O)O[C@@H]2CC[N+]3(C2([O-])C(=CC3)COC(=O)[C@@]([C@H]([C@@H]1OC(=O)C)C)(C)OC(=O)C)C,1
+COCCOCO[C@@H]1CCN2[C@@H]1C(=CC2)COCc1ccccc1,1
+c1ccc(cc1)COCC1=CCN2[C@@H]1[C@@H](OCc1ccccc1)CC2,1
+O=C1CN(CC(=O)OCC2=CCN3[C@H]2[C@H](O1)CC3)C(=O)OC(C)(C)C,1
+O=C1CNCC(=O)OCC2=CCN3[C@H]2[C@H](O1)CC3,1
+OC(=O)CCC(=O)N1CC(=O)O[C@@H]2CC[NH+]3[C@@H]2C(=CC3)COC(=O)C1,1
+O=C1OCC2=CCN3[C@H]2[C@H](OC(=O)CC(C1)CC1(C)SCCCS1)CC3,1
+OC(=O)CO/N=C(\CC1CC(=O)OCC2=CCN3[C@H]2[C@H](OC(=O)C1)CC3)/C,1
+C/C=C/1\CC2(OC2)C(C)(O)C(=O)OCC2=CCN3C2C(OC1=O)CC3,1
+OC/C=C\1/C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CC[N+]3([C@]2([C@H](OC1=O)CC3)O)C,1
+C/C=C\1/CO[C@@H]2CCN3[C@@H]2C(=CC3)COC[C@H]([C@@H](C1)C)C,1
+OC1CCN2C1C(=CC2)COC(=O)C(C(C)C)(C(C)C)O,1
+O[C@@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)[C@]([C@H](O)C)(C(C)C)O)C,1
+O=C1OCC2=CC[N+]3([C@H]2[C@H](OC(=O)[C@@]([C@@]([C@@H]1C)(C)O)(C)O)CC3)[O-],1
+O=C(Cc1ccccc1)OCC1=CC[N+]2(C1[C@H](O)CC2)[O-],1
+CCC(C1(O)C(=O)OC2CCN3C2C(=CC3)COC(=O)C(C(OC(=O)C1O)C)(O)C(C)C)(O)C,1
+O=C1OCC2=CCN3C2C(OC(=O)C(C(C1C)(C)O)(C)O)CC3,1
+O[C@H]1CCN2[C@@H]1C(=CC2)C(=O)O,1
+CCC(C(=O)OCC1=CCN2C1C(O)CC2)(OC(=O)C)C,1
+O[C@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)C(C(C(O)C)(O)C)(O)C)[O-],1
+CC(=O)O[C@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)[C@@]([C@@H](O)C)(C(C)C)O)[O-],1
+CC(C(C(=O)OCC1=CC[N+]2([C@H]1[C@H](CC2)OC(=O)C(C(O)C)(C(C)C)O)[O-])(C(O)C)O)C,1
+C/C=C(/C(=O)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)/C(=C/C)/C)\C,1
+CC(=O)OCC1=CCN2C1C(O)CC2,1
+CC(=O)OCC1=CCN2C1C(CC2)OC(=O)C,1
+CCCCCCC(=O)OCC1=CCN2C1C(CC2)OC(=O)CCCCCC,1
+O=C(CC1(O)OC(=O)C(C1C)C)OCC1=CCN2C1C(O)CC2,1
+C[C@H]([C@@]1(O)C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3)O,1
+C/C=C(/C(=O)OC1CCN2C1C(=CC2)COC(=O)C)\C,1
+O=C1O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@]([C@@]2(C[C@]31O[C@H]3C)OC2)(C)O,1
+C/C=C\1/CC2(COC(=O)C)OC2(C)C(=O)OCC2=CCN3[C@@H]2[C@@H](OC1=O)CC3,1
+C/C=C\1/C[C@@H](COC(=O)C)[C@@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+C/C=C/1\CC2(CO)OC2(C)C(=O)OCC2=CCN3[C@@H]2[C@H](OC1=O)CC3,1
+CC[C@@H]([C@@H](C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)O)C,1
+CC([C@@]1(O)CC(=C)[C@@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3)Cl,1
+CC([C@H]1C[C@](O)([C@H](O)C)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3)C,1
+OCC1=CCN2C1[C@@H](CC2)OC(=O)[C@@H](C(C)C)O,1
+CCC([C@](C(=O)OCC1=CCN2[C@H]1[C@H](CC2)OC(=O)C)([C@H](O)C)O)C,1
+CC(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)C=C(C)C,1
+CC(=O)O[C@@H]1CCN2C1C(=CC2)COC(=O)[C@](C(O)(C)C)([C@@H](OC(=O)C)C)O,1
+CC(=O)O[C@@H]1CCN2C1C(=CC2)COC(=O)C([C@@H](OC(=O)C)C)(C(C)C)O,1
+CCC([C@](C(=O)OCC1=CCN2[C@H]1[C@@H](O)CC2)([C@H](O)C)O)C,1
+C/C=C(/C(=O)O[C@@H]1CCN2[C@H]1C(=CC2)COC(=O)C(C(O)C)(CO)O)\C,1
+C/C=C(\C(=O)O[C@@H]1CCN2C1C(=CC2)COC(=O)C(C(O)C)(CO)O)/C,1
+CC(CC(=O)O[C@H]([C@](C(=O)OCC1=CCN2[C@H]1[C@H](CC2)O[Si](C)(C)C)(C(C)C)O[Si](C)(C)C)C)C,1
+C/C=C(/C(=O)O[C@H]([C@](C(=O)OCC1=CCN2[C@H]1[C@H](CC2)O[Si](C)(C)C)(C(C)C)O[Si](C)(C)C)C)\C,1
+CC(=O)O[C@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@]([C@@H](O[Si](C)(C)C)C)(C(C)C)O[Si](C)(C)C,1
+C/C=C(\C(=O)O[C@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@]([C@@H](O[Si](C)(C)C)C)(C(C)C)O[Si](C)(C)C)/C,1
+C/C=C(/C(=O)O[C@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@]([C@@H](O[Si](C)(C)C)C)(C(C)C)O[Si](C)(C)C)\C,1
+CC(=CC(=O)O[C@H]([C@@](C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)(C(C)C)O)C)C,1
+OC/C(=C/C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@]([C@@H](O)C)(C(C)C)O)/C,1
+C/C=C(/C(=O)O[C@H]1CCN2[C@@H]1C(=CC2)COC(=O)C(C(O)C)O)\C,1
+CCC(C(=O)OCC1=CCN2[C@H]1[C@H](CC2)OC(=O)/C(=C/C)/C)C,1
+C/C=C(/C(=O)O[C@@H]1CCN2C1C(=CC2)COC(=O)C(C(O)(C)C)O)\C,1
+C/C=C(\C(=O)O[C@]1(C)C(=O)OCC2=CCN3C2[C@@H](OC(=O)/C(=C\C)/C[C@@H]1C)CC3)/C,1
+CCCCCCC(=O)OCC1=CCN2C1[C@H](O)CC2,1
+CC(=C)CC(=O)OCC1=CCN2C1[C@H](O)CC2,1
+CC(=O)O[C@]1(C)C(=O)OCC2=CCN3C2[C@@H](OC(=O)C(=C)[C@H]([C@H]1C)C)CC3,1
+O=C1O[C@H]2CCN3C2C(=CC3)COC(=O)[C@@]([C@@](C1(C)C)(C)O)(C)O,1
+CC(=O)O[C@H]([C@](C(=O)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)C=C(C)C)(C(C)C)O)C,1
+C/C=C(/C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@]([C@@H](OC(=O)C)C)(C(C)C)O)\C,1
+O=C(c1ccccc1)O[C@H]([C@@](C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)(C(C)C)O)C,1
+O=C(O[C@@H]([C@](C(=O)OCC1=CCN2[C@@H]1[C@@H](O)CC2)(C(C)C)O)C)/C=C\c1ccccc1,1
+O=C(O[C@H]([C@@](C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)(C(C)C)O)C)CCc1ccccc1,1
+CCC(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@]([C@@H](O)C)(C(C)C)O,1
+CC(=CC(=O)OCC1=CCN2[C@H]1[C@@H](O)CC2)C,1
+C/C=C\1/CC2(C)O[C@@]2(C)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+OC1CCN2C1C(=CC2)COc1ccc[nH]1,1
+COCC1=CCN2C1C(CC2)OC(=O)c1c[nH]cc1,1
+CCCCCC(=O)OCC1=CCN2C1[C@H](O)CC2,1
+CCC(C(=O)OC1(C)C(C)C(=O)OC2CCN3C2C(=CC3)COC(=O)C1(C)O)C,1
+CC([C@@H]1C(=O)O[C@@H]2CCN3C2C(=CC3)COC(=O)[C@]([C@]21CO2)(C)O)C,1
+C/C=C(\C(=O)O[C@H]1CCN2[C@H]1C(=CC2)COC(=O)C=C(C)C)/C,1
+C=CC[N+]12CC[C@H]([C@@H]2C(=CC1)CO)O,1
+CO[C@@H]([C@@](C(=O)OCC1=CC[N+]2([C@@H]1[C@H](O)CC2)[O-])(C(C)C)O)C,1
+O[C@@H]1CCN2[C@H]1C(=CC2)COC(=O)[C@@]([C@H](O)C)(C(C)C)O,1
+O[C@@H]1CC[N+]2([C@H]1C(=CC2)COC(=O)[C@]([C@H](O)C)(C(C)C)O)[O-],1
+O[C@@H]1CC[N+]2([C@H]1C(=CC2)COC(=O)[C@@]([C@@H](O)C)(C(C)C)O)[O-],1
+O=C1O[C@@H]2CC[N+]3([C@@H]2C(=CC3)COC(=O)[C@@]([C@@]([C@@H]1C)(C)O)(C)O)[O-],1
+O=C1O[C@@H]2CC[N+]3([C@@H]2C(=CC3)COC(=O)[C@@]([C@@]([C@H]1C)(C)O)(C)O)[O-],1
+O=C1O[C@H]2CC[N+]3([C@@H]2C(=CC3)COC(=O)[C@@]([C@@]([C@@H]1C)(C)O)(C)O)[O-],1
+O=C1O[C@H]2CC[N+]3([C@@H]2C(=CC3)COC(=O)[C@@]([C@@]([C@H]1C)(C)O)(C)O)[O-],1
+CO[C@@H]([C@@](C(O)(C)C)(C(=O)OCC1=CC[N+]2([C@H]1[C@@H](CC2)OC(=O)/C(=C\C)/C)[O-])O)C,1
+O=C1O[C@@H]2CC[N+]3([C@@H]2C(=CC3)COC(=O)[C@@]([C@@]([C@@H]1C)(C)O)(C)O)C,1
+O=C1O[C@@H]2CC[N+]3([C@@H]2C(=CC3)COC(=O)[C@@]([C@@]([C@H]1C)(C)O)(C)O)C,1
+O=C1O[C@H]2CC[N+]3([C@@H]2C(=CC3)COC(=O)[C@@]([C@@]([C@@H]1C)(C)O)(C)O)C,1
+O=C1O[C@H]2CC[N+]3([C@@H]2C(=CC3)COC(=O)[C@@]([C@@]([C@H]1C)(C)O)(C)O)C,1
+OCC1=CC[N+]2([C@@H]1[C@H](O)CC2)CC,1
+O=C1O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@@]([C@@]2([C@@H](C1=C)C)OC2)(C)O,1
+O=C1OCC2=CCN3[C@H]2[C@H](OC(=O)[C@@]([C@@]([C@@H]1C)(C)O)(C)O)CC3,1
+CC[C@H]1C[C@@H](C)[C@](C)(OC(=O)C)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+C=C1C(=O)O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@]([C@@H](C1C)C)(C)O[Si](C(C)(C)C)(C)C,1
+C=C(C([C@H]([C@](C(=O)OC([Si](C)(C)C)C)(O[Si](C(C)(C)C)(C)C)C)C)C)C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)CO[Si](C(C)(C)C)(C)C,1
+OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)C(=C)C([C@H]([C@](C(=O)OC([Si](C)(C)C)C)(O[Si](C(C)(C)C)(C)C)C)C)C,1
+OC[C@]1(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC(=O)C(C[C@]1(C)O)C(C)C)CC3,1
+CC[C@@](C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)([C@@H](O)C)O,1
+CCC(C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)CO)(C(O)C)O,1
+OCC1=CC[N@@+]2([C@@]1(O)[C@H](O)CC2)C,1
+O=C(OCC1=CCN2[C@H]1[C@H](O)CC2)CCCC(=O)OCC(Cl)(Cl)Cl,1
+C/C=C/1\C[C@@H](C)[C@@H](OC(=O)C)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+C/C=C(/C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@](C(O)(C)C)([C@@H](O)C)O)\C,1
+CC(=O)O[C@@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)[C@@]([C@@H](O)C)(C(C)C)O)[O-],1
+CC(=O)OC1CC[N+]2(C1C(=CC2)COC(=O)C(C(O)(C)C)(C(O)C)O)[O-],1
+C/C=C(\C(=O)O[C@@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)[C@@]([C@H](O)C)(C(C)C)O)[O-])/C,1
+OCC1=CC[N+]2([C@H]1[C@@H](CC2)OC(=O)[C@@]([C@@H](O)C)(C(C)C)O)[O-],1
+C/C=C/1\C[C@@H](C)[C@@](C)(OC(=O)C)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)CC3,1
+OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)C(C(CC)C)(C(O)C)O,1
+COC(=O)C[C@@](C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@]([C@H](O)C)(CC)O)(C(C)C)O,1
+C/C=C(/C(=O)O[C@@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)[C@@]([C@H](O)C)(C(C)C)O)[O-])\C,1
+CC(=CC(=O)O[C@@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)[C@@]([C@H](O)C)(C(C)C)O)[O-])C,1
+CC[C@@](C(=O)OCC1=CC[N+]2([C@H]1[C@H](O)CC2)[O-])([C@@H](O)C)O,1
+O=C1O[C@H](C)[C@@](O)(C(C)C)C(=O)OCC2=CC[N+]3([C@H]2[C@H](OC(=O)[C@@](C1)(O)C(C)C)CC3)[O-],1
+CC[C@@]1(O)C(=O)OCC2=CC[N+]3([C@H]2[C@@H](CC3)OC(=O)[C@@](CC(=O)O[C@H]1C)(O)C(C)C)[O-],1
+CC(=O)O[C@]1(C)CC(=O)O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)C1,1
+CC([C@@]([C@@H](O[Si](C)(C)C)C)(C(=O)OCC1=CCN2[C@H]1[C@@H](CC2)O[Si](C)(C)C)O[Si](C)(C)C)C,1
+CCC([C@@]1(O)CC(=O)O[C@H](C)[C@@](O)(CC)C(=O)OCC2=CC[N+]3([C@H]2[C@H](OC1=O)CC3)[O-])C,1
+O=C(CC(O)(C)C)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@](C(O)(C)C)([C@@H](O)C)O,1
+O=C(CC(O)(C)C)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@@](C(O)(C)C)([C@@H](OC(=O)C)C)O,1
+OC/C(=C/C(=O)O[C@@H]1CC[N+]2([C@@H]1C(=CC2)COC(=O)[C@](C(O)(C)C)(C(O)C)O)[O-])/C,1
+C/C=C(\C(=O)OCC1=CCN2[C@H]1[C@H](O)CC2)/CO,1
+C/C=C(/C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)/C(=C/C)/CO)\C,1
+C/C=C/1\CO[C@@H]2CCN3[C@@H]2C(=CC3)COC[C@H]([C@@H]1C)C,1
+CO[C@H]([C@@](C(OC(=O)C)(C)C)(C(=O)OCC1=CCN2[C@H]1[C@H](CC2)OC(=O)/C(=C\C)/C)O)C,1
+CO[C@H]([C@@](C(O)(C)C)(C(=O)OCC1=CCN2C1[C@H](CC2)OC(=O)C)O)C,1
+CO[C@H]([C@@](C(OC(=O)C)(C)C)(C(=O)OCC1=CC[N+]2([C@H]1[C@H](CC2)OC(=O)/C(=C\C)/C)[O-])O)C,1
+ClC[C@@]1(O)C(=O)O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@]([C@@H]([C@H]1C)C)(C)O,1
+C/C=C\1/C[C@@H](C)[C@](O)(CO)C(=O)OCC2=CC[N+]3(C2([C@H](OC1=O)CC3)[O-])C,1
+CC(=O)O[C@H]([C@@](C(=O)OCC1=CC[N+]2([C@H]1[C@H](O)CC2)[O-])(C(C)C)O)C,1
+O=C1O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@]([C@H](C1)C)(C)O,1
+O=C1O[C@@H]2CCN3[C@@H]2C(=CC3)COC(=O)[C@@]2(O[C@@](C1)(C)C[C@]2(C)O)C,1
+COC(C(C(=O)OCC1=CC[N+]2(C1[C@@H](O)CC2)Cc1ccn2c1[C@@H](O)CC2)(C(C)C)O)C,1
+C/C=C(/C(=O)OCC([C@@H]([C@H](C(=O)OCC1=CC[N+]2([C@H]1[C@H](O)CC2)[O-])C)O)C)\C,1
+CO[C@@H]([C@](C(=O)OCC1=CCN2[C@H]1[C@@H](O)CC2)(C(C)C)OC(=O)C)C,1
+C/C=C/1\CC(=C)[C@@](C)(OC(=O)C)C(=O)OCC2=CC[N+]3([C@H]2[C@H](OC1=O)CC3)[O-],1
+C/C=C(\C(=O)O[C@@H]1CCN2[C@@H]1C(=CC2)COC(=O)[C@](C(OC(=O)C)(C)C)([C@@H](O)C)O)/C,1
+CC(C(C(=O)OCC1=CC[N+]2(C1C(CC2)OC(=O)C(C(O)C)(C(C)C)O)[O-])(C(O)C)O)C,1
+CC(=O)O[C@@H]1CC[N+]2([C@H]1C(=CC2)COC(=O)[C@@]([C@H](O)C)(C(C)C)O)[O-],1
+OC1CC[N+]2(C1C(=CC2)COC(=O)C(C(C(O)C)(O)C)(O)C)[O-],1
+OC[C@]1(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC(=O)[C@@](C[C@H]1C)(O)[C@H](Cl)C)CC3,1
+C/C=C(\C(=O)OCC1=CC[N+]23[C@H]1[C@H](CC2)OC3)/C,1
+CC([C@@](C(=O)OCC1=CCN2[C@H]1[C@@H](CC2)OC(=O)C1(C)OC1C)([C@H](O)C)O)C,1
+O=C1O[C@H](C)[C@@](O)(C(C)C)C(=O)OCC2=CCN3C2C(OC(=O)[C@@](C1)(O)C(C)C)CC3,1
+CO[C@@H]([C@@](C(=O)OCC1=CCN2[C@H]1CCC2)(C(C)C)O)C,1
+CC([C@@](C(=O)OCC1=CCN2[C@H]1CCC2)([C@@H](O)C)O)C,1
+CC(C(C(=O)OCC1=CC[N@+]2(C1CCC2)[O-])([C@@H](O)C)O)C,1
+CCC(C(C(=O)OCC1=CCN2C1CCC2)(C(O)C)O)C,1
+CC(=O)O[C@@H]([C@](C(=O)OCC1=CCN2[C@H]1CCC2)(C(C)C)OC(=O)C)C,1
+C/C=C(/C(=O)OCC1=CCN2C1CC(C2)OC(=O)/C(=C/C)/C)\C,1
+COC(C(C(=O)OCC1=CC[N+]2([C@H]1CCC2)[O-])(C(C)C)O)C,1
+C/C=C/C(=O)OCC1=CCN2[C@H]1CCC2,1
+CC([C@]([C@H](O[Si](C)(C)C)C)(C(=O)OCC1=CCN2[C@H]1CCC2)O[Si](C)(C)C)C,1
+CO[C@@H]([C@@](C(O)(C)C)(C(=O)OCC1=CCN2[C@H]1CCC2)O)C,1
+CO[C@@H]([C@@](C(O)(C)C)(C(=O)OCC1=CC[N+]2([C@H]1CCC2)[O-])O)C,1
+C/C=C\1/C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CCN3[C@H]2[C@H](OC1=O)[C@H](O)C3,1
+C/C=C/1\C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CCN3C[C@@H](OC1=O)[C@@H](O)C23,1
+C/C=C\1/C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CCN(CC[C@@H](OC1=O)C2=O)C,0
+CN1CC[C@H]2OC(=O)C3(O[C@@H]3C)C[C@H]([C@@](C(=O)OCC(=CC1)C2=O)(C)O)C,0
+OCC1=CCN(C)CC[C@H](C1=O)O,0
+CN1CC[C@H]2OC(=O)/C(=C/COC(=O)C)/C[C@H]([C@@](C(=O)OCC(=CC1)C2=O)(C)O)C,0
+CN1CCC2OC(=O)[C@](O)(C[C@H]([C@](C(=O)OCC(=CC1)C2=O)(C)OC(=O)C)C)C(O)C,0
+C/C=C\1/C[C@@H](C)[C@](O)(CO)C(=O)OCC2=CCN(CC[C@@H](OC1=O)C2=O)C,0
+OC/C=C/1\C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CCN(CC[C@@H](OC1=O)C2=O)C,0
+CN1CC[C@H]2OC(=O)[C@@]3(O[C@@H]3C)C[C@@H](C(C(=O)OCC(=CC1)C2=O)(C)C)C,0
+CN1CC[C@H]2OC(=O)[C@]3(O[C@H]3C)C[C@H]([C@@](C(=O)OCC(=CC1)C2=O)(C)O)C,0
+CC=C1CC(C)C(C)(OC(=O)C)C(=O)OCC2=CCN(CCC(OC1=O)C2=O)C,0
+CN1CCC2OC(=O)C(O)(CC(C(C(=O)OCC(=CC1)C2=O)(C)O)C)C(O)C,0
+C=CC1=CC(C)(C)C(C)(OC(=O)C)C(=O)OCC2=CCN(CCC(OC1=O)C2=O)C,0
+CN1CC[C@H]2OC(=O)[C@](O)(C[C@H]([C@@](C(=O)OCC(=CC1)C2=O)(C)OC(=O)C)C)[C@H](Cl)C,0
+C=C/C/1=C/[C@@H](C)[C@](C)(OC(=O)C)C(=O)OCC2=CCN(CC[C@@H](OC1=O)C2=O)C,0
+C=C/C/1=C/[C@@H](C)[C@](C)(OC(=O)C)C(=O)OCC2=CCN(CCC(OC1=O)C2=O)C,0
+C/C=C\1/C[C@H](C)[C@](C)(OC(=O)C)C(=O)OCC2=CCN(CC[C@H](OC1=O)C2=O)C,0
+CN1CC[C@H]2OC(=O)[C@@]3(O[C@@H]3C)C[C@H]([C@@](C(=O)OCC(=CC1)C2=O)(C)OC(=O)C)C,0
+C/C=C/1\C[C@@H](C)[C@](C)(OC(=O)C)C(=O)OCC2=CCN(CC[C@@H](OC1=O)C2=O)C,0
+CC/C/1=C/[C@@H](C)[C@](C)(OC(=O)C)C(=O)OCC2=CCN(CC[C@@H](OC1=O)C2=O)C,0
+C/C=C\1/C[C@@H](C)[C@](C)(OC(=O)C)C(=O)OCC2=CCN(CC[C@@H](OC1=O)C2=O)C,0
+CN1CC[C@H]2OC(=O)C3(O[C@@H]3C)C[C@H]([C@](C(=O)OCC(=CC1)C2=O)(C)OC(=O)C)C,0
+CN1CC[C@H]2OC(=O)C(O)(C[C@H]([C@@](C(=O)OCC(=CC1)C2=O)(C)OC(=O)C)C)C(O)C,0
+CN1CC[C@H]2OC(=O)[C@@](O)(C[C@H]([C@@](C(=O)OCC(=CC1)C2=O)(C)O)C)C(Cl)C,0
+CN1CC[C@@H](OC(=O)C)C(=O)C(=CC1)COC(=O)C,0
+CN1CCC(OCc2ccccc2)C(=O)C(=CC1)COCc1ccccc1,0
+CN1CC[C@H]2OC(=O)C(C(C)C)C(C(C(=O)OCC(=CC1)C2=O)(C)O)C,0
+C/C=C\1/C[C@@H](C)[C@@](C)(O)C(=O)OCC2=CC[N+](CC[C@@H](OC1=O)C2=O)([O-])C,0
+C/C=C/1\C(=O)O[C@@H]2CCN(C)CC=C(C2=O)COC(=O)[C@@]([C@H]([C@@H]1OC(=O)C)C)(C)OC(=O)C,0
+CN1CC[C@H]2OC(=O)[C@](O)(C[C@H]([C@@](C(=O)OCC(=CC1)C2=O)(C)OC(=O)C)C)C(O)C,0
+CO[C@@H]1CCN(C)CC=C(C1=O)COC(=O)C([C@H](C[C@@]1(CO)OC1C)C)(C)C,0
+CN1CC[C@@H]2OC(=O)[C@@]3(O[C@H]3C)C[C@H]([C@](C(=O)OCC(=CC1)C2=O)(C)OC(=O)C)C,0
+CN1CC[C@@H]2OC(=O)[C@@](O)(C[C@@H]([C@](C(=O)OCC(=CC1)C2=O)(C)OC(=O)C)C)C(OC(=O)C)C,0
+CN1CC[C@@H]2OC(=O)[C@@](O)(C[C@@H]([C@](C(=O)OCC(=CC1)C2=O)(C)OC(=O)C)C)[C@@H](O)C,0
+CN1CC[C@@H]2OC(=O)C(C)C(C(C(=O)OCC(=CC1)C2=O)(C)O)C,0
+CN1CC[C@@H]2OC(=O)C3C(=O)OC(C(=O)OCC(=CC1)C2=O)(C3C)C,0
+C/C=C/1\C[C@H](C)[C@@](C)(O)C(=O)OCC2=CCN(CC[C@H](OC1=O)C2=O)C,0
+CCC12C(=O)O[C@H]3CCN(C)CC=C(C3=O)COC(=O)C([C@@H]2C)(OC1=O)C,0
+CN1CC[C@H]2OC(=O)/C(=C/[C@@H]([C@](C(=O)OCC(=CC1)C2=O)(C)OC(=O)C)C)/C(O)C,0
+C/C=C\1/C(=O)O[C@H]2CCN(C)CC=C(C2=O)COC(=O)[C@@]([C@H]([C@@H]1OC(=O)C)C)(C)OC(=O)C,0
+C=C/C/1=C/C(C)C(C)(OC(=O)C)C(=O)OCC2=CCN(CCC(OC1=O)C2=O)C,0
+C/C=C/1\CC(C)C(O)C(=O)OCC2=CCN(CC[C@@H](OC1=O)C2=O)C,0
+C/C=C\1/C[C@@H](C)[C@@](C)(OC(=O)C)C(=O)OCC2=CCN(CC[C@@H](OC1=O)C2=O)C,0
+CN1CC[C@H]2OC(=O)[C@H](C(C)C)[C@]3([C@@](C(=O)OCC(=CC1)C2=O)(C)O)OC3,0
+CN1CC[C@H]2OC(=O)[C@](O)(C[C@H]([C@@](C(=O)OCC(=CC1)C2=O)(C)O)C)[C@H](O)C,0
+CN1CCC2OC(=O)[C@]3(C)C(=O)C[C@H]([C@@]3(C(=O)OCC(=CC1)C2=O)C)C,0
+COC(=O)[C@]1(C[C@H]([C@](C(=O)OCC2=CCN(C)CC[C@H](C2=O)O)(O)C)C)O[C@@H]1C,0
+O=C1O[C@@H]2CCn3c2c(COC(=O)[C@]([C@]([C@H]1C)(C)O)(C)O)cc3,0
+C/C=C\1/C[C@@H](C)[C@@](C)(O)C(=O)OC[C@@H]2[C@@H]3[C@H](OC1=O)CCN3CC2,0
+C/C=C(\C(=O)O[C@@H]1CCN2[C@@H]1[C@H](CC2)COC(=O)/C(=C\C)/CO)/C,0
+C/C=C\1/C[C@@H](C)[C@@](C)(OC(=O)C)C(=O)OCc2c3[C@@H](OC1=O)CC(=O)n3cc2,0
+C/C=C\1/C[C@@H](C)[C@](O)(CO)C(=O)OCc2c3[C@H](OC1=O)CCn3cc2,0
+C/C=C/1\C[C@@H](C)[C@@](C)(O)C(=O)OCc2c3[C@H](OC1=O)[C@H](O)Cn3cc2,0
+O=C1OC2CCN3C2C2(COC(=O)C(C(C1C)(C)O)(C)O)OC2C3,0
+OCC1CCN2C1C(CC2)OC(=O)[C@]([C@@H](O)C)(C(C)C)O,0
+C/C=C(/C(=O)OC1CC[N+]2(C1C(COC(=O)/C(=C/C)/CO)CC2)[O-])\C,0
+CC(=CC(=O)OC[C@H]1CCN2[C@H]1[C@@H](CC2)OC(=O)C=C(C)C)C,0
+O=C(c1ccc2c(c1)OCO2)OC[C@@H]1CCN2[C@@H]1[C@H](CC2)OC(=O)c1ccc2c(c1)OCO2,0
+COc1c(OC)cc(cc1OC)C(=O)OC[C@H]1CCN2[C@H]1[C@@H](CC2)OC(=O)c1cc(OC)c(c(c1)OC)OC,0
+CC(CC(=O)OC[C@H]1CCN2[C@H]1[C@@H](CC2)OC(=O)CC(C)C)C,0
+O=C(Cc1ccccc1)OC[C@H]1CCN2[C@H]1[C@@H](CC2)OC(=O)Cc1ccccc1,0
+CC(=O)OC[C@H]1CCN2[C@@H]1[C@H](CC2)OC(=O)C,0
+O=C1OC2CCN3C2C(CC3)COC(=O)C(C(C1C)(C)O)C,0
+O=C(c1ccc(cc1)[N+](=O)[O-])OCC1CCN2C1C(CC2)OC(=O)c1ccc(cc1)[N+](=O)[O-],0
+OC[C@H]1O[C@H](C[C@@H]1O)n1cc(C)c(=O)nc1OC1CCn2c1c(CO)cc2,0
+O=C1C=C(C)C[C@@H](C)[C@@](C)(O)C(=O)OC[C@@H]2[C@@H]3[C@H](O1)CCN3CC2,0
+CC(=CC(=O)OCc1ccn2c1[C@@H](CC2)OC(=O)C=C(C)C)C,0
+CC=C(C(=O)OC1CC[N+]2(C1C(COC(=O)C(=CC)CO)CC2)[O-])C,0
+CC=C(C(=O)O[C@@H]1CCN2C1[C@H](CC2)COC(=O)C(=CC)CO)C,0
+O=C1OC2CC[N+]3(C2C2(COC(=O)C(C(C1C)(C)O)(C)O)OC2C3)C(=O)C(F)(F)F,0
+O=C1O[C@@H]2CCN3[C@@H]2[C@H](CC3)COC(=O)[C@@]2(O[C@](C1)(C)CC2C)C,0
+O=C1OC[C@H]2CCN3[C@H]2[C@@H](CC3)OC(=O)[C@@](CC(=O)O[C@@H]([C@H](C1)C(C)C)C)(O)C(C)C,0
+COC(=O)C1C(O)C(=O)N2C1C(CC2)OC(=O)c1ccccc1,0
+O=C1C=C(C)CC(C)C(C)(O)C(=O)OCC2C3C(O1)CCN3CC2,0
+CC=C1CC(C)C(C)(OC(=O)C)C(=O)OCc2c3C(OC1=O)CC(=O)n3cc2,0
+CC=C(C(=O)OCc1ccn2c1C(OC(=O)C(=CC)C)CC2OC(=O)C)COC(=O)C=C(C)C,0
+COC1CC(C)C(C)(O)C(=O)OCC2C3C(OC1=O)CCN3CC2,0
+C/C=C\1/CC(=C)[C@@](C)(O)C(=O)OC[C@@H]2[C@@H]3[C@H](OC1=O)CCN3C[C@H]2O,0
+C/C=C\1/C[C@@H](C)[C@@](C)(O)C(=O)OC[C@@H]2[C@@H]3[C@H](OC1=O)CCN3C[C@H]2O,0
+C/C=C(/C(=O)OCc1ccn2c1[C@H](OC(=O)/C(=C/C)/C)C[C@@H]2OC(=O)C)\COC(=O)C=C(C)C,0
+O=C1O[C@@H]2CCN3[C@@H]2[C@H](CC3)COC(=O)[C@]([C@H]([C@H]1C)C)(C)O,0
+C/C=C(/C(=O)OC1CCN2C1C(CC2)COC(=O)/C(=C/C)/CO)\C,0
+C/C=C(\C(=O)OC1CCN2C1C(CC2)COC(=O)/C(=C/C)/CO)/C,0
+C/C=C/1\CC(C)C(C)(O)C(=O)OCC2C3C(OC1=O)CCN3CC2O,0
+C/C=C\1/CC(C)C(C)(OC(=O)C)C(=O)OCc2c3C(OC1=O)CC(=O)n3cc2,0
+C/C=C(/C(=O)OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)/C(=C/C)/C)\C,0
+OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)/C(=C/C)/C,0
+OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)/C(=C\C)/C,0
+C/C=C(/C(=O)O[C@@H]1CCN2C1[C@H](CC2)COC(=O)/C(=C\C)/CO)\C,0
+OCC(C(=O)OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)/C(=C\C)/C)O,0
+C/C=C(\C(=O)O[C@@H]1CCN2C1[C@H](CC2)COC(=O)C(=C)O)/C,0
+OCC(C(=O)OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)/C(=C/C)/C)O,0
+C/C=C(/C(=O)O[C@@H]1CCN2C1[C@H](CC2)COC(=O)C(=C)O)\C,0
+O=C(OC[C@H]1CCN2[C@H]1[C@@H](CC2)OC(=O)/C=C/c1ccccc1)/C=C/c1ccccc1,0
+C/C=C/1\C[C@@H](C)[C@@](C)(O)C(=O)OCc2c3[C@H](OC1=O)CCn3cc2,0
+C/C=C\1/C[C@@H](C)[C@@](C)(O)C(=O)OC[C@@H]2[C@@H]3[C@H](OC1=O)CCN3C[C@H]2OC(=O)C,0
+C/C=C(\C(=O)OCc1ccn2c1[C@H](OC(=O)/C(=C/C)/C)C[C@@H]2OC(=O)C)/COC(=O)/C(=C/C)/C,0
+C/C=C(/C(=O)OCc1ccn2c1[C@H](OC(=O)/C(=C/C)/C)C[C@@H]2OC(=O)C)\COC(=O)/C(=C/C)/C,0
+CO[C@H]([C@@](C(O)(C)C)(C(=O)OCc1ccn2c1[C@H](CC2)OC(=O)/C(=C/C)/C)O)C,0
+C/C=C/1\C[C@@H](C)[C@@](C)(O)C(=O)OC[C@@H]2[C@@H]3[C@H](OC1=O)CCN3CC2,0
+COC(=O)[C@H]1CC(=O)N2[C@@H]1[C@@H](CC2)OC(=O)c1ccccc1,0
+COC(=O)[C@H]1[C@@H]2[C@H](CCN2C(=O)[C@@H]1OC(=O)[C@H](c1ccccc1)OC)OC(=O)c1ccccc1,0
+C/C=C(\C(=O)OC[C@H]1CCN2[C@H]1[C@@H](CC2)OC(=O)/C(=C\C)/C)/COC(=O)CC(O)(C)C,0
+O=C1/C=C(/C)\C[C@H](C)[C@](C)(O)C(=O)OC[C@@H]2[C@@H]3[C@H](O1)CCN3CC2,0
+ClC[N@+]12CC[C@H]3[C@@H]2[C@@H](CC1)OC(=O)C[C@@]1(O[C@@](C(=O)OC3)(C)[C@@H](C1)C)C,0
+O=C1O[C@@H]2CCN3[C@@H]2C(CC3)COC(=O)[C@]([C@H](C1)C)(C)OCc1ccccc1,0
+ClC[N+]12CC[C@H]3[C@@H]2[C@@H](CC1)OC(=O)/C=C(/C)\C[C@H]([C@@](C(=O)OC3)(C)O)C,0
+CC(=O)O[C@@]1(C)C(=O)OC[C@H]2CCN3[C@H]2[C@H](OC(=O)/C=C(\C[C@H]1C)/C)CC3,0
+CC(=O)O[C@@]1(C)C(=O)OC[C@H]2CC[N+]3([C@H]2[C@H](OC(=O)/C=C(\C[C@H]1C)/C)CC3)[O-],0
+COC(=O)C[C@H]1C[C@H]2[C@H]3N1CC[C@H]3OC(=O)/C=C(\C[C@H]([C@@](C(=O)OC2)(C)O)C)/C,0
+c1ccc(cc1)COC[C@H]1CCN2[C@H]1[C@H](OCc1ccccc1)CC2,0
+O[C@H]1CN2[C@H]([C@H]1C(=O)O)[C@H](CC2)OC1CCCCO1,0
+CCOC(=O)[C@H]1[C@@H](O)CN2[C@H]1[C@H](CC2)OC(C)(C)C,0
+C/C=C/1\CC(=C)[C@](O)(CO)C(=O)OCc2c3[C@H](OC1=O)CCn3cc2,0
+O=C1O[C@H]2[C@H]3[C@]1(CO[Si](C(C)(C)C)(C)C)[C@H](CN3CC2)c1ccccc1,0
+O=C(c1ccccc1)OC[C@@]12C(=O)O[C@H]3[C@@H]1N(C[C@@H]2c1ccccc1)CC3,0
+C/C=C(\C(=O)O[C@@H]1CC[N+]2([C@@H]1[C@@H](COC(=O)/C(=C/C)/CO)CC2)[O-])/C,0
+COCO[C@H]1CN2[C@H]([C@@H]1OCOC)[C@H]([C@@H]([C@H]2C(=O)OCC)C(=O)OC)C(=O)OC,0
+COC(=O)C1(CCN2C1C(CC2)OCc1ccccc1[NH+](O)[O-])[Se]c1ccccc1,0
+O=C1/C=C(/C)\C[C@H](C)[C@](C)(O)C(=O)OC[C@@H]2[C@@H]3[C@H](O1)CC[NH+]3CC2,0
+C[Si](CCOCOC[C@H]1CCN2[C@@H]1[C@@H](OCOCC[Si](C)(C)C)CC2)(C)C,0
+COC(=O)[C@@H]1[C@@H](O)C(=O)N2[C@H]1[C@@H](OC(C)(C)C)[C@@H](C2)OC(C)(C)C,0
+C/C=C/1\CC(=C)[C@@](C)(O)C(=O)OC[C@@H]2[C@@H]3[C@H](OC1=O)CCN3C[C@H]2O,0
+C/C=C/1\C[C@@H](C)[C@@](C)(O)C(=O)OC[C@@H]2[C@@H]3[C@H](OC1=O)CCN3C[C@H]2OC(=O)C,0
+C/C=C(/C(=O)OCc1ccn2c1C(OC(=O)/C(=C/C)/C)CC2OC(=O)C)\COC(=O)/C(=C/C)/C,0
+C/C=C\1/CC(C)C(C)(O)C(=O)OCC2C3(C(OC1=O)CCN3CC2)C,0
+C/C=C/1\C[C@H](C)[C@H](C)C(=O)OC[C@@H]2[C@@H]3[C@H](OC1=O)CC[NH+]3CC2,0
+CC=C1C[C@@H](C)[C@](C)(O)C(=O)OC[C@H]2[C@]3([C@H](OC1=O)CC[NH+]3CC2)C,0
+CC=C1C[C@@H](C)[C@](C)(O)C(=O)OC[C@H]2[C@]3([C@H](OC1=O)CCN3CC2)C,0
+O=C1C/C=C\C(=O)OCC2C3C(O1)CCN3CC2,0
+CC=C(C(=O)OCc1ccn2c1C(OC(=O)C(=CC)C)CC2OC(=O)C)COC(=O)C(=CC)C,0
+OC/C(=C/C(=O)OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)/C(=C/C)/C)/C,0
+CO[C@H]1CN2[C@H]3[C@H]1COC(=O)[C@@](C)(O)[C@@H](C)C(CC(=O)O[C@H]3CC2)C,0
+O=C1OC[C@@H]2CCN3C2[C@H](CC3)OC(=O)[C@](CC(=O)O[C@@H]([C@@H](C1)C(C)C)C)(O)C(C)C,0
+C/C=C(\C(=O)O[C@H]1CCN2[C@@H]1[C@H](CC2)COC(=O)[C@@]([C@@H](O[Si](C)(C)C)C)(C(C)C)O[Si](C)(C)C)/C,0
+C/C=C(/C(=O)O[C@H]1CCN2[C@@H]1[C@H](CC2)COC(=O)[C@@]([C@@H](O[Si](C)(C)C)C)(C(C)C)O[Si](C)(C)C)\C,0
+OC[C@H]1CCN2[C@H]1[C@@H](CC2)OC(=O)C=C(C)C,0
+CC(=O)O[C@@H]1CCN2[C@@H]1[C@@H](COC(=O)C=C(C)C)CC2,0
+OC[C@@H]1CCN2C1[C@H](CC2)OC(=O)Cc1ccccc1,0
+O=C(Cc1ccccc1)O[C@@H]1CCN2C1[C@H](CC2)COC(=O)[C@]([C@@H](O)C)(O)C,0
+CC(=O)O[C@H]([C@@](C(=O)OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)Cc1ccccc1)(O)C)C,0
+CC(=O)O[C@H]([C@@](C(=O)OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)Cc1ccccc1)(OC(=O)C)C)C,0
+CCC(C(=O)O[C@H]([C@@](C(=O)OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)Cc1ccccc1)(O)C)C)C,0
+CC(=O)O[C@H]([C@@](C(=O)OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)c1ccccc1O)(O)C)C,0
+CC(=O)O[C@@]([C@@H](OC(=O)C)C)(C(=O)OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)c1ccccc1O)C,0
+CCC(C(=O)O[C@@H]1CCN2C1[C@H](CC2)COC(=O)[C@]([C@@H](O)C)(O)C)C,0
+CCC(C(=O)O[C@@H]1CCN2C1[C@H](CC2)COC(=O)[C@]([C@@H](OC(=O)C)C)(O)C)C,0
+CCC(C(=O)O[C@@H]1CCN2C1[C@H](CC2)COC(=O)[C@]([C@@H](OC(=O)C)C)(OC(=O)C)C)C,0
+CCC(C(=O)O[C@@H]1CCN2C1[C@H](CC2)COC(=O)[C@]([C@@H](OC(=O)C(CC)C)C)(O)C)C,0
+OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)[C@]([C@@H](O)C)(O)C,0
+OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)C(C(OC(=O)/C(=C/C)/C)C)(O)C,0
+CC(=O)O[C@@H]([C@@](C(=O)OC[C@H]1CCN2C1[C@@H](CC2)OC(=O)Cc1ccccc1)(OC(=O)C)C)C,0
+O=C(c1ccccc1O)O[C@@H]1CCN2C1[C@H](CC2)COC(=O)[C@]([C@H](O)C)(O)C,0
+CCC(C(=O)O[C@@H]1CCN2C1[C@@H](CO)CC2)C,0
+C/C=C(/C(=O)O[C@@H]1CCN2C1[C@H](CC2)COC(=O)C(C(OC(=O)/C(=C/C)/C)C)(O)C)\C,0
+C/C=C(/C(=O)O[C@@H]1CCN2C1[C@H](CC2)COC(=O)C(C(O)C)(O)C)\C,0
+OC[C@H]1C(O)CN2[C@H]1[C@@H](CC2)OC(=O)C(C(=O)C)C,0
+CCNC(=O)OCc1ccn2c1C(CC2)OC(=O)NCC,0
+CCOC(=O)C1C(OC(=O)C)CN2C1C(CC2)OC(=O)C,0
+C/C=C(/C(=O)O[C@@H]1CC[N+]2([C@@H]1[C@H](COC(=O)/C(=C\C)/CO)CC2)[O-])\C,0
+O=C1O[C@@H]2CC[N+]3([C@@H]2[C@]2(COC(=O)[C@@]([C@@]([C@@H]1C)(C)O)(C)O)O[C@@H]2C3)C(=O)C(F)(F)F,0
+C/C=C(\C(=O)O[C@@H]1CC[N+]2([C@@H]1[C@H](COC(=O)/C(=C/C)/CO)CC2)[O-])/C,0
+C/C=C/1\C[C@H](C)[C@@](C)(O)C(=O)OC[C@H]2[C@H]3[C@H](OC1=O)CCN3C[C@H]2O,0
+CCOCc1ccn2c1[C@H](OCC)CC2,0
+C/C=C(\C(=O)O[C@@H]1CC[N+]2([C@@H]1[C@H](COC(=O)/C(=C\C)/CO)CC2)[O-])/C,0
+CC(=O)O[C@@]1(C)C(=O)OC[C@H]2CCN3[C@H]2[C@H](OC(=O)C=C(C[C@H]1C)C)CC3,0
+O=C1C=C(C)C[C@H](C)[C@](C)(O)C(=O)OC[C@@H]2[C@@H]3[C@H](O1)CCN3CC2,0
+O[C@H]1CN2[C@@H]3[C@@H]1COC(=O)[C@](C)(O)[C@]([C@H](C(=O)O[C@@H]3CC2)C(C)C)(C)O,0
+CC(=O)O[C@@]1(C)C(=O)OCc2ccn3c2[C@H](OC(=O)C(=C)[C@H]([C@H]1C)C)CC3=O,0
+C/C=C\1/C[C@@H](C)[C@@](C)(O)C(=O)OC[C@H]2[C@@H]3[C@H](OC1=O)CC[N+]3([O-])CC2,0
+C/C=C\1/C[C@@H](C)[C@@](C)(O)C(=O)OCc2c3[C@H](OC1=O)CC(=O)n3cc2,0
+C/C=C/1\CC(=C)[C@@](C)(O)C(=O)OCc2c3[C@H](OC1=O)CCn3cc2,0
+O=C1OC2CCN3[C@@H]2C(CC3)COC(=O)[C@@]2([C@H](C1(O)C[C@@H]2C)C)C,0
+CC([C@@H]1C(=O)O[C@@H]2CCn3c2c(COC(=O)[C@]([C@@]1(C)O)(C)O)cc3)C,0
+CCC(C(=O)O[C@@H]1CCN2[C@@H]1[C@H](CC2)COC(=O)[C@]([C@H](O)C)(O)C)C,0
+OC[C@H]1CCN2[C@H]1[C@@H](CC2)OC(=O)C(C(OC(=O)/C(=C/C)/C)C)(O)C,0
+CCOC(=O)[C@@H]1[C@@H](O)C(=O)N2[C@H]1[C@H](CC2)OC1CCCCO1,0
+CCOC(=O)[C@@H]1[C@@H](O)CN2[C@H]1[C@H](CC2)OC1CCCCO1,0
+CC[C@@]1(C)C(=O)O[C@@H]2CCN3C2[C@H](COC(=O)[C@H]([C@]1(C)O)C)[C@H](C3)O,0
+CC[C@@]1(C)C(=O)O[C@@H]2CCN3C2[C@H](COC(=O)[C@H]([C@]1(C)O)C)[C@H](C3=O)O,0
+OCC1CC[N+]2([C@H]1[C@@H](CC2)OC(=O)[C@@]([C@@H](O)C)(C(C)C)O)[O-],0
+CC(=O)OC[C@H]1[C@H](OC(=O)C)CN2[C@@H]1[C@H](OC(=O)C)[C@H](C2)OC(=O)C,0
+CC(=O)O[C@@H]1CN2[C@@H]([C@H]1COC(=O)C(C)(C)C)[C@@H]([C@H](C2)OC(C)(C)C)OC(C)(C)C,0
+OC[C@H]1[C@H](CN2[C@H]1CCC2)OC(=O)/C(=C\C)/C,0
+CC[C@H]([C@H](C(=O)OC[C@H]1CCN2[C@H]1CCC2)O)C,0
+CC(=O)O[C@@H]([C@](C(=O)OC[C@@H]1CCN2[C@H]1CCC2)(C(C)C)O)C,0
+CC([C@](C(=O)OC[C@H]1CC[N+]2([C@H]1CCC2)[O-])(C(O)C)O)C,0
+CC([C@](C(=O)OC[C@H]1CCN2[C@H]1CCC2)(C(O)C)O)C,0
+CCC(C(C(=O)OCC1CCN2C1CCC2)(C(O)C)O)C,0
+CC([C@](C(=O)OC[C@@H]1CCN2[C@H]1CCC2)([C@@H](O)C)O)C,0
+CCC(C(C(=O)OCC1CCN2C1CCC2)O)(O)C,0
+CC=C(C(=O)OCC1C(O)CN2C1CCC2)C,0
+CCC(C(C(=O)OCC1CCN2C1CCC2)(CC(C)C)O)O,0
+C[C@@H]([C@](C(O)(C)C)(C(=O)OC[C@@H]1CCN2[C@H]1CCC2)O)O,0
+CC(=O)OC[C@@H]1CCN2[C@H]1CCC2,0
+CCC(C(=O)OC[C@@H]1CCN2[C@H]1CCC2)C,0
+CC[C@]([C@H](C(=O)OC[C@@H]1CC[N+]2([C@@H]1CCC2)[O-])O)(O)C,0
+CCCC(=O)OCC1CCN2C1CCC2,0
+C/C=C(\C(=O)OC[C@@H]1CCN2[C@H]1CCC2)/C,0
+C/C=C(\C(=O)OC([C@@](C(=O)OC[C@@H]1CCN2[C@H]1CCC2)(C(C)C)O[Si](C)(C)C)C)/C,0
+C/C=C(/C(=O)OC([C@@](C(=O)OC[C@@H]1CCN2[C@H]1CCC2)(C(C)C)O[Si](C)(C)C)C)\C,0
+O=C(C(O)C)OC[C@@H]1CCN2[C@H]1CCC2,0
+C/C=C(/C(=O)OC[C@@H]1CCN2[C@H]1CCC2)\C,0
+C=C[C@](C(=O)OC[C@@H]1CCN2[C@H]1CCC2)(O)C,0
+CCC(C(=O)OC[C@@H]1CCN2[C@H]1CCC2)(O)C,0
+CCC(=O)OC(C(C(=O)OC[C@@H]1CCN2[C@H]1CCC2)(O)C)C,0
+CCC(C(=O)OC(C(C(=O)OC[C@@H]1CCN2[C@H]1CCC2)(O)C)C)C,0
+C/C=C(/C(=O)OC(C(C(=O)OC[C@@H]1CCN2[C@H]1CCC2)(O)C)C)\C,0
+COC(=O)[C@](CC(=O)OC[C@@H]1CCN2[C@H]1CCC2)(CC(C)C)O,0
+CC(=O)OC[C@H]1CC(=O)N2[C@H]1CCC2,0
+C/C=C(\C(=O)OC[C@H]1[C@@H](O)CN2C1CCC2)/C,0
diff --git a/scripts/sa37.rb b/scripts/sa37.rb
new file mode 100755
index 0000000..e628f51
--- /dev/null
+++ b/scripts/sa37.rb
@@ -0,0 +1,35 @@
+#!/usr/bin/env ruby
+group_data = File.readlines(ARGV[0]).collect{|l| l.chomp.split(",")}
+sa37 = File.readlines(ARGV[1]).collect{|l| l.chomp.split(",")}
+group_names = group_data.shift
+group_names.shift
+sa37.shift
+
+groups = {}
+group_data.each do |d|
+ smi = d.shift
+ groups[smi] ||= []
+ d.each_with_index do |v,i|
+ groups[smi] << group_names[i] if v == "1"
+ end
+end
+
+mut = {}
+n = {}
+sa37.each do |pred|
+ smi = pred.shift
+ group_names.each do |g|
+ mut[g] ||= 0
+ n[g] ||= 0
+ if groups[smi].include? g
+ n[g]+=1
+ mut[g]+=1 if pred[0] == "1"
+ end
+ end
+end
+
+perc = {}
+mut.each do |g,m|
+ perc[g] = (100.0*m/n[g]).round
+end
+p perc