From c6e73288b4b1b7a2ab6f2731e45355d3192a1e05 Mon Sep 17 00:00:00 2001 From: maagdenbehwvanden1 Date: Thu, 8 Feb 2024 17:02:19 +0100 Subject: [PATCH 01/29] fix bug in fingeprint calculation basic fingerprints --- qsprpred/data/descriptors/fingerprints.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/qsprpred/data/descriptors/fingerprints.py b/qsprpred/data/descriptors/fingerprints.py index 9359b6f1..79724843 100644 --- a/qsprpred/data/descriptors/fingerprints.py +++ b/qsprpred/data/descriptors/fingerprints.py @@ -144,7 +144,7 @@ def __str__(self): class MaccsFP(Fingerprint): def __init__(self, nBits=167, **kwargs): - super().__init__() + super().__init__(used_bits=list(range(nBits))) self.nBits = nBits self.kwargs = kwargs @@ -169,7 +169,7 @@ def __str__(self): class AvalonFP(Fingerprint): def __init__(self, nBits=1024, **kwargs): - super().__init__() + super().__init__(used_bits=list(range(nBits))) self.nBits = nBits self.kwargs = kwargs @@ -194,7 +194,7 @@ def __str__(self): class TopologicalFP(Fingerprint): def __init__(self, nBits=2048, **kwargs): - super().__init__() + super().__init__(used_bits=list(range(nBits))) self.nBits = nBits self.kwargs = kwargs @@ -221,7 +221,7 @@ def __str__(self): class AtomPairFP(Fingerprint): def __init__(self, nBits=2048, **kwargs): - super().__init__() + super().__init__(used_bits=list(range(nBits))) self.nBits = nBits self.kwargs = kwargs @@ -248,7 +248,7 @@ def __str__(self): class RDKitFP(Fingerprint): def __init__(self, minPath=1, maxPath=7, nBits=2048, **kwargs): - super().__init__() + super().__init__(used_bits=list(range(nBits))) self.minPath = minPath self.maxPath = maxPath self.nBits = nBits @@ -281,7 +281,7 @@ def __str__(self): class PatternFP(Fingerprint): def __init__(self, nBits=2048, **kwargs): - super().__init__() + super().__init__(used_bits=list(range(nBits))) self.nBits = nBits self.kwargs = kwargs @@ -308,7 +308,7 @@ def __str__(self): class LayeredFP(Fingerprint): def __init__(self, minPath=1, maxPath=7, nBits=2048, **kwargs): - super().__init__() + super().__init__(used_bits=list(range(nBits))) self.minPath = minPath self.maxPath = maxPath self.nBits = nBits From 869f7c67d5dcf3772f6c61019ab46b677e2d282f Mon Sep 17 00:00:00 2001 From: maagdenbehwvanden1 Date: Thu, 8 Feb 2024 17:02:35 +0100 Subject: [PATCH 02/29] add test for basic fingeprints --- qsprpred/utils/testing/path_mixins.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/qsprpred/utils/testing/path_mixins.py b/qsprpred/utils/testing/path_mixins.py index 09804c79..86e873d1 100644 --- a/qsprpred/utils/testing/path_mixins.py +++ b/qsprpred/utils/testing/path_mixins.py @@ -10,12 +10,21 @@ from sklearn.preprocessing import StandardScaler from ...data import RandomSplit, QSPRDataset -from ...data.descriptors.fingerprints import MorganFP +from ...data.descriptors.fingerprints import ( + AtomPairFP, + AvalonFP, + LayeredFP, + MaccsFP, + MorganFP, + PatternFP, + RDKitFP, + RDKitMACCSFP, + TopologicalFP, +) from ...data.descriptors.sets import ( RDKitDescs, DrugExPhyschem, PredictorDesc, - RDKitDescs, TanimotoDistances, ) from ...data.processing.data_filters import RepeatsFilter @@ -101,7 +110,15 @@ def getAllDescriptors(cls): radius=2, nBits=128, ), + AtomPairFP(nBits=128), + AvalonFP(nBits=128), + LayeredFP(nBits=128), + MaccsFP(), MorganFP(radius=2, nBits=128), + PatternFP(nBits=128), + RDKitFP(nBits=128), + RDKitMACCSFP(), + TopologicalFP(nBits=128), ] return descriptor_sets From d3a1831c55cc878dac5badb8470c542ec72a21dd Mon Sep 17 00:00:00 2001 From: maagdenbehwvanden1 Date: Thu, 8 Feb 2024 17:02:53 +0100 Subject: [PATCH 03/29] only test descriptorcombinations with regression --- qsprpred/data/descriptors/tests.py | 43 +++++------------------- qsprpred/extra/data/descriptors/tests.py | 5 +-- 2 files changed, 9 insertions(+), 39 deletions(-) diff --git a/qsprpred/data/descriptors/tests.py b/qsprpred/data/descriptors/tests.py index 6dbd8b75..88fb4f87 100644 --- a/qsprpred/data/descriptors/tests.py +++ b/qsprpred/data/descriptors/tests.py @@ -163,41 +163,14 @@ def setUp(self): super().setUp() self.setUpPaths() - @parameterized.expand( - [ - ( - f"{desc_set}_{TargetTasks.MULTICLASS}", - desc_set, - [ - { - "name": "CL", - "task": TargetTasks.MULTICLASS, - "th": [0, 1, 10, 1200], - } - ], - ) - for desc_set in DataSetsPathMixIn.getAllDescriptors() - ] - + [ - ( - f"{desc_set}_{TargetTasks.REGRESSION}", - desc_set, - [{"name": "CL", "task": TargetTasks.REGRESSION}], - ) - for desc_set in DataSetsPathMixIn.getAllDescriptors() - ] - + [ - ( - f"{desc_set}_Multitask", - desc_set, - [ - {"name": "CL", "task": TargetTasks.REGRESSION}, - {"name": "fu", "task": TargetTasks.SINGLECLASS, "th": [0.3]}, - ], - ) - for desc_set in DataSetsPathMixIn.getAllDescriptors() - ] - ) + @parameterized.expand([ + ( + f"{desc_set}_{TargetTasks.REGRESSION}", + desc_set, + [{"name": "CL", "task": TargetTasks.REGRESSION}], + ) + for desc_set in DataSetsPathMixIn.getAllDescriptors() + ]) def testDescriptorsAll(self, _, desc_set, target_props): """Tests all available descriptor sets. diff --git a/qsprpred/extra/data/descriptors/tests.py b/qsprpred/extra/data/descriptors/tests.py index 45e72af4..9b413769 100644 --- a/qsprpred/extra/data/descriptors/tests.py +++ b/qsprpred/extra/data/descriptors/tests.py @@ -267,10 +267,7 @@ def setUp(self): ( f"{desc_set}", desc_set, - [ - {"name": "CL", "task": TargetTasks.REGRESSION}, - {"name": "fu", "task": TargetTasks.SINGLECLASS, "th": [0.3]}, - ], + [{"name": "CL", "task": TargetTasks.REGRESSION}], ) for desc_set in DataSetsMixInExtras.getAllDescriptors() ] From 93a14f81e809c2886120a87970d8d3ed8d00531c Mon Sep 17 00:00:00 2001 From: maagdenbehwvanden1 Date: Thu, 8 Feb 2024 17:34:30 +0100 Subject: [PATCH 04/29] add descriptor tutorial --- qsprpred/data/descriptors/sets.py | 2 +- tutorials/basics/data/descriptors.ipynb | 1703 ++++++++++++++++++++++- 2 files changed, 1702 insertions(+), 3 deletions(-) diff --git a/qsprpred/data/descriptors/sets.py b/qsprpred/data/descriptors/sets.py index 16b231f7..63eafbad 100644 --- a/qsprpred/data/descriptors/sets.py +++ b/qsprpred/data/descriptors/sets.py @@ -446,7 +446,7 @@ def __init__(self, model: Type["QSPRModel"] | str): Initialize the descriptorset with a `QSPRModel` object. Args: - model: a fitted model instance or a path to the model's meta file + model (QSPRModel): a fitted model instance or a path to the model's meta file """ super().__init__() if isinstance(model, str): diff --git a/tutorials/basics/data/descriptors.ipynb b/tutorials/basics/data/descriptors.ipynb index ffae01aa..6b8d5d9e 100644 --- a/tutorials/basics/data/descriptors.ipynb +++ b/tutorials/basics/data/descriptors.ipynb @@ -15,6 +15,14 @@ "execution_count": 1, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Failed to find the pandas get_adjustment() function to patch\n", + "Failed to patch pandas - PandasTools will have limited functionality\n" + ] + }, { "data": { "text/html": [ @@ -202,13 +210,1704 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Fingerprints\n" + "## Descriptor sets\n", + "\n", + "In QSPRpred, descriptors are organized into sets. Each `Descriptorset` can contain one or more types of descriptors. For example, `RDKitDescs`, will contain all physciochemical properties calculated with the RDKit, while `Mordred` will contain descriptors calculated with Mordred.\n", + "\n", + "Descriptors can be added to a dataset using the `addDescriptors` method. This method will calculate the descriptors and add them to the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from qsprpred.data.descriptors.sets import RDKitDescs\n", + "\n", + "rdkit_descs = RDKitDescs()\n", + "\n", + "dataset.addDescriptors([rdkit_descs])\n", + "\n", + "dataset.descriptorSets" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the `getDescriptorsNames` method, we can retrieve the names of the calculated descriptors from the dataset and with the `getDescriptors` method, we can retrieve the calculated descriptors themselves." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['AvgIpc',\n", + " 'BCUT2D_CHGHI',\n", + " 'BCUT2D_CHGLO',\n", + " 'BCUT2D_LOGPHI',\n", + " 'BCUT2D_LOGPLOW',\n", + " 'BCUT2D_MRHI',\n", + " 'BCUT2D_MRLOW',\n", + " 'BCUT2D_MWHI',\n", + " 'BCUT2D_MWLOW',\n", + " 'BalabanJ']" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AvgIpcBCUT2D_CHGHIBCUT2D_CHGLOBCUT2D_LOGPHIBCUT2D_LOGPLOWBCUT2D_MRHIBCUT2D_MRLOWBCUT2D_MWHIBCUT2D_MWLOWBalabanJ...fr_sulfonamdfr_sulfonefr_term_acetylenefr_tetrazolefr_thiazolefr_thiocyanfr_thiophenefr_unbrch_alkanefr_ureaqed
QSPRID
DescriptorsTutorialDataset_00003.1754622.146917-2.1115852.224211-2.2118015.898030-0.11597816.34251010.3251111.979450...0.00.00.00.00.00.00.00.00.00.719563
DescriptorsTutorialDataset_00012.9620342.203517-2.1360482.354533-2.1145617.208763-0.38442932.1335419.9526951.637290...0.00.00.00.00.00.01.00.00.00.537523
DescriptorsTutorialDataset_00023.1279572.188200-2.0672682.189363-2.2029506.0532810.10217616.15377410.1907801.748699...0.00.00.00.00.00.00.00.00.00.517728
DescriptorsTutorialDataset_00033.4918012.749014-2.2316262.674016-2.4108686.301607-0.14032535.4956939.9814991.448422...0.00.00.00.00.00.00.02.00.00.173447
DescriptorsTutorialDataset_00043.2363322.185263-2.1138382.178416-2.4041137.9030510.09523432.22774910.1849071.581267...0.01.00.00.00.00.00.01.00.00.334943
\n", + "

5 rows × 210 columns

\n", + "
" + ], + "text/plain": [ + " AvgIpc BCUT2D_CHGHI BCUT2D_CHGLO \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 3.175462 2.146917 -2.111585 \n", + "DescriptorsTutorialDataset_0001 2.962034 2.203517 -2.136048 \n", + "DescriptorsTutorialDataset_0002 3.127957 2.188200 -2.067268 \n", + "DescriptorsTutorialDataset_0003 3.491801 2.749014 -2.231626 \n", + "DescriptorsTutorialDataset_0004 3.236332 2.185263 -2.113838 \n", + "\n", + " BCUT2D_LOGPHI BCUT2D_LOGPLOW BCUT2D_MRHI \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 2.224211 -2.211801 5.898030 \n", + "DescriptorsTutorialDataset_0001 2.354533 -2.114561 7.208763 \n", + "DescriptorsTutorialDataset_0002 2.189363 -2.202950 6.053281 \n", + "DescriptorsTutorialDataset_0003 2.674016 -2.410868 6.301607 \n", + "DescriptorsTutorialDataset_0004 2.178416 -2.404113 7.903051 \n", + "\n", + " BCUT2D_MRLOW BCUT2D_MWHI BCUT2D_MWLOW \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 -0.115978 16.342510 10.325111 \n", + "DescriptorsTutorialDataset_0001 -0.384429 32.133541 9.952695 \n", + "DescriptorsTutorialDataset_0002 0.102176 16.153774 10.190780 \n", + "DescriptorsTutorialDataset_0003 -0.140325 35.495693 9.981499 \n", + "DescriptorsTutorialDataset_0004 0.095234 32.227749 10.184907 \n", + "\n", + " BalabanJ ... fr_sulfonamd fr_sulfone \\\n", + "QSPRID ... \n", + "DescriptorsTutorialDataset_0000 1.979450 ... 0.0 0.0 \n", + "DescriptorsTutorialDataset_0001 1.637290 ... 0.0 0.0 \n", + "DescriptorsTutorialDataset_0002 1.748699 ... 0.0 0.0 \n", + "DescriptorsTutorialDataset_0003 1.448422 ... 0.0 0.0 \n", + "DescriptorsTutorialDataset_0004 1.581267 ... 0.0 1.0 \n", + "\n", + " fr_term_acetylene fr_tetrazole fr_thiazole \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 0.0 0.0 0.0 \n", + "DescriptorsTutorialDataset_0001 0.0 0.0 0.0 \n", + "DescriptorsTutorialDataset_0002 0.0 0.0 0.0 \n", + "DescriptorsTutorialDataset_0003 0.0 0.0 0.0 \n", + "DescriptorsTutorialDataset_0004 0.0 0.0 0.0 \n", + "\n", + " fr_thiocyan fr_thiophene fr_unbrch_alkane \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 0.0 0.0 0.0 \n", + "DescriptorsTutorialDataset_0001 0.0 1.0 0.0 \n", + "DescriptorsTutorialDataset_0002 0.0 0.0 0.0 \n", + "DescriptorsTutorialDataset_0003 0.0 0.0 2.0 \n", + "DescriptorsTutorialDataset_0004 0.0 0.0 1.0 \n", + "\n", + " fr_urea qed \n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 0.0 0.719563 \n", + "DescriptorsTutorialDataset_0001 0.0 0.537523 \n", + "DescriptorsTutorialDataset_0002 0.0 0.517728 \n", + "DescriptorsTutorialDataset_0003 0.0 0.173447 \n", + "DescriptorsTutorialDataset_0004 0.0 0.334943 \n", + "\n", + "[5 rows x 210 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(dataset.getDescriptorNames()[0:10])\n", + "\n", + "display(dataset.getDescriptors().head())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Descriptors can also be calculate through the `prepareDataset` method of the `QSPRDataset` class." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[, ]\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AvgIpcBCUT2D_CHGHIBCUT2D_CHGLOBCUT2D_LOGPHIBCUT2D_LOGPLOWBCUT2D_MRHIBCUT2D_MRLOWBCUT2D_MWHIBCUT2D_MWLOWBalabanJ...MorganFP_118MorganFP_119MorganFP_120MorganFP_121MorganFP_122MorganFP_123MorganFP_124MorganFP_125MorganFP_126MorganFP_127
QSPRID
DescriptorsTutorialDataset_00003.1754622.146917-2.1115852.224211-2.2118015.898030-0.11597816.34251010.3251111.979450...FalseFalseFalseTrueTrueTrueTrueTrueFalseFalse
DescriptorsTutorialDataset_00012.9620342.203517-2.1360482.354533-2.1145617.208763-0.38442932.1335419.9526951.637290...FalseFalseFalseFalseTrueFalseTrueTrueTrueTrue
DescriptorsTutorialDataset_00023.1279572.188200-2.0672682.189363-2.2029506.0532810.10217616.15377410.1907801.748699...FalseFalseTrueFalseTrueFalseFalseTrueFalseFalse
DescriptorsTutorialDataset_00033.4918012.749014-2.2316262.674016-2.4108686.301607-0.14032535.4956939.9814991.448422...TrueFalseFalseFalseTrueTrueTrueTrueFalseFalse
DescriptorsTutorialDataset_00043.2363322.185263-2.1138382.178416-2.4041137.9030510.09523432.22774910.1849071.581267...FalseFalseTrueFalseTrueFalseTrueTrueFalseFalse
\n", + "

5 rows × 338 columns

\n", + "
" + ], + "text/plain": [ + " AvgIpc BCUT2D_CHGHI BCUT2D_CHGLO \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 3.175462 2.146917 -2.111585 \n", + "DescriptorsTutorialDataset_0001 2.962034 2.203517 -2.136048 \n", + "DescriptorsTutorialDataset_0002 3.127957 2.188200 -2.067268 \n", + "DescriptorsTutorialDataset_0003 3.491801 2.749014 -2.231626 \n", + "DescriptorsTutorialDataset_0004 3.236332 2.185263 -2.113838 \n", + "\n", + " BCUT2D_LOGPHI BCUT2D_LOGPLOW BCUT2D_MRHI \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 2.224211 -2.211801 5.898030 \n", + "DescriptorsTutorialDataset_0001 2.354533 -2.114561 7.208763 \n", + "DescriptorsTutorialDataset_0002 2.189363 -2.202950 6.053281 \n", + "DescriptorsTutorialDataset_0003 2.674016 -2.410868 6.301607 \n", + "DescriptorsTutorialDataset_0004 2.178416 -2.404113 7.903051 \n", + "\n", + " BCUT2D_MRLOW BCUT2D_MWHI BCUT2D_MWLOW \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 -0.115978 16.342510 10.325111 \n", + "DescriptorsTutorialDataset_0001 -0.384429 32.133541 9.952695 \n", + "DescriptorsTutorialDataset_0002 0.102176 16.153774 10.190780 \n", + "DescriptorsTutorialDataset_0003 -0.140325 35.495693 9.981499 \n", + "DescriptorsTutorialDataset_0004 0.095234 32.227749 10.184907 \n", + "\n", + " BalabanJ ... MorganFP_118 MorganFP_119 \\\n", + "QSPRID ... \n", + "DescriptorsTutorialDataset_0000 1.979450 ... False False \n", + "DescriptorsTutorialDataset_0001 1.637290 ... False False \n", + "DescriptorsTutorialDataset_0002 1.748699 ... False False \n", + "DescriptorsTutorialDataset_0003 1.448422 ... True False \n", + "DescriptorsTutorialDataset_0004 1.581267 ... False False \n", + "\n", + " MorganFP_120 MorganFP_121 MorganFP_122 \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 False True True \n", + "DescriptorsTutorialDataset_0001 False False True \n", + "DescriptorsTutorialDataset_0002 True False True \n", + "DescriptorsTutorialDataset_0003 False False True \n", + "DescriptorsTutorialDataset_0004 True False True \n", + "\n", + " MorganFP_123 MorganFP_124 MorganFP_125 \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 True True True \n", + "DescriptorsTutorialDataset_0001 False True True \n", + "DescriptorsTutorialDataset_0002 False False True \n", + "DescriptorsTutorialDataset_0003 True True True \n", + "DescriptorsTutorialDataset_0004 False True True \n", + "\n", + " MorganFP_126 MorganFP_127 \n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 False False \n", + "DescriptorsTutorialDataset_0001 True True \n", + "DescriptorsTutorialDataset_0002 False False \n", + "DescriptorsTutorialDataset_0003 False False \n", + "DescriptorsTutorialDataset_0004 False False \n", + "\n", + "[5 rows x 338 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from qsprpred.data import QSPRDataset\n", + "from qsprpred.data.descriptors.fingerprints import MorganFP\n", + "\n", + "qspr_dataset = QSPRDataset.fromMolTable(\n", + " dataset,\n", + " target_props=[{\"name\": \"pchembl_value_Mean\", \"task\": \"REGRESSION\"}],\n", + " name = \"DescriptorsTutorialQSPRDataset\"\n", + ")\n", + "\n", + "qspr_dataset.prepareDataset(feature_calculators=[MorganFP(radius=2, nBits=128)])\n", + "\n", + "print(qspr_dataset.descriptorSets)\n", + "qspr_dataset.getDescriptors().head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note. if applying any feature standardization or feature filtering, this will not be reflected in the descriptor dataframe. Instead the original descriptors will be returned by the `getDescriptors` method. To retrieve the standardized or filtered descriptors, use the `getFeatures` method." ] }, { "cell_type": "markdown", "metadata": {}, - "source": [] + "source": [ + "Descriptorsets can also be used to directly calculate descriptors for a list of molecules using the `calculateDescriptors` method." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0.,\n", + " 0., 0., 1., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 1., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.,\n", + " 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.,\n", + " 0., 1., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 1., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 1., 0., 0., 1., 0., 0., 0., 1., 0., 0., 0., 1., 0., 0.],\n", + " [0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 1., 0., 0., 0., 1., 1.,\n", + " 1., 0., 0., 1., 0., 1., 1., 0., 1., 1., 0., 0., 0., 1., 1., 0.,\n", + " 0., 1., 0., 0., 1., 0., 0., 1., 1., 0., 1., 0., 1., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 1., 0., 1., 0., 1., 1., 0., 0., 0.,\n", + " 0., 1., 1., 1., 1., 0., 0., 1., 1., 0., 0., 0., 0., 1., 0., 0.,\n", + " 0., 1., 0., 1., 1., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 1., 0., 1., 1., 0., 1., 0., 0., 0., 0., 1., 0.,\n", + " 0., 1., 0., 0., 0., 0., 0., 0., 0., 1., 0., 1., 0., 0., 0., 0.]])" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from qsprpred.data.descriptors.fingerprints import MorganFP\n", + "from rdkit import Chem\n", + "\n", + "smiles = [\"CC(=O)NC1=CC=C(C=C1)O\", \"CN1CCC23C4C1CC5=C2C(=C(C=C5)O)OC3C(C=C4)O\"]\n", + "mols = [Chem.MolFromSmiles(smiles) for smiles in smiles]\n", + "\n", + "morgan_fp = MorganFP(radius=2, nBits=128)\n", + "\n", + "morgan_fp.getDescriptors(mols, props=None)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Examples\n", + "\n", + "Here, we will go over a few examples of the available descriptor sets. The full list of available descriptor sets can be found in the [documentation](https://cddleiden.github.io/QSPRpred/docs/features.html). Note that some descriptors sets may require additional dependencies to be installed in order to be used, see [installation instructions](https://cddleiden.github.io/QSPRpred/docs-dev/install.html) for more information." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Fingerprints\n", + "\n", + "Fingerprints are a type of molecular descriptor that encode the presence or absence of substructures in a molecule. They are often used in cheminformatics for tasks such as similarity searching and clustering. In QSPRpred, fingerprints can be calculated with the `Fingerprints` descriptor sets. Each bit of the fingerprint is a separate descriptor. In the previous example, we have shown how to calculate the Morgan fingerprints with the `Fingerprints` descriptor set. Another type of fingerprint that can be calculated with QSPRpred is the MACCS keys." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "qsprpred - WARNING - Molecular descriptors already exist in DescriptorsTutorialDataset. Calculation will be skipped. Use `recalculate=True` to overwrite them.\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AvgIpcBCUT2D_CHGHIBCUT2D_CHGLOBCUT2D_LOGPHIBCUT2D_LOGPLOWBCUT2D_MRHIBCUT2D_MRLOWBCUT2D_MWHIBCUT2D_MWLOWBalabanJ...MACCSFP_157MACCSFP_158MACCSFP_159MACCSFP_160MACCSFP_161MACCSFP_162MACCSFP_163MACCSFP_164MACCSFP_165MACCSFP_166
QSPRID
DescriptorsTutorialDataset_00003.1754622.146917-2.1115852.224211-2.2118015.898030-0.11597816.34251010.3251111.979450...FalseTrueTrueTrueTrueTrueTrueTrueTrueFalse
DescriptorsTutorialDataset_00012.9620342.203517-2.1360482.354533-2.1145617.208763-0.38442932.1335419.9526951.637290...FalseTrueTrueFalseTrueTrueTrueTrueTrueFalse
DescriptorsTutorialDataset_00023.1279572.188200-2.0672682.189363-2.2029506.0532810.10217616.15377410.1907801.748699...FalseTrueTrueFalseTrueTrueTrueTrueTrueFalse
DescriptorsTutorialDataset_00033.4918012.749014-2.2316262.674016-2.4108686.301607-0.14032535.4956939.9814991.448422...TrueTrueTrueTrueTrueTrueTrueTrueTrueFalse
DescriptorsTutorialDataset_00043.2363322.185263-2.1138382.178416-2.4041137.9030510.09523432.22774910.1849071.581267...TrueTrueTrueTrueTrueTrueTrueTrueTrueFalse
\n", + "

5 rows × 505 columns

\n", + "
" + ], + "text/plain": [ + " AvgIpc BCUT2D_CHGHI BCUT2D_CHGLO \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 3.175462 2.146917 -2.111585 \n", + "DescriptorsTutorialDataset_0001 2.962034 2.203517 -2.136048 \n", + "DescriptorsTutorialDataset_0002 3.127957 2.188200 -2.067268 \n", + "DescriptorsTutorialDataset_0003 3.491801 2.749014 -2.231626 \n", + "DescriptorsTutorialDataset_0004 3.236332 2.185263 -2.113838 \n", + "\n", + " BCUT2D_LOGPHI BCUT2D_LOGPLOW BCUT2D_MRHI \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 2.224211 -2.211801 5.898030 \n", + "DescriptorsTutorialDataset_0001 2.354533 -2.114561 7.208763 \n", + "DescriptorsTutorialDataset_0002 2.189363 -2.202950 6.053281 \n", + "DescriptorsTutorialDataset_0003 2.674016 -2.410868 6.301607 \n", + "DescriptorsTutorialDataset_0004 2.178416 -2.404113 7.903051 \n", + "\n", + " BCUT2D_MRLOW BCUT2D_MWHI BCUT2D_MWLOW \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 -0.115978 16.342510 10.325111 \n", + "DescriptorsTutorialDataset_0001 -0.384429 32.133541 9.952695 \n", + "DescriptorsTutorialDataset_0002 0.102176 16.153774 10.190780 \n", + "DescriptorsTutorialDataset_0003 -0.140325 35.495693 9.981499 \n", + "DescriptorsTutorialDataset_0004 0.095234 32.227749 10.184907 \n", + "\n", + " BalabanJ ... MACCSFP_157 MACCSFP_158 \\\n", + "QSPRID ... \n", + "DescriptorsTutorialDataset_0000 1.979450 ... False True \n", + "DescriptorsTutorialDataset_0001 1.637290 ... False True \n", + "DescriptorsTutorialDataset_0002 1.748699 ... False True \n", + "DescriptorsTutorialDataset_0003 1.448422 ... True True \n", + "DescriptorsTutorialDataset_0004 1.581267 ... True True \n", + "\n", + " MACCSFP_159 MACCSFP_160 MACCSFP_161 \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 True True True \n", + "DescriptorsTutorialDataset_0001 True False True \n", + "DescriptorsTutorialDataset_0002 True False True \n", + "DescriptorsTutorialDataset_0003 True True True \n", + "DescriptorsTutorialDataset_0004 True True True \n", + "\n", + " MACCSFP_162 MACCSFP_163 MACCSFP_164 \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 True True True \n", + "DescriptorsTutorialDataset_0001 True True True \n", + "DescriptorsTutorialDataset_0002 True True True \n", + "DescriptorsTutorialDataset_0003 True True True \n", + "DescriptorsTutorialDataset_0004 True True True \n", + "\n", + " MACCSFP_165 MACCSFP_166 \n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 True False \n", + "DescriptorsTutorialDataset_0001 True False \n", + "DescriptorsTutorialDataset_0002 True False \n", + "DescriptorsTutorialDataset_0003 True False \n", + "DescriptorsTutorialDataset_0004 True False \n", + "\n", + "[5 rows x 505 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from qsprpred.data.descriptors.fingerprints import MaccsFP\n", + "\n", + "dataset.addDescriptors([MaccsFP()])\n", + "\n", + "qspr_dataset.getDescriptors().head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Pre-calculated descriptors\n", + "\n", + "In addition to calculating descriptors with QSPRpred, it is also possible to add pre-calculated descriptors to a dataset. This can be done with the `DataFrameDescriptorSet` class. This class takes a pandas DataFrame as input, where the rows correspond to the molecules and the columns correspond to the descriptors. The `DataFrameDescriptorSet` can then be added to a dataset with the `addDescriptors` method.\n", + "\n", + "Note. that with pre-calculated descriptors, the prediction with trained models will be limited to molecules that are present in the pre-calculated descriptor dataframe." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
random_0random_1random_2random_3random_4random_5random_6random_7random_8random_9
QSPRID
DescriptorsTutorialDataset_00000.4066680.7954100.2545190.2394780.1690610.8329710.8979780.7410190.8594050.887605
DescriptorsTutorialDataset_00010.3080870.9068690.9341460.8707600.5827760.3749900.2983550.2647640.9693540.358634
DescriptorsTutorialDataset_00020.8840400.0648460.9105110.7811840.4683130.8217470.4875210.2640420.0862800.142478
DescriptorsTutorialDataset_00030.9270370.6273290.8750700.6734160.7908240.0495240.0341420.0659040.0714600.306342
DescriptorsTutorialDataset_00040.6225000.0493360.2693370.4534280.0587040.0451180.3544620.6840520.9340030.447181
\n", + "
" + ], + "text/plain": [ + " random_0 random_1 random_2 random_3 \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 0.406668 0.795410 0.254519 0.239478 \n", + "DescriptorsTutorialDataset_0001 0.308087 0.906869 0.934146 0.870760 \n", + "DescriptorsTutorialDataset_0002 0.884040 0.064846 0.910511 0.781184 \n", + "DescriptorsTutorialDataset_0003 0.927037 0.627329 0.875070 0.673416 \n", + "DescriptorsTutorialDataset_0004 0.622500 0.049336 0.269337 0.453428 \n", + "\n", + " random_4 random_5 random_6 random_7 \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 0.169061 0.832971 0.897978 0.741019 \n", + "DescriptorsTutorialDataset_0001 0.582776 0.374990 0.298355 0.264764 \n", + "DescriptorsTutorialDataset_0002 0.468313 0.821747 0.487521 0.264042 \n", + "DescriptorsTutorialDataset_0003 0.790824 0.049524 0.034142 0.065904 \n", + "DescriptorsTutorialDataset_0004 0.058704 0.045118 0.354462 0.684052 \n", + "\n", + " random_8 random_9 \n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 0.859405 0.887605 \n", + "DescriptorsTutorialDataset_0001 0.969354 0.358634 \n", + "DescriptorsTutorialDataset_0002 0.086280 0.142478 \n", + "DescriptorsTutorialDataset_0003 0.071460 0.306342 \n", + "DescriptorsTutorialDataset_0004 0.934003 0.447181 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AvgIpcBCUT2D_CHGHIBCUT2D_CHGLOBCUT2D_LOGPHIBCUT2D_LOGPLOWBCUT2D_MRHIBCUT2D_MRLOWBCUT2D_MWHIBCUT2D_MWLOWBalabanJ...random_0random_1random_2random_3random_4random_5random_6random_7random_8random_9
QSPRID
DescriptorsTutorialDataset_00003.1754622.146917-2.1115852.224211-2.2118015.898030-0.11597816.34251010.3251111.979450...0.4066680.7954100.2545190.2394780.1690610.8329710.8979780.7410190.8594050.887605
DescriptorsTutorialDataset_00012.9620342.203517-2.1360482.354533-2.1145617.208763-0.38442932.1335419.9526951.637290...0.3080870.9068690.9341460.8707610.5827760.3749900.2983550.2647640.9693540.358634
DescriptorsTutorialDataset_00023.1279572.188200-2.0672682.189363-2.2029506.0532810.10217616.15377410.1907801.748699...0.8840400.0648460.9105110.7811840.4683130.8217470.4875210.2640420.0862800.142478
DescriptorsTutorialDataset_00033.4918012.749014-2.2316262.674016-2.4108686.301607-0.14032535.4956939.9814991.448422...0.9270370.6273290.8750700.6734160.7908240.0495240.0341420.0659040.0714600.306342
DescriptorsTutorialDataset_00043.2363322.185263-2.1138382.178416-2.4041137.9030510.09523432.22774910.1849071.581267...0.6225000.0493360.2693370.4534280.0587040.0451180.3544620.6840520.9340030.447181
\n", + "

5 rows × 515 columns

\n", + "
" + ], + "text/plain": [ + " AvgIpc BCUT2D_CHGHI BCUT2D_CHGLO \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 3.175462 2.146917 -2.111585 \n", + "DescriptorsTutorialDataset_0001 2.962034 2.203517 -2.136048 \n", + "DescriptorsTutorialDataset_0002 3.127957 2.188200 -2.067268 \n", + "DescriptorsTutorialDataset_0003 3.491801 2.749014 -2.231626 \n", + "DescriptorsTutorialDataset_0004 3.236332 2.185263 -2.113838 \n", + "\n", + " BCUT2D_LOGPHI BCUT2D_LOGPLOW BCUT2D_MRHI \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 2.224211 -2.211801 5.898030 \n", + "DescriptorsTutorialDataset_0001 2.354533 -2.114561 7.208763 \n", + "DescriptorsTutorialDataset_0002 2.189363 -2.202950 6.053281 \n", + "DescriptorsTutorialDataset_0003 2.674016 -2.410868 6.301607 \n", + "DescriptorsTutorialDataset_0004 2.178416 -2.404113 7.903051 \n", + "\n", + " BCUT2D_MRLOW BCUT2D_MWHI BCUT2D_MWLOW \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 -0.115978 16.342510 10.325111 \n", + "DescriptorsTutorialDataset_0001 -0.384429 32.133541 9.952695 \n", + "DescriptorsTutorialDataset_0002 0.102176 16.153774 10.190780 \n", + "DescriptorsTutorialDataset_0003 -0.140325 35.495693 9.981499 \n", + "DescriptorsTutorialDataset_0004 0.095234 32.227749 10.184907 \n", + "\n", + " BalabanJ ... random_0 random_1 random_2 \\\n", + "QSPRID ... \n", + "DescriptorsTutorialDataset_0000 1.979450 ... 0.406668 0.795410 0.254519 \n", + "DescriptorsTutorialDataset_0001 1.637290 ... 0.308087 0.906869 0.934146 \n", + "DescriptorsTutorialDataset_0002 1.748699 ... 0.884040 0.064846 0.910511 \n", + "DescriptorsTutorialDataset_0003 1.448422 ... 0.927037 0.627329 0.875070 \n", + "DescriptorsTutorialDataset_0004 1.581267 ... 0.622500 0.049336 0.269337 \n", + "\n", + " random_3 random_4 random_5 random_6 \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 0.239478 0.169061 0.832971 0.897978 \n", + "DescriptorsTutorialDataset_0001 0.870761 0.582776 0.374990 0.298355 \n", + "DescriptorsTutorialDataset_0002 0.781184 0.468313 0.821747 0.487521 \n", + "DescriptorsTutorialDataset_0003 0.673416 0.790824 0.049524 0.034142 \n", + "DescriptorsTutorialDataset_0004 0.453428 0.058704 0.045118 0.354462 \n", + "\n", + " random_7 random_8 random_9 \n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 0.741019 0.859405 0.887605 \n", + "DescriptorsTutorialDataset_0001 0.264764 0.969354 0.358634 \n", + "DescriptorsTutorialDataset_0002 0.264042 0.086280 0.142478 \n", + "DescriptorsTutorialDataset_0003 0.065904 0.071460 0.306342 \n", + "DescriptorsTutorialDataset_0004 0.684052 0.934003 0.447181 \n", + "\n", + "[5 rows x 515 columns]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from qsprpred.data.descriptors.sets import DataFrameDescriptorSet\n", + "\n", + "# Create a dataframe with 10 columns of random values with the same index as the dataset\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "index = dataset.getDF().index\n", + "random_descriptors = pd.DataFrame(np.random.rand(len(index), 10),\n", + " index=index,\n", + " columns=[f\"random_{i}\" for i in range(10)])\n", + "\n", + "display(random_descriptors.head())\n", + "\n", + "random_descriptor_set = DataFrameDescriptorSet(random_descriptors)\n", + "\n", + "dataset.addDescriptors([random_descriptor_set])\n", + "\n", + "dataset.getDescriptors().head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using a trained model to calculate descriptors\n", + "\n", + "In some cases, it may be useful to use a trained model to calculate properties of a molecule that can than be used as descriptors. This can be done with the `PredictorDesc` class. This class takes a trained model as input and uses it to make predictions for a set of molecules. The predictions are then added to the dataset as descriptors with the `addDescriptors` method.\n", + "\n", + "Here we will use the model from the [quick start tutorial](../../quick_start.ipynb) to calculate the pchembl value for the molecules in the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AvgIpcBCUT2D_CHGHIBCUT2D_CHGLOBCUT2D_LOGPHIBCUT2D_LOGPLOWBCUT2D_MRHIBCUT2D_MRLOWBCUT2D_MWHIBCUT2D_MWLOWBalabanJ...random_1random_2random_3random_4random_5random_6random_7random_8random_9QuickStartModel
QSPRID
DescriptorsTutorialDataset_00003.1754622.146917-2.1115852.224211-2.2118015.898030-0.11597816.34251010.3251111.979450...0.7954100.2545190.2394780.1690610.8329710.8979780.7410190.8594050.8876058.716
DescriptorsTutorialDataset_00012.9620342.203517-2.1360482.354533-2.1145617.208763-0.38442932.1335419.9526951.637290...0.9068690.9341460.8707610.5827760.3749900.2983550.2647640.9693540.3586345.614
DescriptorsTutorialDataset_00023.1279572.188200-2.0672682.189363-2.2029506.0532810.10217616.15377410.1907801.748699...0.0648460.9105110.7811840.4683130.8217470.4875210.2640420.0862800.1424786.274
DescriptorsTutorialDataset_00033.4918012.749014-2.2316262.674016-2.4108686.301607-0.14032535.4956939.9814991.448422...0.6273290.8750700.6734160.7908240.0495240.0341420.0659040.0714600.3063425.656
DescriptorsTutorialDataset_00043.2363322.185263-2.1138382.178416-2.4041137.9030510.09523432.22774910.1849071.581267...0.0493360.2693370.4534280.0587040.0451180.3544620.6840520.9340030.4471816.128
\n", + "

5 rows × 516 columns

\n", + "
" + ], + "text/plain": [ + " AvgIpc BCUT2D_CHGHI BCUT2D_CHGLO \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 3.175462 2.146917 -2.111585 \n", + "DescriptorsTutorialDataset_0001 2.962034 2.203517 -2.136048 \n", + "DescriptorsTutorialDataset_0002 3.127957 2.188200 -2.067268 \n", + "DescriptorsTutorialDataset_0003 3.491801 2.749014 -2.231626 \n", + "DescriptorsTutorialDataset_0004 3.236332 2.185263 -2.113838 \n", + "\n", + " BCUT2D_LOGPHI BCUT2D_LOGPLOW BCUT2D_MRHI \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 2.224211 -2.211801 5.898030 \n", + "DescriptorsTutorialDataset_0001 2.354533 -2.114561 7.208763 \n", + "DescriptorsTutorialDataset_0002 2.189363 -2.202950 6.053281 \n", + "DescriptorsTutorialDataset_0003 2.674016 -2.410868 6.301607 \n", + "DescriptorsTutorialDataset_0004 2.178416 -2.404113 7.903051 \n", + "\n", + " BCUT2D_MRLOW BCUT2D_MWHI BCUT2D_MWLOW \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 -0.115978 16.342510 10.325111 \n", + "DescriptorsTutorialDataset_0001 -0.384429 32.133541 9.952695 \n", + "DescriptorsTutorialDataset_0002 0.102176 16.153774 10.190780 \n", + "DescriptorsTutorialDataset_0003 -0.140325 35.495693 9.981499 \n", + "DescriptorsTutorialDataset_0004 0.095234 32.227749 10.184907 \n", + "\n", + " BalabanJ ... random_1 random_2 random_3 \\\n", + "QSPRID ... \n", + "DescriptorsTutorialDataset_0000 1.979450 ... 0.795410 0.254519 0.239478 \n", + "DescriptorsTutorialDataset_0001 1.637290 ... 0.906869 0.934146 0.870761 \n", + "DescriptorsTutorialDataset_0002 1.748699 ... 0.064846 0.910511 0.781184 \n", + "DescriptorsTutorialDataset_0003 1.448422 ... 0.627329 0.875070 0.673416 \n", + "DescriptorsTutorialDataset_0004 1.581267 ... 0.049336 0.269337 0.453428 \n", + "\n", + " random_4 random_5 random_6 random_7 \\\n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 0.169061 0.832971 0.897978 0.741019 \n", + "DescriptorsTutorialDataset_0001 0.582776 0.374990 0.298355 0.264764 \n", + "DescriptorsTutorialDataset_0002 0.468313 0.821747 0.487521 0.264042 \n", + "DescriptorsTutorialDataset_0003 0.790824 0.049524 0.034142 0.065904 \n", + "DescriptorsTutorialDataset_0004 0.058704 0.045118 0.354462 0.684052 \n", + "\n", + " random_8 random_9 QuickStartModel \n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 0.859405 0.887605 8.716 \n", + "DescriptorsTutorialDataset_0001 0.969354 0.358634 5.614 \n", + "DescriptorsTutorialDataset_0002 0.086280 0.142478 6.274 \n", + "DescriptorsTutorialDataset_0003 0.071460 0.306342 5.656 \n", + "DescriptorsTutorialDataset_0004 0.934003 0.447181 6.128 \n", + "\n", + "[5 rows x 516 columns]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from qsprpred.models.scikit_learn import SklearnModel\n", + "\n", + "# Load the model from the Quick Start tutorial\n", + "model = SklearnModel.fromFile(\"../../tutorial_output/models/QuickStartModel/QuickStartModel_meta.json\")\n", + "\n", + "from qsprpred.data.descriptors.sets import PredictorDesc\n", + "\n", + "predictor_desc = PredictorDesc(model)\n", + "\n", + "dataset.addDescriptors([predictor_desc])\n", + "\n", + "dataset.getDescriptors().head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Custom descriptors\n", + "\n", + "To implement your own descriptors, see the [custom descriptors](../../advanced/data/custom_descriptors.ipynb) tutorial." + ] } ], "metadata": { From 9194bd6756343ab13e112f81a36dc813c41f1f7d Mon Sep 17 00:00:00 2001 From: maagdenbehwvanden1 Date: Thu, 8 Feb 2024 18:03:25 +0100 Subject: [PATCH 05/29] Add monitors, scaffolds and clustering to feature overview --- docs/features.rst | 49 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/docs/features.rst b/docs/features.rst index f5625b2c..073fa4e9 100644 --- a/docs/features.rst +++ b/docs/features.rst @@ -52,7 +52,7 @@ Overview of available features * :class:`~qsprpred.data.descriptors.fingerprints.AtomPairFP`: AtomPairFP * :class:`~qsprpred.data.descriptors.fingerprints.AvalonFP`: AvalonFP * :class:`~qsprpred.data.descriptors.fingerprints.LayeredFP`: LayeredFP - * :class:`~qsprpred.data.descriptors.fingerprints.MACCsFP`: MACCsFP + * :class:`~qsprpred.data.descriptors.fingerprints.MaccsFP`: MaccsFP * :class:`~qsprpred.data.descriptors.fingerprints.MorganFP`: MorganFP * :class:`~qsprpred.data.descriptors.fingerprints.PatternFP`: PatternFP * :class:`~qsprpred.data.descriptors.fingerprints.RDKitFP`: RDKitFP @@ -209,3 +209,50 @@ Overview of available features * :class:`~qsprpred.plotting.classification.MetricsPlot`: MetricsPlot * :class:`~qsprpred.plotting.classification.ConfusionMatrixPlot`: ConfusionMatrixPlot + .. dropdown:: Monitors + + * :class:`~qsprpred.models.monitors.FitMonitor`: Base class for monitoring model fitting + * :class:`~qsprpred.models.monitors.AssessorMonitor`: Base class for monitoring model assessment (subclass of :class:`~qsprpred.models.monitors.FitMonitor`) + * :class:`~qsprpred.models.monitors.HyperparameterOptimizationMonitor`: Base class for monitoring hyperparameter optimization (subclass of :class:`~qsprpred.models.monitors.AssessorMonitor`) + + Monitors are used to monitor the training of models. + More information can be found in the `model monitoring tutorial `_. + + .. tab-set:: + + .. tab-item:: Core + + * :class:`~qsprpred.models.monitors.NullMonitor`: NullMonitor + * :class:`~qsprpred.models.monitors.ListMonitor`: ListMonitor + * :class:`~qsprpred.models.monitors.BaseMonitor`: BaseMonitor + * :class:`~qsprpred.models.monitors.FileMonitor`: FileMonitor + * :class:`~qsprpred.models.monitors.WandBMonitor`: WandBMonitor + + .. dropdown:: Scaffolds + + :class:`~qsprpred.data.chem.scaffolds.Scaffold`: Base class for scaffolds. + + Class for calculating molecular scaffolds of different kinds + + .. tab-set:: + + .. tab-item:: Core + + * :class:`~qsprpred.data.chem.scaffolds.Murcko`: Murcko + * :class:`~qsprpred.data.chem.scaffolds.BemisMurcko`: BemisMurcko + + .. dropdown:: Clustering + + :class:`~qsprpred.data.chem.clustering.MoleculeClusters`: Base class for clustering molecules. + + Classes for clustering molecules + + .. tab-set:: + + .. tab-item:: Core + + * :class:`~qsprpred.data.chem.clustering.RandomClusters`: RandomClusters + * :class:`~qsprpred.data.chem.clustering.ScaffoldClusters`: ScaffoldClusters + * :class:`~qsprpred.data.chem.clustering.FPSimilarityClusters`: FPSimilarityClusters + * :class:`~qsprpred.data.chem.clustering.FPSimilarityMaxMinClusters`: FPSimilarityMaxMinClusters + * :class:`~qsprpred.data.chem.clustering.FPSimilarityLeaderPickerClusters`: FPSimilarityLeaderPickerClusters From fb828147d15af408ac67b92aeefb5b8713049a9d Mon Sep 17 00:00:00 2001 From: maagdenbehwvanden1 Date: Thu, 8 Feb 2024 18:03:40 +0100 Subject: [PATCH 06/29] remove old text from cli example --- docs/cli_usage.rst | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/cli_usage.rst b/docs/cli_usage.rst index f41c9ebf..2e927ac4 100644 --- a/docs/cli_usage.rst +++ b/docs/cli_usage.rst @@ -14,10 +14,7 @@ e.g. the help message for the :code:`QSPRpred.data_CLI` script can be shown as f A simple command-line workflow to prepare your dataset and train QSPR models is given below (see :ref:`CLI Example`). If you want more control over the inputs and outputs or want to customize QSPRpred for your purpose, -you can also use the Python API directly (see `source code `_). -Here you can find a tutorial with a Jupyter notebook illustrating some common use cases in the project source code. -Make sure to download the tutorial folder to follow the examples in this CLI tutorial. - +you can also use the Python API directly (see `tutorials `_). CLI Example *********** From 9ac0fc5fff6efcf605c3eb73048c1116ddd14670 Mon Sep 17 00:00:00 2001 From: maagdenbehwvanden1 Date: Thu, 8 Feb 2024 18:21:47 +0100 Subject: [PATCH 07/29] update path in documentation after refactor assesment --- docs/features.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features.rst b/docs/features.rst index 073fa4e9..7e9b4bad 100644 --- a/docs/features.rst +++ b/docs/features.rst @@ -161,7 +161,7 @@ Overview of available features .. dropdown:: Model Assessors - :class:`~qsprpred.models.assessment_methods.ModelAssessor`: Base class for model assessors. + :class:`~qsprpred.models.assessment.methods.ModelAssessor`: Base class for model assessors. Model assessors are used to assess the performance of models. More information be found in the `model assessment tutorial `_. @@ -170,8 +170,8 @@ Overview of available features .. tab-item:: Core - * :class:`~qsprpred.models.assessment_methods.CrossValAssessor`: CrossValAssessor - * :class:`~qsprpred.models.assessment_methods.TestSetAssessor`: TestSetAssessor + * :class:`~qsprpred.models.assessment.methods.CrossValAssessor`: CrossValAssessor + * :class:`~qsprpred.models.assessment.methods.TestSetAssessor`: TestSetAssessor .. dropdown:: Hyperparameter Optimizers From 5614c70e490379b1b54711f6194e8cb66f8a6d7e Mon Sep 17 00:00:00 2001 From: maagdenbehwvanden1 Date: Fri, 9 Feb 2024 09:35:30 +0100 Subject: [PATCH 08/29] fix missign file bug in tutorial --- tutorials/basics/data/descriptors.ipynb | 457 ++++++++++++------------ 1 file changed, 237 insertions(+), 220 deletions(-) diff --git a/tutorials/basics/data/descriptors.ipynb b/tutorials/basics/data/descriptors.ipynb index 6b8d5d9e..f8145fdc 100644 --- a/tutorials/basics/data/descriptors.ipynb +++ b/tutorials/basics/data/descriptors.ipynb @@ -225,7 +225,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 2, @@ -546,14 +546,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[, ]\n" + "[, ]\n" ] }, { @@ -810,7 +810,7 @@ "[5 rows x 338 columns]" ] }, - "execution_count": 4, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -847,7 +847,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -871,7 +871,7 @@ " 0., 1., 0., 0., 0., 0., 0., 0., 0., 1., 0., 1., 0., 0., 0., 0.]])" ] }, - "execution_count": 16, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -908,7 +908,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -1172,7 +1172,7 @@ "[5 rows x 505 columns]" ] }, - "execution_count": 6, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -1250,68 +1250,68 @@ " \n", " \n", " DescriptorsTutorialDataset_0000\n", - " 0.406668\n", - " 0.795410\n", - " 0.254519\n", - " 0.239478\n", - " 0.169061\n", - " 0.832971\n", - " 0.897978\n", - " 0.741019\n", - " 0.859405\n", - " 0.887605\n", + " 0.112048\n", + " 0.800043\n", + " 0.936078\n", + " 0.062755\n", + " 0.640164\n", + " 0.496888\n", + " 0.711522\n", + " 0.024552\n", + " 0.342392\n", + " 0.030565\n", " \n", " \n", " DescriptorsTutorialDataset_0001\n", - " 0.308087\n", - " 0.906869\n", - " 0.934146\n", - " 0.870760\n", - " 0.582776\n", - " 0.374990\n", - " 0.298355\n", - " 0.264764\n", - " 0.969354\n", - " 0.358634\n", + " 0.655816\n", + " 0.116491\n", + " 0.986175\n", + " 0.075547\n", + " 0.499157\n", + " 0.663333\n", + " 0.496793\n", + " 0.773352\n", + " 0.893256\n", + " 0.202822\n", " \n", " \n", " DescriptorsTutorialDataset_0002\n", - " 0.884040\n", - " 0.064846\n", - " 0.910511\n", - " 0.781184\n", - " 0.468313\n", - " 0.821747\n", - " 0.487521\n", - " 0.264042\n", - " 0.086280\n", - " 0.142478\n", + " 0.158306\n", + " 0.903855\n", + " 0.524730\n", + " 0.189414\n", + " 0.310671\n", + " 0.313358\n", + " 0.317254\n", + " 0.599103\n", + " 0.524731\n", + " 0.363653\n", " \n", " \n", " DescriptorsTutorialDataset_0003\n", - " 0.927037\n", - " 0.627329\n", - " 0.875070\n", - " 0.673416\n", - " 0.790824\n", - " 0.049524\n", - " 0.034142\n", - " 0.065904\n", - " 0.071460\n", - " 0.306342\n", + " 0.257356\n", + " 0.939345\n", + " 0.165602\n", + " 0.025083\n", + " 0.607322\n", + " 0.767123\n", + " 0.957342\n", + " 0.398412\n", + " 0.933713\n", + " 0.760190\n", " \n", " \n", " DescriptorsTutorialDataset_0004\n", - " 0.622500\n", - " 0.049336\n", - " 0.269337\n", - " 0.453428\n", - " 0.058704\n", - " 0.045118\n", - " 0.354462\n", - " 0.684052\n", - " 0.934003\n", - " 0.447181\n", + " 0.823825\n", + " 0.061939\n", + " 0.439873\n", + " 0.914717\n", + " 0.175722\n", + " 0.769527\n", + " 0.570256\n", + " 0.837922\n", + " 0.642899\n", + " 0.499636\n", " \n", " \n", "\n", @@ -1320,27 +1320,27 @@ "text/plain": [ " random_0 random_1 random_2 random_3 \\\n", "QSPRID \n", - "DescriptorsTutorialDataset_0000 0.406668 0.795410 0.254519 0.239478 \n", - "DescriptorsTutorialDataset_0001 0.308087 0.906869 0.934146 0.870760 \n", - "DescriptorsTutorialDataset_0002 0.884040 0.064846 0.910511 0.781184 \n", - "DescriptorsTutorialDataset_0003 0.927037 0.627329 0.875070 0.673416 \n", - "DescriptorsTutorialDataset_0004 0.622500 0.049336 0.269337 0.453428 \n", + "DescriptorsTutorialDataset_0000 0.112048 0.800043 0.936078 0.062755 \n", + "DescriptorsTutorialDataset_0001 0.655816 0.116491 0.986175 0.075547 \n", + "DescriptorsTutorialDataset_0002 0.158306 0.903855 0.524730 0.189414 \n", + "DescriptorsTutorialDataset_0003 0.257356 0.939345 0.165602 0.025083 \n", + "DescriptorsTutorialDataset_0004 0.823825 0.061939 0.439873 0.914717 \n", "\n", " random_4 random_5 random_6 random_7 \\\n", "QSPRID \n", - "DescriptorsTutorialDataset_0000 0.169061 0.832971 0.897978 0.741019 \n", - "DescriptorsTutorialDataset_0001 0.582776 0.374990 0.298355 0.264764 \n", - "DescriptorsTutorialDataset_0002 0.468313 0.821747 0.487521 0.264042 \n", - "DescriptorsTutorialDataset_0003 0.790824 0.049524 0.034142 0.065904 \n", - "DescriptorsTutorialDataset_0004 0.058704 0.045118 0.354462 0.684052 \n", + "DescriptorsTutorialDataset_0000 0.640164 0.496888 0.711522 0.024552 \n", + "DescriptorsTutorialDataset_0001 0.499157 0.663333 0.496793 0.773352 \n", + "DescriptorsTutorialDataset_0002 0.310671 0.313358 0.317254 0.599103 \n", + "DescriptorsTutorialDataset_0003 0.607322 0.767123 0.957342 0.398412 \n", + "DescriptorsTutorialDataset_0004 0.175722 0.769527 0.570256 0.837922 \n", "\n", " random_8 random_9 \n", "QSPRID \n", - "DescriptorsTutorialDataset_0000 0.859405 0.887605 \n", - "DescriptorsTutorialDataset_0001 0.969354 0.358634 \n", - "DescriptorsTutorialDataset_0002 0.086280 0.142478 \n", - "DescriptorsTutorialDataset_0003 0.071460 0.306342 \n", - "DescriptorsTutorialDataset_0004 0.934003 0.447181 " + "DescriptorsTutorialDataset_0000 0.342392 0.030565 \n", + "DescriptorsTutorialDataset_0001 0.893256 0.202822 \n", + "DescriptorsTutorialDataset_0002 0.524731 0.363653 \n", + "DescriptorsTutorialDataset_0003 0.933713 0.760190 \n", + "DescriptorsTutorialDataset_0004 0.642899 0.499636 " ] }, "metadata": {}, @@ -1428,16 +1428,16 @@ " 10.325111\n", " 1.979450\n", " ...\n", - " 0.406668\n", - " 0.795410\n", - " 0.254519\n", - " 0.239478\n", - " 0.169061\n", - " 0.832971\n", - " 0.897978\n", - " 0.741019\n", - " 0.859405\n", - " 0.887605\n", + " 0.112048\n", + " 0.800043\n", + " 0.936078\n", + " 0.062755\n", + " 0.640164\n", + " 0.496888\n", + " 0.711522\n", + " 0.024552\n", + " 0.342392\n", + " 0.030565\n", " \n", " \n", " DescriptorsTutorialDataset_0001\n", @@ -1452,16 +1452,16 @@ " 9.952695\n", " 1.637290\n", " ...\n", - " 0.308087\n", - " 0.906869\n", - " 0.934146\n", - " 0.870761\n", - " 0.582776\n", - " 0.374990\n", - " 0.298355\n", - " 0.264764\n", - " 0.969354\n", - " 0.358634\n", + " 0.655816\n", + " 0.116491\n", + " 0.986175\n", + " 0.075547\n", + " 0.499157\n", + " 0.663333\n", + " 0.496793\n", + " 0.773352\n", + " 0.893256\n", + " 0.202822\n", " \n", " \n", " DescriptorsTutorialDataset_0002\n", @@ -1476,16 +1476,16 @@ " 10.190780\n", " 1.748699\n", " ...\n", - " 0.884040\n", - " 0.064846\n", - " 0.910511\n", - " 0.781184\n", - " 0.468313\n", - " 0.821747\n", - " 0.487521\n", - " 0.264042\n", - " 0.086280\n", - " 0.142478\n", + " 0.158306\n", + " 0.903855\n", + " 0.524730\n", + " 0.189414\n", + " 0.310671\n", + " 0.313358\n", + " 0.317254\n", + " 0.599103\n", + " 0.524731\n", + " 0.363653\n", " \n", " \n", " DescriptorsTutorialDataset_0003\n", @@ -1500,16 +1500,16 @@ " 9.981499\n", " 1.448422\n", " ...\n", - " 0.927037\n", - " 0.627329\n", - " 0.875070\n", - " 0.673416\n", - " 0.790824\n", - " 0.049524\n", - " 0.034142\n", - " 0.065904\n", - " 0.071460\n", - " 0.306342\n", + " 0.257356\n", + " 0.939345\n", + " 0.165602\n", + " 0.025083\n", + " 0.607322\n", + " 0.767123\n", + " 0.957342\n", + " 0.398412\n", + " 0.933713\n", + " 0.760190\n", " \n", " \n", " DescriptorsTutorialDataset_0004\n", @@ -1524,16 +1524,16 @@ " 10.184907\n", " 1.581267\n", " ...\n", - " 0.622500\n", - " 0.049336\n", - " 0.269337\n", - " 0.453428\n", - " 0.058704\n", - " 0.045118\n", - " 0.354462\n", - " 0.684052\n", - " 0.934003\n", - " 0.447181\n", + " 0.823825\n", + " 0.061939\n", + " 0.439873\n", + " 0.914717\n", + " 0.175722\n", + " 0.769527\n", + " 0.570256\n", + " 0.837922\n", + " 0.642899\n", + " 0.499636\n", " \n", " \n", "\n", @@ -1567,27 +1567,27 @@ "\n", " BalabanJ ... random_0 random_1 random_2 \\\n", "QSPRID ... \n", - "DescriptorsTutorialDataset_0000 1.979450 ... 0.406668 0.795410 0.254519 \n", - "DescriptorsTutorialDataset_0001 1.637290 ... 0.308087 0.906869 0.934146 \n", - "DescriptorsTutorialDataset_0002 1.748699 ... 0.884040 0.064846 0.910511 \n", - "DescriptorsTutorialDataset_0003 1.448422 ... 0.927037 0.627329 0.875070 \n", - "DescriptorsTutorialDataset_0004 1.581267 ... 0.622500 0.049336 0.269337 \n", + "DescriptorsTutorialDataset_0000 1.979450 ... 0.112048 0.800043 0.936078 \n", + "DescriptorsTutorialDataset_0001 1.637290 ... 0.655816 0.116491 0.986175 \n", + "DescriptorsTutorialDataset_0002 1.748699 ... 0.158306 0.903855 0.524730 \n", + "DescriptorsTutorialDataset_0003 1.448422 ... 0.257356 0.939345 0.165602 \n", + "DescriptorsTutorialDataset_0004 1.581267 ... 0.823825 0.061939 0.439873 \n", "\n", " random_3 random_4 random_5 random_6 \\\n", "QSPRID \n", - "DescriptorsTutorialDataset_0000 0.239478 0.169061 0.832971 0.897978 \n", - "DescriptorsTutorialDataset_0001 0.870761 0.582776 0.374990 0.298355 \n", - "DescriptorsTutorialDataset_0002 0.781184 0.468313 0.821747 0.487521 \n", - "DescriptorsTutorialDataset_0003 0.673416 0.790824 0.049524 0.034142 \n", - "DescriptorsTutorialDataset_0004 0.453428 0.058704 0.045118 0.354462 \n", + "DescriptorsTutorialDataset_0000 0.062755 0.640164 0.496888 0.711522 \n", + "DescriptorsTutorialDataset_0001 0.075547 0.499157 0.663333 0.496793 \n", + "DescriptorsTutorialDataset_0002 0.189414 0.310671 0.313358 0.317254 \n", + "DescriptorsTutorialDataset_0003 0.025083 0.607322 0.767123 0.957342 \n", + "DescriptorsTutorialDataset_0004 0.914717 0.175722 0.769527 0.570256 \n", "\n", " random_7 random_8 random_9 \n", "QSPRID \n", - "DescriptorsTutorialDataset_0000 0.741019 0.859405 0.887605 \n", - "DescriptorsTutorialDataset_0001 0.264764 0.969354 0.358634 \n", - "DescriptorsTutorialDataset_0002 0.264042 0.086280 0.142478 \n", - "DescriptorsTutorialDataset_0003 0.065904 0.071460 0.306342 \n", - "DescriptorsTutorialDataset_0004 0.684052 0.934003 0.447181 \n", + "DescriptorsTutorialDataset_0000 0.024552 0.342392 0.030565 \n", + "DescriptorsTutorialDataset_0001 0.773352 0.893256 0.202822 \n", + "DescriptorsTutorialDataset_0002 0.599103 0.524731 0.363653 \n", + "DescriptorsTutorialDataset_0003 0.398412 0.933713 0.760190 \n", + "DescriptorsTutorialDataset_0004 0.837922 0.642899 0.499636 \n", "\n", "[5 rows x 515 columns]" ] @@ -1599,22 +1599,19 @@ ], "source": [ "from qsprpred.data.descriptors.sets import DataFrameDescriptorSet\n", - "\n", - "# Create a dataframe with 10 columns of random values with the same index as the dataset\n", "import numpy as np\n", "import pandas as pd\n", "\n", + "# Create a dataframe with 10 columns of random values with the same index as the dataset\n", "index = dataset.getDF().index\n", "random_descriptors = pd.DataFrame(np.random.rand(len(index), 10),\n", " index=index,\n", " columns=[f\"random_{i}\" for i in range(10)])\n", - "\n", "display(random_descriptors.head())\n", "\n", + "# Create a DataFrameDescriptorSet from the random descriptors\n", "random_descriptor_set = DataFrameDescriptorSet(random_descriptors)\n", - "\n", "dataset.addDescriptors([random_descriptor_set])\n", - "\n", "dataset.getDescriptors().head()" ] }, @@ -1624,14 +1621,38 @@ "source": [ "### Using a trained model to calculate descriptors\n", "\n", - "In some cases, it may be useful to use a trained model to calculate properties of a molecule that can than be used as descriptors. This can be done with the `PredictorDesc` class. This class takes a trained model as input and uses it to make predictions for a set of molecules. The predictions are then added to the dataset as descriptors with the `addDescriptors` method.\n", + "In some cases, it may be useful to use a trained model to calculate properties of a molecule that can than be used as descriptors. This can be done with the `PredictorDesc` class. This class takes a trained model as input and uses it to make predictions for a set of molecules. The predictions are then added to the dataset as descriptors with the `addDescriptors` method." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# First we need to create a model to use as descriptor set\n", + "from qsprpred.models.scikit_learn import SklearnModel\n", + "from sklearn.ensemble import RandomForestRegressor\n", + "\n", + "dataset_for_predictor = QSPRDataset.fromTableFile(\n", + " filename=\"../../tutorial_data/A2A_LIGANDS.tsv\",\n", + " store_dir=\"../../tutorial_output/data\",\n", + " name=\"DescriptorsTutorialPredictorDataset\",\n", + " target_props=[{\"name\": \"pchembl_value_Mean\", \"task\": \"REGRESSION\"}]\n", + ")\n", "\n", - "Here we will use the model from the [quick start tutorial](../../quick_start.ipynb) to calculate the pchembl value for the molecules in the dataset." + "dataset_for_predictor.prepareDataset(feature_calculators=[MorganFP(radius=2, nBits=128)])\n", + "\n", + "model = SklearnModel(base_dir=\"../../tutorial_output/models\",\n", + " name=\"DescriptorsTutorialModel\",\n", + " alg=RandomForestRegressor)\n", + "\n", + "_ = model.fitDataset(dataset_for_predictor)" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -1675,7 +1696,7 @@ " random_7\n", " random_8\n", " random_9\n", - " QuickStartModel\n", + " DescriptorsTutorialModel\n", " \n", " \n", " QSPRID\n", @@ -1716,16 +1737,16 @@ " 10.325111\n", " 1.979450\n", " ...\n", - " 0.795410\n", - " 0.254519\n", - " 0.239478\n", - " 0.169061\n", - " 0.832971\n", - " 0.897978\n", - " 0.741019\n", - " 0.859405\n", - " 0.887605\n", - " 8.716\n", + " 0.800043\n", + " 0.936078\n", + " 0.062755\n", + " 0.640164\n", + " 0.496888\n", + " 0.711522\n", + " 0.024552\n", + " 0.342392\n", + " 0.030565\n", + " 8.717900\n", " \n", " \n", " DescriptorsTutorialDataset_0001\n", @@ -1740,16 +1761,16 @@ " 9.952695\n", " 1.637290\n", " ...\n", - " 0.906869\n", - " 0.934146\n", - " 0.870761\n", - " 0.582776\n", - " 0.374990\n", - " 0.298355\n", - " 0.264764\n", - " 0.969354\n", - " 0.358634\n", - " 5.614\n", + " 0.116491\n", + " 0.986175\n", + " 0.075547\n", + " 0.499157\n", + " 0.663333\n", + " 0.496793\n", + " 0.773352\n", + " 0.893256\n", + " 0.202822\n", + " 5.564867\n", " \n", " \n", " DescriptorsTutorialDataset_0002\n", @@ -1764,16 +1785,16 @@ " 10.190780\n", " 1.748699\n", " ...\n", - " 0.064846\n", - " 0.910511\n", - " 0.781184\n", - " 0.468313\n", - " 0.821747\n", - " 0.487521\n", - " 0.264042\n", - " 0.086280\n", - " 0.142478\n", - " 6.274\n", + " 0.903855\n", + " 0.524730\n", + " 0.189414\n", + " 0.310671\n", + " 0.313358\n", + " 0.317254\n", + " 0.599103\n", + " 0.524731\n", + " 0.363653\n", + " 6.110800\n", " \n", " \n", " DescriptorsTutorialDataset_0003\n", @@ -1788,16 +1809,16 @@ " 9.981499\n", " 1.448422\n", " ...\n", - " 0.627329\n", - " 0.875070\n", - " 0.673416\n", - " 0.790824\n", - " 0.049524\n", - " 0.034142\n", - " 0.065904\n", - " 0.071460\n", - " 0.306342\n", - " 5.656\n", + " 0.939345\n", + " 0.165602\n", + " 0.025083\n", + " 0.607322\n", + " 0.767123\n", + " 0.957342\n", + " 0.398412\n", + " 0.933713\n", + " 0.760190\n", + " 5.476770\n", " \n", " \n", " DescriptorsTutorialDataset_0004\n", @@ -1812,16 +1833,16 @@ " 10.184907\n", " 1.581267\n", " ...\n", - " 0.049336\n", - " 0.269337\n", - " 0.453428\n", - " 0.058704\n", - " 0.045118\n", - " 0.354462\n", - " 0.684052\n", - " 0.934003\n", - " 0.447181\n", - " 6.128\n", + " 0.061939\n", + " 0.439873\n", + " 0.914717\n", + " 0.175722\n", + " 0.769527\n", + " 0.570256\n", + " 0.837922\n", + " 0.642899\n", + " 0.499636\n", + " 5.656150\n", " \n", " \n", "\n", @@ -1855,42 +1876,38 @@ "\n", " BalabanJ ... random_1 random_2 random_3 \\\n", "QSPRID ... \n", - "DescriptorsTutorialDataset_0000 1.979450 ... 0.795410 0.254519 0.239478 \n", - "DescriptorsTutorialDataset_0001 1.637290 ... 0.906869 0.934146 0.870761 \n", - "DescriptorsTutorialDataset_0002 1.748699 ... 0.064846 0.910511 0.781184 \n", - "DescriptorsTutorialDataset_0003 1.448422 ... 0.627329 0.875070 0.673416 \n", - "DescriptorsTutorialDataset_0004 1.581267 ... 0.049336 0.269337 0.453428 \n", + "DescriptorsTutorialDataset_0000 1.979450 ... 0.800043 0.936078 0.062755 \n", + "DescriptorsTutorialDataset_0001 1.637290 ... 0.116491 0.986175 0.075547 \n", + "DescriptorsTutorialDataset_0002 1.748699 ... 0.903855 0.524730 0.189414 \n", + "DescriptorsTutorialDataset_0003 1.448422 ... 0.939345 0.165602 0.025083 \n", + "DescriptorsTutorialDataset_0004 1.581267 ... 0.061939 0.439873 0.914717 \n", "\n", " random_4 random_5 random_6 random_7 \\\n", "QSPRID \n", - "DescriptorsTutorialDataset_0000 0.169061 0.832971 0.897978 0.741019 \n", - "DescriptorsTutorialDataset_0001 0.582776 0.374990 0.298355 0.264764 \n", - "DescriptorsTutorialDataset_0002 0.468313 0.821747 0.487521 0.264042 \n", - "DescriptorsTutorialDataset_0003 0.790824 0.049524 0.034142 0.065904 \n", - "DescriptorsTutorialDataset_0004 0.058704 0.045118 0.354462 0.684052 \n", + "DescriptorsTutorialDataset_0000 0.640164 0.496888 0.711522 0.024552 \n", + "DescriptorsTutorialDataset_0001 0.499157 0.663333 0.496793 0.773352 \n", + "DescriptorsTutorialDataset_0002 0.310671 0.313358 0.317254 0.599103 \n", + "DescriptorsTutorialDataset_0003 0.607322 0.767123 0.957342 0.398412 \n", + "DescriptorsTutorialDataset_0004 0.175722 0.769527 0.570256 0.837922 \n", "\n", - " random_8 random_9 QuickStartModel \n", - "QSPRID \n", - "DescriptorsTutorialDataset_0000 0.859405 0.887605 8.716 \n", - "DescriptorsTutorialDataset_0001 0.969354 0.358634 5.614 \n", - "DescriptorsTutorialDataset_0002 0.086280 0.142478 6.274 \n", - "DescriptorsTutorialDataset_0003 0.071460 0.306342 5.656 \n", - "DescriptorsTutorialDataset_0004 0.934003 0.447181 6.128 \n", + " random_8 random_9 DescriptorsTutorialModel \n", + "QSPRID \n", + "DescriptorsTutorialDataset_0000 0.342392 0.030565 8.717900 \n", + "DescriptorsTutorialDataset_0001 0.893256 0.202822 5.564867 \n", + "DescriptorsTutorialDataset_0002 0.524731 0.363653 6.110800 \n", + "DescriptorsTutorialDataset_0003 0.933713 0.760190 5.476770 \n", + "DescriptorsTutorialDataset_0004 0.642899 0.499636 5.656150 \n", "\n", "[5 rows x 516 columns]" ] }, - "execution_count": 14, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "from qsprpred.models.scikit_learn import SklearnModel\n", - "\n", - "# Load the model from the Quick Start tutorial\n", - "model = SklearnModel.fromFile(\"../../tutorial_output/models/QuickStartModel/QuickStartModel_meta.json\")\n", - "\n", + "# Now we can use the model as a descriptor set\n", "from qsprpred.data.descriptors.sets import PredictorDesc\n", "\n", "predictor_desc = PredictorDesc(model)\n", From 1f11085205eeb9e47244c06a5bdbc787b92cda6c Mon Sep 17 00:00:00 2001 From: maagdenbehwvanden1 Date: Tue, 20 Feb 2024 16:50:36 +0100 Subject: [PATCH 09/29] fix not target transformation not applied --- qsprpred/data/tables/base.py | 14 ++++++--- qsprpred/data/tables/mol.py | 23 --------------- qsprpred/data/tables/pandas.py | 52 +++++++++++++++++++++------------- qsprpred/data/tables/qspr.py | 23 ++++++++------- qsprpred/data/tables/tests.py | 23 +++++++++++++++ 5 files changed, 79 insertions(+), 56 deletions(-) diff --git a/qsprpred/data/tables/base.py b/qsprpred/data/tables/base.py index f9e9fd63..a604aefb 100644 --- a/qsprpred/data/tables/base.py +++ b/qsprpred/data/tables/base.py @@ -64,6 +64,16 @@ def removeProperty(self, name: str): name (str): The name of the property. """ + @abstractmethod + def transformProperties(self, names, transformers): + """Transform property values using a transformer function. + + Args: + targets (list[str]): list of column names to transform. + transformer (Callable): Function that transforms the data in target columns + to a new representation. + """ + @abstractmethod def getSubset(self, prefix: str): """Get a subset of the dataset. @@ -90,10 +100,6 @@ def apply( func_kwargs (dict, optional): The keyword arguments of the function. """ - @abstractmethod - def transform(self, targets, transformers): - pass - @abstractmethod def filter(self, table_filters: list[Callable]): """Filter the dataset. diff --git a/qsprpred/data/tables/mol.py b/qsprpred/data/tables/mol.py index f6d30b76..8304c442 100644 --- a/qsprpred/data/tables/mol.py +++ b/qsprpred/data/tables/mol.py @@ -679,29 +679,6 @@ def dropDescriptors( self.descriptors[idx].clearFiles() self.descriptors.pop(idx) - def imputeProperties(self, names: list[str], imputer: Callable): - """Impute missing property values. - - Args: - names (list): - List of property names to impute. - imputer (Callable): - imputer object implementing the `fit_transform` - method from scikit-learn API. - """ - assert hasattr(imputer, "fit_transform"), ( - "Imputer object must implement the `fit_transform` " - "method from scikit-learn API." - ) - assert all( - name in self.df.columns for name in names - ), "Not all target properties in dataframe columns." - names_old = [f"{name}_before_impute" for name in names] - self.df[names_old] = self.df[names] - self.df[names] = imputer.fit_transform(self.df[names]) - logger.debug(f"Imputed missing values for properties: {names}") - logger.debug(f"Old values saved in: {names_old}") - def dropEmptySmiles(self): """Drop rows with empty SMILES from the data set.""" self.df.dropna(subset=[self.smilesCol], inplace=True) diff --git a/qsprpred/data/tables/pandas.py b/qsprpred/data/tables/pandas.py index 0e6721c4..af63e5ec 100644 --- a/qsprpred/data/tables/pandas.py +++ b/qsprpred/data/tables/pandas.py @@ -432,31 +432,45 @@ def apply( logger.debug(f"Result for chunk returned: {result!r}") yield result - def transform( - self, targets: list[str], transformer: Callable, add_as: list[str] | None = None - ): - """Transform the data frame (or its part) using a list of transformers. - - Each transformer is a function that takes the data frame (or a subset of it as - defined by the `targets` argument) and returns a transformed data frame. The - transformed data frame can then be added to the original data frame if `add_as` - is set to a `list` of new column names. If `add_as` is not `None`, the result of - the application of transformers must have the same number of rows as the - original data frame. + def transformProperties(self, names: list[str], transformer: Callable): + """Transform property values using a transformer function. Args: targets (list[str]): list of column names to transform. transformer (Callable): Function that transforms the data in target columns to a new representation. - add_as (list): If `True`, the transformed data is added to the original data - frame and the - names in this list are used as column names for the new data. """ - ret = self.df[targets] - ret = transformer(ret) - if add_as: - self.df[add_as] = ret - return ret + assert all( + name in self.df.columns for name in names + ), "Not all properties in dataframe columns for transformation." + names_old = [f"{name}_before_transform" for name in names] + self.df[names_old] = self.df[names] + self.df[names] = transformer(self.df[names]) + logger.debug(f"Transformed properties in: {names}") + logger.debug(f"Old values saved in: {names_old}") + + def imputeProperties(self, names: list[str], imputer: Callable): + """Impute missing property values. + + Args: + names (list): + List of property names to impute. + imputer (Callable): + imputer object implementing the `fit_transform` + method from scikit-learn API. + """ + assert hasattr(imputer, "fit_transform"), ( + "Imputer object must implement the `fit_transform` " + "method from scikit-learn API." + ) + assert all( + name in self.df.columns for name in names + ), "Not all properties in dataframe columns for imputation." + names_old = [f"{name}_before_impute" for name in names] + self.df[names_old] = self.df[names] + self.df[names] = imputer.fit_transform(self.df[names]) + logger.debug(f"Imputed missing values for properties: {names}") + logger.debug(f"Old values saved in: {names_old}") def filter(self, table_filters: list[Callable]): """Filter the data frame using a list of filters. diff --git a/qsprpred/data/tables/qspr.py b/qsprpred/data/tables/qspr.py index f1b82311..39a5ffb4 100644 --- a/qsprpred/data/tables/qspr.py +++ b/qsprpred/data/tables/qspr.py @@ -1059,12 +1059,18 @@ def dropEmptyProperties(self, names: list[str]): super().dropEmptyProperties(names) self.restoreTrainingData() - def transform( - self, targets: list[str], transformer: Callable, add_as: list[str] | None = None - ): - super().transform(targets, transformer, add_as) - if add_as is None and (set(targets) & set(self.targetPropertyNames)): - self.restoreTrainingData() + def transformProperties(self, targets: list[str], transformer: Callable): + """Transform the target properties using the given transformer. + + Args: + targets (list[str]): list of target properties names to transform + transformer (Callable): transformer function + add_as (list[str] | None, optional): list of names to add the transformed + target properties as. If `None`, the original target properties will be + overwritten. Defaults to `None`. + """ + super().transformProperties(targets, transformer) + self.restoreTrainingData() def imputeProperties(self, names: list[str], imputer: Callable): super().imputeProperties(names, imputer) @@ -1099,10 +1105,7 @@ def setTargetProperty(self, prop: TargetProperty | dict, drop_empty: bool = True self.imputeProperties([prop.name], prop.imputer) # transform the property if prop.transformer is not None: - self.transform( - [prop.name], - prop.transformer, - ) + self.transformProperties([prop.name], prop.transformer) # drop rows with missing smiles/no target property for any of # the target properties if drop_empty: diff --git a/qsprpred/data/tables/tests.py b/qsprpred/data/tables/tests.py index 184e6637..dff53479 100644 --- a/qsprpred/data/tables/tests.py +++ b/qsprpred/data/tables/tests.py @@ -688,6 +688,29 @@ def testImputation(self): self.assertEqual(self.dataset.df["z"].isna().sum(), 0) +class TestTargetTransformation(DataSetsPathMixIn, QSPRTestCase): + """Tests the transformation of target properties.""" + + def setUp(self): + super().setUp() + self.setUpPaths() + + def prop_transform(self, x): + return np.log10(x) + + def testTransformation(self): + dataset = self.createLargeTestDataSet( + target_props=[ + { + "name": "CL", + "task": TargetTasks.REGRESSION, + "transformer": prop_transform, + }, + ] + ) + self.assertTrue(all(dataset.df["CL"] == np.log10(dataset.df["CL_before_transform"]))) + + class TestApply(DataSetsPathMixIn, QSPRTestCase): """Tests the apply method of the data set.""" From 3e9a11d4cdebaf0ccb3ee590547b231990f855fe Mon Sep 17 00:00:00 2001 From: maagdenbehwvanden1 Date: Mon, 26 Feb 2024 12:57:34 +0100 Subject: [PATCH 10/29] move proptery related functions to pandas --- qsprpred/data/tables/mol.py | 47 ---------------------------------- qsprpred/data/tables/pandas.py | 42 ++++++++++++++++++++++-------- 2 files changed, 31 insertions(+), 58 deletions(-) diff --git a/qsprpred/data/tables/mol.py b/qsprpred/data/tables/mol.py index 8304c442..0b2fec21 100644 --- a/qsprpred/data/tables/mol.py +++ b/qsprpred/data/tables/mol.py @@ -683,10 +683,6 @@ def dropEmptySmiles(self): """Drop rows with empty SMILES from the data set.""" self.df.dropna(subset=[self.smilesCol], inplace=True) - def dropEmptyProperties(self, names: list[str]): - """Drop rows with empty target property value from the data set.""" - self.df.dropna(subset=names, how="all", inplace=True) - def attachDescriptors( self, calculator: DescriptorSet, @@ -851,49 +847,6 @@ def smiles(self) -> Generator[str, None, None]: """ return iter(self.df[self.smilesCol].values) - def getProperties(self): - """Get names of all properties/variables saved in the data frame (all columns). - - Returns: - list: list of property names. - """ - return self.df.columns.tolist() - - def hasProperty(self, name): - """Check whether a property is present in the data frame. - - Args: - name (str): Name of the property. - - Returns: - bool: Whether the property is present. - """ - return name in self.df.columns - - def addProperty(self, name: str, data: list): - """Add a property to the data frame. - - Args: - name (str): Name of the property. - data (list): list of property values. - """ - if isinstance(data, pd.Series): - if not np.array_equal(data.index.txt, self.df.index.txt): - logger.info( - f"Adding property '{name}' to data set might be introducing 'nan' " - "values due to index with pandas series. Make sure the index of " - "the data frame and the series match or convert series to list." - ) - self.df[name] = data - - def removeProperty(self, name): - """Remove a property from the data frame. - - Args: - name (str): Name of the property to delete. - """ - del self.df[name] - def addScaffolds( self, scaffolds: list[Scaffold], diff --git a/qsprpred/data/tables/pandas.py b/qsprpred/data/tables/pandas.py index af63e5ec..4be7474c 100644 --- a/qsprpred/data/tables/pandas.py +++ b/qsprpred/data/tables/pandas.py @@ -263,6 +263,17 @@ def _isInStore(self, name): f"_{name}.{self.storeFormat}" ) + def hasProperty(self, name): + """Check whether a property is present in the data frame. + + Args: + name (str): Name of the property. + + Returns: + bool: Whether the property is present. + """ + return name in self.df.columns + def getProperty(self, name: str) -> pd.Series: """Get property values from the data set. @@ -274,22 +285,23 @@ def getProperty(self, name: str) -> pd.Series: """ return self.df[name] - def getProperties(self): - """Get the properties of the data set. + def getProperties(self) -> list[str]: + """Get names of all properties/variables saved in the data frame (all columns). - Returns: list of properties of the data set. + Returns: + list: list of property names. """ - return self.df.columns + return self.df.columns.tolist() def addProperty(self, name: str, data: list): - """Add a property to the data set. + """Add a property to the data frame. Args: name (str): Name of the property. - data (list): List of values for the property. + data (list): list of property values. """ if isinstance(data, pd.Series): - if not self.df.index.equals(data.index): + if not np.array_equal(data.index.txt, self.df.index.txt): logger.info( f"Adding property '{name}' to data set might be introducing 'nan' " "values due to index with pandas series. Make sure the index of " @@ -297,13 +309,21 @@ def addProperty(self, name: str, data: list): ) self.df[name] = data - def removeProperty(self, name: str): - """Remove a property from the data set. + def removeProperty(self, name): + """Remove a property from the data frame. + + Args: + name (str): Name of the property to delete. + """ + del self.df[name] + + def dropEmptyProperties(self, names: list[str]): + """Drop rows with empty target property value from the data set. Args: - name (str): Name of the property to remove. + names (list[str]): list of property names to check for empty values. """ - self.df.drop(columns=[name], inplace=True) + self.df.dropna(subset=names, how="all", inplace=True) def getSubset(self, prefix: str): """Get a subset of the data set by providing a prefix for the column names or a From 6ac69ee480011485bb61b81646bba4cdcc4cc916 Mon Sep 17 00:00:00 2001 From: maagdenbehwvanden1 Date: Mon, 26 Feb 2024 14:35:16 +0100 Subject: [PATCH 11/29] fix bug in add property --- qsprpred/data/tables/pandas.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qsprpred/data/tables/pandas.py b/qsprpred/data/tables/pandas.py index 4be7474c..1681bc81 100644 --- a/qsprpred/data/tables/pandas.py +++ b/qsprpred/data/tables/pandas.py @@ -301,7 +301,7 @@ def addProperty(self, name: str, data: list): data (list): list of property values. """ if isinstance(data, pd.Series): - if not np.array_equal(data.index.txt, self.df.index.txt): + if not self.df.index.equals(data.index): logger.info( f"Adding property '{name}' to data set might be introducing 'nan' " "values due to index with pandas series. Make sure the index of " From 4f481e001d0422d12d44088021d30e180aee134c Mon Sep 17 00:00:00 2001 From: maagdenbehwvanden1 Date: Mon, 26 Feb 2024 14:44:30 +0100 Subject: [PATCH 12/29] update changelog --- CHANGELOG.md | 142 +++------------------------------------------------ 1 file changed, 7 insertions(+), 135 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e50367f..383a4b00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,146 +1,18 @@ # Change Log -From v2.1.1 to v3.0.0 +From v3.0.0 to v3.0.1 ## Fixes - -- Fixed random seeds to give reproducible results. Each dataset is initialized with a - single random state (either from the constructor or a random number generator) which - is used in all subsequent random operations. Each model is initialized with a single - random state as well: it uses the random state from the dataset, unless it's overriden - in the constructor. When a dataset is saved to a file so is its random state, which is - used by the dataset when the dataset is reloaded. -- fixed error with serialization of the `DNNModel.params` attribute, when no parameters - are set. -- Fix bug with saving predictions from classification model - when `ModelAssessor.useProba` set to `False`. -- Add missing implementation of `QSPRDataset.removeProperty` -- Improved behavior of the Papyrus data source (does not attempt to connect to the - internet if the data set already exists). -- It is now possible to define new descriptor sets outside the package without errors. -- Basic consistency of models is also checked in the unit test suite, including in - the `qsprpred.extra` package. -- Fixed a problem with feature standardizer being retrained on prediction data when a - prediction from SMILES was invoked. This affected all versions of the package higher - or equal to `v2.1.0`. -- Fixes to the `fromMolTable` method in various data set implementations, in particular - in copying of the feature standardizer and other settings. -- Fixed not working `cluster` split and `--imputation` from `data_CLI.py`. -- Fixed a problem with `ProteinDescriptorSet.getDescriptors` returning descriptors in - wrong order with `Pandas Date: Mon, 4 Mar 2024 16:11:02 +0100 Subject: [PATCH 13/29] correct calls to descriptor check --- qsprpred/data/tables/base.py | 1 - qsprpred/data/tables/qspr.py | 10 +++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/qsprpred/data/tables/base.py b/qsprpred/data/tables/base.py index a604aefb..6c36f127 100644 --- a/qsprpred/data/tables/base.py +++ b/qsprpred/data/tables/base.py @@ -139,7 +139,6 @@ def getDescriptorNames(self) -> list[str]: a `list` of descriptor names """ - @property @abstractmethod def hasDescriptors(self): """Indicates if the dataset has descriptors.""" diff --git a/qsprpred/data/tables/qspr.py b/qsprpred/data/tables/qspr.py index 39a5ffb4..beeae137 100644 --- a/qsprpred/data/tables/qspr.py +++ b/qsprpred/data/tables/qspr.py @@ -274,7 +274,7 @@ def getFeatureNames(self) -> list[str]: Returns: list[str]: list of feature names """ - if not self.hasDescriptors: + if not self.hasDescriptors(): return [] features = [] for ds in self.descriptors: @@ -627,7 +627,7 @@ def loadDescriptorsToSplits( Raises: ValueError: if no descriptors are available """ - if not self.hasDescriptors: + if not self.hasDescriptors(): raise ValueError( "No descriptors available. Cannot load descriptors to splits." ) @@ -684,7 +684,7 @@ def featurizeSplits(self, shuffle: bool = True, random_state: Optional[int] = No shuffle (bool): whether to shuffle the training and test sets random_state (int): random state for shuffling """ - if self.hasDescriptors and self.hasFeatures: + if self.hasDescriptors() and self.hasFeatures: self.loadDescriptorsToSplits( shuffle=shuffle, random_state=random_state or self.randomState ) @@ -876,9 +876,9 @@ def prepareDataset( if split is not None: self.split(split) # apply feature filters on training set - if feature_filters and self.hasDescriptors: + if feature_filters and self.hasDescriptors(): self.filterFeatures(feature_filters) - elif not self.hasDescriptors: + elif not self.hasDescriptors(): logger.warning("No descriptors present, feature filters will be skipped.") # set feature standardizers if feature_standardizer: From 1619e018c5eca44980459102780da5493fefe81e Mon Sep 17 00:00:00 2001 From: martin-sicho Date: Mon, 4 Mar 2024 18:03:30 +0100 Subject: [PATCH 14/29] make sure splits are populated with descriptors if present --- qsprpred/data/tables/qspr.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/qsprpred/data/tables/qspr.py b/qsprpred/data/tables/qspr.py index beeae137..afa2814b 100644 --- a/qsprpred/data/tables/qspr.py +++ b/qsprpred/data/tables/qspr.py @@ -478,6 +478,8 @@ def fromMolTable( **kwargs, ) ds.descriptors = mol_table.descriptors + ds.featureNames = mol_table.getDescriptorNames() + ds.loadDescriptorsToSplits() return ds def filter(self, table_filters: list[Callable]): @@ -627,10 +629,6 @@ def loadDescriptorsToSplits( Raises: ValueError: if no descriptors are available """ - if not self.hasDescriptors(): - raise ValueError( - "No descriptors available. Cannot load descriptors to splits." - ) descriptors = self.getDescriptors() if self.X_ind is not None and self.y_ind is not None: self.X = descriptors.loc[self.X.index, :] From 6cb3cf164c00b55e5a9a60e5d45a04b872a628cc Mon Sep 17 00:00:00 2001 From: martin-sicho Date: Tue, 5 Mar 2024 12:25:28 +0100 Subject: [PATCH 15/29] update CHANGELOG.md --- CHANGELOG.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 383a4b00..7d5ee55f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,20 @@ # Change Log -From v3.0.0 to v3.0.1 +From v3.0.1 to v3.0.2 ## Fixes -- Fixed a bug in `QSPRDataset` where property transformations were not applied. + +- Fixed a bug with incorrect checking of whether a data set contains descriptors or not. ## Changes -- renamed `PandasDataTable.transform` to `PandasDataTable.transformProperties` -- moved `imputeProperties`, `dropEmptyProperties` and `hasProperty` from `MoleculeTable` - to `PandasDataTable`. -- removed `getProperties`, `addProperty`, `removeProperty`, now use `PandasDataTable` - methods directly. +- If a `MoleculeTable` contains descriptors and `QSPRDataset.fromMolTable` is called the + descriptors are now automatically loaded as features of the created data set. ## New Features +None. + ## Removed Features + +None. From 2df1f15ad629323e36156c2b613b982506060ec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20=C5=A0=C3=ADcho?= Date: Thu, 7 Mar 2024 21:25:57 +0100 Subject: [PATCH 16/29] fix documentation link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4f9c503b..aa332dd9 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ custom implementation of the `MSAProvider` class will have to be made. After installation, you will have access to various command line features and you can use the Python API directly ( -see [Documentation](https://cddleiden.github.io/QSPRPred/docs/)). For a quick start, you +see [Documentation](https://cddleiden.github.io/QSPRpred/docs/)). For a quick start, you can also check out the [Jupyter notebook tutorials](./tutorials/README.md), which document the use of the Python API to build different types of models. The tutorials as well as the documentation are still work in progress, and we will be happy for any From 79a4c24f63739b534aa6983fa6108353b5d570f9 Mon Sep 17 00:00:00 2001 From: Helle van den Maagdenberg Date: Sun, 10 Mar 2024 17:50:09 +0100 Subject: [PATCH 17/29] fix bug with features unordered and standardizer refit for applicability domain --- qsprpred/models/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qsprpred/models/models.py b/qsprpred/models/models.py index 169bbd1f..85d78251 100644 --- a/qsprpred/models/models.py +++ b/qsprpred/models/models.py @@ -562,7 +562,7 @@ def predictMols( # return predictions and if mols are within applicability domain if requested if hasattr(self, "applicabilityDomain") and use_applicability_domain: in_domain = self.applicabilityDomain.contains( - dataset.getFeatures(concat=True) + dataset.getFeatures(concat=True, ordered=True, refit_standardizer=False) ) in_domain = self.handleInvalidsInPredictions(mols, in_domain, failed_mask) return predictions, in_domain.values From 4be97eb540f7a887a7effda3044853fcf669c620 Mon Sep 17 00:00:00 2001 From: Helle van den Maagdenberg Date: Sun, 10 Mar 2024 17:50:09 +0100 Subject: [PATCH 18/29] fix bug with features unordered and standardizer refit for applicability domain --- qsprpred/models/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qsprpred/models/models.py b/qsprpred/models/models.py index 169bbd1f..85d78251 100644 --- a/qsprpred/models/models.py +++ b/qsprpred/models/models.py @@ -562,7 +562,7 @@ def predictMols( # return predictions and if mols are within applicability domain if requested if hasattr(self, "applicabilityDomain") and use_applicability_domain: in_domain = self.applicabilityDomain.contains( - dataset.getFeatures(concat=True) + dataset.getFeatures(concat=True, ordered=True, refit_standardizer=False) ) in_domain = self.handleInvalidsInPredictions(mols, in_domain, failed_mask) return predictions, in_domain.values From f6689f7183c841e7e816c4918a390c6cff52f763 Mon Sep 17 00:00:00 2001 From: Helle van den Maagdenberg Date: Sun, 10 Mar 2024 17:51:59 +0100 Subject: [PATCH 19/29] Revert "fix bug with features unordered and standardizer refit for applicability domain" This reverts commit 79a4c24f63739b534aa6983fa6108353b5d570f9. --- qsprpred/models/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qsprpred/models/models.py b/qsprpred/models/models.py index 85d78251..169bbd1f 100644 --- a/qsprpred/models/models.py +++ b/qsprpred/models/models.py @@ -562,7 +562,7 @@ def predictMols( # return predictions and if mols are within applicability domain if requested if hasattr(self, "applicabilityDomain") and use_applicability_domain: in_domain = self.applicabilityDomain.contains( - dataset.getFeatures(concat=True, ordered=True, refit_standardizer=False) + dataset.getFeatures(concat=True) ) in_domain = self.handleInvalidsInPredictions(mols, in_domain, failed_mask) return predictions, in_domain.values From 4b1ea333e7d4be3c4dde780f8409671bdad0cd08 Mon Sep 17 00:00:00 2001 From: Helle van den Maagdenberg Date: Mon, 11 Mar 2024 13:28:14 +0100 Subject: [PATCH 20/29] add unit test for preds with ap --- qsprpred/data/processing/tests.py | 4 +- qsprpred/models/tests.py | 152 +++++++++++++++++++++--------- 2 files changed, 111 insertions(+), 45 deletions(-) diff --git a/qsprpred/data/processing/tests.py b/qsprpred/data/processing/tests.py index 536c3898..078cd626 100644 --- a/qsprpred/data/processing/tests.py +++ b/qsprpred/data/processing/tests.py @@ -287,9 +287,7 @@ def setUp(self): def testApplicabilityDomain(self): """Test the applicability domain fitting, transforming and serialization.""" ad = MLChemADWrapper( - KNNApplicabilityDomain( - dist="rogerstanimoto", scaling=None, hard_threshold=0.75 - ) + KNNApplicabilityDomain(dist="jaccard", scaling=None, alpha=0.95) ) ad.fit(self.dataset.X) self.assertIsInstance(ad.contains(self.dataset.X), pd.DataFrame) diff --git a/qsprpred/models/tests.py b/qsprpred/models/tests.py index 245aea63..b0053c42 100644 --- a/qsprpred/models/tests.py +++ b/qsprpred/models/tests.py @@ -5,6 +5,7 @@ from unittest import TestCase import numpy as np +from mlchemad.applicability_domains import KNNApplicabilityDomain from parameterized import parameterized from sklearn.cross_decomposition import PLSRegression from sklearn.ensemble import RandomForestClassifier, RandomForestRegressor @@ -13,35 +14,31 @@ accuracy_score, explained_variance_score, log_loss, - top_k_accuracy_score, + make_scorer, mean_squared_error, roc_auc_score, + top_k_accuracy_score, ) -from sklearn.metrics import make_scorer from sklearn.naive_bayes import GaussianNB from sklearn.neighbors import KNeighborsClassifier, KNeighborsRegressor from sklearn.svm import SVC, SVR from xgboost import XGBClassifier, XGBRegressor -from .assessment.classification import create_metrics_summary -from .assessment.regression import create_correlation_summary +from ..data.processing.applicability_domain import MLChemADWrapper from ..models.early_stopping import EarlyStopping, EarlyStoppingMode, early_stopping from ..models.metrics import SklearnMetrics -from ..models.monitors import ( - BaseMonitor, - FileMonitor, - ListMonitor, -) +from ..models.monitors import BaseMonitor, FileMonitor, ListMonitor from ..models.scikit_learn import SklearnModel from ..tasks import TargetTasks from ..utils.testing.base import QSPRTestCase from ..utils.testing.check_mixins import ModelCheckMixIn, MonitorsCheckMixIn from ..utils.testing.path_mixins import ModelDataSetsPathMixIn +from .assessment.classification import create_metrics_summary +from .assessment.regression import create_correlation_summary class SklearnBaseModelTestCase(ModelDataSetsPathMixIn, ModelCheckMixIn, QSPRTestCase): """This class holds the tests for the SklearnModel class.""" - def setUp(self): super().setUp() self.setUpPaths() @@ -78,17 +75,14 @@ def getModel( class TestSklearnRegression(SklearnBaseModelTestCase): """Test the SklearnModel class for regression models.""" - @parameterized.expand( [ (alg_name, TargetTasks.REGRESSION, alg_name, alg, random_state) for alg, alg_name in ( (RandomForestRegressor, "RFR"), (XGBRegressor, "XGBR"), - ) - for random_state in ([None], [1, 42], [42, 42]) - ] - + [ + ) for random_state in ([None], [1, 42], [42, 42]) + ] + [ (alg_name, TargetTasks.REGRESSION, alg_name, alg, [None]) for alg, alg_name in ( (PLSRegression, "PLSR"), @@ -105,7 +99,10 @@ def testRegressionBasicFit(self, _, task, model_name, model_class, random_state) parameters = None # initialize dataset dataset = self.createLargeTestDataSet( - target_props=[{"name": "CL", "task": task}], + target_props=[{ + "name": "CL", + "task": task + }], preparation_settings=self.getDefaultPrep(), ) # initialize model for training from class @@ -149,7 +146,10 @@ def testPLSRegressionSummaryWithSeed(self): model_class = PLSRegression parameters = None dataset = self.createLargeTestDataSet( - target_props=[{"name": "CL", "task": task}], + target_props=[{ + "name": "CL", + "task": task + }], preparation_settings=self.getDefaultPrep(), ) model = self.getModel( @@ -177,16 +177,14 @@ def testPLSRegressionSummaryWithSeed(self): class TestSklearnRegressionMultiTask(SklearnBaseModelTestCase): """Test the SklearnModel class for multi-task regression models.""" - @parameterized.expand( [ (alg_name, alg_name, alg, random_state) - for alg, alg_name in ((RandomForestRegressor, "RFR"),) + for alg, alg_name in ((RandomForestRegressor, "RFR"), ) for random_state in ([None], [1, 42], [42, 42]) - ] - + [ + ] + [ (alg_name, alg_name, alg, [None]) - for alg, alg_name in ((KNeighborsRegressor, "KNNR"),) + for alg, alg_name in ((KNeighborsRegressor, "KNNR"), ) ] ) def testRegressionMultiTaskFit(self, _, model_name, model_class, random_state): @@ -246,13 +244,20 @@ def testRegressionMultiTaskFit(self, _, model_name, model_class, random_state): class TestSklearnSerialization(SklearnBaseModelTestCase): def testJSON(self): dataset = self.createLargeTestDataSet( - target_props=[{"name": "CL", "task": TargetTasks.SINGLECLASS, "th": [6.5]}], + target_props=[{ + "name": "CL", + "task": TargetTasks.SINGLECLASS, + "th": [6.5] + }], preparation_settings=self.getDefaultPrep(), ) model = self.getModel( name="TestSerialization", alg=RandomForestClassifier, - parameters={"n_jobs": self.nCPU, "n_estimators": 10}, + parameters={ + "n_jobs": self.nCPU, + "n_estimators": 10 + }, random_state=42, ) model.save() @@ -271,28 +276,23 @@ def testJSON(self): class TestSklearnClassification(SklearnBaseModelTestCase): """Test the SklearnModel class for classification models.""" - @parameterized.expand( [ (f"{alg_name}_{task}", task, th, alg_name, alg, random_state) for alg, alg_name in ( (RandomForestClassifier, "RFC"), (XGBClassifier, "XGBC"), - ) - for task, th in ( + ) for task, th in ( (TargetTasks.SINGLECLASS, [6.5]), (TargetTasks.MULTICLASS, [0, 2, 10, 1100]), - ) - for random_state in ([None], [1, 42], [42, 42]) - ] - + [ + ) for random_state in ([None], [1, 42], [42, 42]) + ] + [ (f"{alg_name}_{task}", task, th, alg_name, alg, [None]) for alg, alg_name in ( (SVC, "SVC"), (KNeighborsClassifier, "KNNC"), (GaussianNB, "NB"), - ) - for task, th in ( + ) for task, th in ( (TargetTasks.SINGLECLASS, [6.5]), (TargetTasks.MULTICLASS, [0, 2, 10, 1100]), ) @@ -317,7 +317,11 @@ def testClassificationBasicFit( parameters = {"subsample": 0.3} # initialize dataset dataset = self.createLargeTestDataSet( - target_props=[{"name": "CL", "task": task, "th": th}], + target_props=[{ + "name": "CL", + "task": task, + "th": th + }], preparation_settings=self.getDefaultPrep(), ) # test classifier @@ -361,7 +365,11 @@ def testRandomForestClassifierFitWithSeed(self): } # initialize dataset dataset = self.createLargeTestDataSet( - target_props=[{"name": "CL", "task": TargetTasks.SINGLECLASS, "th": [6.5]}], + target_props=[{ + "name": "CL", + "task": TargetTasks.SINGLECLASS, + "th": [6.5] + }], preparation_settings=self.getDefaultPrep(), ) # test classifier @@ -391,16 +399,14 @@ def testRandomForestClassifierFitWithSeed(self): class TestSklearnClassificationMultiTask(SklearnBaseModelTestCase): """Test the SklearnModel class for multi-task classification models.""" - @parameterized.expand( [ (alg_name, alg_name, alg, random_state) - for alg, alg_name in ((RandomForestClassifier, "RFC"),) + for alg, alg_name in ((RandomForestClassifier, "RFC"), ) for random_state in ([None], [1, 42], [42, 42]) - ] - + [ + ] + [ (alg_name, alg_name, alg, [None]) - for alg, alg_name in ((KNeighborsClassifier, "KNNC"),) + for alg, alg_name in ((KNeighborsClassifier, "KNNC"), ) ] ) def testClassificationMultiTaskFit(self, _, model_name, model_class, random_state): @@ -470,7 +476,6 @@ def testClassificationMultiTaskFit(self, _, model_name, model_class, random_stat class TestMetrics(TestCase): """Test the SklearnMetrics from the metrics module.""" - def test_SklearnMetrics(self): """Test the sklearn metrics wrapper.""" @@ -648,7 +653,6 @@ def test_EarlyStopping(self): def test_early_stopping_decorator(self): """Test the early stopping decorator.""" - class test_class: def __init__(self, support=True): self.earlyStopping = EarlyStopping(EarlyStoppingMode.RECORDING) @@ -752,3 +756,67 @@ def testListMonitor(self): False, [BaseMonitor(), FileMonitor()], ) + + +class TestAttachedApplicabilityDomain(ModelDataSetsPathMixIn, QSPRTestCase): + def setUp(self): + super().setUp() + self.setUpPaths() + + def testAttachedApplicabilityDomain(self): + """Test the attached applicability domain class.""" + + # initialize test dataset with attached applicability domain + dataset = self.createLargeTestDataSet( + target_props=[{ + "name": "CL", + "task": "REGRESSION" + }], + preparation_settings={ + **self.getDefaultPrep(), + "applicability_domain": + KNNApplicabilityDomain(dist="euclidean", alpha=0.9, scaling=None), + }, + ) + # initialize model for training + model = SklearnModel( + base_dir=self.generatedModelsPath, + alg=RandomForestRegressor, + name="RFR_with_AD", + parameters={"n_jobs": self.nCPU}, + random_state=42, + ) + + model.fitDataset(dataset) + + # check if the applicability domain is attached to the model + self.assertTrue(hasattr(model, "applicabilityDomain")) + self.assertIsInstance(model.applicabilityDomain, MLChemADWrapper) + + # check if the applicability domain is saved and loaded correctly + model.save() + model2 = SklearnModel.fromFile(model.metaFile) + self.assertTrue(hasattr(model2, "applicabilityDomain")) + self.assertIsInstance(model2.applicabilityDomain, MLChemADWrapper) + + # make predictions with mlchemad ap on the dataset directly + comparison_ap = KNNApplicabilityDomain( + dist="euclidean", alpha=0.9, scaling=None + ) + features = dataset.getFeatures( + concat=True, ordered=True, refit_standardizer=False + ) + comparison_ap.fit(features) + ap_pred = comparison_ap.contains(features) + + # check if the applicability domain predictions from the dataset are equal to the ones from the model + _, ap_preds_model = model.predictMols( + dataset.df["SMILES"], use_applicability_domain=True + ) + self.assertTrue(np.array_equal(ap_pred.reshape(-1, 1), ap_preds_model)) + + # check if the applicability domain predictions arrays are equal after saving and loading + _, ap_preds_model2 = model2.predictMols( + dataset.df["SMILES"], use_applicability_domain=True + ) + self.assertTrue(np.array_equal(ap_pred.reshape(-1, 1), ap_preds_model2)) From 8113fd2aac87b3ff9c2763f4b896fe34bcf610e2 Mon Sep 17 00:00:00 2001 From: Helle van den Maagdenberg Date: Mon, 11 Mar 2024 13:30:31 +0100 Subject: [PATCH 21/29] update changelog --- CHANGELOG.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d5ee55f..07ea604c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,15 +1,15 @@ # Change Log -From v3.0.1 to v3.0.2 +From v3.0.2 to v3.0.1 ## Fixes -- Fixed a bug with incorrect checking of whether a data set contains descriptors or not. +- Fixed a bug where an attached standardizer would be refit when calling +`QSPRModel.predictMols` with `use_applicability_domain=True`. ## Changes -- If a `MoleculeTable` contains descriptors and `QSPRDataset.fromMolTable` is called the - descriptors are now automatically loaded as features of the created data set. +None. ## New Features From 2150d00de9038a6875b988494d31c7f87ae10c74 Mon Sep 17 00:00:00 2001 From: Helle van den Maagdenberg Date: Mon, 11 Mar 2024 13:30:51 +0100 Subject: [PATCH 22/29] fix typo in changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07ea604c..d1d5798a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change Log -From v3.0.2 to v3.0.1 +From v3.0.2 to v3.0.3 ## Fixes From 224f0359a937ae60f7b6c40cf8918a42cb3647d3 Mon Sep 17 00:00:00 2001 From: Helle van den Maagdenberg Date: Mon, 11 Mar 2024 14:07:50 +0100 Subject: [PATCH 23/29] rerun ap tutorial --- .../basics/data/applicability_domain.ipynb | 247 ++++++++---------- 1 file changed, 103 insertions(+), 144 deletions(-) diff --git a/tutorials/basics/data/applicability_domain.ipynb b/tutorials/basics/data/applicability_domain.ipynb index bde885c4..3d9c8e5a 100644 --- a/tutorials/basics/data/applicability_domain.ipynb +++ b/tutorials/basics/data/applicability_domain.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -23,18 +23,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Failed to find the pandas get_adjustment() function to patch\n", - "Failed to patch pandas - PandasTools will have limited functionality\n", - "qsprpred - WARNING - Existing data set found, but also found a data frame in store. Refusing to overwrite data. If you want to overwrite data in store, set overwrite=True.\n" - ] - }, { "data": { "text/html": [ @@ -61,8 +52,6 @@ " Year\n", " QSPRID\n", " pchembl_value_Mean_original\n", - " Split_IsOutlier\n", - " Split_IsTrain\n", " \n", " \n", " QSPRID\n", @@ -71,30 +60,24 @@ " \n", " \n", " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " ApplicabilityDomainTutorialDataset_0000\n", - " Cc1cc(C)n(-c2cc(NC(=O)CCN(C)C)nc(-c3ccc(C)o3)n...\n", + " Cc1nn(-c2cc(NC(=O)CCN(C)C)nc(-c3ccc(C)o3)n2)c(...\n", " 8.68\n", " 2008.0\n", " ApplicabilityDomainTutorialDataset_0000\n", " 8.68\n", - " False\n", - " True\n", " \n", " \n", " ApplicabilityDomainTutorialDataset_0001\n", - " Nc1c(C(=O)Nc2ccc([N+](=O)[O-])cc2)sc2nc3c(cc12...\n", + " Nc1c(C(=O)Nc2ccc([N+](=O)[O-])cc2)sc2c1cc1CCCC...\n", " 4.82\n", " 2010.0\n", " ApplicabilityDomainTutorialDataset_0001\n", " 4.82\n", - " False\n", - " True\n", " \n", " \n", " ApplicabilityDomainTutorialDataset_0002\n", @@ -103,18 +86,14 @@ " 2009.0\n", " ApplicabilityDomainTutorialDataset_0002\n", " 5.65\n", - " False\n", - " True\n", " \n", " \n", " ApplicabilityDomainTutorialDataset_0003\n", - " CNC(=O)C12CC1C(n1cnc3c(NCc4cccc(Cl)c4)nc(C#CCC...\n", + " CNC(=O)C12CC1C(n1cnc3c1nc(C#CCCCCC(=O)OC)nc3NC...\n", " 5.45\n", " 2009.0\n", " ApplicabilityDomainTutorialDataset_0003\n", " 5.45\n", - " False\n", - " True\n", " \n", " \n", " ApplicabilityDomainTutorialDataset_0004\n", @@ -123,8 +102,6 @@ " 2019.0\n", " ApplicabilityDomainTutorialDataset_0004\n", " 5.20\n", - " False\n", - " True\n", " \n", " \n", " ...\n", @@ -133,8 +110,6 @@ " ...\n", " ...\n", " ...\n", - " ...\n", - " ...\n", " \n", " \n", " ApplicabilityDomainTutorialDataset_4077\n", @@ -143,8 +118,6 @@ " 2018.0\n", " ApplicabilityDomainTutorialDataset_4077\n", " 7.09\n", - " False\n", - " False\n", " \n", " \n", " ApplicabilityDomainTutorialDataset_4078\n", @@ -153,18 +126,14 @@ " 2008.0\n", " ApplicabilityDomainTutorialDataset_4078\n", " 8.22\n", - " False\n", - " True\n", " \n", " \n", " ApplicabilityDomainTutorialDataset_4079\n", - " Nc1nc(CSc2nnc(N)s2)nc(Nc2ccc(F)cc2)n1\n", + " Nc1nc(Nc2ccc(F)cc2)nc(CSc2nnc(N)s2)n1\n", " 4.89\n", " 2010.0\n", " ApplicabilityDomainTutorialDataset_4079\n", " 4.89\n", - " True\n", - " False\n", " \n", " \n", " ApplicabilityDomainTutorialDataset_4080\n", @@ -173,8 +142,6 @@ " 2013.0\n", " ApplicabilityDomainTutorialDataset_4080\n", " 6.51\n", - " False\n", - " True\n", " \n", " \n", " ApplicabilityDomainTutorialDataset_4081\n", @@ -183,26 +150,24 @@ " 2014.0\n", " ApplicabilityDomainTutorialDataset_4081\n", " 7.35\n", - " False\n", - " False\n", " \n", " \n", "\n", - "

4082 rows × 7 columns

\n", + "

4082 rows × 5 columns

\n", "" ], "text/plain": [ " SMILES \\\n", "QSPRID \n", - "ApplicabilityDomainTutorialDataset_0000 Cc1cc(C)n(-c2cc(NC(=O)CCN(C)C)nc(-c3ccc(C)o3)n... \n", - "ApplicabilityDomainTutorialDataset_0001 Nc1c(C(=O)Nc2ccc([N+](=O)[O-])cc2)sc2nc3c(cc12... \n", + "ApplicabilityDomainTutorialDataset_0000 Cc1nn(-c2cc(NC(=O)CCN(C)C)nc(-c3ccc(C)o3)n2)c(... \n", + "ApplicabilityDomainTutorialDataset_0001 Nc1c(C(=O)Nc2ccc([N+](=O)[O-])cc2)sc2c1cc1CCCC... \n", "ApplicabilityDomainTutorialDataset_0002 O=C(Nc1nc2ncccc2n2c(=O)n(-c3ccccc3)nc12)c1ccccc1 \n", - "ApplicabilityDomainTutorialDataset_0003 CNC(=O)C12CC1C(n1cnc3c(NCc4cccc(Cl)c4)nc(C#CCC... \n", + "ApplicabilityDomainTutorialDataset_0003 CNC(=O)C12CC1C(n1cnc3c1nc(C#CCCCCC(=O)OC)nc3NC... \n", "ApplicabilityDomainTutorialDataset_0004 CCCn1c(=O)c2c(nc3cc(OC)ccn32)n(CCCNC(=O)c2ccc(... \n", "... ... \n", "ApplicabilityDomainTutorialDataset_4077 CNc1ncc(C(=O)NCc2ccc(OC)cc2)c2nc(-c3ccco3)nn12 \n", "ApplicabilityDomainTutorialDataset_4078 Nc1nc(-c2ccco2)c2ncn(C(=O)NCCc3ccccc3)c2n1 \n", - "ApplicabilityDomainTutorialDataset_4079 Nc1nc(CSc2nnc(N)s2)nc(Nc2ccc(F)cc2)n1 \n", + "ApplicabilityDomainTutorialDataset_4079 Nc1nc(Nc2ccc(F)cc2)nc(CSc2nnc(N)s2)n1 \n", "ApplicabilityDomainTutorialDataset_4080 CCCOc1ccc(C=Cc2cc3c(c(=O)n(C)c(=O)n3C)n2C)cc1 \n", "ApplicabilityDomainTutorialDataset_4081 CCOC(=O)c1cnc(NCC(C)C)n2nc(-c3ccco3)nc12 \n", "\n", @@ -234,38 +199,24 @@ "ApplicabilityDomainTutorialDataset_4080 ApplicabilityDomainTutorialDataset_4080 \n", "ApplicabilityDomainTutorialDataset_4081 ApplicabilityDomainTutorialDataset_4081 \n", "\n", - " pchembl_value_Mean_original \\\n", - "QSPRID \n", - "ApplicabilityDomainTutorialDataset_0000 8.68 \n", - "ApplicabilityDomainTutorialDataset_0001 4.82 \n", - "ApplicabilityDomainTutorialDataset_0002 5.65 \n", - "ApplicabilityDomainTutorialDataset_0003 5.45 \n", - "ApplicabilityDomainTutorialDataset_0004 5.20 \n", - "... ... \n", - "ApplicabilityDomainTutorialDataset_4077 7.09 \n", - "ApplicabilityDomainTutorialDataset_4078 8.22 \n", - "ApplicabilityDomainTutorialDataset_4079 4.89 \n", - "ApplicabilityDomainTutorialDataset_4080 6.51 \n", - "ApplicabilityDomainTutorialDataset_4081 7.35 \n", - "\n", - " Split_IsOutlier Split_IsTrain \n", - "QSPRID \n", - "ApplicabilityDomainTutorialDataset_0000 False True \n", - "ApplicabilityDomainTutorialDataset_0001 False True \n", - "ApplicabilityDomainTutorialDataset_0002 False True \n", - "ApplicabilityDomainTutorialDataset_0003 False True \n", - "ApplicabilityDomainTutorialDataset_0004 False True \n", - "... ... ... \n", - "ApplicabilityDomainTutorialDataset_4077 False False \n", - "ApplicabilityDomainTutorialDataset_4078 False True \n", - "ApplicabilityDomainTutorialDataset_4079 True False \n", - "ApplicabilityDomainTutorialDataset_4080 False True \n", - "ApplicabilityDomainTutorialDataset_4081 False False \n", + " pchembl_value_Mean_original \n", + "QSPRID \n", + "ApplicabilityDomainTutorialDataset_0000 8.68 \n", + "ApplicabilityDomainTutorialDataset_0001 4.82 \n", + "ApplicabilityDomainTutorialDataset_0002 5.65 \n", + "ApplicabilityDomainTutorialDataset_0003 5.45 \n", + "ApplicabilityDomainTutorialDataset_0004 5.20 \n", + "... ... \n", + "ApplicabilityDomainTutorialDataset_4077 7.09 \n", + "ApplicabilityDomainTutorialDataset_4078 8.22 \n", + "ApplicabilityDomainTutorialDataset_4079 4.89 \n", + "ApplicabilityDomainTutorialDataset_4080 6.51 \n", + "ApplicabilityDomainTutorialDataset_4081 7.35 \n", "\n", - "[4082 rows x 7 columns]" + "[4082 rows x 5 columns]" ] }, - "execution_count": 3, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -306,14 +257,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Number of removed compounds: 114\n" + "Number of removed compounds: 274\n" ] }, { @@ -342,8 +293,8 @@ " Year\n", " QSPRID\n", " pchembl_value_Mean_original\n", - " Split_IsTrain\n", " Split_IsOutlier\n", + " Split_IsTrain\n", " \n", " \n", " QSPRID\n", @@ -358,14 +309,44 @@ " \n", " \n", " \n", + " ApplicabilityDomainTutorialDataset_0006\n", + " Nc1nc(-c2ccccc2)cn2cc(-c3ccco3)nc12\n", + " 6.28\n", + " 2017.0\n", + " ApplicabilityDomainTutorialDataset_0006\n", + " 6.28\n", + " True\n", + " False\n", + " \n", + " \n", + " ApplicabilityDomainTutorialDataset_0017\n", + " Cn1c(=O)c2nc(-c3ccc(OCCCN4CCN(Cc5ccccc5Cl)CC4)...\n", + " 9.92\n", + " 2014.0\n", + " ApplicabilityDomainTutorialDataset_0017\n", + " 9.92\n", + " True\n", + " False\n", + " \n", + " \n", " ApplicabilityDomainTutorialDataset_0025\n", " CN(C)c1ccc(Nc2nc(NC3CCCCC3)c3[nH]cnc3n2)cc1\n", " 5.21\n", " 2005.0\n", " ApplicabilityDomainTutorialDataset_0025\n", " 5.21\n", + " True\n", " False\n", + " \n", + " \n", + " ApplicabilityDomainTutorialDataset_0051\n", + " Nc1nc(C(=O)NCc2ccccc2Cl)nc(-c2ccco2)n1\n", + " 8.31\n", + " 2009.0\n", + " ApplicabilityDomainTutorialDataset_0051\n", + " 8.31\n", " True\n", + " False\n", " \n", " \n", " ApplicabilityDomainTutorialDataset_0056\n", @@ -374,38 +355,8 @@ " 2017.0\n", " ApplicabilityDomainTutorialDataset_0056\n", " 5.39\n", - " False\n", - " True\n", - " \n", - " \n", - " ApplicabilityDomainTutorialDataset_0076\n", - " O=C(NC1CC1)C12CC1C(n1cnc3c(NC4CC5CCC4C5)nc(Cl)...\n", - " 6.28\n", - " 2019.0\n", - " ApplicabilityDomainTutorialDataset_0076\n", - " 6.28\n", - " False\n", - " True\n", - " \n", - " \n", - " ApplicabilityDomainTutorialDataset_0080\n", - " CCn1c(=O)c2nc(C3CCCC3)[nH]c2n(CC)c1=O\n", - " 6.80\n", - " 2019.0\n", - " ApplicabilityDomainTutorialDataset_0080\n", - " 6.80\n", - " False\n", " True\n", - " \n", - " \n", - " ApplicabilityDomainTutorialDataset_0124\n", - " Nc1ncnc2c1ncn2C1C(O)C(O)C2(CO)CC12\n", - " 4.65\n", - " 2000.0\n", - " ApplicabilityDomainTutorialDataset_0124\n", - " 4.65\n", " False\n", - " True\n", " \n", " \n", "\n", @@ -414,46 +365,46 @@ "text/plain": [ " SMILES \\\n", "QSPRID \n", + "ApplicabilityDomainTutorialDataset_0006 Nc1nc(-c2ccccc2)cn2cc(-c3ccco3)nc12 \n", + "ApplicabilityDomainTutorialDataset_0017 Cn1c(=O)c2nc(-c3ccc(OCCCN4CCN(Cc5ccccc5Cl)CC4)... \n", "ApplicabilityDomainTutorialDataset_0025 CN(C)c1ccc(Nc2nc(NC3CCCCC3)c3[nH]cnc3n2)cc1 \n", + "ApplicabilityDomainTutorialDataset_0051 Nc1nc(C(=O)NCc2ccccc2Cl)nc(-c2ccco2)n1 \n", "ApplicabilityDomainTutorialDataset_0056 O=c1[nH]c(-c2cccc(O)c2)cn2c(=O)n(-c3ccccc3)nc12 \n", - "ApplicabilityDomainTutorialDataset_0076 O=C(NC1CC1)C12CC1C(n1cnc3c(NC4CC5CCC4C5)nc(Cl)... \n", - "ApplicabilityDomainTutorialDataset_0080 CCn1c(=O)c2nc(C3CCCC3)[nH]c2n(CC)c1=O \n", - "ApplicabilityDomainTutorialDataset_0124 Nc1ncnc2c1ncn2C1C(O)C(O)C2(CO)CC12 \n", "\n", " pchembl_value_Mean Year \\\n", "QSPRID \n", + "ApplicabilityDomainTutorialDataset_0006 6.28 2017.0 \n", + "ApplicabilityDomainTutorialDataset_0017 9.92 2014.0 \n", "ApplicabilityDomainTutorialDataset_0025 5.21 2005.0 \n", + "ApplicabilityDomainTutorialDataset_0051 8.31 2009.0 \n", "ApplicabilityDomainTutorialDataset_0056 5.39 2017.0 \n", - "ApplicabilityDomainTutorialDataset_0076 6.28 2019.0 \n", - "ApplicabilityDomainTutorialDataset_0080 6.80 2019.0 \n", - "ApplicabilityDomainTutorialDataset_0124 4.65 2000.0 \n", "\n", " QSPRID \\\n", "QSPRID \n", + "ApplicabilityDomainTutorialDataset_0006 ApplicabilityDomainTutorialDataset_0006 \n", + "ApplicabilityDomainTutorialDataset_0017 ApplicabilityDomainTutorialDataset_0017 \n", "ApplicabilityDomainTutorialDataset_0025 ApplicabilityDomainTutorialDataset_0025 \n", + "ApplicabilityDomainTutorialDataset_0051 ApplicabilityDomainTutorialDataset_0051 \n", "ApplicabilityDomainTutorialDataset_0056 ApplicabilityDomainTutorialDataset_0056 \n", - "ApplicabilityDomainTutorialDataset_0076 ApplicabilityDomainTutorialDataset_0076 \n", - "ApplicabilityDomainTutorialDataset_0080 ApplicabilityDomainTutorialDataset_0080 \n", - "ApplicabilityDomainTutorialDataset_0124 ApplicabilityDomainTutorialDataset_0124 \n", "\n", " pchembl_value_Mean_original \\\n", "QSPRID \n", + "ApplicabilityDomainTutorialDataset_0006 6.28 \n", + "ApplicabilityDomainTutorialDataset_0017 9.92 \n", "ApplicabilityDomainTutorialDataset_0025 5.21 \n", + "ApplicabilityDomainTutorialDataset_0051 8.31 \n", "ApplicabilityDomainTutorialDataset_0056 5.39 \n", - "ApplicabilityDomainTutorialDataset_0076 6.28 \n", - "ApplicabilityDomainTutorialDataset_0080 6.80 \n", - "ApplicabilityDomainTutorialDataset_0124 4.65 \n", "\n", - " Split_IsTrain Split_IsOutlier \n", + " Split_IsOutlier Split_IsTrain \n", "QSPRID \n", - "ApplicabilityDomainTutorialDataset_0025 False True \n", - "ApplicabilityDomainTutorialDataset_0056 False True \n", - "ApplicabilityDomainTutorialDataset_0076 False True \n", - "ApplicabilityDomainTutorialDataset_0080 False True \n", - "ApplicabilityDomainTutorialDataset_0124 False True " + "ApplicabilityDomainTutorialDataset_0006 True False \n", + "ApplicabilityDomainTutorialDataset_0017 True False \n", + "ApplicabilityDomainTutorialDataset_0025 True False \n", + "ApplicabilityDomainTutorialDataset_0051 True False \n", + "ApplicabilityDomainTutorialDataset_0056 True False " ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -464,7 +415,7 @@ "from mlchemad.applicability_domains import KNNApplicabilityDomain\n", "\n", "# define applicability domain\n", - "applicability_domain = KNNApplicabilityDomain(scaling=None, dist=\"rogerstanimoto\")\n", + "applicability_domain = KNNApplicabilityDomain(scaling=None, dist=\"jaccard\", hard_threshold=0.3, k=1)\n", "\n", "# calculate compound features and split dataset into train and test\n", "dataset.prepareDataset(\n", @@ -494,7 +445,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -502,10 +453,10 @@ "output_type": "stream", "text": [ "Number of compounds in train set: 3265\n", - "Number of compounds in test set: 703\n", - "Total number of compounds in train and test: 3968\n", + "Number of compounds in test set: 543\n", + "Total number of compounds in train and test: 3808\n", "Total number of compounds in whole dataset: 4082\n", - "Number removed compounds: 114\n" + "Number removed compounds: 274\n" ] } ], @@ -535,7 +486,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -544,7 +495,7 @@ "(4082, 2048)" ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -562,7 +513,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -571,13 +522,13 @@ "" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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zceSlpYme3l5yfv27ZOfffZZJXipS22cPXu23LVr11KvGwwG2dnZWV62bJlyLjk5WdZqtfIvv/xSFVWsEAMHDpT/9a9/GZ0bPny4PGrUKFmWK66dYtiojBwcHPD29uann34iIyOD/Px8VqxYgV6vp127dgAcP36cVq1a4eTkpDyub9++pKamcvHixeqqern8/fffREdHo1Kp8PX1xcXFhf79+3PhwgWlTF1oJ0B8fDzjx4/n559/xsLCotj148eP88wzz2Bqaqqc69u3L6GhoSQlJVVlVStUSkoK9vb2ynFtb2dubi5nz56lV69eyjmVSkWvXr04fvx4NdasYqWkpAAov7uzZ8+Sl5dn1O6mTZvi5uZW69o9adIkBg4caNQWqFtt/P3332nfvj0vvvgier0eX19fvvvuO+V6REQEcXFxRm3V6XR07NixVrW1c+fOBAQEEBYWBkBwcDBHjx6lf//+QMW1UwQvZSRJEvv37ycwMBBra2vMzMz49NNP2b17N3Z2dgDExcUZvaEDynFcXFyV1/lxhIeHAzB//nzee+89tm/fjp2dHd27dycxMRGoG+2UZRl/f3/eeust2rdvX2KZutDOB129epUvvviCf//738q52t7O27dvU1BQUGIbakP9y8JgMDBt2jS6dOlCy5YtgcLfjampKba2tkZla1u7169fz99//83ixYuLXasrbYTCv63ffPMNXl5e7NmzhwkTJjBlyhTWrFkD3Pu/Vttfx3PmzOHll1+madOmaDQafH19mTZtGqNGjQIqrp1PfPAyZ84cJEl66Pfly5eRZZlJkyah1+s5cuQIp06dYujQoQwePJjY2NjqbsYjlbWdBoMBgHfffZcRI0bQrl07Vq9ejSRJbNy4sZpb8WhlbecXX3xBWloab7/9dnVX+bGUtZ33i46Opl+/frz44ouMHz++mmouPI5JkyZx4cIF1q9fX91VqVA3btxg6tSprFu3DjMzs+quTqUyGAy0bduWRYsW4evry5tvvsn48eP59ttvq7tqFerXX39l3bp1/O9//+Pvv/9mzZo1fPzxx0qQVlFMKvRutdCMGTPw9/d/aJlGjRpx4MABtm/fTlJSkrKd99dff82+fftYs2YNc+bMwdnZudgKh6JZ8c7OzpVS/7IqazuLArHmzZsr57VaLY0aNSIqKgqgTrTzwIEDHD9+vNg+G+3bt2fUqFGsWbMGZ2fnYqsaals7i8TExNCjRw86d+7MypUrjcrV5HaWRb169VCr1SW2oTbU/1EmT57M9u3bOXz4MK6ursp5Z2dncnNzSU5ONuqZqE3tPnv2LAkJCbRt21Y5V1BQwOHDh/nyyy/Zs2dPrW9jERcXF6O/qwDNmjVj8+bNwL3/a/Hx8bi4uChl4uPj8fHxqbJ6/lOzZs1Sel8AWrVqxfXr11m8eDFjxoypsHY+8cGLo6Mjjo6OjyyXmZkJFI6l30+lUim9FX5+fixcuJCEhAT0ej0A+/btw8bGptiLtqqVtZ3t2rVDq9USGhpK165dAcjLyyMyMhJ3d3egbrTz888/56OPPlKOY2Ji6Nu3Lxs2bKBjx45AYTvfffdd8vLy0Gg0QGE7vb29laHC6lLWdkJhj0uPHj2UXrQHX8M1uZ1lYWpqSrt27QgICFCW9BsMBgICApg8eXL1Vu4fkGWZ//znP2zdupVDhw7h6elpdL1du3ZoNBoCAgIYMWIEAKGhoURFReHn51cdVS63nj17cv78eaNzY8eOpWnTpsyePZuGDRvW+jYW6dKlS7Gl7mFhYcrfVU9PT5ydnQkICFDexFNTUzl58iQTJkyo6uo+tszMzGJ/Y9RqtfI+WWHtrIDJxU+EW7duyQ4ODvLw4cPloKAgOTQ0VJ45c6as0WjkoKAgWZbvLSHu06ePHBQUJO/evVt2dHSsdUuIp06dKjdo0EDes2ePfPnyZXncuHGyXq+XExMTZVmuO+28X0RERLHVRsnJybKTk5P82muvyRcuXJDXr18vW1hY1KolxDdv3pQbN24s9+zZU75586YcGxurfBepC+1cv369rNVq5R9//FEOCQmR33zzTdnW1tZoRVxtM2HCBFmn08mHDh0y+r1lZmYqZd566y3Zzc1NPnDggHzmzBnZz89P9vPzq8Za/3P3rzaS5brTxlOnTskmJibywoUL5StXrsjr1q2TLSws5LVr1ypllixZItva2sq//fabfO7cOXnIkCG1bqn0mDFj5AYNGihLpbds2SLXq1dP/u9//6uUqYh2iuClHE6fPi336dNHtre3l62treVOnTrJO3fuNCoTGRkp9+/fXzY3N5fr1asnz5gxQ87Ly6umGj+e3NxcecaMGbJer5etra3lXr16yRcuXDAqUxfaeb+SghdZluXg4GC5a9euslarlRs0aCAvWbKkeir4mFavXi0DJX7fr7a3U5Zl+YsvvpDd3NxkU1NT+emnn5ZPnDhR3VX6R0r7va1evVopk5WVJU+cOFG2s7OTLSws5GHDhhkFprXRg8FLXWrjH3/8Ibds2VLWarVy06ZN5ZUrVxpdNxgM8vvvvy87OTnJWq1W7tmzpxwaGlpNtX08qamp8tSpU2U3NzfZzMxMbtSokfzuu+8apWKoiHZKsnxf2jtBEARBEIQa7olfbSQIgiAIQu0ighdBEARBEGoVEbwIgiAIglCriOBFEARBEIRaRQQvgiAIgiDUKiJ4EQRBEAShVhHBiyAIgiAItYoIXgRBEARBqFVE8CIIgiAIQq0ighdBEARBEGoVEbwIgiAIglCriOBFEARBEIRa5f8DovQ17G2IjLYAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAGdCAYAAADaPpOnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydd3gU5dqH79ma3iskpNB7LwLSu4goggJWVCzoUdBjPd/xiN2joliOHQUUFLHRRKT3XkOoCSQEkkDKJtlk68z3x5JJNgUCJCSB987lJdPeeSbZnfnN8z5FUhRFQSAQCAQCgaCeoKltAwQCgUAgEAguBSFeBAKBQCAQ1CuEeBEIBAKBQFCvEOJFIBAIBAJBvUKIF4FAIBAIBPUKIV4EAoFAIBDUK4R4EQgEAoFAUK8Q4kUgEAgEAkG9QlfbBlwpsixz+vRpfH19kSSpts0RCAQCgUBQBRRFIT8/nwYNGqDRXJovpd6Ll9OnTxMdHV3bZggEAoFAILgMUlNTiYqKuqRj6r148fX1BVwX7+fnV8vWCAQCgUAgqAp5eXlER0erz/FLod6Ll+KpIj8/PyFeBAKBQCCoZ1xOyIcI2BUIBAKBQFCvEOJFIBAIBAJBvUKIF4FAIBAIBPUKIV4EAoFAIBDUK4R4EQgEAoFAUK8Q4kUgEAgEAkG9QogXgUAgEAgE9QohXgQCgUAgENQrhHgRCAQCgUBQrxDiRSAQCAQCQb1CiBeBQCAQCAT1inrf20gguNbYl7aPh75/iGaWZgRoArjtxtvo37d/bZslEAgEdQbheREI6hh3fH8HrYta00RpQogzhNVrVrNz587aNksgEAjqDEK8CAR1CLPZTKeiTjSkobpOi5YVK1awbt26WrRMIBAI6g5CvAgEdYgFCxbQjGbo0GHChAMHAFarlVVrV7E3cW8tWygQCAS1jxAvAkEdQZZlUlJSANjLXrazHV2psDRJlpj781x2799dWyYKBAJBnUCIF4GgjrB161YURQFgO9sJJBAZ2W0fH9mHP379g3379tWGiQKBQFAnEOJFIKgD7Nu3j61bt6rLEUTQjnZoKvqKKrB9+/araJ1AIBDULUSqtEBQy+zbt48lS5Zgs9nUdS1ogR59pcfo9ZVvuxjZ2dn89ddfWCwWmjRpQu/evS97LIFAIKgNhHgRCGqZY8eOuQkXgCY0QUFBQgJAURQkyfVvnU7HqFGjLutcsiwzZ84ccnNzATh58iSAEDACgaBeIcSLQFDLeHh4VLheQkLrcOBTUEC+jw+yzvV11Wg0qpC5VPLz81XhUsyqVas4dOgQI0eOJCIi4rLGrYjCwkLeffddNY7nkUceITw8vNrGFwgE1y8i5kUgqGUGDhxIfHw8XkYjfnl5eObng9NJw5QUHvr8cx795BMe/fRTumzeDIDNZisnQKqK3W4vt05RFNLS0pgzZw5//PEHhYWFV3I5KqWFC8Bnn31WLeMKBAKB8LwIBLWM0Wjk7rvvxrJ2LYYBA9DIMlmBgcgaDaFZWa59srNpuncjC26IoHtYdyIjIy/pHBaHhTvm3oHPSR+a0QwHDgopRIMGH3wAl6dk9+7dZGVlcd999122d6eY0sJFIBAIqhPheREI6ggeXbuiadcOgOCcHFW4FJOlLWAuc/nV+uslB+w+/sfj/HHyD/TosWJFhw4//PDGm1RS3fbNzMysNu+LQCAQ1ARCvAgEdQUvL/j1V7jvPpgwAdq2VTfZJFgbC06crDet51DaoSoN6XA4WLduHdZjVgwYOMABCikRJtL5Hzsl00leXl6VxuFcCiNGjHBbbt26NevXr2fz5s04nc4rHl8gEFy/SEo99+3m5eXh7++PyWTCz8+vts0RCKoPRYEHH2T57j9YHH6Oj7sDEhgw8HXLr7HmWzEYDAwYMICGDRuWO9xutzNjxgzMRWZkZHLJJYccIolUp4oAjnKUYE0wMd4xGI1G+vXrR+vWravtMhwOB1arlTlz5pCRkQFAfHw8EydORKMR708CwfXKlTy/RcyLQFBXkSRO/vvfLJ3jww/OuUA2ADdxE8cTj6u7mc1mJk+erAoBu93OokWLOHr0KEWWIjTnf4IJJoggNGhw4sSKlbOc5RCHuK3vbTzZ68krymSqDJ1Ox4YNG1ThApCUlMT/vvkfUx6cUq3nEggE1wfitUcgqKMU5eby9bdfEeQM4h7uYQADGMUo2tLWbb/c3Fy3GJXly5ezf/9+LBaLWicGXFNExRV7tWjJI49EXSK39rmVF258Aa1WW+3CpRitVltuXUZaBjO/m1kj5xMIBNc2wvMiENRFXn6Zvw4lom3lmr4JIIA+9Klw14CAALy8vNRlk8lUpVM082vGXd3uolOnTjUmWorp0aMHGzdtxGqxquu0aDl34hwvvvIiea3yeHXkqwR6BtaoHQKB4NpAeF4EgrrG7t3w3nvoTHmuuJcK8PDwQNJK2CQbuy27SUo5jv3FF6FzZ4JWrqzwGAUFBw51OS8vj7///pt33nmHJUuW1MilFKPX62ndrjUK7tejRYsRI8EHgxkzewwO2VHJCAKBQFCCEC8CQV3j2DHkwkIyIyKglEekuMN0YGAgVocVxalgUAwEm4KZ89VXfGyxsM7bmyGzZxOUk1NuWAkJXSXO1p07d5JVJjW7uhk5bCRmzOUEDOCqN5PuQ4oppUZtEAgE1wZCvAgEdY1Bg8jt2pW0qCi31Qajgbvvvpt27dqhOEoEgBEjGr0Xef7+bOzVi+yAAO6eNYvyUSYudLryAkZRFM6dO1edV1EOSZJ4+//exruJt1tqNri8QrJeJsgzqEZtEAgE1wZCvAgEdY3AQDy+/hq9LLut9jJ6ER8fT4MGDXBScZ0Um4cHpoAA7Ho9OpuNVq1aERkZiaenJz4+PjRv3py+ffuWK3Ln6elJo0aNauySitFoNPxz4j+JbB/JetZzilMoKNixM2LQCAI8AmrcBoFAUP8RAbsCQR3Eq00b4jp0IDExEXA99AcMGABAs2bNaNe2HVv2b0FGxogRD1xF5QKzs7Hp9fwxahRWgwFfX1/Gjh1bbvyuXbvy559/cuLECby9vRkxYgSenp5X5dq+3PklLyW+hAkTnngyNmAsnz/2OR76Ky+MJxAIrg9qvEhdWloazz33HMuWLaOwsJAmTZowa9YsunTpArjc1S+//DJffvklubm59OrVi//97380bdq0SuOLInWCa5kTJ05w4sQJWrRoUa7js8VmYdf6P9i0dBNmH38A9FYrslaL02BAp9Nxyy230KZNm9owvUISEhK45fdbOG4vqVMTr41n5+M7CQgIqD3DBALBVedKnt81Om2Uk5NDr1690Ov1LFu2jIMHD/Lee+8RGFiSDvnOO+8wc+ZMPvvsM7Zu3Yq3tzdDhw7FYrHUpGkCQZ1EURS3zs+xMTH069evnHAB8DB4IG9IxOwbABoNaDQ4DQY65+cTGxtL//7964xw2XJqCyO+G8GIhSMw2d1TuU85T9Hyo5aMnz1eNHMUCARVokanjd5++22io6OZNWuWui4uLk79t6IofPDBB/zrX//illtuAWD27NmEh4fz22+/ceedd9akeQJBneLUqVN89913OBwOfPPzuWPZMhra7TBmDLz5ZoXHHDYYwGZTl2WtFs9u3bj3rruultkXJSEzgZu/vxmtRUtveqNFywEOcJCDANiwkS6nMz95Po1+acTbY96uZYsFAkFdp0Y9L3/88QddunRh7NixhIWF0bFjR7788kt1e3JyMunp6QwaNEhd5+/vT/fu3dm8eXOFY1qtVvLy8tz+EwiuBebNm4fD4apzku/ry/p27eDoUfjgA1i4sMJjItu3d68Foyg07tv3KlhbdX5K+Amzxcw4xtGWtrSiFTdzM0MZWm7f5QeWC++LQCC4KDUqXpKSktT4leXLl/Poo4/yj3/8g++++w6A9PR0AMLDw92OCw8PV7eV5c0338Tf31/9Lzo6uiYvQSC4alitVrflouLOzhYLHDhQ4THDhw8nulEjtFotOp2OTp0717nvRJRfFH3oQzDB6jpPPOlCFzwpCRLWoKExjfnqq69qw0yBQFCPqNFpI1mW6dKlC2+88QYAHTt25MCBA3z22Wfce++9lzXmCy+8wLRp09TlvLy8OnezFgguhzCHgzPFRelkmQZpaQAoERHYhw3DUMExkiQxadIkFEVxK/FvsViw2Wz4+vrWeOn/i/FgpwdJXJxYbr2EhAceRBHFDdyAFi1eeHH69Gny8vKuyQD8sn8ngUBwedSoeImMjKRVq1Zu61q2bMnC8y7w4iDEjIwMIiMj1X0yMjLo0KFDhWMajUaMRmPNGCwQXCUsFgtj3h/DSftJYnxiWDR1EZPS01l79Cg5gYGEnj1L7/XrOdupE+vbtydp/XpanjvHiBEjKnz4lV63adMmNm/ejNVqpVGjRtx5550VFqa7WmRnZ+OPf7n16aTjxMlIRqrbi4vX1aepo9WrV7Njxw4kSaJbt2706ePqQaUoCseOHcPhcHD06FEOHDiA3W7HYDAQFxeHj48POp2OG2+8EW9v71q+CoGgflGjd7RevXpx+PBht3VHjhwhJiYGcAXvRkREsHLlSlWs5OXlsXXrVh599NGaNE0gqDWcTif93+7PDnbgwMHhgsN0fr0z281tGLhqlbpfYvPmLBw2DKfBAGYzO3bsID4+npYtW1Y6dmZmJitWrFCXjx8/zrp169QaMbXBmjVrKlzvjz9xxLkJGz16ZL2Mv395sVMXSUxMZN26derymjVraNiwIfHx8fz404/MPDQTb7zpRS+1w7fNZmPv4b38yI/kkkvAtgDuC7yPLo27MHz4cCRJ4syZMyQmJtK8eXMaNmxYW5cnENRZalS8TJ06lZ49e/LGG28wbtw4tm3bxhdffMEXX3wBuN4Wn3rqKV577TWaNm1KXFwc//d//0eDBg0YPXp0TZomENQaJ0+eJIUUtUmiAwen5FMU+vSgeKIkJyCAZSNGuIQLgKKgs9nIX7wYKhEvsiyr363S1HbZgco8pQ18G9A1pCv5yfn44gu4PC/9+/a/muZdEbt27XJbVhSF2ctnc8/Qe/jk0CdsZjO3cqsqXIpJJ51kkgHIUXKYnj2d7tndCQoKwmw2s3HjRhRFYcOGDfTs2dMtqUEgENRwwG7Xrl359ddfmTdvHm3atOHVV1/lgw8+YOLEieo+zz77LE888QSTJ0+ma9euFBQU8Oeff+LhIaptCq5NvLy80JbpPCQhYWjdWi36fyIujvzS3gdJwmE0cnLXLqgkoDUhIQGns3zbgLJTt1ebgQMHlmtH0LhxYx544AG+vOdLIltGkqXJIkeTQ1SLKAb2GlhLll46sbGxbo0mLViYd3YeSxOWkkEGTWhCHu4ZkQoKevQEEcSt3MrDPMxt3MYudjFr1yy2b9+uTpspisKOHTuu6jUJBPWBGp8IHzlyJCNHjqx0uyRJTJ8+nenTp9e0KYJrDPl87x+Npn616IqIiKCHRw/yLHmYMOGLL0NDhuLx2BTOrVmD4e+/8cnLQ2ez4TC4h+naJQl++gkefLDcuLZS9V6K0el0xMbG1tSlVAlPT0+eeeYZtm/fTlFRETfccINbjMfT456uReuujF69erHmwBpOpZ8CYA97OMpRFu5bSCihmDGzhjUEEkhDGmLFihdenOUsduwsZjHhhHMHdzCEIRw+e5gGNHA7R32K/xEIrhait5GgXvLt99+SeDzRlb0RIPH2k/WrsNlPz/3E8q3L+W3Pb4y/YTx92rmCPEN+/hnZauXPX35BPnYMZNlVx0WS0NlsxCclQUhIhWO2a9eOjRs3kpOTA7heDLp27cr8+fMxGAwMGjSo1jJ4DAYDvXr1qpVz1yS7d+9GK2v5ju8ooghwpXwHOANoTWu2sQ0nTn7mZyQkAglkMpPZwAbyyQfgFKdYyUra0Y7WtC53jtoWnwJBXaTGexvVNKK30fXHgQMHmL9wPnpcUxF27Oga63jpjpdYuHAhhYWF9OjRo0amSxITE9m8eTP+/v7ccsstNZbFoygKBQUFaLVatn31FaZNm2h0+DAd8/Jg1iw4n9FSFpvNxqZNm7BarQQEBPD333+rhe+ioqLo3r27GqfRsWNH2rZtWyP2X6ukpqayYMECrFYrOp0Oq9WK0+lkBzvYylYcOGhGM4YxDAkJBYUd7GA72+lMZ5rRDD/8+JAP3aaTWtOafvQjlNBy53z22WevWtNMgeBqciXPbyFeBPWOhX8s5MBu96JtJzhBFFHozjsTJUli1KhRlabcXw47d+5kyZIlqhvf39+ff/zjHzU2bZWSksKSJUsAGNG1KzHZ2dC5MwQHX+RIF7///jt79uypdLuHhwcTJ04kKiqqOsy9LnjnnXcoKiqqdLuCUi44F0XBKclo0KjbtrOdJbj+tkaMDGc4HeiAwWBwm/7z8PDg2WefFbVhBNckdbYxo0BwqciyrN68FUXBYrGosS3FdO3UFRMlzf0KKaQRjVThUnzspk2bqtW2TZs2ucUfmEwmsrKyqvUcxWRmZjJ79mwyMzNd/162jIz27assXGw220Xf1i0WC5/M+oSVm1ZWh8nXPJs3b76gcNFbrbRv3KS8GJQkZNnhJmo605m+9KW3R2/u8LiD3j69adGiBf/85z9p1KgRXl5e+Pv7M2nSJCFcBIIKEDEvgjrDrl272LBhAwVFBRTIBRTaCtXy8R1adGDcuHFIkkSjqEY07tSYrbu3YlWsGDHSmMblxqtuj0hF4xkMFdW9rZjCwkJMJhPBwcEXPW7NmjVumUOyLLNmzRruuOOOSo8pKipi/fr1JCUlce7cORRFQavVVpiBJCPzG79xRD7CRys+4oajN9C5YWeGNB5C/9j+4oFZhqSkJNauXXvBfexGIyd2byIlyEgAAep6yW5Hpgg0JSnjGjT0tnWicXQb7p80CYD9+/fz9ddfY7fbadWqVaUFCQUCgRAvgjqC1Wpl7dq1aqPNdNKJIUbdvuPQDr587UuCwoOY/+B8ptw8hSk3T+HVd14lvyi/nLtep9MxZsyYarVx5MiRzJkzRxUD0dHRVS6mtn//fv766y8KCgoICwvjtttuK9fTqzSBgYHl1l3oXHa7ne+//5608y0FLsZudrOPfery3yf+Zu2JtZzeeJqV0kp8Db6MGzeO+Pj4Ko13rZOamorVasWKlSUswYSJQAIZwQgMpRo35PmF4+lw71EVlJtLSvYaCpsPwhdfLFjIMR/nP99t4FxkA3JGj8bo4cH83+eT58xDQmJ71na8fLzqVc0bgeBqIqaNBHWCoqIiCgsLAVetDBn3qSInThRZYeGZhfzfr/+nrveQPPDGWxUuduyENQtj6tSphIaWD368EmJiYpgyZQo33ngjY8eOZdL5N+aqsHz5cgoKCgDXlFBlVWeLGThwoJuACQwMZMiQIZXun5qa6iZcnDjZz372slcthlea4kyX0rSjHY1pjEExYLVa1TYeAlfGj8FgYBGLKKSQYQxjKEMr/N2WreFT4O1NdHB/pIJzLMr7iqRDM/jPZ78SlXmWNvv3Y9m2jaSkJIqcRYQQQjDBxBDDF2vKFxwUCAQuhOdFUCfw8/MjR87hEIewYMGJk0Y0Uh8EebjeSGVk9mfsV48LCgpSRQ9AsF8wj46vudYSgYGBl1xqPz8/H7PZ7LYuIyODQ4cOkZmZSbNmzdQ+X8VoNBqeeOIJVZA0bNjwglMI3t7eaDQaZFlGQeEEJ1jEImzYWM96/hX0L0w5JjVmpy1t2ctecshRx4jH3ctSUd2Y65WYmBiadmtK5oZMxjCGcCr2mp3kJJ54EkaYa4WiYPXywurlRQAhTDxj45/zF6j7axSFQoeDP/74A29Kat9o0aIR75YCQaUI8SKoEygofC5/TgEu74QGDQUU0IhG5J7/aUMbdOiI1ceqx7Vq1YozZ86oUzmNGjUC4MyZM+zfvx9PT0969uyJVqstd86rRUXl+U0mEz/++CMA27dv55ZbbqFJkyZu+0iSVOVMoPDwcLy8vCgoKEBCojGNGc5wfud3AE5nn8YLLwB8fX15eMLD3HjkRpaeW0pyXjL7M/aTZclCRlYfmr6+vlW+RqfTyd69eykqKqJz587XZIXsUf1G8dKGl9Q4rNLIyKxjHRvZiBdePMRD+OADZQRnw+7DKVixA58kV2sA08iRLD52DLvdjgkTwbgCsm3Y1LoxAoGgPEK8COoEW05tUYULuB4GO87/ADSiEQEE0I9+9Pbvre53ww03oNfrSU1Nxc/Pj379+nHq1CkWLFigxs+cOnWKO++8s1aCHzMyMvjpp59IIsktI6p0BlVBQQE7d+4sJ14qQ1EU/vrrL44dO4avry8TJkzAbDa7eaDAVTskiCByyFGFC7g8Qfn5+YztM5axjAXgVN4pEtITOLbqGIX5hfj6+nLfffdd0A6Hw0FWVhYeHh58NfsrCrJdf7+/V/7NA5MeuOZSsA1aA3d43EGGJQM/3NM6NWhoT3uivaJ5YOgDdIrrhLe3Nz/88APHjx9X94uIicFn8xb48kvw8yPtxhvJ/f13dYxUUgHIIYcPHvrgql2bQFDfEOJFUCfQa/Vo0JSLdSlGQmI967mFW8p5BLp06UKXLl3U5T179qjCBSA5OZn8/PxaqQM0e/Zsvin8hla0ckvlLsulCKvff/+dvXv3AnDu3Dk+/vhj2rVrVy6l3ICBGGLcMl+KOXfuHE2bNlWXo/yiiPKLYmizoVWyIT8/n/nz53P69GkKdAX4OHxKNirw448/8vTT9bfsf2U0bdAUbZK7F8/f358hQ4bgdDqJjY11+3yOGTOG5cuXYzabiYiIoH///i5vzEsvARB+9iyenp4UFRUReP4nLi6OCRMm1FgBRIHgWkB8OwR1gq4NujK29VgWJCxARsYDD4IJxoEDAwZOchIPrQetmrdi8ODBFxyr7E3fYDCUawxYmjNnznDw4EFat25dLvbkSnA6nWws3MghDtGEC3tVSouvi3Hs2DG35by8vAuKn7JeAnCVte/SpcsFfy+yLLN27VqOHz+OLMv4+flx88034+3tzZo1azh9+jQAqY5UWuLe6bpsjM+1wvjx4/nmm29IT09Hp9PRvXt3BgwYgGQygVYLZYS1p6cno0ePrnS80NBQBg4cqDZjbNmyJf369avZixAIrgGEeBHUCSRJYt6YeUxsO5FVx1cxf898MuwZbtkcI7qOYOzQsRcdq2/fvqSlpXHq1CmMRiNdunSptGDbb7/9pnoxNmzYQOfOnRk5ciSZmZmsX78eh8NBz549iY6OvuRr0mq1nJBOgAJ/8zchhBBOOHbs5QRFcSZSVShbKK1IKeLnnT8T7hWOUli+YHa5iq/A2bNnyc7OrjRdW1EUvvzyS9LT09V1Z86c4fDhw4wZM0ZtOQCQQQYtaOF2HqOnq6aJ1WrFarXi6+t7TdQs0el0PPTQQ+Tm5mIwGPD28sIxaRLyb7+BRoPu/vvRvPsuiqKQl5eHTqdza0JZEZ07d6Zz585X5wIEgmsEIV4EdQZJkri5+c3c3PxmZoyYwbnCczyx7AkyCjJoE9aGtwdVrfmip6cn9957L+np6fj4+BAQEFDpvpv3biaZZFVY7Ny5k379+jF79mzVe3DkyBE6dOiA2WwmLi6O7t27VzhWXl4eeXl5hIeHqx6N5tHN2ZuyFwsWvuM7fPBhNKPxxdftYe/l5VXhmGUp9oIUY8eOFi1h5jCsWHEGOXl01KP8+OOPF6wGGxAQUGHdGEVRWLJkCUeOHCE/v3w6NcDChQvRaDRIkoSiKHSmM5lSJmFKmCsjTJKZdN8ktm3bxooVK3A4HGi1WsaPH0/jxuWLCdY3JEli06ZN7NmzB53Fwg1HjtAnNxcA+4cfUjBwIMvWriV8yxY8bDbst92G94ABOJ1O2rZte00GMwsEVxshXgR1lhCvEOaNmacuHzp+iGcWPINW1vLokEcZ1mVYpcfqdLqLBoy+9f1bfM3XZJGFESPd6c4ABnDo0CG3aQ9ZltVmhocPH+bkyZOMGzdO3e50Ovngiw8oOFcAMhR5FHGm0RmeH/Q8s+6aRcGPBWw/tR2n1Ul/+hNPPHnk4YcfOq2ONm3aVPmhvmPHDrfl0im1Bgxk5mQSExPDfffdx2effUa+ks8ylpFPPtGGaMb5jcPT4Env3r0rfIguXLiQhISEi9pRLKB8fX0Z2G0g7RqE8PuvX+AZHEv/myeydfdWVmxcgS++aHFV+f3hhx94/vnnLzhVVR/YvXu3+ndw6HSsHjiQgLw82h04gN7hYMHPP9N9zRoaJyVhNRiY06oVafn5oNHw999/M3nyZA4fPkxKSgqenp4MGTJENF4UCC4RIV4E9YK09DRenPsiHemIFi3rl6wnLS2NB2554LLHnHtsLlm4ehNZsbKPfQzUDCQoKAiAYxxjNauxYKEhDbmFW9CidYs5ybPk8ejbj9KMZuo6T4snnkc8uSPrDtY/uJ4ldy3B5rRxOvU0f2//m+Pm48S2iGVc3Dh0Wh3BwcGXPaVSthaIl+Ly4GzYsAGAxSzmNKfJJ58UWwqd4jsxc/jMSsc7fPjwJZ3fZrPRW6+HwTdxd1ISso8P0zbN5duGRyikkAgiuIM78MEHWZY5c+aMms5eX9m+fbv7Cq2WLTfcQPOjRzH5+aHY7cQlJQGwpn9/0kpNOdpsNn766ScyMzPVdZmZmTz00ENXxXaB4FpBiBdBveDLpV+6ZewYMHBkzxG45fLHVHCPD5GRadK0CfHx8QSFBLH83HLOchaALLLwx5+BDHQ7ZuycsbSlbbmxI4lkaNZQNp3cxPDmwzFoDcTGxvJg7IOXbzDQtWtXjh49WmG/IgBvvFn+93L273cV8hvBCIwYySWX5Szn8LkLi5OKxo2KinKrpVMaT09PeP99OP+wxlzA/NBDmM5X8E0llVWsYhSjkCSJ4Co2lqzLNGzYkDNnzpSsUBTOREby4T/+geR00tZux6HTYXA4sFbQw+ps1lm35eLfbW3WIhII6huihKOgXhDsG1wu8LRsGfaL4XQ62bBhA3///TeZmZk0prGrkBguD0ZDGjJ86HAA7rj3Diw69+JyebjSr5s1K/Gy6HP0FRYtA/DBB+sJa4XbLpf4+HhatGhxwX02bNyg/tsPP4wYCSecu7iL2NOxbp2xS1O2aza4poUeeOAB/vWvf/Hyyy+7eU30ej0PPPAAlDrGpgWr5F4y34YNjUZD9+7dLxq8Wh8YMWKEe7yQJIFGQ5G3N1JkJIPff5+CFi1waLW0PHgQY6nYI0mSyHe6xxI5FWelfxOBQFAxwvMiqBc8dttjPH/webWPkYKCj6/PRY976623sFpdAkKn06lZMgkJCXSmM5FEcpjD+OPPDR43qP2EQr1DaR3Rmi2ntriORUdzn+YMv3E42lAtM+bNIFIbSWdb5wuWcc/PrDjo9UoYM2YMx48fVyv3lmtKWcnXWoOGSEsk+/bto3379uW2VzRlVFYo3X///ciyjNPp5It1XzD9u+m0G9qauzZtgrQ0jFojzQuD2OqfRggheOBBz4Ce/N+T/1du7PqKJEk89dRTOBwO5s6dy8mTJ9VtZrOZnxYsYOjatcx67TWkvDzV+2I0GunatSsfbfiIDnRQ/2bZZKPdtw8KCuCGG6CexwRdCJvNhtPpFDE+gitGiBdBvUCr1fLqc6/y6nuvggOCQ4KZ+tjUCx7z5ZdfqsIFcEvvzT2fHdLg/A9AgH+Aul2SJH68/UeeXfEsJouJ/rH9ebb3s0z+YzLfLvsWBw7a057RjHY7Z2khoaBcMNPpcpEkiWeffZb9+/ez+uhq9hzeQ6g9FD16tw7HZUUNuNKmK0vLjo2NJSUlxW1dy5Yty+2n0Wh46P2HaGhuiDfeHEXmtafv41+FnkitW/NpXCPm/TZP7dVjMBuuyWkRnU5HixYtSE1NdcsAO3LkCEePHqVdjx6cO3gQnUaDQ1Gw2Wxs2LCBNNLII4+GNMSChTOWozi7f4bO4YCBA2HxYrgGM5L+/fa/0VhcQl/nqePFZ15EoxHOf8HlIcSLoN7g4eHB6y+9XuX9z549e/GdSlE246eRfyPm3z5fXd5+ajvf7v0WO3YAV4AvA/GlpDBZsViQkTFhYm/SXm7m5kuyoypIkkS7du1o164dDtlBkb2IpVuWsmfNHjxwPfiKKHJrCwAu4dGxY8cKx+zfvz9nzpzhxIkTSJJE27ZtiYuLK7dfbn4uQeYgddpOgwZrngwvu6rGrn7vPXU6DsButzN79mzuv//+arn2ukSPHj3Izc1l69atbusVRWFvQgJdNm1iwLFjzL3rLpTzxROHM5wVrGArWwkggCH6ESwbFs3NixfDypUwYwa88EJtXE6N8cHsD9BYNOr3w1HkYP4v85lw+4RatkxQXxHiRXDNEhMTU64abXFtkoro379/hesLCwtZuHAhqWdSuU++j2Us4xSnkJHZxz6G+gwt583QoCGQQOQCGUVRarRAm06jw9foyx1978BqsXIg8QAanYZ+LfqxbeM2t32HDx9+wZoyEyaUPEwOHjzIe++9hyzLNG3aVK0Um5mbWWHhu+LrLO3tKiY1NZUVK1YwaNCga6JYXWk6d+5cTrwAoNGwo2dPjrRqpQoXcMVqDaNUmr8WDrZqxaCVK/EsKoJrqDrxmfQz/Oer/6Bz6ko6beMS+UcPHq1FywT1HeGzE1yzTJw40W3apnHjxkyZMoV77723wv0r6yWzfPlykpKSsBfZaUhDhuLq/xMqhXJb89uYOnVqpW0FdJLukqrnXin3DL2Hd556h7cef4sh/Ye4eZNatGhR5UquZrOZX375hYKCAgoLC9m7dy+rVq0CwJprxRNPNVtLQQHPkv5MFdWsURSFDZs2cO/0exnyzhASkxOv9FLrDKHBwTTMynILXFbRaMg7n3p/IWx6vev4li3h4YdrwMqrj9Pp5MXPXyTSGUkYYeWy+8ouCgSXgvC8CK5pnnzyyXLrvLy8cOJ0y1bq1KlThcc7ZSc79u9QY0mcOPE2ePN4u8f5R9d/0DTM1dzw3nvvZcWKFRxPPo4px6Qe7+vre9WDE4tL03t4eDBhwgSSk5PRarXExMRU2etx/PjxcqnRR48eZcCAAfz8y89uQcoKCpMfnqwujxs3jh9//JEjR464ebk0aIgggp+Lfub+2fczY/QMbmh/wxVebR1g/37u/+QTFtx2G4fbtLno7n369OHAgQNkZ2er67z1ejynTYNHHoHLaEVRF8nNzcULL9VLV5G3riyFhYUkJSURGxuLj8/FA/IF1y9CvAiuO6a+M5VQQgGXGDFj5uabK4hLyc3lg/++jF4fSPF9V0LiW9u3BBwNoFODTqp48fDw4Oabb8bpdPLrr7+SlpaG0Wikb9++V6078ObNm9m0aZPq6ZEkidatWzN48OAq9xY6e/Ysv/76K1lZWeW2FRfvK/sGLSGReDaRaP9o9bzjxo1j/+H9/PbTb277Kud/TnOaxSsXXxvixcMDRavFq+x0maIQkJ2Nj9nMqfMp5i1atKBfv36YzWZVvEiSRNf+/eHGG6+25TWKj4+PGh9WFgUFJ+7i+J1v3+Hnkz9zilMYMPB488d55s5nroapgnqIEC+C645ggtV04opqxaSkpPDDrFmEpqRQEBXl9tDXoKELXVhlWsWbG97k3g73opFKvBBarZbbb7+9xuNcynLo0CFWrFjh5ulQFIUDBw5w4MABAMLCwnjooYcqFVMFBQV89dVX2Gy2CrcnJyczffp019ilMpmcOOkW1c1tnHdmvINGLvm9SEjYsZNAAhYsGDGCzLVB8+YUjRlD76VL2deuHU69Hp3Vyg2bNjFg7VocOh0HW7TAMGkSzceNQ5IkbrrpJvz9/cnOzqZhw4aX1FW8vmA0GgmLDiMzNRMvvLBixYgRDzxcFZ+Pf0PKkE000uhJbtOS5T772C6VVC/+7+H/8qTzSfTaazd1XHD5CPEiuK6w2WzlBIse95vjd999hwyut+UK4hha0YrjHMdsM2Nz2vDQlU9rvdpBqTt37rxoobPMzExmzJjBM888U6F9Bw4cqFS4QEk3ay1anDhRUJCRGTRmEAEeAep+M7+aiVYu+R0XZ16tZz2JJNKABgxgAN07Vtzgsj7i+8MPFK1eTd89e9iXk4NnQQHdEl1xPTqHg3ZOJ0yc6Cpoh+vzceM15mmpiNcmvUa2OZuk9CQ+3/M5Hx34CIAeKbDwV2hQ4IqjMuzbR9bkMLdj88jj428+5on7n7hq3ktB/UF8IgTXFXq9HgcONwGj6Ese+rIsu9XsoMxDXkYmmGDu5m5MdhNGrbHGba4KERER5TKrKqKwsJCcnBx1Cqg0FXWZrgwtWu6///4K+xRZbVa3mBgJiRY3tODGghtZnboaX70vN3W/iV6de1X5fHUeScJzwABuHDAAVZI8+ih8+KFLAP/znxAWdqER6hXZ2dns2rWL2NhYmjRpAtnZkJbGRn063x1ZgF6r5/6O99OlQReCvIMIahzEzqydzDowCydObkuEBqXi2Pd07Eg4DrUAJbiqQ+eezuXPP/9k5MiRtXSlgrqKEC+C6wpJknjsgcf4/LvPkR0yRm8jb057U92u0WgqTKc2YSKTTBazmFBCuYM7CLIGMXv27Eqzl64mAwYMYO/BvZiyXcHCMjJatBUGSVb2FtuiRQtiY2M5ceJElc7p5+dX4fo2rduQsCNBPbdNsjGu9zgCvQK5jduqNHYxVZ1+k2UZSZLqVhp2y5bw2We1bUW1kJ6ezqxZs3A6nRiNRgoLCwHYuHEj/sBjn3+GnJnOn/30fNPLgVOjMGffHKZ3nc7w6OE0adKEh7s9zIrtK9hybgs2n0JkctAAVoOBg61bc4PkRSGFpJCCHj2DGYwGDWlpabV67YK6iRAvguuOqKgoXn3p1Uq3Dx482BU/IssgSdiw8Q3fYMIlDEyYWM1qhjCElNSUSse5mkiSxLQnpvHc4udYeHAhuUoudwbeSXROtNpGAKBVq1aVig5Jkrj33ns5d+4cs2bNUh9QGo2GNm3asG/fPnXf6OjoSqsHj71pLFaHlcTERNDAXRPuItArUN1eXOn4QlMB6enpLFmyhIKCAoKCgrjtttsq7IukKApvvP8G1gKrmrI9/Z/TSUxMJD09nc6dO1+SR0lQMV988YUq6Is/F8VkKlZa3mUmV2/Eig2nxrVfvi2fmRtnYsJEbGwsEydO5OcpP5OZmcnZW9NRpk9H+fNPCgwGbDodEhKDGFTu3GHXkMdKUH1ISj3vCJaXl4e/vz8mk6nSm7JAcKnIsswbb7yB0+l0zb3zMTZK4kE60YlRjEKn1/HSiy/VoqXlMVlMOGQHwV6uDs5FRUUcPnyY8PBwIiMjqzSGLMts2LABs9lM06ZNadKkCXa7nZSUFEJDQyv+rlmtMHIkJCRARATMmQOtW7vtsmzZMnbv3o2iKDRu3Jg777yzwvN/++23bj2D2rRpw5gxY8rtN++XeRzef9itJYMkSWoNEUmSmDBhgmtqQ3BZ5Ofn8/7771e6PYssPuIjwgknhhiyyOI4xwGIJ557uAeAIUOGcMMNZbLLTCbM27fz5dq1mLTactO0YWFhTJo0CaOxbkzPCqqXK3l+iyJ1AkEFaDQaOnXqhEajwQcftf8RgAceNKUpMjL9+varPSMrwd/DXxUuAJ6ennTo0KHKwgVc19+nTx+GDx+uPvj1ej2NGzeu/CbTty/8/TecOQO7d8PgwVDK63Ps2DG2bduG3W7H4XBw+PBh1q5dW+FQZd/u9x/bz/TZ08nJz0FRFE6fPk1SUhJHThxxmxqTcJ/ycypOfvvttypft6A8F6rIrKBwhCNEE40DB7vYhUkx0YEO+OBDV7qq+xYWFlJQUICiKGQXZvPtym9ZsmsDzm7deHL6dNq1b09gYCBGoxF/f3/at2/PiBEjyM+v/uamgvqP8LwIBBegsLCQ3NxcsgqymLZkGmdtZ/E3+jMwbCAPD3mY8JDw2jaxVrFarSQnJxMZEYFfo0Ys6dOHkzEx6O12+qxbR4vffoPznalXr17NunXr3I6Pjo5m0qRJ5ca974P72G/aTyCB9KKXGgDswIFGp0HjcC17eHtQZC5y97yUifM5pz3HR//6qLov/brit99+Y+/evYBL2MqSTHGZlvnMJ4ccMshQ948hhpGMVOsp6fV6tTGnMdDI0TNH0aMnm2x8fHyYfu90dDodn376KXa7qzaMj8nEiGXL8CksRG7Zkpg//gCDAcG1w5U8v0XMi0BwAby8vPDy8qIBDVjRbEVtm1OnOHLkCPPmzVOXG955J2mRkXC+U/DSESOICwmh2OHfqlUr1q9f7+YZqaitwtSfpvK96XscuGJj0kmnC12IIw4dOhRHyfEWs8VNrBRSiAULwbg8T2c4w0HtwWq75uuV0aNHM2rUKMxmM9Pfn4433khI6t/mL/5y29+JUxUu4GrOWSxKis4UqX2OAgkksSCRbdu24evrq+4DcOtvvxGfnOxaSEnB/PjjeH/xRQ1fqaC+cNWmjd566y0kSeKpp55S11ksFqZMmUJwcDA+Pj6MGTOGjIyMygcRCAS1Tl5eHh9++KGbcAE4VUq4AOT5+XL49Gl1OTw8nB49eqDX69FoNERHRzNkyJBy4y87skwVLgCZZNKQhpzkZLl9y6JHzx/8wdbzP9/zPRHhFfedElwaGo2Gj3/6WBUui1nMl3zJXOZiwaJ6xzRoiCW20nHKesaMGJEkqdxUoX9urvtxVSgFILh+uCqel+3bt/P555/Trl07t/VTp05lyZIlLFiwAH9/fx5//HFuu+02Nm7ceDXMEggEl4jJZGLmzJnutXDOo2hAUhQ16FKWFMxlOiQPGTKE/v37Y7fb8fT0rDC1uXSBOwDD+R8vKo+9KL1vK1qxnvVYsBBviOeriV9dyiUKLkCu2dWv6Cxn2c1utcR/HnnEE48DB1540Y9+bsfpdDo1y8yBQ61w7cCBTqejZ8+eZGRksHnLZlXc5Pn7E5yTo47h0bLlVbhCQX2hxj0vBQUFTJw4kS+//JLAwJJ0SZPJxNdff83777/PgAED6Ny5M7NmzWLTpk1s2bKlps0SCASXwbx58yoULoCrj02ZVgorVqzgp59+cttPr9fj5eVVaU2WO0PvJIIItGgJIoi+9AVctWusWCvtl9OiRQv+/e9/s/TlpRx58ggHHj3AwecO4mcUsXDVxUOjHiKDDGzYyvUmyiWXFFI4xCE+53NOcQqA4OBgeg/uTSqppJBCIYVkk00GGRR5F/HR1I/w9/fn5/SfSSZZLVL386jhnOrQnrzmzXHedRea99676tcrqLvUuOdlypQp3HTTTQwaNIjXXntNXb9z507sdjuDBpXk9bdo0YJGjRqxefNmevToUeF4VqsVa6kGaHl5eTVnvEBwHeF0OrFYLHh5eaEoCprzU0B2u53ExETWrF9D9rnsCgvf+fn5ITeWydidgTeueizFmT+JiYns27evnOdVZcYM+Pln6NgRPvqIZyc9i+Z9Dcdtx4kiCi1aZGQ88SQyOJKc7BwiUlJIb9AARVvipYmIiFAFUWRAJJFUPbtKUDWaxDZh8u2Tef/X92ngbMBpXNOCYdowrM6S+/JZzrLZsJlnGz5Lm45tmPDLBE5yEgsWQgllkmYSA9sP5KabbkKr1bJ6y2oyVmcQQginOMU+9rEraBcdFi5jcPzg2rpcQR2mRsXL/Pnz2bVrF9u3by+3LT09HYPBUK7QVXh4OOnp6ZWO+eabb/LKK69Ut6kCwXXN2rVr2bhxI3a7HUmSMBgMeHt707p1a5KSkkhLS6swkwcgMjKSyZMnA5C6/CGW2nNJb9jQbZ+EhISKxctjj8H//uf696ZNsHMn9hUrCAoIwpFZEveiQYMffrRt05bYX3/laEoKZ6Ki3IbauHEjffv2vcLfhOBidGjdgdmtZ2NxWHh/8/uYbWYmtJjAHT/egSnfpO6ntWlJTk7mWPIxbud2CilkDWvYzW52yjt5a9RbAOzbt491y9cRhKtlhR9+OHCQ7ptOtwbdKrRBIKgx8ZKamsqTTz7JihUr8PAo37jucnnhhReYNm2aupyXl0d0dHS1jS8QXG+kp6ezZs0adVlRFNXDuX79enV9RcIFwGAw8O677yJnZBBpKiK0oID0Bg3cppDatm1b/sDffoNvv3Vb9Xv+dv7+9gVCskIqPJfFYiF27VoOh4WVK2jmcDiuejfv6xkPnQcv3viiuvztHd/yxJ9PcDz9OH4OP4YxDHD1wdKixR9/xuT35oxnCrG6WJYtW8awYcM4fvx4ubEDCeTV/q/i7yGqIwsqpsbEy86dO8nMzKRTp07qOqfTybp16/j4449Zvnw5NpuN3NxcN+9LRkZGhemTxRiNRlFtUSCoRlasuPQU8GIvjMFgoMHixXjodJyMiSE5Ph6DzYbWZsNpMKCg4BvmR5s2bdwH+PhjeOEFON+pGmB9I3houJMOWYcJoWLxUpxK2/LQIbZ07w6lWgx4eHgI4VKLdGnYhc0PbGbp0qUl3nZZdstA02s8eNR2D4rOn23btpGWlkbDMl46AA8vD+7pcM/VMl1QD6mxgN2BAweyf/9+9uzZo/7XpUsXJk6cqP5br9ezcuVK9ZjDhw+TkpJSvoS0QCCoMfR6fZX3deDAggWL0UL3Ht2528eHyMREjjVpgsXLC0WrxerhwQbjLmZJ35It5ZB5NpOcohy3cfYt/oHH7+/NtH/cSnJDV6G/xc3grA9sYpNa8Kw4eBNclYJbtWoFd99NI5OJEUuX4lVQgMbpRK/XM3r06Cv/ZQiumEGDBqnedq3DgbGUQNXbbCheJd6UM2fOcOONNxIfH49Wq0XSSPgH+fPMpGeEEBVckBrzvPj6+pZ72/L29iY4OFhd/8ADDzBt2jSCgoLw8/PjiSee4IYbbqg0WFcgEFQ/w4cPJzk5GZutpHdTcWdtrVZL27ZtCQkJQa/X07lzZ7VSKgBLl5Hi74+ztACSJAoo4CQn+R//4zEeY1faLgY2GQjAtiPb+Lh7PPGaJkhIfPpAHPcu+pPYSUPRHPkQM2a+5Vt66Hrw4oAXwewK1G/VqhVxcXHw9NPQowddt26l67Bh2Js2RafTiYddHcFgMDBu3DjWrFlDnslE94ULyfLzw8dsJisggP2lsk4lScLDw4O7774bi8WCwWBQA8UFggtRqxV2Z8yYgUajYcyYMVitVoYOHcqnn35amyYJBNcd/v7+PPLII2zduhVZlmnZsqUaOO/p6XnhnkhNmtBi7lx2dOlCTrCrqq1VLiRUE8qN3MgGNrCc5TwX/px6yOu/v05rTWs1hsZH48fcm3rz5p3vsXtxAcuPLceoM3Jrt1sZ1L18l2EAevVy/QdU3W8kuFrExcW5hCbAuHHwz39itVrZWGbKv1mzZmp38eqMjRRc+4jeRgKB4PJRFGwPP8zxjRvZ3a4dyeHeFAaGY8AV77KHPaT5p7H9qfMxEKtWccfq14nRdVZTqgFMXibe/6erc7FTdqKRNMKTco2SmZnJnj17iI2NpVmzZrVtjqAWEb2NBAJB7SBJGL74Ao/kZNi8GefxYxhk1/uQhEQsscybcr6NwO+/w4MP8llRHpOfDqCZpgUGDGSTzXP3l3hmtBptRWcSXCOEhYVV2BZCILgUxOSiQCC4YuLi4pgwYQJxsXFu66N9o/HUe7oW5s+Hc+cINNv47q3fCd3zNz4nN/H6lJdoENKgFqwWCAT1FSFeBAJBtTFy5EgiIiLQarX4+/tz04ibSjaWimnwsjl56rdtPD1/PT7mogpGEggEgsoRMS8CgaBakWWZvLw8vL293dOwU1Kgb184caJkXdeusHEjXEK6tkAguDYQMS8CwXWM0+lk//79KIpC27Zt1ewNgB/3/8gzS58h15ZLgCGA1Q+upklwkxq1R6PRlGv7AUCjRnDwILzyCuzaBcHB8MYbQrgIBIJLRnheBIJ6jNPp5IcffmBf0j4OcpAQfQj39riXxMRE0r3SeSPlDWRKukB7a7zJ+1ceGknMGAsEgtpFeF4EguuUxMREdibt5BSnaEELDHYDa9avUfvJNKMZhzik7m+WzaTnp9PATwTICgTVjdPpZNOmTQD07NnTvaCjoFoR4kUgqMfIskwyybSjHboyX2cJqVyPIB06Qrwr7hskEFwv2Gw2kpOTiYyMrBaP/QuLXuDPxD8ZWTRS/R6uW7eO559/vsoCRpZl3nvvPQoLC/H09GTatGluU8ACd4TvWCCox7Ru3RpvvMsJl2L60U8tBqdFy5Odn8SgNVxNEwWCOsWhQ4d48803mT9/PjNmzODLL7+8ovHeXfUu7+16j1ZFrdBSIlQcDgdz5syp8jhvvPEGhYWFABQVFfHGG29ckV3XOkLWCQT1GK1WS9dGXUlNScUfV8M7GRnN+fcSHTomMYlJd02ifXx7UbVWcN3z008/uS2fPn36isZbeWQldux44aW2vCjmzJkzKIpSpe+d0+l0W67n4ag1jvC8CAT1nKn3TyU+Lp4MMsgiq9z2BsYGtGjYQggXgYCKRYHVar3s8eID49GhYxObOMpRt202m43Dhw9f1rgKCmdzz162Xdc6QrwIBNcAj9/zOJ++/Ckf/vtD2rZuq67X6/UMGjRINL0TCM5TNsZFkiSMZRpGXgpjuozBCy8OcpAf+ZGVrHTbXrpb+4WIiYlBoURYSUh8NPOjy7brWkeIF4HgGkKSJMaMGcP999/PxIkTee655+jSpUttmyUQ1BmmTp1KQEAAkiSh1+t54oknrmi8j7Z8RB55ADhwsJ/9ankCQ6CBli1bVmmciRMnllsnKcJbWhki5kVQY+Tn55OVlUVERIR487+KSJJEo0aNatsMwTVEUVER7777LrLseij379+fPn361LJVl8+TTz7p+kdmJuzbB+3aQWDgZY2l0bj7ACQkFBSyQ7J558F33KtMX4AK97tC7XL69Gn+3PknkqfEXf3vQq+9dgpCCvEiqFZkWWbRokXs27dPvdF5eHhw11130bBhw1q2TiCoOex2O5988glmsxlPT0+mTJlyRdMRdYkZM2ao32eA1atX07t373IP7vqCrMhofl4IU6dCWhqO+HjSXn+VBmPGVllsFDOt1zRWH11NjpKDHj1taYtO0vHBYx9ccpxZ+07t2bNrjyqAHnnkkUs6vjRHjx5l/Pzx7JX3IiPzypZX2PvMXvw9/C97zLqEqLArqFbmzJlDUlJSufVeXl5MnToVrVaLJEk4nA7GzxjPKfMp8sknjDBe7vcyffr0EYGlgjqJw+Hgp19/Ys/xPRRIBRibGXn3lnfRalzpsf/973/VVFcAo9HI888/X1vmVhuvfPQK+dn5yMhYsRJGGABPP/00Pj4+tWzdpbEvfR+PLX6M1PxUln2cQ6ukfACcWi0zHrmPnNBwjFojgwYMomfPnlUe90TOCf4z/z9oz2lp7d2axx577ILeZrvdzurVqykqKqJx48a0adPmiq8NwGw2s3jxYpKTkzlqPcq3fOtWYXtg7ED+vvfvajlXdSAq7ArqBIqikJycXOG2gsICXn/9dWzYMEkmbIqNDDLY6djCo9vB257Au+YiNJp3uPHGG6+y5QLBhbFYLMyYMQObzcYmNnGCE7APDpgOMLjpYIY0HkJRkXt37CvJYKkr/G/u/5CzZXzxBcCGDTNmvPHG29u7lq27NL7//nuOHDtCf/qTSioW83fqtoW33oo5NBoDoDgVVq5cSYsWLQgKCqrS2LGBsXz76LdVtuWVWa+w8cxG7Njpf6A/TqeTsLAwkpOTiYmJuSwvtaIozJs3j7S0NAAKKHATLgAmq+mSx62rCPEiqDZkWcapONUaI6UpXmfAQKgSCoCX4skzC3cwKtF1009M2MnB+AQQ4kVQx1iwYAEZtgxmMxszZvzw4wZuIPVkKi+cfIH3N77PozzqdowkSciyzO7du7Hb7XTu0AH9mTMQEwP1ZLolOSlZLXIIru9vJpmM7D+yVjykO3fuJDExEa1WS0jTEJYmLaVTw07c3evuix537NgxNOd/Yoll0eDetJ6/EaNDIT0izG1/WZZJSUmpsnipClarlQ0bNrAzZSd5Z/LoS19yyGGlYyXR26Mx5ZjU6rqDBg2iU6dOlzR+QUEB6enp6nITmtCQhqThEjPeeDO1x9Rqu57aRogXQbUhy7JbgbSLESgFEaOJBxIAaJlhR1q9Gq5gnlcgqG6cTieZmZn8xV/kkAPAOc6xj32MZjSd6UxwUXC5z37fvn2ZOXMmJpOJiNOnafzLL4RkZSF5eMCcOTBmTG1dUpUxGo1gKVmWkWkW1axWgnWPHDnC4j8X85vjN8yYGXNkDD74sC9xH/ck3MPsybMrPfbEiRNuyxISh5pE8ezYAHqkeHNUn04woWqROY1GU61B7w6Hg++//57U1FSsWAkmGIAggmhBC9Iz01HsrgiOoqIitm3bVmXxYraZsTqt+Hr44uXlRX6+ayrMgIG7uIt1mnUkaZLoQhc2rdpEJ79OtIhtUW3XVlsI8SKoNvR6PWGhYWSfza7yMYebN6d9QoK6HN+8eU2YJhBcNr/++isFBQXlCgAWUUQAAXjjjQH3lgsGg4H169erVVMHrVhB6Llz5w8sgkcfrRfi5cV/vMj0d6ZjxIiMTJ6Ux38m/adWbDlx4gRLHEvYwx5e4iX0uAJrffBBe0aL3W5Xg22LiopISUmhQYMG+Pr60q5dOxISEtQCdTIyO9jByeYFHGrelRQOEo+FcMIpooh0/3T+L+j/Lsm+bdu2sXLlSnQ6HY888gi+vr7qtqSkJFJTU1EUBaPkHsQtIfGe/T2sWIkhhglMICcnh1WrVpGSkoLBYGDQoEGEhYWVPSWvfv8qWcezkJFxhDh4ZNAjzP11Lp54IiFhwEA/pR8DHAPQoKHQVMiX332JIdzAm4+8eUnXV9cQ4kVQrTzy0CP87/P/kZOVo67TarVotVrybHl44B7EltewAYpWi+R0Qu/eGJ577mqbLLjeMZngyBEcsbFsSEigqKiIfv364enpCbgePEkklRMv0c5Iws6cRDZ4kVXmwVK2MJmxbPxLmfiYuoqnpyev/9/rnD13Fi8vL3x9fC9+UA0RHByser5K9xAC8MCDEydO0LRpU/bu3cvvv/+uluXv06cP/fr1o1+/fmzbtg2A3ebd3MIt6NGzne0cOv9TjCZXw4HMA7QJq1og7fr161m1ahXg+tu///77PPvss+pnaPPmzQAVTrUd4Ygan3KEIyxlKYNtg1m/fr26T0FBAQ8++KBbdte6neuwH7MTiCvF23LWwksrX6I97VUPoISERtGgR4+CosYuyRkyj3/6OB8/9nGVrq8uIsSLoFrR6/U8MeUJNm3aRGZmJqGhofTq1QtJkvj444/JynJ/AEQOHYZ08yjIy4ObbgJRD0ZwFVn25ZfsOnkSGVA0GpTzHYC3b9/OhAkTaNKkCQCHOYwTJ01oghEjoQ4/vvghncZJ3+LUatnTsSPLbr5ZfWCWTeJMa9iQBqdPl0wq1SMPo0ajITwsvLbNoFOnToT9GcYxx7FyU3QSEqtXr6Zp06YsWrRI/f0risLGjRvp168fHTp0AGBD2gYij0SqD/LudOcAB8ggQx1PVmRWHF9RZfGybt26cutWrlzJyJEjAVdWTWUkk+wWWHua06pXqZicnBwKCwvdsrt2btmpijgHDuYzH/88f7pQUpRSgwYFBTt2tGhLpsXQYDxbv9P460fUmKBeIUkSvXr14tZbb6V3797q28aECRPw8vJS94mOjmbo0KEweLDLhS6Ei+AqcvbsWbafOoVDr0fW61XhAq6H3sKFCwFo2rQpfrjSOIcwhLGM5aXNXjRNSkYD6J1OOu7Zw+SuXRk/fjyhoaHlzpXw0ENY+vWDuDgYMgS2br0al3hNIUkSvzz8C339+5JN+alpm83G559/Xq7BocPhICcnhzlz5rB69WqSjiThQ4kIMGAgjji3Y/To8c6uejZVRR6V0kKj+L6nUkrclhUq5zjHh3zIXOZSiCv13s/Pr9wYgT4lRfV2spMTnOAwh0mnJGhXRkaLFj36ck0jjRjZtWdXFa+w7iE8L4KrRlBQEE8//TT5+fl4eXldcjEogaA6SU1NRblA1o/D4QBg9OjRGD2NnNl2Rn2jN5SZFtI5HER4eBDRrBlRUVF8/vnn5Ofno9frGThwIN26dYOHHqq5i7lOCA8JZ81Tayr04jqdznLritmyZQvnzsccRRHl9iB34lQ9Hx54EEAAneiEZ7Znle265557+Prrr9VljUZD37591eUhQ4Ywa9asEo+cJLkEjCTRl74UUEA22WjQYDn/k0MOy6XlPNXoKfr371+uIGC7tu04lXoKp9OJE5dga0xjfPDBjp1CClXRDS7vlBMnWrQoKBgxsmzJMjZs3MCP5h9xejnp1rgb7w15r15U4hVF6gQCwXVJRmYGn/7v00qz47RaLQ888ACRkZGAyxvz/kfvk5+TT0BOLnd9/z0hxUG4ffrAihVgMKj75ufn4+npKUR6DZCWlsa3336rCsyIiAjy8vLcigSWpm3btuzfv7/CbYUUso1tBBBAe9qrwkaSJEJDQ7n55puJioq6qE05OTksWrSIwMBARo4sn0r+1ltvVVr7x4ar7tUCFqh9kgA6+HZg97TdlZ4zMTGREydOcODIAb7O/ZpxjFOnkhQULFjwxCXC8slnDWsYzGC32MMccvie77FhI488pnSdwscjrk4szJU8v4V4EQgE1x3mQjOvvv8qRqfxgqn9HqEePPdYSRC5oigcPnyYc+fO0SkoCM/vvmNDbiJ/tmmOryOYBoFhBDcNp2/XvvgY6lf12fpGQUEBe/bsITQ0lObNm/PJJ5+o3pWyxPaMZcamGQxlKF54VbhPZQQHB/P4449fsb1z587l+PHjlW739PRknjyPPdY96rrJrSfz+e2fX3Tsr7/+muRTyeWmoOzYySILTzzJJpt97GMUo9w8TwoKMjJ27GxnO3KszKp7V136BV4GQrwI8SIQ1FksVgs7EnawZdUWCgsL0Wq1dOnSxRXvVEu89fFbWLMqr4C7iU0kkIAGDaMajuLjByt+E532xzSsu0tK5gOYFTNrpJV8eO/H3BB7Q7XbLqgYs9msTteVxmg0ssu6i6Y0RXc+UqK0YC3UFaJz6NCgwYQJX3zdUt/1ej0vvPDCJRXls9lsLFu2jPz8fEJDQxk8eDCSJLFkyRJSU1MJCQnh1KlTaiBvUFAQjz/+OKZCE3fNvYvMoky6NurKzNEz1fYTF2LNmjWsXbu2wm0KiipWLlaHy4KFxEaJ/Hb/b1W+1itBtAcQCAR1kgUrF7Byw0rCCVdvmg6Hgy1bttCuXTt1SuZqIssy5iyz+iBT15+/sR/mMGtYgw1XXMvstNl0/607d48uX8U141AGzWjmts5b8qYz3Xjsh0fY+fzuetu8sL7h7e3NtGnT2LdvH0uWLMFut+Pp6UnXvl0xL3P/e2eRRe+WvWnYsCHvrHqH9rRHi5ZggtW/ezFGo/GSqwn/+uuvHDrkSr0+fvw4iqIwbNgwNfsIXF68kydPotFoiI6ORpIkArwDWPzw4ku+9n79+uHr68uSJUvKZbqV9rJcrICoAQM3xd2EyWTil19+weFwMGzYMKKjoy/ZpppGiBeBQFBjLN6wmHjiK9yWlJR0QfFiKjTx6IxH0Tl02CU70x+YTtOGTdXtmzZt4u+//0ZRFEJCQpg8eXKV4ktOnz5drueLEydxHeJIOZjCSdtJtwdYPvmsP76euykRL2fOnGHBggU0KWpS4TnCCCPMFo7JZCIwMLDCfa5FiuxFpOal0tC3Id6Gq9/7yFRgYsYfM9A4NQQRhEE2cHz/8XJC1WQwMW7cOACC/g5yqxsjI6veCqPRyO23337JdpQNHM7MzCy3jyRJxMbGXvLYldG5c2d8fHxYtGgRNpsNu8PuSt2ncuGloODEqf5+svRZPNz2YWbOnKl2EZ81axYPPvggDRo0qDZbqwMhXgSCK8TusPPG7DfIN+UTEBzAi3e9KN62z3OhN70WLS5covwf7/+Dps6mrjEUeO2r1/juZVczvdTUVFasWKHue+7cOebOncv9999/UZt0Op1a/0JCQkEh3ZDOf0b9B2mURMavGezcvxMrrmklX3xp7ltSl6WgoIB58+aRn59f6fVp0BCjRLvK618HFBYW8vrc15l5ZiZmzIRpw/j69q+5qcVNNX7uY8eOkZWVRdNmTfn3zH8TS6y6zWqxcurUKdeTzhXbSx55vP3A2+o+vgZfSjtbFBScXk7GDh1LfHz8ZXXO9vb25uzZs+pyTXbfVhSFFStWkJSURGZmppvnxYYNPXo0aNDpdMTFxZGfn6/2QJKQyCabfPLRG/S89NBLrFuxThUuxeMvWLCARx55pE59noV4EQhKoSgKPyX8RFp+GuPbjCfSt2LPQHp6OrMXzEaj0ZBhy8A7zxtffLHn2fn3V//mtcmvXWXLrx5mi5n35r+HxWphQM8BDGo7qPKdja6GdEZcNz0FBa1Gy4ABAwgODr7geTydnm7ioHTaZ2nhUszp06erZH94eDhdOnRhx54d5JKLwcPAB//4AI3kOtent32KbJL5M+VPJCT6e/Tn0btcTRd37NjBmjVrMJvNbmMGZGZi9vPDfr5WkU22MLbDyPL1Pa5B1qxZw+q1q/me7ymgAIAMZwZTf5vKTc/XrHj566+/2LZtG06nk3Ub1qnVZsvSunlrAgMDcTgcdOvWzc0b9vrjr/PCjBfwVrxRUMiT8pjxjxl4GqueKl2WESNGsGTJEgoKCnDoHOwz7cO6zsr4PuMve8zK2LVrF1u3bnUTHMUYMVKoL+TVZ17FYCiJ45kzZw5JSUnAeS8hYUQERZBelM6ylGXEEefmscnNzeXtt99m/PjxNG3atNx5agMhXgSC8yiKQp/3+rDRvBEFhU82f8Ly+5bTJMh9auDEiRN8/t3narqhAYNaDEqDhoJzBbVhfo3z119/sWvXLoqsRa4KnRhZ9usy7E47wzsMr/CYr/75FU9++CSWAgseBg9efvBlQoJDqhRDUJziWUxxLQuA0NBQUlJT1BusgqKWYr8YkiQxatQoOnXqhMViIS4uDp3O/Vb42f2f4XQ6sdlseHh4IEkSFouFdevWlRMuAAZZ5pY5s9ly/yQMfn50vWks0a1aVcme+sxPP/1EYmIiGjTcx33YsLGYxexnPz5WH2bNmkV0dDQDBgyodm+k3W7nwIEDalG6woLCCqdIJEmiUaNGOJ1Ozp49y9GjR+natav6GfT19eXjf39M0rkknJKTJkFNrrhjdmhoKPfddx//++t/nNh8Al982Z+yn6STSbx090tXNHZZzp49qwqX0sG5xXjaPVm/fj0DBw5U191xxx28++672O12dV1GUQavf/86t1tvR6HEe6N+xxSFRYsWMW3atGq1/3IR4kUgOM/nP3zOdvN29YublJ/E+5ve55ObPiE9PR273U5UVBTf/f6d6kkAl3jJIUd96/N0eHLu3Dl0Oh0BAQGVnu+nr15lf8pRooPDmPzkuzV6bVfK5s2b1f4sbt4QxY9Vm1dVKl60Wi0fT6t6zYhffvnF9UBSnPjjr6534mTIDUPU5ZgWMWzbtU2dq1dQsAZXnj1UluIKzxdCq9W6CSKLxUJRJT2JFCA27TTy3r3E//FHle2o75RO/ZWQMGLkZm6mO90JIoiUlBRSUlKwWq3cdFP1e2HKBqfKWhmn0xXDUUQRRqOR4X2Gk5WVpfY1kiQJs9lM//793Y6ND6k4NutKOLj3ICGEAC4vSM7JnIsccek0atSIXbt2YbfbKxZvSGzdupWBAweSnZ3Nnyv+5I/MPwjzCCPYXuL93GrayjCGuX3vSosYoFz14tpEiBeB4DznzpavEZGVlcWMGTPU9Mv4+HisitVNvABuX3i9oueTTz5Br9fTvn37Cm/aM996nDMWXzy0jTmZY+Pf/7mX6f/5rpqvqPqorMAXgGeWJ0VFRVX2fFRGYmKiep6ysSQSEp06dFKXFy5Y6BaEqUHD6XNVmza6XPz8/IiMjCQ1NdV9g6LQKCUFgMBayJ6qa+jRE4V7Ube0tLTqP49eT+vWrdmxYwdOp5OgoCBuv/12ks8mcyT1CKNuHEWQXxCKovD22yUxLoqisGHDBo4ePcrw4cNrNJOmrJiQZZl333W9qLRt25YhQ4ZcsZenVatW5Ofnc/jwYWw2W4W/a1mWXbErPy/gv2f+y3GOcz/3E0yJeGlJSxzFgUGVUJ0BxldKjUYVvvnmm3Tt2hVfX1/CwsIYPXo0hw8fdtvHYrEwZcoUgoOD8fHxYcyYMWRkZFQyokBQc0QFRNGGNuqDM4wwGqc3dqsbkZSURNfGXdWeI8VUFLhpt9vZvXu3K2CwDMn5RXhI56edJAN5zrodG3EhD5LWqWX58uWuFOQKplSqSvGbcUUoKAT5BgGwZMkSJLv7Dd+OnbhGcRUdWm1oNBrGjx9Ply5dXDdxLegsZtru2cOwZcs406Ixge+W96BZ7BaWJS5j75m9NWpfbdCpU6dy6yp6+/eoob5lw4YNY9y4cQwZMoS7774bm81GuHc4dw+7myA/1+clLy+vXGVbWZY5c+YM33zzNSnnhWdN0LNHTwok1zSyFStOxclZ81nMZjNbtmxh3rx55Obmuh1jcViYvnY6Ty9/mt1nKq+uW5ru3btzzz338OCDD6LVlq8LExISgtlsZv+5/RznuGpPafy1/lh1Vjdvi1ajJTAwEF9fX7p168bYsWMv5fJrlBr1vKxdu5YpU6bQtWtXHA4HL774IkOGDOHgwYN4e7vS6KZOncqSJUtYsGAB/v7+PP7449x2221s3LixJk0TCNw4ffo0oaGhjEoZRUelI2e1Z7mj7R0c2XOk3L77d+8n0DeQTFsmflY/JCRyyGEta5GRaUc7muCKk3E6ncydOxdZlgkMDOShhx5Cp9MhSe7uWIVLdMfm5YHDAUFBl33Nl8KYMWOY/tr0SrNrEhIS2Lt3L8r5n9vG30b7Zu0v6Rxt2rThxIkT6nLxTVRBwbuhNz6eroyNU6dOlXtAOjVOpo2t+bl4T09PN0+ayWLizK512KY9QWSPG9X2AMVs2r6JmUtnkk46W9jCbbG38cO9P9S4nVeLoUOH0qBBA5YtW4bNZkNRlAoDR0vXN6lumjVrhqIo/PLLLyQkJKAoCh4eHnTo0IGhQ4eWEwfuSPx31ht89PJn1WJLcnIyu3fvpkmTJrRr1447b7yT1lGt+er7r/B3+hNEEDnksJOd9KY3R48eZe7cuUycOJHAwEBkRWb0/NEsP76clrTEttVGhD6CmOgYJkyYUKW4oY4dO7Jjxw51OTQ0lIcffhhZlgnwDkCbq8WJkxRSaExjNU08Pi6el8a/xMxPZ1KQW4DRaOSee+4hPLz2O4pXxFWtsHv27FnCwsJYu3Ytffr0wWQyERoayg8//KDm0h86dIiWLVuyefNmevTocdExRYVdwZWydOlStm/f7rbOhIklAUsIMAUwUBlYbpoIwGAwYLFZsGPnG74hA5fH0AcfRjMaM2aa0tStHHlUVBQPPPAAf8x5j7XHUvHTBGKW84gNlHnsqRlVM/iFF2DWLJd4GTECvv0Wzt/UMjIyOHjwIC1atKj2AnALf1nI3v171cZuF6ofYcfOq/9+9ZJd4rNmzVLfhAMDA+k5pCcNQxsSGVxyLQkJCfz8889ux40cOZLOnTsDruym4gdYbbJkyRK27dimCr7jHOcnfuLIU0do5N+oVm2rKWRZ5tVXX3VbFxoaymOPPVaj501OTmbOnDnlC7RJEsOHD2fp0qUVHqegsE5Zy98vr1SzzS6X9evXs3r1atWGli1bMm7cOI6eO8q3n3zrVrV3D3tw4KALXQDo2bMngwcP5lj2Mdp82oZwZzh3cReppLIdVxxeM20zPnniE6L9Lz7NdeLECZKTk2nZsiURERHq+uPHjzPpl0lsLNyIEycT/SYyPGI4/r7+DBkyxC0j6WpQbyrsmkwmwFUKGWDnzp3Y7XYGDSpJtWzRogWNGjWqsngRCK6U3bvLu2a98eZ47nEiiChX0KwYm82GBg1ppKnCBaCAAo5znCEMKfeAz83NZc2+Ney2FtCwTTgReTY6d7mV5u17X9TO09mn+fPN17nrwy8xFGcJfP89li5d+FqrxWQyqdkD69evp0ePHgwZMuQCI14aY24bQ5vWbUhMTCQ3N5fMzMxKA1glJExWEwEeAZd0jqrUaWndujWnTp1S3y47dOigCpdly5Zx4MABwPXwuOmmm644puByMJlM7Nq1y81TFUssfvhhtl3+1FpdR6PRMHbsWH799VecTicBAQE8/PDDNX7eYq9PWRRFITk5GS8vL7Vpow0bBgwoKGSSyW52YXfaMequrIbJli1b3Gw4csTltZWQyt1DiuurFFNcXNHH4IO3wZumRU3JI4/f+V1t1JjmTGPgtwPZOnkrgZ4XLnwYGxtbYXxK48aNWfvPtew8vZMcSw43Nrrxiq+7trhq4kWWZZ566il69epFmzZtAFetDIPBUG4+PTw8XC2iUxar1eo2f1ncG0IguFwquulJSGjQMJ7x5VJ2y+KPP0aMbnPIAQRU6JmwOq2s/nW1q49KmoWzYTYmVEG4JKQnMPfzuXRIOVciXABkmZ2LFnGut/sYiqKwc+fOyxYvVvt574XB3XvRvHlzmjcvKdg2ffr0cr8/BYVCTaGr+FcNMXTo0HK9kY4dO8bOnTvVjIjdu3cTFxdH69ata8yOysjPzy83fSIj01DTkOYhzSs56tqgVatWtLrKaeJNmjQhKiqqwviygoIChg4dys6dO7HZbBzJ3MJ65zEypEyOKEcYHj64Rh/gjYMbk6nLJNIRiR492WSzhz30xvWdjYqKomfPngBE+ETwUIeHWLt1LUflo24dpgso4GjuUX5J/IUHOj1wRTZ1btD5io6vC1w18TJlyhQOHDjAhg0brmicN998k1deeaWarBIIIDIy0u2mp6BwjnPYsbu5etNI4wQniCEGDzwIJhgJiWCC6U1vdrCDKKLoQIcKS+IHBweTkZ3h1hxOm6nF4XSg0174q/jx8o8JJ5yk+HjSw8OJOB/Ufioqiu2VPCgud0b4/776P4pOuzwqhggDb0x+o9J9w8LC3ALsZWSKNEUMGjeoSg3lqpOsxER6//034enp5Pv5sWLIENXbe7WJiIggMjKSM2fOAK7PlElrYu3UtVc8PSEoj1ar5dZbb+Wjjz4qt23EiBFERETQrl2782seZvHuhSzYs4CJURN4aeC/qsWG9u3bq+UEAGJiYgDX1NWbT77JXR/dhdFmJI00OtKRxjTGy8uLe++9V60zdPz4ccIOhNFT7sk5zmHAoLaq0KBBQiLKL6r8ya9Drop4efzxx1m8eDHr1q0jKqrkFx8REYHNZiM3N9fN+5KRkeE2T1eaF154wa1ITl5eXp1sGiWoP0yaNIklS5awZ88e9a39Z93PaBwarFgxYGA3u/mLvyiiCE88uZEb6UlPdYzi5eIbTHHPECdOCihwBcfZG5On5NGQhm7nr8q0hlPjssvm4cEP48fTZ/16DjdrxvEmTVAqyC6AkpvnpfDzxp9R0hR8cXlN7GfsfL/meyb2m1jh/o888ghz5szh5MmTGAwGRowYoXpWLxunE6WwEMn30jw3zaZMwT81VZ2oCTCZCP/nP6/MlstEp9MxceJEVq9ejdlspnXr1lf+exFckMDAQFq2bEliYqK6buDAgRU+S0Z2HMPIjmOq9fxDhgwhPDycffv2ERMTQ58+fdRtYT5hLH52MbPnzSbteEkqs7+/vypczGYzP/30EzabDb/zPzdyI3vZixkzIVII44PG45HmgRwvI0lShfcOp9NJeno6np6eaojGtUiNBuwqisITTzzBr7/+ypo1a8qVFS4O2J03bx5jxrg+SIcPH6ZFixYiYFdQq5hMJl7++GW8HF4YMfIN35BCSUplNNE8QInrVtJIKHLFXyX5/I8OHQ4cpJBCPPGuoNcgiZefePmi9mxK3cSP3/xIIIGqOKpoWkqn0xESEkJ8fDyDBw++5Ov+74//pfCQexq4oamBFya8cMljXSqKovDaS/dyTMknnzx8cg7x7YyjaDyrlkZu8fbGo7DEdovRiIfFUlPmCuogsiyzbds2CgsLadeuHSEhIdV+DofDgVarveRYqry8PObOnav2PPL29mb06NE0aeLKTPzhhx84evRohccGBAdgyjGp9xidTodWqyUiIoKJEyeqMTNJSUn88MMP6ktY06ZNmTBhwmVd59WgzgbsTpkyhR9++IHff/8dX19fNY7F398fT09P/P39eeCBB5g2bRpBQUH4+fnxxBNPcMMNN4hgXUGt4uPjQ/Og5hV2gwVw4CCXXAIIQK/XExISok4RlEVz/gdAhw4//DAEGYiNjWX8zVXrddIzuifBU4KZ//d8vPK88JV9y9VD0mg0vPDCC5ddhl2WZRrpG3GQg6q9ktNBi335KHfKSDXYbDI3N5eff56P1RBNvOSaqjsQHsS7rw7n2TfWVmkMm5+fm3iR61ATubpMTkEO737/LrYCG20atuH2m29XS1nUNzQaTY09O2RZ5j/v/4c/zH/gwEHPgJ588eQXVT5+zZo1bs0atVotcXFxWCwWUlNTOXbsWKXHmrJNbtPADocDh8PByZMnWbBgARMmTODEiRPMnTvXbb+jR4+SmZlJWFjYJV5t3adGxcv//vc/APr16+e2ftasWdx3330AzJgxA41Gw5gxY7BarQwdOpRPP/20Js0SCC6KVqtlxIgRzJs3D6vVSmc6k0UWZsxo0JBOOp/wCW1pyz/j/0l0dHSl4qUsskZmSM8h6htXVWke0pyX73R5afbs2cPvv//utj0qKuqyhYvT6eS7WbNITUtzy5BRtDr26z1p9OGHdJ469bLGvhjFTeIURUEvlcQYNdQ0JLlo30WPP3H4MIs//RT7HXfQY/NmOu/ejd3LC9uPP1K3S//VPvmF+fzzvX8STTQGDBw9fJQ3D7+JT4gPD9/1MIH+F85quZ744ccf+Nr8NadxVXJOyk2i6W9N+efoqk1Nli2t73Q62bFjBxs2bKCgoKQfmgkTXnipJQm0aC8Yv1Z839mzZ0+F+504ceKaFC81GjmmKEqF/xULF3BVXvzkk0/Izs7GbDbzyy+/VBrvIhBcTWJiYnjwwQeJiYmhk7YTd3M3rWmNjIyCgh07e9lLUJcgunfvTlxcxRVe7djJI88VtImJbDmbxYsX8+233152dc8OHTq41XHx8vLinnvuuayx7HY7c777jtRKSrgrOh3p1V31+ttvcT78MLvvv5+k8/1xyrrh7bKFwa1urnQIp9PJrFmz+O6HH8gKCiIvMJC/hg1j9pNP4p2bS2CZbCRBeV6Z9QqRlHyO9Od/rOes/Hfmfym0FF7g6OuL/Wn7OUPJC0oRRSzcu7DKx7dt29bNoxUbG8vGjRvdhIsdO374oUevxs8d5OAFxy1uy1FRZV2gznSBrm5EbyOB4AKEhIRw3333sWTJEhw7HIQTTgIJ6nYnTs4WnlUDNJOTk9FqtZw+fZqdO3eiKAo33HADEU0i+HPvnxTuLqRFfgvANVWyZcsWGjW6vIJlkydPJisrC7vdTnh4+GXXM9m2bRsny/brKYXkcBBRnUHxb7+N8p//oLVYaCdJWLp146/hJY0dnbIdqzMfH3M6tz30W7nDbTYbv/zyC8eOHXO9zZb2Nmk05Jyv8lrdXYyvNRRFIf9cvhqcXRajbGTe+nk8MPjK0nKvFVrHtsY7wZsCSsRGZb+7imjSpAljx47l8OHD+Pj40KlTJ7eeSwBatG6xbBo06NHjwOHWy6sYBYVDOYdIOJNA37592bVrl9t2SZIIDLw2vWdCvAiqjSVLlrB7925kWaZBgwZMmjTpmnmADB8+HKfTiXW/lX2OfZzD1cSxU0QnRjUfBbjefIqnguLi4ujVq5fbGA/1e4iPD3zsVpzqSuPlg4ODL77TRXA4KmjGJssYrFYCrFaaBwfTecqUKzqHoihYrVaMRiPS8uVI5wNptYpC46QkArOzyQkIQJEgTUlDq4Wxo6egKEo5UbZ8+fJyPdJKo1GUy/rcFf8eirM/Lofiv2dtFMa7VGRZ5ixnaUCDircjo/MQj4hiJt46kYUJC9nIRuzYiSGG/ob+zFs0j9d3vU4WWejR8+8h/+bBGx6scIyYmBi3LECtVus2nVQ2CF9BQUbmN37jVm5VS/mX3j/YEcxnP37GR099xK233srvv/+uiveyIRvXEle1PUBNILKNapfly5dz9OhRgoOD1YqSxbRp00bNIrtWUBSFY2eP8emuT9FqtDzX6zlCvUOrfPyqVavYvHkzDocDX19fRo0adcmxL9VNYWEhc2bPVqeGok6e5J6TJ9EvWQLVUGI/IyOD33//XS2JcM+CBXj8/be63SFJKBoNZyIj+e+EfgR5xaNBgxMnWo2WQQMGuQnB+fPnVypetDYbfXv14sYRIy7JxkWLFrF3715kWSYoKIiHH35YzeAoxm63s3LlSvLy8ujWrZtawfTD3z9k7969OC0mwgnDbvTAN8yX6Y9OvyQbaoPoV6IZyUgiKD9VX6gt5PUXX0enEQKmmDVr1rB27VqcONFJOiRJYoW8gvWsV/cJI4z0f6dXScD++OOPHDp0yG1dRZmEBzjATnZyb/C9hGnDSMlMwYOS76ZFY6Fbm2706tWLgIAA0tPTCQkJwcurbkd9XcnzW4gXwWXz6aefukXPl8XHx4enn376KlpUPzh8+DCZmZk0a9aszjQ9KywsZOeOHShHDmOXcwns1YeOrbpViwdh7ty5HD8f1wLQzF7I+D+W4UxMRHI43ALvVvfpw7oBA9DbbCiShEOvR6PR8OSTT6rf77Vr17JmzZpy52kYEMAdd9+N7yXUtjiRc4JXlrxCyvEUbuAG9LgES+PGjbnrrrtIS0tj+fLlnD592u0NWaPRcOutt7IicwUn1p9g2J8r6HUgBUmBxFat+G3EQPoM7suwXsMu7Zd1lRn42UA2ZWziCZ7Am5J4DBmZyZMn0zCy4QWOvj4xm83k5OSwYMEC8vLy+JEfSaSktow33px69hQBngFVGu9fb/4Lva1EKFckXixY+IEfGN1+NC/0eIEPv/8QjwKPcvsbDAYmT55cLR7Zq0GdTZUW1E927NjB/v37adSoEf369aswEMxqtV5QuADXZIR7dVC2xH5tU1BQwHfffYepwESaNY0wJQzl52X8rlvKHbfeccWl3ku38wBYo8/l4ItDedXnDZTRo6GUKDBaLNy0aBHNDx9GkST2tG/P6kGDOHr0qNq/qE+fPhw/fpzUUnE6Xl5e3P/445UGLVbEiZwT9P2qLymFrqDpZJK5i7vQoiU3NxdFUVi8eHGFrUpkWWbFihWELJvFqKP5NEo9id7peg/stHMnSfHx7In1r/PiZfEDi3lq6VMknkukU1YntFYtOp2OQQMHCeFSCd7e3nh6eqpTk0G4i2VPPKssXAA8WnuQszsHPyp/eHvgwQQm4LHXg8/3fk6ARwBFwUXYTXYMjpIMPZvNxtq1a7ntttsu7aLqIUK8CNwo7cY8mXKS9RvW0/WGrowYPMLtLTwrK+uC4/j6+tbp4kiCEr788kvy8vJIJpk4XBlTEhKSQ2LRkkU0btwY4xXUTGnYsCEpp1LQoEFGJoUUdh4+CwYDrcbdxsg/luJrNpPr54fF05Pu69ahPe8Q7rFlC0ebNkV+6imStFp8PviAsA4dmDRpEmvXriUhIQFPT0/uvPPOSxIuAJ/t+EwVLuASL2mk0YhGNGrUCIfDQW5ubqXHOzMyGL9if7mbqE6W8co+zbAbnr8ke2oDT70nn9/yeW2bUe/QaDR06NCBjRs3MsA+gAIKSCMNvaTns9Gf8f7772Oz2WjYsCF33333Bcd6fuTzPGJ6hFOpp2hmb1ZhYC7gPk1ksRDuF06jDo3UBqXF1Id4q+pAiBeBitPpdKvwWOyK3L55O0V5Rdx+++3qtr/++qvc8c2bN+fOO+8st/6Rzx+hKL0ILVoiIiMu2CtHcPUxm11djhXKzyBbCi3k5+dfkXgZOnQos3bOwu6wc45zJJHE/dyPzqbjSPPWfP5wQ3ps3szB1m1pcvy4KlwADA4HPTdupOX5eKr00aOxHjiA0ceHvn370rdv38u2KzPNVYBQQqI//YkkklBCweEgxsODL6ZPR7Hb8ZRlisoUbZMkiZ6bN1d4A80I8qNo4ig6NO9w2bYJ6j59+/YlPj6es2fP8kyTZ9Rpj9dff10N/k5KSuKbb75h0qRJlY6j0+j46u6vcMgO3vrvWzgtzkr3LU1hYSF9+vQhISFB7e7u4eHBsGF129tXXVwbqSCCaqOyDsulg8osDgvfnf6OWfI3bCtahWdONg28vNyEi81mw2Qy8cnyT/BN9yWeeGKIQXtGyw9Lf7gq1yKoGsWBqf74k0++27bQ0NByXd8vFUmS6NaxG3/xF+tZTz/6ub1dmv0C+GNoH85ERZHQujU5pc5X6OGhCheA4FOnyCqTDnq5DA8YTiyx9KMfvelNU5q6Oohrtfy2cSPndDqsnp4UeXvjW8oDExERwSOPPEJsYcU1UMIff4o77n2mWmwUXF127NnBC2+9wCszXqGwkr9vaaKjo+nUqRN+fn5k5Wcxbfo0ChwF5JNPBq4A+NOnT1fp3DqNjiH9h7ilYl+IqKgofH19mTx5Mp06daJTp05MmTJFrftyrSM8LwKVQ4cOodPpsNqsJQFjskyHPXvwNpv5LTiY/ndPoO+cvuyz76O3pjceniHsMKTx6vdrWZ6RgUOrJTHSh19MyyiggDji6EhH9Rw6dOzcsZPxw8dfN+7Nus6YMWP4+eefCbGFYNKaKPIowugw0iSqCUMHD72i1OFinh7xNI2CG7EoYRFeWV4ohSVBhoqioHM4QQ/ZwcEsGjaMoTk5FFitZBQV0XPrVnWcIh8f/Bo3vmJ7AJrHN+f+neMx65xuVYWRJNd/pfCwWsnHVVjs3nvvBcD53Xc4OndGV7Z/0kViwQR1k7Wb17Lyr5Wu6RkrvPrfV5n+4vRyWWeV8daHb+Gv+AOuKZ5igX4p05ndunUjJiaGz779DM5/rIxGIwMHDuSvv/5SPTo+Pj6MHTsWgICAAG6+ufJijtcqQrwIAMjPz2fp0qXYbLZSDxWZ2xcupFVCAhogc+9e3rXsYW/eXoYwhB70cMUxaGV+uLkZGp0RJ06KTHncyI2kkYYffuUi570UL8xmMz4+PrVwpYKyNGnShOeff77CmipVZe/evaxevRqDwcD9999f4dvf2O5jGdt9LBa7hf+88x88HB4oKGicefzji+9JbN0af5OJDqdPozl2DA+nk/ULFuBfWEjUyZM4PTzInzKFmIbVE0jarl07bD/8wEqrguVCrXxkGd+8PPIaNWLAgAHqam2rVrBtG/ToAcVv6TodiO7R9ZJFfy1yKzpnxMjncz7n8UmPV+l4g9Pgvoxredy4cZdkR3h4ONMem8b69etRFIUuXboQHh5Ohw4dSEpKIiAgoM5kKdYmQrwIAFctjrJu0qCcXJodPowGkDUaCnx8CNlzFOIhiij1bVWDBlmnx2C10nvtGgx2B3s7dMCrYVNkZOzY1RRUJ06C/YOvG9dmfeJyhcuuXbtYtGiRuvzOO+8wbdo0fH0rrj7qoffgjRfe4EDyAXw8fIg/lAzf/ETEmjUuj8eECeDjgz9w34MPIk+ahMbpBJ2OoGr21nX5979pfccdfNyyJYWla2KcP4/BYqH18eME3nsvdwwejMHg/oCibVtYvBimTwezGfr3h0cfvSKbUlJSSEhIwGg00r59ezZv3oxer6d///7lzy+oNsoGykpIFJqr3h5B0klQqt6jAwcvPf/SZcWL+fr6MqJMrSK9Xl+nshRrGyFerkMUReFU3ikcDgdSvqt8dIMGDfDy8nITMLIkuWptaLXMGz+epCZNQJa5zzMGS5G7q1wjw4TvvyfmfK+e5ocPM//OO0luEIBXmfZ4w4cPR6vVknx8P2O+G0euZCZKCWXZP1fi7RtQ49cvqF5WrVpVbt3777+PRqMhJiamwp5LGo2Gdo3buRYaxsOvv8Ivv0CDBvC4+5uuxWJBURS8q+i+vyS8vPBctIinc3NJzc5Go9ezbds2Dh06hMbppEvLlgx+/XX3FgRl6d/f9V81cPLkSX7++We138369SXFz7Zt28YTTzxxxTFIgopp0bwFJw6dKBHxTid3Na66F23yPZP5YtYXaBRXgcWRN428okB3wYUR4uU6Q1EU7v31Xn5J/AUc0JzmjPMYR8uWLcvtawoMJKFNGwo9PFzCBUCjIc4SR2jHUE7sP4GX04twH19CjhwhulSTwYC8PFru38WfDRrSnvaA601k5B0j1beHEbNHc0ibBEAyqYz872BWT99ew7+BawCTCZ5/3vX/oUPhfAxGbVG2W24xsiyTnJzMsmXLGF6qd1FZjh07RqbDQYtnnyWoVIE5RVFYunQpCQkJKIpCixYtGDVqVI3ESmkCAog5Lwqio6OxWq1IknTVPR0HDhxwa9RXGlmW+fHHH3n44Yevqk3XA8cTEjAnHEcLKJKE0WKhy/btfOewYdnuirmKaB3Bo7dX7lVrFN2IV//vVRwOR5XjZASXjxAv1xnf7/+eQ/sPMZWpaNBgx06iJRHrHmuFmUaLRo0ioExNF0VR6N+sP81vbo7NZnPd4E+eRPn+eyjdIdXDm4FBA3lo8kNkF2YT4R/h1nPmrJTrNm6alI3gwjgcdk50b0+TwycBcP7xhysg8K67asWeffv2XbQ/U+nqumVZuXIlW7ZsweFwsG3bNm677Ta1UeWxY8fYtWsXsiwDrria+Ph42rZte8HzKYqC0+msMNBYURT27t1LdnY2zZs3p+H5+BlFUcjLz8NoMOLh4XFV35hPnjzJjh078Pb2vmhPpgr7UAmumNXffce5Uunw8cnJ7OnYEZvRUw3lTk9IZ3/n/bSNq/zzJ0mSEC5XCSFerjPO5J1hOMPVeBUjRqKIqvQBdEw6TmxILB42G47zb6Fam5VGMY2QJKnkJh8bi/TkkyiffYYzL4+0Jk04dcd4bhk+HA+jBw2M5Zu/BSh+ZJUSLEGKaO9wMd7+6CWiuvTmQPP23LRkCXqzGf7+u1bFS9kKum4oCj6V9FeRZZkDBw6oD2STycS2bdtU8WIymVTh4hpKIT8/v8Kxijl69CgLFizAbrej1+uZNGkSERElfXuWLVvGzp07kWWZ3bt3c8stt9CoUSMe/+/jhDtcQZBODydvPHd1ahElJCTw66+/qt4rHx+fSjsIA/To0eOq2HW9YSkjCq1GI4Vlavto0LBh74YLihfB1UPUebnO6KbrVi77p7IbpQ0bO9jBYhbjKJXu5zQYmfHljPIHvPYaUkICukOHiDlwgPseflh9EFXEVz3fpJkcT4QSTju5JfMnzL68i7pOWLZtGV/lLeDppn8ytdM+nnr2HmSNBkdgQK3ZdNHuzXY7t0RFVbipoumf0utatWpFaGhJ08vg4GDaXCSTZ+HChdjt9vOntvPVV1+pwlyWZY4cOaIKooKCAnbv3s0rs14h0hGJ7vyPwWLg6++/vvB1XYDCwkIOHDjApu2bePaNZ3nu9ef4e+vfFe67fft2t2m3goICLEZLhQUDb7nlFrVFgqB6aVhKFGvtdmLNZgw698+njEzPdj2vtmmCShCel+sMH71POfFSdjmTTLLIYhObSCXV1XG2zIPGXmCv+ASXkMLXb+idHB565xWl6F5PPLLsEVJwxRVlkcUywxqWDO6Ps/eNHP3vf9FqtQwfPrzC+KWaokePHmRmZmIymSrc7m82E1iJgJUkiXbt2rFp0yYcDgcBAQF0795d3e7l5cX48ePZtGkTAN27d79o8zabzea27HQ6+fqNN7hn2jT0Hh7lam5oNBoK8grc+tNISJw6dor09HQ3r01l5Obmsnv3bho1aoSfnx9z584lNy8XGVltdrj+z/WgwKAegy46XlxsHIcPHyaQQCQkZGQ6de9Ehw4dLnhcsUgr/i7JsnxxcSkA4Ja77ybgs88wSRINNRq6fv01HQwG3pv5HrJdRkEhtHko7ePb17apgvOIrtLXGXa7nXfeecdt7rxdu3YcOHBAfSP9lm85wQl1uxde/NPxJJKuJA7AP9ifpx5/6mqZLQBCXgkhi5L4o1BCeTHkRUznSoSDVqtl6tSpeHtfqHBJ9ZKfn8+xY8dYvXo1Bfn5qs9AZ7czJj+fFh9+eMHjk5OTyczMpHnz5lecSfPGG2+onpfSGOx2nn35ZbZu38769euxWCwEBwczduxY/tzxJ8k7ksuJ+ICAAJ588skLni8xMZGff/5Z/e54eHhgKVu07jyyJPPKv19xW5eamsqcOXNUm318fHjooYf4dO+n7Nm+hwB7AF07dOWBoQ9UaoMsy8yYMUMN9NXpdOr3W6fT8cQTT1zxvTE9PZ0NGzYgyzLt27e/dlN2HQ5XrR7BVUF0lRZUGb1ez9SpU/npp5+w2WzceOONtGjRAk9PTw4dOkRRURF+NvcPkR07rQZ1IGF9AsiuN+JHHnyklq7g+sVb702WvUS8eOGFUeMeWOp0Ojl27Bjt21ftDfHkyZNs27qVM/v3Y7PZaGAyMb5bN6QL9GIpi6+vLx07dqRjx45kZ2ezdfNmSE/nxnbt8Ona9aLHx8XFERcXV+XzVYbT6aRt27bsqqB9gE2v58Cff9Lz5ptp2rQpWVlZxMTE4Onpyb033cvrh1/Hnm93EzBVCY5dvny5W1xOZcIFQFLKexejo6N54oknWLVqFUajkd69e+Pj48PzNz4PN1Z+XrvdzhPvPoHZZiaffCKIIJLIcnY7HA6++uorpk2bdtFrqYyioiJ+/vlntRlrSkoK3t7eRFUyHVihvU47t/90O4nnEmkV2opfxv3CX4f+4rcNv2H0NvKfW/9DoFfgZdtYXTglCYfVqsbylfVmCeoOQrxch3h5eXHfffe5rRs2bBhDhw4lIyODPz7/w22bFi0nE07yyr/c3xoFV5cDUw/QfkZ7cu25eOPNn/f/yb4t+8jMzFT3kSRJzaC5EIqi8MEHH5CXl+daodOBTsdRT0++2rqVh4YPh8jIS7YxKCiI4TfddMnHXSmKojB//nyOHTtWvMJ9qlNRUM5PoYSGhrrF0gC8OPVF3n//fbc05QvFaxVTWrhcxECiY6Ir3OTr68stt9xS6aFHN2/mwMqVOIxG+txzD+Hh4Tz33nOE2cLQosWJk33sI4QQtRhkafLz87FYLHh4eFQw+sVJSUlx6yJvNps5cuRIlcWL0+mk48cdSchNcF1P9lGaftCUoflDiSQSBw6e+vApvnr2K/Ta2svU2bx5M1u3bsXhcBATE0Nubi6n09JAlmmQl8eDgwcj1cJnW1AxQrwIVCRJIiIigtvDb+dkxknOcAYtWjrSkaJzRReMTXE4HBTk5+Pn7y/m2atAQUEBq1evxtPTk/79+1ep/4mvpy9JLya5rWsW1YzPPvuMrKwsJEmiQ4cOhISEXHSsHTt2lAiX0kgSpyMjWfnXXwys5foxl0JOTg7JycklKySpRMAoCigKfyUkkK7VVth1V5IknnjiCebMmYPZbKZRo0YXFBTFdOjQwa2QXFBQEBaLBavJhNFiwbegAA+LBV+tltH/93+XfF3Hli/n19WrKfL0hMJC0t98k1733INsldHi+sxo0RJKKCZMhBBSXrgBn3766WV7X4KDg92mwzQajVs9ngsxd9VcVm1cxRH5iNt6U76JcFzxcTp0RNuimf7adHTo8PPz47HHHruq6er5+fmsX7+eIrOZrMLjfF7wOTZsxElx9NP243RAALN//ZV7e/aEwNr3EAmEeBFUwLibxpH9TTbJJOOLLw1ogKIolRZfWvX99+zbuRObXk9gXh5jH32UgHbtasHy+kFubi4zZ85UXdJbtmzhhRdeQKvVoigKsixXuZmbRqPhscceu2QbSntryiFJbE1Lo/9VDPj8/PPPOXv2LHFxcUycOPGC+zqdTo4cOYLRaCQuLk6traHT6dwyd1o1bUp6cjLZdjtoNBQVFbFj61ZatGhBbGxsuXENBgMPPFB5bElFDBgwAD8/P/bu3UtQUBCjR4/GZrNxpmNHwpOT8SyeRho8GC6hQV8xh5Yvp8jfX13O8/Ji6/r1aCUtpROSZGQC5QCQFHfhdp7KCt9VhZCQEPr27cuOHTtwOp00a9asStOS02ZOwzPHkxhi3Btf4mpcWBodOnXKLi8vj5kzZ/LMM89ctema/Px8ioqKUJw2fvL5W+0IfYpTeONNN6kbqRERmA8exLtXr6tik+DCCPEiKEd0dDTR4dEYMkqqizZp0qRC4SLLMvt27sR0/gZb5OXFXx98wLhvvrlq9tZVXnv/NWz5rkaXFiw89dRTRPpH8tlnn7nV1XE6ncybN48kTRJfH/0aGzba+7Vn6ZNLa0w8tGnThh07dlS63el0Yrfbr8rb7+uvv67GaRw7doz333+/Ui+B3W5n5syZ6sNYr9erfZQ6d+7M9u3bsdvtREdHM+r229n24YesKiVonMDGlSux9+lD06ZNq8X+Ll260KVLF3XZaDQS260bJCa6Vuh00PPyUmw9yuRTeNhsFOTnM2nMJL7++Ws88KCAAjRo0CoSaM4/7Ms89K+0M3iPHj3UTLCqCAqrzYqUI6nNCW/iJjawgXOcwx9/+tAHGdnVF02R0Ujun/PCwkLWrl1Lv379rsjuqnL2fCfwPL2VbEpqT8nInOEMABpFQamG2CxB9SDEi6BCHnnkEfbv38/x48fx9vamfyW9W2w2G/YyN0Z7/U5gqxb++usvHPkO1bXvhRfvznyXAW16Y7VYyj1ckk8kM9M5U80mysjL4B/f/4OP7/64RuyLiYnhpptuYtmyZRXGbYSEhFw1t33ZwNgLFaJbunSpmxfBbrcza9YsHn30UQYPHkynTp0oLCykQYMGaLVa2mRlsaewkOziqTRF4dipU6QuXMigQYPcREe18tVXEBUFJ09Cp07w1FOXNUzf8eM5/cUXnAkJQVEU7DodVqeTzZs3c3Ofm9mwYQNG2QhOJzqn060eUzGSJDF58uQrvKBLC1otm/HVjna0pCUmTPjiixFXB3pfrAQdO0FqXGPkMveRYkFxNVi9ejUA3ngTQABnKTl3CCEgy0T6+ODToHyxTUHtIMSLoFLatm170VLsHh4eBBYVqdUo9VYrUZfhHr/W2Lt3b7nUWw/Zg5179lTY5M/pdLoVC1RQOJh5sEZtLOsxWLZsGSdOnCAkJKRK8R4VsXzvcj7c8CE6SceHYz4kLrx631TLdj4HiFm2DGQZpkwhODiY4OBgdVvg8OGMmzyZbc2bk9iyJUXnP6dWq5WDBw/WnHjR6eC11654GH23bjQ4cAD9n39ytHlzlPMP+LS0NAYOHIi/vz+nT58mffdu/A8e5Ejz5jgMBjSShN5gwOl0Eh4e7vY7uRr4ePtQaCzE0+qJHj1WrBgxuoTAeTRoyJf1tD6dToPMcyTFx+PQ6cg6H0wdWIOxJWfOnOHYsWO0bNmSkJAQioqKANf01V3cxS/KLxQphYTrQrk98naiGkRdsD+X4OojxIvgipnw6qss/te/sFutRBkM9P3f/2rbpFonMDAQc6FZFTAKCjIOFE3Fjf4kSWKEMoJQQimkkM1spnds76tp8mXfnDcsWoT9k0845l3Ec+32k0MOAPu+2seep/YQ4B1wweONRqNbi4ELBRwPGDCAI0dKgj+DsrK4Yf162LAB2reH3mV+Z/36Ef7229w8bx4ZGg1ppTbVh8Dywl27iH/rLZyxsapwKeb3339n8uTJFBYWslOWSSv1oiErivo7TUtL49NPP2XKlClX1faPnvmIt2e/zVnTWbrGdSX9eLqb10zCNc21pU8f/LOz0Tud+JjNaFq1Ijo6mgEDBtSIXcuXL2fr1q0oisLq1avp1q2bW6yUv+LHZPtE/CMisNrt6LV6+vfvL9Kl6xiiSJ1AUAOcPXuWTz79RC3zXkQRYwIa8mdOTrkpIwUFCUn9P7jm2v+fvfOOj6Ls2vA1W7PpvZIEQoAQepHeexVQUQRBxN57f/XVz+5rx4KKCgIqCCJIL9J7Dy1AEtJ73bTt8/2xyZLNJpAAIQHmyi8/2Nkpz2x2d86c55z71qg1BAQEMGjQoKuig9IQHFi/npCZMwnOzOT1IfD+APvnfx78M/cNuO+S+1m+fDnnzp2jc+fOjBgx4qLrnjt3jq2zZxOYkECP/fsJqJxe+PBDePll23pieTnFBw7g1KwZqogITp48yfr16ykuLsbT05MJEybUWLhbnR9nv0dybikArkodL//ns0tuc7XQ9+yJev9+cnx8+OW++yh3dbV7/pZbbuHMmTM1d45VQRAE3nzzzYYc6iXJzs7mn3/+ITU19aLreXl58dRTTzXYOD744AM7JWalUukwzRUWH09yRITts6rRaHjuueeuuHZIwh5JpE5Coonh5+fHA/c/wKFDh5DJZPTr1w+L0Yjs66+xVJlWM2DA1ckVg85gN80kQ4Zeryc5OZlVq1bx8MMPW92760FmZibJyck0b94cf3//q3ZuVbF8/TXBmZkA+JVi7YCpOA0lSiL8Iuq0n0mTJtX5mK1ataLVI4/AkCFQGbj4+cHQobZ1ypOTWfzJJ2S4uKDR6xno5UWXN94gLCyMnJwcAgMDca7FMLIqB3dtJjXPgKJCDLDcpGL+d29z76P/rfN4LxtRxFzR/u2Xl4dXYaFD8GI0Gh1qlsyYkSGzF9wTG9+N2t/fn8mTJ/PFF19c1In8okaf1bBYLMTGxpKVlUVERATh4eF12qY63no9+RU1Xi5aLbl+fnY3GeXl5SQlJdGyZcs6j02iYZGCFwmJBqJZs2YOQl7de/Xi8KFDmCwWwsPCGDtuHN9///1F95Ofn09RUZGDsNrFOHLkCCs2riC3PJdmzs0YO2rsJeuXLgd5FeGzJ/fDzjBYHaVELlcxPmQ8A9sOvKL9i6JIQUEBCoXC/s4sOhpmz4Y5c6xtwbNmQZX6lX+/+YakijoPg5MTOwoK6FRcjJubG25ubnU+/t69O+06YQRBID7z4oWker2eM2fO4OLiQkRExOVPNwgCpf7+OFcEaE41qPd26NCBkpKSC+J8WHVfqjtTGxW1eJFdY9zd3Xn44YeZM2dOrevUtT6noKCA+fPn23y19uzZw4gRIy5Zx9SsWTMSExNtjyMiIvDYsoWS/HzMMhlFnp5kBAdxmENkkEEggXSjG67VAkeJxkUKXiRuSNLS0jh79iy+vr4NctG+XEaPGUP3W25Bp9MRHGzVz/Hx8bmo7oq3tzceVbQ+6sKHmz5EXi7HgoUNZRvQ7NM0yOvQ8ccfST54kLDERAQR3jndjnc+XYy7qychXpdW+r0YFouFJUuWEBcXh0KhoFOnTvZ1OZMnW39rwFDtzl6vVGIsKUFdj8AFoHPnbmzcccAWwIiiSJBn7RmbzZs3s3PnTtvjLl26cOutt9brmFXRzZnDuUcfRaXV4lRebqff4urqSkREBFlZWXbBi3Wg2DJgFiwEtrm0weS1YOvWrRw7dgwPDw88PDwQBIHWrVtz6NAhm9/UvXUUR/z333/tDEGNRiMxMTGXDF7uvfde1q5dS1paGhEREdYursTzeKYfJ6tFNJnR0WzhX3ay09bOXUQR41LGEVAP41mJhkUKXiRuKERRZO7cuaSnpwPWO+WMjIxL1lFcS6pnUCZOnMi///5LTk4OBoMBQRBsc/JeXl6MGTOmXlNGGfkZtClrY2vTbkUrluUs42kubjJ4Oag8PQk9fZq8+fMRNRqipk1DuES3WV5eHjt27MBisdClS5da63n279/PmTNnAGs31qFDh+jcuTNBdbAtaNO9O2ePHEFXkRkKMZlQ18Ehujr9ho7jwMHt5JVZvyplsgIefbbmgvSYmBi7wAWsGbABAwZctuFkaL9+pK9fz6mjRwlYvZqCoiIKXV1xCQjgnunTAWjbti3rN6y3Kw4vNuah0peD2gnf6GCevuPq/+3ritlsZtOmTaSnp5OSkmKbMiopKeGOO+4gKiqKPpehg1PdQbw+VA2C9/33TX5rq0HT+14UKFACCSRgwTq9ZMHCec6zZcuWhutOk6g3UvAi0WQwm8188cUXto4EtVrNSy+9VOeuEKPRyOzZs+10QkRR5NSpUwwfPrzJdgsEBQU5qMoajUYUCsVljfnXBfNtgQtY2z8jDZHk5OTUa+qprghOTvg8/HCd1tXpdCxevNim4ZGYmMjdd99dY0BS2b5aidlstr03tFot+/fvRyaT0adPHwffnug770RwciJu3z40zs4Meu89uxqGpOQk4pPi6dGlxyWnA559+eNanzt+/DirVq3CYrHU6nNUWFh4RW7ZwcHBBAcHw5gxDKjheU9PTzp378zhg4etgoiCjrctbngo3OGpZ6GRswX//PMPx44dc1huNpvJzc21/d9sNtcrSG/VqhXx8fG2TiG5XH5ZwcVB3Tk8PDtZVYuxfmcoBXtBTiVKu44kicZHCl4kmgx//vmnXSulXq9nzpw5dZK/18bGMn/xYootFgcdlTqb5zUhalIzrgt5eXnoc0qg2vZOOPHrr78yceLEOhcdZmVlsX79ejLiYvFNS6V1Vhy9/1iHwvXyu/qSkpLsxMeKi4vZsGFDjVMFnTp14vjx4xQUWFuvQ0JCaN68OaWlpSxatMg21RYXF0f7oCBcZTLajxiBrOLc2956K21rmLL53+z/UZpvbWPf/u92RowbQZ9u9b/zLyws5I+//uAv/iKHHMYylggcC5QvJrp3tZg4diITx05s8ONcDrVNibq5uREVFcWmTZvYvXs3YJ0ifeyxx+p0w9K9e3dUKhVnzpzBZDIxZMiQy5rW0QUHIy+8EOwLgsBQl0H8U1ZGjpiDN94MZGCdioElrh1S8CLRZEhJSXFYlp+fT3FxMWvWrKG4uBgPDw9Gjx5td7e87plnOKLRYHByqlEArlu3bk0263I10ev1fPvtt4jVAx+LGV+ZLyUlJRw8eLBOwYsoiqxcudI6/SZXkxoaQURCCnG3tCPqZFKNr3Nd8Pb2RhAEu26TxMREtFqtQ6ukt7c3d999NwcPHkQul9OvXz+USiV79+61uyBmZGSQkZEBosjWTZt4/P33kWs0NR7fZDLZAhewao2sX7X+soKXvXv3sp71nOUsk5lMGGF27e5gzR7WxeX7RkEURUpKStDpdHh7eyOXy2tVylUoFKSmprJr1y7bsry8PObNm8fkyZPrVFjdsWNHOl6hj9rU6S/wyewPcMdaKKwVCnhr5jt87vYV85fPx1xgpk1EG0aOHHlFx5G4ukjBi0SToVmzZnYCZGBNia9YsYL4+HjAWoh77tw5hg8fzi233MKRw4c55OKCqZZ0c+/evRk48Mo6Xq4Woiiyd+9ecnNzCQkJoWvXrld1/0uXLnXIMinKyxmzejUr77ijXvsyGo12xZAIAnk+PvTavRPS0iA09LLGWNu01YoVK5heUcNRFbVajZOTE8HBwbbW5upTRFXHWODhwdbXX2foZzVrsdTUhiuzAGfOQJs2dTuJCsrLyymmmO50J4oou5qTyv+Hh4fX2YH5ekcURZYsWUJsbKxtWWhoqIP9QyUFBQWsWrXKYXlKSgrffvstPXv2vCbeRkHeQTz+0DP88s8viKLIo+OeIMTXGnA+PuXSwn5Gs5E7F95JYmEiL/R9gWndL24sKnF1aBISk9988w3NmzfHycmJnj17sn///sYekkQjcOedd9ppb6hUKh5//HEKCwvt1jMajezevRuz2cz+fftqDFwEQSAiIoK+TcQB1mAw8Pvvv7NhwwYOHz7M6tWr2bFjx1U/RnWCMzPZ3b8/YG1T7dGjR532pVQq7es0LBaMSiXbBgyg8CKeMyUlJRw5csRWy1ATmhqyIsnJyQ7Lzp07x+eff8727dv5448/+OabbwBrJq1169Y1Z9MEgdKLFHK6uLjYhANtiCLvLlzI33//Xet2NREaGkoggTjhZJdtqfy/TCYjKiqqXvu8njl27Jhd4AI1Z1OrYi4ttXZQVUOn07F3794rcsOuDxFBEbzz0Du8+/C7RIZE1nk7URQJ+ziMvxP/5mjhUe5dfS/vrXuvAUcqUUmjZ14WL17Mc889x5w5c+jZsydffPEFI0eO5MyZMw0mrCXRNLBYLHyy4BO02Vq8Arx4fsbzvPjiiw7rubi4kJeXZ7dMr9djMpkwVL+rE0WcysrQubiQkJDAP//8w5QpUxryNC5JUVERc+bMQavTspzl5JCDi8WFssNl9K8ILK4GI0aM4Oeff7ZlX2SCwJ3ffENubi6ZmZm0atWqzlkAQRCYMGECixf/BqdjMcuVnG3dGqKiOLdoEXcbDPj26mW3za5du9i0aZPtcXR0NJNraGV++OGH+fzzz+2WmUwmSkpK7KYDly5dardObm4uZWVlODs7M2XKFDIzM0mMi2Pjxo2IFR1OKr2e7rW0T1fyyOTJ/LzwN0xKpbWIVy7HDLai0okTJ17y9QHo2rUrj8Q9wk9nfqKIIjy40M7u7u5O27Zt6dy5c532dSNwObU9buXlFFfNpFks1r+JIKDX65k3bx6PP/54k532TchPINOQaXtsxszCfQt5ZfgryCWPtwal0TMvn332GQ8++CD33Xcf0dHRzJkzB2dnZ37++efGHlqdMJvNaLVaqRL9Mnh79tuUJZahLFNSfL6Yl95+ie9+++6CPb1Wy4EDB2rs1NDr9SxbtsxBFl1msaCrMN8DOHz+MGvOrmnQ87gUf/31FzqdjvWs5zSnySWXJJJYVLiIb7/91jYlVh9KSkpYsWIFy5Yt4+TJk4C1oPXee+8lODiYsLAwnnn2WVxcXAgPD6dnz56OgYvFAqmpUMtFx8/PjyeeeJq7X36FEjc3W51Lvrs7B/7802H9qoELwKlTNRtLuru71+hYXT1bU5MKq65CqE0QBIKCgujdvz+3jRuHd3k5/sXF3DVoEMGXmCYMim7P64WFdDx+3MGq4ZNjn6A31k3hVSaTMeWuKfz+2O9MGT0Fb29vAgMDefzxx3nmmWcYNWpUk73oNgQdOnSo8YLtUuXzWBXn0lK6HjqEvKo0v0xm9zfJy8tj8+bNV32sVwsXlQtKHDuTli9fTmF5IUuOLeF45vFGGt2NTaNmXgwGA4cOHeLVV1+1LZPJZAwbNow9e/bUuI1er7ebt76Up0dDkpaWxl9//UV+fj5gnea47777CLwMPYmbEXOR2fbBFxBwwYW4c3F8nf410ydOZ+3atbbXtjoWi4Vz5845XBzcvL3tajVUBhUrF68kaHoQXZp3abiTuQiV79di7IOEYorJzsnmt99+46GHHqpzp4TZbObbb7+1tRKfPHkSQRBo1qwZXl5ePPjgg7VuW6mDk5mRgUKno9vRo4w4fhxefRVq6epSqdTIRZGqOa7ql+T6WqTdeuutLF261Ladl5eXw/lHRUVx/PiFL36FQmEXgMXFxXHw4EEARj/wAJGRF9L9MTExJCYm4ubmxoABAxwvqt98g+s33yDm5treQ0UUcYQjdJ/dnePP1e2CIwgCfn5++Pn51XlK7kbF09OTRx55hJ9++skWZAKUlpbWuL5ap2Pgzp2EZGTw27RptRaBV3abNUUC3QJpK7TllHgKEya88KIXvdh0chP/OfkfLFhIJ52HOz/MpxM+rff+DQYDqampeHh42JSHLRYL5eXlaDSa68JctKFo1OAlNzfXZtlelYCAAIe500o++OAD3n777WsxvEuyfPlyu4urwWDg+++/JzQ0lJkzZ97Ub6yaEEURbZkWBYpaiy7dcCOlNIU///yzTiJUarXa9kWp0WgYOXIkS7cvpSyzDCecUKIkyBLEunXraD29NQaDAaPRyNmzZwkKCromXiW9evVi5cqVBIgBnOVCQbIPPggIWCwWdu/eXWd/nw0bNthpoIiiyNLff0es0IXp1KkTt956a413/YsXL7YJ+BnUavbccgth8fFEffghzJwJNfj9uAUG0sFi4YjRiFmpxLO4mOSwMObOnUvbtm3p27cvgiAgl8vtMpBV3/8/rPuB06dOI5PLmDVpFu2i2zFmzBhOnz5t6ySqXgvTs2dPu+Claj1UXl4e//zzj+3mJT09nRkzZuDr68vBgwfZsGGDzWwvPz+f22+/3f6kBIFhjz/O7nf+j1wxFz16drObMspIK0tD4vLw9fWlbdu2HDly5KLrKQwGOhw/jgCEpaQQnZNDgrs7umrvAUEQ6jX1ptfrOX78OC6lpQSvXUu+KOL+3HP4NKDWzdYnt/LsV8+iQ0dLWiJDhhkzU5iCgEA55Sw9upQPx32IUl53CYTk5GQWLVqEwWCw+aOFhoaydOlS6w2RDA4qDyK4CXw9+WvC/MMa7BybIo1e81JfXn31VZ577jnbY61WS+hldj7Ul/Lycvbu3QtYv1jtujGqkJKSwqeffsrTTz9dbzO9G5WTSSe589c7MVlMqFHTR92HyGaRFKcUI6sye1mZgaktcKneZtu+fXtkMhkGg4GoqCjatGlDf6f+LPt1GU5cCJDEUpFvvvnGtl+z2YxcLqdPnz4MGTKkgc7aSufOnbFYLHjs9IBCyBAz0KBhNBdUPusjYna+wqyvKmKF260oihw9epS2bdvSunVrh/UcCihlMs60aUPU9u2g1dYYvACM/eAD2i9aRHZKCtv9/ckoLITCQrIzM/E5eJCoXr2YFRrKr8nJ6C0WFAoFzzzzDACLti0ifl88nljPce6Cubzz3Dt0796d7t27Y7FY0Jvsp2qKi4v56aef7JZptVpOnTpFdHQ0Z8+etcu6FhcXc+7cOXx9fYmLi7NzCU5NTUUURYdgThAE3vjPG7i/404pF7IDfuqrL+R3M5GQkHDR51vFxtJz3z5aVryPDUolLn36cHuvXixfvhydTocoinh4eDBw4EBatWpVp+OWl5ezcOFCtLGx3LNwIR7Z2bgDcWvWkL90KZGtW1NUVISTk1PtHWuXgZeXF0+Nf4pVq1bZvpuq+kpp0HArt2IWzQ5TTBdj6dKltu8ri8XC9u3b7VewQLQ+mo/1H3Pyx5Mce/YYrs43j/9SowYvvr6+yOVysrKy7JZnZWXVOvWiVqtrnC9vaGJjY/n7779tUwDnzp1DoVDU2gZYVlbGihUraixYvBl5f+H75Fpyycaqz5GkT+KelHvQKDSoTCqUKG1BTNWgozqiKOLm5mZL1Y8YMcIhwzWoxSB2BO7AklnZNixiyM2lQG6kRNRiVCkJJRSz2cyOHTuIiIigefPmDXDWF+jatStdu3blaZ5GFK2BVGURsq+vb73auf38/Oy1M6r43VRS23Sqp6cnZWVlFxZYLEQkJEDPnhdXYhUEwu+5h/LYWEoWL7YtNprN7D56lMgXXyTYaOSVyEgs8+Yhq9Lldfz0cZy5EBS5m9yJOR9Dn+g+zNs0j2N7j6E2q1EICtpHteeO2+7g+PHjNU5FVXaeBQcHo1KpbF/uCoWCc+fOkZSU5FA4qlara609kclkzB45myc3PIlBNOCr8uXA4wdqfx0agMTERM6cOUO7du0cjDyvR1xcXGq9sQPIiopCsXs3JpkMg1rNvp49EXx8iIyMZOTIkZw+fRqtVosgCKRnprPzp50YSgwE+AYwduzYWgP9vXv3kp6eztB9+wio0AESgIiTJ1n955/8brHY3lOurq48//zzV+2cTSbTRadONWhwUtQvYKpL5tkJJ9xx57zpPFuOb2F8z/H1Osb1TKMGLyqVim7durF582Zbhb/FYmHz5s088cQTjTk0OwoLC22By3GOo0ZNbEYsEX4RqHS1Z1aa8lzttSQjIwOzyWwLXAB60QtXXNGYNLbWUjNm8sm33aHXRnFxMf369btojcFrD7xmNW7Lz+f0od1YXLxxBVzx5ZTlFDqZzhYkLV++nGefffaKz7OuCILAE088QV5ens2YsT6FnRMnTuTMqVOYRRFEEbnRiLlKQK/RaIiOjq5x2+nTpzN79mzKysoQLBaitFo6jBkDb73lEACZTCZkMpldcBgSEoK7uztBe/fSe88e5GYzZ6Ki+OPOO5n2228IcXHIPvoIVq60bePq5ooxy2gLTnXoCPcPx2g2cmzvMTzNntYVRThz+gxz5syptQurpKQEURQJDw+nf//+HDt2DFEU0el0toyUIAi2IM3V1fWSgeF9ve7jvl73XXSdhuL9r99Hl6dDjpyde3fSv09/RgxvOj5cl8OoUaNYsmSJrc1ZpVKhUCgoKytDpVLRY8AAUgYMYOM//6CVy/Fs25a7Bw3i7NmzrFmzxq6mMTkt2WZ1UVxYzP99/3+8+dSbeGo8HY5bGTxYqr2PRZmME0YjYpX3cXFJMU+98xSfvvopSsXlqVlXJaYshnLK0VCzOKKK+mfgfX19SUurfQrTgoVUUgknnDjiCPOVpo2uKc899xz33nsv3bt3p0ePHnzxxReUlpZy332N82VSEwkJCej0OhJIoAUtcMWamsvIzaBvVF8SYmtOk0oW6lZKSkrwxhsVKgwYaE97etDDLrUKVnEvL7xQoEAul2M0G+2mlKpSvXW6OnK5nOHDh8PZs7xxeIfdkZQyJdlkE4b1w95YnWKVBXj1RalU0r1nT8rnzKHHvn0YVCo2jB9PblAQHh4eTJs2za4+pCpOTk68+OKLNU6jVGKxWJg/fz6ZmZmo1Wp69OhBv379AKuk+/jQUPzffBP3iouTf04O/4wdS5G7O55FRVC1ewR4ZcorvPT1S8iL5FgEC+HtwgnxDSGrKAul2fHCkZ+fT2hoKO3bt+fkyZN2d7T79u3D29ub7t27069fP/r160dBQQFfffWVbR1RFCkvL+fxxx/H2dkZhUKBubycknPncGnZEkUt3S91xWA2kF2aTYBLQL1qGKqTl59HWV6ZbSpBgYKtu7de98FLaGgoTz/9tK31XaFQkJeXR1xcHMHBwbZp/m69eqHT6fDw8EAmkxEfH+8gIljVowvARefCc6ue4+fJjt2ovXr14ty5c+zu25eIhASapadjFgRiO3fGolRClc+5gICXxYsJH0zgh4d/oJn/lWW88pX5bGUr/eiHK64ICIgVP5XfYfX1uLr77rv5+eefHZoWKm/y3HAjgAA605lWfq3o1LLTFZ3D9UajBy933XUXOTk5vPnmm2RmZtK5c2fWrVvXpKzHc3JyKKQQOXJb4ALgJ/qRkJfAzJkzbfORWq0Wi8WCl5cX48aNa6whNynCw8Np7dGa3kW9OcxhAgl0CFzgwjyxQqHA39+fpPQkhIqf6tRZEjw4GHVJPmbnC3UMWksBUbJ2tscREY5+NE2dkSNHstPFhf25ufj6+vJQv371yt5cbN1ffvmF1NRUwJq63r59O9HR0bZOn8h166CKeJjKaCQkPR21wQCennDnnXb7U8gVfPb0Z+iNepRypS2T4+/uj0FtwEVvH0xUdkQplUoiIiLsWsktFovDNLOLi4tDLZRer0ehUKBQKMjZtAnhvvtwy85G6+2N7tNPCZ46tc6vVVXWHF7D2rVrkZvklKvKuX/q/fQIr1+XUdySJZw5coQisxG5s4td61b1i/X1hsVi4dmvn6WssAxk8OI9L9IipAUeXh707NnTbl2NRmNXpF3Thd2Cxe4GRoEC99Putpq1qjg7O3Pvvfdy9OhRCiZORLFnD7kWC75Tp9Jq+3ZOx562+y6RIUNmkTHmuzF8NfCrK1LzvafDPfxy5BfS8tKIwipMWP27q74eay4uLowdO5YFCxbYLU8iCX/8bZnjlrTE4nT9+bddKY0evAA88cQTTWqaqDparZZCClFjX2ujR4+YJ+Lv71+jtLmEFZVKxYMPPojHEg/6JvcliaSLrl8pWKZEiRmzwxd6t27d6u4X4+rKQ71H8en+FRS5OVNkzqNVZBTtVe0pKSmhRYsWjB49+tL7aWIIgnDFAndmsxmZTGYXyBgMBofgwGg0UlhYeKFNefhwLD//jKwiWNArlbgGBqIZPBgiIyEuDj79FJ5+GhQXvmLUSvvPjyAIvPLIK3zx0xeoS9R2F6ny8nLKy8sdanfkcrnNgbq0tJTDhw+jVCrRaDR2tTyCINjq0QwvvkhIRTCmzswk86234DKCl8TERHau3omvxRcAL4MX85bNo8dzdQ9ezv78MyvOnKHM2RlwQmax2AUvAoItK2axWEhPT0ej0Vx2lu5a88w3z+Be4I433mCGT+Z/wl/8hVkwMzhiMK9Hv07cuTh0Bh1KLyWD+w4myMv69+zRowcbNmyw258Zs0P21UP0IC8vr0YRUycnJ3pViif26kVl5eRdd93Fjz/+SGp6qm1/BgykkEIBBezZs+eKgpdg92Dmjp/Lmnk1a0r5+/vj5eVV7/0GBgbi6upqpzTsjLPDtUgl3nyNIU0ieGmKpKens3brWpoFNaNv375sPLWRdNKRIcMDD0yYKKccL4WX1FFUB1xcXLjvvvv47KfPOJZ6zO656mZ2YE09nzlzhqriInK5nF69ejFs2LB6Hdv/nhl8dM8M67EuMl1ys2A0Glm6dCkZGRk4OTkxePBg2rZtC1gv+gqFwq5bx8nJyT5YvOsuZCtXIi5fjlEuhwEDaL9iBRw7BpMmQUXtScmuXcwbMgSj0cjw4cNp3749xcXFFBQUEBAQgFqtJtAzkA+f/5C8vDxOnz7N3r17a9UFadasGREREXTt2pXS0lIWLFhgC7QCAwMxGAy2gKVFixYcPHgQo9FI+2r7U+h0lJWVsXr1aoqLi/H29mbs2LG1OnmLosjp06dZuXIlaku1AMwg1Os9dTomhrKLXMTUCjV6vR6ZTMYnn3xi+zu4u7tf07qsy6WsoAwfLgRa7rijR0+JWMKq+FVExkfigjXTJiJy7NAx2vRsw6xRs2wt/FWRI0fHhfq0yv/XNi16MR588EHW7V3HwvULAYgnnhhiiCb6qjjPL/pzEQFcmDGo/F4bMGAAAwcOvOh7ZOnSpZw5cwZRFGnevDn33HMPYM0mjRkzht27d9uyoYEEkksuvliDaIPMwLTBN5+fkhS81MC/W//ly21f0opWJJ5LZOPOjdze63bW7F1DCinIkeODDx4yj5oFsCRq5dbBtzJnwRya0YwggjBhcsisqNVq7rjjDo4dO0Z6ejqBgYE2rYcrDTxu9sAF4KeffrJd9IuLi/nrr7+4bcIE2rZvj1KppFu3buzZswez2Yxarea2225zDNAXLUIQRQSj0Som+MsvuJ09y9iMDDRAuVrNwoAAW23SsmXLOHfuHHFxcbYMiUqlYuzYsXTs2BEfHx/69etHRkZGrcq8999/v+3/+/fvt8sQZWZmMnr0aLKzs/H09CQ+Pt7mHaUJDycgIQGF2YxFECjp0oWNK1bYTEBTUlLITU+na3g4nUeMQFYliCkvL2fpwoVYdu1C36KF3XgsWCjVl/LLL78wZcqUOl1QVdXef0qTCWOV19bDwwOVSsVXX31lF0BqtVr27t17IavQVJFjd8OhR085Vk0ib7ztus4EBJxx5tShUzCKGm8CLVjYylba0x4LFnLJ5eFbHr7sesJRvUbRvWN3Rn87mrRS6xTPeMbj5+fnEIQuX76cU6dOYTKZMGIkXZ6OsaWRD8d+SIi7Y+ZXVWY//sobssGDB190TCdOnLCpZAPEx8ezfft2BgwYAEDbtm1p27Yt69evt0l1+OKL4CwQHh5Ov+79aBnR8HpVTQ1BrK80ZhNDq9Xi4eFBUVER7u7uV2WfY98eSyta4cWFOyQ9ertUnZubG3feeecN0dp4rTmRdoJX17yKrECGulxNO9rZPd+lSxduvfXWRhpd02fdunUkJycTFhbGyJEj6xWQxcfHs3DhQscnLBYGyGQM/u9/Aat6dG5uLlu2bLG1rbZv395BSG/FihUcPXrU9jjq9GnuWryYvT17sr76dJzF4qCiqlAoePXVV211MCaTiffeczS2Cw4OtikHGwwGli1b5uBArlarMRqN+Pj4kJuba1cDM+L8eYIzMjC3akXzL7/k+x9+IDs7m+q0KihgygcfIKuoxVi1ahW+77zD8Y4dSa/yWRcRySYbf/wRRBhRUEAPd3fkkyfDReqxymNj+eObb0jz8MBZr6d3UBBJwcFkZGSgVquJjIwkNja2xk7Fdu3acUc93cGvNcnZybzz3Tu4444BA6c5zWas8v6eePI4jztonZTISvj4Px8D8OGHH9q1CMcQw3rWo0NHkCyILfdtIbJZ3Y0TayM9PZ158+ZxwniCPezBgoUuTl1Y8NgC3NzcmDt3rkOnjwkTa1mLwdfA7gd346qyD6DeXvA2YsKFLLKIiI+3D08++eRFx/LXX3/ZiTGCNXM4Y8YMh3WPHj1KQkICLi4uDBkypNZs4fXClVy/pcxLDZRT7vABq15gWlxczJYtW3BycsJsNhMdHV33ItKbnPYh7fnnwX8Aq37O9u3byc/PR6lU0rx5c8aPv3m0CurLwoULbQWsGRkZ5OXlMW1a3VPGGUm11BvJZGy3WMiaM4c+Y8YQFhbGtm3bbHodoigSExND//798fX1tW1W/SJbEBwMgMpicdSfqUFx2mQyUVxcjIeHB/Hx8WRkZDB06FA7PxuFQsEDDzwAWAOXX3/91f7CIoqEnz9P3127ONStG2eio5HJZHbBi+7eezlcWMj58+dRfvttrdnSc56eJL73HhpBYI9Mxhm5HP927S4ELqKIUq/H6ORkmyJwKSpks6srR3NzGTd1KsFff428lvoJTVQU9374IUVHj6IJC8MpNJTegCEpiRnf3svbOaexiBbaC+0ZhP0+Kju+mjJh/mF8/8b3/P333yQlJaEqVpEv5GMWzLQyt7J9r1YW4oqIqL0v6PBMmTKFJUuWoNPpEASBB255gO8HfE+mNpM2/m2uqLurkpycHObOnUuxWMxqVqPFWleVocvgPwv+w5ePfVnjFJYCBb74sj53PbuSdzEycqTd8/+d/l/e+OINKLJmXZzUTnWq5ezSpQsnTpywe7/Wdi3p3LnzTWX2eTGk4KUGhgQP4Uz6GSK5EOHX1AVwPvE8osX6hktKSsLV1fW67FxpTKKiooiKimrsYVw3JCcnX/TxRTl/ntZvvsnmoUNr9pGRyTiTlUXW8uXMmjWrRqG77Oxsu+Cl+t2Se5cusHkznfz92fDPP9bW16oBTLWARhAEEhMTKSwsZNeuXRiNRtzc3JgyZQpyuRw/Pz88PC64Ne/Zs8fhjrjPjh0M+/dfBCAgK4sCT08sHTui1WoxGo00b94chUJBTEyMbRuNRkNERATZaWmUVG3PFUX0GzawumdP8n19QRTJqVoYKgi4lJZSWKHQKjOZKK3okskODGRz1670fuUVmm/bVquYpszFBa8qIn4AC16ZyYqofejQgQA72UkwwbTGqpI8ZsyY68YzTSaTcdttt9ktMxqN7NmzB5PJRLdu3Vi6bynx8fH4efvx1B1P2dZr0aIFM2fOJDY2Fh8fH9q1a4cgCPi6+FY/zGWzfft2RFEkgwxb4AJgxMgJ7QmgZq8uI0aSSMJZ4UyYR82aKu888069x9OiRQsGDhzI/v37EUWRDh06SAFKHZCClxr4z4P/4fU5r5OXlWdXfFYVERGq1HjpdDri4uKk4EWiQak+RVQX/6y9e/eyadMmjCYj5mEDMYk61KITMgQHYTqw6lEkJiYSFRVlV1eiUCgc3t9jx47FbDZTUFCAq6urNWvm5oYceDk6mvf++1/MVTqOKo8nUnFxEK1TMyqVylbjUVxczJHDh5kyZYrd+AwGA0eqS6SLIs2Tk23l3u4lJXQ6fhzPp58mJCQEnU7H7xt+Z9e/uzBhIo00etKT8vJyhg0bho+bGwveeINUT0+wWIhKSEBnMFgDlwr01YKQwirmkJZqGZw8Pz8Mhw+zdetWRo60vzOvFZOJs5Y0vPGmG90QEdnBDjLJpDWt6devH7fcckvd9tVEUSqVthoOgPtH3F/rugEBAQ0qlVHZnh1IIO6405zm9KEPSlGBZ24xoijiG+BLTlaObQrIgoWjHCVbmc0LfV6grV/bqzqmgQMH1ktlW0IKXmqlR1APjmYdrfV5AcFOW0IQhOumnVGiaZCWlsbmzZsxm800b96cQX37Ishkdu3F1enVqxc7duywFRf27t37osdITk5m48aNWCwWZIIMGSqUQpXCwhqsBdRqNYGBgXTo0IGysjJiY2ORy+VMmDDBwRNGrVYzftxY/vf7p8TmxpKwMYHXJr2GTJAhyGR06dqVg1UyHpVU7S4zmUyOdTsbN8K77yK+9BIHo6PJysqiJC2NompdIaGpqbSoogNT5uSEsXlzoqOjEUWRVatWkZeQRzDW6Sx33NnDHu4IugNfX1+USiUz3nyTE59+ilqvp21UFOlbtlinhmqzIak61mrjdikpYfuAATSvxTakRhQKJp3UY2x7Jx6CJwDhYjgmwUSzZs0YOnRo3fclcUmGDx9uzcLpYTzjCRaDcRGsejuCsxeHDh3C5GfiaNZR2tIWM2aOcQz/1v4k3Z7kUOsi0ThIwUst1FT5XrWlV0SkU8dOZGRkYDKZaNmyJV27dr3Ww5S4DhFFkZ1HdrJl9RbbtGNyUhKnly8nOD+fEZGROL/1Vo3bDh48mHbt2pGQkEDr1q0vaK/UQnJy8sXbQGvIvAwcOBA/P6uo35gxYxgzZozd8/nafD6c/yFeSUVMWbYez4ICZrh78M+tt5JSUMxLupf4ZOonAAwfO5b8khIHs77q7fHu7u6UlJSg1+vxKCyk55YtkJjIluXL2VXLObSKjeWuJUuQV9xAmGQydvXti+fMmaTNmcOipCTK1VbPpEo88USBgrvuustW7Kj08qLLu+9aVzCbCTl0iL579nCkUyfMGg2lTk7UpatBXVaGd04Ocd2706FDhzpscQHtuLvxEC4ItvkJfgwcOPCKtEckakapVPLiiy9y8OBBOr53gJhuF4wfRbmc/Px8OgR24J0T77CWtbb36txWc6XApQkhBS+1MGTIELKyskhLS0OpVNK2bVtijsdgMBqQIaNlREubH9O1QhRFEhIS0Ov1tG7dGsVF7tAlmibFumJaf9aacmM5j/EYatQ0S04m6vRpSlxd2de7N8WJiUzfuxdqaYv19/evUaCrJlq0aIFMJquzjkVoaKgtmyOKIvv37yc9PR1vb2/69++PTCbj/R/fx63EjUmrVtIi0VoA7FWkZeS6dfwwfRKF5wp55O1HcNG48NFzH9lZOYiIiIKITLww3SWXy5k4cSKiKJL+5Ze0mjcP7woDxvO+vg5jV+t0BGRmEhUbi7zac6WDBjHkwAHmx8ejDwlh0JYtOJeVcaZNG+JbtaKYYjw0HnZ1NHbI5bB0KQMPHqS/KEL37uzes4c9e/bYG1pWx2JBr1JxulMnJo0bR1iYtSYiLi6OPXv2IIoi7du3r/UGx/fOO+Gff2yPFQpFja7gElcHuVxOz5490bl7kp6VRW7FNJWTyURERAQtW7bk+cTn+fX8r5gxMy5yHNO7S0KkTQnp6lcLarWaGTNmoNVqbRbq48ePt5smupaIosiyZctsegChoaHcc889kkDedcadv95JpjETOXIKKaRnfAm3LV+OW0kJIhCckcHa0aOxnD6N7CpoeoSEhDB27FhWr1mNyWxCRESL1ir0JTjb3s+VdhZVa1q2b9/O9u3bbcFDUVGRtYXdKtuBprzc7lhOZWWUUkooVu8aQ7mBVz57BbdyN9s6AgIqhcpOw8Td3Z2QkBAEQSB0wACYO9f2XOeTJ+l85AgpoaEc69KFgIwMblu2DP/cXMqcnNArlagr9iWo1YwfMQLzY49R1rs3k//8k6gzZwBod/Ikf906hpVtZbw24rWLv2gyGfToYdN17devH3369GHhwoUkJibW7B4sk6HWaOjWrRsdO3Rgw1/fsS3pNAU6EwEG64UxPT0dT0/PGuviunTpQnJyMmfPnkUul9OpUyeCKzq3JBoOpwULuOODD9iWm4vZxYW2EycSGWlt1Hh12qu8ZH4JQRDqVFsmcW2RgpeLIJPJHPw2Gkvk7Oy5s8ScjLF1PaWkpLB37167IjiJpk9maSZglT1fzWqmxihxq5D+FoAWFeq05uHDyUhLQ6PR4OXlZZ1gycsDNzeorRajFrp27UrXrl0pLCxky44tyJHTs0dPMjIySEhIwMnJiWHDhjkEwklJSXZZj9TUVMrLyxEVIpghKyCAkLQ0jnTpwpHOndG6ueLNBZ8iFSqyy7Nxw81uv4Ig2CTPFQoFHdq1I+X8ebbs2IFer6fHAw/QKSEB4fhxuu7bhyCKdIiJwaW8nJCUFPxzcwFw1uko8PDgbEgIXoWFNEtPp/yee1CcP09geDjNUlJsx3QuL6dLXCJd3phPu3b2ukJ1QSaTMWPGDFJTUzl58iRpaWmoVCrUajU9e/bE09MThUKBs0bDz09OItYnEheZD14YSCCBCCLQ6/UkJibWGLwIgsDEiRMpLy9HLpdLNyXXCkEg4LXXuLOWpyUB0qaLFLxcB7y15S1it8cSSaTN7EtAcPCgkWj6zOg4g2M7jyEikkwyyQr7C7tJLkevVvPRvHk2t2svjYbHN25EfvgweHjA66/D/bV3a9SGp6cnk8ZfEJkLCAi4aEtm9VbfgoICZs+eTbBTMHn6PFaNGsaOfv0ocXe31c4oqlWHyJVyBJO9aWJoaCjDhw/n7NmzBGzfTquHHqK4oICoyEjWjRnDCjc3Sp57jr6PPIJQsZ3KZCIqLQ1dtayHTBDQazSEVKjyKpKSUJpMjP/nH0zVBLza9egB0dHEf/EF53Jy8Gzdmp4zZtTrhqRZs2YXF6ZctYoYJw1eMuvfVYUKTzwBa63FpbIpVY0KJSQkakcKXpo4Z3LPcHT7UTrT2cH/59SpUxQVFdU+fy/R5Hh26LPkl+Uz9/hcwrWeJA4cRlr6MoIzMih3cmJ/jx5YFAqoCFwAjFlZyDdtsj7Iz4d337UaCzbwhW7YsGFotVry8/MxmUy2X8qxqk3LocSjmtcPAqWUWv1shBK+evYr1q5ea5vudHJyomfPntZ22Kws+Phj0GpxB7odOkRas2Yc79SJHTt2cGT0aDp7e9O/Qua/2GIhtm1bQhITcdbpMMlkJLduTfcDB2zHN6lUKA0G1EYjaqMRk1wOcjnyW25B+9JLfPP661hkMuQWC6779pGWm8vtzz9/1V4zfWEhzir7eiQ1agICAoiOjpY0jSRslJaWsmnTJsrLy1EqlajVaoYMGXJZvk03I1Lw0oQxGAycyjpFGGEOgUslW7duZcKECdd4ZBJXwjvj32F8wHjWr1yJUS3np/vvxyc3F4NGg9bNza4FH8AslyMKgi0LQWEhaLUNHrz4+PjwwAMPUFZWxrxffiG3SuHtxfBSe/HsC8/ipLC2Vd92220EBwdTWFiIVqvlxIkT6PV62p8+zbLWrnw4wA2TIHLXCQutKrIgBoOBfFdXdvbvT0hKCk46Hf8OGUKenx+lLi5EJCSQ6+NDwqBBHB09GllJCT2VSlzy85H/8gsqoxG9SkXW/fcT9sILGIOC+PJ//0NUqUAQMCuV5KvVFOfmEhMTc9XUsRebTKjV9h1glUaEfasJ00ncvOTm5vLtt9861E8dPnWY159/XZquqgNS8NJE2bhxI0eOHKHcUG778nNAFAmJi7u2A5O4YkwmE+vXr8dSMa0hymTkVlFPVZeUoHO58DeXm0yYXV1RFBdbF3TrBnXsNrpSBEHAxcWFkIMHya1mTFgb98641xa4gLVepHfv3ixYsIDzFTU9CcePI9uylkdHl5Mjt1oMnOmpZpbggl+VfRlUKv6eOpVSudwmCHe+VSsSIiMRBAF5eTkJggBubmS7u3Pfyy9T0rkzpTt3oh48mLAKW4GzJ08ims32ysKCgNHJiS1btrBp0yaKK17fgIAAHnnkkXq/VgaDgdQaZOUBsrKySEhIoFWrVjU+L3FzoDfpMVqMLFy4sMbCb0u5hW//+ZYnJ17cD0lCCl6aJJ9//rlNmt2ChXOcowUtcMbZVu+CKBKYlka3tWth8mQIq1muWqLpodfrL9q67JeTg3OrViTm5SGXyxly660o+vWzttJ6eFinjRqgcNxsNvPxxx/bjPFat27N3XffDcD4337DvV8/svz9OdumTY32AqGhobTMz+fE229jKS6m2QsvQEVrcHl5OZmZmbZ1e61bxzbXXFvgAlAu05PsVYhfNU/C4irFq66urvTv35/CwkLy8/M5U9FNBFaTt/Pnz9Pl0UfxfvRRu324udnXFlWlsKItu5KsrKzLcnBWKpUoFAq7TqqqVL2bNhgMbNq0iYKcHEKDg+k/bJjkeH6D8+HOD/n2wLcYzAZC9CGMYxwy7D9HAgIJ5xJq2YNEVaTgpYlx7NgxO0+ZNazhIAdRo8YNNzxEDybHe/HotizCKrsp9uyRgpfrCGdnZ1QqlZ17bqXSrXthIT337iX8xRdxjY6+8HyXLlDNL+Zq89VXX9mN6ezZs2RmZhIYGIhcFBmyZQsA77/8MsYqU1aCIBAZGUn8uXOkiCIEBxOj1XLb888TsXIluLlRFBNDQHw8pTIZOYGBOOn19MguwrW3MyUyq36KHDmB8ov798hkMpycnBgxYgTnzp0jISHBLlhYuXIlK1euJCwsjNtvv93mvRQWFoZ/YCC5aWnWjFcVZeGadHDOnj1b7+BFEASGDBnC2rVrHfbn7u5OiyqZqz/++MOWhUo6c4bcOXO4dfFiSbvpBiUhP4GPdn1Eoa4QgGyy8cOP3jgqZGucpKLtuiB9UhoZs9lMeno6Go0GX19fByXSNKwmdPqKH7NgZkewE6/l51tXCAyEHj2u9bAlrgBBEHjiiSf47LPPAKu5X8djx2h36hRBmZkUt2+Pa9v6eaecOnWKLVu2IAgCEyZMICQkpN7jKqlo2a7K8ePHrYaAd94Jv/1GUliYQ9ZFFEXOnTtXeXIAlLq7E+PhQURsLBm5uSzevJmi4GBrxjAri4IhQxg6bx5PHw9gXrQWk8zCwOBBDHQbSFxu7VOhWq2W1atWYTKZ0Gq1BAQEUFhY6DD25ORkvv76a5566ilcXa2qqI8++ihnzpzh+KFDKAG9XI5KrUalUnGgStEvQM+ePev78gHQvXt3IiIi2L9/P7m5uej1etzd3Zk0aZIts2IwGEiJj7e9jka1Gguw7dlnGTp79mUdVxRFW+u51LHU9EjRptgCF7CKNRZT7LBeEUU8c9sz125g1zFS8NKI6PV6vvjiC3Q6HQDR0dH079/f3v0W+y8iEREP53DWDw3mjrwyeOIJqGMtgkTtiKLIvn37SE5ORqVSMWrUKAcfn6uJm5sbzzzzDPPnz6egoIC0kBCCy8sJmDaNwP/8p17TQufPn2fp0qW2OfR58+bx5JNP2jk+l5aWUl5ejre3d62CW25ubhQVFdkta9euHe/NfY/SDuG4vvsiQom8ds+fasidnKB5cw799htFlXpJgkCBpyc9X3wRYcgQ3n3nHd5dkw56Pek90vh9Yg0u2RaL9fWovPgbjWzZssUWsNQ23WI0GlmzZg133nlBxaNNmza0adPGYd3CwkLi4+MRBIGuXbvWuE5d8fb2ZtSoUbU+r1AoUOr1mKoEGc7l5SgTLm+6wGKxsHSp1aVZFEXCwsK4++67paLPJkT34O50Duhs88tzxZW22N+giIgEuwQTFiJl0euCFLw0Ij/88IMtcAHr3XOln8nWrVsBGMpQyiijiCI0aAgnnFu4he0j8rnj8a8aaeQ3Djk5OQz4fgAh5hD60McmAnj69GkefPBBfKu4C19tPDw8ePLJJzl+/DharZbWHTrgdhlt79u2bbMr/jOZTOzevZtRo0aRX5bPoj8WUZBaYHdhqykwe+qpp/j444/R6/UAREVF8d2f3yEvlKNGjQEVglMdgipRxL2sjIFjx4Kfn817qBK5xYJcoYDRo+H556HieKddXSmpOpVWSQ3BlkGrtS2vUfG28lh1vIBPnTq1TutdDWQyGW1MJhLz8zGoVARmZtLl8GGSnnvObj2j0YhcLr+kuuv+/fs5ffq07XF8fDzz5s3jvvvuk5RhmwguKhdW3r2S0d+NRqFX0IlONiXqSgQEq4K1RJ2QgpdGpPpdLsBPP/3EI488Qo8ePXj747dZzWoysRY6tqY14xlPqpDKO9PeudbDvSG5/efbOWM+w3CG2wIXsKb2t2/fzm0NXGciCMIVt+lWzbBU4uvry39++g+lqaUAZJBBG9qQnJzM1q1ba8wMyGQyXnnlFbtlMf8Xg6Lia0JAcDBUrBFBoNu4cbhXqD+HDBqE8549lDk7ozQY6KxSceDwYVKSk5lQUGDT3/UsKkIQRcSLZJ2Uej1BhYUUhodjqBL4KxQKqwZNFTQaDePHj7/4WK+Q5ORktm/fjoeHB2PHjq1zsDDh7rvZ+NpreOTloTQaOXXLLQx97DFKS0v566+/7KaPu3fvztixY2vdV2lpqcOy1NRU3nnnHeRyOZMmTbosVWGJq0uoRygPRT1E9rFslFR0GlZ8ngRB4K677rrqflYpKSksXboUo9FIUFAQd9999w1TV3VjnMV1iMFgsCmoVl/+0y8/8cJzL3DQ6SDpugutlyc5yYhWI/hk4id4Ontew9HemIiiSJwujnGMwwsvh+frambY2EycOJHk5GRbMBwYGEiWMQsxVbSpuzrjzFnOEkVUrd0wNSJAVdFcCxa7IK82KutMDh48yKbYWPTOzghA+7AwXDt2ZOPGjYiiSExEBD3z8lAYjXROS2OfkxP5JpO1DVout2WBABR6PZHJyWSGh2OSydBoNOj1ekJCQrj99ttJSUlBoVCQUlHIPnDgwJrd4UURIT4e7dGj5LduTXBU1GXJ8X/33XdkZ2fbHickJPDUU0/VrWuoWzeGv/IKzJ8PCgW8+SZrtm93qL2pfA0HDBhQa8dUhw4dOHjwoF0WtxKz2czSpUuJiYmxdY5JNB5PTXyKN9LfoDCnEBERZ5w5qjjKVtNWPlj8AZOiJrFo8qIr7jyzWCysW7fO7v2UkJDAsmXLuOuuu670NJoEUvDSSCQmJjosO8IRTJjoVtyNkwknkSmqFUYiMmv4LClwuQpYLBbmzJlDFFE0p7ldy2Ll3VD79u0bcYR1RyaT8dRTT5GVlYVSqcTHx4dn3n8ab3xs66hQ2YKOdu3aYbFYWLRoEZmZmTg5OfHggw/WOJXUc2BPDm45iAwZomima2YGbdQuJAwYwMETJ2ocj7+/v8124NSpU7YARATSRRFDWpptqmfTiBHkN2/O6BYt2NK6NTkVHThQQy2LiwunK3VSyspwd3dn1qxZeHl5IZfLbUrTtanY6vV6li1bRrPFi7llwwbcdTrK/fxY8sgjjHnmGby9vWvcrib27t1rF7iAtW4mNzcXPz+/WraqxuDB1l+s2ZNDhw7VuqpWq601ePH392fKlCksWbKkVufruLg4zGazVAfTyIiiSHivcJIKkyjJL+GPk3+QZErCggVE+P307/Tc15Onez1dr/2uWbOGxMREPD09ufPOO/n6669rzOxXlSu43pGCl0aiuuGjBQsZZBBDDIEEsvzf5UxvPZ0jh4+Qi9WIrpd3L9r4Xn4hocQFdu7cSU5ODoUUOhgHiohoXbV8v/p7/E748ertrzZ5DQ6ZTEZQUBBg1VRxNbmhRYs71imlIorwFr3p1bsXERER/PTTT6SmpgJQVlbGp59+ymuvveZwnrcOuJXBXQdz6tQRgu59mLDYWAA0q1dzcNo0u3qUyhbmzp072/ZTPUVdNcioJK1/f+QPP0z2b7/ZLVcoFAiCgMFgwNXV1SGzUFZWVq+apPXr1xN35gyjtm9HU7GvgJwc2q9Ywc/u7rzwwgt13te+fftqXH65wUFxcXGtmT5BEPC/hChheHg4zzzzDKdOnWLFihUOdUCiKGKxWKTgpZF56OeHyE3NJY44TlBz8L8ncU+9gpc///yTUxXeXjk5OXz88ccXza5u3bqVTp064eXlmG2+npCCl0bC398fb29vMvMzMWEinngOcMBm2BetjOaecffg6ebJ4rOLCfEK4b3b3mvyF9Hrhby8PPToccbZVtNRiYiIR4n1Aqs9qeVD+Ye8OunVxhjmZaFSqXBVuWIwGEgjDRERjVHGS24RNBs5EsDB1NNkMnH69Gmiq2rLVODm6kaLzbvwrwhcAJrHx9M+MZETFQ7JKpWK5557DmU1M8R+/fqRl5dHfn4+bm5u9O7dm4iICDIyMigsLMTV1ZWhQ4ciCIJDZsHf35+BAweSlpZGZGQkv/32m00FF3A41qUoKipCsFiQVQsS5BYLpaWlaLXaGuuHaiIwMNBB3E6pVNYre1MVX19fm9N2VQRB4KGHHqrTuSqVSjp16oQoiqxYscLuOT8/v3q/XhJXl//99D92p+7GiBGxylysCy5EEUU72iEgoDyjJDExkebNmyMaDFjk8osGndWz+EajkSSS2MteRES60Y1WtEKhUFBYWMi2bds4fvw4d999d4M2JDQ0UvDSiDz22GO88907/JD3gy274owzzRTNuHfcvQiCwPhB4xk/qGGLDm9GBgwYwJETRwi2BNeoclmJBg2piTW0714jZn/9JJuz9tLWOYz3XlqCrA53znK5nGHDhrFh/XrcTC6oTCamKZU0e+kl2zo1FZZWrS/Zu3cvmZmZ9OrVi8DAQBQ1XPg6BgUx5KmnkMlktZqDhoWF8cADD5CdnY2Pjw9xcXF89tlntimMnj17Eh4eDsCoUaPQ6XTk5ubi4uLC6NGj8ff3t4m7TZ06lV9//RW9Xo9KpeL222+/5GtRFZPJhEWhID4yks5HjiAXRYpdXTnWqRNg7TCrq77LnXfeyccff2zLBikUCl577bV6jacqCoWCBx54gL/++gutVktgYCCTJk26rFqczp0707lzZw4fPszRo0fx9fVt8MLlpkB8fDz//vsver2e4OBgJk6caH2fFxdTdvQoK8+eJaesjHxlPjnBOYxtO5bRrUZfk7Gt37ieL1K/IB1rDaMCBW1oQ096Ek44MmR23ztLfv6ZfvHxHAwIwKxU0jIqivEzZ9puXmNiYjhy5AjgWJtXRBHLWU4hhQCkkso0phFkCrKtk5+fz++//86sWbNwcanFfqaJI4gX6zO8DtBqtXh4eFBUVFTnu6amxoerPmTR6UUYTUbGho/l7VvfthU8SjQc58+f572F7xFqsW9Z1KO3uiZjnc4ryt/FF2/9Cdc4zfrKh5P5QrcSvWAAEQaYO7L5v4fq3C1gNpvR6/VoNBqHjF1iYiK//vqrbXrBw8ODxx9/HKVSydy5c0lLs4ojymQyJk+eTJsWLcjp0QP/Cg2i9Oho/A8cQFFPB9yPP/6Y8vJy22O1Wu3Q4dRQbNq0iV27doEo0uXQITwLCznTpg3poda//6xZswgNDb3EXuwxGAzIZLIbpoPjesVisfDdd9+Rm5trW9a/f3+GuLtjnDqVTRER7O/Vy6YVlE02S9RLmHPrHG6Prl8QfDm8+embfFjyIUYuTOf0pz9DGFJj955HXh56jQZdxedLsFgYM3483bt3JyMjg4ULF9rqm9RqNSaTCbPZjCAI7Bf2s9qy2m5/QxjCAAZgxoyAYLthc3V15amnnmq0rNyVXL+lT1wT4JVxr/DKuGvzBS5xgRYtWvDx4x/z1eyv7L5ALFjIJx8ZMvLM2Xz5/b8syR3CT339GRY+jBfHvnhNxrem+AB6VYXuiQDb5TF0e78bB187iFJx6S8buVyOcy3BRfPmzXnxxRfZtWsXSqWS3r17o1Qq0el0pFcxF7RYLGzYsIGop57C/8ABir7/HrPRSOBjjyG7DBG/6h121e8aDQYDc+fOpaSkhJYtW9Y7u3IxbMWsgsCR7t3tnouOjq534AJcVmZE4uqj0+kcptx27txJaUIC486d4/jEiXbCj/7446/3Z/bm2dzW9rYGn473UHrghhv55NuW+eJbq+yAf14e56q0TYsymW2aMiEhwa4wW6/X07JlSxQKBfIgOcu2LmMUo3DFlUwy2ctefPDhJCcBaMeFtvmSkhISExOvS8NQKXiRuKnx8PBwaP91Ep3QCBpEs5Ghh4twN4isDA+nc04b8nLyuO/gfXz06EeXLKK8UlRCtY+nADFiDI//+Dg/PPrDFe9fo9EwbNgwu2UWi6XGYk/rgFR4PHllbrcBAQG2Vmbgwpy7Xg+rVrF85UpymjcHmYwTJ05QWlrKjBkz7PaRnZ3NiRMnaNu2ra1IuS5ER0fbUu2VDBw4kAEDBlyXYm6xsbFkZmbSsmXLywq8biQq7VUqi9DB+r493Lw5httuQ1aDLMUd3EFJfgknTpygQ4cODTq+6VOmc+i7Q2xlK3r0hBFGBxyPacGCk8qJwS4uFGVlkR0QAICLyWTTgAkLC8PJycmugD0+Ph6A82fPM5rRNmX2aKJpSUtCCOEHfqAf/eyOJyLWeoPT1JGCF4mbGrlcTkhQCJkZ9i2E0ZmZRBw4QNdDh3jljkhaqDrYCntDCeXtOW/z1etfNWj3xvu9Xub2A89RIrO/o8wuy65liyvH2dkZPz8/cnJyAGvB6MCBA6/a/mfOnMny5cvJyMjAz8+PyZMng05nVdvdupXJQGxUFH/eeSfIZCQn29cbLVu2jBMVLdo7duygRYsWDsFNbURGRtK1a1eOHz8OWDNvgwYNqvPYdTodgiCgrqM9QkOydetWdu/ejdFoZM+ePdZ6HosFFxcXnn322Zuuq0gQBO644w4WLVpke+9WPMG51q3psWcPOwYNssu+yJDhjjubNm2iffv2DZp98ff3Z96r8zh16hS7du2yTW/p0aNEaZvGkSEjKiqKoJdf5s533mF7QQFmV1c63n03YRXmu6GhoQwZMoRjx45RWFhoJ1IYLobbZXNkyAgnHD16NGg4xCGa0xxPPDFjJl/Ix8PPw871/cyZM7i4uNCtW7cmHdhINS8SNz35+fnMmTPH1l7o7OzMs08/jWLrVnLyU5hw+kdGyuwL+1JJ5aMnP7rs7pK6su/wNsb8c5st3eyDD6smr6JXdP0cj+uDKIqsX7+e3NxcevfuTcuWLRvsWAB88gm8eGEqzgL8Nm0a8a1aoVQq7Qph3377bYfN//vf/zbo8ERR5J9//uHMmTPIZDI6duzI8OHDG/SYl6K6QF5VNBoNL1Upzq6KyWRixYoVFBYWMnjwYCIqusVuFBISEliwYIHdMiegeVwcsZGRNW6jUCh4+umnr1mdocFgYP/+/RgMBp7d8SxDGYoHFwre27dvf8npUrPFWruycOFCmzv5pSiiiLnMxQkn2tMeAYEcrxxe9XuVs2fPOqzv7e3Nfffd16Cvi1TzIiFxBXh7e/PYY4+xfv16lEol48ePt3bXjBiBH9Dlt8PknsvFF+sURwEFBMmCrkmVfs+uA1kpX8kr/7yCBQtvjHyjQQMXsN7FXsxYsF6cPg3/+Q+UlcGoUfB0DfoV1TQpZIC8Is0/ZsyYqzOOK+DYsWMcPXrUNn22f/9+oqKiapyqiY+PJyEhAV9fXzu9m6vNxfZbtSC6KiaTiR+fegq50UiRmxsLUlMZPXo0PW4gV/qIiAgiIyOJi7vgTN536FBkw4cTu3Fjjdu4u7tf0wyDSqWiX79+iKJI8JFgzpacpStdkSOnXCinS5cutW4riiKP/vMoC48uJEqMYghDcKFu30MeeDCWsZziFC64oEPHZPXkGgMXsN7U7dmzp9ED9dqQghcJCayigbXJZn8z9RuWbFzCut3rAAhWBjN5/ORrNn3Qt1NfdnTacU2OdTmkpKRw7NgxWrdube/NotfD1Klw9Kj18fbt4OsL06bZ7+DRR2HZMqhQmC3t1Qu/6dMZ1bu3g5BW9bn+6l0SWq2WtWvXUlpaSlRUFH369Lni89NqtQ7Gl0uWLCEqKsrOcygmJobVq1djqDCXPH/+fIN5Y3Xv3p1///23xkCltsBm8axZ5IeGYlKp0JSW4pOdzdatW2+o4AVg2rRplJWVkZiYiJ+fH35+foiiSF5eHjExMTYPLEEQ8PX1ZfTo0Y1S8yQIAvOmz2PWb7M4VHoIf5U/L9z+wkWzYT8f+Znvj3xPS1rSk54XDVxMmJAjt00jiYhEVfxUPm6makYytUtBNGVdMWnaSEKiHoii2KQ/0NeaHTt2sGXLFtvF3c/Pj0cffdT6Gp07h9ihA0IV/RgefRS+/dZxR0VF8N134ORkXecigeHs2bMpKirCxcWFJ5980tamLIoisz//nIIKITu50ciAvn0ZMPrKtDzy8vJYuHChgygdQMuWLbnnnnsA+OWXX+xqdEophY7wwYQPkMuufg1KTk4OWVlZHDhwwO64EydOpFOFdo0NUeSrp5+mwOeCZURgWhpFkZG1TjHdiFQGviqV6ror0o45cICn/3mCnfLDmDDhgQcTmEAEl576M2GimGI7DzcDBu649Q5WrlxZ4zZeXl7cf//9DZphbpLTRomJibzzzjv8+++/ZGZmEhwczD333MPrr79u114YExPD448/zoEDB/Dz8+PJJ5+8qT5MEtcXUuBiz969e+2yEjnZ2aTceisuJ0+iUyhwUavxrAheLIClefOav3Q8PKCOei9P1tLxVFJSQkleHlR8v5iVSlL/+staDHwF+Pj4MHnyZPbv38+xY8fsnktISLAJ7lV3d84ii19jfmVx3GLWzVxHW7+2lz6YKMLWrZCbC2PHwkWmMyqzCu3bt6egoICsrCyaN29eo0cV4KAsLLNYGFzhrXSzUNtr09RJSEhg3cqVHFfEY8KaOSqiiAMcqFPwcoxjJJPMKEahQYMFCypfFV26dKGwsJDt27fb1o2IiCAoKIi+ffui0Wga7JyulAYLXmJjY7FYLHz//fdERkZy4sQJHnzwQUpLS/nkk08Aa9Q1YsQIhg0bxpw5czh+/DizZs3C09OThx56qKGGJiEhcRU4ceIEZeX2RoCuxcU0W7WKPX36kBYSgsxkotuhQ7iUlZHUvDl5yclcpWoaBzQaDc5lZRRVuTnyyM+/yBZ1Jzg4mNSgVIqOFdkVV4qiiFarxcvLiw4dOrB161bAmnVZifWONrksmfG/j2fj9I208GpR+0FEEfHBB9ly/jyZAQG4rFvHqPffR13RLnsxvLy8Lu5VIwiE5uVR6uKCztkZj8JCQhQKbrnlljqdv0TjkhAXR7lCYWcrANbWagsWB5Xw6vR2702qcyp/Zf5FS1ri6u7KT/f/BMDgwYOvyyC2wYKXUaNG2RX9RUREcObMGb777jtb8LJo0SIMBgM///wzKpWKdu3acfToUT777DMpeJGQaMJkZ2ezbt06qn2XEpqUxK6+fdk6eDCWiumcUx06IFak6Hvu3QtZWVCHC3J9USgU9EhM5HhAAHqVipC0NHpWnbK6Ambvm80L617gPu7DHXdbHYFcLmffvn0MGjSIqKgodu7ciclkIokkmzw7QHxBPL8e+5X/DrpIZ9S5c2xJTmZHv342w8uyb77h7v/7v6tyDhN+/x3/11+n8NQpwgYNot2jj16V/Uo0PD5+fsjMZjrKO7KLXRgx4iG6cYtwS62Bi0wmo3Xr1nh5eTF06FAe1j/M53s/RybIeLbXs7g7Xd9lFte0YLeoqMiutXTPnj0MGDDAbhpp5MiRfPTRRxQUFNR4J6HX6+08WLRabcMOWkLiOsFYUkLSkCF4Jiaid3VF/cUX+N56a5223bVrF9u2bcNsNuPu7s5DDz1Eamoqbm5uBAYGOqx//vx5h2kSgNi2bcn39bUFLoAtcPHOy6PTsWMO3UU1cfDgQf79918sFgstW7a06sHUgd7z5tHmrrsQUlNRREbi/scfddruUmw8t5Fwwgkk0E5Hw2w2s2/fPg4cOICLi4utGNQNNxQobCl+AH+XS4gaGgxk+PvbOXXnXuVpyt7vvXdV9ydxbejcuTM5+/fjfaYLHXBHpk/ijlkfYip2wmg0cvToUTvVXYCQkBC7JgRvZ2/eGfLOtR56g3HNgpe4uDhmz55ty7oAZGZm2kzXKgmouCPLzMysMXj54IMPatR6kJC42Tl92210PHDA+iAnh8zHHoPx4+2EuWrCZDKxZcsWm3R/YWEh//vf/2y1LOHh4cycOdNum9DQUJw0TujKdXbLRYWCnGpOtc7FxXSOiaHzoUOo+/SBkJCLjiczM5PVqy94s5w6dYp///2XIUOGXHQ7AMHDA5916y65Xl3Jzc1l586dtCxsSSKJtcq5WywWO8frUELpSleOcQwLFjppOvFQt0tkk6OjcammG+RcJXDUHTnEb0s/IcfVlfGTniI6qmFVYSWaDoIgMOLhhxkhilBe7lAL1apVK7Zs2UJaWhqiKOLl5cX06dMbabTXhnoHL6+88gofffTRRdc5ffo0UVFRtsdpaWmMGjWKyZMn8+CDD9Z/lFV49dVXee6552yPtVrtTS+NLXH9Yjab+fCHD9EV6nBxd+HFR168bHVUZVaW3WNnrRaLTofsEkV3RUVFDp5DVYtwk5KSyMrKst1YgLUGZPiw4axZtwazsZpfkVIJFgsuooibnx/BISGEZmZiee453F99tdZgShRF9u/fz8Ya9DjOnTtXp+ClJv7c9Cf5hflMHj4Zb4+6iQomJyezZMkSW3bJE0+GCkNJEpMIJxwRkROcoJBCOtABTzwd9jGGMfSnPx7eHkwbO+3SHUcyGaPef5+yr74i12jExd+fQSNGcOzYMZp//hmahb9yn9k6U5fy7Vq+efRhHn3l9euua0biChAEyhTw7OyHcc53RkDAWePMMw88w3333dfYo7um1LtVOicnh7y8vIuuExERYZsKSk9PZ9CgQfTq1Yt58+bZfdBmzJiBVqvl77//ti3bsmULQ4YMIT8//+IFaBVIrdIS1zP/+fQ/KEoUF+7oNfDfly5DMXbLFk4+/jhRsbHIKz7SSS1aEJ6QcMlNLRYLH374oU1hWER0yDAMHTqUfv36OWxbUFDAt99+a5suqUqPHj0YXY9On7Vr13LgwAEHbyWAjh07MmnSpDrvq5L/fPQfFDrr62vCxMOPPUwzv2YX3SYrK4tffvnFbnq6KiIiK1nJUY4iIuKNN3dxFwE41vH4+fnx0EMP1dt12mKx8OOPP1oz0Hl5PDxnDupq0237undF+/6HTVZETKJhePW7V1Flq+xqXcopx6OZB6/MeuW66oi8kut3vUN2Pz8/oqKiLvpbGbikpaUxaNAgunXrxi+//OJwh9C7d2+2b99u+9IE2LhxI23atKlT4CIhcb0jltoHCsZyI2WGsotsUQsTJ9L29GkSmzcnLSiIuJYt0f38c502lclkdO3aFU1ZGa1iY/HML7AfI+IFA8VqeHl58eSTT+Lp6emwz27dutXrFI4fP15j4AJW7ZL6svPYTlvgAqBAwY+//njJ7U6dOlVr4AJWfYxYYm2dH/nks499Na47derUegcuAIsXL7Z5zah1OpQ11AmpDSa7qarGRmfSMXvHbD7b8BnaMqkWscEoxKFIV4OG3NRcduxoumKWV5sGyzdWBi5hYWF88skn5OTkkJmZaftAgvWDrVKpuP/++zl58iSLFy/myy+/tJsWkpC4kTGIBrvHChR89MFHdroLl6SkBEpKkAEtz58nJCODljodbephOtgiK4v7585l6h9/8ODcuXQ9eND2nBatvXJuNdzd3Xn66acZNmwY7u7ueHh4MGnSpHq5bh86dMhOLdY3O5vg5CTKzVoSScRgMGCpplNyKUrLHQuK67IPDw+Piz6vQkU00XbLqmeqlEolI0eOdAjq6sLhw4ftJNuzAgM5X011tVytJrZtFJ07d673/huCckM5L3zyAln/ZqHdo+XtL94mIzujsYd1Q6JR1TwN7IIL6enp13g0jUeDFexu3LiRuLg44uLiaNbMPk1beXfl4eHBhg0bePzxx+nWrRu+vr68+eabUpu0xE2DylkFVRItQsXPjh07GDBgQN124uJiLeArueA+LVyiKLY6rf7+G1mFJopLWRm3HDjA4e7dsWChLLisTnUVffv2pW/fvvU6biVHKy0EgFFr1tDl8GGUJhOnmvsxb+pkPvjwAxRyBV26dLGT5L8YQ28ZyvaN21FZKkTrMDNqxKVVZrp06UJSUlKtmSABgY505ChH8cKL27iNAAKwYEFAoE/vPvTt2/eylUn37bPP4ohyOb/ffTd9d+2i5blzFLo5kzRoCB2ffKrJGCt+veBrfPW+tiDO3ejOj/N/5I0X3riupjGuB24fdTt/Ll2IKKqs3xYVr28ppQQHBzfy6K4dDZZ5mTlzJqIo1vhblY4dO7Jjxw50Oh2pqam8/PLLDTUkiWuIKIqUlJRcNP0uASP6j3AQngJrIW9NdSQ1Igjw66/g7W0NYtq0gS1b6jUOWbVjyU0mLFg4xzk+ufuTWra6elRe6L3y8uhy+DAqkwkBaJeYw5hdJxEQMJvNHDp0qM7yCAq5gtdeeA2FnwLRXWT85PH07XTp4EoQBCZNmsTLL7/M888/z0svveRwAQ4nnKlMZQYzCCYYOXJkyDBhomXLllckqV7T392sVLJ90CB+efBBto8ex7j33ic6OrqGrRuHsoxSIuLiCUpJQajIbollIocq/Kokrh7t2rXjlZfe5InCImRZB8g1p1NALj3b9aR///6NPbxrhmTMKHFV+f3473y25zOy8rJoaW7JOM04brnlFgYMGEBmYSbbYrfRMbwjbYPqIJV+EzCw10C279mOWWvt2Km8c9VoNPWrlZg0yfp7uUybBnv3Qm4uolqNftQohgwawkvdX7om7tljxozhzJkzqHU6FNUu3qoq9R6VBnt1Le5z0bjw+mOvX9aY1Gq1zXyzWbNmpKSkABdUTVvQokaBsJYtW17W8SqJjIystXAZwCSKiCdOINQ1M3cVMW/YwKqlS8nSaNC7uSELDMTX15fbFy+jyNWVbYMHI8pkGCx6ioVituzcgre3d5PJEN0oOGk0OH3xBW829kAaESl4kbhqZBRn8OHqD3HXu2PGzA524FXiRcn2EtaeXEtpdileeLGPfQR1CuLFiS829pCbBG88+wa5hbmsXLGSwrxCNBrNtddomDLFqr+yfj1Cu3Y0u/tuLt6Tc3Vxd3dn3LhxrFu1ivMREbSs6JJK93bhUNeutvWUSiUh9ZwSuxrMmDGDf//9l1XHVnGo7BDnOMdtstsIsgTZ1hERsbjXry6nJkaNGkVAQAA5OTnodDrKzp4lMS8Pg0YDFgvNc3KQtW2E4L+8nI2//MLRKjIY5OWRm5NDiJsbca1bY1SrOc95VstWUyAW4F3kzdkFZ/nPzP8QHh4OwL///mtXWNquXTuGDx9+yVojCYmqSK7SEleN//3yP3KTc3HGmVJKWc96XHGlJS3xww93Lvx9ssjiuWnPERkZ2YgjlmhqmEwmCjIy8PjpJ/T5eSQMH0S8UeD8+fMoFApuu+22RtV1EkWR84XnEUURV6Mrc36cA2ZrNqZUXsp7L7+HWlm7I/blEvfWW8QlJOBuMtH7zjsRLqP76opJSOD3N97gbA3F2y3PnQMgvlUrfuEXkki68BwtecLjCZ566ini4+P57bffHLYPDg5m1qxZl61xJHF90iRdpSVuLsp15WQlZ+GGG2CtfL+FW3DGGR98HNaXI2fXrl1S8CJhh0KhwC80FN56CxXQqeK3LiQkJJCamkqLFi0aLMARBIEIrwtTIM8/8zzHjx/Hx8fnoh1ZV0rkW2/R6J+UkJAaPslW9CoVwzZvJik8HKPKvq3biJGSkhK0Wi2pqak1bp+VlWW1j3F3h08/tfpf3X47XGYBuMSNjxS8SFwVnpzzJMHYV7p7440LjvUSZsykkYaYJjK6dPSlPV8krjtEsxnhGt5F79mzh23btqHX69m7dy8jRoy4Jm3Erq6u9O7du8GPcyVs3ryZU6dO0bp1a0aOHHn5O1KrGfr88+h/+omj3t52/lWpISHERUTQIi6OFlHNyZRlYsGCHDktaGF1/HZ2JjIyskYZABcXF5w1Guv05bJlJIWGkrNzJwUjRxL9yCONMlUo0bSRdKUlrgrl2nLk2F+sFDXExiZMbGMby1nOEuMSXtn0yrUaosQ1IC8mhqSWLSny9iY1PJy4KurZDcmJEydsnW3l5eUcO3bsmhy3qfPTTz+xbec28vPz+Xfvv4x5ewxp2WmXvT95166MnT0b12oeTEqNhp2DBpHSvDnTMqK5TTaW7nRnDGMYzGDMZjOFhYWEhoYSFBRkv0+5nCFDhuBUXo64di253t6oDAYUej2nCguZO3cumzdvvuwxS9yYSJkXiatCiDqEUl2pLdOiR4+Pmw8lxSV26ylQ2Do0cshBq5eUOG8k8qdPp1VFsa2nVsv5F16Aa1CfUV1pVtIWsZKammq7qXDGmUACuW3ObWx5YQvO1cz96opMJiM8PJzjx48D1q6szp07k5ycjF6vJ7BXL/4vKoolS5bYtikvL+fEiRMMGTKEhx56iKKiIk6cOEHLli0JCAiw/r3S07HodPhWuCMHZmXhVlTEX3fcwb59+xg6dOgVvhoSNxJS8CJxRRiNRv7880/cDG4UUkgeeQgI+Lr40i66HXv37XVQH72FW8gkk3Oco2d5T+bPn4+rqyujR4++7C9UiaaBqsQ+WFWWlfHjjz9SUlKCQqEgLCyMcePGXdXCzNzcXIfg5XIk+W8WCsVCjhw5ctmCgmC1a/D390er1dKyZUvatGlj93xWVhZKpdLO+sXNzc32fw8PD8fjJydDlf6RA7fcwpbBg9E5O4PRyPbt2+ncubPUmCEBSMGLxBXy559/cq6i06Cym8jZ2RmNk4Z9+/YhImLCZBPxAmsxbw95D6YFT6MssYxEEgHQ6/VMnTq1Uc5D4upQ0KIFZyIiyPXzw72oiKyAADvJ8vz8fJydna+amaAoisTExDgsr3SDvtkJDg4mIT0BJ5wopZSjHCWAAJv/3OUik8lqNOqsJCAggF69enHkyBHMZjORkZF079794jvt1AmZkxNU2EQc6tbNGrhUsGXLFg4ePMiYMWOIqtquLXFTIgUvEpeNXq+v0UujrKyMsorUr6ziR0Sk64EDdKmQgU8cOJADLi5ouTBtlJiYeC2GfVNgsVj4888/yc3NJSgoiNtuu+2aHDfjjjvYn5lpVf3FUbkXrE7UV8rp06fZtm0bWq22RhXnxmynbko8+OCDLFq2iOUnlpNMMs4480DEA/U2zbwchgwZQr9+/TCbzWg0Nfvx2KHRICxejOXOOxF0Oiw1WFIUFxezd+9eKXiRkIIXictHqVSiVqvrdJer0ukpcXNDFARCU1PxXr6c0xoN2ioXGaPRSEJCgqTGeRWYO3cuGRlWY7zc3FxOnDhBu3btuP322xv0uNnZ2bbABajxAuTn53dFxzCZTGzatIn8Ci+mqgiCQPPmzRk1ahTodNapiKAgqDJlcbMx7fZpTL1tKhkZGZjNZkJCQurkVXU1qHeGZ/x4ZCUl8PHHtMnNoRCoHv7W16BT4sZE6jaSuGxkMhkDBgzA09MTtVpNQEAATk5ONa5rdHLibFQUf912G8WurjiXlxOWnOywXqUEu8SVkZ2dbfdYFEWOnzjOD0t+aNDjOldvaa2mgRkaGsrAgQOv6BhlZWW2GpfWp08zfP16Oh8+DKJI69at6dSpE+mLF5PWuzeFffpAly6wevUVHfN6RxAEgoODCQ0NvWaBy+WQmprKuo0budsvhhnBf7BNtosCCsgmGyNGVCpVk/J0kmg8pMyLxBXRqVMnoqOj0ev1uLi48MEHH1x0/UJvbxJatKBlQgIJ1TIsgiDQvn37hhzuTYPZbLb9v+XZswzesgUnvZ7EZv4w6T5QKhvkuGOmTEH344/kZmQgGo0UV5N8d3dyuuKLZ2lpKRaLhe779zN00yacDAZMMhkyk4kjMhlnzpwBiwUmTABRJPLMGca99BIurq4odu2CIUOgV68rGsPVIObLLzGuWkVJSAjdZs/G9SbODgGcP3+eRYsWYTboaCtG0KUsgCKNHJXSWkunFbRMHjOZTp3qKlsocSMjBS8SV4xSqURZcTF0c3OrMZ1vW1evxy0ggG2dOpFdRe9BEAQmTJiAj09tGp4Sl4PMbGbkhg345eYC4JOfD//3f/DOOw1yPBcXF6Y/8wwA7779tsPziRXF3VfCsWPHMJvNRMXG4mQwAKCwWMjz87tgZlgZIAkCcVFR7M/JIWP+fO6ZPx/Zp5/CJ5/Affdd8VjqysmTJzlx4gRyuZxBgwZx+v/+j65z5+JSXo5JJuNIXBxdt227qeXx16xZYw265UpEoNxdRdVJJ3fRncLywkYanURTQwpeJK4q48eP59dff7VzxJXL5bZMgEdICBHvv0+42YxswwZSUlKIiIhg4MCBtgBI4srp2rUrhw8fxqm8HNdqbcRco6k5tSBQVm3ayPMKu1zgQhu0qVo7tLm2jI4gEBsVRb6vLwumTSM0NZVBH3yArIGDl3PnznH8+HHKyspIS0tDp9OhMBgo3rWLvqtX41LRVaOwWIg4dYr09PSbstC4rKyMvXv3OrS7A9Zpx4oaKiNGAnwCrvHoJJoqUvAicVVp3rw5zz77LIsWLcJisdC1a1d69eqFXq9HLpfbLjxyuZzRo0c38mhvXMaPH09hYSEJcXFk+/kQnmrtChOdnBCukV/MI089xWeff34hC2KxcNdjj13xfvv3709ycjLb+/fHKy+PEg8P8jw9MctkyGSyGgs68yuKhBNbtiQxIoKCU6e4Xa8H9dU3UQRITk5mxYoVdsXsvtnZ3L50Kf7Z2ZirZVhEQcDv5Zdh2DCYNatBxnS1KS4uJiUlBaPRiJOTEwaDAVdXV5o3b15nkUC9Xs/ChQttxeUOCAKIFkqFcjS+GjZt2sTfy/7G3d2d6dOn22nHSNxcSK7SEo1Gbm4uO3bswN/f/4oEsyRqx2AwUHzqFF4ffWTt4hgyBJ599podv0Sr5a/580EmY9L06bhdpc+oyWRi/4IFbDp/HlEms92dKxQKBLMZi06HWakEQSD6+HEyg4PJ9/W1ba/W6XjlxRehmsz91WLDhg3s2bPHbtkdS5bQ7tSpC+cgk6GwWChzciLX15ew1FTQaEh+8VkeVRwl25KN2dXMtie24aZuOhfp8vJyTp8+zfr16zFUTNtVxdPTk0GDBtWpNuXQoUOsWrXKfqHJCAr7LKwRq9idkgvLXVxceO6555p0AbLExZFcpSWuOxISEvjtt99s00knTpzg4YcfbuRR3XioVCp8OneG339vlOO7ursz48knr/p+FQoF+0+eRKx2522q0JVRApqSEkKTkrj1n3/488477YIXUaEAL6+rPq5KavoillfTvBEFgRJnZ5QGA0qDgfdefRVTxbRaD0sPjBg5WHKQ3l/35sTzJxpsrJciLS2NTZs2YTKZSE9Pv2SrcmFhIatXr0Yul1+yAL+6/osFC9mKPAIJtFuuRInIhfvsBBKwlFp4+vOneW3GawT52fslSdz4SCGrRKOwdu1au46YzMxMCgsLG2UsRqOR3bt3s2vXLjs5c4mmS05ODkUujo7llRiVSmbMm8cdf/2F2mhk5Pr1NEtJwU2rRanT0axlSxAEzGYzq1at4ueff2bx4sVotVfHa6tnz554V8vqxEZFoauYpjILAqnR0ZjuugtDSAg/PvggJrXamkGqyCIpUdKJTpSUljjs/1px5MgRfv75ZxITE0lNTa2zxorRaCQuLu6S67Vt25bo6GjbNFMKKWxgAyXYn3N5xU8OOZzhDG64EUkkviW+fPDdBxQVFdX/5CSua6TMi0SjUNNsZWOIT+n1er766iubIvCOHTt49NFH8ajW4ivRtDh+/PiFWppakAFCxfvMLzeX+3/6iRJnZ3Y9+SSDK2woNm7cyKFDh2zb6PV6ZsyYccXjEwSBPn362E2JHOvalXJnZ1qcP4/W3R3lY48R+/vvtBEEHp0zh3wfH5ZPmoS+SjZChgxnZeP5fR0+fPiyP5d18SkTBIE77riDzMxM1pxZw3vb3kNExIL9MTVobP8642wzgAXwEX1YtWEV0yZPu6xxSlyfSMGLRKMwZMgQli1bZvti9PHxcbhTbWgsFgsbNmywBS5gvXh98cUXDBkyhP79+1+V4/zvf/+zHaNDhw7XTKr/RiYsLOyiz/uUlZEWFUWKuzvtYmJQZmWBXI5r796M/OADW3YjLy/PbrureQeflpbmsOxsmzbkenvT4vx5wtauRXXgABEVthh+eXmMXrOGvytUkC1YSBVSWXTvoqs2pqqIokhmcSZuajdc1a6AtZ5lwYIFlJWVERgYaJuGqy8quZzBgwfXaV1BEAgKCuLo4aO22pZ44ulEJ5u1SKW5q4CAM/ZBkRkz7i5SvePNhhS8SDQK0dHRuLi4sGPHDry8vK5p59GZM2fYvHkzRUVFdlNXVdmxYwe9e/e+bHfixZsXc3TnUZQokXOhs+T48eO0b9+e1q1bX9Z+JaxERkbSpk0bqyBdNby8vHjsjTfqVMhpLCqi+759OJWXkxkYiGnYsKs2RofMg8VC+PnzTF66lG2vvcbB+HhGVHPhdi0pQTCbadu6Nc3btKF79+517typD+XGckI/CiXPbHWB76zqzNvt3+bIkSO2rGhRURE+Pj527tCVmk5VA/7qiIg4mc31lj5oF9AOOXLMmFnJSvLJpx/9UKCw+wwBpJFGIIGIiJSryxkzckw9XwGJ6x0peJFoNMLDwwkPD7+mx5w7d26Nd8TVMZvN6HQ6XF1d632MU2mnOLrzKE7UbJWwceNGKXi5CkyZMoWioiK2b99OfHw8oiji7u7OmDFj7AKXhIQEFi5caLsojx07luzsbBKOH+fWr7+2dvkAqcHBeGdnw733wmUGrVUZOHAg2dnZpKamotbp6HH4MG3PnCHziSfocO+9/Dx3Lrk+Pvjn5Ni2KXV25uXERNT/939XfPyLMfyH4eSZrVknERG5Qc6hw4dsGY5KdDod99xzD0lJSYSFhREeHo7FYuGdi4gcCggUyIyYTKZ6Bf8Pd3uYuPw4Vp1chcwso4W+BWqT2m4KSUTEjJn23u2J7BKJu8qd3t1639TifjcrUvAicdOQmJhYa+BiwYJQ8QPg7e2Ny0UKQi/GvH3zag1cwNoifvDgQbp37w5AVlYW6enpNG/eHK8G7IC5EfHw8GD8+PGAdRqkpixF1cAFYHWFz1HvXbtsgQtAs/R00s1mnBcsuCrqu0qlkqlTp1JeXo5KpbJdYD2BefPmgUzGikmT0K9di5tWi0GlouPjj8M16LpLL7Z3gw8hxCFwAWs3UFhYmN00nUwmo1evXuzdu9fWAVR9W8Ei52TCSTq1rruUvyAIfDLiEz4Z8QkABw8eZNu2bZRUyU4JCChQMHjQYDp06FDnfUvceEjdRhI3DalVLlTVkSFDQMAis9CmTRtmzZp12en6jmEdbXP3lVRt8wTYvHkzYP2Cnj9/PitXrmTevHl16tCQqJma/l6vfPcKRku1DrKKQEastr4I5Pr6wkWmRC4HjUbjkBmonFIyqNWsnDiRRTNmcPSNN+DRRy9ZiHw1mNl5pp1miqyWS8HUisLm6owcOZKXXnoJ9x7u/MEflFNu97wBA0qnK1PM7t69O0888USNz0lBvoQUvEjckIiiyNatW/n+++/55ptv2L59O61bt3a4wFUPKgxuBqZMmYJGo6GkpISYmBgyMzPrdexp3aaR55uHBQtmzBzikMM6lbU2hw8fprxCJl6r1bJv3756HUuidv7e8TeKbAUKoeYE88Hu3UmqIsd/LjISrY8PzJzZ4GObMGGCnQO7Wq3mrrvuavDjVtLV1JXbuZ12tKM97QnCUSfFxcXlokGCRqPhudHP8ciIR1jitoR44tGjp4QSSvxKaBva9orHqVarUdegglyXTiaJGxtp2kjihsNsNvPJJ5+g0+lsy7Zs2UJKSgp33HEHa9euRa/XExQUxMmck4jlIumkk0wyrZWtEUWR9PR0li1bRkFBAWq1mv79+9dJBdhoNLJ69Wp6aXrZNCvccceMGTlyW3pdrdOBKDq0oTZGu/iNysHTB+2yC2ANapVGI97NmmEymVg4YwYdYmIwyeWkBwfTYcwYuMzpwvqgVqt57rnnOHjwIHK5nO7du19TpdjY2FiiKn5qQiaTcffdd9dpX8/0foZnej/D+fzzLDiwgDD3MB7q9dBVKzR+4okn+Oabb2yf5+7du1/zzkSJpodkDyBxw7F48WJiY2MdlstkMl555RVbF8SOpB08u+5Z4jLj6EAHjBjxw482bm1o69HWbprJ29ubJ5544pJfyH///TfHjh2zPS6hBFcci37dCwqI9vPjsExmk1h3dnZm1KhR0lz+VWLt9rXs3LITe29iK6GhocyaNYuSkhKWLl2KTqejVatWDBkypEG6e5oaP/zwg4OfUJs2bXB1daVDhw6EhYU1qddBFEWKiopQKpWXXYsm0fSQ7AEkJKpQm1aHxWKhuLiYnOIcpv82nVhDLDJkTGMa/vhf0JMohrQS+8Leusb4BQUFdo9rClwAAtLTOeDhYXNCFgSBAQMGSIHLVWT0gNGcSjhFZlImzqIGmXCh7qRSv8TV1ZWZ12CaqKkxc+ZMPv/8c1s2Izg4mClTpjTyqGpHEAQ8PT0bexgSTQgpeJG44ejQoUONLrUeHh6kpaXx018/MZaxDGQgevT44APYd0xUdq6IoohcLicqKqpOd6KXcrkVERFEq/Kruco0gSiKksFcA/D8zOcB2L17N1u2bMFkMiGTyWjRokUjj6xxUalUvPzyy5SUlKBWq+utySIh0dhIwYvEDUfv3r0pKysjJiYGvV6Pm5sbnp6eDBkyhN8X/44X1iJE14qf2nBxcaF79+74+vrSrl27Oh177NixWCwWWwamqKiI8vJy+5ZSARLatbOlS8E6LdWmTZsrOe0Gw2KxYL4M0bGmRJ8+fXBzcyM1NRV/f3+6du3a2ENqElyOjpGERFNAqnmRuGmwWCx8+NGHGA01my+KFT+VbaN+fn489thjV3TMjIwMzp49y/bt2x2KcYcPH05WVhZgDbgCAwNr2kWj8uiXj7KtcBsAXenKz6/+jErlWEMiISEhUV+kmhcJiTqwceNGjAYjFiw16lpUFakDa1HnlRIUFERQUBDJyckkJCRcOJYg0LJlS/r06XPFx2goNh7fyO+Fv1OENTuURhrPf/48s1+e3cgjk5CQuNmRJtklbgpMJhNHjx4Fahfkqk7Hjh2v2vGnTp2Kj48PMpkMhUJBz549CQgIuGr7bwi+3/m9LXAB0KLluO54I45IQkJCwso1CV70ej2dO3dGEATbBaSSmJgY+vfvj5OTE6GhoXz88cfXYkgSNxmHDx+20325FH5+flfVd0kul/PEE0/w/PPP88ILLzBy5Mirtu+GIkIZYaeTokCBt0LS15CQkGh8rknw8tJLLxEcHOywXKvVMmLECMLDwzl06BD/+9//eOutt/jhhx+uxbAkbiJyc3NrXG7C5KCy6+npySOPPNIg43B2dq5RMbQpMqHtBNrRDo+Kn/a059URrzb2sCQkJCQavuZl7dq1bNiwgWXLlrF27Vq75xYtWoTBYODnn61FgO3atePo0aN89tlnPPTQQw09NIkbiKTUJH7+42csOgvu7u48/cjTdoWl1fVXzJgpoww37Fub+/bty7Bhw67JmBuT7OxsVq9eTWlpKb1796Zbt24O69xyyy08duox0tKtmjfNQprRpUuXaz1UCQkJCQcaNPOSlZXFgw8+yIIFC2r0otizZw8DBgywu8iMHDmSM2fOOFxsKtHr9Wi1WrtfiZsbURT5dv63yEplKMwKygrK+OCjD2z+QQDnEs7ZbVPpTnsjUWIo4f4V9zNqwShe2PACJoupxvW0Wi0//PADa5LXMD9vPq+seoW169Y6rKdSqbj33nsZOWIko0eNZubMmSgUN9ZrJiEhcX3SYN9Eoigyc+ZMHnnkEbp3705iYqLDOpmZmQ5iUZVFjJmZmTWagn3wwQe8/fbbDTJmieuT7OJsFCb7t7JoEfntt9+YPn06RqMR0SLadRJZsHCUo/Smd5WNRNyuQ+lxbbmWHW++wbnCDAJVZhT+4RQmFHLfofsY5D+I1q1b079/f9v669evJ8OcgQkT2WRzkIPk7ctD46Rh0KBBdvtWqVT07t0bCQkJiaZEvTMvr7zyCoIgXPQ3NjaW2bNnU1xczKuvXt058ldffZWioiLbb0pKylXdv8T1h5vGDQMGu2UCAsnJyZSXl/O/xf9jDWvYxCaMWDVeFCjwwYe97MViMaEwGGgfE0OPBQvqdWyj0UhhYaFdludaci7vHP9MvZ1Yi4KiZu1Q+XckqtCZUEJpbmhOamoqO3bs4OTJk4iiyKJFizh16hT++NOZztzBHQQRRBJJ7Nixw86XSUJCQqKpUu/My/PPP39JL5CIiAj+/fdf9uzZ41Cc2L17d6ZNm8b8+fMJDAy0iXRVUvm4NsGu2izSJW5enJXOaKI0mGOtzs1QITgniny0+CM+TfqUEkoASCede7gHGTKCCOIgB1HGbeLPZXLUej3UwTm6ktjYWDZs2EBJSQm+vr7ccccd19zt9r2N7zFG4UFJFYEnbcX/K6fFjEYjaWlpnDt3jri4OLvt3XGnHe04wQksFovD51FCQkKiKVLv4MXPzw8/P79LrvfVV1/x7rvv2h6np6czcuRIFi9eTM+ePQGrqujrr7+O0Wi0SY9v3LiRNm3a1DhlJCFRG+NajOOv2L9QoUKGDAEBDw8PluUsswUuAKmkUkwxHnigR4+TRU24ay92tkpg6Il08PUF4L+//5fEs4kYBAPTJkxjXKdxDsfcvn27rTYrIyODzZs3M3ny5GtzwhXoRT0yc7XalgqPpEqjSYVCQUhICP/884/D9iIiZsz0xzqt1NS1ZyQkJCSgAWtewsLC7B5Xemi0bNmSZs2aAVbhrrfffpv777+fl19+mRMnTvDll1/y+eefN9SwJG5Q9u7diwaN3bL8/HxcPV2h7MIyJUpERAop5BznGCUbjXOwMxtvKyG5x0nue/NLvlr2FaazJiKIABE2/72ZLmFdCPEKsdu/Xq+3e2w01mw7ANZA5/Tp08hkMm655RY6d+58xecMcEenOzi2/hM8iooo8fCwLRcRkcllNAtuRuvWrWnXrh3r1q2zG7OIiAEDPemJE06IiHX2cJKQkJBoTBpVYdfDw4MNGzZw/vx5unXrxvPPP8+bb74ptUlL1BuTqebOmo6FHWlOc+TIccGF3vRm0ME4Hv5tDUNzw3DG2gWnkblyok1bKC2l2c9/E5qRZ9uHBx78uelPh31XtQ9QKBS0bNmyxjHExsayY8cOMjMzSU9PZ+PGjeTn51/J6dq4Pfp2Br75LonBWizihbobvaDnsaceY9asWfTr1w+AQYMG2WnaVHZcVQYuObKcq95NZLFY2L17NytWrODEiRNc51ZqEhISTYRr1vfYvHnzGr+4OnbsyI4dOxr8+Gaz+aJ3xhLXNx06dHAoNtXpdKjNamYwgwIKcMKJHscTGLV+JWqjkZ0DBlRNytAx5gx8NoTbsrIo1exl87BhHKnQP4nwjnA45q233oqPjw+FhYWEh4fXaieQkZBgF1yVlZWRmZl51epjhkYMZcjzQ/hs4WdkpWYhykSGDRqGr7uv3XrtOrVj0apFeHAhQ5NIIumkk0ceL0x44aqMp5Lk5GSWLFmCtlSLHDlHjx7l4MGDzJgxA5lMciaRkJC4fG540QZRFMnMzKSwsLCxhyLRgDRr1gwPDw+7rh+z2UxSUhJxcXH44ANAaHIy6oogtuvhw+R5eaFzcaFMKGPUqSSoKFh1KS+ny+HDHOnWDSNGxgwc43BMmUxm14Jcld27d7N3714sZjNiXh6CSoUotxYTezg722VtDAaDzV21svarvgiCwPPTn7/oOk4KJ2Q+Mix5VmNKPXpSSCHJPYkX+r7AtI7TLuvYNXHo0CFWrVkFFpAjRxRF3AryabN2DYfbtqV7Rd2bhISExOVwwwcvlYGLv78/zs7OCIJw6Y0krktEUaSwsNCq6yKKGI1GmwCi52+/0S4lhTC5HFEuRzCb6Xr4ML5mI/+8fC/9e04iYOsBu/1VvlOUKNm6YyvDBtdNeTc2NpZNmzZdyDRqLtTiyA0GBur1uLm52db9559/KC8vx8fHh1tvvfWquFnXxsePfcznSz8nLSWNEK8Q/hj7R4MU6R49ehQsFx4LgkCxlzea0jK858wBKXiRkJC4Am7o4MVsNtsCFx8fn8YejsQ1QKPRYLFYr5rZ2dkAtAoMpP2uXTgXVTgk+/lZf11cCHv1VR6fNMm6fNYsxBMnEHJyKHNy4linToC1NmTv2b31Cl5qq+0wq1TsEQSi9XpiY2P5+++/bc/l5uaydetWpk+ffhlnXjdkMhnP33nxDM1VoYZ7BEEQiOnShalFRY5PXoIyYxmlhlJ8nX2lGxAJCYkbO3iprHGpyZpA4saktLSUkpISBEHAz88PpVKJLi0NmYcHVF40S0pg/35o3tx+43vuYe358yi2byMlLJzUio45Cxac3J3qPIZLSQnkiCJpqamsXrmyxvHfCHTr2o2kpHjkMntNJkEUUbRpU6993Tb3NjakbcCEiQAhgKPPHcXLVZJSkJC4mbkpquakO7Wbg+LiYoqKijCbzZhMJrKyslAoFMjVaqj6HggOtmZeauCMqyt7+vW3BS5mzCQqE3n6jqfrPI4+ffoQHh5e6/MalQqXBx5AXlLi8Fxt4ozXG507d+aBwGD0hXFYLNabCNeSEm7x9IR33qnzfpILk1mbtpZSStGjJ1lMZsxXoxto1BISEtcLN3TmReLmoqyszGGZVqsFd3eYNAlWrQJXV3jjDajFw8jFxcXO7NOIkcldJuOkvJB52XZ0G6tWrEKBgjKhjDeefANfrwudPYIgMHPmTJYtW8aJEydsyzUaDc7OznQ8fJjl4aHkCcXIkeGEdd9yuZxbb731il+HpkLYo0/w/tqWZG7ZwnYfNxI1GlbJZKRt28bQoUPrtI/TaacdrB9MehPLvv+eZp0706VLFztj15uVs2fPsnLlSspKS1EBzVu1YvyECbhch15dEhJ1QRCvc+GFyi6NoqIi3KtIpIO1Vfb8+fO0aNECJ6e6p/2bMomJibRo0YIjR47QuXNntm7dyuDBgykoKMDT07Oxh9eoZGVlOXgMmUwmtFotkZGRdu+BrKwsfv/9dwwGAy1btiQjIwOj0UiLFi04efKkrbVZrVYzffp0fP19eWDBA6QUp6AqVNGHPjajx3whny/f/LLGMaWlpZGRkUFUVBTOzs7k5uby1bdfoRSsYnlaUYs+7wRt29zKww8/fNndRo1JWVkZn/z4CfpiPXpRT4h/CBGBEYwePRqVSkVycjLz5s2zqwOaNGlSra3lVSk3lBPxQQSZZALgggu3c7tVQBAICQlh+vTpN7VlSFZWFt9//71DnVVIUBAPSJpZEk2Yi12/L8VNMW3UlMjJyeHRRx8lLCwMtVpNYGAgI0eOZNeuXZe1vz59+pCRkYFHhbrqvHnz6h3EnD9/nqlTpxIcHIyTkxPNmjVjwoQJxMbG1nkfM2fOZOLEifU67tWmNt2U6nUkpaWl/PjjjxQVFVFeXs6JEyfIy8tDq9Vy7NgxOnToQLdu3ejUqRN33XUXgYGBjP52NAtTFrKtcBub2cwOLmgTOYm1B8YhISF0794dV1dX9Ho93333HUrBGqAICLgL7hR6e/HEJSGySQAARMdJREFUE09cl4ELwKfff4pYKKIyq3CzuJGRmcHRo0dtdgSHDh1yuLDW1QBSo9Jwr/xeetCDLnRhEpNsgQtYg8P9+/dfvZO5Djl8+HCNBeLpGRmNMBoJiWuDNG10jbn99tsxGAzMnz+fiIgIsrKy2Lx5M3l5eZfeuAZUKtUV1UkYjUaGDx9OmzZt+OuvvwgKCiI1NZW1a9ded9o4SqWSgIAAB3PB6l/s586du6gLdHJyMo8++ig7d+5k5cqVmM1mThRfmP6xYCGJJNvjSqfqS/G///3PYZmAgFKmQRTF67I2SxRFjMVGmyEmgDPOGDDY3tORkZHExMTYbVefdnAvpRdjzI46O5VUvm5mi5nEwkQ8nDzwdfatdf3rAaPRyNqNa9l0fBN5ijyGRg5lXO9x+Pv7O6xb0zIALJaal0tI3ABImZdrSGFhITt27OCjjz5i8ODBhIeH06NHD1599VVbrYMgCHz33XeMHj0ajUZDREQES5curXWfW7duRRAECgsL2bp1K/fddx9FRUUIgoAgCLz11lsXHdPJkyeJj4/n22+/pVevXoSHh9O3b1/effddevXqZVsvJSWFO++8E09PT7y9vZkwYQKJiYkAvPXWW8yfP58VK1bYjrt169YrfbkuC7lcjlwut1tWPSjw9b34hS01L5XX3n+NrVu3UlhYSHFxMWrspyWUKDFhooQSHnvgsUuOq6CgoMa7YxMmCihAp9M5PPf1qq/p9n43erzfg7UH1l7yGI2BIAhQLWFkwoQSpc3PrEOHDrRp08b2twkPD2fQoEF1Poad7UK117BZs2b06NGDgzEHif4wmqjZUUR/Hc3HOz++3FNqdLRaLV98+QWHDxzGR+dDi5IWLDy6kE/nfsr27dsdrDC6deuGp4eH/WsjikSmpV3jkUtIXDukzMs1xNXVFVdXV/7++2969epV6zz9G2+8wYcffsiXX37JggULmDJlCsePH6dt27YX3X+fPn344osvePPNNzlz5oztmBfDz88PmUzG0qVLeeaZZxwu/GC9Cxw5ciS9e/dmx44dKBQK3n33XUaNGkVMTAwvvPACp0+fRqvV8ssvvwC1T+FcC3x8fMjLy8NisSCTyRyKFps1a4afnx85OTm2ZYIgYBEtiIhWg8dqN61DGMI6YR0lYgmBykAW37OYjmGXrtmopKaiUjNmznOe0QGjHWqylu5YyuuHXkeLtXh4xpoZ7Gu2j4ggR5uCxmbGnTOY99s85BY5Zszo1XrahLRhzJgL2ZIpU6Zc1r5FUWTUqFF4eXmRkJBAUFAQffv2JTU1FZPJRPv27UlMTOTp5U+TTDI96EFBeQHvbH4Hj3gP/r+9O4+LslwfP/55BoZh2Bdllc19PYlLiFjuW+pxK62jKR7Dk8tRT5v2bVFLs59a306WZZmm5VcJzTTcQsTUUsncN1wAN0BQ2Xdm7t8fyKMjqJiy3+9e83r1PPPMM/cFyFzc2zXuhXE1bkJvVFQUOdk56pwqLVoCCEBbqGVn1E527drFmDFj8L1jqf+06dM5EBzMDg8PFKDR+fOMPHiwOKFRFIiKghkzIDUV/P1h1SqoJfMApbpJJi+VyNzcnG+//ZaQkBC+/PJL2rVrR9euXXn++edNJi8+99xzvPTSSwC8//77REREsHjxYpYsWXLf+1tYWGBvb4+iKOUeSvL09OTTTz/ljTfeYM6cOXTo0IHu3bszatQoGjYs/qAMDQ3FaDSybNkytRdjxYoVODg4sGvXLvr06YNeryc/P79aLPU1NzdXd43Ny8sjMzOz1DWTJk3i8uXLXL58mVatWvHLL7/wy6lfaECDMu/ZWNOYTf024dHQA09Hz4euzWNtba0mVSVsrWzp69aXXr16leod+v7g92riAnCd6yzftZy5L8x9qPe9n+zsbFavXk1+fj5Nmzalb9++f+k+jRs1Zu47czEYDGg0msc2/HXo3CHWrV+Heb45VrZWtG7amqysLPbu3UufPn3U5P/XX39FQeE//AcdOgSCJJI4E3+G77//nuDg4BpVS6msIU0dOjWZEUKwZs0a3nzzTZNrAp5+moDp0xGZmeRYW7P1pZeI++ILHB0dGfnhh2hKhu7On4cGDeDjjys8FkmqKDJ5qWTDhw9nwIAB7Nmzh/3797N161YWLFjAsmXLCA4OBiAwMNDkNYGBgcXbrVeQyZMnM2bMGHbt2sX+/fsJCwvjgw8+YNOmTfTu3ZujR49y/vx5dUv7Enl5eVy4cKHC2lXRvBo0wOuHH7g8Zw42ioJZJ98yd4a1trbm6aef5smOTz7S+02ZMoXjx49z9epVAgICcHS890Zrvg6+KBmKWgXaAgva+bR7pPe/k9Fo5PPPPyc3NxeA/fv3A/zlBAYos9furzAYDCxZsoTrN6+rw3X5mfns/3M/2ltjVDdv3mTs2LFAcdL+FE+p1yoouOGGQJCQkEBGRkaNWonXqlUrjh8/jkDwG79RRBHd6GZyTUFBQekX/vOfFNraEnr4MHE6XXHnYUoKKcnJbGzShKF3zjuSk3mlGk4mL1XA0tKS3r1707t3b9555x1eeuklZs2apSYvVcHW1pZBgwYxaNAg5s6dS9++fZk7dy69e/cmKyuL9u3bs3r16lKve9BustXaa6/Bf/+Ll8GAh6KQo+3PkQ71Mb/1z0IgUFCYPn065ual/6nk5+dTWFiItbV1uXsb2rRpQ5s2bR543UdjPuLPhX9yNP8oGjT0dOjJsM7DHi6++yhZaXWnM2fOPFLy8jgIIfjiiy+4efMmmrum5Jnf8evqypUrFBQUcOHCBTp27EhcXFype2nQoNPpatwy6mbNmmFnZ8fWjK1EEokWLc1ohjvu6jVl7t9y6RIJa9bQKCGBa0FBZJUsPVUU4m9tugiAVgtPPloiLklVTSYv1UDLli1Natzs37+fMWPGmBz7+/uX614WFhb3XUlTHoqi0Lx5c37//XcA2rVrR2hoKC4uLvdci/843rfS7d0Lt9psJgQ+VxM50eH2PwmF4p6PshKXvXv3cuDAAQoLC/Hx8WHEiBGPrecBinsx9szcQ2ZOJlpzLZYWj3d+QknCdeck4qqeGyKEYPny5fdceVcybGKZk0PQ3r0cOnCAHU88gcHcHI1Go9a0uvPaDh06oL+jMGZNMWnSJJZ/uByBoIAC1rCG7nTnb/wNa0trXnjhBdMXJCfDM8/gc/IkPoBfXBwrg4PJu1UaJc/BAUaPhrQ0CAqC6dMrOSJJerxqzkBwLXDjxg169OjB999/z7Fjx4iLiyMsLIwFCxYwePBg9bqwsDCWL1/O2bNnmTVrFtHR0UyZMqVc7+Hr60tWVhaRkZFcv369zF1n73TkyBEGDx7MunXrOHXqFOfPn+ebb75h+fLlaptGjRpFvXr1GDx4MHv27CEuLo5du3YxdepUrly5or7vsWPHiImJ4fr162pdqWrtrsnMtrm56jDN/WRmZrJr1y6ysrLIz8/n7NmzbNy4sUKaaGtl+9gTFyhOVJ544gm1x0in0zFq1KjH/j4PIzExUf15up8CCwucb96k088/8/yaNShGI0ajETs7u1JzW3bv3s33339fUU2uMDqdDneb2z0tGWSwj33oLfT8+9//xtPT0/QFq1fDyZPqoVtyMq1uHSuKgv+TT8J338HPP8PMmablMiSpBpI9L5XIxsaGgIAA/vd//5cLFy5QWFiIl5cXISEh/M///I963Zw5c1i7di2TJk3C3d2dNWvW0LJly3K9R+fOnXn55ZcZOXIkN27cYNasWfddLt2gQQN8fX2ZM2cO8fHxKIqiHv/nP/8Bigtb7t69mxkzZjBs2DAyMzPx9PSkZ8+eak9MSEgIu3btokOHDmRlZREVFfVQy2GrxPvvQ0oKxMcj/PxosHgxhl0RmAkz9S/3soaDYmNjMRQUQElPixAcP34cGxsb+vTpU5kRPJLBgwfTp08fMjMzqVevXpVPai1zHkcZjObm3Li1ms03Lg7nlBSuu7qSnZ2NhYVFqWXnFy5cIDY2Vp2AXlMsH7Wc/l/156q4ih49veiFtbW1yTCY0WgkKioKy9hYAjUaNLd6n4xmZrg+8QTDhw/H09PzvvOrJKkmkuUBqhlFUdiwYUOV71ZbWzzwZ6CwsLjL3cUFtFqKDEXM+3QehkwDFnoLXpn8iklVcoPBwNJPPiHlrqKKDjduUOTjw7Rp08ocZqpKxls9E9WtXXczGAwsXryY9JLq33comX8E4JCayourVuGUmkqehQVfTppE+gMm5AYEBNCvX7+KaPZjkREZycnNm7EzM6Plm2+i3ErO8vPzCQ0NJSkpCb1eT9euXdWViflF+azfvJ6zR86iCBi8YQOtz57F3MwMRoyAb76RPSxStfYo5QGq928zSapoWi3c0QVvbmbOrP/MMrkkLi6O3NxcmjdvzpUrV0olLrrcXPxiYzl756TIamLNmjWcP38eIQT169fn5ZdfrrY7+ZqZmTFlyhRCQ0OJi4szmUMVK2LxU/wwKzLSec8eHFJTyddqOR0UhL55czKTk03mvNytuvY8nDx5kqO//ELKxYukOTqiGAwcmzKFtCef5G8dOxIUFMSYMWPIy8vDwsJC7R37/tj3zN41m8S0RFxw4XnleTYOHUq4IY98cyNmihWW/+//MX78+Jo9qV6S7kEmL7Xcnj176N+//z2fz7rrg1i6zWg0MnfuXJNJrWZmZihgMjOm+alTJHp60rp162rTu2E0Gtm1axdnz55VzyUnJ/Pzzz9X68rV5ubmjBo1itzcXMLCwrhy+TKFhYVYKBZo0CDMNWx75hl+92+K0dKBFgMHE9KnD/PmzbvnPXU6HU9Ww9U133zzze05PreSK2FmxtmmTTFPSuLXX3/Fy8sLb29vtdcwJiaG4yeOsyB+AReyircpyCMPBYVMJQtbc9viX+qiuNdmyZIljBgx4oEbXEpSTVM9ftNKqsc9itehQ4cK3SOmNgsLCyv1/ThlOEURRbSiJQjwSEnBukEDukyeTKtWraqopaYiIiLYt29fmT9LKSkpbIneQmpOKsMCh6HXVc+VOHq9njFjxrBx40aOHDliUp7BaG5OrJcLdtjh7u7O559/btLrcucQE/BQS9krS25u7r0nJysKRXo9FBaSmJiI960evU2bNnH48GEA+tCHIoo4wxlGMxodOpP6Unfatm2bTF6kWkcmL7WcXq+ncePGVd2MGun69eulPgjNMWcNazhKUzaP3Yyft99jXSL9qHbu3KkucS/Lz1d/YPPlnRQpRbTc04TfX/kDe2v7Smzhw2nQoAHHjx/HxeBCGmlo0VJAAYUU4uTsRL169bh586bJa+78fhkxmuxeXV3cXZ/oXho3bszlm5fpv6w/V3KvYIstz/AMHnjQkY5c4lJxOYv7qOHTGiWpTHKptCTdQ1BQEAXcXgFjxMhViovdxROPYqNUq8QFiudQlMXCwoL69bWEGyMpUoo/OE8Zz/HayomV2byH1r59ezp37oxGo8EBBzLJxIABF1zITst+YAFQ4SDo2rVr5TT2IdjY2JjuWH33fJ1bCYelpSWjvx/NydyTpJPOFa6wne0A1NPUY8QTI7CwLN6fx/yuv0VLlv137NixgqKQpKojkxdJuoe2bdty3Po4aaRxk5v8yq9EEQWACy44mle/SaBlbTSn1WqZOnUqSSnnMSimGwnmpCZVVtP+so4dO6orEdxwox71UFAwGAycP38ee/vbPUd37tOTo8kheFhwZTe3XBSleOfmRo0aYWdnxxMtW96aqyKKH7eSmaioKFLzU01em0Px3k2dW3Zm+ZDljBw2EuNdlUQLKGAf+xg+fDhPPfVUZYQkSZVKDhtJ0n2snLSSp756ilPpp1BQsMceL7wY12Acjg7VL3kJDAzkp59+UocKFEWhR88erFq1CgUvGtGICxRP9HQpcuCtp/9dlc19oNzcXFavXk1aWhpAqV2BAZo2bYpWqyU5OZnGTRuz+8RuioqKeL7n8zT0qr57u2g0GkaPHq0ed89IZ9OEcfTZuRd9bi6J7u786m7PE65PcDzuuHqdu8ad/n37q5OQmzRpgsHOQE5GDjYUb7wYSyy/8RutW7eu3KCguHL1nj3QtCk0b1757y/VCTJ5kaT7cLJyInpSNNvObyM/NR+bGzbodDq6d+9e7SaBFhUVsWfPHpMPd6Mwsm3bNhQUNGgYxSh+5VdEUT6fuz5Dy+5Dq7DF91dQUEBoaCjXrl1Tz92duCiKgr+/P+7ut3ejDegYUGltfJzWbl7NgMgduF4vroJud+4cMd8uZuVv59B+ryUmKYa2BW1pbNOYmzdvIoRQfwbfnPAmQYuC8MCDHHLYy156+fSq/CBOnCDnH/8g0tubQmtrWhUVYaXToenbF89bhTTvJSUlhTNnzlBYWEizRo3Q3byJWf36ODYou9K7VLfJ5EWSHsDawprhLYdXdTMeKDs7m4yMDJNzd05eheJihd3pjndDb1qPG1eZzXsoV5OvsvSLpWWuoPH19eXatWsoikLnzp1NEpeaTJ9rxCIn865z2WgUDd+M/oaPPvqI7KJsMtIyOHDgAAcOHACKhwpHjx7NH2//wYjQEVxMvUiIdwifD/y80mMwzp9PaPv2XPL1pccvv+B+5Ai2OTnkbtjA2XPnaDp37u2LL1wg9Z13OGhjQ1yDBiTekZju3bULIQRmQvCEkxMD//OfavfHglS1ZPJSR/j6+jJ9+nSmy4JstZaNjQ1OTk4kJd1/HkvDhg155plnynwuNDSU2NhYHBwcmDix6ibzfvLlJ+oQSAlFUWjVqhXDhg2rlR9kI0eFcGLuO7jEpQGQbQ5PjC4u0bF161ays7PLfF1BQQGrVq1ixowZbPjHhspqbpmyhOCKhwcAu7t1Y+/TT+OemMiI0FDM16+HkuTFYCB93Dj+729/43r9+uoE5RLCzAyEwKAoHEpPp3VcHH41rLyDVLHkhN1qRlGU+z7uV6fofv744w8mTJjweBsrVStmZmYMHToUX19f9Ho9RlF6BUv3bt148cUXcXZ2LvX6zz//nDNnzlBQUEBycjIffPBBJbW8DGWs7m3UqFGtTVygeDO9lr+f5nCXAI62bUHhhwtweXUGRqORP/74o9Sk3DsVFhWSmZl5z+cry8Fu3TBqtQAUWVhQYGnJRT8/Inv3xqRy1bVrHLKyKk5cbtEYDPTZto1/fPcdfbdswbyk1pVGw6WLFysvCKlGkD0v1UxiYqL6/6Ghobz77rvExMSo52zuqIQshMBgMJRrV1e5RXjd4OLiwthbcwt2ffklvyYlFde3EQKXxESevs+HwPXr102Oq7IyeJY2C+tCa3XYy4iRoUOH1trEpYTezQ3/PftNzsXExBBPPIc5TEc64oorWrQm1xgwmPxuqApJSUnsv369zHpK6ba2HOzdG3X6rrMzFnfVGuuzfTsdDh5k3bPPctHHB21REUU6HQjB4aNHiTl3jqCgoGqzGaRUtWTPSzXj5uamPuzt7VEURT0+c+YMtra2bN26lfbt26PT6di7dy8XLlxg8ODBuLq6YmNjQ8eOHdmxY4fJfX19ffnkk0/UY0VRWLZsGUOHDsXKyoomTZqwadOmSo5WqkjddDrGLVtGmyNHGPTTT0z86it4wJBSdfHOuHdIMk8i+9Z/w/8x3KRAZl2SmZlJFFEc5SjLWEYEESa9MEaMpHmkodVq73OXihcbG1t2wms0EufrTYNhw26f0+noNGECDpmZ6pCRx9Wr/BYUxJmWLcm1tibX2rr4WkUhPT2dxMREfvzxR3777bdKiEaq7mTPSznk5uYSHh5Oeno69vb2DBw4EL2+6rZVnzlzJosWLaJhw4Y4Ojpy+fJlnnnmGebNm4dOp2PVqlUMGjSImJgYdWvxssyZM4cFCxawcOFCFi9ezKhRo7h48SJOtyraSjXL1atX1Umcbm5u5Ds60snGhmE//VR8QYsWMGbMPV/fokULTp8+rR47PKBSc0XycPfgy7e+rLL3r07atm1LwtYE9TiaaKyxph3tKKSQC84XWDlqZRW2sJiPjw96vZ7c3FzTJzQahE5farPAP5ycyK1XD/LzAUhycSHR0dr0tUKY9OQYjUZOnTpFUFBQhcQg1RwyeSmH8PBwTp06BRR/QAA899xzVdae9957j969e6vHTk5OPPHEE+rx+++/z4YNG9i0aRNTpky5532Cg4N54YUXAPjggw/49NNPiY6Opl+/fhXXeKlCpKWlsX79enam7uQ4x9Ec1xBIIEeGDGF4bCzeHh4wfTq4ud3zHiNGjOD06dPs3buXFi1a0KVLl8oLQLonCwsLFvVcxLTIaeq5HI8c/mf0/3Aj5wa+Dr5ozaq21wXA09OTHj16cOTIERISEkyWtTs5OZUa8jt+/Dj5txIXgM1dWrHDbA+daIUtxbsPmwkjBsV0xdmDJqRLdYNMXsohPT39vseVrUOHDibHWVlZzJ49m82bN5OYmEhRURG5ublcunTpvve5s+aLtbU1dnZ2JCcnV0ibpYpz7NgxIiIiOJp1lO1sJ488AK5zHRf9eLb16lXuydotWrSQRfyqoaldptKzSU++OvQVbd3aEtw2GEVRcNJXr17SDh060KFDB7Zt26b2Apqbm6slCk6fPs2p06fIMeSQV5hn8tpI5wv8xkUS2UAb2lAoCvEsqoenhekqI6PRSFpaWpX2DEpVr0KTl82bN/Pee+9x7NgxLC0t6dq1Kz+VdGEDly5dYuLEiURFRWFjY8PYsWOZP39+uSagViZ7e3u1x6XkuCpZW5t2rb722mtERESwaNEiGjdujF6v59lnn6WgoOAedyh29xi5oigm1Xml6u3HfT+y99e92ObbokFDPPFq4gKQRhqXuUwLM5mM1AatXFvx3/7/repmlEvfvn1xdnbm+vXreHt706pVK86dO8fGTRvRJqfgcPM6J90NaHR2uOJKBhlcVhJAFO8OHEssZpgRYhFS5v2zsrJk8lLHVViWsH79ekJCQvjggw/o0aMHRUVFnDhxQn3eYDAwYMAA3Nzc+P3330lMTGTMmDFotdqqXaJZhoEDBwKYzHmpTn777TeCg4MZOrR4t9SsrCzi4+OrtlFShbqRfYPdO3bjaCwuUSAQWGCBgqLW97HGGj+dH506darKpkp1kKIopQpCnj17lha/7+OpqB2MHpTDL+agMZrxN01bnHEmW5eNX54fccRhhhn+ij9uuGFtbW2yx42NjQ2urq6VHZJUzVRI8lJUVMS0adNYuHAh48ePV8+3bNlS/f9ffvmFU6dOsWPHDlxdXWnbti3vv/8+M2bMYPbs2WUWmKsqer2+Sue4PEiTJk348ccfGTRoEIqi8M4778gelFru+OXjWBlvr75RUGhHO65whRhisMSSse5jefsfb1f5ElpJguJVU93372d56xy2Ni0+Z8DAEY4wjnEU2Rfxw4Qf+GbrN2SkZOBu7o61tTU9e/YkNTWVP/74A2trawYMGFDlK6ukqlchycuhQ4e4evUqGo0Gf39/kpKSaNu2LQsXLlQLhe3bt482bdqYZNB9+/Zl4sSJnDx5En9//zLvnZ+fbzLJ6+7t0Ouijz/+mH/+85907tyZevXqMWPGDPl1qeVaN2jNRmUjOqFTz1ljTStaEUMMevR8Ov5TzMxKb68vSVUhLy8PM4OBdNPtXTBgIJ98gh2DcXZ05o1/vFHqtV5eXiZz9CSpQpKX2NhYAGbPns3HH3+Mr68vH330Ed26dePs2bPqFuZ3d/2VHN9vNvn8+fOZM2dORTS72gkODiY4OFg97tatW6nCdFC8h8vOnTtNzk2ePNnk+O5hpLLuU1K5V6r+6tnU48nuTxKzM8akflERRQDYKDYycZGqFUVRON+oEeMO3SCsJcTc2jfTCy988CE7q+zyB5JUlofapG7mzJkP3L7+zJkz6pDFW2+9xfDhw2nfvj0rVqxAURTCwsIeqcFvvvkm6enp6uPy5cuPdD9JqqleeOoFWrUs3m1UIEghhQMcwF1xZ+Xoqt/3Q5Lu1L59e34fOBBnoy1bVsPrv8GMvWa8ez4Qc8y5VnTtwTeRpFsequfl1VdfNekJKEvDhg3VLe7vnOOi0+lo2LChunzXzc2N6Ohok9deu3ZNfe5edDodOp3uns9LUl3y3HPPcfPmTfbv34+5uTmvtXwNH0+fWr+NvlTztG7dGo9r17DLysJewIIIAAP7Ai5yqrEnw7tU/8rtUvXxUMlL/fr1y1Ujp2Tr+piYGHWjq8LCQuLj4/Hx8QEgMDCQefPmkZycjIuLCwARERHY2dmZJD2SJN2fk5PTPatES1J14vS3v4G7OyQU7xhsAOIdFZxaOhHUSu6aK5Vfhcx5sbOz4+WXX2bWrFl4eXnh4+PDwoULgds70/bp04eWLVvy4osvsmDBApKSknj77beZPHmy7FmRJEmqjerXh3nzYNEiyM3FrEcPXvjqqzKLOUrS/VTYPi8LFy7E3NycF198kdzcXAICAti5cyeOjsX7UpiZmREeHs7EiRMJDAzE2tqasWPH8t5771VUkyRJkqSqFhxc/LirbpEkPQxFlLXspAbJyMjA3t6e9PR07OzsTJ7Ly8sjLi4OPz8/LO8qvy7VDfJnQJIkqXq63+f3g1SvffglSaqe7vgrOTY2lqioKBwcHBg6dCgazUMtWpQkSXpkMnmRJOneCgqgVSu4eBHMzTn6yiv8dGt30ytXrnDu3DlmzpxZxY2UJKmukX8ySZJ0bwMGwPnzUFgIublsv6vYZ35+PhcuXCj1sn2x++iyoAtdF3Zl2/5tldVaSZLqCJm8SFWiW7duTJ8+XT329fXlk08+qbL21EVZWVls2bKF8PBwLl++zC+//MK6devYv3//7R2Y79oEsqwJclFRUbefF4KOH3Wk33f9OJR7iAs5F5i2fRqR0ZEVGIkkSXWNHDaqZh60udisWbOYPXv2X773hg0bGDJkyF96/V+xa9cuunfvTmpq6n1L2JcUXZMqR0FBAatXr1ZLcRw5cgSDwQDA6dOnKSwspEOHDmwcMoSbmZnYZGYyMDyc/hERbLjr5+fq1avk5uai1+tZdXAVMVkxZJJZ/BxXaUYz/nff/9LzyZ6VGqMkSbWXTF6qmZLdiQFCQ0N59913iYmJUc/V1grB5dn88H4KCgqqVSXy6iw7O5udO3ea1BArSVwAjEYjly5dIiUlhRi9HvR6Ulxc2Dx8OC++8AIb9uwpdc+IiAj+/ve/czLpJIUUmjxnwICthW3FBSRJUp0jh42qGTc3N/Vhb2+Poigm59auXUuLFi2wtLSkefPmLFmyRH1tQUEBU6ZMwd3dHUtLS3x8fJg/fz5QPCwDMHToUBRFUY8f5IsvvqBRo0ZYWFjQrFkzvvvuO/W5+Ph4FEXhyJEj6rm0tDQURWHXrl3Ex8fTvXt3ABwdHVEU5Z7lJe4eNkpLS+Oll16ifv362NnZ0aNHD44ePao+P3v2bNq2bcuyZcvkMuiHkJqaysqVKzl06NB9r7t27RqZmZkm5zL9/aFHD5ydnUtdX1L481+B/8KW24mKFi1OOPF18NeP3nhJkqRbZM9LeaSlwYQJxSsufHzgq6/gPkMgFWX16tW8++67fPbZZ/j7+3P48GFCQkLUDf4+/fRTNm3axA8//IC3tzeXL19WC1f+8ccfuLi4sGLFCvr161euisMbNmxg2rRpfPLJJ/Tq1Yvw8HDGjRtHgwYN1KTkfry8vFi/fj3Dhw8nJiYGOzs79Hp9uWJ97rnn0Ov1bN26FXt7e5YuXUrPnj3VquQA58+fZ/369fz444+ygnI57du3j5SUlAdel5mZSVFRkcm5kqRl8uTJTHhvAkc4QqLxKvXTcph0qBEMGECjRo1Y8/wapoRNocBQQHPr5rzz9Dts+XkLAQEBankQSZKkRyGTl/KYMAFKqmFHRxfvdxEaWunNmDVrFh999BHDhg0DwM/Pj1OnTrF06VLGjh3LpUuXaNKkCV26dEFRFJMPipJhGQcHh/sWvrzTokWLCA4OZtKkSQC88sor7N+/n0WLFpUreTEzM1MTDRcXl/vOebnT3r17iY6OJjk5WS0VsWjRIn766SfWrVvHhAkTgOKeplWrVj3ykJNUmkCQm5sLgBEjydpkDqYcpGNyR7Q6LdvYRoJIwKgxctUJ/lt4iH/07411+DZ6NuvJ6bdPA7B06VK2b90OFM+leeqpp+jRo0eVxSVJUu0gh43K4+LF+x9XguzsbC5cuMD48eOxsbFRH3PnzlWXqgYHB3PkyBGaNWvG1KlT+eWXXx7pPU+fPk1QkGmxtKCgIE6fPv1I932Qo0ePkpWVhbOzs0mscXFxJstyfXx8ZOJSTvv37+eHH34gOzu7XBOjFW5PHDdgILQwlPAb4XRf1p39l/cjEBgVo3rNeSdIuh4HX98eHhJCmMyrAfj9998fQzSSJNV1suelPHx8intcSnh7V3oTsrKyAPj6668JCAgwea5kyKRdu3bExcWxdetWduzYwYgRI+jVqxfr1q2rkDaV7Kx6Z4WJwsLCe11ebllZWbi7u7Nr165Sz93ZeyNXJ5XPgQMH2LFjhzop183Njfz8/FLDQiWMGNHc8XdN4a3/AC4VXiIrIwstWjRCwagUf+8bpYJHJlxITGT3ihVotVpsbeUkXUmSKoZMXsqjpOrpxYvFictXX1V6E1xdXfHw8CA2NpZRo0bd8zo7OztGjhzJyJEjefbZZ+nXrx83b97EyckJrVZrsqrkQVq0aMFvv/3G2LFj1XO//fYbLVu2BG4PRSUmJuLv7w9gMnkXUFcAPcz7tmvXjqSkJMzNzcs9sVi6t8uXL5t8/VNSUrCzs+NC5gVOFJ3ADz+88EIgMGBgDWvoRje88CKffA5xiCyKk2ctWtq4tmFe93nMiZqDWepl3FJzmRMFN/2aEOrjQ+GlS+p7aTQajMbbPTTy+ylJ0uMgk5fycHCokjkud5szZw5Tp07F3t6efv36kZ+fz8GDB0lNTeWVV17h448/xt3dHX9/fzQaDWFhYbi5uam9Fb6+vkRGRhIUFIROp1MrfN/L66+/zogRI/D396dXr178/PPP/Pjjj+zYsQMAvV5Pp06d+PDDD/Hz8yM5OZm3337b5B4+Pj4oikJ4eDjPPPMMer3+gcu9e/XqRWBgIEOGDGHBggU0bdqUhIQENm/ezNChQ+nQocNf/yLWQVZWVibH+YZ8DqQeYBObyCILc8wJJJCe9OQiF0kkkW/5Fk88MWIkgwwAGtOYLnRhS+gWRKFgtGY0bXu2ZVDDhhwL+JXliYkYzU1/pdjY2ODo6MiNGzdo2bIl/fv3r7S4JUmqveSclxrkpZdeYtmyZaxYsYI2bdrQtWtXvv32W/z8/ACwtbVlwYIFdOjQgY4dOxIfH8+WLVvU4Z2PPvqIiIgIvLy81J6S+xkyZAj//e9/WbRoEa1atWLp0qWsWLGCbt26qdcsX76coqIi2rdvz/Tp05k7d67JPTw9PZkzZw4zZ87E1dWVKVOmPPB9FUVhy5YtPP3004wbN46mTZvy/PPPc/HiRVxdXR/iKyZBcTLYtGlTLCwsKKQQc8xNelOKKOIkJxEIGiuNmcQk2tIWRxwZ4TeCAgqww45BDMIXX0Rh8VCR0Wjk2LFj3HBzo6hTp1KJCxQnL8HBwbz66qv079+fhIQEdu/ezblz5x46jqKiIs6cOUNcXJzJUKUkSXWPImr4b4H7ldTOy8sjLi5O7gNSh8mfgdsOHz7Md5u+wx57QgnlNLcnXjvjzDjGkaPk4KH3wF5vT9u2bXFp6kKbL9rQlKY8y7Ol7qkoCv/617+oX78+69atIyYmBqPRiFarpV69evTr1w/vW3PETp06xaZNm8jPzwfAw8ODl1566YG7SkPxyrLvv/9eXfqv0+no06cP7dq1Y2P4Ri5euUi/Hv1o2rTp4/hSSZJUCe73+f0gcthIkuoIf39/1kStQWQKOtGJBBJIJx0tWprTHBtssBE23Ci8wWtTX0On0yGEIMA+AI90DwTCZBUSQOPGjXFxcUFRFIYPH05YWBgJCQnqkOKdQ5N//vmnmrgAJCQk8Omnn+Li4kLPnj1xcXEhPj6eVatWIYRAURRCQkJwd3fn999/VxMXKC4IuWPHDlb8vAJHHDHDjCVrljCgywB69+xd8V9MSZKqlBw2qsNatWplshT5zsfq1aurunlSBfhw+odk6bJww40QQpihn0GwNpje3P7Aty+0JzY2FijuWVk/ej2NaWySuGi1Wvr06cPIkSPVnpONGzcSExNDZmYmycnJbNiwga+//pqzZ88CmEzcLZGWlsbZs2fZsGEDRqORlStXqkNCQgi+/vprEhISuHLlSqnXpuem44QTZhSvtnPEkXV7K2ZlnSRJ1YvseanDtmzZcs+lzXJuSe30ww8/YJtfvIRZhw5ywRPPUr0q586do3nz5iiKgqHIgBatyX0cHBwIDAw0OVdSIuBOmZmZ7N+/n6ZNm9KpUycuXbpUZhJz8+ZNdTuAO5UkMGXR3PrvTkWUvfxbkqTaRSYvdZjcqr3uuXPo5U7mWnOKCovUBObw4cMkJSXh7++Pv78/jo6OpKamAsXLn3v2vF0h+uLFi4SHh5eZfAAkJSWxe/dunnrqKV544QUiIyPJyckhIyNDvcZgMJhsQFgeWkVrMnG3iCK83L0e6h6SJNVMMnmRpDpEp9ORk5NT6ryfjx8pKSmkp6cDkEceKxNX8k3iN3T9tSvvTXmPHTt2kJ2dTUBAAL6+vhiNRnbt2sWeMqpM3yk3N5eoqCgKCgro1asXjRs3RgjBqlWr1N4ag8FAZGQkf//739m0aVO5YhFCYGZuhqHIQCGFaJ20zJow6+G+IJIk1UgyeZGkOmTgwIGEhYWRl5cHFM9dcXV1pW/fvqxbt4709HSKKGI1q7lMcS/NuexzNPulGeP/Pl69jxCCJUuWcOPGjVLvcUNzg/Xa9XTP704Tmqjnjx8/Tq9evYDiuTQeHh4mQ03Z2dnY29sza9btBGTx4sXcvHnznvEMGjgIo9FIgwYNZKkISapDZPIiSXVIw4YNee2119QaR0IIzG/tz9K1a1d++OEHrnBFTVwAUkll08VNjOd28nL69OkyExeADGMGCfkJ2GC6GWFubq66iggwWXlUQqs1nVszadIk1q9fX3Y9LQt445c3cMlxQYsWext73v3nuw/cfFGSpJpPrjaSpDrGzMwMOzs7zMzM1MQFistBBAYGYo11qQm6no6eJscHDx685/0vUly4NJtsk/OFhYX8/PPP6rFery/12t27d7N27Vr27t1bPCxkZnbPXXkNBQaa5zSnMY3xwQddlo5Zy+WwkSTVBbLnRZIkVZ8+fWjfvj2xq2KJyoiiiCKesHmCT57/xOS6exVdTCWV3ymuHL2ZzQxjGJ54qquC4uPjEUJQVFRU5uTh8+fPA3D27FkURSEoKEgd4rpbIYU44aQe69FzNfsqBoNBLVYqSVLtJHtepHuaPXs2bdu2fajX+Pr68sknn6jHiqLw008/PdZ2SRXL2dmZLf/ZQuwrscRMjSH6lWgszC1KXXM3nU6HI470oAcNaUg96gGYLGfWarUoisK6deu4ePHiPdsghGDPnj0kJiYWH1N6I3AtWrXEARSvNjJqjTJxkaQ6QCYv1YyiKPd9zJ49+5Hu/TCJxGuvvUZkZORffj8orjgti/HVTO627jR0bIhGKf1rYv/+/aXOGQwGjBjpRCfGMIZRjMKL20uXraysCAoKoqioqFzLovPz89m2bRsODg4kkqgmMAKBESNmmHGDGySTTAopXNBc4L1R7z1CxJIk1RRy2KiaKflLEyA0NJR3332XmJgY9dyDKjI/TiW77T4KNze3R3p9QUEBFhYWD75QqlQGg6HUOUtLSwqzyt70EIoLK2o0GtasWVPm68uSlpZGbm4uG9hAE5rgjjtuuGGNNVZY4YMPBgzEE8+3b36LhbkFp06d4sqVK3h4eNC6deu/HKMkSdWX7HmpZtzc3NSHvb09iqKYnFu7di0tWrTA0tKS5s2bs2TJEvW1BQUFTJkyBXd3dywtLfHx8WH+/PlA8XAOwNChQ1EURT2+n7uHjYKDgxkyZAiLFi3C3d0dZ2dnJk+efM9deqF0b8/ly5cZMWIEDg4OODk5MXjwYJPlsiXvMW/ePDw8PGjWrFm5vm5S5fLw8DA5Njc3Jzs7u1TtozsVFBQQExNjkqA/SEFBAXq9ngCbAKKJZj3rOc1p8rm9UskMM6yxZsbHM/hlxy+EhYWx77ff2Ll8OQc2bHj44CRJqvZkz0s5pOWmMSF8AhfTL+Jj78NXA7/CQe9Q6e1YvXo17777Lp999hn+/v4cPnyYkJAQrK2tGTt2LJ9++imbNm3ihx9+wNvbm8uXL6uTIv/44w9cXFxYsWIF/fr1+8vzAqKionB3dycqKorz588zcuRI2rZtS0hIyANfW1hYSN++fQkMDGTPnj2Ym5szd+5c+vXrx7Fjx9QelsjISOzs7IiIiPhLbZQq3qhRowgLCyMpKQkrKyuSk5MpT4F6CwsL9Ho9ubm55XqfvLw8du/ezcpxK1n00yIuZF9gULNBHDhygPTcdHToyCYbV1xRchX2/rYXM6EBjQZtbi6NX3oJDhyADz981JAlSapGZPJSDhPCJxB2KgyA6KvRKCiEPhda6e2YNWsWH330EcOGDQPAz8+PU6dOsXTpUsaOHculS5do0qQJXbp0QVEUk+3/SzbwcnBweKShHEdHRz777DPMzMxo3rw5AwYMIDIyslzJS2hoKEajkWXLlql7faxYsQIHBwd27dpFnz59ALC2tmbZsmVyuKgaMzc354UXXgAgOjqarVu3mjxva2uLjY0NycnJGAwGNBoNnp6e9OzZk/j4eDZv3lzmTr8ODg5kZGSY1D+KiYmhR48efPDPD9Rzo/uM5rPwz7jx5w0ssVTPm2FGSedPspsbR/z96fn55xASAo0aPc4vgSRJVUgmL+VwMf3ifY8rQ3Z2NhcuXGD8+PEmiUJRURH29vZA8ZBL7969adasGf369WPgwIFqQvC4tGrVyqTXxt3dnePHj5frtUePHuX8+fOlltnm5eWZTOBs06aNTFxqkLuHkAAaNGjAiBEjgOKhn7y8PGxsbNBoNLRs2ZImTZpw9epVoqOjycrKwtLSksDAQHx9fVm4cKFJz0xKSgoLFy7E3t6eQYMGkZGRwYEDB7gRf8OkoGQuuVhiaTp0JQRkZ8ONGzJ5kaRaRCYv5eBj70P01Wj12Nveu9LbUFL07uuvvyYgIMDkuZJkol27dsTFxbF161Z27NjBiBEj6NWrF+vWrXts7bh7B1RFUcqsElyWrKws2rdvz+rVq0s9d+fW7tbW1o/WSKlSNWjQgNatW3P69GmMRiNOTk4MHz5cfd7CwqJUMqrVavH19S0198pgMKi9cnfKzc0lNze3VIXpOxOVpj5NSUpIorCgABQF94QEAn//HYKC4CGX/EuSVL3J5KUcvhr4FQoKF9Mv4m3vzVcDv6r0Nri6uuLh4UFsbCyjRo2653V2dnaMHDmSkSNH8uyzz9KvXz9u3ryJk5MTWq223Ks8KkK7du0IDQ3FxcUFOzu7KmuH9PgNHz4cIQRG46Pts6LRaNDr9WUOKT1I6o1UXnnlFX7++WcKY2MZoChYTZsGb70FsidPkmoVmbyUg4PeoUrmuNxtzpw5TJ06FXt7e/r160d+fj4HDx4kNbX4l/bHH3+Mu7s7/v7+aDQawsLCcHNzw8HBAShecRQZGUlQUFDxhmKVXANm1KhRLFy4kMGDB/Pee+/RoEEDLl68yI8//sgbb7xBgwYNKrU90uOlKMojbxCnKApPPfUUERERZGdnP/gFd9BqtVhYWPDcc889UhskSar+Kmyp9NmzZxk8eDD16tXDzs6OLl26EBUVZXLNpUuXGDBgAFZWVri4uPD6669TVFRUUU2q8V566SWWLVvGihUraNOmDV27duXbb7/Fz88PKJ4kuWDBAjp06EDHjh2Jj49ny5YtaDTF3+aPPvqIiIgIvLy88Pf3r/T2W1lZsXv3bry9vRk2bBgtWrRg/Pjx5OXlyZ4YSfXEE0/w73//m6lTp/LKK6+Y1F8CyhxWsra2pnPnzurPuiRJtZsiyrO+8S9o2rQpTZo0Yf78+ej1ej755BO+/fZbLly4gJubGwaDgbZt2+Lm5sbChQtJTExkzJgxhISE8MEHHzz4DW7JyMjA3t6e9PT0Uh+AeXl5xMXF4efnh6Wl5T3uINVm8meg5svMzGTNmjXk5OTg6upKUFAQGRkZ+Pj4YGVlRVpaGlZWVmUWepQkqfq63+f3g1RI8nL9+nXq16/P7t27eeqpp4DiX0Ale3f06tWLrVu3MnDgQBISEnB1dQXgyy+/ZMaMGaSkpJR7tYlMXqT7kT8DkiRJ1dOjJC8V0sfq7OxMs2bNWLVqFdnZ2RQVFbF06VJcXFxo3749APv27aNNmzZq4gLQt29fMjIyOHnyZEU0S7pLq1at1BIAdz/KWhEkSZIkSdVBhUzYVRSFHTt2MGTIEGxtbdFoNLi4uLBt2zZ1kmhSUpJJ4gKox0lJSfe8d35+Pvn5t7cGz8jIqIAI6oYtW7bcc2v/u783kiRJklRdPFTPy8yZMx9Y9fjMmTMIIZg8eTIuLi7s2bOH6OhohgwZwqBBgx6qrklZ5s+fj729vfrw8vJ68IukMvn4+NC4ceMyH3dvJCdJkiRJ1cVD9by8+uqrBAcH3/eahg0bsnPnTsLDw0lNTVXHsZYsWUJERAQrV65k5syZuLm5ER0dbfLaa9euAfevRPzmm2/yyiuvqMcZGRkygZEkSZKkOuShkpf69eub7IR6LyUbTN29bFGj0ai7sQYGBjJv3jySk5NxcXEBICIiAjs7O1q2bHnPe+t0OnQ63cM0u9w7wEq1j/zeS5Ik1T4VMuclMDAQR0dHxo4dy7vvvoter+frr78mLi6OAQMGANCnTx9atmzJiy++yIIFC0hKSuLtt99m8uTJD52c3IuFhQUajYaEhATq16+PhYVFmXtESLWPEIKCggJSUlLQaDSyVpIkSVItUiHJS7169di2bRtvvfUWPXr0oLCwkFatWrFx40aeeOIJoLgeT3h4OBMnTiQwMBBra2vGjh3Le++999jaodFo8PPzIzExkYSEhMd2X6nmsLKywtvbW25eJkmSVItU2CZ1laU868SFEBQVFVVpXR+p8pmZmWFubi572yRJkqqhR9nnpU7UNlIUBa1WW6oisiRJkiRJNY/sS5ckSZIkqUaRyYskSZIkSTWKTF4kSZIkSapRavycl5L5xrJMgCRJkiTVHCWf239l3VCNT14yMzMB5C67kiRJklQDZWZmYm9v/1CvqfFLpY1GIwkJCdja2j72JbElpQcuX7780Mu4ahoZa+1TV+KEuhNrXYkT6k6sdSVOKB2rEILMzEw8PDweei+uGt/zotFoaNCgQYW+h52dXa3/oSohY6196kqcUHdirStxQt2Jta7ECaaxPmyPSwk5YVeSJEmSpBpFJi+SJEmSJNUoMnm5D51Ox6xZsx5bocjqTMZa+9SVOKHuxFpX4oS6E2tdiRMeb6w1fsKuJEmSJEl1i+x5kSRJkiSpRpHJiyRJkiRJNYpMXiRJkiRJqlFk8iJJkiRJUo0ik5d7OHv2LIMHD6ZevXrY2dnRpUsXoqKiTK65dOkSAwYMwMrKChcXF15//XWKioqqqMWPZvPmzQQEBKDX63F0dGTIkCEmz9emWPPz82nbti2KonDkyBGT544dO8ZTTz2FpaUlXl5eLFiwoGoa+Qji4+MZP348fn5+6PV6GjVqxKxZsygoKDC5rjbECvD555/j6+uLpaUlAQEBREdHV3WTHtn8+fPp2LEjtra2uLi4MGTIEGJiYkyuycvLY/LkyTg7O2NjY8Pw4cO5du1aFbX48fjwww9RFIXp06er52pTnFevXmX06NE4Ozuj1+tp06YNBw8eVJ8XQvDuu+/i7u6OXq+nV69enDt3rgpb/PAMBgPvvPOOye+f999/36R+0WOJU0hlatKkiXjmmWfE0aNHxdmzZ8WkSZOElZWVSExMFEIIUVRUJFq3bi169eolDh8+LLZs2SLq1asn3nzzzSpu+cNbt26dcHR0FF988YWIiYkRJ0+eFKGhoerztSlWIYSYOnWq6N+/vwDE4cOH1fPp6enC1dVVjBo1Spw4cUKsWbNG6PV6sXTp0qpr7F+wdetWERwcLLZv3y4uXLggNm7cKFxcXMSrr76qXlNbYl27dq2wsLAQy5cvFydPnhQhISHCwcFBXLt2raqb9kj69u0rVqxYIU6cOCGOHDkinnnmGeHt7S2ysrLUa15++WXh5eUlIiMjxcGDB0WnTp1E586dq7DVjyY6Olr4+vqKv/3tb2LatGnq+doS582bN4WPj48IDg4WBw4cELGxsWL79u3i/Pnz6jUffvihsLe3Fz/99JM4evSo+Pvf/y78/PxEbm5uFbb84cybN084OzuL8PBwERcXJ8LCwoSNjY3473//q17zOOKUyUsZUlJSBCB2796tnsvIyBCAiIiIEEIIsWXLFqHRaERSUpJ6zRdffCHs7OxEfn5+pbf5ryosLBSenp5i2bJl97ymtsQqRHEszZs3FydPniyVvCxZskQ4OjqaxDRjxgzRrFmzKmjp47VgwQLh5+enHteWWJ988kkxefJk9dhgMAgPDw8xf/78KmzV45ecnCwA8euvvwohhEhLSxNarVaEhYWp15w+fVoAYt++fVXVzL8sMzNTNGnSRERERIiuXbuqyUttinPGjBmiS5cu93zeaDQKNzc3sXDhQvVcWlqa0Ol0Ys2aNZXRxMdiwIAB4p///KfJuWHDholRo0YJIR5fnHLYqAzOzs40a9aMVatWkZ2dTVFREUuXLsXFxYX27dsDsG/fPtq0aYOrq6v6ur59+5KRkcHJkyerqukP7dChQ1y9ehWNRoO/vz/u7u7079+fEydOqNfUllivXbtGSEgI3333HVZWVqWe37dvH08//TQWFhbqub59+xITE0NqamplNvWxS09Px8nJST2uDbEWFBTw559/0qtXL/WcRqOhV69e7Nu3rwpb9vilp6cDqN/DP//8k8LCQpPYmzdvjre3d42MffLkyQwYMMAkHqhdcW7atIkOHTrw3HPP4eLigr+/P19//bX6fFxcHElJSSax2tvbExAQUKNi7dy5M5GRkZw9exaAo0ePsnfvXvr37w88vjhl8lIGRVHYsWMHhw8fxtbWFktLSz7++GO2bduGo6MjAElJSSYf5oB6nJSUVOlt/qtiY2MBmD17Nm+//Tbh4eE4OjrSrVs3bt68CdSOWIUQBAcH8/LLL9OhQ4cyr6kNcZbl/PnzLF68mH/961/qudoQ6/Xr1zEYDGXGUVNiKA+j0cj06dMJCgqidevWQPH3yMLCAgcHB5Nra2Lsa9eu5dChQ8yfP7/Uc7UpztjYWL744guaNGnC9u3bmThxIlOnTmXlypXA7X93Nf3neebMmTz//PM0b94crVaLv78/06dPZ9SoUcDji7NOJS8zZ85EUZT7Ps6cOYMQgsmTJ+Pi4sKePXuIjo5myJAhDBo0iMTExKoOo1zKG6vRaATgrbfeYvjw4bRv354VK1agKAphYWFVHMWDlTfOxYsXk5mZyZtvvlnVTf7Lyhvrna5evUq/fv147rnnCAkJqaKWS49i8uTJnDhxgrVr11Z1Ux67y5cvM23aNFavXo2lpWVVN6dCGY1G2rVrxwcffIC/vz8TJkwgJCSEL7/8sqqb9lj98MMPrF69mv/7v//j0KFDrFy5kkWLFqlJ2uNi/ljvVs29+uqrBAcH3/eahg0bsnPnTsLDw0lNTVXLdi9ZsoSIiAhWrlzJzJkzcXNzK7WqoWQGvJubW4W0/2GUN9aSZKxly5bqeZ1OR8OGDbl06RJAtY71Yb6n+/btK1VTo0OHDowaNYqVK1fi5uZWahVDdYkTyh9riYSEBLp3707nzp356quvTK6r7rGWR7169TAzMyszjpoSw4NMmTKF8PBwdu/eTYMGDdTzbm5uFBQUkJaWZtIrUdNi//PPP0lOTqZdu3bqOYPBwO7du/nss8/Yvn17rYgTwN3d3eT3LECLFi1Yv349cPvf3bVr13B3d1evuXbtGm3btq20dj6q119/Xe19AWjTpg0XL15k/vz5jB079rHFWaeSl/r161O/fv0HXpeTkwMUj5/fSaPRqD0VgYGBzJs3j+TkZFxcXACIiIjAzs6u1A9oVShvrO3bt0en0xETE0OXLl0AKCwsJD4+Hh8fH6B6x1reOD/99FPmzp2rHickJNC3b19CQ0MJCAgAiuN86623KCwsRKvVAsVxNmvWTB0urErljRWKe1y6d++u9qTd/bNc3WMtDwsLC9q3b09kZKS6tN9oNBIZGcmUKVOqtnGPSAjBv//9bzZs2MCuXbvw8/Mzeb59+/ZotVoiIyMZPnw4ADExMVy6dInAwMCqaPJf0rNnT44fP25ybty4cTRv3pwZM2bg5eVVK+IECAoKKrXc/ezZs+rvWT8/P9zc3IiMjFQ/xDMyMjhw4AATJ06s7Ob+ZTk5OaV+35iZmamfnY8tzscwubjWSUlJEc7OzmLYsGHiyJEjIiYmRrz22mtCq9WKI0eOCCFuLx/u06ePOHLkiNi2bZuoX79+jVw+PG3aNOHp6Sm2b98uzpw5I8aPHy9cXFzEzZs3hRC1K9YScXFxpVYbpaWlCVdXV/Hiiy+KEydOiLVr1worK6sat3z4ypUronHjxqJnz57iypUrIjExUX2UqC2xrl27Vuh0OvHtt9+KU6dOiQkTJggHBweTlXE10cSJE4W9vb3YtWuXyfcvJydHvebll18W3t7eYufOneLgwYMiMDBQBAYGVmGrH487VxsJUXvijI6OFubm5mLevHni3LlzYvXq1cLKykp8//336jUffvihcHBwEBs3bhTHjh0TgwcPrnFLpceOHSs8PT3VpdI//vijqFevnnjjjTfUax5HnDJ5uYc//vhD9OnTRzg5OQlbW1vRqVMnsWXLFpNr4uPjRf/+/YVerxf16tUTr776qigsLKyiFv91BQUF4tVXXxUuLi7C1tZW9OrVS5w4ccLkmtoSa4mykhchhDh69Kjo0qWL0Ol0wtPTU3z44YdV08BHsGLFCgGU+bhTbYhVCCEWL14svL29hYWFhXjyySfF/v37q7pJj+xe378VK1ao1+Tm5opJkyYJR0dHYWVlJYYOHWqSoNZUdycvtSnOn3/+WbRu3VrodDrRvHlz8dVXX5k8bzQaxTvvvCNcXV2FTqcTPXv2FDExMVXU2r8mIyNDTJs2TXh7ewtLS0vRsGFD8dZbb5lsy/A44lSEuGPbO0mSJEmSpGquTq02kiRJkiSp5pPJiyRJkiRJNYpMXiRJkiRJqlFk8iJJkiRJUo0ikxdJkiRJkmoUmbxIkiRJklSjyORFkiRJkqQaRSYvkiRJkiTVKDJ5kSRJkiSpRpHJiyRJkiRJNYpMXiRJkiRJqlFk8iJJkiRJUo3y/wH2cu8TURRjowAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -618,9 +569,17 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "qsprpred - WARNING - Random state supplied, but alg does not support it. Ignoring this setting.\n" + ] + } + ], "source": [ "from qsprpred.models import SklearnModel\n", "from sklearn.neighbors import KNeighborsRegressor\n", @@ -640,7 +599,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -648,13 +607,13 @@ "text/plain": [ "(array([[6.336],\n", " [8.325],\n", - " [4.912]]),\n", + " [7.21 ]]),\n", " array([[ True],\n", " [ True],\n", " [False]]))" ] }, - "execution_count": 9, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -662,7 +621,7 @@ "source": [ "smiles_list = [\"O=C(Nc1nc2ccccc2n2c(=O)n(-c3ccccc3)nc12)c1ccccc1\",\n", " \"Nc1nc(-c2ccco2)c2ncn(C(=O)NCCc3ccccc3)c2n1\",\n", - " \"Nc1nc(CSc2nnc(N)s2)nc(Nc2ccc(Cl)cc2)n1\"]\n", + " \"CC(=O)NC1=CC=C(C=C1)O\"]\n", "\n", "model.predictMols(smiles_list, use_applicability_domain=True)" ] @@ -684,7 +643,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.13" + "version": "3.11.5" } }, "nbformat": 4, From 6ba2682e05f75f34b0c54b3f4a3178affc517d90 Mon Sep 17 00:00:00 2001 From: Helle van den Maagdenberg Date: Wed, 13 Mar 2024 12:03:31 +0100 Subject: [PATCH 24/29] add missing method getSeed to ClusterSplit --- qsprpred/data/sampling/splits.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/qsprpred/data/sampling/splits.py b/qsprpred/data/sampling/splits.py index c8170cb9..ebdaaa75 100644 --- a/qsprpred/data/sampling/splits.py +++ b/qsprpred/data/sampling/splits.py @@ -552,3 +552,14 @@ def setSeed(self, seed: int | None): self.seed = seed if hasattr(self.clustering, "seed"): self.clustering.seed = seed + + def getSeed(self): + """Get the seed for this instance. + + Returns: + int: the seed for this instance or None if no seed is set. + """ + if hasattr(self, "seed"): + return self.seed + else: + return None From 5eeb25472700e02549f95e13589bb4e125605a2f Mon Sep 17 00:00:00 2001 From: Helle van den Maagdenberg Date: Wed, 13 Mar 2024 13:26:50 +0100 Subject: [PATCH 25/29] avoid Overflowerror from LazyBitVectorPick --- qsprpred/benchmarks/runner.py | 4 ++-- qsprpred/data/tables/pandas.py | 2 +- qsprpred/models/models.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/qsprpred/benchmarks/runner.py b/qsprpred/benchmarks/runner.py index a15c03dd..9ed3317d 100644 --- a/qsprpred/benchmarks/runner.py +++ b/qsprpred/benchmarks/runner.py @@ -158,7 +158,7 @@ def getSeedList(self, seed: int | None = None) -> list[int]: """ Get a list of seeds for the replicas from one 'master' randomSeed. The list of seeds is generated by sampling from the range of - possible seeds (0 to 2^32 - 1) with the given randomSeed as the random + possible seeds (0 to 2**31-1) with the given randomSeed as the random randomSeed for the random module. This means that the list of seeds will be the same for each run of the benchmarking experiment with the same 'master' randomSeed. This is useful for reproducibility, @@ -181,7 +181,7 @@ def getSeedList(self, seed: int | None = None) -> list[int]: """ seed = seed or self.settings.random_seed random.seed(seed) - return random.sample(range(2**32 - 1), self.nRuns) + return random.sample(range(2**31), self.nRuns) def iterReplicas(self) -> Generator[Replica, None, None]: """Generator that yields `Replica` objects for each benchmarking run. diff --git a/qsprpred/data/tables/pandas.py b/qsprpred/data/tables/pandas.py index 1681bc81..839144f6 100644 --- a/qsprpred/data/tables/pandas.py +++ b/qsprpred/data/tables/pandas.py @@ -112,7 +112,7 @@ def __init__( self.storeFormat = store_format self.randomState = None self.setRandomState( - random_state or int(np.random.randint(0, 2**32 - 1, dtype=np.int64)) + random_state or int(np.random.randint(0, 2**31-1, dtype=np.int64)) ) self.name = name self.indexCols = index_cols diff --git a/qsprpred/models/models.py b/qsprpred/models/models.py index 85d78251..1e40be38 100644 --- a/qsprpred/models/models.py +++ b/qsprpred/models/models.py @@ -240,7 +240,7 @@ def initRandomState(self, random_state): Random state to use for shuffling and other random operations. """ if random_state is None: - self.randomState = int(np.random.randint(0, 2**32 - 1, dtype=np.int64)) + self.randomState = int(np.random.randint(0, 2**31-1, dtype=np.int64)) logger.info( "No random state supplied." f"Setting random state to: {self.randomState}." From 76c620fd64d86cf0f3c70e4152e4c2fdb90a900d Mon Sep 17 00:00:00 2001 From: Helle van den Maagdenberg Date: Wed, 13 Mar 2024 13:39:57 +0100 Subject: [PATCH 26/29] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d1d5798a..28e8aca1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ From v3.0.2 to v3.0.3 - Fixed a bug where an attached standardizer would be refit when calling `QSPRModel.predictMols` with `use_applicability_domain=True`. +- Fixed random seed not set in `FoldsFromDataSplit.iterFolds` for `ClusterSplit`. ## Changes From a4869b08a46fcf34d2630826d0e527dd9c664ec1 Mon Sep 17 00:00:00 2001 From: Helle van den Maagdenberg Date: Wed, 13 Mar 2024 17:57:13 +0100 Subject: [PATCH 27/29] update consistency checks files --- .../ConsistencyChecksCLS_107420369.cv.tsv | 480 ++-- .../ConsistencyChecksCLS_107420369.ind.tsv | 120 +- .../ConsistencyChecksCLS_107420369.json | 2 +- .../ConsistencyChecksCLS_107420369_meta.json | 2507 ++++++++--------- ...onsistencyChecksCLS_107420369_replica.json | 585 ++-- .../ConsistencyChecksCLS_1181241943.cv.tsv | 241 ++ .../ConsistencyChecksCLS_1181241943.ind.tsv | 61 + .../ConsistencyChecksCLS_1181241943.json | 1 + .../ConsistencyChecksCLS_1181241943_meta.json | 1586 +++++++++++ ...sistencyChecksCLS_1181241943_replica.json} | 587 ++-- .../ConsistencyChecksCLS_2746317213.cv.tsv | 241 -- .../ConsistencyChecksCLS_2746317213.ind.tsv | 61 - .../ConsistencyChecksCLS_2746317213.json | 1 - .../ConsistencyChecksCLS_2746317213_meta.json | 1625 ----------- .../ConsistencyChecksCLS_478163327.cv.tsv | 480 ++-- .../ConsistencyChecksCLS_478163327.ind.tsv | 120 +- .../ConsistencyChecksCLS_478163327.json | 2 +- .../ConsistencyChecksCLS_478163327_meta.json | 2399 ++++++++-------- ...onsistencyChecksCLS_478163327_replica.json | 585 ++-- .../ConsistencyChecksREG_107420369.cv.tsv | 480 ++-- .../ConsistencyChecksREG_107420369.ind.tsv | 120 +- .../ConsistencyChecksREG_107420369.json | 2 +- .../ConsistencyChecksREG_107420369_meta.json | 2507 ++++++++--------- ...onsistencyChecksREG_107420369_replica.json | 587 ++-- .../ConsistencyChecksREG_1181241943.cv.tsv | 241 ++ .../ConsistencyChecksREG_1181241943.ind.tsv | 61 + .../ConsistencyChecksREG_1181241943.json | 1 + .../ConsistencyChecksREG_1181241943_meta.json | 1582 +++++++++++ ...sistencyChecksREG_1181241943_replica.json} | 589 ++-- .../ConsistencyChecksREG_2746317213.cv.tsv | 241 -- .../ConsistencyChecksREG_2746317213.ind.tsv | 61 - .../ConsistencyChecksREG_2746317213.json | 1 - .../ConsistencyChecksREG_2746317213_meta.json | 1621 ----------- .../ConsistencyChecksREG_478163327.cv.tsv | 480 ++-- .../ConsistencyChecksREG_478163327.ind.tsv | 120 +- .../ConsistencyChecksREG_478163327.json | 2 +- .../ConsistencyChecksREG_478163327_meta.json | 2431 ++++++++-------- ...onsistencyChecksREG_478163327_replica.json | 587 ++-- 38 files changed, 11642 insertions(+), 11756 deletions(-) create mode 100644 testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943.cv.tsv create mode 100644 testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943.ind.tsv create mode 100644 testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943.json create mode 100644 testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943_meta.json rename testing/test_consistency/expected/{ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213_replica.json => ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943_replica.json} (71%) delete mode 100644 testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213.cv.tsv delete mode 100644 testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213.ind.tsv delete mode 100644 testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213.json delete mode 100644 testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213_meta.json create mode 100644 testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943.cv.tsv create mode 100644 testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943.ind.tsv create mode 100644 testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943.json create mode 100644 testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943_meta.json rename testing/test_consistency/expected/{ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213_replica.json => ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943_replica.json} (70%) delete mode 100644 testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213.cv.tsv delete mode 100644 testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213.ind.tsv delete mode 100644 testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213.json delete mode 100644 testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213_meta.json diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369.cv.tsv b/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369.cv.tsv index 93ddc994..d285a6d9 100644 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369.cv.tsv +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369.cv.tsv @@ -1,241 +1,241 @@ QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction Fold -ConsistencyChecks_004 True True 0.0 -ConsistencyChecks_011 True False 0.0 -ConsistencyChecks_076 True True 0.0 -ConsistencyChecks_236 True False 0.0 -ConsistencyChecks_026 False False 0.0 -ConsistencyChecks_093 True False 0.0 -ConsistencyChecks_089 True True 0.0 -ConsistencyChecks_196 True True 0.0 -ConsistencyChecks_169 True False 0.0 -ConsistencyChecks_000 False True 0.0 -ConsistencyChecks_023 False False 0.0 -ConsistencyChecks_262 False False 0.0 -ConsistencyChecks_103 False True 0.0 -ConsistencyChecks_129 False False 0.0 -ConsistencyChecks_206 False False 0.0 -ConsistencyChecks_277 True False 0.0 -ConsistencyChecks_134 True False 0.0 -ConsistencyChecks_062 True False 0.0 -ConsistencyChecks_185 True True 0.0 -ConsistencyChecks_091 False False 0.0 -ConsistencyChecks_215 False False 0.0 -ConsistencyChecks_295 True True 0.0 -ConsistencyChecks_137 True True 0.0 -ConsistencyChecks_258 False False 0.0 -ConsistencyChecks_153 False False 0.0 -ConsistencyChecks_037 True True 0.0 -ConsistencyChecks_275 False False 0.0 -ConsistencyChecks_226 True False 0.0 -ConsistencyChecks_108 True False 0.0 -ConsistencyChecks_235 False True 0.0 -ConsistencyChecks_018 True True 0.0 -ConsistencyChecks_201 True True 0.0 -ConsistencyChecks_216 True True 0.0 -ConsistencyChecks_213 True False 0.0 -ConsistencyChecks_127 True True 0.0 -ConsistencyChecks_131 False False 0.0 -ConsistencyChecks_092 True False 0.0 -ConsistencyChecks_045 True True 0.0 -ConsistencyChecks_028 True True 0.0 -ConsistencyChecks_210 False True 0.0 -ConsistencyChecks_130 True True 0.0 -ConsistencyChecks_248 True True 0.0 -ConsistencyChecks_219 False False 0.0 -ConsistencyChecks_121 False False 0.0 -ConsistencyChecks_096 True False 0.0 -ConsistencyChecks_234 False True 0.0 -ConsistencyChecks_171 True False 0.0 -ConsistencyChecks_008 True True 0.0 -ConsistencyChecks_063 False True 1.0 -ConsistencyChecks_261 False False 1.0 -ConsistencyChecks_180 False False 1.0 -ConsistencyChecks_218 False True 1.0 -ConsistencyChecks_066 False False 1.0 -ConsistencyChecks_172 False False 1.0 -ConsistencyChecks_191 True False 1.0 -ConsistencyChecks_152 True True 1.0 -ConsistencyChecks_090 False False 1.0 -ConsistencyChecks_157 True True 1.0 -ConsistencyChecks_003 True False 1.0 -ConsistencyChecks_168 False True 1.0 -ConsistencyChecks_020 True False 1.0 -ConsistencyChecks_038 True False 1.0 -ConsistencyChecks_116 True True 1.0 -ConsistencyChecks_139 False False 1.0 -ConsistencyChecks_039 True False 1.0 -ConsistencyChecks_181 False True 1.0 -ConsistencyChecks_239 True False 1.0 -ConsistencyChecks_284 True True 1.0 -ConsistencyChecks_001 True False 1.0 -ConsistencyChecks_085 False False 1.0 -ConsistencyChecks_156 False False 1.0 -ConsistencyChecks_125 False False 1.0 -ConsistencyChecks_043 True True 1.0 -ConsistencyChecks_214 False True 1.0 -ConsistencyChecks_237 True False 1.0 -ConsistencyChecks_041 False False 1.0 -ConsistencyChecks_022 False True 1.0 -ConsistencyChecks_055 True False 1.0 -ConsistencyChecks_240 False False 1.0 -ConsistencyChecks_084 False False 1.0 -ConsistencyChecks_268 False False 1.0 -ConsistencyChecks_243 False False 1.0 -ConsistencyChecks_274 True True 1.0 -ConsistencyChecks_029 True True 1.0 -ConsistencyChecks_100 True True 1.0 -ConsistencyChecks_251 True True 1.0 -ConsistencyChecks_154 False False 1.0 -ConsistencyChecks_183 False False 1.0 -ConsistencyChecks_042 False True 1.0 -ConsistencyChecks_267 True True 1.0 -ConsistencyChecks_086 False True 1.0 -ConsistencyChecks_060 False False 1.0 -ConsistencyChecks_198 True True 1.0 -ConsistencyChecks_052 True True 1.0 -ConsistencyChecks_057 True True 1.0 -ConsistencyChecks_211 True True 1.0 -ConsistencyChecks_010 True False 2.0 -ConsistencyChecks_229 True True 2.0 -ConsistencyChecks_111 True False 2.0 -ConsistencyChecks_056 False False 2.0 -ConsistencyChecks_115 False True 2.0 -ConsistencyChecks_161 True False 2.0 -ConsistencyChecks_088 False False 2.0 -ConsistencyChecks_142 True True 2.0 -ConsistencyChecks_162 True True 2.0 -ConsistencyChecks_194 True True 2.0 -ConsistencyChecks_167 True True 2.0 -ConsistencyChecks_054 True True 2.0 -ConsistencyChecks_220 False False 2.0 -ConsistencyChecks_187 False True 2.0 -ConsistencyChecks_197 True True 2.0 -ConsistencyChecks_294 True True 2.0 -ConsistencyChecks_098 False True 2.0 -ConsistencyChecks_174 True False 2.0 -ConsistencyChecks_140 False False 2.0 -ConsistencyChecks_260 False False 2.0 -ConsistencyChecks_177 True True 2.0 -ConsistencyChecks_170 True False 2.0 -ConsistencyChecks_242 True True 2.0 -ConsistencyChecks_264 True True 2.0 -ConsistencyChecks_189 False True 2.0 -ConsistencyChecks_202 False False 2.0 -ConsistencyChecks_199 True True 2.0 -ConsistencyChecks_033 False False 2.0 -ConsistencyChecks_297 True True 2.0 -ConsistencyChecks_221 False False 2.0 -ConsistencyChecks_123 True True 2.0 -ConsistencyChecks_044 False False 2.0 -ConsistencyChecks_269 True True 2.0 -ConsistencyChecks_164 True True 2.0 -ConsistencyChecks_087 False False 2.0 -ConsistencyChecks_280 False True 2.0 -ConsistencyChecks_145 True True 2.0 -ConsistencyChecks_249 False True 2.0 -ConsistencyChecks_071 False True 2.0 -ConsistencyChecks_296 True True 2.0 -ConsistencyChecks_053 False True 2.0 -ConsistencyChecks_046 True True 2.0 -ConsistencyChecks_281 True True 2.0 -ConsistencyChecks_227 True True 2.0 -ConsistencyChecks_285 False False 2.0 -ConsistencyChecks_079 False True 2.0 -ConsistencyChecks_002 True True 2.0 -ConsistencyChecks_212 True True 2.0 -ConsistencyChecks_005 True True 3.0 -ConsistencyChecks_141 True True 3.0 -ConsistencyChecks_006 True False 3.0 -ConsistencyChecks_224 True True 3.0 -ConsistencyChecks_299 True False 3.0 -ConsistencyChecks_009 True True 3.0 -ConsistencyChecks_228 True True 3.0 -ConsistencyChecks_286 True True 3.0 -ConsistencyChecks_190 True True 3.0 -ConsistencyChecks_298 False True 3.0 -ConsistencyChecks_179 True False 3.0 -ConsistencyChecks_283 True True 3.0 -ConsistencyChecks_124 True True 3.0 -ConsistencyChecks_252 False False 3.0 -ConsistencyChecks_128 True True 3.0 -ConsistencyChecks_259 False True 3.0 -ConsistencyChecks_014 False True 3.0 -ConsistencyChecks_077 True False 3.0 -ConsistencyChecks_021 False False 3.0 -ConsistencyChecks_255 True True 3.0 -ConsistencyChecks_117 False True 3.0 -ConsistencyChecks_035 True False 3.0 -ConsistencyChecks_290 True True 3.0 -ConsistencyChecks_256 True False 3.0 -ConsistencyChecks_291 False False 3.0 -ConsistencyChecks_192 False True 3.0 -ConsistencyChecks_204 False False 3.0 -ConsistencyChecks_272 False False 3.0 -ConsistencyChecks_016 False False 3.0 -ConsistencyChecks_133 True True 3.0 -ConsistencyChecks_203 False True 3.0 -ConsistencyChecks_015 True True 3.0 -ConsistencyChecks_246 True False 3.0 -ConsistencyChecks_238 False True 3.0 -ConsistencyChecks_094 True True 3.0 -ConsistencyChecks_112 True False 3.0 -ConsistencyChecks_270 True False 3.0 -ConsistencyChecks_105 False True 3.0 -ConsistencyChecks_278 False False 3.0 -ConsistencyChecks_013 False False 3.0 -ConsistencyChecks_135 False False 3.0 -ConsistencyChecks_070 True True 3.0 -ConsistencyChecks_147 True True 3.0 -ConsistencyChecks_110 True False 3.0 -ConsistencyChecks_186 False True 3.0 -ConsistencyChecks_232 False True 3.0 -ConsistencyChecks_047 False False 3.0 -ConsistencyChecks_282 True True 3.0 -ConsistencyChecks_069 False False 4.0 -ConsistencyChecks_148 False False 4.0 -ConsistencyChecks_155 False False 4.0 -ConsistencyChecks_222 True False 4.0 -ConsistencyChecks_178 True True 4.0 -ConsistencyChecks_024 True True 4.0 -ConsistencyChecks_109 False True 4.0 -ConsistencyChecks_051 False True 4.0 -ConsistencyChecks_132 True False 4.0 -ConsistencyChecks_209 True True 4.0 -ConsistencyChecks_027 True True 4.0 -ConsistencyChecks_176 True True 4.0 -ConsistencyChecks_265 True True 4.0 -ConsistencyChecks_225 True True 4.0 -ConsistencyChecks_173 True True 4.0 -ConsistencyChecks_017 True False 4.0 -ConsistencyChecks_143 False True 4.0 -ConsistencyChecks_200 True True 4.0 -ConsistencyChecks_166 True True 4.0 -ConsistencyChecks_074 True True 4.0 -ConsistencyChecks_263 True True 4.0 -ConsistencyChecks_205 True True 4.0 -ConsistencyChecks_163 True True 4.0 -ConsistencyChecks_118 True True 4.0 -ConsistencyChecks_019 True True 4.0 -ConsistencyChecks_030 True True 4.0 -ConsistencyChecks_289 True False 4.0 -ConsistencyChecks_067 False False 4.0 -ConsistencyChecks_231 True False 4.0 -ConsistencyChecks_114 False True 4.0 -ConsistencyChecks_245 False True 4.0 -ConsistencyChecks_149 False False 4.0 -ConsistencyChecks_040 True True 4.0 -ConsistencyChecks_049 True True 4.0 -ConsistencyChecks_182 False True 4.0 -ConsistencyChecks_025 False True 4.0 -ConsistencyChecks_184 True True 4.0 -ConsistencyChecks_061 False True 4.0 -ConsistencyChecks_106 True True 4.0 -ConsistencyChecks_271 False True 4.0 -ConsistencyChecks_083 False True 4.0 -ConsistencyChecks_144 True False 4.0 -ConsistencyChecks_159 False False 4.0 -ConsistencyChecks_138 True True 4.0 -ConsistencyChecks_080 False False 4.0 -ConsistencyChecks_250 True False 4.0 -ConsistencyChecks_050 False False 4.0 -ConsistencyChecks_217 True True 4.0 +ConsistencyChecks_004 True 1 0.0 +ConsistencyChecks_011 True 1 0.0 +ConsistencyChecks_076 True 1 0.0 +ConsistencyChecks_236 True 1 0.0 +ConsistencyChecks_026 False 0 0.0 +ConsistencyChecks_093 True 0 0.0 +ConsistencyChecks_089 True 1 0.0 +ConsistencyChecks_196 True 1 0.0 +ConsistencyChecks_169 True 1 0.0 +ConsistencyChecks_000 False 1 0.0 +ConsistencyChecks_023 False 0 0.0 +ConsistencyChecks_262 False 0 0.0 +ConsistencyChecks_103 False 0 0.0 +ConsistencyChecks_129 False 0 0.0 +ConsistencyChecks_206 False 0 0.0 +ConsistencyChecks_277 True 0 0.0 +ConsistencyChecks_134 True 1 0.0 +ConsistencyChecks_062 True 1 0.0 +ConsistencyChecks_185 True 1 0.0 +ConsistencyChecks_091 False 0 0.0 +ConsistencyChecks_215 False 0 0.0 +ConsistencyChecks_295 True 1 0.0 +ConsistencyChecks_137 True 1 0.0 +ConsistencyChecks_258 False 0 0.0 +ConsistencyChecks_153 False 0 0.0 +ConsistencyChecks_037 True 0 0.0 +ConsistencyChecks_275 False 0 0.0 +ConsistencyChecks_226 True 0 0.0 +ConsistencyChecks_108 True 0 0.0 +ConsistencyChecks_235 False 0 0.0 +ConsistencyChecks_018 True 1 0.0 +ConsistencyChecks_201 True 1 0.0 +ConsistencyChecks_216 True 1 0.0 +ConsistencyChecks_213 True 0 0.0 +ConsistencyChecks_127 True 1 0.0 +ConsistencyChecks_131 False 1 0.0 +ConsistencyChecks_092 True 1 0.0 +ConsistencyChecks_045 True 1 0.0 +ConsistencyChecks_028 True 1 0.0 +ConsistencyChecks_210 False 0 0.0 +ConsistencyChecks_130 True 1 0.0 +ConsistencyChecks_248 True 1 0.0 +ConsistencyChecks_219 False 0 0.0 +ConsistencyChecks_121 False 0 0.0 +ConsistencyChecks_096 True 0 0.0 +ConsistencyChecks_234 False 1 0.0 +ConsistencyChecks_171 True 1 0.0 +ConsistencyChecks_008 True 1 0.0 +ConsistencyChecks_063 False 1 1.0 +ConsistencyChecks_261 False 1 1.0 +ConsistencyChecks_180 False 1 1.0 +ConsistencyChecks_218 False 1 1.0 +ConsistencyChecks_066 False 0 1.0 +ConsistencyChecks_172 False 0 1.0 +ConsistencyChecks_191 True 1 1.0 +ConsistencyChecks_152 True 1 1.0 +ConsistencyChecks_090 False 1 1.0 +ConsistencyChecks_157 True 1 1.0 +ConsistencyChecks_003 True 1 1.0 +ConsistencyChecks_168 False 0 1.0 +ConsistencyChecks_020 True 1 1.0 +ConsistencyChecks_038 True 0 1.0 +ConsistencyChecks_116 True 1 1.0 +ConsistencyChecks_139 False 0 1.0 +ConsistencyChecks_039 True 1 1.0 +ConsistencyChecks_181 False 0 1.0 +ConsistencyChecks_239 True 1 1.0 +ConsistencyChecks_284 True 1 1.0 +ConsistencyChecks_001 True 0 1.0 +ConsistencyChecks_085 False 0 1.0 +ConsistencyChecks_156 False 1 1.0 +ConsistencyChecks_125 False 0 1.0 +ConsistencyChecks_043 True 1 1.0 +ConsistencyChecks_214 False 0 1.0 +ConsistencyChecks_237 True 1 1.0 +ConsistencyChecks_041 False 1 1.0 +ConsistencyChecks_022 False 0 1.0 +ConsistencyChecks_055 True 0 1.0 +ConsistencyChecks_240 False 0 1.0 +ConsistencyChecks_084 False 1 1.0 +ConsistencyChecks_268 False 0 1.0 +ConsistencyChecks_243 False 0 1.0 +ConsistencyChecks_274 True 1 1.0 +ConsistencyChecks_029 True 1 1.0 +ConsistencyChecks_100 True 1 1.0 +ConsistencyChecks_251 True 1 1.0 +ConsistencyChecks_154 False 0 1.0 +ConsistencyChecks_183 False 1 1.0 +ConsistencyChecks_042 False 1 1.0 +ConsistencyChecks_267 True 1 1.0 +ConsistencyChecks_086 False 1 1.0 +ConsistencyChecks_060 False 0 1.0 +ConsistencyChecks_198 True 1 1.0 +ConsistencyChecks_052 True 1 1.0 +ConsistencyChecks_057 True 1 1.0 +ConsistencyChecks_211 True 1 1.0 +ConsistencyChecks_010 True 0 2.0 +ConsistencyChecks_229 True 1 2.0 +ConsistencyChecks_111 True 1 2.0 +ConsistencyChecks_056 False 0 2.0 +ConsistencyChecks_115 False 0 2.0 +ConsistencyChecks_161 True 0 2.0 +ConsistencyChecks_088 False 0 2.0 +ConsistencyChecks_142 True 1 2.0 +ConsistencyChecks_162 True 0 2.0 +ConsistencyChecks_194 True 1 2.0 +ConsistencyChecks_167 True 1 2.0 +ConsistencyChecks_054 True 1 2.0 +ConsistencyChecks_220 False 0 2.0 +ConsistencyChecks_187 False 1 2.0 +ConsistencyChecks_197 True 1 2.0 +ConsistencyChecks_294 True 1 2.0 +ConsistencyChecks_098 False 1 2.0 +ConsistencyChecks_174 True 0 2.0 +ConsistencyChecks_140 False 0 2.0 +ConsistencyChecks_260 False 0 2.0 +ConsistencyChecks_177 True 1 2.0 +ConsistencyChecks_170 True 0 2.0 +ConsistencyChecks_242 True 1 2.0 +ConsistencyChecks_264 True 0 2.0 +ConsistencyChecks_189 False 1 2.0 +ConsistencyChecks_202 False 0 2.0 +ConsistencyChecks_199 True 1 2.0 +ConsistencyChecks_033 False 0 2.0 +ConsistencyChecks_297 True 1 2.0 +ConsistencyChecks_221 False 1 2.0 +ConsistencyChecks_123 True 1 2.0 +ConsistencyChecks_044 False 0 2.0 +ConsistencyChecks_269 True 1 2.0 +ConsistencyChecks_164 True 1 2.0 +ConsistencyChecks_087 False 1 2.0 +ConsistencyChecks_280 False 0 2.0 +ConsistencyChecks_145 True 0 2.0 +ConsistencyChecks_249 False 1 2.0 +ConsistencyChecks_071 False 1 2.0 +ConsistencyChecks_296 True 1 2.0 +ConsistencyChecks_053 False 1 2.0 +ConsistencyChecks_046 True 1 2.0 +ConsistencyChecks_281 True 1 2.0 +ConsistencyChecks_227 True 0 2.0 +ConsistencyChecks_285 False 0 2.0 +ConsistencyChecks_079 False 1 2.0 +ConsistencyChecks_002 True 1 2.0 +ConsistencyChecks_212 True 1 2.0 +ConsistencyChecks_005 True 1 3.0 +ConsistencyChecks_141 True 1 3.0 +ConsistencyChecks_006 True 1 3.0 +ConsistencyChecks_224 True 0 3.0 +ConsistencyChecks_299 True 1 3.0 +ConsistencyChecks_009 True 1 3.0 +ConsistencyChecks_228 True 1 3.0 +ConsistencyChecks_286 True 1 3.0 +ConsistencyChecks_190 True 1 3.0 +ConsistencyChecks_298 False 1 3.0 +ConsistencyChecks_179 True 1 3.0 +ConsistencyChecks_283 True 1 3.0 +ConsistencyChecks_124 True 1 3.0 +ConsistencyChecks_252 False 0 3.0 +ConsistencyChecks_128 True 1 3.0 +ConsistencyChecks_259 False 1 3.0 +ConsistencyChecks_014 False 0 3.0 +ConsistencyChecks_077 True 0 3.0 +ConsistencyChecks_021 False 0 3.0 +ConsistencyChecks_255 True 1 3.0 +ConsistencyChecks_117 False 1 3.0 +ConsistencyChecks_035 True 0 3.0 +ConsistencyChecks_290 True 1 3.0 +ConsistencyChecks_256 True 1 3.0 +ConsistencyChecks_291 False 1 3.0 +ConsistencyChecks_192 False 1 3.0 +ConsistencyChecks_204 False 0 3.0 +ConsistencyChecks_272 False 0 3.0 +ConsistencyChecks_016 False 0 3.0 +ConsistencyChecks_133 True 0 3.0 +ConsistencyChecks_203 False 1 3.0 +ConsistencyChecks_015 True 1 3.0 +ConsistencyChecks_246 True 0 3.0 +ConsistencyChecks_238 False 0 3.0 +ConsistencyChecks_094 True 1 3.0 +ConsistencyChecks_112 True 0 3.0 +ConsistencyChecks_270 True 1 3.0 +ConsistencyChecks_105 False 1 3.0 +ConsistencyChecks_278 False 1 3.0 +ConsistencyChecks_013 False 0 3.0 +ConsistencyChecks_135 False 0 3.0 +ConsistencyChecks_070 True 1 3.0 +ConsistencyChecks_147 True 1 3.0 +ConsistencyChecks_110 True 0 3.0 +ConsistencyChecks_186 False 0 3.0 +ConsistencyChecks_232 False 0 3.0 +ConsistencyChecks_047 False 1 3.0 +ConsistencyChecks_282 True 1 3.0 +ConsistencyChecks_069 False 1 4.0 +ConsistencyChecks_148 False 0 4.0 +ConsistencyChecks_155 False 1 4.0 +ConsistencyChecks_222 True 1 4.0 +ConsistencyChecks_178 True 1 4.0 +ConsistencyChecks_024 True 0 4.0 +ConsistencyChecks_109 False 1 4.0 +ConsistencyChecks_051 False 1 4.0 +ConsistencyChecks_132 True 0 4.0 +ConsistencyChecks_209 True 1 4.0 +ConsistencyChecks_027 True 1 4.0 +ConsistencyChecks_176 True 0 4.0 +ConsistencyChecks_265 True 1 4.0 +ConsistencyChecks_225 True 1 4.0 +ConsistencyChecks_173 True 1 4.0 +ConsistencyChecks_017 True 0 4.0 +ConsistencyChecks_143 False 0 4.0 +ConsistencyChecks_200 True 1 4.0 +ConsistencyChecks_166 True 1 4.0 +ConsistencyChecks_074 True 1 4.0 +ConsistencyChecks_263 True 0 4.0 +ConsistencyChecks_205 True 1 4.0 +ConsistencyChecks_163 True 1 4.0 +ConsistencyChecks_118 True 1 4.0 +ConsistencyChecks_019 True 0 4.0 +ConsistencyChecks_030 True 1 4.0 +ConsistencyChecks_289 True 1 4.0 +ConsistencyChecks_067 False 0 4.0 +ConsistencyChecks_231 True 1 4.0 +ConsistencyChecks_114 False 1 4.0 +ConsistencyChecks_245 False 1 4.0 +ConsistencyChecks_149 False 1 4.0 +ConsistencyChecks_040 True 1 4.0 +ConsistencyChecks_049 True 1 4.0 +ConsistencyChecks_182 False 0 4.0 +ConsistencyChecks_025 False 1 4.0 +ConsistencyChecks_184 True 1 4.0 +ConsistencyChecks_061 False 0 4.0 +ConsistencyChecks_106 True 1 4.0 +ConsistencyChecks_271 False 0 4.0 +ConsistencyChecks_083 False 1 4.0 +ConsistencyChecks_144 True 0 4.0 +ConsistencyChecks_159 False 0 4.0 +ConsistencyChecks_138 True 1 4.0 +ConsistencyChecks_080 False 0 4.0 +ConsistencyChecks_250 True 0 4.0 +ConsistencyChecks_050 False 1 4.0 +ConsistencyChecks_217 True 1 4.0 diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369.ind.tsv b/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369.ind.tsv index baeb3db1..29a51222 100644 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369.ind.tsv +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369.ind.tsv @@ -1,61 +1,61 @@ QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction -ConsistencyChecks_193 True False -ConsistencyChecks_292 True True -ConsistencyChecks_207 True False -ConsistencyChecks_288 True True -ConsistencyChecks_158 False False -ConsistencyChecks_119 True True -ConsistencyChecks_160 False False -ConsistencyChecks_012 True True -ConsistencyChecks_081 True True -ConsistencyChecks_102 True True -ConsistencyChecks_254 False True -ConsistencyChecks_058 True True -ConsistencyChecks_266 True True -ConsistencyChecks_034 True True -ConsistencyChecks_244 True True -ConsistencyChecks_151 True False -ConsistencyChecks_146 False False -ConsistencyChecks_230 True True -ConsistencyChecks_247 True True -ConsistencyChecks_195 True True -ConsistencyChecks_082 False False -ConsistencyChecks_257 True True -ConsistencyChecks_136 False False -ConsistencyChecks_113 True True -ConsistencyChecks_064 False False -ConsistencyChecks_107 False False -ConsistencyChecks_072 False True -ConsistencyChecks_101 True True -ConsistencyChecks_095 True True -ConsistencyChecks_150 True True -ConsistencyChecks_104 True True -ConsistencyChecks_287 True True -ConsistencyChecks_273 True False -ConsistencyChecks_099 True True -ConsistencyChecks_048 True True -ConsistencyChecks_122 True True -ConsistencyChecks_253 True False -ConsistencyChecks_279 True True -ConsistencyChecks_120 True False -ConsistencyChecks_065 True True -ConsistencyChecks_175 True True -ConsistencyChecks_097 True False -ConsistencyChecks_293 True True -ConsistencyChecks_165 True True -ConsistencyChecks_073 True True -ConsistencyChecks_007 False False -ConsistencyChecks_036 True True -ConsistencyChecks_223 False True -ConsistencyChecks_126 True True -ConsistencyChecks_208 True True -ConsistencyChecks_075 False True -ConsistencyChecks_276 False True -ConsistencyChecks_188 True True -ConsistencyChecks_233 True False -ConsistencyChecks_068 True True -ConsistencyChecks_032 False False -ConsistencyChecks_059 True True -ConsistencyChecks_078 True True -ConsistencyChecks_031 True False -ConsistencyChecks_241 True True +ConsistencyChecks_193 True 0 +ConsistencyChecks_292 True 1 +ConsistencyChecks_207 True 1 +ConsistencyChecks_288 True 0 +ConsistencyChecks_158 False 0 +ConsistencyChecks_119 True 1 +ConsistencyChecks_160 False 0 +ConsistencyChecks_012 True 1 +ConsistencyChecks_081 True 1 +ConsistencyChecks_102 True 1 +ConsistencyChecks_254 False 1 +ConsistencyChecks_058 True 1 +ConsistencyChecks_266 True 1 +ConsistencyChecks_034 True 1 +ConsistencyChecks_244 True 1 +ConsistencyChecks_151 True 1 +ConsistencyChecks_146 False 0 +ConsistencyChecks_230 True 1 +ConsistencyChecks_247 True 1 +ConsistencyChecks_195 True 1 +ConsistencyChecks_082 False 0 +ConsistencyChecks_257 True 1 +ConsistencyChecks_136 False 0 +ConsistencyChecks_113 True 1 +ConsistencyChecks_064 False 0 +ConsistencyChecks_107 False 0 +ConsistencyChecks_072 False 1 +ConsistencyChecks_101 True 0 +ConsistencyChecks_095 True 0 +ConsistencyChecks_150 True 0 +ConsistencyChecks_104 True 1 +ConsistencyChecks_287 True 1 +ConsistencyChecks_273 True 1 +ConsistencyChecks_099 True 1 +ConsistencyChecks_048 True 1 +ConsistencyChecks_122 True 1 +ConsistencyChecks_253 True 1 +ConsistencyChecks_279 True 1 +ConsistencyChecks_120 True 1 +ConsistencyChecks_065 True 1 +ConsistencyChecks_175 True 1 +ConsistencyChecks_097 True 0 +ConsistencyChecks_293 True 1 +ConsistencyChecks_165 True 1 +ConsistencyChecks_073 True 1 +ConsistencyChecks_007 False 1 +ConsistencyChecks_036 True 1 +ConsistencyChecks_223 False 1 +ConsistencyChecks_126 True 1 +ConsistencyChecks_208 True 1 +ConsistencyChecks_075 False 0 +ConsistencyChecks_276 False 0 +ConsistencyChecks_188 True 1 +ConsistencyChecks_233 True 0 +ConsistencyChecks_068 True 1 +ConsistencyChecks_032 False 0 +ConsistencyChecks_059 True 1 +ConsistencyChecks_078 True 1 +ConsistencyChecks_031 True 0 +ConsistencyChecks_241 True 1 diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369.json b/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369.json index 477e27e4..8256a95d 100644 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369.json +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369.json @@ -1 +1 @@ -{"unfitted": true, "meta": ["sklearn.naive_bayes", "GaussianNB"], "params": {"priors": null, "var_smoothing": 1e-09}, "versions": ["sklearn", "1.2.1"]} \ No newline at end of file +{"unfitted": true, "meta": ["xgboost.sklearn", "XGBClassifier"], "params": {"objective": "binary:logistic", "base_score": null, "booster": null, "callbacks": null, "colsample_bylevel": null, "colsample_bynode": null, "colsample_bytree": null, "device": null, "early_stopping_rounds": null, "enable_categorical": false, "eval_metric": null, "feature_types": null, "gamma": null, "grow_policy": null, "importance_type": null, "interaction_constraints": null, "learning_rate": null, "max_bin": null, "max_cat_threshold": null, "max_cat_to_onehot": null, "max_delta_step": null, "max_depth": null, "max_leaves": null, "min_child_weight": null, "missing": NaN, "monotone_constraints": null, "multi_strategy": null, "n_estimators": null, "n_jobs": null, "num_parallel_tree": null, "random_state": 107420369, "reg_alpha": null, "reg_lambda": null, "sampling_method": null, "scale_pos_weight": null, "subsample": null, "tree_method": null, "validate_parameters": null, "verbosity": null}, "versions": ["xgboost", "2.0.3"]} \ No newline at end of file diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369_meta.json b/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369_meta.json index 113b5963..cb2b85bc 100644 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369_meta.json +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369_meta.json @@ -24,550 +24,537 @@ 6.5 ], "_nClasses": 2, - "transformer": null, - "imputer": null + "imputer": null, + "transformer": null } } ], "nTargets": 1, "featureCalculators": [ { - "py/object": "qsprpred.data.descriptors.calculators.MoleculeDescriptorsCalculator", + "py/object": "qsprpred.data.descriptors.fingerprints.MorganFP", "py/state": { - "descSets": [ - { - "py/object": "qsprpred.data.descriptors.sets.FingerprintSet", - "py/state": { - "_isFP": true, - "fingerprintType": "MorganFP", - "_args": { - "py/tuple": [] - }, - "_kwargs": { - "radius": 2, - "nBits": 256 - }, - "_keepindices": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 50, - 51, - 52, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 65, - 66, - 67, - 68, - 69, - 71, - 72, - 73, - 74, - 75, - 77, - 78, - 79, - 80, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 98, - 99, - 101, - 102, - 103, - 104, - 105, - 106, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 172, - 173, - 174, - 175, - 177, - 178, - 179, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 221, - 226, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 237, - 239, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 255 - ], - "descriptors": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "50", - "51", - "52", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "65", - "66", - "67", - "68", - "69", - "71", - "72", - "73", - "74", - "75", - "77", - "78", - "79", - "80", - "82", - "83", - "84", - "85", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "96", - "98", - "99", - "101", - "102", - "103", - "104", - "105", - "106", - "108", - "109", - "110", - "111", - "112", - "113", - "114", - "115", - "117", - "118", - "119", - "120", - "121", - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "144", - "145", - "146", - "147", - "148", - "149", - "150", - "151", - "152", - "153", - "154", - "155", - "156", - "157", - "158", - "160", - "161", - "162", - "163", - "164", - "165", - "166", - "167", - "168", - "169", - "170", - "172", - "173", - "174", - "175", - "177", - "178", - "179", - "182", - "183", - "184", - "185", - "186", - "187", - "188", - "189", - "191", - "192", - "193", - "194", - "195", - "196", - "197", - "198", - "199", - "200", - "201", - "202", - "203", - "204", - "205", - "206", - "207", - "208", - "209", - "210", - "211", - "212", - "213", - "214", - "215", - "216", - "217", - "218", - "219", - "221", - "226", - "228", - "229", - "230", - "231", - "232", - "233", - "234", - "235", - "237", - "239", - "241", - "242", - "243", - "244", - "245", - "246", - "247", - "248", - "249", - "250", - "251", - "252", - "255" - ] - } - }, - { - "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", - "py/state": { - "_isFP": false, - "_descriptors": [ - "BCUT2D_CHGLO", - "EState_VSA1", - "EState_VSA2", - "EState_VSA7", - "FractionCSP3", - "MaxAbsEStateIndex", - "MaxEStateIndex", - "MinPartialCharge", - "NumAromaticRings", - "NumSaturatedHeterocycles", - "PEOE_VSA11", - "PEOE_VSA4", - "SlogP_VSA12", - "SlogP_VSA4", - "fr_Al_OH", - "fr_Al_OH_noTert", - "fr_ArN", - "fr_Ar_NH", - "fr_NH2", - "fr_Ndealkylation1", - "fr_Nhpyrrole", - "fr_aryl_methyl", - "fr_furan", - "fr_imidazole", - "fr_para_hydroxylation", - "fr_piperzine", - "fr_thiazole" - ], - "include3D": false, - "descriptors": [ - "BCUT2D_CHGLO", - "EState_VSA1", - "EState_VSA2", - "EState_VSA7", - "FractionCSP3", - "MaxAbsEStateIndex", - "MaxEStateIndex", - "MinPartialCharge", - "NumAromaticRings", - "NumSaturatedHeterocycles", - "PEOE_VSA11", - "PEOE_VSA4", - "SlogP_VSA12", - "SlogP_VSA4", - "fr_Al_OH", - "fr_Al_OH_noTert", - "fr_ArN", - "fr_Ar_NH", - "fr_NH2", - "fr_Ndealkylation1", - "fr_Nhpyrrole", - "fr_aryl_methyl", - "fr_furan", - "fr_imidazole", - "fr_para_hydroxylation", - "fr_piperzine", - "fr_thiazole" - ] - } - } + "idProp": "QSPRID", + "_usedBits": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 50, + 51, + 52, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 65, + 66, + 67, + 68, + 69, + 71, + 72, + 73, + 74, + 75, + 77, + 78, + 79, + 80, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 98, + 99, + 101, + 102, + 103, + 104, + 105, + 106, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 172, + 173, + 174, + 175, + 177, + 178, + 179, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 221, + 226, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 237, + 239, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 255 + ], + "radius": 2, + "nBits": 256, + "kwargs": {}, + "descriptors": [ + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_77", + "MorganFP_78", + "MorganFP_79", + "MorganFP_80", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_98", + "MorganFP_99", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_221", + "MorganFP_226", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_237", + "MorganFP_239", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_255" + ] + } + }, + { + "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", + "py/state": { + "idProp": "QSPRID", + "_descriptors": [ + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA2", + "EState_VSA7", + "FractionCSP3", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "MinPartialCharge", + "NumAromaticRings", + "NumSaturatedHeterocycles", + "PEOE_VSA11", + "PEOE_VSA4", + "SlogP_VSA12", + "SlogP_VSA4", + "fr_Al_OH", + "fr_Al_OH_noTert", + "fr_ArN", + "fr_Ar_NH", + "fr_NH2", + "fr_Ndealkylation1", + "fr_Nhpyrrole", + "fr_aryl_methyl", + "fr_furan", + "fr_imidazole", + "fr_para_hydroxylation", + "fr_piperzine", + "fr_thiazole" ], - "noParallelization": false + "include3D": false, + "descriptors": [ + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA2", + "EState_VSA7", + "FractionCSP3", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "MinPartialCharge", + "NumAromaticRings", + "NumSaturatedHeterocycles", + "PEOE_VSA11", + "PEOE_VSA4", + "SlogP_VSA12", + "SlogP_VSA4", + "fr_Al_OH", + "fr_Al_OH_noTert", + "fr_ArN", + "fr_Ar_NH", + "fr_NH2", + "fr_Ndealkylation1", + "fr_Nhpyrrole", + "fr_aryl_methyl", + "fr_furan", + "fr_imidazole", + "fr_para_hydroxylation", + "fr_piperzine", + "fr_thiazole" + ] } } ], @@ -583,257 +570,257 @@ "with_std": true }, "var_": [ - 0.13326388888888865, - 0.12456597222222182, - 0.06581597222222234, - 0.19748263888888845, - 0.06937499999999995, - 0.07289930555555585, - 0.05493055555555545, - 0.22750000000000017, - 0.06581597222222232, - 0.10623263888888854, - 0.13039930555555623, + 0.1332638888888889, + 0.12456597222222227, + 0.0658159722222222, + 0.19748263888888892, + 0.069375, + 0.07289930555555557, + 0.05493055555555556, + 0.2275, + 0.06581597222222221, + 0.10623263888888886, + 0.13039930555555557, 0.05859375, - 0.1649305555555561, - 0.08326388888888904, - 0.10305555555555523, - 0.1303993055555562, - 0.05493055555555545, - 0.06222222222222262, - 0.18326388888888961, - 0.07984375000000009, - 0.15999999999999956, - 0.19555555555555476, - 0.1599999999999996, - 0.07638888888888884, - 0.19159722222222306, - 0.09984374999999969, - 0.09659722222222207, + 0.16493055555555552, + 0.08326388888888887, + 0.10305555555555555, + 0.13039930555555554, + 0.054930555555555545, + 0.06222222222222223, + 0.1832638888888889, + 0.07984375, + 0.16000000000000003, + 0.1955555555555556, + 0.16000000000000003, + 0.07638888888888888, + 0.19159722222222222, + 0.09984375000000002, + 0.09659722222222221, 0.109375, - 0.05493055555555544, + 0.05493055555555555, 0.109375, - 0.06222222222222252, - 0.17888888888888899, - 0.15999999999999956, - 0.20305555555555588, - 0.11859375000000022, - 0.06937500000000014, - 0.2262326388888888, - 0.1388888888888892, + 0.06222222222222222, + 0.1788888888888889, + 0.16000000000000006, + 0.20305555555555557, + 0.11859375, + 0.069375, + 0.22623263888888884, + 0.1388888888888889, 0.15234375, - 0.09659722222222242, - 0.20659722222222188, - 0.11248263888888912, - 0.1599999999999996, - 0.2493750000000001, - 0.2437326388888904, - 0.24826388888888856, - 0.07984375000000009, - 0.14437500000000011, - 0.2132638888888901, - 0.08326388888888916, - 0.05493055555555544, - 0.23222222222222327, - 0.14437500000000023, - 0.22993055555555625, - 0.15493055555555543, - 0.22493055555555566, - 0.18326388888888967, - 0.20484374999999932, - 0.06581597222222235, - 0.18956597222222174, - 0.23734375000000094, - 0.11859375000000023, - 0.18109375000000022, - 0.17888888888888899, - 0.1743749999999998, - 0.05493055555555542, - 0.1549305555555554, - 0.1443750000000002, - 0.1275000000000005, - 0.23914930555555644, - 0.05123263888888906, - 0.1574826388888885, - 0.1697222222222221, - 0.05123263888888903, + 0.09659722222222221, + 0.20659722222222227, + 0.1124826388888889, + 0.16000000000000006, + 0.24937499999999996, + 0.24373263888888885, + 0.24826388888888892, + 0.07984375, + 0.144375, + 0.21326388888888884, + 0.08326388888888887, + 0.05493055555555556, + 0.23222222222222222, + 0.14437499999999998, + 0.22993055555555547, + 0.15493055555555557, + 0.2249305555555555, + 0.1832638888888889, + 0.20484374999999996, + 0.0658159722222222, + 0.18956597222222224, + 0.23734375000000008, + 0.11859375000000001, + 0.18109375000000003, + 0.1788888888888889, + 0.17437500000000003, + 0.054930555555555545, + 0.15493055555555557, + 0.14437499999999998, + 0.12749999999999997, + 0.23914930555555555, + 0.05123263888888887, + 0.15748263888888892, + 0.16972222222222216, + 0.051232638888888876, 0.05859375, - 0.12456597222222181, - 0.24437499999999923, - 0.06581597222222231, - 0.08326388888888908, - 0.10623263888888865, - 0.15999999999999953, - 0.24914930555555542, - 0.19937500000000022, - 0.0965972222222224, - 0.05493055555555547, - 0.06581597222222231, - 0.20305555555555585, - 0.23539930555555458, - 0.051232638888889036, - 0.2100000000000009, - 0.09000000000000007, - 0.13609375000000065, - 0.14706597222222245, - 0.19359374999999968, - 0.24305555555555644, - 0.06937500000000005, - 0.09000000000000036, - 0.051232638888889036, - 0.09000000000000015, - 0.16493055555555605, - 0.1360937500000007, - 0.23109375000000013, - 0.09331597222222184, + 0.12456597222222225, + 0.24437499999999998, + 0.06581597222222221, + 0.08326388888888889, + 0.10623263888888887, + 0.16000000000000003, + 0.24914930555555556, + 0.19937500000000002, + 0.09659722222222221, + 0.05493055555555556, + 0.06581597222222221, + 0.20305555555555557, + 0.23539930555555563, + 0.051232638888888876, + 0.20999999999999996, + 0.09, + 0.13609374999999999, + 0.14706597222222217, + 0.19359374999999995, + 0.24305555555555552, + 0.06937500000000002, + 0.09000000000000001, + 0.051232638888888876, + 0.09000000000000001, + 0.16493055555555552, + 0.13609374999999999, + 0.23109374999999996, + 0.09331597222222224, 0.109375, - 0.24826388888888867, - 0.1497222222222224, - 0.12456597222222184, - 0.24373263888889035, - 0.22493055555555566, + 0.24826388888888892, + 0.14972222222222217, + 0.12456597222222227, + 0.24373263888888885, + 0.22493055555555552, 0.05859375, - 0.206597222222222, + 0.20659722222222227, 0.17888888888888893, - 0.24972222222222243, - 0.09984374999999958, - 0.08664930555555551, - 0.23222222222222316, - 0.20659722222222168, - 0.1030555555555552, - 0.18109374999999997, - 0.07289930555555588, - 0.11859375000000033, - 0.06222222222222239, - 0.24956597222222218, - 0.13326388888888868, - 0.21638888888888816, - 0.11859375000000028, - 0.23638888888888854, - 0.09000000000000039, - 0.14437500000000025, - 0.24498263888888874, - 0.09659722222222236, - 0.15748263888888844, - 0.24956597222222215, - 0.08664930555555551, + 0.24972222222222223, + 0.09984375000000001, + 0.08664930555555557, + 0.23222222222222227, + 0.20659722222222227, + 0.10305555555555553, + 0.18109375000000003, + 0.07289930555555557, + 0.11859375000000003, + 0.06222222222222224, + 0.2495659722222223, + 0.13326388888888893, + 0.2163888888888889, + 0.11859375, + 0.23638888888888884, + 0.09000000000000001, + 0.144375, + 0.24498263888888897, + 0.09659722222222221, + 0.15748263888888892, + 0.24956597222222224, + 0.08664930555555556, 0.05859375, - 0.07638888888888874, - 0.1185937500000002, - 0.06222222222222238, - 0.11248263888888911, + 0.07638888888888887, + 0.11859375000000001, + 0.06222222222222224, + 0.1124826388888889, 0.05859375, - 0.11859375000000025, + 0.11859375000000001, 0.21484375, - 0.1360937500000006, - 0.244982638888889, + 0.13609374999999999, + 0.24498263888888885, 0.21484375, - 0.23999999999999885, - 0.22873263888888895, - 0.20123263888888943, - 0.22359374999999987, - 0.15493055555555543, - 0.069375, - 0.1743749999999996, - 0.1935937499999998, - 0.2485937499999996, - 0.07638888888888888, - 0.24789930555555495, - 0.10623263888888869, - 0.08326388888888919, - 0.0832638888888892, - 0.15999999999999961, - 0.19748263888888828, - 0.17437499999999964, - 0.09000000000000023, + 0.24000000000000005, + 0.2287326388888888, + 0.20123263888888893, + 0.22359375000000004, + 0.15493055555555557, + 0.06937499999999999, + 0.17437500000000003, + 0.19359374999999998, + 0.24859375000000003, + 0.07638888888888887, + 0.24789930555555564, + 0.10623263888888887, + 0.08326388888888887, + 0.08326388888888889, + 0.16000000000000003, + 0.19748263888888892, + 0.17437500000000003, + 0.09000000000000001, 0.234375, - 0.09984374999999969, - 0.09000000000000025, - 0.08664930555555551, - 0.14706597222222245, - 0.2382638888888892, - 0.10623263888888844, - 0.12456597222222181, - 0.11859375000000019, - 0.06581597222222237, - 0.1443750000000002, + 0.09984375000000001, + 0.09000000000000001, + 0.08664930555555556, + 0.14706597222222217, + 0.23826388888888894, + 0.10623263888888887, + 0.12456597222222225, + 0.11859375000000001, + 0.06581597222222221, + 0.144375, 0.05859375, - 0.21937500000000065, - 0.14164930555555566, - 0.19555555555555468, - 0.06581597222222232, - 0.14164930555555566, - 0.12750000000000056, - 0.16734374999999993, + 0.21937499999999996, + 0.14164930555555552, + 0.1955555555555556, + 0.06581597222222221, + 0.14164930555555552, + 0.12749999999999997, + 0.16734374999999999, 0.22623263888888884, - 0.199375, - 0.054930555555555434, - 0.15999999999999956, - 0.15493055555555543, - 0.09331597222222178, - 0.2391493055555565, - 0.14164930555555563, - 0.1895659722222218, - 0.12456597222222186, - 0.16734375000000004, + 0.19937500000000002, + 0.054930555555555545, + 0.16000000000000006, + 0.15493055555555557, + 0.09331597222222224, + 0.23914930555555552, + 0.14164930555555552, + 0.18956597222222218, + 0.12456597222222224, + 0.16734374999999999, 0.05859375, - 0.07638888888888871, - 0.10623263888888843, - 0.07984375000000009, - 0.2310937500000002, - 0.06937499999999994, - 0.17437499999999964, + 0.07638888888888887, + 0.10623263888888886, + 0.07984375, + 0.23109374999999993, + 0.06937500000000002, + 0.17437500000000003, 0.109375, - 0.14164930555555547, - 0.09984374999999948, - 0.13888888888888928, - 0.093315972222222, - 0.16734375000000015, - 0.09000000000000054, - 0.062222222222222505, - 0.07638888888888834, + 0.14164930555555552, + 0.09984375000000002, + 0.13888888888888887, + 0.09331597222222224, + 0.16734374999999999, + 0.09, + 0.06222222222222223, + 0.07638888888888887, 0.05859375, - 0.07984375000000007, - 0.07289930555555586, - 0.07638888888888878, - 0.08664930555555551, - 0.06222222222222259, - 0.12456597222222182, - 0.09659722222222243, - 0.11859375000000026, - 0.17664930555555597, - 0.08326388888888928, + 0.07984375, + 0.07289930555555556, + 0.07638888888888888, + 0.08664930555555557, + 0.06222222222222224, + 0.12456597222222224, + 0.09659722222222221, + 0.11859375000000001, + 0.17664930555555555, + 0.08326388888888887, 0.1697222222222222, - 0.2193750000000008, - 0.09000000000000034, - 0.2475000000000005, - 0.011810825889243625, - 127.59228619703737, - 88.73409682287378, - 359.70769637231336, - 0.027608968635327063, - 6.867429094234788, - 6.867429094234788, - 0.003940944670291294, - 0.8520659722222241, - 0.30414930555555547, - 62.959960374947656, - 40.84488002748806, - 62.66206528199166, - 38.53728482537888, - 0.8040104166666681, - 0.8030555555555546, + 0.21937499999999996, + 0.09000000000000001, + 0.24750000000000008, + 0.011810826490028554, + 127.59228646812348, + 88.73409713653221, + 359.70769402687364, + 0.027608969074900916, + 6.867429023395529, + 6.867429023395529, + 0.003940944639003286, + 0.8520659722222224, + 0.3041493055555556, + 62.959960092784705, + 40.844880850843204, + 62.66206581729436, + 38.537284820425064, + 0.8040104166666666, + 0.8030555555555556, 0.25104166666666666, - 0.21638888888888977, - 0.30067708333333376, + 0.21638888888888885, + 0.3006770833333333, 0.05859375, - 0.21638888888888977, - 0.5899999999999994, - 0.2595659722222222, - 0.2358333333333336, - 0.21833333333333282, - 0.09000000000000014, - 0.11859375000000028 + 0.21638888888888885, + 0.59, + 0.25956597222222216, + 0.23583333333333334, + 0.2183333333333334, + 0.09000000000000001, + 0.11859375000000003 ], "mean_": [ 0.15833333333333333, @@ -1060,20 +1047,20 @@ 0.325, 0.1, 0.45, - -2.14670758297046, - 7.8222078621387485, - 13.38493382136027, - 22.956078785657883, - 0.26363303324518106, - 11.254206307729085, - 11.254206307729085, - -0.42713840523113805, + -2.1467075845833334, + 7.822207844583334, + 13.384933835, + 22.956078700833334, + 0.2636330339958333, + 11.254206290416667, + 11.254206290416667, + -0.42713840475000003, 3.620833333333333, 0.32916666666666666, - 11.862592383225758, - 6.496667162577311, - 5.2060151894887285, - 4.349699733654658, + 11.862592338333332, + 6.496667212916666, + 5.206015191666667, + 4.3496997295833335, 0.3875, 0.38333333333333336, 0.375, @@ -1089,528 +1076,530 @@ 0.1375 ], "scale_": [ - 0.3650532685634915, - 0.3529390488770289, - 0.256546237981036, - 0.4443901876604483, - 0.2633913438213184, - 0.26999871398870745, - 0.23437268517375365, - 0.476969600708473, - 0.25654623798103593, - 0.325933488443407, - 0.3611084401610633, + 0.36505326856349185, + 0.3529390488770296, + 0.2565462379810357, + 0.4443901876604488, + 0.26339134382131846, + 0.26999871398870695, + 0.2343726851737539, + 0.47696960070847283, + 0.2565462379810357, + 0.3259334884434075, + 0.36110844016106236, 0.24206145913796356, - 0.40611643103370754, - 0.28855482821968004, - 0.3210226714043032, - 0.36110844016106325, - 0.23437268517375365, - 0.24944382578493024, - 0.42809331796804495, - 0.282566363886433, - 0.39999999999999947, - 0.4422166387140524, - 0.39999999999999947, - 0.27638539919628324, - 0.43771819955563085, - 0.31598061649411296, - 0.310800936649525, + 0.4061164310337068, + 0.2885548282196797, + 0.3210226714043037, + 0.36110844016106236, + 0.23437268517375387, + 0.24944382578492943, + 0.42809331796804406, + 0.2825663638864329, + 0.4, + 0.44221663871405337, + 0.4, + 0.2763853991962833, + 0.4377181995556299, + 0.31598061649411346, + 0.31080093664952524, 0.33071891388307384, - 0.23437268517375365, + 0.23437268517375387, 0.33071891388307384, - 0.24944382578493002, - 0.4229525846816508, - 0.39999999999999947, - 0.4506168611531928, - 0.34437443284889807, - 0.26339134382131874, - 0.4756391898160714, - 0.3726779962499654, + 0.24944382578492943, + 0.4229525846816507, + 0.4000000000000001, + 0.4506168611531925, + 0.3443744328488978, + 0.26339134382131846, + 0.47563918981607145, + 0.37267799624996495, 0.3903123748998999, - 0.31080093664952557, - 0.45452967144315437, - 0.33538431521001266, - 0.39999999999999947, - 0.4993746088859546, - 0.4936928588595245, - 0.4982608642958913, - 0.282566363886433, - 0.37996710383926674, - 0.4618050334165817, - 0.2885548282196802, - 0.23437268517375365, - 0.4818944098266998, - 0.3799671038392669, - 0.4795107460271941, - 0.39361218928731795, - 0.47426844250440664, - 0.428093317968045, - 0.4525966747557911, - 0.256546237981036, - 0.4353917456983099, - 0.48717938174762787, - 0.3443744328488981, - 0.4255511132637303, - 0.4229525846816508, - 0.4175823272122514, - 0.2343726851737536, - 0.39361218928731795, - 0.37996710383926685, - 0.3570714214271432, - 0.48902894142939685, - 0.22634628092568487, - 0.3968408231128553, - 0.4119735698102757, - 0.22634628092568482, + 0.31080093664952524, + 0.4545296714431548, + 0.33538431521001233, + 0.4000000000000001, + 0.4993746088859544, + 0.49369285885952296, + 0.4982608642958916, + 0.2825663638864329, + 0.3799671038392666, + 0.4618050334165803, + 0.2885548282196797, + 0.2343726851737539, + 0.4818944098266987, + 0.3799671038392666, + 0.4795107460271933, + 0.39361218928731817, + 0.4742684425044065, + 0.42809331796804406, + 0.4525966747557918, + 0.2565462379810357, + 0.43539174569831046, + 0.487179381747627, + 0.3443744328488978, + 0.4255511132637301, + 0.4229525846816507, + 0.4175823272122517, + 0.23437268517375387, + 0.39361218928731817, + 0.3799671038392666, + 0.3570714214271425, + 0.4890289414293959, + 0.22634628092568446, + 0.3968408231128558, + 0.4119735698102758, + 0.22634628092568448, 0.24206145913796356, - 0.3529390488770289, - 0.4943429983321289, - 0.25654623798103593, - 0.2885548282196801, - 0.3259334884434072, - 0.3999999999999994, - 0.4991485806406299, - 0.44651427748729405, - 0.31080093664952557, - 0.2343726851737537, - 0.25654623798103593, - 0.4506168611531928, - 0.4851796631718549, - 0.22634628092568482, - 0.458257569495585, - 0.3000000000000001, - 0.36890886408434354, - 0.383491815065488, - 0.43999289766995064, - 0.49300664859163557, - 0.26339134382131857, - 0.3000000000000006, - 0.22634628092568482, - 0.30000000000000027, - 0.4061164310337074, - 0.3689088640843436, - 0.48072211307573537, - 0.30547663122114893, + 0.35293904887702954, + 0.4943429983321297, + 0.2565462379810357, + 0.28855482821967976, + 0.3259334884434075, + 0.4, + 0.49914858064063006, + 0.44651427748729383, + 0.31080093664952524, + 0.2343726851737539, + 0.2565462379810357, + 0.4506168611531925, + 0.485179663171856, + 0.22634628092568448, + 0.45825756949558394, + 0.3, + 0.36890886408434265, + 0.38349181506548763, + 0.439992897669951, + 0.4930066485916346, + 0.2633913438213185, + 0.30000000000000004, + 0.22634628092568448, + 0.30000000000000004, + 0.4061164310337068, + 0.36890886408434265, + 0.4807221130757352, + 0.3054766312211496, 0.33071891388307384, - 0.4982608642958914, - 0.38693955887479686, - 0.352939048877029, - 0.49369285885952446, - 0.47426844250440664, + 0.4982608642958916, + 0.3869395588747966, + 0.3529390488770296, + 0.49369285885952296, + 0.4742684425044065, 0.24206145913796356, - 0.45452967144315454, + 0.4545296714431548, 0.42295258468165076, - 0.4997221450188319, - 0.3159806164941128, - 0.29436254101966763, - 0.4818944098266997, - 0.45452967144315415, - 0.3210226714043032, - 0.42555111326373, - 0.2699987139887075, - 0.34437443284889824, - 0.24944382578492977, - 0.49956578367840826, - 0.3650532685634915, - 0.4651761912317613, - 0.3443744328488982, - 0.4861984048604937, - 0.30000000000000066, - 0.3799671038392669, - 0.4949572091493251, - 0.3108009366495255, - 0.39684082311285523, - 0.4995657836784082, - 0.29436254101966763, + 0.49972214501883166, + 0.31598061649411346, + 0.29436254101966774, + 0.48189440982669873, + 0.4545296714431548, + 0.3210226714043037, + 0.4255511132637301, + 0.26999871398870695, + 0.3443744328488978, + 0.24944382578492946, + 0.49956578367840837, + 0.3650532685634919, + 0.4651761912317621, + 0.3443744328488978, + 0.486198404860494, + 0.30000000000000004, + 0.3799671038392666, + 0.49495720914932534, + 0.31080093664952524, + 0.3968408231128558, + 0.4995657836784083, + 0.2943625410196677, 0.24206145913796356, - 0.2763853991962831, - 0.34437443284889807, - 0.24944382578492974, - 0.3353843152100126, + 0.2763853991962833, + 0.3443744328488978, + 0.24944382578492946, + 0.33538431521001233, 0.24206145913796356, - 0.3443744328488981, + 0.3443744328488978, 0.46351240544347894, - 0.3689088640843435, - 0.49495720914932534, + 0.36890886408434265, + 0.49495720914932523, 0.46351240544347894, - 0.48989794855663443, - 0.4782600118020416, - 0.44858961076789267, - 0.4728570079844433, - 0.39361218928731795, + 0.48989794855663565, + 0.4782600118020414, + 0.4485896107678921, + 0.47285700798444347, + 0.39361218928731817, 0.26339134382131846, - 0.4175823272122512, - 0.4399928976699508, - 0.49859176687947787, + 0.4175823272122517, + 0.43999289766995103, + 0.4985917668794783, 0.2763853991962833, - 0.4978948740000794, - 0.32593348844340725, - 0.28855482821968026, - 0.2885548282196803, - 0.3999999999999995, - 0.44439018766044813, - 0.4175823272122512, - 0.3000000000000004, + 0.4978948740000801, + 0.3259334884434075, + 0.2885548282196797, + 0.28855482821967976, + 0.4, + 0.4443901876604488, + 0.4175823272122517, + 0.30000000000000004, 0.4841229182759271, - 0.31598061649411296, - 0.30000000000000043, - 0.29436254101966763, - 0.383491815065488, - 0.48812282152024933, - 0.32593348844340686, - 0.3529390488770289, - 0.34437443284889807, - 0.25654623798103604, - 0.37996710383926685, + 0.31598061649411346, + 0.30000000000000004, + 0.2943625410196677, + 0.38349181506548763, + 0.4881228215202491, + 0.3259334884434075, + 0.35293904887702954, + 0.3443744328488978, + 0.2565462379810357, + 0.3799671038392666, 0.24206145913796356, - 0.46837484987988054, - 0.3763632627602695, - 0.4422166387140523, - 0.25654623798103593, - 0.3763632627602695, - 0.35707142142714327, - 0.4090767042988392, + 0.4683748498798798, + 0.3763632627602693, + 0.44221663871405337, + 0.2565462379810357, + 0.3763632627602693, + 0.3570714214271425, + 0.4090767042988393, 0.47563918981607145, - 0.4465142774872938, - 0.23437268517375362, - 0.39999999999999947, - 0.39361218928731795, - 0.3054766312211489, - 0.4890289414293969, - 0.37636326276026943, - 0.43539174569830996, - 0.352939048877029, - 0.40907670429883936, + 0.44651427748729383, + 0.23437268517375387, + 0.4000000000000001, + 0.39361218928731817, + 0.3054766312211496, + 0.4890289414293959, + 0.3763632627602693, + 0.4353917456983104, + 0.35293904887702954, + 0.4090767042988393, 0.24206145913796356, - 0.276385399196283, - 0.32593348844340686, - 0.282566363886433, - 0.4807221130757355, - 0.26339134382131835, - 0.4175823272122512, + 0.2763853991962833, + 0.3259334884434075, + 0.2825663638864329, + 0.4807221130757352, + 0.2633913438213185, + 0.4175823272122517, 0.33071891388307384, - 0.3763632627602692, - 0.31598061649411263, - 0.3726779962499655, - 0.3054766312211492, - 0.40907670429883947, - 0.3000000000000009, - 0.24944382578493, - 0.27638539919628236, + 0.3763632627602693, + 0.31598061649411346, + 0.3726779962499649, + 0.3054766312211496, + 0.4090767042988393, + 0.3, + 0.24944382578492943, + 0.2763853991962833, 0.24206145913796356, - 0.282566363886433, - 0.26999871398870745, - 0.27638539919628313, - 0.29436254101966763, - 0.24944382578493016, - 0.3529390488770289, - 0.3108009366495256, - 0.3443744328488981, - 0.42029668753816746, - 0.2885548282196804, + 0.2825663638864329, + 0.2699987139887069, + 0.2763853991962833, + 0.29436254101966774, + 0.24944382578492946, + 0.35293904887702954, + 0.31080093664952524, + 0.3443744328488978, + 0.42029668753816696, + 0.2885548282196797, 0.41197356981027583, - 0.4683748498798807, - 0.3000000000000006, - 0.4974937185533105, - 0.10867762368235526, - 11.295675552928978, - 9.419877749890057, - 18.9659615198469, - 0.1661594674862888, - 2.620578007660674, - 2.620578007660674, - 0.06277694377947443, - 0.9230741964881394, - 0.5514973305062822, - 7.934731273014081, - 6.39099992391551, - 7.915937422819337, - 6.207840592780945, - 0.8966662794299047, - 0.8961336705846704, + 0.4683748498798798, + 0.30000000000000004, + 0.49749371855331004, + 0.10867762644642436, + 11.29567556492853, + 9.41987776653881, + 18.96596145801403, + 0.16615946880903573, + 2.620577994144713, + 2.620577994144713, + 0.0627769435302746, + 0.9230741964881384, + 0.5514973305062824, + 7.934731255233834, + 6.390999988330715, + 7.915937456631044, + 6.207840592381949, + 0.896666279429904, + 0.896133670584671, 0.5010405838519137, - 0.465176191231763, - 0.5483402988412704, + 0.46517619123176207, + 0.54834029884127, 0.24206145913796356, - 0.465176191231763, - 0.7681145747868604, + 0.46517619123176207, + 0.7681145747868608, 0.509476174342061, - 0.4856267428111158, - 0.46726152562920564, - 0.3000000000000002, - 0.3443744328488982 + 0.4856267428111155, + 0.4672615256292063, + 0.30000000000000004, + 0.3443744328488978 ], "n_samples_seen_": 240, "feature_names_in_": { "py/tuple": [ [ - "Descriptor_FingerprintSet_MorganFP_0", - "Descriptor_FingerprintSet_MorganFP_1", - "Descriptor_FingerprintSet_MorganFP_2", - "Descriptor_FingerprintSet_MorganFP_3", - "Descriptor_FingerprintSet_MorganFP_4", - "Descriptor_FingerprintSet_MorganFP_5", - "Descriptor_FingerprintSet_MorganFP_6", - "Descriptor_FingerprintSet_MorganFP_7", - "Descriptor_FingerprintSet_MorganFP_8", - "Descriptor_FingerprintSet_MorganFP_9", - "Descriptor_FingerprintSet_MorganFP_11", - "Descriptor_FingerprintSet_MorganFP_12", - "Descriptor_FingerprintSet_MorganFP_13", - "Descriptor_FingerprintSet_MorganFP_14", - "Descriptor_FingerprintSet_MorganFP_15", - "Descriptor_FingerprintSet_MorganFP_16", - "Descriptor_FingerprintSet_MorganFP_17", - "Descriptor_FingerprintSet_MorganFP_18", - "Descriptor_FingerprintSet_MorganFP_20", - "Descriptor_FingerprintSet_MorganFP_21", - "Descriptor_FingerprintSet_MorganFP_22", - "Descriptor_FingerprintSet_MorganFP_23", - "Descriptor_FingerprintSet_MorganFP_24", - "Descriptor_FingerprintSet_MorganFP_25", - "Descriptor_FingerprintSet_MorganFP_26", - "Descriptor_FingerprintSet_MorganFP_27", - "Descriptor_FingerprintSet_MorganFP_28", - "Descriptor_FingerprintSet_MorganFP_29", - "Descriptor_FingerprintSet_MorganFP_30", - "Descriptor_FingerprintSet_MorganFP_31", - "Descriptor_FingerprintSet_MorganFP_32", - "Descriptor_FingerprintSet_MorganFP_33", - "Descriptor_FingerprintSet_MorganFP_34", - "Descriptor_FingerprintSet_MorganFP_36", - "Descriptor_FingerprintSet_MorganFP_37", - "Descriptor_FingerprintSet_MorganFP_38", - "Descriptor_FingerprintSet_MorganFP_39", - "Descriptor_FingerprintSet_MorganFP_40", - "Descriptor_FingerprintSet_MorganFP_41", - "Descriptor_FingerprintSet_MorganFP_42", - "Descriptor_FingerprintSet_MorganFP_43", - "Descriptor_FingerprintSet_MorganFP_44", - "Descriptor_FingerprintSet_MorganFP_45", - "Descriptor_FingerprintSet_MorganFP_46", - "Descriptor_FingerprintSet_MorganFP_47", - "Descriptor_FingerprintSet_MorganFP_48", - "Descriptor_FingerprintSet_MorganFP_50", - "Descriptor_FingerprintSet_MorganFP_51", - "Descriptor_FingerprintSet_MorganFP_52", - "Descriptor_FingerprintSet_MorganFP_54", - "Descriptor_FingerprintSet_MorganFP_55", - "Descriptor_FingerprintSet_MorganFP_56", - "Descriptor_FingerprintSet_MorganFP_57", - "Descriptor_FingerprintSet_MorganFP_58", - "Descriptor_FingerprintSet_MorganFP_59", - "Descriptor_FingerprintSet_MorganFP_60", - "Descriptor_FingerprintSet_MorganFP_61", - "Descriptor_FingerprintSet_MorganFP_62", - "Descriptor_FingerprintSet_MorganFP_63", - "Descriptor_FingerprintSet_MorganFP_65", - "Descriptor_FingerprintSet_MorganFP_66", - "Descriptor_FingerprintSet_MorganFP_67", - "Descriptor_FingerprintSet_MorganFP_68", - "Descriptor_FingerprintSet_MorganFP_69", - "Descriptor_FingerprintSet_MorganFP_71", - "Descriptor_FingerprintSet_MorganFP_72", - "Descriptor_FingerprintSet_MorganFP_73", - "Descriptor_FingerprintSet_MorganFP_74", - "Descriptor_FingerprintSet_MorganFP_75", - "Descriptor_FingerprintSet_MorganFP_77", - "Descriptor_FingerprintSet_MorganFP_78", - "Descriptor_FingerprintSet_MorganFP_79", - "Descriptor_FingerprintSet_MorganFP_80", - "Descriptor_FingerprintSet_MorganFP_82", - "Descriptor_FingerprintSet_MorganFP_83", - "Descriptor_FingerprintSet_MorganFP_84", - "Descriptor_FingerprintSet_MorganFP_85", - "Descriptor_FingerprintSet_MorganFP_86", - "Descriptor_FingerprintSet_MorganFP_87", - "Descriptor_FingerprintSet_MorganFP_88", - "Descriptor_FingerprintSet_MorganFP_89", - "Descriptor_FingerprintSet_MorganFP_90", - "Descriptor_FingerprintSet_MorganFP_91", - "Descriptor_FingerprintSet_MorganFP_92", - "Descriptor_FingerprintSet_MorganFP_93", - "Descriptor_FingerprintSet_MorganFP_94", - "Descriptor_FingerprintSet_MorganFP_95", - "Descriptor_FingerprintSet_MorganFP_96", - "Descriptor_FingerprintSet_MorganFP_98", - "Descriptor_FingerprintSet_MorganFP_99", - "Descriptor_FingerprintSet_MorganFP_101", - "Descriptor_FingerprintSet_MorganFP_102", - "Descriptor_FingerprintSet_MorganFP_103", - "Descriptor_FingerprintSet_MorganFP_104", - "Descriptor_FingerprintSet_MorganFP_105", - "Descriptor_FingerprintSet_MorganFP_106", - "Descriptor_FingerprintSet_MorganFP_108", - "Descriptor_FingerprintSet_MorganFP_109", - "Descriptor_FingerprintSet_MorganFP_110", - "Descriptor_FingerprintSet_MorganFP_111", - "Descriptor_FingerprintSet_MorganFP_112", - "Descriptor_FingerprintSet_MorganFP_113", - "Descriptor_FingerprintSet_MorganFP_114", - "Descriptor_FingerprintSet_MorganFP_115", - "Descriptor_FingerprintSet_MorganFP_117", - "Descriptor_FingerprintSet_MorganFP_118", - "Descriptor_FingerprintSet_MorganFP_119", - "Descriptor_FingerprintSet_MorganFP_120", - "Descriptor_FingerprintSet_MorganFP_121", - "Descriptor_FingerprintSet_MorganFP_122", - "Descriptor_FingerprintSet_MorganFP_123", - "Descriptor_FingerprintSet_MorganFP_124", - "Descriptor_FingerprintSet_MorganFP_125", - "Descriptor_FingerprintSet_MorganFP_126", - "Descriptor_FingerprintSet_MorganFP_127", - "Descriptor_FingerprintSet_MorganFP_128", - "Descriptor_FingerprintSet_MorganFP_129", - "Descriptor_FingerprintSet_MorganFP_131", - "Descriptor_FingerprintSet_MorganFP_132", - "Descriptor_FingerprintSet_MorganFP_133", - "Descriptor_FingerprintSet_MorganFP_134", - "Descriptor_FingerprintSet_MorganFP_135", - "Descriptor_FingerprintSet_MorganFP_136", - "Descriptor_FingerprintSet_MorganFP_137", - "Descriptor_FingerprintSet_MorganFP_138", - "Descriptor_FingerprintSet_MorganFP_139", - "Descriptor_FingerprintSet_MorganFP_140", - "Descriptor_FingerprintSet_MorganFP_141", - "Descriptor_FingerprintSet_MorganFP_142", - "Descriptor_FingerprintSet_MorganFP_144", - "Descriptor_FingerprintSet_MorganFP_145", - "Descriptor_FingerprintSet_MorganFP_146", - "Descriptor_FingerprintSet_MorganFP_147", - "Descriptor_FingerprintSet_MorganFP_148", - "Descriptor_FingerprintSet_MorganFP_149", - "Descriptor_FingerprintSet_MorganFP_150", - "Descriptor_FingerprintSet_MorganFP_151", - "Descriptor_FingerprintSet_MorganFP_152", - "Descriptor_FingerprintSet_MorganFP_153", - "Descriptor_FingerprintSet_MorganFP_154", - "Descriptor_FingerprintSet_MorganFP_155", - "Descriptor_FingerprintSet_MorganFP_156", - "Descriptor_FingerprintSet_MorganFP_157", - "Descriptor_FingerprintSet_MorganFP_158", - "Descriptor_FingerprintSet_MorganFP_160", - "Descriptor_FingerprintSet_MorganFP_161", - "Descriptor_FingerprintSet_MorganFP_162", - "Descriptor_FingerprintSet_MorganFP_163", - "Descriptor_FingerprintSet_MorganFP_164", - "Descriptor_FingerprintSet_MorganFP_165", - "Descriptor_FingerprintSet_MorganFP_166", - "Descriptor_FingerprintSet_MorganFP_167", - "Descriptor_FingerprintSet_MorganFP_168", - "Descriptor_FingerprintSet_MorganFP_169", - "Descriptor_FingerprintSet_MorganFP_170", - "Descriptor_FingerprintSet_MorganFP_172", - "Descriptor_FingerprintSet_MorganFP_173", - "Descriptor_FingerprintSet_MorganFP_174", - "Descriptor_FingerprintSet_MorganFP_175", - "Descriptor_FingerprintSet_MorganFP_177", - "Descriptor_FingerprintSet_MorganFP_178", - "Descriptor_FingerprintSet_MorganFP_179", - "Descriptor_FingerprintSet_MorganFP_182", - "Descriptor_FingerprintSet_MorganFP_183", - "Descriptor_FingerprintSet_MorganFP_184", - "Descriptor_FingerprintSet_MorganFP_185", - "Descriptor_FingerprintSet_MorganFP_186", - "Descriptor_FingerprintSet_MorganFP_187", - "Descriptor_FingerprintSet_MorganFP_188", - "Descriptor_FingerprintSet_MorganFP_189", - "Descriptor_FingerprintSet_MorganFP_191", - "Descriptor_FingerprintSet_MorganFP_192", - "Descriptor_FingerprintSet_MorganFP_193", - "Descriptor_FingerprintSet_MorganFP_194", - "Descriptor_FingerprintSet_MorganFP_195", - "Descriptor_FingerprintSet_MorganFP_196", - "Descriptor_FingerprintSet_MorganFP_197", - "Descriptor_FingerprintSet_MorganFP_198", - "Descriptor_FingerprintSet_MorganFP_199", - "Descriptor_FingerprintSet_MorganFP_200", - "Descriptor_FingerprintSet_MorganFP_201", - "Descriptor_FingerprintSet_MorganFP_202", - "Descriptor_FingerprintSet_MorganFP_203", - "Descriptor_FingerprintSet_MorganFP_204", - "Descriptor_FingerprintSet_MorganFP_205", - "Descriptor_FingerprintSet_MorganFP_206", - "Descriptor_FingerprintSet_MorganFP_207", - "Descriptor_FingerprintSet_MorganFP_208", - "Descriptor_FingerprintSet_MorganFP_209", - "Descriptor_FingerprintSet_MorganFP_210", - "Descriptor_FingerprintSet_MorganFP_211", - "Descriptor_FingerprintSet_MorganFP_212", - "Descriptor_FingerprintSet_MorganFP_213", - "Descriptor_FingerprintSet_MorganFP_214", - "Descriptor_FingerprintSet_MorganFP_215", - "Descriptor_FingerprintSet_MorganFP_216", - "Descriptor_FingerprintSet_MorganFP_217", - "Descriptor_FingerprintSet_MorganFP_218", - "Descriptor_FingerprintSet_MorganFP_219", - "Descriptor_FingerprintSet_MorganFP_221", - "Descriptor_FingerprintSet_MorganFP_226", - "Descriptor_FingerprintSet_MorganFP_228", - "Descriptor_FingerprintSet_MorganFP_229", - "Descriptor_FingerprintSet_MorganFP_230", - "Descriptor_FingerprintSet_MorganFP_231", - "Descriptor_FingerprintSet_MorganFP_232", - "Descriptor_FingerprintSet_MorganFP_233", - "Descriptor_FingerprintSet_MorganFP_234", - "Descriptor_FingerprintSet_MorganFP_235", - "Descriptor_FingerprintSet_MorganFP_237", - "Descriptor_FingerprintSet_MorganFP_239", - "Descriptor_FingerprintSet_MorganFP_241", - "Descriptor_FingerprintSet_MorganFP_242", - "Descriptor_FingerprintSet_MorganFP_243", - "Descriptor_FingerprintSet_MorganFP_244", - "Descriptor_FingerprintSet_MorganFP_245", - "Descriptor_FingerprintSet_MorganFP_246", - "Descriptor_FingerprintSet_MorganFP_247", - "Descriptor_FingerprintSet_MorganFP_248", - "Descriptor_FingerprintSet_MorganFP_249", - "Descriptor_FingerprintSet_MorganFP_250", - "Descriptor_FingerprintSet_MorganFP_251", - "Descriptor_FingerprintSet_MorganFP_252", - "Descriptor_FingerprintSet_MorganFP_255", - "Descriptor_RDkit_BCUT2D_CHGLO", - "Descriptor_RDkit_EState_VSA1", - "Descriptor_RDkit_EState_VSA2", - "Descriptor_RDkit_EState_VSA7", - "Descriptor_RDkit_FractionCSP3", - "Descriptor_RDkit_MaxAbsEStateIndex", - "Descriptor_RDkit_MaxEStateIndex", - "Descriptor_RDkit_MinPartialCharge", - "Descriptor_RDkit_NumAromaticRings", - "Descriptor_RDkit_NumSaturatedHeterocycles", - "Descriptor_RDkit_PEOE_VSA11", - "Descriptor_RDkit_PEOE_VSA4", - "Descriptor_RDkit_SlogP_VSA12", - "Descriptor_RDkit_SlogP_VSA4", - "Descriptor_RDkit_fr_Al_OH", - "Descriptor_RDkit_fr_Al_OH_noTert", - "Descriptor_RDkit_fr_ArN", - "Descriptor_RDkit_fr_Ar_NH", - "Descriptor_RDkit_fr_NH2", - "Descriptor_RDkit_fr_Ndealkylation1", - "Descriptor_RDkit_fr_Nhpyrrole", - "Descriptor_RDkit_fr_aryl_methyl", - "Descriptor_RDkit_fr_furan", - "Descriptor_RDkit_fr_imidazole", - "Descriptor_RDkit_fr_para_hydroxylation", - "Descriptor_RDkit_fr_piperzine", - "Descriptor_RDkit_fr_thiazole" + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_77", + "MorganFP_78", + "MorganFP_79", + "MorganFP_80", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_98", + "MorganFP_99", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_221", + "MorganFP_226", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_237", + "MorganFP_239", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_255", + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA2", + "EState_VSA7", + "FractionCSP3", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "MinPartialCharge", + "NumAromaticRings", + "NumSaturatedHeterocycles", + "PEOE_VSA11", + "PEOE_VSA4", + "SlogP_VSA12", + "SlogP_VSA4", + "fr_Al_OH", + "fr_Al_OH_noTert", + "fr_ArN", + "fr_Ar_NH", + "fr_NH2", + "fr_Ndealkylation1", + "fr_Nhpyrrole", + "fr_aryl_methyl", + "fr_furan", + "fr_imidazole", + "fr_para_hydroxylation", + "fr_piperzine", + "fr_thiazole" ] ] }, "versions": { "py/tuple": [ "sklearn", - "1.2.1" + "1.4.0" ] } } } }, "earlyStopping": null, - "parameters": null, - "alg": "sklearn.naive_bayes.GaussianNB", + "parameters": { + "random_state": 107420369 + }, + "alg": "xgboost.sklearn.XGBClassifier", "randomState": 107420369, "estimator": "./ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369.json" } diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369_replica.json b/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369_replica.json index b1697cad..f094cf9b 100644 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369_replica.json +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369_replica.json @@ -10,18 +10,10 @@ }, "descriptors": [ { - "py/object": "qsprpred.data.descriptors.sets.FingerprintSet", + "py/object": "qsprpred.data.descriptors.fingerprints.MorganFP", "py/state": { - "_isFP": true, - "fingerprintType": "MorganFP", - "_args": { - "py/tuple": [] - }, - "_kwargs": { - "radius": 2, - "nBits": 256 - }, - "_keepindices": [ + "idProp": "QSPRID", + "_usedBits": [ 0, 1, 2, @@ -279,270 +271,273 @@ 254, 255 ], + "radius": 2, + "nBits": 256, + "kwargs": {}, "descriptors": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "35", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "96", - "97", - "98", - "99", - "100", - "101", - "102", - "103", - "104", - "105", - "106", - "107", - "108", - "109", - "110", - "111", - "112", - "113", - "114", - "115", - "116", - "117", - "118", - "119", - "120", - "121", - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "143", - "144", - "145", - "146", - "147", - "148", - "149", - "150", - "151", - "152", - "153", - "154", - "155", - "156", - "157", - "158", - "159", - "160", - "161", - "162", - "163", - "164", - "165", - "166", - "167", - "168", - "169", - "170", - "171", - "172", - "173", - "174", - "175", - "176", - "177", - "178", - "179", - "180", - "181", - "182", - "183", - "184", - "185", - "186", - "187", - "188", - "189", - "190", - "191", - "192", - "193", - "194", - "195", - "196", - "197", - "198", - "199", - "200", - "201", - "202", - "203", - "204", - "205", - "206", - "207", - "208", - "209", - "210", - "211", - "212", - "213", - "214", - "215", - "216", - "217", - "218", - "219", - "220", - "221", - "222", - "223", - "224", - "225", - "226", - "227", - "228", - "229", - "230", - "231", - "232", - "233", - "234", - "235", - "236", - "237", - "238", - "239", - "240", - "241", - "242", - "243", - "244", - "245", - "246", - "247", - "248", - "249", - "250", - "251", - "252", - "253", - "254", - "255" + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_10", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_19", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_49", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_64", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_70", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_76", + "MorganFP_77", + "MorganFP_78", + "MorganFP_79", + "MorganFP_80", + "MorganFP_81", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_97", + "MorganFP_98", + "MorganFP_99", + "MorganFP_100", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_107", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_116", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_130", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_143", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_159", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_171", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_176", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_180", + "MorganFP_181", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_190", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_220", + "MorganFP_221", + "MorganFP_222", + "MorganFP_223", + "MorganFP_224", + "MorganFP_225", + "MorganFP_226", + "MorganFP_227", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_236", + "MorganFP_237", + "MorganFP_238", + "MorganFP_239", + "MorganFP_240", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_253", + "MorganFP_254", + "MorganFP_255" ] } }, { "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", "py/state": { - "_isFP": false, + "idProp": "QSPRID", "_descriptors": [ "AvgIpc", "BCUT2D_CHGHI", @@ -992,8 +987,8 @@ 6.5 ], "_nClasses": 2, - "transformer": null, - "imputer": null + "imputer": null, + "transformer": null } } ], @@ -1028,7 +1023,7 @@ "with_mean": true, "with_std": true, "copy": true, - "_sklearn_version": "1.2.1" + "_sklearn_version": "1.4.0" } }, "feature_fill_value": 0.0, @@ -1037,7 +1032,7 @@ "optimizer": null, "assessors": [ { - "py/object": "qsprpred.models.assessment_methods.CrossValAssessor", + "py/object": "qsprpred.models.assessment.methods.CrossValAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1046,12 +1041,18 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._ThresholdScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._ranking.roc_auc_score" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": { + "py/tuple": [ + "decision_function", + "predict_proba" + ] + } }, "name": "roc_auc_score" }, @@ -1060,7 +1061,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.CrossValAssessor", + "py/object": "qsprpred.models.assessment.methods.CrossValAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1069,12 +1070,13 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._classification.matthews_corrcoef" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": "predict" }, "name": "matthews_corrcoef" }, @@ -1083,7 +1085,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.TestSetAssessor", + "py/object": "qsprpred.models.assessment.methods.TestSetAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1092,12 +1094,18 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._ThresholdScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._ranking.roc_auc_score" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": { + "py/tuple": [ + "decision_function", + "predict_proba" + ] + } }, "name": "roc_auc_score" }, @@ -1105,7 +1113,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.TestSetAssessor", + "py/object": "qsprpred.models.assessment.methods.TestSetAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1114,12 +1122,13 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._classification.matthews_corrcoef" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": "predict" }, "name": "matthews_corrcoef" }, @@ -1128,7 +1137,7 @@ } ], "randomSeed": 107420369, - "model": "/home/sichom/projects/QSPRpred/testing/test_consistency/data/models/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369_meta.json", + "model": "/zfsdata/data/helle/01_MainProjects/03_QSPRpred/Scripts/QSPRpred/testing/test_consistency/data/models/ConsistencyChecksCLS_107420369/ConsistencyChecksCLS_107420369_meta.json", "ds": null, "results": null } diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943.cv.tsv b/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943.cv.tsv new file mode 100644 index 00000000..f89899ea --- /dev/null +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943.cv.tsv @@ -0,0 +1,241 @@ +QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction Fold +ConsistencyChecks_215 False False 0.0 +ConsistencyChecks_133 True True 0.0 +ConsistencyChecks_125 False False 0.0 +ConsistencyChecks_123 True True 0.0 +ConsistencyChecks_154 False False 0.0 +ConsistencyChecks_127 True True 0.0 +ConsistencyChecks_069 False False 0.0 +ConsistencyChecks_194 True False 0.0 +ConsistencyChecks_076 True True 0.0 +ConsistencyChecks_251 True True 0.0 +ConsistencyChecks_181 False False 0.0 +ConsistencyChecks_027 True False 0.0 +ConsistencyChecks_184 True True 0.0 +ConsistencyChecks_275 False False 0.0 +ConsistencyChecks_297 True True 0.0 +ConsistencyChecks_020 True True 0.0 +ConsistencyChecks_018 True False 0.0 +ConsistencyChecks_032 False False 0.0 +ConsistencyChecks_013 False True 0.0 +ConsistencyChecks_132 True False 0.0 +ConsistencyChecks_148 False False 0.0 +ConsistencyChecks_218 False True 0.0 +ConsistencyChecks_179 True False 0.0 +ConsistencyChecks_089 True True 0.0 +ConsistencyChecks_131 False False 0.0 +ConsistencyChecks_191 True True 0.0 +ConsistencyChecks_270 True False 0.0 +ConsistencyChecks_078 True True 0.0 +ConsistencyChecks_139 False False 0.0 +ConsistencyChecks_156 False False 0.0 +ConsistencyChecks_012 True True 0.0 +ConsistencyChecks_000 False False 0.0 +ConsistencyChecks_029 True False 0.0 +ConsistencyChecks_183 False False 0.0 +ConsistencyChecks_257 True True 0.0 +ConsistencyChecks_045 True True 0.0 +ConsistencyChecks_188 True False 0.0 +ConsistencyChecks_147 True True 0.0 +ConsistencyChecks_173 True True 0.0 +ConsistencyChecks_037 True True 0.0 +ConsistencyChecks_198 True True 0.0 +ConsistencyChecks_192 False True 0.0 +ConsistencyChecks_219 False False 0.0 +ConsistencyChecks_284 True True 0.0 +ConsistencyChecks_011 True True 0.0 +ConsistencyChecks_099 True True 0.0 +ConsistencyChecks_160 False False 0.0 +ConsistencyChecks_197 True True 0.0 +ConsistencyChecks_241 True True 1.0 +ConsistencyChecks_265 True False 1.0 +ConsistencyChecks_213 True False 1.0 +ConsistencyChecks_267 True True 1.0 +ConsistencyChecks_200 True True 1.0 +ConsistencyChecks_021 False True 1.0 +ConsistencyChecks_100 True True 1.0 +ConsistencyChecks_252 False False 1.0 +ConsistencyChecks_046 True True 1.0 +ConsistencyChecks_263 True True 1.0 +ConsistencyChecks_044 False False 1.0 +ConsistencyChecks_161 True False 1.0 +ConsistencyChecks_189 False True 1.0 +ConsistencyChecks_112 True True 1.0 +ConsistencyChecks_162 True False 1.0 +ConsistencyChecks_279 True True 1.0 +ConsistencyChecks_172 False True 1.0 +ConsistencyChecks_094 True True 1.0 +ConsistencyChecks_144 True True 1.0 +ConsistencyChecks_065 True True 1.0 +ConsistencyChecks_115 False True 1.0 +ConsistencyChecks_142 True True 1.0 +ConsistencyChecks_153 False True 1.0 +ConsistencyChecks_247 True False 1.0 +ConsistencyChecks_253 True True 1.0 +ConsistencyChecks_104 True True 1.0 +ConsistencyChecks_066 False False 1.0 +ConsistencyChecks_290 True True 1.0 +ConsistencyChecks_105 False True 1.0 +ConsistencyChecks_261 False False 1.0 +ConsistencyChecks_190 True True 1.0 +ConsistencyChecks_201 True True 1.0 +ConsistencyChecks_033 False False 1.0 +ConsistencyChecks_182 False True 1.0 +ConsistencyChecks_223 False False 1.0 +ConsistencyChecks_070 True True 1.0 +ConsistencyChecks_299 True True 1.0 +ConsistencyChecks_062 True True 1.0 +ConsistencyChecks_262 False False 1.0 +ConsistencyChecks_256 True False 1.0 +ConsistencyChecks_063 False False 1.0 +ConsistencyChecks_134 True False 1.0 +ConsistencyChecks_090 False False 1.0 +ConsistencyChecks_180 False False 1.0 +ConsistencyChecks_145 True True 1.0 +ConsistencyChecks_075 False True 1.0 +ConsistencyChecks_058 True True 1.0 +ConsistencyChecks_073 True True 1.0 +ConsistencyChecks_093 True False 2.0 +ConsistencyChecks_258 False False 2.0 +ConsistencyChecks_098 False True 2.0 +ConsistencyChecks_227 True True 2.0 +ConsistencyChecks_106 True True 2.0 +ConsistencyChecks_025 False True 2.0 +ConsistencyChecks_137 True True 2.0 +ConsistencyChecks_084 False False 2.0 +ConsistencyChecks_210 False True 2.0 +ConsistencyChecks_175 True True 2.0 +ConsistencyChecks_298 False True 2.0 +ConsistencyChecks_239 True False 2.0 +ConsistencyChecks_040 True True 2.0 +ConsistencyChecks_250 True True 2.0 +ConsistencyChecks_165 True True 2.0 +ConsistencyChecks_114 False True 2.0 +ConsistencyChecks_120 True False 2.0 +ConsistencyChecks_288 True True 2.0 +ConsistencyChecks_072 False True 2.0 +ConsistencyChecks_246 True False 2.0 +ConsistencyChecks_006 True False 2.0 +ConsistencyChecks_024 True True 2.0 +ConsistencyChecks_022 False False 2.0 +ConsistencyChecks_291 False True 2.0 +ConsistencyChecks_259 False True 2.0 +ConsistencyChecks_059 True True 2.0 +ConsistencyChecks_122 True True 2.0 +ConsistencyChecks_118 True True 2.0 +ConsistencyChecks_028 True True 2.0 +ConsistencyChecks_071 False True 2.0 +ConsistencyChecks_280 False False 2.0 +ConsistencyChecks_009 True True 2.0 +ConsistencyChecks_126 True True 2.0 +ConsistencyChecks_208 True True 2.0 +ConsistencyChecks_285 False False 2.0 +ConsistencyChecks_129 False False 2.0 +ConsistencyChecks_167 True True 2.0 +ConsistencyChecks_102 True True 2.0 +ConsistencyChecks_119 True True 2.0 +ConsistencyChecks_281 True True 2.0 +ConsistencyChecks_229 True True 2.0 +ConsistencyChecks_111 True True 2.0 +ConsistencyChecks_296 True True 2.0 +ConsistencyChecks_242 True True 2.0 +ConsistencyChecks_272 False False 2.0 +ConsistencyChecks_085 False True 2.0 +ConsistencyChecks_159 False False 2.0 +ConsistencyChecks_083 False True 2.0 +ConsistencyChecks_224 True True 3.0 +ConsistencyChecks_030 True True 3.0 +ConsistencyChecks_277 True False 3.0 +ConsistencyChecks_081 True True 3.0 +ConsistencyChecks_041 False False 3.0 +ConsistencyChecks_248 True True 3.0 +ConsistencyChecks_195 True True 3.0 +ConsistencyChecks_107 False False 3.0 +ConsistencyChecks_017 True True 3.0 +ConsistencyChecks_266 True True 3.0 +ConsistencyChecks_278 False False 3.0 +ConsistencyChecks_067 False False 3.0 +ConsistencyChecks_289 True True 3.0 +ConsistencyChecks_233 True True 3.0 +ConsistencyChecks_064 False False 3.0 +ConsistencyChecks_232 False True 3.0 +ConsistencyChecks_008 True True 3.0 +ConsistencyChecks_061 False False 3.0 +ConsistencyChecks_082 False True 3.0 +ConsistencyChecks_202 False False 3.0 +ConsistencyChecks_080 False False 3.0 +ConsistencyChecks_077 True False 3.0 +ConsistencyChecks_274 True True 3.0 +ConsistencyChecks_088 False False 3.0 +ConsistencyChecks_186 False True 3.0 +ConsistencyChecks_187 False False 3.0 +ConsistencyChecks_140 False False 3.0 +ConsistencyChecks_244 True True 3.0 +ConsistencyChecks_255 True True 3.0 +ConsistencyChecks_276 False True 3.0 +ConsistencyChecks_196 True True 3.0 +ConsistencyChecks_216 True True 3.0 +ConsistencyChecks_249 False True 3.0 +ConsistencyChecks_016 False False 3.0 +ConsistencyChecks_047 False False 3.0 +ConsistencyChecks_205 True True 3.0 +ConsistencyChecks_185 True True 3.0 +ConsistencyChecks_087 False False 3.0 +ConsistencyChecks_170 True True 3.0 +ConsistencyChecks_221 False False 3.0 +ConsistencyChecks_056 False False 3.0 +ConsistencyChecks_287 True True 3.0 +ConsistencyChecks_236 True True 3.0 +ConsistencyChecks_207 True True 3.0 +ConsistencyChecks_023 False False 3.0 +ConsistencyChecks_097 True False 3.0 +ConsistencyChecks_171 True True 3.0 +ConsistencyChecks_019 True True 3.0 +ConsistencyChecks_292 True True 4.0 +ConsistencyChecks_206 False False 4.0 +ConsistencyChecks_225 True False 4.0 +ConsistencyChecks_294 True True 4.0 +ConsistencyChecks_042 False True 4.0 +ConsistencyChecks_108 True False 4.0 +ConsistencyChecks_254 False True 4.0 +ConsistencyChecks_269 True True 4.0 +ConsistencyChecks_283 True True 4.0 +ConsistencyChecks_217 True False 4.0 +ConsistencyChecks_096 True False 4.0 +ConsistencyChecks_007 False False 4.0 +ConsistencyChecks_116 True True 4.0 +ConsistencyChecks_043 True False 4.0 +ConsistencyChecks_002 True True 4.0 +ConsistencyChecks_060 False False 4.0 +ConsistencyChecks_117 False True 4.0 +ConsistencyChecks_150 True True 4.0 +ConsistencyChecks_228 True True 4.0 +ConsistencyChecks_209 True True 4.0 +ConsistencyChecks_295 True False 4.0 +ConsistencyChecks_235 False False 4.0 +ConsistencyChecks_193 True False 4.0 +ConsistencyChecks_212 True True 4.0 +ConsistencyChecks_271 False True 4.0 +ConsistencyChecks_143 False True 4.0 +ConsistencyChecks_166 True True 4.0 +ConsistencyChecks_231 True False 4.0 +ConsistencyChecks_034 True False 4.0 +ConsistencyChecks_049 True True 4.0 +ConsistencyChecks_051 False True 4.0 +ConsistencyChecks_036 True True 4.0 +ConsistencyChecks_204 False False 4.0 +ConsistencyChecks_031 True False 4.0 +ConsistencyChecks_293 True True 4.0 +ConsistencyChecks_038 True False 4.0 +ConsistencyChecks_169 True True 4.0 +ConsistencyChecks_091 False False 4.0 +ConsistencyChecks_092 True False 4.0 +ConsistencyChecks_245 False False 4.0 +ConsistencyChecks_055 True False 4.0 +ConsistencyChecks_074 True True 4.0 +ConsistencyChecks_273 True False 4.0 +ConsistencyChecks_177 True False 4.0 +ConsistencyChecks_158 False False 4.0 +ConsistencyChecks_035 True False 4.0 +ConsistencyChecks_141 True True 4.0 +ConsistencyChecks_048 True True 4.0 diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943.ind.tsv b/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943.ind.tsv new file mode 100644 index 00000000..6e5e849a --- /dev/null +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943.ind.tsv @@ -0,0 +1,61 @@ +QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction +ConsistencyChecks_168 False False +ConsistencyChecks_151 True False +ConsistencyChecks_226 True False +ConsistencyChecks_101 True True +ConsistencyChecks_237 True True +ConsistencyChecks_214 False False +ConsistencyChecks_176 True False +ConsistencyChecks_124 True False +ConsistencyChecks_260 False False +ConsistencyChecks_203 False True +ConsistencyChecks_130 True True +ConsistencyChecks_238 False True +ConsistencyChecks_268 False False +ConsistencyChecks_149 False False +ConsistencyChecks_199 True False +ConsistencyChecks_113 True True +ConsistencyChecks_110 True False +ConsistencyChecks_152 True True +ConsistencyChecks_164 True True +ConsistencyChecks_050 False True +ConsistencyChecks_103 False True +ConsistencyChecks_005 True True +ConsistencyChecks_068 True True +ConsistencyChecks_243 False False +ConsistencyChecks_095 True True +ConsistencyChecks_234 False False +ConsistencyChecks_155 False False +ConsistencyChecks_220 False False +ConsistencyChecks_138 True True +ConsistencyChecks_086 False True +ConsistencyChecks_039 True False +ConsistencyChecks_286 True True +ConsistencyChecks_135 False False +ConsistencyChecks_211 True True +ConsistencyChecks_052 True True +ConsistencyChecks_230 True True +ConsistencyChecks_014 False False +ConsistencyChecks_003 True False +ConsistencyChecks_054 True True +ConsistencyChecks_121 False False +ConsistencyChecks_178 True True +ConsistencyChecks_128 True False +ConsistencyChecks_001 True False +ConsistencyChecks_222 True True +ConsistencyChecks_015 True True +ConsistencyChecks_079 False False +ConsistencyChecks_136 False False +ConsistencyChecks_157 True True +ConsistencyChecks_146 False False +ConsistencyChecks_053 False True +ConsistencyChecks_174 True False +ConsistencyChecks_264 True True +ConsistencyChecks_240 False False +ConsistencyChecks_163 True True +ConsistencyChecks_010 True False +ConsistencyChecks_109 False True +ConsistencyChecks_026 False False +ConsistencyChecks_282 True True +ConsistencyChecks_004 True True +ConsistencyChecks_057 True True diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943.json b/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943.json new file mode 100644 index 00000000..f3677631 --- /dev/null +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943.json @@ -0,0 +1 @@ +{"unfitted": true, "meta": ["sklearn.naive_bayes", "GaussianNB"], "params": {"priors": null, "var_smoothing": 1e-09}, "versions": ["sklearn", "1.4.0"]} \ No newline at end of file diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943_meta.json b/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943_meta.json new file mode 100644 index 00000000..e9fc7c54 --- /dev/null +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943_meta.json @@ -0,0 +1,1586 @@ +{ + "py/object": "qsprpred.models.scikit_learn.SklearnModel", + "py/state": { + "name": "ConsistencyChecksCLS_1181241943", + "baseDir": ".", + "targetProperties": [ + { + "py/object": "qsprpred.tasks.TargetProperty", + "py/state": { + "name": "pchembl_value_Mean", + "task": { + "py/reduce": [ + { + "py/type": "qsprpred.tasks.TargetTasks" + }, + { + "py/tuple": [ + "SINGLECLASS" + ] + } + ] + }, + "_th": [ + 6.5 + ], + "_nClasses": 2, + "imputer": null, + "transformer": null + } + } + ], + "nTargets": 1, + "featureCalculators": [ + { + "py/object": "qsprpred.data.descriptors.fingerprints.MorganFP", + "py/state": { + "idProp": "QSPRID", + "_usedBits": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 65, + 66, + 67, + 68, + 69, + 71, + 73, + 74, + 75, + 77, + 79, + 80, + 82, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 98, + 99, + 101, + 102, + 103, + 104, + 105, + 106, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 172, + 173, + 174, + 175, + 177, + 178, + 179, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 221, + 226, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 237, + 239, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 254, + 255 + ], + "radius": 2, + "nBits": 256, + "kwargs": {}, + "descriptors": [ + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_71", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_77", + "MorganFP_79", + "MorganFP_80", + "MorganFP_82", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_98", + "MorganFP_99", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_221", + "MorganFP_226", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_237", + "MorganFP_239", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_254", + "MorganFP_255" + ] + } + }, + { + "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", + "py/state": { + "idProp": "QSPRID", + "_descriptors": [ + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA2", + "EState_VSA7", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "NumAliphaticHeterocycles", + "NumSaturatedHeterocycles", + "PEOE_VSA11", + "PEOE_VSA4", + "PEOE_VSA5", + "SlogP_VSA12", + "fr_ArN", + "fr_Ar_NH", + "fr_NH2", + "fr_Ndealkylation1", + "fr_Nhpyrrole", + "fr_aryl_methyl", + "fr_ether", + "fr_furan", + "fr_halogen", + "fr_imidazole", + "fr_piperzine", + "fr_thiazole" + ], + "include3D": false, + "descriptors": [ + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA2", + "EState_VSA7", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "NumAliphaticHeterocycles", + "NumSaturatedHeterocycles", + "PEOE_VSA11", + "PEOE_VSA4", + "PEOE_VSA5", + "SlogP_VSA12", + "fr_ArN", + "fr_Ar_NH", + "fr_NH2", + "fr_Ndealkylation1", + "fr_Nhpyrrole", + "fr_aryl_methyl", + "fr_ether", + "fr_furan", + "fr_halogen", + "fr_imidazole", + "fr_piperzine", + "fr_thiazole" + ] + } + } + ], + "featureStandardizer": { + "py/object": "qsprpred.data.processing.feature_standardizers.SKLearnStandardizer", + "py/state": { + "scaler": { + "meta": "standard-scaler", + "n_features_in_": 248, + "params": { + "copy": true, + "with_mean": true, + "with_std": true + }, + "var_": [ + 0.13039930555555557, + 0.11859375000000003, + 0.0658159722222222, + 0.18956597222222224, + 0.069375, + 0.08326388888888889, + 0.051232638888888876, + 0.234375, + 0.08326388888888889, + 0.109375, + 0.1332638888888889, + 0.05859375, + 0.16972222222222222, + 0.10305555555555553, + 0.09331597222222224, + 0.11555555555555556, + 0.05859375, + 0.06222222222222223, + 0.1697222222222222, + 0.09331597222222224, + 0.1697222222222222, + 0.1788888888888889, + 0.15493055555555557, + 0.06937499999999999, + 0.19748263888888892, + 0.12456597222222225, + 0.09000000000000001, + 0.09984375000000002, + 0.05859375, + 0.09331597222222224, + 0.06222222222222225, + 0.1853993055555555, + 0.16734374999999999, + 0.05493055555555555, + 0.20999999999999996, + 0.11555555555555556, + 0.07984375, + 0.22623263888888884, + 0.13609374999999999, + 0.15234375, + 0.07289930555555557, + 0.20659722222222227, + 0.12456597222222225, + 0.14706597222222217, + 0.25, + 0.24373263888888885, + 0.24993055555555546, + 0.09331597222222222, + 0.14706597222222217, + 0.21484375, + 0.05123263888888887, + 0.08664930555555556, + 0.051232638888888876, + 0.22623263888888884, + 0.14164930555555552, + 0.2287326388888888, + 0.1624826388888889, + 0.22222222222222227, + 0.1788888888888889, + 0.21326388888888886, + 0.06937499999999999, + 0.1832638888888889, + 0.234375, + 0.12749999999999997, + 0.1697222222222222, + 0.1832638888888889, + 0.16734374999999996, + 0.1574826388888889, + 0.14164930555555552, + 0.12456597222222225, + 0.23914930555555552, + 0.1624826388888889, + 0.16000000000000003, + 0.05493055555555556, + 0.13609374999999999, + 0.24234374999999997, + 0.06222222222222224, + 0.09, + 0.09331597222222222, + 0.15493055555555557, + 0.24993055555555543, + 0.2030555555555555, + 0.08664930555555557, + 0.05859375, + 0.07638888888888887, + 0.19937500000000002, + 0.23539930555555563, + 0.06222222222222224, + 0.21164930555555556, + 0.09000000000000001, + 0.14164930555555552, + 0.13039930555555557, + 0.19748263888888892, + 0.24826388888888892, + 0.06222222222222222, + 0.08326388888888887, + 0.05859375, + 0.09659722222222218, + 0.17206597222222222, + 0.14972222222222217, + 0.23331597222222225, + 0.09659722222222221, + 0.0965972222222222, + 0.24956597222222227, + 0.13609374999999999, + 0.12749999999999997, + 0.24373263888888888, + 0.2299305555555555, + 0.05859375, + 0.19937500000000002, + 0.16972222222222216, + 0.24937499999999999, + 0.10623263888888886, + 0.07984375, + 0.23826388888888894, + 0.19748263888888892, + 0.10623263888888887, + 0.1697222222222222, + 0.07289930555555557, + 0.12456597222222225, + 0.062222222222222213, + 0.24993055555555543, + 0.13039930555555557, + 0.21937499999999993, + 0.13609374999999999, + 0.24000000000000005, + 0.07638888888888888, + 0.14164930555555552, + 0.23826388888888891, + 0.109375, + 0.14706597222222217, + 0.24826388888888892, + 0.07984375000000002, + 0.05859375, + 0.0658159722222222, + 0.1124826388888889, + 0.05493055555555556, + 0.13609374999999999, + 0.05859375, + 0.12159722222222223, + 0.21484375, + 0.15234375, + 0.24706597222222218, + 0.21484375, + 0.234375, + 0.22623263888888884, + 0.1875, + 0.22359375, + 0.14972222222222217, + 0.06937499999999999, + 0.17206597222222222, + 0.19555555555555557, + 0.24984375000000003, + 0.0658159722222222, + 0.24750000000000008, + 0.11248263888888889, + 0.08664930555555557, + 0.06581597222222221, + 0.1697222222222222, + 0.19159722222222222, + 0.18109375, + 0.07289930555555557, + 0.23222222222222222, + 0.09, + 0.09000000000000001, + 0.09984375000000001, + 0.14972222222222217, + 0.2333159722222222, + 0.10623263888888887, + 0.13326388888888893, + 0.1124826388888889, + 0.07289930555555557, + 0.13609374999999999, + 0.05123263888888886, + 0.21164930555555556, + 0.1470659722222222, + 0.1875, + 0.08326388888888889, + 0.13609374999999999, + 0.109375, + 0.16248263888888895, + 0.2275, + 0.19748263888888892, + 0.0658159722222222, + 0.16000000000000006, + 0.15748263888888892, + 0.09984375000000001, + 0.24234374999999997, + 0.1332638888888889, + 0.18539930555555553, + 0.14164930555555552, + 0.17206597222222222, + 0.05859375, + 0.069375, + 0.109375, + 0.07289930555555557, + 0.23222222222222222, + 0.07289930555555557, + 0.1697222222222222, + 0.09984375000000001, + 0.13888888888888887, + 0.12456597222222225, + 0.15234375, + 0.09984375000000002, + 0.17437500000000003, + 0.09331597222222224, + 0.0658159722222222, + 0.08326388888888889, + 0.08664930555555556, + 0.07289930555555557, + 0.069375, + 0.069375, + 0.08326388888888887, + 0.08326388888888887, + 0.11859375000000003, + 0.10305555555555553, + 0.11555555555555556, + 0.17664930555555555, + 0.07289930555555557, + 0.1788888888888889, + 0.20659722222222224, + 0.08326388888888889, + 0.0658159722222222, + 0.24998263888888891, + 0.01233600206528305, + 125.6234675420503, + 90.58447554526954, + 335.36272316927335, + 7.062366580649532, + 7.062366580649532, + 0.3037326388888888, + 0.27159722222222216, + 59.39011020439468, + 40.57657951349465, + 27.017342501224416, + 62.93037150617059, + 0.2582638888888889, + 0.23826388888888891, + 0.3141666666666667, + 0.05493055555555556, + 0.23826388888888891, + 0.49914930555555564, + 0.48248263888888887, + 0.2583159722222222, + 0.5847222222222221, + 0.24159722222222216, + 0.0965972222222222, + 0.10623263888888887 + ], + "mean_": [ + 0.15416666666666667, + 0.1375, + 0.07083333333333333, + 0.25416666666666665, + 0.075, + 0.09166666666666666, + 0.05416666666666667, + 0.375, + 0.09166666666666666, + 0.125, + 0.15833333333333333, + 0.0625, + 0.21666666666666667, + 0.11666666666666667, + 0.10416666666666667, + 0.13333333333333333, + 0.0625, + 0.06666666666666667, + 0.21666666666666667, + 0.10416666666666667, + 0.21666666666666667, + 0.23333333333333334, + 0.19166666666666668, + 0.075, + 0.2708333333333333, + 0.14583333333333334, + 0.1, + 0.1125, + 0.0625, + 0.10416666666666667, + 0.06666666666666667, + 0.7541666666666667, + 0.2125, + 0.058333333333333334, + 0.3, + 0.13333333333333333, + 0.0875, + 0.6541666666666667, + 0.1625, + 0.1875, + 0.07916666666666666, + 0.2916666666666667, + 0.14583333333333334, + 0.17916666666666667, + 0.5, + 0.42083333333333334, + 0.49166666666666664, + 0.10416666666666667, + 0.17916666666666667, + 0.3125, + 0.05416666666666667, + 0.09583333333333334, + 0.05416666666666667, + 0.3458333333333333, + 0.17083333333333334, + 0.3541666666666667, + 0.20416666666666666, + 0.3333333333333333, + 0.23333333333333334, + 0.30833333333333335, + 0.925, + 0.24166666666666667, + 0.375, + 0.15, + 0.21666666666666667, + 0.24166666666666667, + 0.2125, + 0.19583333333333333, + 0.17083333333333334, + 0.14583333333333334, + 0.3958333333333333, + 0.20416666666666666, + 0.8, + 0.058333333333333334, + 0.1625, + 0.4125, + 0.06666666666666667, + 0.1, + 0.10416666666666667, + 0.19166666666666668, + 0.49166666666666664, + 0.7166666666666667, + 0.09583333333333334, + 0.0625, + 0.08333333333333333, + 0.275, + 0.37916666666666665, + 0.06666666666666667, + 0.30416666666666664, + 0.1, + 0.17083333333333334, + 0.15416666666666667, + 0.2708333333333333, + 0.4583333333333333, + 0.06666666666666667, + 0.09166666666666666, + 0.0625, + 0.10833333333333334, + 0.22083333333333333, + 0.18333333333333332, + 0.37083333333333335, + 0.10833333333333334, + 0.10833333333333334, + 0.4791666666666667, + 0.1625, + 0.15, + 0.42083333333333334, + 0.35833333333333334, + 0.9375, + 0.275, + 0.7833333333333333, + 0.525, + 0.12083333333333333, + 0.0875, + 0.6083333333333333, + 0.2708333333333333, + 0.12083333333333333, + 0.21666666666666667, + 0.07916666666666666, + 0.14583333333333334, + 0.06666666666666667, + 0.49166666666666664, + 0.15416666666666667, + 0.675, + 0.1625, + 0.6, + 0.08333333333333333, + 0.17083333333333334, + 0.6083333333333333, + 0.125, + 0.17916666666666667, + 0.5416666666666666, + 0.0875, + 0.0625, + 0.07083333333333333, + 0.12916666666666668, + 0.058333333333333334, + 0.1625, + 0.0625, + 0.14166666666666666, + 0.3125, + 0.1875, + 0.44583333333333336, + 0.6875, + 0.375, + 0.3458333333333333, + 0.25, + 0.6625, + 0.18333333333333332, + 0.075, + 0.7791666666666667, + 0.26666666666666666, + 0.4875, + 0.07083333333333333, + 0.45, + 0.12916666666666668, + 0.09583333333333334, + 0.07083333333333333, + 0.21666666666666667, + 0.25833333333333336, + 0.2375, + 0.07916666666666666, + 0.36666666666666664, + 0.1, + 0.1, + 0.1125, + 0.18333333333333332, + 0.37083333333333335, + 0.12083333333333333, + 0.15833333333333333, + 0.12916666666666668, + 0.07916666666666666, + 0.1625, + 0.05416666666666667, + 0.30416666666666664, + 0.17916666666666667, + 0.25, + 0.09166666666666666, + 0.1625, + 0.125, + 0.20416666666666666, + 0.35, + 0.2708333333333333, + 0.07083333333333333, + 0.2, + 0.19583333333333333, + 0.1125, + 0.4125, + 0.15833333333333333, + 0.24583333333333332, + 0.17083333333333334, + 0.22083333333333333, + 0.0625, + 0.075, + 0.125, + 0.07916666666666666, + 0.36666666666666664, + 0.07916666666666666, + 0.21666666666666667, + 0.1125, + 0.16666666666666666, + 0.14583333333333334, + 0.1875, + 0.1125, + 0.225, + 0.10416666666666667, + 0.07083333333333333, + 0.09166666666666666, + 0.09583333333333334, + 0.07916666666666666, + 0.075, + 0.075, + 0.09166666666666666, + 0.09166666666666666, + 0.1375, + 0.11666666666666667, + 0.13333333333333333, + 0.22916666666666666, + 0.07916666666666666, + 0.23333333333333334, + 0.2916666666666667, + 0.09166666666666666, + 0.07083333333333333, + 0.5041666666666667, + -2.1508512608333334, + 7.815465828333333, + 13.461821344999999, + 22.47924867875, + 11.184492137916667, + 11.184492137916667, + 0.3541666666666667, + 0.30833333333333335, + 11.60772115, + 6.340729067499999, + 3.9023232266666663, + 5.019184591666668, + 0.4083333333333333, + 0.19166666666666668, + 0.45, + 0.058333333333333334, + 0.19166666666666668, + 0.5291666666666667, + 0.5291666666666667, + 0.37083333333333335, + 0.4166666666666667, + 0.3416666666666667, + 0.10833333333333334, + 0.12083333333333333 + ], + "scale_": [ + 0.36110844016106236, + 0.3443744328488978, + 0.2565462379810357, + 0.43539174569831046, + 0.26339134382131846, + 0.28855482821967976, + 0.22634628092568448, + 0.4841229182759271, + 0.28855482821967976, + 0.33071891388307384, + 0.36505326856349185, + 0.24206145913796356, + 0.41197356981027583, + 0.3210226714043037, + 0.3054766312211496, + 0.33993463423951903, + 0.24206145913796356, + 0.24944382578492943, + 0.41197356981027583, + 0.3054766312211496, + 0.41197356981027583, + 0.4229525846816507, + 0.39361218928731817, + 0.26339134382131846, + 0.4443901876604488, + 0.35293904887702954, + 0.30000000000000004, + 0.31598061649411346, + 0.24206145913796356, + 0.3054766312211496, + 0.2494438257849295, + 0.4305801964275128, + 0.4090767042988393, + 0.23437268517375387, + 0.45825756949558394, + 0.33993463423951903, + 0.2825663638864329, + 0.47563918981607145, + 0.36890886408434265, + 0.3903123748998999, + 0.26999871398870695, + 0.4545296714431548, + 0.35293904887702954, + 0.38349181506548763, + 0.5, + 0.49369285885952296, + 0.4999305507323547, + 0.3054766312211496, + 0.38349181506548763, + 0.46351240544347894, + 0.22634628092568446, + 0.2943625410196677, + 0.22634628092568448, + 0.47563918981607145, + 0.3763632627602693, + 0.4782600118020414, + 0.4030913530316532, + 0.47140452079103173, + 0.4229525846816507, + 0.4618050334165803, + 0.26339134382131846, + 0.42809331796804406, + 0.4841229182759271, + 0.3570714214271425, + 0.41197356981027583, + 0.42809331796804406, + 0.40907670429883924, + 0.3968408231128558, + 0.3763632627602693, + 0.35293904887702954, + 0.4890289414293959, + 0.4030913530316532, + 0.4, + 0.2343726851737539, + 0.36890886408434265, + 0.49228421668788036, + 0.24944382578492946, + 0.3, + 0.3054766312211496, + 0.39361218928731817, + 0.49993055073235465, + 0.45061686115319244, + 0.29436254101966774, + 0.24206145913796356, + 0.2763853991962833, + 0.44651427748729383, + 0.485179663171856, + 0.24944382578492946, + 0.4600535898735663, + 0.30000000000000004, + 0.3763632627602693, + 0.36110844016106236, + 0.4443901876604488, + 0.4982608642958916, + 0.24944382578492943, + 0.2885548282196797, + 0.24206145913796356, + 0.3108009366495252, + 0.41480835601783894, + 0.3869395588747966, + 0.4830279207480891, + 0.31080093664952524, + 0.31080093664952524, + 0.4995657836784083, + 0.36890886408434265, + 0.3570714214271425, + 0.49369285885952296, + 0.47951074602719335, + 0.24206145913796356, + 0.44651427748729383, + 0.4119735698102758, + 0.4993746088859545, + 0.3259334884434075, + 0.2825663638864329, + 0.4881228215202491, + 0.4443901876604488, + 0.3259334884434075, + 0.41197356981027583, + 0.26999871398870695, + 0.35293904887702954, + 0.2494438257849294, + 0.49993055073235465, + 0.36110844016106236, + 0.4683748498798798, + 0.36890886408434265, + 0.48989794855663565, + 0.2763853991962833, + 0.3763632627602693, + 0.48812282152024905, + 0.33071891388307384, + 0.38349181506548763, + 0.4982608642958916, + 0.2825663638864329, + 0.24206145913796356, + 0.2565462379810357, + 0.33538431521001233, + 0.2343726851737539, + 0.36890886408434265, + 0.24206145913796356, + 0.3487079325484613, + 0.46351240544347894, + 0.3903123748998999, + 0.49705731281434956, + 0.46351240544347894, + 0.4841229182759271, + 0.47563918981607145, + 0.4330127018922193, + 0.47285700798444347, + 0.3869395588747966, + 0.26339134382131846, + 0.41480835601783894, + 0.4422166387140533, + 0.49984372557830514, + 0.2565462379810357, + 0.49749371855331004, + 0.33538431521001233, + 0.29436254101966774, + 0.2565462379810357, + 0.41197356981027583, + 0.4377181995556299, + 0.42555111326373, + 0.26999871398870695, + 0.4818944098266987, + 0.3, + 0.30000000000000004, + 0.31598061649411346, + 0.3869395588747966, + 0.48302792074808903, + 0.3259334884434075, + 0.3650532685634919, + 0.33538431521001233, + 0.26999871398870695, + 0.36890886408434265, + 0.22634628092568446, + 0.4600535898735663, + 0.3834918150654877, + 0.4330127018922193, + 0.28855482821967976, + 0.36890886408434265, + 0.33071891388307384, + 0.4030913530316533, + 0.47696960070847283, + 0.4443901876604488, + 0.2565462379810357, + 0.4000000000000001, + 0.3968408231128558, + 0.31598061649411346, + 0.49228421668788036, + 0.36505326856349185, + 0.43058019642751283, + 0.3763632627602693, + 0.41480835601783894, + 0.24206145913796356, + 0.26339134382131846, + 0.33071891388307384, + 0.26999871398870695, + 0.4818944098266987, + 0.26999871398870695, + 0.41197356981027583, + 0.31598061649411346, + 0.3726779962499649, + 0.35293904887702954, + 0.3903123748998999, + 0.31598061649411346, + 0.4175823272122517, + 0.3054766312211496, + 0.2565462379810357, + 0.28855482821967976, + 0.2943625410196677, + 0.26999871398870695, + 0.26339134382131846, + 0.26339134382131846, + 0.2885548282196797, + 0.2885548282196797, + 0.3443744328488978, + 0.3210226714043037, + 0.33993463423951903, + 0.42029668753816696, + 0.26999871398870695, + 0.4229525846816507, + 0.45452967144315476, + 0.28855482821967976, + 0.2565462379810357, + 0.4999826385874703, + 0.11106755631273721, + 11.208187522612668, + 9.517587695696296, + 18.312911378840706, + 2.657511350991663, + 2.657511350991663, + 0.5511194415813044, + 0.5211499037918189, + 7.7064979208713655, + 6.369974844023691, + 5.197820937780024, + 7.9328665377762775, + 0.5081967029496443, + 0.48812282152024905, + 0.5605057240266746, + 0.2343726851737539, + 0.48812282152024905, + 0.7065049932983882, + 0.6946097025588462, + 0.5082479436478048, + 0.7646713164636307, + 0.4915254034352875, + 0.31080093664952524, + 0.3259334884434075 + ], + "n_samples_seen_": 240, + "feature_names_in_": { + "py/tuple": [ + [ + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_71", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_77", + "MorganFP_79", + "MorganFP_80", + "MorganFP_82", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_98", + "MorganFP_99", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_221", + "MorganFP_226", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_237", + "MorganFP_239", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_254", + "MorganFP_255", + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA2", + "EState_VSA7", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "NumAliphaticHeterocycles", + "NumSaturatedHeterocycles", + "PEOE_VSA11", + "PEOE_VSA4", + "PEOE_VSA5", + "SlogP_VSA12", + "fr_ArN", + "fr_Ar_NH", + "fr_NH2", + "fr_Ndealkylation1", + "fr_Nhpyrrole", + "fr_aryl_methyl", + "fr_ether", + "fr_furan", + "fr_halogen", + "fr_imidazole", + "fr_piperzine", + "fr_thiazole" + ] + ] + }, + "versions": { + "py/tuple": [ + "sklearn", + "1.4.0" + ] + } + } + } + }, + "earlyStopping": null, + "parameters": null, + "alg": "sklearn.naive_bayes.GaussianNB", + "randomState": 1181241943, + "estimator": "./ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943.json" + } +} \ No newline at end of file diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213_replica.json b/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943_replica.json similarity index 71% rename from testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213_replica.json rename to testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943_replica.json index 906611c0..9dd78989 100644 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213_replica.json +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943_replica.json @@ -10,18 +10,10 @@ }, "descriptors": [ { - "py/object": "qsprpred.data.descriptors.sets.FingerprintSet", + "py/object": "qsprpred.data.descriptors.fingerprints.MorganFP", "py/state": { - "_isFP": true, - "fingerprintType": "MorganFP", - "_args": { - "py/tuple": [] - }, - "_kwargs": { - "radius": 2, - "nBits": 256 - }, - "_keepindices": [ + "idProp": "QSPRID", + "_usedBits": [ 0, 1, 2, @@ -279,270 +271,273 @@ 254, 255 ], + "radius": 2, + "nBits": 256, + "kwargs": {}, "descriptors": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "35", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "96", - "97", - "98", - "99", - "100", - "101", - "102", - "103", - "104", - "105", - "106", - "107", - "108", - "109", - "110", - "111", - "112", - "113", - "114", - "115", - "116", - "117", - "118", - "119", - "120", - "121", - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "143", - "144", - "145", - "146", - "147", - "148", - "149", - "150", - "151", - "152", - "153", - "154", - "155", - "156", - "157", - "158", - "159", - "160", - "161", - "162", - "163", - "164", - "165", - "166", - "167", - "168", - "169", - "170", - "171", - "172", - "173", - "174", - "175", - "176", - "177", - "178", - "179", - "180", - "181", - "182", - "183", - "184", - "185", - "186", - "187", - "188", - "189", - "190", - "191", - "192", - "193", - "194", - "195", - "196", - "197", - "198", - "199", - "200", - "201", - "202", - "203", - "204", - "205", - "206", - "207", - "208", - "209", - "210", - "211", - "212", - "213", - "214", - "215", - "216", - "217", - "218", - "219", - "220", - "221", - "222", - "223", - "224", - "225", - "226", - "227", - "228", - "229", - "230", - "231", - "232", - "233", - "234", - "235", - "236", - "237", - "238", - "239", - "240", - "241", - "242", - "243", - "244", - "245", - "246", - "247", - "248", - "249", - "250", - "251", - "252", - "253", - "254", - "255" + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_10", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_19", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_49", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_64", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_70", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_76", + "MorganFP_77", + "MorganFP_78", + "MorganFP_79", + "MorganFP_80", + "MorganFP_81", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_97", + "MorganFP_98", + "MorganFP_99", + "MorganFP_100", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_107", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_116", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_130", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_143", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_159", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_171", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_176", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_180", + "MorganFP_181", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_190", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_220", + "MorganFP_221", + "MorganFP_222", + "MorganFP_223", + "MorganFP_224", + "MorganFP_225", + "MorganFP_226", + "MorganFP_227", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_236", + "MorganFP_237", + "MorganFP_238", + "MorganFP_239", + "MorganFP_240", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_253", + "MorganFP_254", + "MorganFP_255" ] } }, { "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", "py/state": { - "_isFP": false, + "idProp": "QSPRID", "_descriptors": [ "AvgIpc", "BCUT2D_CHGHI", @@ -992,8 +987,8 @@ 6.5 ], "_nClasses": 2, - "transformer": null, - "imputer": null + "imputer": null, + "transformer": null } } ], @@ -1028,7 +1023,7 @@ "with_mean": true, "with_std": true, "copy": true, - "_sklearn_version": "1.2.1" + "_sklearn_version": "1.4.0" } }, "feature_fill_value": 0.0, @@ -1037,7 +1032,7 @@ "optimizer": null, "assessors": [ { - "py/object": "qsprpred.models.assessment_methods.CrossValAssessor", + "py/object": "qsprpred.models.assessment.methods.CrossValAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1046,12 +1041,18 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._ThresholdScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._ranking.roc_auc_score" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": { + "py/tuple": [ + "decision_function", + "predict_proba" + ] + } }, "name": "roc_auc_score" }, @@ -1060,7 +1061,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.CrossValAssessor", + "py/object": "qsprpred.models.assessment.methods.CrossValAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1069,12 +1070,13 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._classification.matthews_corrcoef" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": "predict" }, "name": "matthews_corrcoef" }, @@ -1083,7 +1085,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.TestSetAssessor", + "py/object": "qsprpred.models.assessment.methods.TestSetAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1092,12 +1094,18 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._ThresholdScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._ranking.roc_auc_score" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": { + "py/tuple": [ + "decision_function", + "predict_proba" + ] + } }, "name": "roc_auc_score" }, @@ -1105,7 +1113,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.TestSetAssessor", + "py/object": "qsprpred.models.assessment.methods.TestSetAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1114,12 +1122,13 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._classification.matthews_corrcoef" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": "predict" }, "name": "matthews_corrcoef" }, @@ -1127,8 +1136,8 @@ "round": 5 } ], - "randomSeed": 2746317213, - "model": "/home/sichom/projects/QSPRpred/testing/test_consistency/data/models/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213_meta.json", + "randomSeed": 1181241943, + "model": "/zfsdata/data/helle/01_MainProjects/03_QSPRpred/Scripts/QSPRpred/testing/test_consistency/data/models/ConsistencyChecksCLS_1181241943/ConsistencyChecksCLS_1181241943_meta.json", "ds": null, "results": null } diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213.cv.tsv b/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213.cv.tsv deleted file mode 100644 index 58b83de3..00000000 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213.cv.tsv +++ /dev/null @@ -1,241 +0,0 @@ -QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction Fold -ConsistencyChecks_132 True False 0.0 -ConsistencyChecks_051 False True 0.0 -ConsistencyChecks_215 False False 0.0 -ConsistencyChecks_283 True True 0.0 -ConsistencyChecks_251 True True 0.0 -ConsistencyChecks_198 True True 0.0 -ConsistencyChecks_006 True False 0.0 -ConsistencyChecks_296 True True 0.0 -ConsistencyChecks_000 False False 0.0 -ConsistencyChecks_279 True True 0.0 -ConsistencyChecks_005 True True 0.0 -ConsistencyChecks_187 False True 0.0 -ConsistencyChecks_153 False True 0.0 -ConsistencyChecks_200 True True 0.0 -ConsistencyChecks_082 False False 0.0 -ConsistencyChecks_024 True True 0.0 -ConsistencyChecks_130 True True 0.0 -ConsistencyChecks_081 True True 0.0 -ConsistencyChecks_063 False True 0.0 -ConsistencyChecks_216 True True 0.0 -ConsistencyChecks_289 True True 0.0 -ConsistencyChecks_246 True False 0.0 -ConsistencyChecks_032 False False 0.0 -ConsistencyChecks_001 True False 0.0 -ConsistencyChecks_112 True False 0.0 -ConsistencyChecks_266 True True 0.0 -ConsistencyChecks_007 False False 0.0 -ConsistencyChecks_097 True True 0.0 -ConsistencyChecks_237 True True 0.0 -ConsistencyChecks_159 False True 0.0 -ConsistencyChecks_143 False False 0.0 -ConsistencyChecks_013 False True 0.0 -ConsistencyChecks_250 True True 0.0 -ConsistencyChecks_292 True True 0.0 -ConsistencyChecks_012 True True 0.0 -ConsistencyChecks_088 False False 0.0 -ConsistencyChecks_269 True True 0.0 -ConsistencyChecks_183 False False 0.0 -ConsistencyChecks_105 False True 0.0 -ConsistencyChecks_070 True True 0.0 -ConsistencyChecks_022 False False 0.0 -ConsistencyChecks_142 True False 0.0 -ConsistencyChecks_188 True False 0.0 -ConsistencyChecks_233 True False 0.0 -ConsistencyChecks_018 True True 0.0 -ConsistencyChecks_285 False False 0.0 -ConsistencyChecks_238 False True 0.0 -ConsistencyChecks_116 True True 0.0 -ConsistencyChecks_059 True True 1.0 -ConsistencyChecks_221 False True 1.0 -ConsistencyChecks_020 True True 1.0 -ConsistencyChecks_048 True True 1.0 -ConsistencyChecks_189 False True 1.0 -ConsistencyChecks_277 True False 1.0 -ConsistencyChecks_225 True True 1.0 -ConsistencyChecks_067 False False 1.0 -ConsistencyChecks_084 False False 1.0 -ConsistencyChecks_140 False True 1.0 -ConsistencyChecks_085 False False 1.0 -ConsistencyChecks_133 True False 1.0 -ConsistencyChecks_126 True True 1.0 -ConsistencyChecks_267 True True 1.0 -ConsistencyChecks_146 False False 1.0 -ConsistencyChecks_107 False True 1.0 -ConsistencyChecks_228 True True 1.0 -ConsistencyChecks_121 False False 1.0 -ConsistencyChecks_079 False False 1.0 -ConsistencyChecks_236 True True 1.0 -ConsistencyChecks_125 False True 1.0 -ConsistencyChecks_040 True True 1.0 -ConsistencyChecks_196 True True 1.0 -ConsistencyChecks_290 True True 1.0 -ConsistencyChecks_046 True True 1.0 -ConsistencyChecks_165 True True 1.0 -ConsistencyChecks_016 False False 1.0 -ConsistencyChecks_170 True True 1.0 -ConsistencyChecks_176 True True 1.0 -ConsistencyChecks_152 True True 1.0 -ConsistencyChecks_201 True True 1.0 -ConsistencyChecks_260 False False 1.0 -ConsistencyChecks_217 True True 1.0 -ConsistencyChecks_158 False False 1.0 -ConsistencyChecks_113 True True 1.0 -ConsistencyChecks_108 True False 1.0 -ConsistencyChecks_162 True True 1.0 -ConsistencyChecks_033 False True 1.0 -ConsistencyChecks_098 False True 1.0 -ConsistencyChecks_010 True True 1.0 -ConsistencyChecks_114 False True 1.0 -ConsistencyChecks_039 True True 1.0 -ConsistencyChecks_118 True True 1.0 -ConsistencyChecks_254 False True 1.0 -ConsistencyChecks_259 False False 1.0 -ConsistencyChecks_091 False False 1.0 -ConsistencyChecks_103 False False 1.0 -ConsistencyChecks_174 True False 1.0 -ConsistencyChecks_072 False True 2.0 -ConsistencyChecks_177 True True 2.0 -ConsistencyChecks_029 True True 2.0 -ConsistencyChecks_015 True True 2.0 -ConsistencyChecks_178 True True 2.0 -ConsistencyChecks_167 True True 2.0 -ConsistencyChecks_295 True True 2.0 -ConsistencyChecks_203 False True 2.0 -ConsistencyChecks_123 True True 2.0 -ConsistencyChecks_211 True True 2.0 -ConsistencyChecks_299 True True 2.0 -ConsistencyChecks_265 True True 2.0 -ConsistencyChecks_186 False False 2.0 -ConsistencyChecks_219 False False 2.0 -ConsistencyChecks_227 True True 2.0 -ConsistencyChecks_173 True True 2.0 -ConsistencyChecks_025 False True 2.0 -ConsistencyChecks_052 True True 2.0 -ConsistencyChecks_089 True True 2.0 -ConsistencyChecks_058 True True 2.0 -ConsistencyChecks_208 True True 2.0 -ConsistencyChecks_041 False False 2.0 -ConsistencyChecks_202 False True 2.0 -ConsistencyChecks_160 False False 2.0 -ConsistencyChecks_111 True True 2.0 -ConsistencyChecks_141 True True 2.0 -ConsistencyChecks_101 True True 2.0 -ConsistencyChecks_163 True True 2.0 -ConsistencyChecks_166 True True 2.0 -ConsistencyChecks_194 True True 2.0 -ConsistencyChecks_030 True True 2.0 -ConsistencyChecks_249 False True 2.0 -ConsistencyChecks_066 False False 2.0 -ConsistencyChecks_243 False False 2.0 -ConsistencyChecks_014 False True 2.0 -ConsistencyChecks_060 False True 2.0 -ConsistencyChecks_034 True True 2.0 -ConsistencyChecks_239 True True 2.0 -ConsistencyChecks_083 False True 2.0 -ConsistencyChecks_281 True True 2.0 -ConsistencyChecks_139 False False 2.0 -ConsistencyChecks_028 True True 2.0 -ConsistencyChecks_043 True True 2.0 -ConsistencyChecks_137 True True 2.0 -ConsistencyChecks_075 False True 2.0 -ConsistencyChecks_181 False False 2.0 -ConsistencyChecks_138 True True 2.0 -ConsistencyChecks_119 True True 2.0 -ConsistencyChecks_026 False False 3.0 -ConsistencyChecks_256 True True 3.0 -ConsistencyChecks_092 True True 3.0 -ConsistencyChecks_149 False True 3.0 -ConsistencyChecks_220 False True 3.0 -ConsistencyChecks_213 True False 3.0 -ConsistencyChecks_284 True True 3.0 -ConsistencyChecks_214 False False 3.0 -ConsistencyChecks_002 True True 3.0 -ConsistencyChecks_199 True True 3.0 -ConsistencyChecks_242 True True 3.0 -ConsistencyChecks_197 True True 3.0 -ConsistencyChecks_298 False True 3.0 -ConsistencyChecks_003 True True 3.0 -ConsistencyChecks_106 True True 3.0 -ConsistencyChecks_023 False False 3.0 -ConsistencyChecks_102 True True 3.0 -ConsistencyChecks_094 True True 3.0 -ConsistencyChecks_090 False True 3.0 -ConsistencyChecks_257 True True 3.0 -ConsistencyChecks_282 True True 3.0 -ConsistencyChecks_205 True True 3.0 -ConsistencyChecks_272 False True 3.0 -ConsistencyChecks_019 True True 3.0 -ConsistencyChecks_117 False True 3.0 -ConsistencyChecks_207 True True 3.0 -ConsistencyChecks_263 True False 3.0 -ConsistencyChecks_080 False False 3.0 -ConsistencyChecks_271 False True 3.0 -ConsistencyChecks_175 True True 3.0 -ConsistencyChecks_172 False True 3.0 -ConsistencyChecks_157 True True 3.0 -ConsistencyChecks_230 True True 3.0 -ConsistencyChecks_155 False False 3.0 -ConsistencyChecks_009 True True 3.0 -ConsistencyChecks_276 False False 3.0 -ConsistencyChecks_115 False True 3.0 -ConsistencyChecks_021 False False 3.0 -ConsistencyChecks_065 True True 3.0 -ConsistencyChecks_206 False False 3.0 -ConsistencyChecks_110 True True 3.0 -ConsistencyChecks_077 True False 3.0 -ConsistencyChecks_008 True True 3.0 -ConsistencyChecks_148 False True 3.0 -ConsistencyChecks_280 False False 3.0 -ConsistencyChecks_071 False True 3.0 -ConsistencyChecks_224 True True 3.0 -ConsistencyChecks_164 True True 3.0 -ConsistencyChecks_017 True False 4.0 -ConsistencyChecks_156 False False 4.0 -ConsistencyChecks_223 False True 4.0 -ConsistencyChecks_037 True True 4.0 -ConsistencyChecks_145 True True 4.0 -ConsistencyChecks_128 True True 4.0 -ConsistencyChecks_151 True True 4.0 -ConsistencyChecks_045 True True 4.0 -ConsistencyChecks_136 False False 4.0 -ConsistencyChecks_035 True True 4.0 -ConsistencyChecks_209 True True 4.0 -ConsistencyChecks_190 True True 4.0 -ConsistencyChecks_104 True True 4.0 -ConsistencyChecks_096 True False 4.0 -ConsistencyChecks_241 True True 4.0 -ConsistencyChecks_262 False False 4.0 -ConsistencyChecks_261 False True 4.0 -ConsistencyChecks_210 False True 4.0 -ConsistencyChecks_169 True True 4.0 -ConsistencyChecks_050 False True 4.0 -ConsistencyChecks_275 False False 4.0 -ConsistencyChecks_191 True True 4.0 -ConsistencyChecks_055 True False 4.0 -ConsistencyChecks_264 True True 4.0 -ConsistencyChecks_212 True True 4.0 -ConsistencyChecks_047 False False 4.0 -ConsistencyChecks_056 False False 4.0 -ConsistencyChecks_231 True True 4.0 -ConsistencyChecks_240 False False 4.0 -ConsistencyChecks_069 False True 4.0 -ConsistencyChecks_226 True False 4.0 -ConsistencyChecks_294 True True 4.0 -ConsistencyChecks_054 True True 4.0 -ConsistencyChecks_053 False True 4.0 -ConsistencyChecks_049 True True 4.0 -ConsistencyChecks_124 True False 4.0 -ConsistencyChecks_204 False False 4.0 -ConsistencyChecks_031 True True 4.0 -ConsistencyChecks_253 True True 4.0 -ConsistencyChecks_252 False False 4.0 -ConsistencyChecks_061 False False 4.0 -ConsistencyChecks_147 True True 4.0 -ConsistencyChecks_131 False False 4.0 -ConsistencyChecks_076 True True 4.0 -ConsistencyChecks_086 False True 4.0 -ConsistencyChecks_287 True True 4.0 -ConsistencyChecks_062 True True 4.0 -ConsistencyChecks_100 True True 4.0 diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213.ind.tsv b/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213.ind.tsv deleted file mode 100644 index d2b41370..00000000 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213.ind.tsv +++ /dev/null @@ -1,61 +0,0 @@ -QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction -ConsistencyChecks_222 True True -ConsistencyChecks_011 True True -ConsistencyChecks_154 False False -ConsistencyChecks_291 False True -ConsistencyChecks_127 True True -ConsistencyChecks_218 False True -ConsistencyChecks_255 True True -ConsistencyChecks_182 False False -ConsistencyChecks_179 True True -ConsistencyChecks_109 False True -ConsistencyChecks_042 False True -ConsistencyChecks_120 True True -ConsistencyChecks_036 True True -ConsistencyChecks_095 True False -ConsistencyChecks_192 False True -ConsistencyChecks_288 True False -ConsistencyChecks_134 True True -ConsistencyChecks_168 False False -ConsistencyChecks_248 True True -ConsistencyChecks_286 True True -ConsistencyChecks_229 True True -ConsistencyChecks_278 False False -ConsistencyChecks_004 True True -ConsistencyChecks_195 True True -ConsistencyChecks_027 True True -ConsistencyChecks_150 True True -ConsistencyChecks_044 False False -ConsistencyChecks_180 False True -ConsistencyChecks_235 False False -ConsistencyChecks_135 False True -ConsistencyChecks_093 True False -ConsistencyChecks_268 False False -ConsistencyChecks_144 True False -ConsistencyChecks_184 True True -ConsistencyChecks_293 True True -ConsistencyChecks_087 False False -ConsistencyChecks_064 False False -ConsistencyChecks_122 True True -ConsistencyChecks_244 True True -ConsistencyChecks_129 False False -ConsistencyChecks_270 True True -ConsistencyChecks_232 False True -ConsistencyChecks_247 True True -ConsistencyChecks_245 False False -ConsistencyChecks_161 True True -ConsistencyChecks_171 True True -ConsistencyChecks_297 True True -ConsistencyChecks_099 True True -ConsistencyChecks_074 True True -ConsistencyChecks_078 True True -ConsistencyChecks_057 True True -ConsistencyChecks_258 False False -ConsistencyChecks_234 False True -ConsistencyChecks_068 True True -ConsistencyChecks_274 True True -ConsistencyChecks_193 True False -ConsistencyChecks_185 True True -ConsistencyChecks_038 True False -ConsistencyChecks_073 True True -ConsistencyChecks_273 True False diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213.json b/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213.json deleted file mode 100644 index 3d0a756c..00000000 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213.json +++ /dev/null @@ -1 +0,0 @@ -{"unfitted": true, "meta": ["sklearn.ensemble._forest", "ExtraTreesClassifier"], "params": {"bootstrap": false, "ccp_alpha": 0.0, "class_weight": null, "criterion": "gini", "max_depth": null, "max_features": "sqrt", "max_leaf_nodes": null, "max_samples": null, "min_impurity_decrease": 0.0, "min_samples_leaf": 1, "min_samples_split": 2, "min_weight_fraction_leaf": 0.0, "n_estimators": 100, "n_jobs": null, "oob_score": false, "random_state": 2746317213, "verbose": 0, "warm_start": false}, "versions": ["sklearn", "1.2.1"]} \ No newline at end of file diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213_meta.json b/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213_meta.json deleted file mode 100644 index 60ec5286..00000000 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213_meta.json +++ /dev/null @@ -1,1625 +0,0 @@ -{ - "py/object": "qsprpred.models.scikit_learn.SklearnModel", - "py/state": { - "name": "ConsistencyChecksCLS_2746317213", - "baseDir": ".", - "targetProperties": [ - { - "py/object": "qsprpred.tasks.TargetProperty", - "py/state": { - "name": "pchembl_value_Mean", - "task": { - "py/reduce": [ - { - "py/type": "qsprpred.tasks.TargetTasks" - }, - { - "py/tuple": [ - "SINGLECLASS" - ] - } - ] - }, - "_th": [ - 6.5 - ], - "_nClasses": 2, - "transformer": null, - "imputer": null - } - } - ], - "nTargets": 1, - "featureCalculators": [ - { - "py/object": "qsprpred.data.descriptors.calculators.MoleculeDescriptorsCalculator", - "py/state": { - "descSets": [ - { - "py/object": "qsprpred.data.descriptors.sets.FingerprintSet", - "py/state": { - "_isFP": true, - "fingerprintType": "MorganFP", - "_args": { - "py/tuple": [] - }, - "_kwargs": { - "radius": 2, - "nBits": 256 - }, - "_keepindices": [ - 0, - 1, - 2, - 3, - 4, - 5, - 7, - 8, - 9, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 50, - 51, - 52, - 53, - 54, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 77, - 79, - 80, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 94, - 95, - 96, - 98, - 99, - 101, - 102, - 103, - 104, - 105, - 106, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 155, - 156, - 157, - 158, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 172, - 173, - 174, - 175, - 177, - 178, - 179, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 221, - 226, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 237, - 239, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 254, - 255 - ], - "descriptors": [ - "0", - "1", - "2", - "3", - "4", - "5", - "7", - "8", - "9", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "50", - "51", - "52", - "53", - "54", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "65", - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "75", - "77", - "79", - "80", - "82", - "83", - "84", - "85", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "94", - "95", - "96", - "98", - "99", - "101", - "102", - "103", - "104", - "105", - "106", - "108", - "109", - "110", - "111", - "112", - "113", - "114", - "115", - "117", - "118", - "119", - "120", - "121", - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "144", - "145", - "146", - "147", - "148", - "149", - "150", - "151", - "152", - "153", - "155", - "156", - "157", - "158", - "160", - "161", - "162", - "163", - "164", - "165", - "166", - "167", - "168", - "169", - "170", - "172", - "173", - "174", - "175", - "177", - "178", - "179", - "182", - "183", - "184", - "185", - "186", - "187", - "188", - "189", - "191", - "192", - "193", - "194", - "195", - "196", - "197", - "198", - "199", - "200", - "201", - "202", - "203", - "204", - "205", - "206", - "207", - "208", - "209", - "210", - "211", - "212", - "213", - "214", - "215", - "216", - "217", - "218", - "219", - "221", - "226", - "228", - "229", - "230", - "231", - "232", - "233", - "234", - "235", - "237", - "239", - "241", - "242", - "243", - "244", - "245", - "246", - "247", - "248", - "249", - "250", - "251", - "252", - "254", - "255" - ] - } - }, - { - "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", - "py/state": { - "_isFP": false, - "_descriptors": [ - "BCUT2D_CHGLO", - "EState_VSA1", - "EState_VSA10", - "EState_VSA2", - "EState_VSA5", - "EState_VSA7", - "FractionCSP3", - "MaxAbsEStateIndex", - "MaxEStateIndex", - "MinPartialCharge", - "NumSaturatedHeterocycles", - "PEOE_VSA11", - "PEOE_VSA4", - "PEOE_VSA5", - "PEOE_VSA6", - "SMR_VSA9", - "SlogP_VSA12", - "SlogP_VSA4", - "fr_ArN", - "fr_Ar_NH", - "fr_NH2", - "fr_Ndealkylation1", - "fr_Nhpyrrole", - "fr_aryl_methyl", - "fr_ester", - "fr_ether", - "fr_furan", - "fr_imidazole", - "fr_piperzine", - "fr_thiazole" - ], - "include3D": false, - "descriptors": [ - "BCUT2D_CHGLO", - "EState_VSA1", - "EState_VSA10", - "EState_VSA2", - "EState_VSA5", - "EState_VSA7", - "FractionCSP3", - "MaxAbsEStateIndex", - "MaxEStateIndex", - "MinPartialCharge", - "NumSaturatedHeterocycles", - "PEOE_VSA11", - "PEOE_VSA4", - "PEOE_VSA5", - "PEOE_VSA6", - "SMR_VSA9", - "SlogP_VSA12", - "SlogP_VSA4", - "fr_ArN", - "fr_Ar_NH", - "fr_NH2", - "fr_Ndealkylation1", - "fr_Nhpyrrole", - "fr_aryl_methyl", - "fr_ester", - "fr_ether", - "fr_furan", - "fr_imidazole", - "fr_piperzine", - "fr_thiazole" - ] - } - } - ], - "noParallelization": false - } - } - ], - "featureStandardizer": { - "py/object": "qsprpred.data.processing.feature_standardizers.SKLearnStandardizer", - "py/state": { - "scaler": { - "meta": "standard-scaler", - "n_features_in_": 252, - "params": { - "copy": true, - "with_mean": true, - "with_std": true - }, - "var_": [ - 0.14972222222222198, - 0.13039930555555615, - 0.0693750000000001, - 0.19159722222222306, - 0.05859375, - 0.062222222222222436, - 0.23109375000000018, - 0.08326388888888926, - 0.10305555555555522, - 0.1303993055555562, - 0.07638888888888876, - 0.1549305555555554, - 0.09331597222222193, - 0.10305555555555516, - 0.12159722222222258, - 0.05493055555555544, - 0.06581597222222234, - 0.18326388888888945, - 0.08326388888888919, - 0.1549305555555554, - 0.19159722222222306, - 0.16493055555555616, - 0.06581597222222237, - 0.19159722222222306, - 0.11555555555555509, - 0.09000000000000032, - 0.09984374999999954, - 0.05859375, - 0.109375, - 0.06581597222222232, - 0.1832638888888895, - 0.1624826388888886, - 0.20484374999999938, - 0.11555555555555509, - 0.08664930555555551, - 0.2235937499999999, - 0.12456597222222182, - 0.1599999999999996, - 0.09659722222222232, - 0.20305555555555588, - 0.109375, - 0.15234375, - 0.2488888888888886, - 0.24081597222222217, - 0.24937500000000007, - 0.07638888888888884, - 0.1360937500000006, - 0.2132638888888901, - 0.05123263888888899, - 0.08326388888888922, - 0.2322222222222232, - 0.14706597222222245, - 0.2299305555555562, - 0.16734375000000015, - 0.22623263888888875, - 0.17888888888888885, - 0.2116493055555562, - 0.06937500000000005, - 0.19555555555555487, - 0.23638888888888845, - 0.12456597222222182, - 0.1743749999999996, - 0.17888888888888882, - 0.05123263888888905, - 0.15493055555555543, - 0.054930555555555434, - 0.14164930555555555, - 0.15493055555555543, - 0.12456597222222185, - 0.23914930555555652, - 0.15999999999999953, - 0.1649305555555561, - 0.05859375, - 0.06581597222222232, - 0.13888888888888912, - 0.24081597222222237, - 0.06581597222222228, - 0.10305555555555515, - 0.10623263888888856, - 0.1549305555555554, - 0.2485937499999996, - 0.20484374999999938, - 0.08664930555555551, - 0.06937500000000013, - 0.19359374999999968, - 0.234375, - 0.05123263888888907, - 0.211649305555556, - 0.09659722222222214, - 0.1303993055555562, - 0.13888888888888923, - 0.19159722222222306, - 0.24706597222222174, - 0.06581597222222234, - 0.08664930555555551, - 0.05859375, - 0.09331597222222196, - 0.17437499999999953, - 0.13326388888888865, - 0.23109375000000018, - 0.09659722222222228, - 0.10623263888888856, - 0.24937500000000012, - 0.1416493055555556, - 0.1360937500000006, - 0.24659722222222138, - 0.22993055555555617, - 0.05493055555555545, - 0.20484374999999932, - 0.1743749999999994, - 0.24914930555555545, - 0.10623263888888873, - 0.07289930555555572, - 0.22993055555555614, - 0.19748263888888834, - 0.1062326388888884, - 0.178888888888889, - 0.07289930555555588, - 0.12159722222222263, - 0.06222222222222253, - 0.2498437499999999, - 0.12750000000000059, - 0.21484375, - 0.12159722222222256, - 0.23109375000000007, - 0.09000000000000016, - 0.14972222222222223, - 0.24437499999999931, - 0.1030555555555552, - 0.14437500000000023, - 0.247899305555555, - 0.07984375000000009, - 0.05493055555555545, - 0.09000000000000023, - 0.11248263888888912, - 0.07289930555555584, - 0.12456597222222185, - 0.109375, - 0.21789930555555576, - 0.1549305555555554, - 0.24609375, - 0.20659722222222182, - 0.23826388888888922, - 0.22750000000000029, - 0.19937500000000025, - 0.2262326388888887, - 0.1549305555555554, - 0.06937500000000016, - 0.17664930555555616, - 0.19359374999999976, - 0.24888888888888847, - 0.07289930555555588, - 0.24826388888888853, - 0.109375, - 0.08664930555555553, - 0.08664930555555551, - 0.15999999999999961, - 0.19159722222222306, - 0.172065972222222, - 0.07289930555555593, - 0.23826388888888925, - 0.0998437499999994, - 0.07984375000000009, - 0.0832638888888893, - 0.14706597222222242, - 0.234375, - 0.10623263888888863, - 0.11859375000000023, - 0.11248263888888912, - 0.05859375, - 0.14164930555555566, - 0.05859375, - 0.21937500000000035, - 0.14164930555555555, - 0.18539930555555612, - 0.06581597222222234, - 0.1416493055555554, - 0.12456597222222184, - 0.16493055555555608, - 0.2287326388888889, - 0.20305555555555585, - 0.05859375, - 0.15999999999999956, - 0.15234375, - 0.09331597222222188, - 0.23999999999999905, - 0.13888888888888928, - 0.19937500000000025, - 0.15234375, - 0.1599999999999996, - 0.05493055555555545, - 0.062222222222222394, - 0.10623263888888873, - 0.09000000000000032, - 0.23109375000000018, - 0.07289930555555585, - 0.18326388888888948, - 0.09984374999999952, - 0.13039930555555615, - 0.10623263888888848, - 0.15234375, - 0.10305555555555522, - 0.17664930555555616, - 0.08664930555555551, - 0.07289930555555588, - 0.08664930555555551, - 0.07289930555555575, - 0.07638888888888863, - 0.07984375000000009, - 0.07984375000000009, - 0.0933159722222219, - 0.06581597222222235, - 0.109375, - 0.09984374999999962, - 0.13326388888888865, - 0.16734375000000018, - 0.07984375000000009, - 0.17888888888888896, - 0.2116493055555561, - 0.08664930555555551, - 0.05493055555555548, - 0.24888888888888858, - 0.012506485209500514, - 121.15087939955629, - 45.52150619221887, - 88.33298496524498, - 110.24724430605609, - 361.629305953246, - 0.028083462518416688, - 6.91905552638616, - 6.91905552638616, - 0.0039095377124141704, - 0.3012326388888891, - 61.444440539172106, - 40.57727316062258, - 26.7140617931244, - 322.5285449038037, - 52.352607196593944, - 63.31978870523825, - 37.81154712632511, - 0.26414930555555644, - 0.2277083333333336, - 0.3391666666666668, - 0.05859375, - 0.2277083333333336, - 0.5783159722222216, - 0.05493055555555542, - 0.5132638888888895, - 0.2632638888888895, - 0.23604166666666723, - 0.09984374999999951, - 0.1155555555555552 - ], - "mean_": [ - 0.18333333333333332, - 0.15416666666666667, - 0.075, - 0.25833333333333336, - 0.0625, - 0.06666666666666667, - 0.3625, - 0.09166666666666666, - 0.11666666666666667, - 0.15416666666666667, - 0.08333333333333333, - 0.19166666666666668, - 0.10416666666666667, - 0.11666666666666667, - 0.14166666666666666, - 0.058333333333333334, - 0.07083333333333333, - 0.24166666666666667, - 0.09166666666666666, - 0.19166666666666668, - 0.25833333333333336, - 0.20833333333333334, - 0.07083333333333333, - 0.25833333333333336, - 0.13333333333333333, - 0.1, - 0.1125, - 0.0625, - 0.125, - 0.07083333333333333, - 0.7583333333333333, - 0.20416666666666666, - 0.2875, - 0.13333333333333333, - 0.09583333333333334, - 0.6625, - 0.14583333333333334, - 0.2, - 0.10833333333333334, - 0.2833333333333333, - 0.125, - 0.1875, - 0.4666666666666667, - 0.4041666666666667, - 0.475, - 0.08333333333333333, - 0.1625, - 0.30833333333333335, - 0.05416666666666667, - 0.09166666666666666, - 0.36666666666666664, - 0.17916666666666667, - 0.35833333333333334, - 0.2125, - 0.3458333333333333, - 0.23333333333333334, - 0.30416666666666664, - 0.925, - 0.26666666666666666, - 0.38333333333333336, - 0.14583333333333334, - 0.225, - 0.23333333333333334, - 0.05416666666666667, - 0.19166666666666668, - 0.058333333333333334, - 0.17083333333333334, - 0.19166666666666668, - 0.14583333333333334, - 0.3958333333333333, - 0.2, - 0.7916666666666666, - 0.0625, - 0.07083333333333333, - 0.16666666666666666, - 0.4041666666666667, - 0.07083333333333333, - 0.11666666666666667, - 0.12083333333333333, - 0.19166666666666668, - 0.4625, - 0.7125, - 0.09583333333333334, - 0.075, - 0.2625, - 0.375, - 0.05416666666666667, - 0.30416666666666664, - 0.10833333333333334, - 0.15416666666666667, - 0.16666666666666666, - 0.25833333333333336, - 0.44583333333333336, - 0.07083333333333333, - 0.09583333333333334, - 0.0625, - 0.10416666666666667, - 0.225, - 0.15833333333333333, - 0.3625, - 0.10833333333333334, - 0.12083333333333333, - 0.475, - 0.17083333333333334, - 0.1625, - 0.44166666666666665, - 0.35833333333333334, - 0.9416666666666667, - 0.2875, - 0.775, - 0.5291666666666667, - 0.12083333333333333, - 0.07916666666666666, - 0.6416666666666667, - 0.2708333333333333, - 0.12083333333333333, - 0.23333333333333334, - 0.07916666666666666, - 0.14166666666666666, - 0.06666666666666667, - 0.4875, - 0.15, - 0.6875, - 0.14166666666666666, - 0.6375, - 0.1, - 0.18333333333333332, - 0.575, - 0.11666666666666667, - 0.175, - 0.5458333333333333, - 0.0875, - 0.058333333333333334, - 0.1, - 0.12916666666666668, - 0.07916666666666666, - 0.14583333333333334, - 0.125, - 0.32083333333333336, - 0.19166666666666668, - 0.4375, - 0.7083333333333334, - 0.39166666666666666, - 0.35, - 0.275, - 0.6541666666666667, - 0.19166666666666668, - 0.075, - 0.7708333333333334, - 0.2625, - 0.4666666666666667, - 0.07916666666666666, - 0.4583333333333333, - 0.125, - 0.09583333333333334, - 0.09583333333333334, - 0.2, - 0.25833333333333336, - 0.22083333333333333, - 0.07916666666666666, - 0.39166666666666666, - 0.1125, - 0.0875, - 0.09166666666666666, - 0.17916666666666667, - 0.375, - 0.12083333333333333, - 0.1375, - 0.12916666666666668, - 0.0625, - 0.17083333333333334, - 0.0625, - 0.325, - 0.17083333333333334, - 0.24583333333333332, - 0.07083333333333333, - 0.17083333333333334, - 0.14583333333333334, - 0.20833333333333334, - 0.3541666666666667, - 0.2833333333333333, - 0.0625, - 0.2, - 0.1875, - 0.10416666666666667, - 0.4, - 0.16666666666666666, - 0.275, - 0.1875, - 0.2, - 0.058333333333333334, - 0.06666666666666667, - 0.12083333333333333, - 0.1, - 0.3625, - 0.07916666666666666, - 0.24166666666666667, - 0.1125, - 0.15416666666666667, - 0.12083333333333333, - 0.1875, - 0.11666666666666667, - 0.22916666666666666, - 0.09583333333333334, - 0.07916666666666666, - 0.09583333333333334, - 0.07916666666666666, - 0.08333333333333333, - 0.0875, - 0.0875, - 0.10416666666666667, - 0.07083333333333333, - 0.125, - 0.1125, - 0.15833333333333333, - 0.2125, - 0.0875, - 0.23333333333333334, - 0.30416666666666664, - 0.09583333333333334, - 0.058333333333333334, - 0.4666666666666667, - -2.146254403392474, - 7.801154937346777, - 8.593973797559737, - 13.475293729702631, - 12.875791436433792, - 22.521520747741064, - 0.2596044953757276, - 11.300073413054148, - 11.300073413054148, - -0.4298660364622871, - 0.32083333333333336, - 12.082130233446756, - 6.488119000196457, - 3.9584131479263305, - 20.674948585033416, - 11.27687188188235, - 5.128823447227478, - 4.1128416160742445, - 0.3958333333333333, - 0.175, - 0.45, - 0.0625, - 0.175, - 0.5708333333333333, - 0.058333333333333334, - 0.5583333333333333, - 0.35833333333333334, - 0.325, - 0.1125, - 0.13333333333333333 - ], - "scale_": [ - 0.3869395588747963, - 0.3611084401610632, - 0.2633913438213187, - 0.43771819955563085, - 0.24206145913796356, - 0.24944382578492985, - 0.4807221130757354, - 0.28855482821968037, - 0.3210226714043032, - 0.36110844016106325, - 0.2763853991962831, - 0.39361218928731795, - 0.3054766312211491, - 0.32102267140430313, - 0.3487079325484618, - 0.23437268517375365, - 0.256546237981036, - 0.42809331796804473, - 0.28855482821968026, - 0.39361218928731795, - 0.43771819955563085, - 0.4061164310337076, - 0.25654623798103604, - 0.43771819955563085, - 0.3399346342395183, - 0.30000000000000054, - 0.31598061649411274, - 0.24206145913796356, - 0.33071891388307384, - 0.25654623798103593, - 0.4280933179680448, - 0.40309135303165283, - 0.45259667475579113, - 0.3399346342395183, - 0.29436254101966763, - 0.4728570079844433, - 0.3529390488770289, - 0.39999999999999947, - 0.3108009366495254, - 0.4506168611531928, - 0.33071891388307384, - 0.3903123748998999, - 0.4988876515698586, - 0.49073004006502613, - 0.49937460888595453, - 0.27638539919628324, - 0.3689088640843435, - 0.4618050334165817, - 0.22634628092568473, - 0.2885548282196803, - 0.4818944098266997, - 0.383491815065488, - 0.47951074602719407, - 0.40907670429883947, - 0.47563918981607134, - 0.42295258468165065, - 0.460053589873567, - 0.26339134382131857, - 0.44221663871405253, - 0.4861984048604936, - 0.3529390488770289, - 0.4175823272122512, - 0.4229525846816506, - 0.22634628092568487, - 0.39361218928731795, - 0.23437268517375362, - 0.3763632627602693, - 0.39361218928731795, - 0.352939048877029, - 0.4890289414293969, - 0.3999999999999994, - 0.40611643103370754, - 0.24206145913796356, - 0.25654623798103593, - 0.3726779962499653, - 0.49073004006502635, - 0.2565462379810359, - 0.3210226714043031, - 0.3259334884434071, - 0.39361218928731795, - 0.49859176687947787, - 0.45259667475579113, - 0.29436254101966763, - 0.26339134382131874, - 0.43999289766995064, - 0.4841229182759271, - 0.2263462809256849, - 0.4600535898735668, - 0.31080093664952513, - 0.36110844016106325, - 0.3726779962499654, - 0.43771819955563085, - 0.4970573128143491, - 0.256546237981036, - 0.29436254101966763, - 0.24206145913796356, - 0.30547663122114915, - 0.4175823272122511, - 0.3650532685634915, - 0.4807221130757354, - 0.31080093664952535, - 0.3259334884434071, - 0.4993746088859546, - 0.37636326276026943, - 0.3689088640843435, - 0.4965855638479852, - 0.479510746027194, - 0.23437268517375365, - 0.4525966747557911, - 0.4175823272122509, - 0.49914858064062995, - 0.3259334884434073, - 0.26999871398870723, - 0.479510746027194, - 0.4443901876604482, - 0.3259334884434068, - 0.4229525846816508, - 0.2699987139887075, - 0.3487079325484619, - 0.24944382578493005, - 0.49984372557830503, - 0.3570714214271433, - 0.46351240544347894, - 0.3487079325484618, - 0.4807221130757353, - 0.30000000000000027, - 0.38693955887479664, - 0.494342998332129, - 0.3210226714043032, - 0.3799671038392669, - 0.4978948740000795, - 0.282566363886433, - 0.23437268517375365, - 0.3000000000000004, - 0.33538431521001266, - 0.26999871398870745, - 0.352939048877029, - 0.33071891388307384, - 0.4667968568398418, - 0.39361218928731795, - 0.49607837082461076, - 0.4545296714431543, - 0.4881228215202494, - 0.4769696007084731, - 0.44651427748729405, - 0.4756391898160713, - 0.39361218928731795, - 0.2633913438213188, - 0.4202966875381677, - 0.43999289766995076, - 0.4988876515698584, - 0.2699987139887075, - 0.4982608642958912, - 0.33071891388307384, - 0.2943625410196677, - 0.29436254101966763, - 0.3999999999999995, - 0.43771819955563085, - 0.41480835601783866, - 0.2699987139887076, - 0.4881228215202494, - 0.3159806164941125, - 0.282566363886433, - 0.2885548282196805, - 0.38349181506548796, - 0.4841229182759271, - 0.3259334884434072, - 0.3443744328488981, - 0.33538431521001266, - 0.24206145913796356, - 0.3763632627602695, - 0.24206145913796356, - 0.46837484987988026, - 0.3763632627602693, - 0.4305801964275135, - 0.256546237981036, - 0.37636326276026916, - 0.352939048877029, - 0.4061164310337075, - 0.47826001180204153, - 0.4506168611531928, - 0.24206145913796356, - 0.39999999999999947, - 0.3903123748998999, - 0.30547663122114904, - 0.48989794855663465, - 0.3726779962499655, - 0.44651427748729405, - 0.3903123748998999, - 0.39999999999999947, - 0.23437268517375365, - 0.24944382578492977, - 0.3259334884434073, - 0.30000000000000054, - 0.4807221130757354, - 0.26999871398870745, - 0.4280933179680448, - 0.3159806164941127, - 0.3611084401610632, - 0.3259334884434069, - 0.3903123748998999, - 0.3210226714043032, - 0.4202966875381677, - 0.29436254101966763, - 0.2699987139887075, - 0.29436254101966763, - 0.2699987139887073, - 0.27638539919628285, - 0.282566363886433, - 0.282566363886433, - 0.30547663122114904, - 0.256546237981036, - 0.33071891388307384, - 0.31598061649411285, - 0.3650532685634915, - 0.4090767042988395, - 0.282566363886433, - 0.42295258468165076, - 0.4600535898735669, - 0.29436254101966763, - 0.23437268517375373, - 0.49888765156985854, - 0.11183239785277124, - 11.006856017935199, - 6.74696273831558, - 9.398562920215248, - 10.49986877565887, - 19.016553471995024, - 0.16758121171067086, - 2.630409763969515, - 2.630409763969515, - 0.062526296167406, - 0.5488466442357912, - 7.838650428432953, - 6.370029290405389, - 5.168564771106618, - 17.959079734323907, - 7.235510154549846, - 7.9573732289769, - 6.1491094579886205, - 0.513954575381479, - 0.4771879434073472, - 0.582380173655205, - 0.24206145913796356, - 0.4771879434073472, - 0.7604708884778046, - 0.2343726851737536, - 0.7164243776483946, - 0.5130924759620721, - 0.48584119490494754, - 0.3159806164941127, - 0.3399346342395185 - ], - "n_samples_seen_": 240, - "feature_names_in_": { - "py/tuple": [ - [ - "Descriptor_FingerprintSet_MorganFP_0", - "Descriptor_FingerprintSet_MorganFP_1", - "Descriptor_FingerprintSet_MorganFP_2", - "Descriptor_FingerprintSet_MorganFP_3", - "Descriptor_FingerprintSet_MorganFP_4", - "Descriptor_FingerprintSet_MorganFP_5", - "Descriptor_FingerprintSet_MorganFP_7", - "Descriptor_FingerprintSet_MorganFP_8", - "Descriptor_FingerprintSet_MorganFP_9", - "Descriptor_FingerprintSet_MorganFP_11", - "Descriptor_FingerprintSet_MorganFP_12", - "Descriptor_FingerprintSet_MorganFP_13", - "Descriptor_FingerprintSet_MorganFP_14", - "Descriptor_FingerprintSet_MorganFP_15", - "Descriptor_FingerprintSet_MorganFP_16", - "Descriptor_FingerprintSet_MorganFP_17", - "Descriptor_FingerprintSet_MorganFP_18", - "Descriptor_FingerprintSet_MorganFP_20", - "Descriptor_FingerprintSet_MorganFP_21", - "Descriptor_FingerprintSet_MorganFP_22", - "Descriptor_FingerprintSet_MorganFP_23", - "Descriptor_FingerprintSet_MorganFP_24", - "Descriptor_FingerprintSet_MorganFP_25", - "Descriptor_FingerprintSet_MorganFP_26", - "Descriptor_FingerprintSet_MorganFP_27", - "Descriptor_FingerprintSet_MorganFP_28", - "Descriptor_FingerprintSet_MorganFP_29", - "Descriptor_FingerprintSet_MorganFP_30", - "Descriptor_FingerprintSet_MorganFP_31", - "Descriptor_FingerprintSet_MorganFP_32", - "Descriptor_FingerprintSet_MorganFP_33", - "Descriptor_FingerprintSet_MorganFP_34", - "Descriptor_FingerprintSet_MorganFP_36", - "Descriptor_FingerprintSet_MorganFP_37", - "Descriptor_FingerprintSet_MorganFP_38", - "Descriptor_FingerprintSet_MorganFP_39", - "Descriptor_FingerprintSet_MorganFP_40", - "Descriptor_FingerprintSet_MorganFP_41", - "Descriptor_FingerprintSet_MorganFP_42", - "Descriptor_FingerprintSet_MorganFP_43", - "Descriptor_FingerprintSet_MorganFP_44", - "Descriptor_FingerprintSet_MorganFP_45", - "Descriptor_FingerprintSet_MorganFP_46", - "Descriptor_FingerprintSet_MorganFP_47", - "Descriptor_FingerprintSet_MorganFP_48", - "Descriptor_FingerprintSet_MorganFP_50", - "Descriptor_FingerprintSet_MorganFP_51", - "Descriptor_FingerprintSet_MorganFP_52", - "Descriptor_FingerprintSet_MorganFP_53", - "Descriptor_FingerprintSet_MorganFP_54", - "Descriptor_FingerprintSet_MorganFP_56", - "Descriptor_FingerprintSet_MorganFP_57", - "Descriptor_FingerprintSet_MorganFP_58", - "Descriptor_FingerprintSet_MorganFP_59", - "Descriptor_FingerprintSet_MorganFP_60", - "Descriptor_FingerprintSet_MorganFP_61", - "Descriptor_FingerprintSet_MorganFP_62", - "Descriptor_FingerprintSet_MorganFP_63", - "Descriptor_FingerprintSet_MorganFP_65", - "Descriptor_FingerprintSet_MorganFP_66", - "Descriptor_FingerprintSet_MorganFP_67", - "Descriptor_FingerprintSet_MorganFP_68", - "Descriptor_FingerprintSet_MorganFP_69", - "Descriptor_FingerprintSet_MorganFP_70", - "Descriptor_FingerprintSet_MorganFP_71", - "Descriptor_FingerprintSet_MorganFP_72", - "Descriptor_FingerprintSet_MorganFP_73", - "Descriptor_FingerprintSet_MorganFP_74", - "Descriptor_FingerprintSet_MorganFP_75", - "Descriptor_FingerprintSet_MorganFP_77", - "Descriptor_FingerprintSet_MorganFP_79", - "Descriptor_FingerprintSet_MorganFP_80", - "Descriptor_FingerprintSet_MorganFP_82", - "Descriptor_FingerprintSet_MorganFP_83", - "Descriptor_FingerprintSet_MorganFP_84", - "Descriptor_FingerprintSet_MorganFP_85", - "Descriptor_FingerprintSet_MorganFP_86", - "Descriptor_FingerprintSet_MorganFP_87", - "Descriptor_FingerprintSet_MorganFP_88", - "Descriptor_FingerprintSet_MorganFP_89", - "Descriptor_FingerprintSet_MorganFP_90", - "Descriptor_FingerprintSet_MorganFP_91", - "Descriptor_FingerprintSet_MorganFP_92", - "Descriptor_FingerprintSet_MorganFP_94", - "Descriptor_FingerprintSet_MorganFP_95", - "Descriptor_FingerprintSet_MorganFP_96", - "Descriptor_FingerprintSet_MorganFP_98", - "Descriptor_FingerprintSet_MorganFP_99", - "Descriptor_FingerprintSet_MorganFP_101", - "Descriptor_FingerprintSet_MorganFP_102", - "Descriptor_FingerprintSet_MorganFP_103", - "Descriptor_FingerprintSet_MorganFP_104", - "Descriptor_FingerprintSet_MorganFP_105", - "Descriptor_FingerprintSet_MorganFP_106", - "Descriptor_FingerprintSet_MorganFP_108", - "Descriptor_FingerprintSet_MorganFP_109", - "Descriptor_FingerprintSet_MorganFP_110", - "Descriptor_FingerprintSet_MorganFP_111", - "Descriptor_FingerprintSet_MorganFP_112", - "Descriptor_FingerprintSet_MorganFP_113", - "Descriptor_FingerprintSet_MorganFP_114", - "Descriptor_FingerprintSet_MorganFP_115", - "Descriptor_FingerprintSet_MorganFP_117", - "Descriptor_FingerprintSet_MorganFP_118", - "Descriptor_FingerprintSet_MorganFP_119", - "Descriptor_FingerprintSet_MorganFP_120", - "Descriptor_FingerprintSet_MorganFP_121", - "Descriptor_FingerprintSet_MorganFP_122", - "Descriptor_FingerprintSet_MorganFP_123", - "Descriptor_FingerprintSet_MorganFP_124", - "Descriptor_FingerprintSet_MorganFP_125", - "Descriptor_FingerprintSet_MorganFP_126", - "Descriptor_FingerprintSet_MorganFP_127", - "Descriptor_FingerprintSet_MorganFP_128", - "Descriptor_FingerprintSet_MorganFP_129", - "Descriptor_FingerprintSet_MorganFP_131", - "Descriptor_FingerprintSet_MorganFP_132", - "Descriptor_FingerprintSet_MorganFP_133", - "Descriptor_FingerprintSet_MorganFP_134", - "Descriptor_FingerprintSet_MorganFP_135", - "Descriptor_FingerprintSet_MorganFP_136", - "Descriptor_FingerprintSet_MorganFP_137", - "Descriptor_FingerprintSet_MorganFP_138", - "Descriptor_FingerprintSet_MorganFP_139", - "Descriptor_FingerprintSet_MorganFP_140", - "Descriptor_FingerprintSet_MorganFP_141", - "Descriptor_FingerprintSet_MorganFP_142", - "Descriptor_FingerprintSet_MorganFP_144", - "Descriptor_FingerprintSet_MorganFP_145", - "Descriptor_FingerprintSet_MorganFP_146", - "Descriptor_FingerprintSet_MorganFP_147", - "Descriptor_FingerprintSet_MorganFP_148", - "Descriptor_FingerprintSet_MorganFP_149", - "Descriptor_FingerprintSet_MorganFP_150", - "Descriptor_FingerprintSet_MorganFP_151", - "Descriptor_FingerprintSet_MorganFP_152", - "Descriptor_FingerprintSet_MorganFP_153", - "Descriptor_FingerprintSet_MorganFP_155", - "Descriptor_FingerprintSet_MorganFP_156", - "Descriptor_FingerprintSet_MorganFP_157", - "Descriptor_FingerprintSet_MorganFP_158", - "Descriptor_FingerprintSet_MorganFP_160", - "Descriptor_FingerprintSet_MorganFP_161", - "Descriptor_FingerprintSet_MorganFP_162", - "Descriptor_FingerprintSet_MorganFP_163", - "Descriptor_FingerprintSet_MorganFP_164", - "Descriptor_FingerprintSet_MorganFP_165", - "Descriptor_FingerprintSet_MorganFP_166", - "Descriptor_FingerprintSet_MorganFP_167", - "Descriptor_FingerprintSet_MorganFP_168", - "Descriptor_FingerprintSet_MorganFP_169", - "Descriptor_FingerprintSet_MorganFP_170", - "Descriptor_FingerprintSet_MorganFP_172", - "Descriptor_FingerprintSet_MorganFP_173", - "Descriptor_FingerprintSet_MorganFP_174", - "Descriptor_FingerprintSet_MorganFP_175", - "Descriptor_FingerprintSet_MorganFP_177", - "Descriptor_FingerprintSet_MorganFP_178", - "Descriptor_FingerprintSet_MorganFP_179", - "Descriptor_FingerprintSet_MorganFP_182", - "Descriptor_FingerprintSet_MorganFP_183", - "Descriptor_FingerprintSet_MorganFP_184", - "Descriptor_FingerprintSet_MorganFP_185", - "Descriptor_FingerprintSet_MorganFP_186", - "Descriptor_FingerprintSet_MorganFP_187", - "Descriptor_FingerprintSet_MorganFP_188", - "Descriptor_FingerprintSet_MorganFP_189", - "Descriptor_FingerprintSet_MorganFP_191", - "Descriptor_FingerprintSet_MorganFP_192", - "Descriptor_FingerprintSet_MorganFP_193", - "Descriptor_FingerprintSet_MorganFP_194", - "Descriptor_FingerprintSet_MorganFP_195", - "Descriptor_FingerprintSet_MorganFP_196", - "Descriptor_FingerprintSet_MorganFP_197", - "Descriptor_FingerprintSet_MorganFP_198", - "Descriptor_FingerprintSet_MorganFP_199", - "Descriptor_FingerprintSet_MorganFP_200", - "Descriptor_FingerprintSet_MorganFP_201", - "Descriptor_FingerprintSet_MorganFP_202", - "Descriptor_FingerprintSet_MorganFP_203", - "Descriptor_FingerprintSet_MorganFP_204", - "Descriptor_FingerprintSet_MorganFP_205", - "Descriptor_FingerprintSet_MorganFP_206", - "Descriptor_FingerprintSet_MorganFP_207", - "Descriptor_FingerprintSet_MorganFP_208", - "Descriptor_FingerprintSet_MorganFP_209", - "Descriptor_FingerprintSet_MorganFP_210", - "Descriptor_FingerprintSet_MorganFP_211", - "Descriptor_FingerprintSet_MorganFP_212", - "Descriptor_FingerprintSet_MorganFP_213", - "Descriptor_FingerprintSet_MorganFP_214", - "Descriptor_FingerprintSet_MorganFP_215", - "Descriptor_FingerprintSet_MorganFP_216", - "Descriptor_FingerprintSet_MorganFP_217", - "Descriptor_FingerprintSet_MorganFP_218", - "Descriptor_FingerprintSet_MorganFP_219", - "Descriptor_FingerprintSet_MorganFP_221", - "Descriptor_FingerprintSet_MorganFP_226", - "Descriptor_FingerprintSet_MorganFP_228", - "Descriptor_FingerprintSet_MorganFP_229", - "Descriptor_FingerprintSet_MorganFP_230", - "Descriptor_FingerprintSet_MorganFP_231", - "Descriptor_FingerprintSet_MorganFP_232", - "Descriptor_FingerprintSet_MorganFP_233", - "Descriptor_FingerprintSet_MorganFP_234", - "Descriptor_FingerprintSet_MorganFP_235", - "Descriptor_FingerprintSet_MorganFP_237", - "Descriptor_FingerprintSet_MorganFP_239", - "Descriptor_FingerprintSet_MorganFP_241", - "Descriptor_FingerprintSet_MorganFP_242", - "Descriptor_FingerprintSet_MorganFP_243", - "Descriptor_FingerprintSet_MorganFP_244", - "Descriptor_FingerprintSet_MorganFP_245", - "Descriptor_FingerprintSet_MorganFP_246", - "Descriptor_FingerprintSet_MorganFP_247", - "Descriptor_FingerprintSet_MorganFP_248", - "Descriptor_FingerprintSet_MorganFP_249", - "Descriptor_FingerprintSet_MorganFP_250", - "Descriptor_FingerprintSet_MorganFP_251", - "Descriptor_FingerprintSet_MorganFP_252", - "Descriptor_FingerprintSet_MorganFP_254", - "Descriptor_FingerprintSet_MorganFP_255", - "Descriptor_RDkit_BCUT2D_CHGLO", - "Descriptor_RDkit_EState_VSA1", - "Descriptor_RDkit_EState_VSA10", - "Descriptor_RDkit_EState_VSA2", - "Descriptor_RDkit_EState_VSA5", - "Descriptor_RDkit_EState_VSA7", - "Descriptor_RDkit_FractionCSP3", - "Descriptor_RDkit_MaxAbsEStateIndex", - "Descriptor_RDkit_MaxEStateIndex", - "Descriptor_RDkit_MinPartialCharge", - "Descriptor_RDkit_NumSaturatedHeterocycles", - "Descriptor_RDkit_PEOE_VSA11", - "Descriptor_RDkit_PEOE_VSA4", - "Descriptor_RDkit_PEOE_VSA5", - "Descriptor_RDkit_PEOE_VSA6", - "Descriptor_RDkit_SMR_VSA9", - "Descriptor_RDkit_SlogP_VSA12", - "Descriptor_RDkit_SlogP_VSA4", - "Descriptor_RDkit_fr_ArN", - "Descriptor_RDkit_fr_Ar_NH", - "Descriptor_RDkit_fr_NH2", - "Descriptor_RDkit_fr_Ndealkylation1", - "Descriptor_RDkit_fr_Nhpyrrole", - "Descriptor_RDkit_fr_aryl_methyl", - "Descriptor_RDkit_fr_ester", - "Descriptor_RDkit_fr_ether", - "Descriptor_RDkit_fr_furan", - "Descriptor_RDkit_fr_imidazole", - "Descriptor_RDkit_fr_piperzine", - "Descriptor_RDkit_fr_thiazole" - ] - ] - }, - "versions": { - "py/tuple": [ - "sklearn", - "1.2.1" - ] - } - } - } - }, - "earlyStopping": null, - "parameters": { - "random_state": 2746317213 - }, - "alg": "sklearn.ensemble._forest.ExtraTreesClassifier", - "randomState": 2746317213, - "estimator": "./ConsistencyChecksCLS_2746317213/ConsistencyChecksCLS_2746317213.json" - } -} \ No newline at end of file diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327.cv.tsv b/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327.cv.tsv index 3bb6e979..e503aef9 100644 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327.cv.tsv +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327.cv.tsv @@ -1,241 +1,241 @@ QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction Fold -ConsistencyChecks_057 True 1 0.0 -ConsistencyChecks_166 True 1 0.0 -ConsistencyChecks_040 True 1 0.0 -ConsistencyChecks_097 True 0 0.0 -ConsistencyChecks_056 False 1 0.0 -ConsistencyChecks_242 True 1 0.0 -ConsistencyChecks_181 False 0 0.0 -ConsistencyChecks_021 False 0 0.0 -ConsistencyChecks_277 True 0 0.0 -ConsistencyChecks_117 False 1 0.0 -ConsistencyChecks_018 True 1 0.0 -ConsistencyChecks_229 True 1 0.0 -ConsistencyChecks_265 True 0 0.0 -ConsistencyChecks_130 True 1 0.0 -ConsistencyChecks_270 True 1 0.0 -ConsistencyChecks_296 True 1 0.0 -ConsistencyChecks_264 True 0 0.0 -ConsistencyChecks_275 False 0 0.0 -ConsistencyChecks_134 True 1 0.0 -ConsistencyChecks_014 False 0 0.0 -ConsistencyChecks_106 True 0 0.0 -ConsistencyChecks_218 False 0 0.0 -ConsistencyChecks_262 False 0 0.0 -ConsistencyChecks_171 True 1 0.0 -ConsistencyChecks_282 True 1 0.0 -ConsistencyChecks_267 True 1 0.0 -ConsistencyChecks_158 False 0 0.0 -ConsistencyChecks_016 False 0 0.0 -ConsistencyChecks_015 True 1 0.0 -ConsistencyChecks_213 True 0 0.0 -ConsistencyChecks_176 True 1 0.0 -ConsistencyChecks_163 True 1 0.0 -ConsistencyChecks_111 True 0 0.0 -ConsistencyChecks_102 True 1 0.0 -ConsistencyChecks_274 True 1 0.0 -ConsistencyChecks_003 True 1 0.0 -ConsistencyChecks_289 True 0 0.0 -ConsistencyChecks_224 True 1 0.0 -ConsistencyChecks_292 True 1 0.0 -ConsistencyChecks_010 True 0 0.0 -ConsistencyChecks_131 False 0 0.0 -ConsistencyChecks_230 True 1 0.0 -ConsistencyChecks_280 False 0 0.0 -ConsistencyChecks_031 True 0 0.0 -ConsistencyChecks_293 True 0 0.0 -ConsistencyChecks_020 True 1 0.0 -ConsistencyChecks_194 True 1 0.0 -ConsistencyChecks_028 True 1 0.0 -ConsistencyChecks_295 True 1 1.0 -ConsistencyChecks_005 True 1 1.0 -ConsistencyChecks_058 True 1 1.0 -ConsistencyChecks_298 False 1 1.0 -ConsistencyChecks_191 True 1 1.0 -ConsistencyChecks_159 False 0 1.0 -ConsistencyChecks_188 True 1 1.0 -ConsistencyChecks_120 True 1 1.0 -ConsistencyChecks_024 True 0 1.0 -ConsistencyChecks_089 True 1 1.0 -ConsistencyChecks_073 True 1 1.0 -ConsistencyChecks_151 True 1 1.0 -ConsistencyChecks_193 True 0 1.0 -ConsistencyChecks_157 True 1 1.0 -ConsistencyChecks_006 True 1 1.0 -ConsistencyChecks_184 True 1 1.0 -ConsistencyChecks_122 True 1 1.0 -ConsistencyChecks_027 True 1 1.0 -ConsistencyChecks_252 False 0 1.0 -ConsistencyChecks_206 False 0 1.0 -ConsistencyChecks_222 True 1 1.0 -ConsistencyChecks_168 False 1 1.0 -ConsistencyChecks_046 True 1 1.0 -ConsistencyChecks_142 True 0 1.0 -ConsistencyChecks_287 True 1 1.0 -ConsistencyChecks_183 False 1 1.0 -ConsistencyChecks_268 False 0 1.0 -ConsistencyChecks_141 True 1 1.0 -ConsistencyChecks_139 False 0 1.0 -ConsistencyChecks_050 False 1 1.0 -ConsistencyChecks_039 True 1 1.0 -ConsistencyChecks_023 False 0 1.0 -ConsistencyChecks_205 True 1 1.0 -ConsistencyChecks_258 False 0 1.0 -ConsistencyChecks_189 False 1 1.0 -ConsistencyChecks_208 True 1 1.0 -ConsistencyChecks_146 False 0 1.0 -ConsistencyChecks_279 True 1 1.0 -ConsistencyChecks_244 True 1 1.0 -ConsistencyChecks_288 True 0 1.0 -ConsistencyChecks_241 True 1 1.0 -ConsistencyChecks_129 False 0 1.0 -ConsistencyChecks_152 True 1 1.0 -ConsistencyChecks_086 False 1 1.0 -ConsistencyChecks_110 True 1 1.0 -ConsistencyChecks_088 False 0 1.0 -ConsistencyChecks_217 True 1 1.0 -ConsistencyChecks_099 True 1 1.0 -ConsistencyChecks_043 True 1 2.0 -ConsistencyChecks_165 True 1 2.0 -ConsistencyChecks_153 False 1 2.0 -ConsistencyChecks_045 True 1 2.0 -ConsistencyChecks_147 True 1 2.0 -ConsistencyChecks_299 True 1 2.0 -ConsistencyChecks_135 False 0 2.0 -ConsistencyChecks_148 False 0 2.0 -ConsistencyChecks_260 False 0 2.0 -ConsistencyChecks_172 False 1 2.0 -ConsistencyChecks_095 True 1 2.0 -ConsistencyChecks_245 False 0 2.0 -ConsistencyChecks_094 True 1 2.0 -ConsistencyChecks_187 False 1 2.0 -ConsistencyChecks_195 True 1 2.0 -ConsistencyChecks_011 True 1 2.0 -ConsistencyChecks_035 True 0 2.0 -ConsistencyChecks_128 True 1 2.0 -ConsistencyChecks_237 True 1 2.0 -ConsistencyChecks_114 False 1 2.0 -ConsistencyChecks_283 True 1 2.0 -ConsistencyChecks_174 True 0 2.0 -ConsistencyChecks_049 True 1 2.0 -ConsistencyChecks_200 True 1 2.0 -ConsistencyChecks_149 False 0 2.0 -ConsistencyChecks_220 False 1 2.0 -ConsistencyChecks_204 False 0 2.0 -ConsistencyChecks_082 False 0 2.0 -ConsistencyChecks_109 False 0 2.0 -ConsistencyChecks_096 True 1 2.0 -ConsistencyChecks_132 True 1 2.0 -ConsistencyChecks_029 True 1 2.0 -ConsistencyChecks_178 True 1 2.0 -ConsistencyChecks_164 True 1 2.0 -ConsistencyChecks_059 True 1 2.0 -ConsistencyChecks_182 False 1 2.0 -ConsistencyChecks_126 True 1 2.0 -ConsistencyChecks_278 False 1 2.0 -ConsistencyChecks_063 False 1 2.0 -ConsistencyChecks_093 True 0 2.0 -ConsistencyChecks_167 True 1 2.0 -ConsistencyChecks_273 True 1 2.0 -ConsistencyChecks_078 True 1 2.0 -ConsistencyChecks_214 False 0 2.0 -ConsistencyChecks_269 True 1 2.0 -ConsistencyChecks_143 False 1 2.0 -ConsistencyChecks_124 True 1 2.0 -ConsistencyChecks_055 True 1 2.0 -ConsistencyChecks_053 False 1 3.0 -ConsistencyChecks_186 False 1 3.0 -ConsistencyChecks_297 True 1 3.0 -ConsistencyChecks_179 True 0 3.0 -ConsistencyChecks_246 True 1 3.0 -ConsistencyChecks_075 False 0 3.0 -ConsistencyChecks_253 True 1 3.0 -ConsistencyChecks_215 False 0 3.0 -ConsistencyChecks_219 False 0 3.0 -ConsistencyChecks_150 True 1 3.0 -ConsistencyChecks_140 False 1 3.0 -ConsistencyChecks_190 True 1 3.0 -ConsistencyChecks_004 True 1 3.0 -ConsistencyChecks_052 True 1 3.0 -ConsistencyChecks_210 False 1 3.0 -ConsistencyChecks_271 False 1 3.0 -ConsistencyChecks_261 False 1 3.0 -ConsistencyChecks_125 False 0 3.0 -ConsistencyChecks_175 True 1 3.0 -ConsistencyChecks_013 False 0 3.0 -ConsistencyChecks_144 True 0 3.0 -ConsistencyChecks_137 True 1 3.0 -ConsistencyChecks_101 True 0 3.0 -ConsistencyChecks_032 False 0 3.0 -ConsistencyChecks_145 True 1 3.0 -ConsistencyChecks_108 True 1 3.0 -ConsistencyChecks_060 False 0 3.0 -ConsistencyChecks_090 False 1 3.0 -ConsistencyChecks_133 True 0 3.0 -ConsistencyChecks_285 False 0 3.0 -ConsistencyChecks_281 True 1 3.0 -ConsistencyChecks_079 False 0 3.0 -ConsistencyChecks_119 True 1 3.0 -ConsistencyChecks_138 True 1 3.0 -ConsistencyChecks_272 False 1 3.0 -ConsistencyChecks_286 True 1 3.0 -ConsistencyChecks_085 False 0 3.0 -ConsistencyChecks_266 True 1 3.0 -ConsistencyChecks_061 False 0 3.0 -ConsistencyChecks_250 True 0 3.0 -ConsistencyChecks_034 True 1 3.0 -ConsistencyChecks_234 False 1 3.0 -ConsistencyChecks_201 True 1 3.0 -ConsistencyChecks_107 False 1 3.0 -ConsistencyChecks_291 False 1 3.0 -ConsistencyChecks_069 False 1 3.0 -ConsistencyChecks_263 True 0 3.0 -ConsistencyChecks_026 False 0 3.0 -ConsistencyChecks_076 True 1 4.0 -ConsistencyChecks_212 True 1 4.0 -ConsistencyChecks_185 True 1 4.0 -ConsistencyChecks_199 True 0 4.0 -ConsistencyChecks_290 True 1 4.0 -ConsistencyChecks_255 True 1 4.0 -ConsistencyChecks_025 False 0 4.0 -ConsistencyChecks_257 True 0 4.0 -ConsistencyChecks_030 True 1 4.0 -ConsistencyChecks_173 True 1 4.0 -ConsistencyChecks_098 False 1 4.0 -ConsistencyChecks_112 True 1 4.0 -ConsistencyChecks_251 True 1 4.0 -ConsistencyChecks_022 False 0 4.0 -ConsistencyChecks_248 True 1 4.0 -ConsistencyChecks_080 False 0 4.0 -ConsistencyChecks_104 True 1 4.0 -ConsistencyChecks_221 False 1 4.0 -ConsistencyChecks_136 False 0 4.0 -ConsistencyChecks_121 False 0 4.0 -ConsistencyChecks_247 True 0 4.0 -ConsistencyChecks_041 False 0 4.0 -ConsistencyChecks_068 True 1 4.0 -ConsistencyChecks_203 False 1 4.0 -ConsistencyChecks_002 True 1 4.0 -ConsistencyChecks_198 True 1 4.0 -ConsistencyChecks_202 False 0 4.0 -ConsistencyChecks_007 False 1 4.0 -ConsistencyChecks_019 True 0 4.0 -ConsistencyChecks_037 True 1 4.0 -ConsistencyChecks_048 True 1 4.0 -ConsistencyChecks_081 True 1 4.0 -ConsistencyChecks_236 True 1 4.0 -ConsistencyChecks_223 False 0 4.0 -ConsistencyChecks_000 False 0 4.0 -ConsistencyChecks_092 True 0 4.0 -ConsistencyChecks_196 True 1 4.0 -ConsistencyChecks_065 True 1 4.0 -ConsistencyChecks_047 False 1 4.0 -ConsistencyChecks_118 True 1 4.0 -ConsistencyChecks_017 True 1 4.0 -ConsistencyChecks_232 False 1 4.0 -ConsistencyChecks_239 True 1 4.0 -ConsistencyChecks_240 False 1 4.0 -ConsistencyChecks_243 False 0 4.0 -ConsistencyChecks_127 True 1 4.0 -ConsistencyChecks_054 True 1 4.0 -ConsistencyChecks_161 True 1 4.0 +ConsistencyChecks_057 True True 0.0 +ConsistencyChecks_166 True True 0.0 +ConsistencyChecks_040 True True 0.0 +ConsistencyChecks_097 True True 0.0 +ConsistencyChecks_056 False True 0.0 +ConsistencyChecks_242 True True 0.0 +ConsistencyChecks_181 False False 0.0 +ConsistencyChecks_021 False False 0.0 +ConsistencyChecks_277 True False 0.0 +ConsistencyChecks_117 False True 0.0 +ConsistencyChecks_018 True True 0.0 +ConsistencyChecks_229 True True 0.0 +ConsistencyChecks_265 True True 0.0 +ConsistencyChecks_130 True True 0.0 +ConsistencyChecks_270 True False 0.0 +ConsistencyChecks_296 True True 0.0 +ConsistencyChecks_264 True False 0.0 +ConsistencyChecks_275 False False 0.0 +ConsistencyChecks_134 True True 0.0 +ConsistencyChecks_014 False True 0.0 +ConsistencyChecks_106 True True 0.0 +ConsistencyChecks_218 False False 0.0 +ConsistencyChecks_262 False False 0.0 +ConsistencyChecks_171 True True 0.0 +ConsistencyChecks_282 True True 0.0 +ConsistencyChecks_267 True True 0.0 +ConsistencyChecks_158 False True 0.0 +ConsistencyChecks_016 False False 0.0 +ConsistencyChecks_015 True True 0.0 +ConsistencyChecks_213 True False 0.0 +ConsistencyChecks_176 True True 0.0 +ConsistencyChecks_163 True True 0.0 +ConsistencyChecks_111 True False 0.0 +ConsistencyChecks_102 True True 0.0 +ConsistencyChecks_274 True True 0.0 +ConsistencyChecks_003 True True 0.0 +ConsistencyChecks_289 True False 0.0 +ConsistencyChecks_224 True True 0.0 +ConsistencyChecks_292 True True 0.0 +ConsistencyChecks_010 True True 0.0 +ConsistencyChecks_131 False False 0.0 +ConsistencyChecks_230 True True 0.0 +ConsistencyChecks_280 False False 0.0 +ConsistencyChecks_031 True False 0.0 +ConsistencyChecks_293 True True 0.0 +ConsistencyChecks_020 True True 0.0 +ConsistencyChecks_194 True True 0.0 +ConsistencyChecks_028 True True 0.0 +ConsistencyChecks_295 True True 1.0 +ConsistencyChecks_005 True True 1.0 +ConsistencyChecks_058 True True 1.0 +ConsistencyChecks_298 False True 1.0 +ConsistencyChecks_191 True True 1.0 +ConsistencyChecks_159 False False 1.0 +ConsistencyChecks_188 True False 1.0 +ConsistencyChecks_120 True True 1.0 +ConsistencyChecks_024 True True 1.0 +ConsistencyChecks_089 True True 1.0 +ConsistencyChecks_073 True True 1.0 +ConsistencyChecks_151 True True 1.0 +ConsistencyChecks_193 True True 1.0 +ConsistencyChecks_157 True True 1.0 +ConsistencyChecks_006 True True 1.0 +ConsistencyChecks_184 True True 1.0 +ConsistencyChecks_122 True True 1.0 +ConsistencyChecks_027 True True 1.0 +ConsistencyChecks_252 False True 1.0 +ConsistencyChecks_206 False False 1.0 +ConsistencyChecks_222 True True 1.0 +ConsistencyChecks_168 False True 1.0 +ConsistencyChecks_046 True True 1.0 +ConsistencyChecks_142 True True 1.0 +ConsistencyChecks_287 True True 1.0 +ConsistencyChecks_183 False True 1.0 +ConsistencyChecks_268 False False 1.0 +ConsistencyChecks_141 True True 1.0 +ConsistencyChecks_139 False False 1.0 +ConsistencyChecks_050 False True 1.0 +ConsistencyChecks_039 True False 1.0 +ConsistencyChecks_023 False False 1.0 +ConsistencyChecks_205 True True 1.0 +ConsistencyChecks_258 False False 1.0 +ConsistencyChecks_189 False True 1.0 +ConsistencyChecks_208 True True 1.0 +ConsistencyChecks_146 False True 1.0 +ConsistencyChecks_279 True True 1.0 +ConsistencyChecks_244 True True 1.0 +ConsistencyChecks_288 True False 1.0 +ConsistencyChecks_241 True True 1.0 +ConsistencyChecks_129 False False 1.0 +ConsistencyChecks_152 True True 1.0 +ConsistencyChecks_086 False True 1.0 +ConsistencyChecks_110 True True 1.0 +ConsistencyChecks_088 False False 1.0 +ConsistencyChecks_217 True True 1.0 +ConsistencyChecks_099 True True 1.0 +ConsistencyChecks_043 True True 2.0 +ConsistencyChecks_165 True True 2.0 +ConsistencyChecks_153 False True 2.0 +ConsistencyChecks_045 True True 2.0 +ConsistencyChecks_147 True True 2.0 +ConsistencyChecks_299 True True 2.0 +ConsistencyChecks_135 False True 2.0 +ConsistencyChecks_148 False True 2.0 +ConsistencyChecks_260 False False 2.0 +ConsistencyChecks_172 False True 2.0 +ConsistencyChecks_095 True True 2.0 +ConsistencyChecks_245 False False 2.0 +ConsistencyChecks_094 True True 2.0 +ConsistencyChecks_187 False True 2.0 +ConsistencyChecks_195 True True 2.0 +ConsistencyChecks_011 True True 2.0 +ConsistencyChecks_035 True False 2.0 +ConsistencyChecks_128 True True 2.0 +ConsistencyChecks_237 True True 2.0 +ConsistencyChecks_114 False True 2.0 +ConsistencyChecks_283 True True 2.0 +ConsistencyChecks_174 True False 2.0 +ConsistencyChecks_049 True True 2.0 +ConsistencyChecks_200 True True 2.0 +ConsistencyChecks_149 False False 2.0 +ConsistencyChecks_220 False True 2.0 +ConsistencyChecks_204 False False 2.0 +ConsistencyChecks_082 False False 2.0 +ConsistencyChecks_109 False True 2.0 +ConsistencyChecks_096 True True 2.0 +ConsistencyChecks_132 True False 2.0 +ConsistencyChecks_029 True True 2.0 +ConsistencyChecks_178 True True 2.0 +ConsistencyChecks_164 True True 2.0 +ConsistencyChecks_059 True True 2.0 +ConsistencyChecks_182 False False 2.0 +ConsistencyChecks_126 True True 2.0 +ConsistencyChecks_278 False False 2.0 +ConsistencyChecks_063 False True 2.0 +ConsistencyChecks_093 True False 2.0 +ConsistencyChecks_167 True True 2.0 +ConsistencyChecks_273 True True 2.0 +ConsistencyChecks_078 True True 2.0 +ConsistencyChecks_214 False True 2.0 +ConsistencyChecks_269 True True 2.0 +ConsistencyChecks_143 False True 2.0 +ConsistencyChecks_124 True True 2.0 +ConsistencyChecks_055 True True 2.0 +ConsistencyChecks_053 False True 3.0 +ConsistencyChecks_186 False False 3.0 +ConsistencyChecks_297 True True 3.0 +ConsistencyChecks_179 True False 3.0 +ConsistencyChecks_246 True False 3.0 +ConsistencyChecks_075 False True 3.0 +ConsistencyChecks_253 True True 3.0 +ConsistencyChecks_215 False False 3.0 +ConsistencyChecks_219 False False 3.0 +ConsistencyChecks_150 True True 3.0 +ConsistencyChecks_140 False True 3.0 +ConsistencyChecks_190 True True 3.0 +ConsistencyChecks_004 True True 3.0 +ConsistencyChecks_052 True True 3.0 +ConsistencyChecks_210 False True 3.0 +ConsistencyChecks_271 False True 3.0 +ConsistencyChecks_261 False True 3.0 +ConsistencyChecks_125 False True 3.0 +ConsistencyChecks_175 True True 3.0 +ConsistencyChecks_013 False False 3.0 +ConsistencyChecks_144 True True 3.0 +ConsistencyChecks_137 True True 3.0 +ConsistencyChecks_101 True False 3.0 +ConsistencyChecks_032 False False 3.0 +ConsistencyChecks_145 True True 3.0 +ConsistencyChecks_108 True True 3.0 +ConsistencyChecks_060 False False 3.0 +ConsistencyChecks_090 False True 3.0 +ConsistencyChecks_133 True True 3.0 +ConsistencyChecks_285 False False 3.0 +ConsistencyChecks_281 True True 3.0 +ConsistencyChecks_079 False False 3.0 +ConsistencyChecks_119 True True 3.0 +ConsistencyChecks_138 True True 3.0 +ConsistencyChecks_272 False True 3.0 +ConsistencyChecks_286 True True 3.0 +ConsistencyChecks_085 False False 3.0 +ConsistencyChecks_266 True True 3.0 +ConsistencyChecks_061 False True 3.0 +ConsistencyChecks_250 True True 3.0 +ConsistencyChecks_034 True True 3.0 +ConsistencyChecks_234 False True 3.0 +ConsistencyChecks_201 True True 3.0 +ConsistencyChecks_107 False True 3.0 +ConsistencyChecks_291 False True 3.0 +ConsistencyChecks_069 False True 3.0 +ConsistencyChecks_263 True False 3.0 +ConsistencyChecks_026 False False 3.0 +ConsistencyChecks_076 True True 4.0 +ConsistencyChecks_212 True True 4.0 +ConsistencyChecks_185 True True 4.0 +ConsistencyChecks_199 True True 4.0 +ConsistencyChecks_290 True True 4.0 +ConsistencyChecks_255 True True 4.0 +ConsistencyChecks_025 False True 4.0 +ConsistencyChecks_257 True True 4.0 +ConsistencyChecks_030 True True 4.0 +ConsistencyChecks_173 True True 4.0 +ConsistencyChecks_098 False True 4.0 +ConsistencyChecks_112 True False 4.0 +ConsistencyChecks_251 True True 4.0 +ConsistencyChecks_022 False False 4.0 +ConsistencyChecks_248 True True 4.0 +ConsistencyChecks_080 False False 4.0 +ConsistencyChecks_104 True True 4.0 +ConsistencyChecks_221 False True 4.0 +ConsistencyChecks_136 False False 4.0 +ConsistencyChecks_121 False False 4.0 +ConsistencyChecks_247 True False 4.0 +ConsistencyChecks_041 False False 4.0 +ConsistencyChecks_068 True True 4.0 +ConsistencyChecks_203 False True 4.0 +ConsistencyChecks_002 True True 4.0 +ConsistencyChecks_198 True True 4.0 +ConsistencyChecks_202 False False 4.0 +ConsistencyChecks_007 False False 4.0 +ConsistencyChecks_019 True True 4.0 +ConsistencyChecks_037 True True 4.0 +ConsistencyChecks_048 True True 4.0 +ConsistencyChecks_081 True True 4.0 +ConsistencyChecks_236 True True 4.0 +ConsistencyChecks_223 False False 4.0 +ConsistencyChecks_000 False True 4.0 +ConsistencyChecks_092 True False 4.0 +ConsistencyChecks_196 True True 4.0 +ConsistencyChecks_065 True True 4.0 +ConsistencyChecks_047 False True 4.0 +ConsistencyChecks_118 True True 4.0 +ConsistencyChecks_017 True True 4.0 +ConsistencyChecks_232 False True 4.0 +ConsistencyChecks_239 True True 4.0 +ConsistencyChecks_240 False False 4.0 +ConsistencyChecks_243 False False 4.0 +ConsistencyChecks_127 True True 4.0 +ConsistencyChecks_054 True True 4.0 +ConsistencyChecks_161 True True 4.0 diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327.ind.tsv b/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327.ind.tsv index da53c58b..7955ce55 100644 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327.ind.tsv +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327.ind.tsv @@ -1,61 +1,61 @@ QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction -ConsistencyChecks_249 False 1 -ConsistencyChecks_238 False 1 -ConsistencyChecks_197 True 0 -ConsistencyChecks_036 True 1 -ConsistencyChecks_177 True 1 -ConsistencyChecks_254 False 1 -ConsistencyChecks_226 True 0 -ConsistencyChecks_155 False 1 -ConsistencyChecks_211 True 1 -ConsistencyChecks_012 True 1 -ConsistencyChecks_192 False 1 -ConsistencyChecks_156 False 0 -ConsistencyChecks_038 True 1 -ConsistencyChecks_064 False 0 -ConsistencyChecks_070 True 1 -ConsistencyChecks_077 True 0 -ConsistencyChecks_001 True 0 -ConsistencyChecks_062 True 1 -ConsistencyChecks_228 True 1 -ConsistencyChecks_009 True 1 -ConsistencyChecks_100 True 1 -ConsistencyChecks_233 True 0 -ConsistencyChecks_072 False 1 -ConsistencyChecks_116 True 1 -ConsistencyChecks_105 False 0 -ConsistencyChecks_160 False 0 -ConsistencyChecks_042 False 1 -ConsistencyChecks_044 False 0 -ConsistencyChecks_169 True 0 -ConsistencyChecks_162 True 0 -ConsistencyChecks_227 True 1 -ConsistencyChecks_115 False 0 -ConsistencyChecks_071 False 1 -ConsistencyChecks_235 False 1 -ConsistencyChecks_067 False 0 -ConsistencyChecks_087 False 1 -ConsistencyChecks_294 True 1 -ConsistencyChecks_276 False 0 -ConsistencyChecks_154 False 0 -ConsistencyChecks_207 True 1 -ConsistencyChecks_225 True 1 -ConsistencyChecks_103 False 0 -ConsistencyChecks_259 False 1 -ConsistencyChecks_209 True 1 -ConsistencyChecks_180 False 1 -ConsistencyChecks_074 True 0 -ConsistencyChecks_066 False 1 -ConsistencyChecks_083 False 1 -ConsistencyChecks_170 True 1 -ConsistencyChecks_084 False 1 -ConsistencyChecks_051 False 1 -ConsistencyChecks_123 True 1 -ConsistencyChecks_216 True 1 -ConsistencyChecks_033 False 1 -ConsistencyChecks_231 True 1 -ConsistencyChecks_256 True 1 -ConsistencyChecks_284 True 1 -ConsistencyChecks_091 False 0 -ConsistencyChecks_113 True 1 -ConsistencyChecks_008 True 1 +ConsistencyChecks_249 False True +ConsistencyChecks_238 False True +ConsistencyChecks_197 True True +ConsistencyChecks_036 True True +ConsistencyChecks_177 True True +ConsistencyChecks_254 False True +ConsistencyChecks_226 True False +ConsistencyChecks_155 False True +ConsistencyChecks_211 True True +ConsistencyChecks_012 True True +ConsistencyChecks_192 False True +ConsistencyChecks_156 False True +ConsistencyChecks_038 True False +ConsistencyChecks_064 False False +ConsistencyChecks_070 True True +ConsistencyChecks_077 True False +ConsistencyChecks_001 True False +ConsistencyChecks_062 True True +ConsistencyChecks_228 True True +ConsistencyChecks_009 True True +ConsistencyChecks_100 True True +ConsistencyChecks_233 True False +ConsistencyChecks_072 False True +ConsistencyChecks_116 True True +ConsistencyChecks_105 False True +ConsistencyChecks_160 False False +ConsistencyChecks_042 False True +ConsistencyChecks_044 False False +ConsistencyChecks_169 True True +ConsistencyChecks_162 True False +ConsistencyChecks_227 True True +ConsistencyChecks_115 False True +ConsistencyChecks_071 False True +ConsistencyChecks_235 False True +ConsistencyChecks_067 False False +ConsistencyChecks_087 False False +ConsistencyChecks_294 True True +ConsistencyChecks_276 False False +ConsistencyChecks_154 False True +ConsistencyChecks_207 True True +ConsistencyChecks_225 True True +ConsistencyChecks_103 False False +ConsistencyChecks_259 False False +ConsistencyChecks_209 True True +ConsistencyChecks_180 False True +ConsistencyChecks_074 True True +ConsistencyChecks_066 False False +ConsistencyChecks_083 False True +ConsistencyChecks_170 True True +ConsistencyChecks_084 False False +ConsistencyChecks_051 False True +ConsistencyChecks_123 True True +ConsistencyChecks_216 True True +ConsistencyChecks_033 False True +ConsistencyChecks_231 True True +ConsistencyChecks_256 True True +ConsistencyChecks_284 True True +ConsistencyChecks_091 False False +ConsistencyChecks_113 True True +ConsistencyChecks_008 True True diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327.json b/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327.json index 3801d20e..4b153849 100644 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327.json +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327.json @@ -1 +1 @@ -{"unfitted": true, "meta": ["xgboost.sklearn", "XGBClassifier"], "params": {"objective": "binary:logistic", "base_score": null, "booster": null, "callbacks": null, "colsample_bylevel": null, "colsample_bynode": null, "colsample_bytree": null, "device": null, "early_stopping_rounds": null, "enable_categorical": false, "eval_metric": null, "feature_types": null, "gamma": null, "grow_policy": null, "importance_type": null, "interaction_constraints": null, "learning_rate": null, "max_bin": null, "max_cat_threshold": null, "max_cat_to_onehot": null, "max_delta_step": null, "max_depth": null, "max_leaves": null, "min_child_weight": null, "missing": NaN, "monotone_constraints": null, "multi_strategy": null, "n_estimators": null, "n_jobs": null, "num_parallel_tree": null, "random_state": null, "reg_alpha": null, "reg_lambda": null, "sampling_method": null, "scale_pos_weight": null, "subsample": null, "tree_method": null, "validate_parameters": null, "verbosity": null, "seed": 478163327}, "versions": ["xgboost", "2.0.1"]} \ No newline at end of file +{"unfitted": true, "meta": ["sklearn.ensemble._forest", "ExtraTreesClassifier"], "params": {"bootstrap": false, "ccp_alpha": 0.0, "class_weight": null, "criterion": "gini", "max_depth": null, "max_features": "sqrt", "max_leaf_nodes": null, "max_samples": null, "min_impurity_decrease": 0.0, "min_samples_leaf": 1, "min_samples_split": 2, "min_weight_fraction_leaf": 0.0, "monotonic_cst": null, "n_estimators": 100, "n_jobs": null, "oob_score": false, "random_state": 478163327, "verbose": 0, "warm_start": false}, "versions": ["sklearn", "1.4.0"]} \ No newline at end of file diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327_meta.json b/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327_meta.json index 8bcd3744..142cc209 100644 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327_meta.json +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327_meta.json @@ -24,540 +24,527 @@ 6.5 ], "_nClasses": 2, - "transformer": null, - "imputer": null + "imputer": null, + "transformer": null } } ], "nTargets": 1, "featureCalculators": [ { - "py/object": "qsprpred.data.descriptors.calculators.MoleculeDescriptorsCalculator", + "py/object": "qsprpred.data.descriptors.fingerprints.MorganFP", "py/state": { - "descSets": [ - { - "py/object": "qsprpred.data.descriptors.sets.FingerprintSet", - "py/state": { - "_isFP": true, - "fingerprintType": "MorganFP", - "_args": { - "py/tuple": [] - }, - "_kwargs": { - "radius": 2, - "nBits": 256 - }, - "_keepindices": [ - 0, - 1, - 2, - 3, - 4, - 5, - 7, - 8, - 9, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 65, - 66, - 67, - 68, - 69, - 71, - 72, - 73, - 74, - 75, - 77, - 79, - 80, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 99, - 101, - 102, - 103, - 104, - 105, - 106, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 172, - 173, - 174, - 175, - 177, - 178, - 179, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 221, - 226, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 237, - 239, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 254, - 255 - ], - "descriptors": [ - "0", - "1", - "2", - "3", - "4", - "5", - "7", - "8", - "9", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "35", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "65", - "66", - "67", - "68", - "69", - "71", - "72", - "73", - "74", - "75", - "77", - "79", - "80", - "82", - "83", - "84", - "85", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "96", - "99", - "101", - "102", - "103", - "104", - "105", - "106", - "108", - "109", - "110", - "111", - "112", - "113", - "114", - "115", - "117", - "118", - "119", - "120", - "121", - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "144", - "145", - "146", - "147", - "148", - "149", - "150", - "151", - "152", - "153", - "154", - "155", - "156", - "157", - "158", - "160", - "161", - "162", - "163", - "164", - "165", - "166", - "167", - "168", - "169", - "170", - "172", - "173", - "174", - "175", - "177", - "178", - "179", - "182", - "183", - "184", - "185", - "186", - "187", - "188", - "189", - "191", - "192", - "193", - "194", - "195", - "196", - "197", - "198", - "199", - "200", - "201", - "202", - "203", - "204", - "205", - "206", - "207", - "208", - "209", - "210", - "211", - "212", - "213", - "214", - "215", - "216", - "217", - "218", - "219", - "221", - "226", - "228", - "229", - "230", - "231", - "232", - "233", - "234", - "235", - "237", - "239", - "241", - "242", - "243", - "244", - "245", - "246", - "247", - "248", - "249", - "250", - "251", - "252", - "254", - "255" - ] - } - }, - { - "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", - "py/state": { - "_isFP": false, - "_descriptors": [ - "BCUT2D_CHGLO", - "EState_VSA1", - "EState_VSA7", - "FractionCSP3", - "MaxAbsEStateIndex", - "MaxEStateIndex", - "MinPartialCharge", - "NumSaturatedHeterocycles", - "PEOE_VSA10", - "PEOE_VSA11", - "PEOE_VSA4", - "SlogP_VSA12", - "SlogP_VSA4", - "fr_ArN", - "fr_NH2", - "fr_Ndealkylation1", - "fr_aryl_methyl", - "fr_furan", - "fr_imidazole", - "fr_piperzine", - "fr_thiazole", - "fr_thiophene" - ], - "include3D": false, - "descriptors": [ - "BCUT2D_CHGLO", - "EState_VSA1", - "EState_VSA7", - "FractionCSP3", - "MaxAbsEStateIndex", - "MaxEStateIndex", - "MinPartialCharge", - "NumSaturatedHeterocycles", - "PEOE_VSA10", - "PEOE_VSA11", - "PEOE_VSA4", - "SlogP_VSA12", - "SlogP_VSA4", - "fr_ArN", - "fr_NH2", - "fr_Ndealkylation1", - "fr_aryl_methyl", - "fr_furan", - "fr_imidazole", - "fr_piperzine", - "fr_thiazole", - "fr_thiophene" - ] - } - } + "idProp": "QSPRID", + "_usedBits": [ + 0, + 1, + 2, + 3, + 4, + 5, + 7, + 8, + 9, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 65, + 66, + 67, + 68, + 69, + 71, + 72, + 73, + 74, + 75, + 77, + 79, + 80, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 99, + 101, + 102, + 103, + 104, + 105, + 106, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 172, + 173, + 174, + 175, + 177, + 178, + 179, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 221, + 226, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 237, + 239, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 254, + 255 ], - "noParallelization": false + "radius": 2, + "nBits": 256, + "kwargs": {}, + "descriptors": [ + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_77", + "MorganFP_79", + "MorganFP_80", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_99", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_221", + "MorganFP_226", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_237", + "MorganFP_239", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_254", + "MorganFP_255" + ] + } + }, + { + "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", + "py/state": { + "idProp": "QSPRID", + "_descriptors": [ + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA7", + "FractionCSP3", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "MinPartialCharge", + "NumSaturatedHeterocycles", + "PEOE_VSA10", + "PEOE_VSA11", + "PEOE_VSA4", + "SlogP_VSA12", + "SlogP_VSA4", + "fr_ArN", + "fr_NH2", + "fr_Ndealkylation1", + "fr_aryl_methyl", + "fr_furan", + "fr_imidazole", + "fr_piperzine", + "fr_thiazole", + "fr_thiophene" + ], + "include3D": false, + "descriptors": [ + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA7", + "FractionCSP3", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "MinPartialCharge", + "NumSaturatedHeterocycles", + "PEOE_VSA10", + "PEOE_VSA11", + "PEOE_VSA4", + "SlogP_VSA12", + "SlogP_VSA4", + "fr_ArN", + "fr_NH2", + "fr_Ndealkylation1", + "fr_aryl_methyl", + "fr_furan", + "fr_imidazole", + "fr_piperzine", + "fr_thiazole", + "fr_thiophene" + ] } } ], @@ -573,252 +560,252 @@ "with_std": true }, "var_": [ - 0.14164930555555574, - 0.11555555555555515, + 0.14164930555555552, + 0.11555555555555556, 0.069375, 0.1875, 0.05859375, 0.069375, - 0.23331597222222217, - 0.07638888888888883, - 0.09331597222222204, - 0.11859375000000028, - 0.06581597222222232, - 0.15493055555555543, - 0.09984374999999956, - 0.09659722222222238, - 0.10305555555555529, + 0.23331597222222225, + 0.07638888888888887, + 0.09331597222222224, + 0.11859375000000003, + 0.06581597222222221, + 0.15493055555555557, + 0.09984375000000001, + 0.09659722222222221, + 0.10305555555555553, 0.05859375, - 0.051232638888888966, - 0.18109375000000008, - 0.07638888888888877, - 0.1624826388888886, - 0.18956597222222177, - 0.14972222222222203, - 0.05493055555555547, - 0.19555555555555487, - 0.13326388888888865, - 0.0998437499999996, - 0.09659722222222232, - 0.06222222222222248, - 0.11248263888888912, - 0.05493055555555545, - 0.1895659722222217, - 0.1574826388888887, - 0.05123263888888906, - 0.19937500000000022, - 0.1303993055555562, - 0.07984375000000009, - 0.22623263888888878, - 0.13888888888888928, - 0.16972222222222216, - 0.08664930555555551, - 0.21326388888889009, - 0.12750000000000053, - 0.1549305555555554, - 0.24972222222222076, - 0.24234375, + 0.051232638888888876, + 0.18109375000000003, + 0.07638888888888887, + 0.1624826388888889, + 0.1895659722222222, + 0.14972222222222217, + 0.054930555555555545, + 0.19555555555555557, + 0.13326388888888893, + 0.09984375000000002, + 0.09659722222222221, + 0.06222222222222224, + 0.1124826388888889, + 0.05493055555555556, + 0.18956597222222224, + 0.1574826388888889, + 0.05123263888888887, + 0.19937500000000002, + 0.13039930555555557, + 0.07984375, + 0.22623263888888884, + 0.13888888888888887, + 0.16972222222222222, + 0.08664930555555556, + 0.21326388888888886, + 0.12749999999999997, + 0.15493055555555557, + 0.24972222222222223, + 0.24234374999999997, 0.24609375, 0.109375, - 0.14972222222222226, - 0.21326388888888997, - 0.05123263888888903, - 0.06937500000000006, - 0.051232638888889064, - 0.23999999999999888, - 0.14706597222222242, - 0.2222222222222226, - 0.1599999999999996, - 0.21937500000000068, - 0.17206597222222206, - 0.21789930555555573, - 0.07289930555555563, - 0.18956597222222177, - 0.2391493055555564, - 0.13326388888888865, - 0.18539930555555614, - 0.1624826388888885, - 0.1697222222222224, + 0.1497222222222222, + 0.21326388888888886, + 0.051232638888888876, + 0.06937499999999999, + 0.051232638888888876, + 0.24000000000000005, + 0.1470659722222222, + 0.2222222222222223, + 0.16000000000000003, + 0.219375, + 0.17206597222222222, + 0.21789930555555556, + 0.07289930555555556, + 0.18956597222222224, + 0.23914930555555555, + 0.1332638888888889, + 0.1853993055555555, + 0.1624826388888889, + 0.1697222222222222, 0.05859375, 0.15234375, 0.15234375, - 0.13326388888888865, - 0.2408159722222222, - 0.15999999999999956, - 0.16248263888888842, - 0.05493055555555542, - 0.062222222222222526, - 0.14164930555555572, - 0.23826388888888922, - 0.06937500000000009, - 0.10623263888888872, + 0.1332638888888889, + 0.24081597222222223, + 0.16000000000000006, + 0.16248263888888895, + 0.054930555555555545, + 0.06222222222222224, + 0.14164930555555552, + 0.23826388888888894, + 0.069375, + 0.10623263888888887, 0.109375, - 0.16493055555555616, - 0.24972222222222076, - 0.21000000000000077, - 0.09000000000000026, - 0.05123263888888897, - 0.06222222222222252, + 0.16493055555555552, + 0.24972222222222223, + 0.20999999999999996, + 0.09000000000000001, + 0.051232638888888876, + 0.06222222222222224, 0.1875, - 0.2391493055555565, - 0.20831597222222192, - 0.09331597222222197, - 0.1215972222222226, - 0.1416493055555556, - 0.1915972222222231, - 0.24826388888888856, + 0.23914930555555555, + 0.20831597222222223, + 0.09331597222222224, + 0.12159722222222223, + 0.14164930555555552, + 0.19159722222222222, + 0.24826388888888892, 0.05859375, - 0.08326388888888919, - 0.05123263888888904, - 0.0998437499999996, - 0.1697222222222222, - 0.12750000000000045, - 0.23331597222222217, - 0.09331597222222167, - 0.11248263888888912, - 0.24937500000000012, - 0.14437500000000014, - 0.1360937500000006, - 0.24159722222222238, + 0.08326388888888887, + 0.051232638888888876, + 0.09984375000000001, + 0.16972222222222222, + 0.12749999999999997, + 0.23331597222222225, + 0.09331597222222224, + 0.1124826388888889, + 0.24937499999999996, + 0.14437499999999998, + 0.13609374999999999, + 0.2415972222222222, 0.234375, 0.05859375, - 0.20305555555555602, - 0.16972222222222183, - 0.2485937499999997, - 0.09659722222222235, - 0.07289930555555593, - 0.2322222222222234, - 0.1955555555555549, - 0.11248263888888912, - 0.18326388888888945, - 0.07984375000000012, - 0.12456597222222182, - 0.06937499999999995, - 0.24859374999999978, - 0.13039930555555623, - 0.22081597222222218, - 0.1155555555555551, - 0.23109374999999988, - 0.09331597222222192, - 0.15493055555555543, - 0.24234374999999986, - 0.09000000000000037, - 0.14706597222222242, - 0.2493750000000001, - 0.0763888888888888, - 0.05493055555555544, - 0.07638888888888862, - 0.10623263888888838, - 0.06222222222222242, - 0.1332638888888887, - 0.05493055555555545, - 0.13039930555555615, - 0.21789930555555573, - 0.1599999999999996, - 0.24750000000000053, + 0.20305555555555557, + 0.1697222222222222, + 0.24859375000000003, + 0.09659722222222221, + 0.07289930555555557, + 0.23222222222222227, + 0.1955555555555556, + 0.11248263888888893, + 0.1832638888888889, + 0.07984375, + 0.12456597222222224, + 0.069375, + 0.24859375000000003, + 0.13039930555555557, + 0.2208159722222222, + 0.11555555555555556, + 0.23109374999999996, + 0.09331597222222224, + 0.15493055555555557, + 0.24234374999999997, + 0.09000000000000001, + 0.14706597222222217, + 0.24937499999999999, + 0.07638888888888887, + 0.05493055555555556, + 0.07638888888888888, + 0.10623263888888886, + 0.06222222222222224, + 0.13326388888888893, + 0.054930555555555545, + 0.13039930555555557, + 0.21789930555555556, + 0.16000000000000006, + 0.2475000000000001, 0.21484375, - 0.23638888888888848, - 0.22081597222222202, - 0.1853993055555562, - 0.2235937499999999, + 0.23638888888888887, + 0.2208159722222222, + 0.1853993055555555, + 0.22359375, 0.15234375, - 0.06222222222222229, - 0.1832638888888897, - 0.19159722222222306, - 0.24888888888888858, - 0.06937500000000009, - 0.24789930555555503, - 0.11555555555555504, - 0.07638888888888881, - 0.08664930555555551, - 0.16248263888888856, - 0.1993750000000004, - 0.1624826388888886, - 0.07984375000000006, - 0.23734375000000088, - 0.08326388888888926, - 0.0832638888888892, - 0.07984375000000007, - 0.1388888888888892, + 0.06222222222222223, + 0.1832638888888889, + 0.19159722222222222, + 0.24888888888888888, + 0.069375, + 0.24789930555555564, + 0.11555555555555556, + 0.07638888888888887, + 0.08664930555555556, + 0.16248263888888895, + 0.19937500000000002, + 0.16248263888888895, + 0.07984375, + 0.23734375000000002, + 0.08326388888888889, + 0.08326388888888889, + 0.07984375, + 0.13888888888888887, 0.234375, - 0.11248263888888911, - 0.1388888888888892, - 0.11859375000000028, - 0.062222222222222366, - 0.1416493055555557, + 0.1124826388888889, + 0.13888888888888887, + 0.11859375000000003, + 0.06222222222222223, + 0.14164930555555552, 0.05859375, 0.21484375, - 0.14164930555555555, + 0.14164930555555552, 0.1875, - 0.08326388888888932, - 0.13326388888888868, - 0.12159722222222258, - 0.169722222222222, - 0.21789930555555573, - 0.20484374999999938, + 0.08326388888888887, + 0.1332638888888889, + 0.12159722222222223, + 0.16972222222222216, + 0.21789930555555556, + 0.20484374999999996, 0.05859375, - 0.16493055555555605, - 0.14972222222222206, - 0.09331597222222178, - 0.24305555555555652, - 0.13326388888888865, + 0.16493055555555552, + 0.14972222222222217, + 0.09331597222222224, + 0.24305555555555552, + 0.1332638888888889, 0.1875, 0.14164930555555555, - 0.15999999999999953, - 0.05493055555555544, - 0.06937500000000014, - 0.09984374999999952, - 0.09000000000000016, - 0.22873263888888892, - 0.07289930555555585, - 0.1853993055555562, - 0.1030555555555552, - 0.13039930555555615, - 0.11859375000000022, - 0.15748263888888842, - 0.11248263888888912, - 0.16734375000000018, - 0.07984375000000007, - 0.07289930555555578, - 0.07638888888888896, - 0.07289930555555586, - 0.07638888888888874, - 0.07289930555555563, - 0.0693750000000001, - 0.0832638888888893, - 0.07984375000000009, - 0.11248263888888912, - 0.09331597222222197, - 0.12456597222222188, - 0.16734375000000024, - 0.08664930555555551, - 0.17888888888888885, - 0.21638888888888824, - 0.08664930555555551, - 0.05123263888888908, - 0.24956597222222224, - 0.012329571601671897, - 120.18420496193554, - 330.74857483162936, - 0.029870377473567, + 0.16000000000000006, + 0.05493055555555556, + 0.06937499999999999, + 0.09984375000000002, + 0.09000000000000001, + 0.2287326388888888, + 0.07289930555555557, + 0.1853993055555555, + 0.10305555555555554, + 0.13039930555555557, + 0.11859375000000003, + 0.15748263888888892, + 0.11248263888888892, + 0.16734374999999996, + 0.07984375, + 0.07289930555555557, + 0.0763888888888889, + 0.07289930555555557, + 0.07638888888888887, + 0.07289930555555557, + 0.069375, + 0.08326388888888889, + 0.07984375, + 0.1124826388888889, + 0.09331597222222224, + 0.12456597222222225, + 0.16734374999999996, + 0.08664930555555556, + 0.1788888888888889, + 0.2163888888888889, + 0.08664930555555556, + 0.05123263888888888, + 0.24956597222222227, + 0.012329571601671899, + 120.18420496193569, + 330.7485748316292, + 0.02987037747356697, 7.171341738075652, 7.171341738075652, - 0.003826315649940496, - 0.28826388888889054, - 57.74927652681347, - 62.11430992361314, - 40.894459061566245, - 57.2717711746289, - 38.241748069064435, - 0.26039930555555446, - 0.3372222222222219, - 0.05123263888888902, + 0.0038263156499404997, + 0.2882638888888888, + 57.74927652681349, + 62.1143099236132, + 40.894459061566174, + 57.271771174629016, + 38.24174806906447, + 0.2603993055555556, + 0.3372222222222222, + 0.051232638888888876, 0.5544270833333333, - 0.2623437500000009, - 0.2262326388888891, - 0.08664930555555551, + 0.2623437500000001, + 0.2262326388888889, + 0.08664930555555556, 0.109375, - 0.07638888888888887 + 0.07638888888888888 ], "mean_": [ 0.17083333333333334, @@ -1069,250 +1056,250 @@ 0.08333333333333333 ], "scale_": [ - 0.3763632627602696, - 0.33993463423951836, + 0.3763632627602693, + 0.33993463423951903, 0.26339134382131846, 0.4330127018922193, 0.24206145913796356, 0.26339134382131846, - 0.48302792074808903, - 0.2763853991962832, - 0.3054766312211493, - 0.3443744328488982, - 0.25654623798103593, - 0.39361218928731795, - 0.31598061649411274, - 0.3108009366495255, - 0.3210226714043033, + 0.4830279207480891, + 0.2763853991962833, + 0.3054766312211496, + 0.3443744328488978, + 0.2565462379810357, + 0.39361218928731817, + 0.31598061649411346, + 0.31080093664952524, + 0.3210226714043037, 0.24206145913796356, - 0.22634628092568468, - 0.42555111326373013, - 0.27638539919628313, - 0.40309135303165283, - 0.4353917456983099, - 0.3869395588747964, - 0.2343726851737537, - 0.44221663871405253, - 0.3650532685634915, - 0.3159806164941128, - 0.3108009366495254, - 0.24944382578492993, - 0.33538431521001266, - 0.23437268517375365, - 0.43539174569830985, - 0.3968408231128555, - 0.22634628092568487, - 0.44651427748729405, - 0.36110844016106325, - 0.282566363886433, - 0.4756391898160714, - 0.3726779962499655, - 0.4119735698102758, - 0.29436254101966763, - 0.46180503341658163, - 0.35707142142714327, - 0.39361218928731795, - 0.4997221450188302, - 0.4922842166878804, + 0.22634628092568448, + 0.4255511132637301, + 0.2763853991962833, + 0.4030913530316532, + 0.4353917456983104, + 0.3869395588747966, + 0.23437268517375387, + 0.4422166387140533, + 0.3650532685634919, + 0.31598061649411346, + 0.31080093664952524, + 0.24944382578492946, + 0.33538431521001233, + 0.2343726851737539, + 0.43539174569831046, + 0.3968408231128558, + 0.22634628092568446, + 0.44651427748729383, + 0.36110844016106236, + 0.2825663638864329, + 0.47563918981607145, + 0.3726779962499649, + 0.41197356981027583, + 0.2943625410196677, + 0.4618050334165803, + 0.3570714214271425, + 0.39361218928731817, + 0.49972214501883166, + 0.49228421668788036, 0.49607837082461076, 0.33071891388307384, - 0.3869395588747967, - 0.4618050334165815, - 0.22634628092568482, - 0.26339134382131857, - 0.2263462809256849, - 0.4898979485566345, - 0.38349181506548796, - 0.47140452079103207, - 0.39999999999999947, - 0.4683748498798806, - 0.4148083560178387, - 0.4667968568398418, - 0.26999871398870706, - 0.4353917456983099, - 0.4890289414293968, - 0.3650532685634915, - 0.43058019642751355, - 0.4030913530316527, - 0.41197356981027605, + 0.38693955887479664, + 0.4618050334165803, + 0.22634628092568448, + 0.26339134382131846, + 0.22634628092568448, + 0.48989794855663565, + 0.3834918150654877, + 0.47140452079103173, + 0.4, + 0.4683748498798799, + 0.41480835601783894, + 0.46679685683984157, + 0.2699987139887069, + 0.43539174569831046, + 0.4890289414293959, + 0.36505326856349185, + 0.4305801964275128, + 0.4030913530316532, + 0.41197356981027583, 0.24206145913796356, 0.3903123748998999, 0.3903123748998999, - 0.3650532685634915, + 0.36505326856349185, 0.4907300400650262, - 0.39999999999999947, - 0.40309135303165267, - 0.2343726851737536, - 0.24944382578493005, - 0.37636326276026955, - 0.4881228215202494, - 0.2633913438213186, - 0.3259334884434073, + 0.4000000000000001, + 0.4030913530316533, + 0.23437268517375387, + 0.24944382578492946, + 0.3763632627602693, + 0.4881228215202491, + 0.26339134382131846, + 0.3259334884434075, 0.33071891388307384, - 0.4061164310337076, - 0.4997221450188302, - 0.4582575694955848, - 0.30000000000000043, - 0.22634628092568468, - 0.24944382578493002, + 0.4061164310337068, + 0.49972214501883166, + 0.45825756949558394, + 0.30000000000000004, + 0.22634628092568448, + 0.24944382578492946, 0.4330127018922193, - 0.4890289414293969, - 0.45641644604705245, - 0.30547663122114915, - 0.34870793254846183, - 0.37636326276026943, - 0.4377181995556309, - 0.4982608642958913, + 0.4890289414293959, + 0.4564164460470528, + 0.3054766312211496, + 0.3487079325484613, + 0.3763632627602693, + 0.4377181995556299, + 0.4982608642958916, 0.24206145913796356, - 0.28855482821968026, - 0.22634628092568485, - 0.3159806164941128, + 0.2885548282196797, + 0.22634628092568448, + 0.31598061649411346, 0.41197356981027583, - 0.3570714214271431, - 0.48302792074808903, - 0.30547663122114865, - 0.33538431521001266, - 0.4993746088859546, - 0.3799671038392668, - 0.3689088640843435, - 0.4915254034352877, + 0.3570714214271425, + 0.4830279207480891, + 0.3054766312211496, + 0.33538431521001233, + 0.4993746088859544, + 0.3799671038392666, + 0.36890886408434265, + 0.49152540343528756, 0.4841229182759271, 0.24206145913796356, - 0.450616861153193, - 0.4119735698102754, - 0.498591766879478, - 0.31080093664952546, - 0.2699987139887076, - 0.4818944098266999, - 0.4422166387140526, - 0.33538431521001266, - 0.42809331796804473, - 0.2825663638864331, - 0.3529390488770289, - 0.2633913438213184, - 0.49859176687947804, - 0.3611084401610633, - 0.46991060024458076, - 0.3399346342395183, - 0.48072211307573515, - 0.3054766312211491, - 0.39361218928731795, - 0.49228421668788025, - 0.3000000000000006, - 0.38349181506548796, - 0.4993746088859546, - 0.27638539919628313, - 0.23437268517375365, - 0.27638539919628285, - 0.3259334884434068, - 0.24944382578492982, - 0.3650532685634916, - 0.23437268517375365, - 0.3611084401610632, - 0.4667968568398418, - 0.39999999999999947, - 0.4974937185533105, + 0.4506168611531925, + 0.41197356981027583, + 0.4985917668794783, + 0.31080093664952524, + 0.26999871398870695, + 0.48189440982669873, + 0.44221663871405337, + 0.3353843152100124, + 0.42809331796804406, + 0.2825663638864329, + 0.35293904887702954, + 0.26339134382131846, + 0.4985917668794783, + 0.36110844016106236, + 0.4699106002445808, + 0.33993463423951903, + 0.4807221130757352, + 0.3054766312211496, + 0.39361218928731817, + 0.49228421668788036, + 0.30000000000000004, + 0.38349181506548763, + 0.4993746088859545, + 0.2763853991962833, + 0.2343726851737539, + 0.2763853991962833, + 0.3259334884434075, + 0.24944382578492946, + 0.3650532685634919, + 0.23437268517375387, + 0.36110844016106236, + 0.46679685683984157, + 0.4000000000000001, + 0.4974937185533101, 0.46351240544347894, - 0.48619840486049365, - 0.4699106002445806, - 0.4305801964275136, - 0.4728570079844433, + 0.48619840486049404, + 0.4699106002445808, + 0.4305801964275128, + 0.47285700798444347, 0.3903123748998999, - 0.24944382578492957, - 0.428093317968045, - 0.43771819955563085, - 0.49888765156985854, - 0.2633913438213186, - 0.4978948740000795, - 0.33993463423951825, - 0.2763853991962832, - 0.29436254101966763, - 0.40309135303165283, - 0.4465142774872943, - 0.40309135303165283, - 0.28256636388643297, - 0.4871793817476278, - 0.28855482821968037, - 0.2885548282196803, - 0.282566363886433, - 0.3726779962499654, + 0.24944382578492943, + 0.42809331796804406, + 0.4377181995556299, + 0.49888765156985887, + 0.26339134382131846, + 0.4978948740000801, + 0.33993463423951903, + 0.2763853991962833, + 0.2943625410196677, + 0.4030913530316533, + 0.44651427748729383, + 0.4030913530316533, + 0.2825663638864329, + 0.4871793817476269, + 0.28855482821967976, + 0.28855482821967976, + 0.2825663638864329, + 0.3726779962499649, 0.4841229182759271, - 0.3353843152100126, - 0.3726779962499654, - 0.3443744328488982, - 0.2494438257849297, - 0.37636326276026955, + 0.33538431521001233, + 0.3726779962499649, + 0.3443744328488978, + 0.24944382578492943, + 0.3763632627602693, 0.24206145913796356, 0.46351240544347894, 0.3763632627602693, 0.4330127018922193, - 0.2885548282196805, - 0.3650532685634915, - 0.3487079325484618, - 0.41197356981027555, - 0.4667968568398418, - 0.45259667475579113, + 0.2885548282196797, + 0.36505326856349185, + 0.3487079325484613, + 0.4119735698102758, + 0.46679685683984157, + 0.4525966747557918, 0.24206145913796356, - 0.4061164310337074, - 0.3869395588747964, - 0.3054766312211489, - 0.4930066485916357, - 0.3650532685634915, + 0.4061164310337068, + 0.3869395588747966, + 0.3054766312211496, + 0.4930066485916346, + 0.36505326856349185, 0.4330127018922193, 0.3763632627602693, - 0.3999999999999994, - 0.23437268517375365, - 0.26339134382131874, - 0.3159806164941127, - 0.30000000000000027, - 0.47826001180204153, - 0.26999871398870745, - 0.4305801964275136, - 0.3210226714043032, - 0.3611084401610632, - 0.34437443284889807, - 0.3968408231128552, - 0.33538431521001266, - 0.4090767042988395, - 0.282566363886433, - 0.26999871398870734, - 0.27638539919628347, - 0.26999871398870745, - 0.2763853991962831, - 0.26999871398870706, - 0.2633913438213187, - 0.2885548282196805, - 0.282566363886433, - 0.33538431521001266, - 0.30547663122114915, - 0.35293904887702904, - 0.4090767042988396, - 0.29436254101966763, - 0.42295258468165065, - 0.4651761912317614, - 0.29436254101966763, - 0.22634628092568493, + 0.4000000000000001, + 0.2343726851737539, + 0.26339134382131846, + 0.31598061649411346, + 0.30000000000000004, + 0.4782600118020414, + 0.26999871398870695, + 0.4305801964275128, + 0.3210226714043037, + 0.36110844016106236, + 0.3443744328488978, + 0.3968408231128558, + 0.33538431521001233, + 0.40907670429883924, + 0.2825663638864329, + 0.26999871398870695, + 0.27638539919628335, + 0.26999871398870695, + 0.2763853991962833, + 0.26999871398870695, + 0.26339134382131846, + 0.28855482821967976, + 0.2825663638864329, + 0.33538431521001233, + 0.3054766312211496, + 0.35293904887702954, + 0.40907670429883924, + 0.2943625410196677, + 0.4229525846816507, + 0.4651761912317621, + 0.2943625410196677, + 0.22634628092568448, 0.4995657836784083, - 0.11103860410538263, - 10.962855693747661, - 18.186494297462318, - 0.17283048768538206, + 0.11103860410538265, + 10.962855693747668, + 18.18649429746231, + 0.17283048768538198, 2.677936096712476, 2.677936096712476, - 0.061857219869151055, - 0.5369021222614887, - 7.599294475595315, - 7.88126321877484, - 6.394877564235788, - 7.567811518175443, - 6.183991273365805, - 0.5102933524508765, - 0.5807083796728113, - 0.2263462809256848, + 0.06185721986915108, + 0.536902122261487, + 7.599294475595316, + 7.881263218774843, + 6.394877564235783, + 7.567811518175451, + 6.183991273365808, + 0.5102933524508776, + 0.5807083796728115, + 0.22634628092568448, 0.7445986055139597, - 0.5121950312136978, - 0.47563918981607173, - 0.29436254101966763, + 0.512195031213697, + 0.4756391898160715, + 0.2943625410196677, 0.33071891388307384, 0.2763853991962833 ], @@ -1320,259 +1307,259 @@ "feature_names_in_": { "py/tuple": [ [ - "Descriptor_FingerprintSet_MorganFP_0", - "Descriptor_FingerprintSet_MorganFP_1", - "Descriptor_FingerprintSet_MorganFP_2", - "Descriptor_FingerprintSet_MorganFP_3", - "Descriptor_FingerprintSet_MorganFP_4", - "Descriptor_FingerprintSet_MorganFP_5", - "Descriptor_FingerprintSet_MorganFP_7", - "Descriptor_FingerprintSet_MorganFP_8", - "Descriptor_FingerprintSet_MorganFP_9", - "Descriptor_FingerprintSet_MorganFP_11", - "Descriptor_FingerprintSet_MorganFP_12", - "Descriptor_FingerprintSet_MorganFP_13", - "Descriptor_FingerprintSet_MorganFP_14", - "Descriptor_FingerprintSet_MorganFP_15", - "Descriptor_FingerprintSet_MorganFP_16", - "Descriptor_FingerprintSet_MorganFP_17", - "Descriptor_FingerprintSet_MorganFP_18", - "Descriptor_FingerprintSet_MorganFP_20", - "Descriptor_FingerprintSet_MorganFP_21", - "Descriptor_FingerprintSet_MorganFP_22", - "Descriptor_FingerprintSet_MorganFP_23", - "Descriptor_FingerprintSet_MorganFP_24", - "Descriptor_FingerprintSet_MorganFP_25", - "Descriptor_FingerprintSet_MorganFP_26", - "Descriptor_FingerprintSet_MorganFP_27", - "Descriptor_FingerprintSet_MorganFP_28", - "Descriptor_FingerprintSet_MorganFP_29", - "Descriptor_FingerprintSet_MorganFP_30", - "Descriptor_FingerprintSet_MorganFP_31", - "Descriptor_FingerprintSet_MorganFP_32", - "Descriptor_FingerprintSet_MorganFP_33", - "Descriptor_FingerprintSet_MorganFP_34", - "Descriptor_FingerprintSet_MorganFP_35", - "Descriptor_FingerprintSet_MorganFP_36", - "Descriptor_FingerprintSet_MorganFP_37", - "Descriptor_FingerprintSet_MorganFP_38", - "Descriptor_FingerprintSet_MorganFP_39", - "Descriptor_FingerprintSet_MorganFP_40", - "Descriptor_FingerprintSet_MorganFP_41", - "Descriptor_FingerprintSet_MorganFP_42", - "Descriptor_FingerprintSet_MorganFP_43", - "Descriptor_FingerprintSet_MorganFP_44", - "Descriptor_FingerprintSet_MorganFP_45", - "Descriptor_FingerprintSet_MorganFP_46", - "Descriptor_FingerprintSet_MorganFP_47", - "Descriptor_FingerprintSet_MorganFP_48", - "Descriptor_FingerprintSet_MorganFP_50", - "Descriptor_FingerprintSet_MorganFP_51", - "Descriptor_FingerprintSet_MorganFP_52", - "Descriptor_FingerprintSet_MorganFP_53", - "Descriptor_FingerprintSet_MorganFP_54", - "Descriptor_FingerprintSet_MorganFP_55", - "Descriptor_FingerprintSet_MorganFP_56", - "Descriptor_FingerprintSet_MorganFP_57", - "Descriptor_FingerprintSet_MorganFP_58", - "Descriptor_FingerprintSet_MorganFP_59", - "Descriptor_FingerprintSet_MorganFP_60", - "Descriptor_FingerprintSet_MorganFP_61", - "Descriptor_FingerprintSet_MorganFP_62", - "Descriptor_FingerprintSet_MorganFP_63", - "Descriptor_FingerprintSet_MorganFP_65", - "Descriptor_FingerprintSet_MorganFP_66", - "Descriptor_FingerprintSet_MorganFP_67", - "Descriptor_FingerprintSet_MorganFP_68", - "Descriptor_FingerprintSet_MorganFP_69", - "Descriptor_FingerprintSet_MorganFP_71", - "Descriptor_FingerprintSet_MorganFP_72", - "Descriptor_FingerprintSet_MorganFP_73", - "Descriptor_FingerprintSet_MorganFP_74", - "Descriptor_FingerprintSet_MorganFP_75", - "Descriptor_FingerprintSet_MorganFP_77", - "Descriptor_FingerprintSet_MorganFP_79", - "Descriptor_FingerprintSet_MorganFP_80", - "Descriptor_FingerprintSet_MorganFP_82", - "Descriptor_FingerprintSet_MorganFP_83", - "Descriptor_FingerprintSet_MorganFP_84", - "Descriptor_FingerprintSet_MorganFP_85", - "Descriptor_FingerprintSet_MorganFP_86", - "Descriptor_FingerprintSet_MorganFP_87", - "Descriptor_FingerprintSet_MorganFP_88", - "Descriptor_FingerprintSet_MorganFP_89", - "Descriptor_FingerprintSet_MorganFP_90", - "Descriptor_FingerprintSet_MorganFP_91", - "Descriptor_FingerprintSet_MorganFP_92", - "Descriptor_FingerprintSet_MorganFP_93", - "Descriptor_FingerprintSet_MorganFP_94", - "Descriptor_FingerprintSet_MorganFP_95", - "Descriptor_FingerprintSet_MorganFP_96", - "Descriptor_FingerprintSet_MorganFP_99", - "Descriptor_FingerprintSet_MorganFP_101", - "Descriptor_FingerprintSet_MorganFP_102", - "Descriptor_FingerprintSet_MorganFP_103", - "Descriptor_FingerprintSet_MorganFP_104", - "Descriptor_FingerprintSet_MorganFP_105", - "Descriptor_FingerprintSet_MorganFP_106", - "Descriptor_FingerprintSet_MorganFP_108", - "Descriptor_FingerprintSet_MorganFP_109", - "Descriptor_FingerprintSet_MorganFP_110", - "Descriptor_FingerprintSet_MorganFP_111", - "Descriptor_FingerprintSet_MorganFP_112", - "Descriptor_FingerprintSet_MorganFP_113", - "Descriptor_FingerprintSet_MorganFP_114", - "Descriptor_FingerprintSet_MorganFP_115", - "Descriptor_FingerprintSet_MorganFP_117", - "Descriptor_FingerprintSet_MorganFP_118", - "Descriptor_FingerprintSet_MorganFP_119", - "Descriptor_FingerprintSet_MorganFP_120", - "Descriptor_FingerprintSet_MorganFP_121", - "Descriptor_FingerprintSet_MorganFP_122", - "Descriptor_FingerprintSet_MorganFP_123", - "Descriptor_FingerprintSet_MorganFP_124", - "Descriptor_FingerprintSet_MorganFP_125", - "Descriptor_FingerprintSet_MorganFP_126", - "Descriptor_FingerprintSet_MorganFP_127", - "Descriptor_FingerprintSet_MorganFP_128", - "Descriptor_FingerprintSet_MorganFP_129", - "Descriptor_FingerprintSet_MorganFP_131", - "Descriptor_FingerprintSet_MorganFP_132", - "Descriptor_FingerprintSet_MorganFP_133", - "Descriptor_FingerprintSet_MorganFP_134", - "Descriptor_FingerprintSet_MorganFP_135", - "Descriptor_FingerprintSet_MorganFP_136", - "Descriptor_FingerprintSet_MorganFP_137", - "Descriptor_FingerprintSet_MorganFP_138", - "Descriptor_FingerprintSet_MorganFP_139", - "Descriptor_FingerprintSet_MorganFP_140", - "Descriptor_FingerprintSet_MorganFP_141", - "Descriptor_FingerprintSet_MorganFP_142", - "Descriptor_FingerprintSet_MorganFP_144", - "Descriptor_FingerprintSet_MorganFP_145", - "Descriptor_FingerprintSet_MorganFP_146", - "Descriptor_FingerprintSet_MorganFP_147", - "Descriptor_FingerprintSet_MorganFP_148", - "Descriptor_FingerprintSet_MorganFP_149", - "Descriptor_FingerprintSet_MorganFP_150", - "Descriptor_FingerprintSet_MorganFP_151", - "Descriptor_FingerprintSet_MorganFP_152", - "Descriptor_FingerprintSet_MorganFP_153", - "Descriptor_FingerprintSet_MorganFP_154", - "Descriptor_FingerprintSet_MorganFP_155", - "Descriptor_FingerprintSet_MorganFP_156", - "Descriptor_FingerprintSet_MorganFP_157", - "Descriptor_FingerprintSet_MorganFP_158", - "Descriptor_FingerprintSet_MorganFP_160", - "Descriptor_FingerprintSet_MorganFP_161", - "Descriptor_FingerprintSet_MorganFP_162", - "Descriptor_FingerprintSet_MorganFP_163", - "Descriptor_FingerprintSet_MorganFP_164", - "Descriptor_FingerprintSet_MorganFP_165", - "Descriptor_FingerprintSet_MorganFP_166", - "Descriptor_FingerprintSet_MorganFP_167", - "Descriptor_FingerprintSet_MorganFP_168", - "Descriptor_FingerprintSet_MorganFP_169", - "Descriptor_FingerprintSet_MorganFP_170", - "Descriptor_FingerprintSet_MorganFP_172", - "Descriptor_FingerprintSet_MorganFP_173", - "Descriptor_FingerprintSet_MorganFP_174", - "Descriptor_FingerprintSet_MorganFP_175", - "Descriptor_FingerprintSet_MorganFP_177", - "Descriptor_FingerprintSet_MorganFP_178", - "Descriptor_FingerprintSet_MorganFP_179", - "Descriptor_FingerprintSet_MorganFP_182", - "Descriptor_FingerprintSet_MorganFP_183", - "Descriptor_FingerprintSet_MorganFP_184", - "Descriptor_FingerprintSet_MorganFP_185", - "Descriptor_FingerprintSet_MorganFP_186", - "Descriptor_FingerprintSet_MorganFP_187", - "Descriptor_FingerprintSet_MorganFP_188", - "Descriptor_FingerprintSet_MorganFP_189", - "Descriptor_FingerprintSet_MorganFP_191", - "Descriptor_FingerprintSet_MorganFP_192", - "Descriptor_FingerprintSet_MorganFP_193", - "Descriptor_FingerprintSet_MorganFP_194", - "Descriptor_FingerprintSet_MorganFP_195", - "Descriptor_FingerprintSet_MorganFP_196", - "Descriptor_FingerprintSet_MorganFP_197", - "Descriptor_FingerprintSet_MorganFP_198", - "Descriptor_FingerprintSet_MorganFP_199", - "Descriptor_FingerprintSet_MorganFP_200", - "Descriptor_FingerprintSet_MorganFP_201", - "Descriptor_FingerprintSet_MorganFP_202", - "Descriptor_FingerprintSet_MorganFP_203", - "Descriptor_FingerprintSet_MorganFP_204", - "Descriptor_FingerprintSet_MorganFP_205", - "Descriptor_FingerprintSet_MorganFP_206", - "Descriptor_FingerprintSet_MorganFP_207", - "Descriptor_FingerprintSet_MorganFP_208", - "Descriptor_FingerprintSet_MorganFP_209", - "Descriptor_FingerprintSet_MorganFP_210", - "Descriptor_FingerprintSet_MorganFP_211", - "Descriptor_FingerprintSet_MorganFP_212", - "Descriptor_FingerprintSet_MorganFP_213", - "Descriptor_FingerprintSet_MorganFP_214", - "Descriptor_FingerprintSet_MorganFP_215", - "Descriptor_FingerprintSet_MorganFP_216", - "Descriptor_FingerprintSet_MorganFP_217", - "Descriptor_FingerprintSet_MorganFP_218", - "Descriptor_FingerprintSet_MorganFP_219", - "Descriptor_FingerprintSet_MorganFP_221", - "Descriptor_FingerprintSet_MorganFP_226", - "Descriptor_FingerprintSet_MorganFP_228", - "Descriptor_FingerprintSet_MorganFP_229", - "Descriptor_FingerprintSet_MorganFP_230", - "Descriptor_FingerprintSet_MorganFP_231", - "Descriptor_FingerprintSet_MorganFP_232", - "Descriptor_FingerprintSet_MorganFP_233", - "Descriptor_FingerprintSet_MorganFP_234", - "Descriptor_FingerprintSet_MorganFP_235", - "Descriptor_FingerprintSet_MorganFP_237", - "Descriptor_FingerprintSet_MorganFP_239", - "Descriptor_FingerprintSet_MorganFP_241", - "Descriptor_FingerprintSet_MorganFP_242", - "Descriptor_FingerprintSet_MorganFP_243", - "Descriptor_FingerprintSet_MorganFP_244", - "Descriptor_FingerprintSet_MorganFP_245", - "Descriptor_FingerprintSet_MorganFP_246", - "Descriptor_FingerprintSet_MorganFP_247", - "Descriptor_FingerprintSet_MorganFP_248", - "Descriptor_FingerprintSet_MorganFP_249", - "Descriptor_FingerprintSet_MorganFP_250", - "Descriptor_FingerprintSet_MorganFP_251", - "Descriptor_FingerprintSet_MorganFP_252", - "Descriptor_FingerprintSet_MorganFP_254", - "Descriptor_FingerprintSet_MorganFP_255", - "Descriptor_RDkit_BCUT2D_CHGLO", - "Descriptor_RDkit_EState_VSA1", - "Descriptor_RDkit_EState_VSA7", - "Descriptor_RDkit_FractionCSP3", - "Descriptor_RDkit_MaxAbsEStateIndex", - "Descriptor_RDkit_MaxEStateIndex", - "Descriptor_RDkit_MinPartialCharge", - "Descriptor_RDkit_NumSaturatedHeterocycles", - "Descriptor_RDkit_PEOE_VSA10", - "Descriptor_RDkit_PEOE_VSA11", - "Descriptor_RDkit_PEOE_VSA4", - "Descriptor_RDkit_SlogP_VSA12", - "Descriptor_RDkit_SlogP_VSA4", - "Descriptor_RDkit_fr_ArN", - "Descriptor_RDkit_fr_NH2", - "Descriptor_RDkit_fr_Ndealkylation1", - "Descriptor_RDkit_fr_aryl_methyl", - "Descriptor_RDkit_fr_furan", - "Descriptor_RDkit_fr_imidazole", - "Descriptor_RDkit_fr_piperzine", - "Descriptor_RDkit_fr_thiazole", - "Descriptor_RDkit_fr_thiophene" + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_77", + "MorganFP_79", + "MorganFP_80", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_99", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_221", + "MorganFP_226", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_237", + "MorganFP_239", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_254", + "MorganFP_255", + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA7", + "FractionCSP3", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "MinPartialCharge", + "NumSaturatedHeterocycles", + "PEOE_VSA10", + "PEOE_VSA11", + "PEOE_VSA4", + "SlogP_VSA12", + "SlogP_VSA4", + "fr_ArN", + "fr_NH2", + "fr_Ndealkylation1", + "fr_aryl_methyl", + "fr_furan", + "fr_imidazole", + "fr_piperzine", + "fr_thiazole", + "fr_thiophene" ] ] }, "versions": { "py/tuple": [ "sklearn", - "1.2.1" + "1.4.0" ] } } @@ -1580,9 +1567,9 @@ }, "earlyStopping": null, "parameters": { - "seed": 478163327 + "random_state": 478163327 }, - "alg": "xgboost.sklearn.XGBClassifier", + "alg": "sklearn.ensemble._forest.ExtraTreesClassifier", "randomState": 478163327, "estimator": "./ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327.json" } diff --git a/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327_replica.json b/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327_replica.json index 4f4f971e..b51cebd1 100644 --- a/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327_replica.json +++ b/testing/test_consistency/expected/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327_replica.json @@ -10,18 +10,10 @@ }, "descriptors": [ { - "py/object": "qsprpred.data.descriptors.sets.FingerprintSet", + "py/object": "qsprpred.data.descriptors.fingerprints.MorganFP", "py/state": { - "_isFP": true, - "fingerprintType": "MorganFP", - "_args": { - "py/tuple": [] - }, - "_kwargs": { - "radius": 2, - "nBits": 256 - }, - "_keepindices": [ + "idProp": "QSPRID", + "_usedBits": [ 0, 1, 2, @@ -279,270 +271,273 @@ 254, 255 ], + "radius": 2, + "nBits": 256, + "kwargs": {}, "descriptors": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "35", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "96", - "97", - "98", - "99", - "100", - "101", - "102", - "103", - "104", - "105", - "106", - "107", - "108", - "109", - "110", - "111", - "112", - "113", - "114", - "115", - "116", - "117", - "118", - "119", - "120", - "121", - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "143", - "144", - "145", - "146", - "147", - "148", - "149", - "150", - "151", - "152", - "153", - "154", - "155", - "156", - "157", - "158", - "159", - "160", - "161", - "162", - "163", - "164", - "165", - "166", - "167", - "168", - "169", - "170", - "171", - "172", - "173", - "174", - "175", - "176", - "177", - "178", - "179", - "180", - "181", - "182", - "183", - "184", - "185", - "186", - "187", - "188", - "189", - "190", - "191", - "192", - "193", - "194", - "195", - "196", - "197", - "198", - "199", - "200", - "201", - "202", - "203", - "204", - "205", - "206", - "207", - "208", - "209", - "210", - "211", - "212", - "213", - "214", - "215", - "216", - "217", - "218", - "219", - "220", - "221", - "222", - "223", - "224", - "225", - "226", - "227", - "228", - "229", - "230", - "231", - "232", - "233", - "234", - "235", - "236", - "237", - "238", - "239", - "240", - "241", - "242", - "243", - "244", - "245", - "246", - "247", - "248", - "249", - "250", - "251", - "252", - "253", - "254", - "255" + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_10", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_19", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_49", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_64", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_70", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_76", + "MorganFP_77", + "MorganFP_78", + "MorganFP_79", + "MorganFP_80", + "MorganFP_81", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_97", + "MorganFP_98", + "MorganFP_99", + "MorganFP_100", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_107", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_116", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_130", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_143", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_159", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_171", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_176", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_180", + "MorganFP_181", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_190", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_220", + "MorganFP_221", + "MorganFP_222", + "MorganFP_223", + "MorganFP_224", + "MorganFP_225", + "MorganFP_226", + "MorganFP_227", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_236", + "MorganFP_237", + "MorganFP_238", + "MorganFP_239", + "MorganFP_240", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_253", + "MorganFP_254", + "MorganFP_255" ] } }, { "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", "py/state": { - "_isFP": false, + "idProp": "QSPRID", "_descriptors": [ "AvgIpc", "BCUT2D_CHGHI", @@ -992,8 +987,8 @@ 6.5 ], "_nClasses": 2, - "transformer": null, - "imputer": null + "imputer": null, + "transformer": null } } ], @@ -1028,7 +1023,7 @@ "with_mean": true, "with_std": true, "copy": true, - "_sklearn_version": "1.2.1" + "_sklearn_version": "1.4.0" } }, "feature_fill_value": 0.0, @@ -1037,7 +1032,7 @@ "optimizer": null, "assessors": [ { - "py/object": "qsprpred.models.assessment_methods.CrossValAssessor", + "py/object": "qsprpred.models.assessment.methods.CrossValAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1046,12 +1041,18 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._ThresholdScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._ranking.roc_auc_score" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": { + "py/tuple": [ + "decision_function", + "predict_proba" + ] + } }, "name": "roc_auc_score" }, @@ -1060,7 +1061,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.CrossValAssessor", + "py/object": "qsprpred.models.assessment.methods.CrossValAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1069,12 +1070,13 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._classification.matthews_corrcoef" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": "predict" }, "name": "matthews_corrcoef" }, @@ -1083,7 +1085,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.TestSetAssessor", + "py/object": "qsprpred.models.assessment.methods.TestSetAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1092,12 +1094,18 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._ThresholdScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._ranking.roc_auc_score" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": { + "py/tuple": [ + "decision_function", + "predict_proba" + ] + } }, "name": "roc_auc_score" }, @@ -1105,7 +1113,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.TestSetAssessor", + "py/object": "qsprpred.models.assessment.methods.TestSetAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1114,12 +1122,13 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._classification.matthews_corrcoef" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": "predict" }, "name": "matthews_corrcoef" }, @@ -1128,7 +1137,7 @@ } ], "randomSeed": 478163327, - "model": "/home/sichom/projects/QSPRpred/testing/test_consistency/data/models/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327_meta.json", + "model": "/zfsdata/data/helle/01_MainProjects/03_QSPRpred/Scripts/QSPRpred/testing/test_consistency/data/models/ConsistencyChecksCLS_478163327/ConsistencyChecksCLS_478163327_meta.json", "ds": null, "results": null } diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369.cv.tsv b/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369.cv.tsv index b5ab2d25..bf78d929 100644 --- a/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369.cv.tsv +++ b/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369.cv.tsv @@ -1,241 +1,241 @@ QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction Fold -ConsistencyChecks_004 7.01 6.81197 0.0 -ConsistencyChecks_011 7.29 7.4107 0.0 -ConsistencyChecks_076 8.52 6.67533 0.0 -ConsistencyChecks_236 7.77 6.53035 0.0 -ConsistencyChecks_026 4.38 5.71777 0.0 -ConsistencyChecks_093 6.7 5.92402 0.0 -ConsistencyChecks_089 8.6 7.79692 0.0 -ConsistencyChecks_196 7.44 8.10769 0.0 -ConsistencyChecks_169 7.32 6.46617 0.0 -ConsistencyChecks_000 5.77 6.43872 0.0 -ConsistencyChecks_023 6.1 5.89839 0.0 -ConsistencyChecks_262 6.4 6.39329 0.0 -ConsistencyChecks_103 4.47 6.89985 0.0 -ConsistencyChecks_129 5.34 5.50956 0.0 -ConsistencyChecks_206 6.26 5.93672 0.0 -ConsistencyChecks_277 7.09 6.31129 0.0 -ConsistencyChecks_134 7.44 6.45402 0.0 -ConsistencyChecks_062 6.56 6.09002 0.0 -ConsistencyChecks_185 8.89 8.40499 0.0 -ConsistencyChecks_091 5.16 6.06448 0.0 -ConsistencyChecks_215 5.01 5.6864 0.0 -ConsistencyChecks_295 8.48 6.08099 0.0 -ConsistencyChecks_137 8.15 7.74658 0.0 -ConsistencyChecks_258 5.42 5.7581 0.0 -ConsistencyChecks_153 5.31 6.15301 0.0 -ConsistencyChecks_037 6.6 6.66774 0.0 -ConsistencyChecks_275 5.66 5.03254 0.0 -ConsistencyChecks_226 6.77 6.01965 0.0 -ConsistencyChecks_108 7.17 6.46317 0.0 -ConsistencyChecks_235 4.95 6.03341 0.0 -ConsistencyChecks_018 9.37 7.74266 0.0 -ConsistencyChecks_201 7.34 7.98848 0.0 -ConsistencyChecks_216 6.76 6.6938 0.0 -ConsistencyChecks_213 7.28 6.41397 0.0 -ConsistencyChecks_127 7.96 7.58219 0.0 -ConsistencyChecks_131 5.22 6.53551 0.0 -ConsistencyChecks_092 7.35 5.77232 0.0 -ConsistencyChecks_045 7.4 8.69542 0.0 -ConsistencyChecks_028 7.38 8.03606 0.0 -ConsistencyChecks_210 6.4 6.73617 0.0 -ConsistencyChecks_130 8.7 8.41079 0.0 -ConsistencyChecks_248 7.4 8.57587 0.0 -ConsistencyChecks_219 4.62 6.14487 0.0 -ConsistencyChecks_121 6.11 6.04267 0.0 -ConsistencyChecks_096 7.102 6.53007 0.0 -ConsistencyChecks_234 5.86 6.37122 0.0 -ConsistencyChecks_171 6.93 6.46341 0.0 -ConsistencyChecks_008 9.0 8.59519 0.0 -ConsistencyChecks_063 6.24 6.87123 1.0 -ConsistencyChecks_261 5.82 6.52694 1.0 -ConsistencyChecks_180 6.08 5.95403 1.0 -ConsistencyChecks_218 6.47 6.46248 1.0 -ConsistencyChecks_066 6.39667 5.53473 1.0 -ConsistencyChecks_172 5.8 5.89747 1.0 -ConsistencyChecks_191 8.835 6.73422 1.0 -ConsistencyChecks_152 6.67 8.22724 1.0 -ConsistencyChecks_090 5.43 7.11086 1.0 -ConsistencyChecks_157 6.54 6.74575 1.0 -ConsistencyChecks_003 6.94 6.33031 1.0 -ConsistencyChecks_168 4.53 6.48634 1.0 -ConsistencyChecks_020 7.11 6.82791 1.0 -ConsistencyChecks_038 6.98 6.17866 1.0 -ConsistencyChecks_116 7.3 7.10907 1.0 -ConsistencyChecks_139 5.17 6.34842 1.0 -ConsistencyChecks_039 7.12 6.82361 1.0 -ConsistencyChecks_181 5.32 6.27422 1.0 -ConsistencyChecks_239 7.48 6.88649 1.0 -ConsistencyChecks_284 7.08 7.23496 1.0 -ConsistencyChecks_001 6.64 6.48423 1.0 -ConsistencyChecks_085 6.38 6.47735 1.0 -ConsistencyChecks_156 5.97 5.25874 1.0 -ConsistencyChecks_125 5.65 6.01626 1.0 -ConsistencyChecks_043 7.3 6.59 1.0 -ConsistencyChecks_214 5.22 6.60213 1.0 -ConsistencyChecks_237 8.31 6.64458 1.0 -ConsistencyChecks_041 6.1 5.61632 1.0 -ConsistencyChecks_022 6.16 6.3346 1.0 -ConsistencyChecks_055 7.07 6.24052 1.0 -ConsistencyChecks_240 4.75 5.92232 1.0 -ConsistencyChecks_084 6.21 6.1931 1.0 -ConsistencyChecks_268 5.36 5.74064 1.0 -ConsistencyChecks_243 5.63 5.44045 1.0 -ConsistencyChecks_274 7.92 8.08771 1.0 -ConsistencyChecks_029 8.92 6.80587 1.0 -ConsistencyChecks_100 8.72 8.69538 1.0 -ConsistencyChecks_251 7.75 7.09652 1.0 -ConsistencyChecks_154 5.54 6.50514 1.0 -ConsistencyChecks_183 4.89 6.84809 1.0 -ConsistencyChecks_042 6.5 8.04398 1.0 -ConsistencyChecks_267 6.75 7.28003 1.0 -ConsistencyChecks_086 6.18 6.94658 1.0 -ConsistencyChecks_060 6.46 5.68868 1.0 -ConsistencyChecks_198 7.65 8.83354 1.0 -ConsistencyChecks_052 6.69 7.98348 1.0 -ConsistencyChecks_057 9.085 8.39208 1.0 -ConsistencyChecks_211 8.22 7.14026 1.0 -ConsistencyChecks_010 6.89 6.26579 2.0 -ConsistencyChecks_229 6.62 6.96342 2.0 -ConsistencyChecks_111 7.47 6.56696 2.0 -ConsistencyChecks_056 5.37 6.67872 2.0 -ConsistencyChecks_115 5.17 6.40227 2.0 -ConsistencyChecks_161 7.82 6.05025 2.0 -ConsistencyChecks_088 5.11 6.02848 2.0 -ConsistencyChecks_142 6.52 6.46237 2.0 -ConsistencyChecks_162 7.06 7.06489 2.0 -ConsistencyChecks_194 7.48 7.04175 2.0 -ConsistencyChecks_167 6.66 6.94555 2.0 -ConsistencyChecks_054 9.23 6.91944 2.0 -ConsistencyChecks_220 5.18 6.19214 2.0 -ConsistencyChecks_187 4.37 6.89695 2.0 -ConsistencyChecks_197 7.66 7.27363 2.0 -ConsistencyChecks_294 8.54 7.24175 2.0 -ConsistencyChecks_098 6.47 8.20279 2.0 -ConsistencyChecks_174 6.96 5.53921 2.0 -ConsistencyChecks_140 6.0 6.77786 2.0 -ConsistencyChecks_260 5.51 6.26048 2.0 -ConsistencyChecks_177 7.61 7.06648 2.0 -ConsistencyChecks_170 7.0 7.21188 2.0 -ConsistencyChecks_242 7.52 8.02657 2.0 -ConsistencyChecks_264 8.18 6.43687 2.0 -ConsistencyChecks_189 6.43 7.53512 2.0 -ConsistencyChecks_202 6.33 6.37175 2.0 -ConsistencyChecks_199 6.88 7.16845 2.0 -ConsistencyChecks_033 5.4 6.60703 2.0 -ConsistencyChecks_297 8.3 7.15022 2.0 -ConsistencyChecks_221 5.93 6.66337 2.0 -ConsistencyChecks_123 8.13 7.44148 2.0 -ConsistencyChecks_044 4.66667 5.88045 2.0 -ConsistencyChecks_269 7.1 7.2318 2.0 -ConsistencyChecks_164 8.33 8.14423 2.0 -ConsistencyChecks_087 5.57 6.19537 2.0 -ConsistencyChecks_280 4.96 7.30787 2.0 -ConsistencyChecks_145 8.19 6.75277 2.0 -ConsistencyChecks_249 5.94 6.60326 2.0 -ConsistencyChecks_071 5.95 7.79157 2.0 -ConsistencyChecks_296 9.555 8.52967 2.0 -ConsistencyChecks_053 5.46 7.26831 2.0 -ConsistencyChecks_046 9.7 7.76934 2.0 -ConsistencyChecks_281 8.03 8.44579 2.0 -ConsistencyChecks_227 7.92 7.66163 2.0 -ConsistencyChecks_285 5.27 5.45346 2.0 -ConsistencyChecks_079 4.85 6.88888 2.0 -ConsistencyChecks_002 7.88 8.30699 2.0 -ConsistencyChecks_212 9.22 8.95869 2.0 -ConsistencyChecks_005 6.96 6.95846 3.0 -ConsistencyChecks_141 7.07 8.23681 3.0 -ConsistencyChecks_006 7.24 6.21237 3.0 -ConsistencyChecks_224 6.87 6.74892 3.0 -ConsistencyChecks_299 7.6 6.17811 3.0 -ConsistencyChecks_009 7.08 6.67345 3.0 -ConsistencyChecks_228 7.03 7.43507 3.0 -ConsistencyChecks_286 8.7 7.62235 3.0 -ConsistencyChecks_190 9.15 7.87679 3.0 -ConsistencyChecks_298 6.11 6.58674 3.0 -ConsistencyChecks_179 7.0 5.64246 3.0 -ConsistencyChecks_283 8.17 8.46688 3.0 -ConsistencyChecks_124 6.93 6.16382 3.0 -ConsistencyChecks_252 5.7 6.1955 3.0 -ConsistencyChecks_128 8.34 7.30262 3.0 -ConsistencyChecks_259 5.48 6.97323 3.0 -ConsistencyChecks_014 5.99 6.30362 3.0 -ConsistencyChecks_077 6.7 5.26845 3.0 -ConsistencyChecks_021 5.89 5.66245 3.0 -ConsistencyChecks_255 7.52 6.80326 3.0 -ConsistencyChecks_117 6.42 7.98043 3.0 -ConsistencyChecks_035 6.745 5.33263 3.0 -ConsistencyChecks_290 7.27 8.07237 3.0 -ConsistencyChecks_256 7.31 6.50203 3.0 -ConsistencyChecks_291 5.97 6.32253 3.0 -ConsistencyChecks_192 5.04 6.84737 3.0 -ConsistencyChecks_204 5.375 5.7102 3.0 -ConsistencyChecks_272 4.99 6.57017 3.0 -ConsistencyChecks_016 5.92 5.46025 3.0 -ConsistencyChecks_133 6.79 6.49455 3.0 -ConsistencyChecks_203 6.35 7.27597 3.0 -ConsistencyChecks_015 7.04 7.73427 3.0 -ConsistencyChecks_246 6.52 5.58757 3.0 -ConsistencyChecks_238 6.37 6.32627 3.0 -ConsistencyChecks_094 6.53 6.1556 3.0 -ConsistencyChecks_112 7.32 6.60842 3.0 -ConsistencyChecks_270 6.57 7.01037 3.0 -ConsistencyChecks_105 5.84 6.50089 3.0 -ConsistencyChecks_278 6.46 6.18133 3.0 -ConsistencyChecks_013 5.82 5.77952 3.0 -ConsistencyChecks_135 5.4 5.89846 3.0 -ConsistencyChecks_070 6.69 7.38799 3.0 -ConsistencyChecks_147 9.14538 7.14836 3.0 -ConsistencyChecks_110 6.64 5.90664 3.0 -ConsistencyChecks_186 5.01 6.97099 3.0 -ConsistencyChecks_232 6.22 6.77947 3.0 -ConsistencyChecks_047 5.76 5.7995 3.0 -ConsistencyChecks_282 7.85 7.35605 3.0 -ConsistencyChecks_069 6.05 6.07196 4.0 -ConsistencyChecks_148 5.85 6.24246 4.0 -ConsistencyChecks_155 6.43 6.41523 4.0 -ConsistencyChecks_222 7.03 5.82989 4.0 -ConsistencyChecks_178 7.6 8.16567 4.0 -ConsistencyChecks_024 6.66 6.61406 4.0 -ConsistencyChecks_109 6.45 7.05461 4.0 -ConsistencyChecks_051 5.01 6.86885 4.0 -ConsistencyChecks_132 7.24 6.57693 4.0 -ConsistencyChecks_209 7.48 7.12767 4.0 -ConsistencyChecks_027 7.775 7.40308 4.0 -ConsistencyChecks_176 7.21 6.66371 4.0 -ConsistencyChecks_265 6.86 7.08672 4.0 -ConsistencyChecks_225 6.97 7.54007 4.0 -ConsistencyChecks_173 7.8 6.69958 4.0 -ConsistencyChecks_017 6.57 6.16976 4.0 -ConsistencyChecks_143 6.41 6.64483 4.0 -ConsistencyChecks_200 8.19 7.4032 4.0 -ConsistencyChecks_166 9.71 7.9782 4.0 -ConsistencyChecks_074 7.07 6.85022 4.0 -ConsistencyChecks_263 7.0 6.56213 4.0 -ConsistencyChecks_205 8.71 7.79589 4.0 -ConsistencyChecks_163 6.96 7.30893 4.0 -ConsistencyChecks_118 8.54 8.00672 4.0 -ConsistencyChecks_019 7.0 7.27841 4.0 -ConsistencyChecks_030 7.51 7.45101 4.0 -ConsistencyChecks_289 9.4 6.15672 4.0 -ConsistencyChecks_067 6.0 6.22049 4.0 -ConsistencyChecks_231 6.72 5.7508 4.0 -ConsistencyChecks_114 6.5 6.93993 4.0 -ConsistencyChecks_245 6.31 6.96925 4.0 -ConsistencyChecks_149 6.25 6.0826 4.0 -ConsistencyChecks_040 7.52 7.32814 4.0 -ConsistencyChecks_049 9.1 8.6454 4.0 -ConsistencyChecks_182 5.65 6.36332 4.0 -ConsistencyChecks_025 6.46 6.63082 4.0 -ConsistencyChecks_184 7.27 6.69795 4.0 -ConsistencyChecks_061 6.42 6.70335 4.0 -ConsistencyChecks_106 9.0 6.65419 4.0 -ConsistencyChecks_271 5.31 6.92285 4.0 -ConsistencyChecks_083 6.0 7.21811 4.0 -ConsistencyChecks_144 7.76 6.71807 4.0 -ConsistencyChecks_159 6.04 6.0474 4.0 -ConsistencyChecks_138 6.94 6.94221 4.0 -ConsistencyChecks_080 5.61 5.76087 4.0 -ConsistencyChecks_250 6.93 5.97339 4.0 -ConsistencyChecks_050 6.13 6.24645 4.0 -ConsistencyChecks_217 8.52 7.69315 4.0 +ConsistencyChecks_004 7.01 6.50171 0.0 +ConsistencyChecks_011 7.29 7.2206 0.0 +ConsistencyChecks_076 8.52 7.04559 0.0 +ConsistencyChecks_236 7.77 6.62423 0.0 +ConsistencyChecks_026 4.38 5.93845 0.0 +ConsistencyChecks_093 6.7 5.53065 0.0 +ConsistencyChecks_089 8.6 8.59253 0.0 +ConsistencyChecks_196 7.44 8.11816 0.0 +ConsistencyChecks_169 7.32 6.63884 0.0 +ConsistencyChecks_000 5.77 6.17851 0.0 +ConsistencyChecks_023 6.1 5.95363 0.0 +ConsistencyChecks_262 6.4 5.6661 0.0 +ConsistencyChecks_103 4.47 6.482 0.0 +ConsistencyChecks_129 5.34 6.15274 0.0 +ConsistencyChecks_206 6.26 5.07309 0.0 +ConsistencyChecks_277 7.09 6.38975 0.0 +ConsistencyChecks_134 7.44 5.97375 0.0 +ConsistencyChecks_062 6.56 6.66116 0.0 +ConsistencyChecks_185 8.89 7.49649 0.0 +ConsistencyChecks_091 5.16 6.05737 0.0 +ConsistencyChecks_215 5.01 5.71268 0.0 +ConsistencyChecks_295 8.48 6.18351 0.0 +ConsistencyChecks_137 8.15 7.85736 0.0 +ConsistencyChecks_258 5.42 6.20266 0.0 +ConsistencyChecks_153 5.31 7.23918 0.0 +ConsistencyChecks_037 6.6 6.62025 0.0 +ConsistencyChecks_275 5.66 5.62367 0.0 +ConsistencyChecks_226 6.77 6.62354 0.0 +ConsistencyChecks_108 7.17 5.42888 0.0 +ConsistencyChecks_235 4.95 6.90743 0.0 +ConsistencyChecks_018 9.37 8.24502 0.0 +ConsistencyChecks_201 7.34 6.95601 0.0 +ConsistencyChecks_216 6.76 6.44311 0.0 +ConsistencyChecks_213 7.28 6.49224 0.0 +ConsistencyChecks_127 7.96 7.03982 0.0 +ConsistencyChecks_131 5.22 5.86969 0.0 +ConsistencyChecks_092 7.35 6.39146 0.0 +ConsistencyChecks_045 7.4 7.88274 0.0 +ConsistencyChecks_028 7.38 8.02632 0.0 +ConsistencyChecks_210 6.4 6.73174 0.0 +ConsistencyChecks_130 8.7 8.46562 0.0 +ConsistencyChecks_248 7.4 8.78962 0.0 +ConsistencyChecks_219 4.62 6.19376 0.0 +ConsistencyChecks_121 6.11 6.76522 0.0 +ConsistencyChecks_096 7.102 6.356 0.0 +ConsistencyChecks_234 5.86 6.82603 0.0 +ConsistencyChecks_171 6.93 6.50415 0.0 +ConsistencyChecks_008 9.0 8.60821 0.0 +ConsistencyChecks_063 6.24 6.10975 1.0 +ConsistencyChecks_261 5.82 6.48356 1.0 +ConsistencyChecks_180 6.08 6.87804 1.0 +ConsistencyChecks_218 6.47 6.42363 1.0 +ConsistencyChecks_066 6.39667 5.92147 1.0 +ConsistencyChecks_172 5.8 6.89272 1.0 +ConsistencyChecks_191 8.835 7.15416 1.0 +ConsistencyChecks_152 6.67 7.89426 1.0 +ConsistencyChecks_090 5.43 7.17272 1.0 +ConsistencyChecks_157 6.54 6.34939 1.0 +ConsistencyChecks_003 6.94 6.55188 1.0 +ConsistencyChecks_168 4.53 7.46403 1.0 +ConsistencyChecks_020 7.11 7.50012 1.0 +ConsistencyChecks_038 6.98 6.04596 1.0 +ConsistencyChecks_116 7.3 8.02562 1.0 +ConsistencyChecks_139 5.17 6.11783 1.0 +ConsistencyChecks_039 7.12 7.13847 1.0 +ConsistencyChecks_181 5.32 6.81906 1.0 +ConsistencyChecks_239 7.48 7.53332 1.0 +ConsistencyChecks_284 7.08 7.18515 1.0 +ConsistencyChecks_001 6.64 6.7703 1.0 +ConsistencyChecks_085 6.38 6.30897 1.0 +ConsistencyChecks_156 5.97 6.38441 1.0 +ConsistencyChecks_125 5.65 5.50144 1.0 +ConsistencyChecks_043 7.3 7.36113 1.0 +ConsistencyChecks_214 5.22 5.41382 1.0 +ConsistencyChecks_237 8.31 6.70777 1.0 +ConsistencyChecks_041 6.1 5.80341 1.0 +ConsistencyChecks_022 6.16 6.07883 1.0 +ConsistencyChecks_055 7.07 5.80393 1.0 +ConsistencyChecks_240 4.75 6.4614 1.0 +ConsistencyChecks_084 6.21 5.76668 1.0 +ConsistencyChecks_268 5.36 5.86572 1.0 +ConsistencyChecks_243 5.63 5.46515 1.0 +ConsistencyChecks_274 7.92 7.85422 1.0 +ConsistencyChecks_029 8.92 6.25601 1.0 +ConsistencyChecks_100 8.72 8.82147 1.0 +ConsistencyChecks_251 7.75 6.66843 1.0 +ConsistencyChecks_154 5.54 6.54192 1.0 +ConsistencyChecks_183 4.89 6.25905 1.0 +ConsistencyChecks_042 6.5 7.26225 1.0 +ConsistencyChecks_267 6.75 7.55747 1.0 +ConsistencyChecks_086 6.18 6.76151 1.0 +ConsistencyChecks_060 6.46 6.58429 1.0 +ConsistencyChecks_198 7.65 9.58951 1.0 +ConsistencyChecks_052 6.69 8.25858 1.0 +ConsistencyChecks_057 9.085 9.19008 1.0 +ConsistencyChecks_211 8.22 6.47746 1.0 +ConsistencyChecks_010 6.89 6.08063 2.0 +ConsistencyChecks_229 6.62 6.81488 2.0 +ConsistencyChecks_111 7.47 6.54911 2.0 +ConsistencyChecks_056 5.37 6.24968 2.0 +ConsistencyChecks_115 5.17 7.75521 2.0 +ConsistencyChecks_161 7.82 6.52986 2.0 +ConsistencyChecks_088 5.11 5.96233 2.0 +ConsistencyChecks_142 6.52 6.64067 2.0 +ConsistencyChecks_162 7.06 7.23624 2.0 +ConsistencyChecks_194 7.48 6.66715 2.0 +ConsistencyChecks_167 6.66 6.5669 2.0 +ConsistencyChecks_054 9.23 6.54229 2.0 +ConsistencyChecks_220 5.18 6.21009 2.0 +ConsistencyChecks_187 4.37 6.72176 2.0 +ConsistencyChecks_197 7.66 7.13593 2.0 +ConsistencyChecks_294 8.54 6.85618 2.0 +ConsistencyChecks_098 6.47 7.8845 2.0 +ConsistencyChecks_174 6.96 5.94424 2.0 +ConsistencyChecks_140 6.0 6.57976 2.0 +ConsistencyChecks_260 5.51 6.6885 2.0 +ConsistencyChecks_177 7.61 7.2176 2.0 +ConsistencyChecks_170 7.0 6.69326 2.0 +ConsistencyChecks_242 7.52 7.31161 2.0 +ConsistencyChecks_264 8.18 7.13958 2.0 +ConsistencyChecks_189 6.43 7.01355 2.0 +ConsistencyChecks_202 6.33 6.36758 2.0 +ConsistencyChecks_199 6.88 6.907 2.0 +ConsistencyChecks_033 5.4 7.10059 2.0 +ConsistencyChecks_297 8.3 7.188 2.0 +ConsistencyChecks_221 5.93 6.68037 2.0 +ConsistencyChecks_123 8.13 7.28264 2.0 +ConsistencyChecks_044 4.66667 5.65786 2.0 +ConsistencyChecks_269 7.1 7.407 2.0 +ConsistencyChecks_164 8.33 7.47553 2.0 +ConsistencyChecks_087 5.57 7.31473 2.0 +ConsistencyChecks_280 4.96 6.9263 2.0 +ConsistencyChecks_145 8.19 6.67764 2.0 +ConsistencyChecks_249 5.94 6.6826 2.0 +ConsistencyChecks_071 5.95 7.47798 2.0 +ConsistencyChecks_296 9.555 8.35485 2.0 +ConsistencyChecks_053 5.46 6.47011 2.0 +ConsistencyChecks_046 9.7 8.60688 2.0 +ConsistencyChecks_281 8.03 8.04917 2.0 +ConsistencyChecks_227 7.92 7.46655 2.0 +ConsistencyChecks_285 5.27 5.97713 2.0 +ConsistencyChecks_079 4.85 6.46108 2.0 +ConsistencyChecks_002 7.88 7.10164 2.0 +ConsistencyChecks_212 9.22 8.77865 2.0 +ConsistencyChecks_005 6.96 6.9815 3.0 +ConsistencyChecks_141 7.07 7.79654 3.0 +ConsistencyChecks_006 7.24 6.6745 3.0 +ConsistencyChecks_224 6.87 6.5139 3.0 +ConsistencyChecks_299 7.6 5.99468 3.0 +ConsistencyChecks_009 7.08 6.02492 3.0 +ConsistencyChecks_228 7.03 7.09168 3.0 +ConsistencyChecks_286 8.7 7.45481 3.0 +ConsistencyChecks_190 9.15 8.74729 3.0 +ConsistencyChecks_298 6.11 7.50631 3.0 +ConsistencyChecks_179 7.0 6.73421 3.0 +ConsistencyChecks_283 8.17 7.15344 3.0 +ConsistencyChecks_124 6.93 7.48583 3.0 +ConsistencyChecks_252 5.7 5.95341 3.0 +ConsistencyChecks_128 8.34 7.60654 3.0 +ConsistencyChecks_259 5.48 6.95455 3.0 +ConsistencyChecks_014 5.99 6.73089 3.0 +ConsistencyChecks_077 6.7 6.46389 3.0 +ConsistencyChecks_021 5.89 6.21533 3.0 +ConsistencyChecks_255 7.52 6.73801 3.0 +ConsistencyChecks_117 6.42 6.19372 3.0 +ConsistencyChecks_035 6.745 6.11955 3.0 +ConsistencyChecks_290 7.27 8.8527 3.0 +ConsistencyChecks_256 7.31 6.83836 3.0 +ConsistencyChecks_291 5.97 6.72701 3.0 +ConsistencyChecks_192 5.04 6.77343 3.0 +ConsistencyChecks_204 5.375 5.32631 3.0 +ConsistencyChecks_272 4.99 7.0924 3.0 +ConsistencyChecks_016 5.92 5.13798 3.0 +ConsistencyChecks_133 6.79 6.35274 3.0 +ConsistencyChecks_203 6.35 7.89106 3.0 +ConsistencyChecks_015 7.04 7.99654 3.0 +ConsistencyChecks_246 6.52 6.0638 3.0 +ConsistencyChecks_238 6.37 6.17166 3.0 +ConsistencyChecks_094 6.53 6.37076 3.0 +ConsistencyChecks_112 7.32 6.10047 3.0 +ConsistencyChecks_270 6.57 5.79255 3.0 +ConsistencyChecks_105 5.84 6.03509 3.0 +ConsistencyChecks_278 6.46 6.80077 3.0 +ConsistencyChecks_013 5.82 6.63477 3.0 +ConsistencyChecks_135 5.4 6.70212 3.0 +ConsistencyChecks_070 6.69 6.98501 3.0 +ConsistencyChecks_147 9.14538 7.96866 3.0 +ConsistencyChecks_110 6.64 6.26713 3.0 +ConsistencyChecks_186 5.01 7.37271 3.0 +ConsistencyChecks_232 6.22 7.44148 3.0 +ConsistencyChecks_047 5.76 5.97419 3.0 +ConsistencyChecks_282 7.85 7.30192 3.0 +ConsistencyChecks_069 6.05 6.50721 4.0 +ConsistencyChecks_148 5.85 6.3324 4.0 +ConsistencyChecks_155 6.43 6.64914 4.0 +ConsistencyChecks_222 7.03 6.26318 4.0 +ConsistencyChecks_178 7.6 7.09277 4.0 +ConsistencyChecks_024 6.66 5.71068 4.0 +ConsistencyChecks_109 6.45 6.7947 4.0 +ConsistencyChecks_051 5.01 6.97595 4.0 +ConsistencyChecks_132 7.24 6.13871 4.0 +ConsistencyChecks_209 7.48 7.04527 4.0 +ConsistencyChecks_027 7.775 6.03296 4.0 +ConsistencyChecks_176 7.21 6.73665 4.0 +ConsistencyChecks_265 6.86 6.68657 4.0 +ConsistencyChecks_225 6.97 7.40584 4.0 +ConsistencyChecks_173 7.8 7.21929 4.0 +ConsistencyChecks_017 6.57 6.78967 4.0 +ConsistencyChecks_143 6.41 5.6709 4.0 +ConsistencyChecks_200 8.19 6.77726 4.0 +ConsistencyChecks_166 9.71 7.66829 4.0 +ConsistencyChecks_074 7.07 6.70414 4.0 +ConsistencyChecks_263 7.0 6.44158 4.0 +ConsistencyChecks_205 8.71 8.58173 4.0 +ConsistencyChecks_163 6.96 7.63742 4.0 +ConsistencyChecks_118 8.54 8.84585 4.0 +ConsistencyChecks_019 7.0 6.41537 4.0 +ConsistencyChecks_030 7.51 6.34513 4.0 +ConsistencyChecks_289 9.4 6.44312 4.0 +ConsistencyChecks_067 6.0 5.76058 4.0 +ConsistencyChecks_231 6.72 5.65933 4.0 +ConsistencyChecks_114 6.5 6.70641 4.0 +ConsistencyChecks_245 6.31 6.69103 4.0 +ConsistencyChecks_149 6.25 5.96433 4.0 +ConsistencyChecks_040 7.52 6.4896 4.0 +ConsistencyChecks_049 9.1 8.69697 4.0 +ConsistencyChecks_182 5.65 7.10875 4.0 +ConsistencyChecks_025 6.46 7.66906 4.0 +ConsistencyChecks_184 7.27 7.62535 4.0 +ConsistencyChecks_061 6.42 6.28808 4.0 +ConsistencyChecks_106 9.0 6.96412 4.0 +ConsistencyChecks_271 5.31 6.58264 4.0 +ConsistencyChecks_083 6.0 6.46786 4.0 +ConsistencyChecks_144 7.76 6.21173 4.0 +ConsistencyChecks_159 6.04 7.10202 4.0 +ConsistencyChecks_138 6.94 7.25084 4.0 +ConsistencyChecks_080 5.61 6.08898 4.0 +ConsistencyChecks_250 6.93 6.12082 4.0 +ConsistencyChecks_050 6.13 6.75749 4.0 +ConsistencyChecks_217 8.52 8.56237 4.0 diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369.ind.tsv b/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369.ind.tsv index 33b0b331..750d8391 100644 --- a/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369.ind.tsv +++ b/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369.ind.tsv @@ -1,61 +1,61 @@ QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction -ConsistencyChecks_193 6.68 6.5236 -ConsistencyChecks_292 9.05 7.643 -ConsistencyChecks_207 9.92 6.71305 -ConsistencyChecks_288 6.58 6.115 -ConsistencyChecks_158 5.09 6.46332 -ConsistencyChecks_119 8.35 8.96036 -ConsistencyChecks_160 5.89 5.55204 -ConsistencyChecks_012 7.24 7.23984 -ConsistencyChecks_081 8.79 7.04638 -ConsistencyChecks_102 7.64 7.78963 -ConsistencyChecks_254 6.2475 7.00825 -ConsistencyChecks_058 6.77 6.99547 -ConsistencyChecks_266 7.54 6.82676 -ConsistencyChecks_034 7.01 6.94647 -ConsistencyChecks_244 7.32 6.65079 -ConsistencyChecks_151 7.79 6.60474 -ConsistencyChecks_146 5.18 5.99648 -ConsistencyChecks_230 9.0 8.0894 -ConsistencyChecks_247 6.92 6.29193 -ConsistencyChecks_195 7.48 7.5616 -ConsistencyChecks_082 5.0 5.92513 -ConsistencyChecks_257 8.24 8.15045 -ConsistencyChecks_136 5.225 5.27612 -ConsistencyChecks_113 7.04 7.13866 -ConsistencyChecks_064 6.3 6.06881 -ConsistencyChecks_107 5.96 6.18213 -ConsistencyChecks_072 6.23 7.01686 -ConsistencyChecks_101 6.99091 7.29958 -ConsistencyChecks_095 7.46 6.4292 -ConsistencyChecks_150 7.64 6.63431 -ConsistencyChecks_104 8.03 7.52696 -ConsistencyChecks_287 7.04 6.96033 -ConsistencyChecks_273 7.88 6.72431 -ConsistencyChecks_099 8.28 6.78645 -ConsistencyChecks_048 8.32 7.6886 -ConsistencyChecks_122 8.4 8.10864 -ConsistencyChecks_253 7.79 7.06426 -ConsistencyChecks_279 8.7 7.62821 -ConsistencyChecks_120 9.345 6.44211 -ConsistencyChecks_065 9.4 9.30884 -ConsistencyChecks_175 8.72 9.00932 -ConsistencyChecks_097 7.82 6.22745 -ConsistencyChecks_293 8.84 6.68132 -ConsistencyChecks_165 6.68 6.4223 -ConsistencyChecks_073 7.75 6.52666 -ConsistencyChecks_007 6.34 5.76618 -ConsistencyChecks_036 7.88 6.6531 -ConsistencyChecks_223 5.12 6.21956 -ConsistencyChecks_126 7.37 7.10901 -ConsistencyChecks_208 6.62 8.09455 -ConsistencyChecks_075 6.06 6.62849 -ConsistencyChecks_276 5.24 6.16423 -ConsistencyChecks_188 7.13 6.97435 -ConsistencyChecks_233 6.69 6.51874 -ConsistencyChecks_068 7.96 7.60087 -ConsistencyChecks_032 4.2 5.54883 -ConsistencyChecks_059 7.58 7.5064 -ConsistencyChecks_078 6.65 7.06566 -ConsistencyChecks_031 7.04 6.07112 -ConsistencyChecks_241 6.59 7.23493 +ConsistencyChecks_193 6.68 5.54351 +ConsistencyChecks_292 9.05 8.12621 +ConsistencyChecks_207 9.92 8.41418 +ConsistencyChecks_288 6.58 6.58804 +ConsistencyChecks_158 5.09 5.5486 +ConsistencyChecks_119 8.35 9.17363 +ConsistencyChecks_160 5.89 5.36545 +ConsistencyChecks_012 7.24 6.50732 +ConsistencyChecks_081 8.79 7.17175 +ConsistencyChecks_102 7.64 6.74366 +ConsistencyChecks_254 6.2475 6.34185 +ConsistencyChecks_058 6.77 6.72145 +ConsistencyChecks_266 7.54 7.08067 +ConsistencyChecks_034 7.01 7.10495 +ConsistencyChecks_244 7.32 7.43367 +ConsistencyChecks_151 7.79 7.4808 +ConsistencyChecks_146 5.18 5.58156 +ConsistencyChecks_230 9.0 8.14686 +ConsistencyChecks_247 6.92 7.56393 +ConsistencyChecks_195 7.48 7.76036 +ConsistencyChecks_082 5.0 5.74617 +ConsistencyChecks_257 8.24 7.50505 +ConsistencyChecks_136 5.225 5.58733 +ConsistencyChecks_113 7.04 7.00981 +ConsistencyChecks_064 6.3 6.15121 +ConsistencyChecks_107 5.96 6.26131 +ConsistencyChecks_072 6.23 6.5163 +ConsistencyChecks_101 6.99091 6.60363 +ConsistencyChecks_095 7.46 5.78547 +ConsistencyChecks_150 7.64 5.84858 +ConsistencyChecks_104 8.03 7.7486 +ConsistencyChecks_287 7.04 7.61103 +ConsistencyChecks_273 7.88 6.6308 +ConsistencyChecks_099 8.28 7.20008 +ConsistencyChecks_048 8.32 8.02516 +ConsistencyChecks_122 8.4 7.59417 +ConsistencyChecks_253 7.79 6.35898 +ConsistencyChecks_279 8.7 7.38222 +ConsistencyChecks_120 9.345 6.59127 +ConsistencyChecks_065 9.4 9.27353 +ConsistencyChecks_175 8.72 8.2429 +ConsistencyChecks_097 7.82 6.08712 +ConsistencyChecks_293 8.84 6.80107 +ConsistencyChecks_165 6.68 7.00423 +ConsistencyChecks_073 7.75 7.12166 +ConsistencyChecks_007 6.34 6.46776 +ConsistencyChecks_036 7.88 6.63179 +ConsistencyChecks_223 5.12 7.12734 +ConsistencyChecks_126 7.37 7.00207 +ConsistencyChecks_208 6.62 6.95378 +ConsistencyChecks_075 6.06 6.50369 +ConsistencyChecks_276 5.24 5.09305 +ConsistencyChecks_188 7.13 6.40162 +ConsistencyChecks_233 6.69 7.03344 +ConsistencyChecks_068 7.96 7.76039 +ConsistencyChecks_032 4.2 6.10033 +ConsistencyChecks_059 7.58 8.11774 +ConsistencyChecks_078 6.65 6.89112 +ConsistencyChecks_031 7.04 6.60512 +ConsistencyChecks_241 6.59 7.75091 diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369.json b/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369.json index 0c01f7f9..a4955f3f 100644 --- a/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369.json +++ b/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369.json @@ -1 +1 @@ -{"unfitted": true, "meta": ["sklearn.cross_decomposition._pls", "PLSRegression"], "params": {"copy": true, "max_iter": 500, "n_components": 2, "scale": true, "tol": 1e-06}, "versions": ["sklearn", "1.2.1"]} \ No newline at end of file +{"unfitted": true, "meta": ["xgboost.sklearn", "XGBRegressor"], "params": {"objective": "reg:squarederror", "base_score": null, "booster": null, "callbacks": null, "colsample_bylevel": null, "colsample_bynode": null, "colsample_bytree": null, "device": null, "early_stopping_rounds": null, "enable_categorical": false, "eval_metric": null, "feature_types": null, "gamma": null, "grow_policy": null, "importance_type": null, "interaction_constraints": null, "learning_rate": null, "max_bin": null, "max_cat_threshold": null, "max_cat_to_onehot": null, "max_delta_step": null, "max_depth": null, "max_leaves": null, "min_child_weight": null, "missing": NaN, "monotone_constraints": null, "multi_strategy": null, "n_estimators": null, "n_jobs": null, "num_parallel_tree": null, "random_state": 107420369, "reg_alpha": null, "reg_lambda": null, "sampling_method": null, "scale_pos_weight": null, "subsample": null, "tree_method": null, "validate_parameters": null, "verbosity": null}, "versions": ["xgboost", "2.0.3"]} \ No newline at end of file diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369_meta.json b/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369_meta.json index 9b3187db..a5d1521f 100644 --- a/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369_meta.json +++ b/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369_meta.json @@ -20,550 +20,537 @@ } ] }, - "transformer": null, - "imputer": null + "imputer": null, + "transformer": null } } ], "nTargets": 1, "featureCalculators": [ { - "py/object": "qsprpred.data.descriptors.calculators.MoleculeDescriptorsCalculator", + "py/object": "qsprpred.data.descriptors.fingerprints.MorganFP", "py/state": { - "descSets": [ - { - "py/object": "qsprpred.data.descriptors.sets.FingerprintSet", - "py/state": { - "_isFP": true, - "fingerprintType": "MorganFP", - "_args": { - "py/tuple": [] - }, - "_kwargs": { - "radius": 2, - "nBits": 256 - }, - "_keepindices": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 50, - 51, - 52, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 65, - 66, - 67, - 68, - 69, - 71, - 72, - 73, - 74, - 75, - 77, - 78, - 79, - 80, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 98, - 99, - 101, - 102, - 103, - 104, - 105, - 106, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 172, - 173, - 174, - 175, - 177, - 178, - 179, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 221, - 226, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 237, - 239, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 255 - ], - "descriptors": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "50", - "51", - "52", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "65", - "66", - "67", - "68", - "69", - "71", - "72", - "73", - "74", - "75", - "77", - "78", - "79", - "80", - "82", - "83", - "84", - "85", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "96", - "98", - "99", - "101", - "102", - "103", - "104", - "105", - "106", - "108", - "109", - "110", - "111", - "112", - "113", - "114", - "115", - "117", - "118", - "119", - "120", - "121", - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "144", - "145", - "146", - "147", - "148", - "149", - "150", - "151", - "152", - "153", - "154", - "155", - "156", - "157", - "158", - "160", - "161", - "162", - "163", - "164", - "165", - "166", - "167", - "168", - "169", - "170", - "172", - "173", - "174", - "175", - "177", - "178", - "179", - "182", - "183", - "184", - "185", - "186", - "187", - "188", - "189", - "191", - "192", - "193", - "194", - "195", - "196", - "197", - "198", - "199", - "200", - "201", - "202", - "203", - "204", - "205", - "206", - "207", - "208", - "209", - "210", - "211", - "212", - "213", - "214", - "215", - "216", - "217", - "218", - "219", - "221", - "226", - "228", - "229", - "230", - "231", - "232", - "233", - "234", - "235", - "237", - "239", - "241", - "242", - "243", - "244", - "245", - "246", - "247", - "248", - "249", - "250", - "251", - "252", - "255" - ] - } - }, - { - "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", - "py/state": { - "_isFP": false, - "_descriptors": [ - "BCUT2D_CHGLO", - "EState_VSA1", - "EState_VSA2", - "EState_VSA7", - "FractionCSP3", - "MaxAbsEStateIndex", - "MaxEStateIndex", - "MinPartialCharge", - "NumAromaticRings", - "NumSaturatedHeterocycles", - "PEOE_VSA11", - "PEOE_VSA4", - "SlogP_VSA12", - "SlogP_VSA4", - "fr_Al_OH", - "fr_Al_OH_noTert", - "fr_ArN", - "fr_Ar_NH", - "fr_NH2", - "fr_Ndealkylation1", - "fr_Nhpyrrole", - "fr_aryl_methyl", - "fr_furan", - "fr_imidazole", - "fr_para_hydroxylation", - "fr_piperzine", - "fr_thiazole" - ], - "include3D": false, - "descriptors": [ - "BCUT2D_CHGLO", - "EState_VSA1", - "EState_VSA2", - "EState_VSA7", - "FractionCSP3", - "MaxAbsEStateIndex", - "MaxEStateIndex", - "MinPartialCharge", - "NumAromaticRings", - "NumSaturatedHeterocycles", - "PEOE_VSA11", - "PEOE_VSA4", - "SlogP_VSA12", - "SlogP_VSA4", - "fr_Al_OH", - "fr_Al_OH_noTert", - "fr_ArN", - "fr_Ar_NH", - "fr_NH2", - "fr_Ndealkylation1", - "fr_Nhpyrrole", - "fr_aryl_methyl", - "fr_furan", - "fr_imidazole", - "fr_para_hydroxylation", - "fr_piperzine", - "fr_thiazole" - ] - } - } + "idProp": "QSPRID", + "_usedBits": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 50, + 51, + 52, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 65, + 66, + 67, + 68, + 69, + 71, + 72, + 73, + 74, + 75, + 77, + 78, + 79, + 80, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 98, + 99, + 101, + 102, + 103, + 104, + 105, + 106, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 172, + 173, + 174, + 175, + 177, + 178, + 179, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 221, + 226, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 237, + 239, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 255 + ], + "radius": 2, + "nBits": 256, + "kwargs": {}, + "descriptors": [ + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_77", + "MorganFP_78", + "MorganFP_79", + "MorganFP_80", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_98", + "MorganFP_99", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_221", + "MorganFP_226", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_237", + "MorganFP_239", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_255" + ] + } + }, + { + "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", + "py/state": { + "idProp": "QSPRID", + "_descriptors": [ + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA2", + "EState_VSA7", + "FractionCSP3", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "MinPartialCharge", + "NumAromaticRings", + "NumSaturatedHeterocycles", + "PEOE_VSA11", + "PEOE_VSA4", + "SlogP_VSA12", + "SlogP_VSA4", + "fr_Al_OH", + "fr_Al_OH_noTert", + "fr_ArN", + "fr_Ar_NH", + "fr_NH2", + "fr_Ndealkylation1", + "fr_Nhpyrrole", + "fr_aryl_methyl", + "fr_furan", + "fr_imidazole", + "fr_para_hydroxylation", + "fr_piperzine", + "fr_thiazole" ], - "noParallelization": false + "include3D": false, + "descriptors": [ + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA2", + "EState_VSA7", + "FractionCSP3", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "MinPartialCharge", + "NumAromaticRings", + "NumSaturatedHeterocycles", + "PEOE_VSA11", + "PEOE_VSA4", + "SlogP_VSA12", + "SlogP_VSA4", + "fr_Al_OH", + "fr_Al_OH_noTert", + "fr_ArN", + "fr_Ar_NH", + "fr_NH2", + "fr_Ndealkylation1", + "fr_Nhpyrrole", + "fr_aryl_methyl", + "fr_furan", + "fr_imidazole", + "fr_para_hydroxylation", + "fr_piperzine", + "fr_thiazole" + ] } } ], @@ -579,257 +566,257 @@ "with_std": true }, "var_": [ - 0.13326388888888865, - 0.12456597222222182, - 0.06581597222222234, - 0.19748263888888845, - 0.06937499999999995, - 0.07289930555555585, - 0.05493055555555545, - 0.22750000000000017, - 0.06581597222222232, - 0.10623263888888854, - 0.13039930555555623, + 0.1332638888888889, + 0.12456597222222227, + 0.0658159722222222, + 0.19748263888888892, + 0.069375, + 0.07289930555555557, + 0.05493055555555556, + 0.2275, + 0.06581597222222221, + 0.10623263888888886, + 0.13039930555555557, 0.05859375, - 0.1649305555555561, - 0.08326388888888904, - 0.10305555555555523, - 0.1303993055555562, - 0.05493055555555545, - 0.06222222222222262, - 0.18326388888888961, - 0.07984375000000009, - 0.15999999999999956, - 0.19555555555555476, - 0.1599999999999996, - 0.07638888888888884, - 0.19159722222222306, - 0.09984374999999969, - 0.09659722222222207, + 0.16493055555555552, + 0.08326388888888887, + 0.10305555555555555, + 0.13039930555555554, + 0.054930555555555545, + 0.06222222222222223, + 0.1832638888888889, + 0.07984375, + 0.16000000000000003, + 0.1955555555555556, + 0.16000000000000003, + 0.07638888888888888, + 0.19159722222222222, + 0.09984375000000002, + 0.09659722222222221, 0.109375, - 0.05493055555555544, + 0.05493055555555555, 0.109375, - 0.06222222222222252, - 0.17888888888888899, - 0.15999999999999956, - 0.20305555555555588, - 0.11859375000000022, - 0.06937500000000014, - 0.2262326388888888, - 0.1388888888888892, + 0.06222222222222222, + 0.1788888888888889, + 0.16000000000000006, + 0.20305555555555557, + 0.11859375, + 0.069375, + 0.22623263888888884, + 0.1388888888888889, 0.15234375, - 0.09659722222222242, - 0.20659722222222188, - 0.11248263888888912, - 0.1599999999999996, - 0.2493750000000001, - 0.2437326388888904, - 0.24826388888888856, - 0.07984375000000009, - 0.14437500000000011, - 0.2132638888888901, - 0.08326388888888916, - 0.05493055555555544, - 0.23222222222222327, - 0.14437500000000023, - 0.22993055555555625, - 0.15493055555555543, - 0.22493055555555566, - 0.18326388888888967, - 0.20484374999999932, - 0.06581597222222235, - 0.18956597222222174, - 0.23734375000000094, - 0.11859375000000023, - 0.18109375000000022, - 0.17888888888888899, - 0.1743749999999998, - 0.05493055555555542, - 0.1549305555555554, - 0.1443750000000002, - 0.1275000000000005, - 0.23914930555555644, - 0.05123263888888906, - 0.1574826388888885, - 0.1697222222222221, - 0.05123263888888903, + 0.09659722222222221, + 0.20659722222222227, + 0.1124826388888889, + 0.16000000000000006, + 0.24937499999999996, + 0.24373263888888885, + 0.24826388888888892, + 0.07984375, + 0.144375, + 0.21326388888888884, + 0.08326388888888887, + 0.05493055555555556, + 0.23222222222222222, + 0.14437499999999998, + 0.22993055555555547, + 0.15493055555555557, + 0.2249305555555555, + 0.1832638888888889, + 0.20484374999999996, + 0.0658159722222222, + 0.18956597222222224, + 0.23734375000000008, + 0.11859375000000001, + 0.18109375000000003, + 0.1788888888888889, + 0.17437500000000003, + 0.054930555555555545, + 0.15493055555555557, + 0.14437499999999998, + 0.12749999999999997, + 0.23914930555555555, + 0.05123263888888887, + 0.15748263888888892, + 0.16972222222222216, + 0.051232638888888876, 0.05859375, - 0.12456597222222181, - 0.24437499999999923, - 0.06581597222222231, - 0.08326388888888908, - 0.10623263888888865, - 0.15999999999999953, - 0.24914930555555542, - 0.19937500000000022, - 0.0965972222222224, - 0.05493055555555547, - 0.06581597222222231, - 0.20305555555555585, - 0.23539930555555458, - 0.051232638888889036, - 0.2100000000000009, - 0.09000000000000007, - 0.13609375000000065, - 0.14706597222222245, - 0.19359374999999968, - 0.24305555555555644, - 0.06937500000000005, - 0.09000000000000036, - 0.051232638888889036, - 0.09000000000000015, - 0.16493055555555605, - 0.1360937500000007, - 0.23109375000000013, - 0.09331597222222184, + 0.12456597222222225, + 0.24437499999999998, + 0.06581597222222221, + 0.08326388888888889, + 0.10623263888888887, + 0.16000000000000003, + 0.24914930555555556, + 0.19937500000000002, + 0.09659722222222221, + 0.05493055555555556, + 0.06581597222222221, + 0.20305555555555557, + 0.23539930555555563, + 0.051232638888888876, + 0.20999999999999996, + 0.09, + 0.13609374999999999, + 0.14706597222222217, + 0.19359374999999995, + 0.24305555555555552, + 0.06937500000000002, + 0.09000000000000001, + 0.051232638888888876, + 0.09000000000000001, + 0.16493055555555552, + 0.13609374999999999, + 0.23109374999999996, + 0.09331597222222224, 0.109375, - 0.24826388888888867, - 0.1497222222222224, - 0.12456597222222184, - 0.24373263888889035, - 0.22493055555555566, + 0.24826388888888892, + 0.14972222222222217, + 0.12456597222222227, + 0.24373263888888885, + 0.22493055555555552, 0.05859375, - 0.206597222222222, + 0.20659722222222227, 0.17888888888888893, - 0.24972222222222243, - 0.09984374999999958, - 0.08664930555555551, - 0.23222222222222316, - 0.20659722222222168, - 0.1030555555555552, - 0.18109374999999997, - 0.07289930555555588, - 0.11859375000000033, - 0.06222222222222239, - 0.24956597222222218, - 0.13326388888888868, - 0.21638888888888816, - 0.11859375000000028, - 0.23638888888888854, - 0.09000000000000039, - 0.14437500000000025, - 0.24498263888888874, - 0.09659722222222236, - 0.15748263888888844, - 0.24956597222222215, - 0.08664930555555551, + 0.24972222222222223, + 0.09984375000000001, + 0.08664930555555557, + 0.23222222222222227, + 0.20659722222222227, + 0.10305555555555553, + 0.18109375000000003, + 0.07289930555555557, + 0.11859375000000003, + 0.06222222222222224, + 0.2495659722222223, + 0.13326388888888893, + 0.2163888888888889, + 0.11859375, + 0.23638888888888884, + 0.09000000000000001, + 0.144375, + 0.24498263888888897, + 0.09659722222222221, + 0.15748263888888892, + 0.24956597222222224, + 0.08664930555555556, 0.05859375, - 0.07638888888888874, - 0.1185937500000002, - 0.06222222222222238, - 0.11248263888888911, + 0.07638888888888887, + 0.11859375000000001, + 0.06222222222222224, + 0.1124826388888889, 0.05859375, - 0.11859375000000025, + 0.11859375000000001, 0.21484375, - 0.1360937500000006, - 0.244982638888889, + 0.13609374999999999, + 0.24498263888888885, 0.21484375, - 0.23999999999999885, - 0.22873263888888895, - 0.20123263888888943, - 0.22359374999999987, - 0.15493055555555543, - 0.069375, - 0.1743749999999996, - 0.1935937499999998, - 0.2485937499999996, - 0.07638888888888888, - 0.24789930555555495, - 0.10623263888888869, - 0.08326388888888919, - 0.0832638888888892, - 0.15999999999999961, - 0.19748263888888828, - 0.17437499999999964, - 0.09000000000000023, + 0.24000000000000005, + 0.2287326388888888, + 0.20123263888888893, + 0.22359375000000004, + 0.15493055555555557, + 0.06937499999999999, + 0.17437500000000003, + 0.19359374999999998, + 0.24859375000000003, + 0.07638888888888887, + 0.24789930555555564, + 0.10623263888888887, + 0.08326388888888887, + 0.08326388888888889, + 0.16000000000000003, + 0.19748263888888892, + 0.17437500000000003, + 0.09000000000000001, 0.234375, - 0.09984374999999969, - 0.09000000000000025, - 0.08664930555555551, - 0.14706597222222245, - 0.2382638888888892, - 0.10623263888888844, - 0.12456597222222181, - 0.11859375000000019, - 0.06581597222222237, - 0.1443750000000002, + 0.09984375000000001, + 0.09000000000000001, + 0.08664930555555556, + 0.14706597222222217, + 0.23826388888888894, + 0.10623263888888887, + 0.12456597222222225, + 0.11859375000000001, + 0.06581597222222221, + 0.144375, 0.05859375, - 0.21937500000000065, - 0.14164930555555566, - 0.19555555555555468, - 0.06581597222222232, - 0.14164930555555566, - 0.12750000000000056, - 0.16734374999999993, + 0.21937499999999996, + 0.14164930555555552, + 0.1955555555555556, + 0.06581597222222221, + 0.14164930555555552, + 0.12749999999999997, + 0.16734374999999999, 0.22623263888888884, - 0.199375, - 0.054930555555555434, - 0.15999999999999956, - 0.15493055555555543, - 0.09331597222222178, - 0.2391493055555565, - 0.14164930555555563, - 0.1895659722222218, - 0.12456597222222186, - 0.16734375000000004, + 0.19937500000000002, + 0.054930555555555545, + 0.16000000000000006, + 0.15493055555555557, + 0.09331597222222224, + 0.23914930555555552, + 0.14164930555555552, + 0.18956597222222218, + 0.12456597222222224, + 0.16734374999999999, 0.05859375, - 0.07638888888888871, - 0.10623263888888843, - 0.07984375000000009, - 0.2310937500000002, - 0.06937499999999994, - 0.17437499999999964, + 0.07638888888888887, + 0.10623263888888886, + 0.07984375, + 0.23109374999999993, + 0.06937500000000002, + 0.17437500000000003, 0.109375, - 0.14164930555555547, - 0.09984374999999948, - 0.13888888888888928, - 0.093315972222222, - 0.16734375000000015, - 0.09000000000000054, - 0.062222222222222505, - 0.07638888888888834, + 0.14164930555555552, + 0.09984375000000002, + 0.13888888888888887, + 0.09331597222222224, + 0.16734374999999999, + 0.09, + 0.06222222222222223, + 0.07638888888888887, 0.05859375, - 0.07984375000000007, - 0.07289930555555586, - 0.07638888888888878, - 0.08664930555555551, - 0.06222222222222259, - 0.12456597222222182, - 0.09659722222222243, - 0.11859375000000026, - 0.17664930555555597, - 0.08326388888888928, + 0.07984375, + 0.07289930555555556, + 0.07638888888888888, + 0.08664930555555557, + 0.06222222222222224, + 0.12456597222222224, + 0.09659722222222221, + 0.11859375000000001, + 0.17664930555555555, + 0.08326388888888887, 0.1697222222222222, - 0.2193750000000008, - 0.09000000000000034, - 0.2475000000000005, - 0.011810825889243625, - 127.59228619703737, - 88.73409682287378, - 359.70769637231336, - 0.027608968635327063, - 6.867429094234788, - 6.867429094234788, - 0.003940944670291294, - 0.8520659722222241, - 0.30414930555555547, - 62.959960374947656, - 40.84488002748806, - 62.66206528199166, - 38.53728482537888, - 0.8040104166666681, - 0.8030555555555546, + 0.21937499999999996, + 0.09000000000000001, + 0.24750000000000008, + 0.011810826490028554, + 127.59228646812348, + 88.73409713653221, + 359.70769402687364, + 0.027608969074900916, + 6.867429023395529, + 6.867429023395529, + 0.003940944639003286, + 0.8520659722222224, + 0.3041493055555556, + 62.959960092784705, + 40.844880850843204, + 62.66206581729436, + 38.537284820425064, + 0.8040104166666666, + 0.8030555555555556, 0.25104166666666666, - 0.21638888888888977, - 0.30067708333333376, + 0.21638888888888885, + 0.3006770833333333, 0.05859375, - 0.21638888888888977, - 0.5899999999999994, - 0.2595659722222222, - 0.2358333333333336, - 0.21833333333333282, - 0.09000000000000014, - 0.11859375000000028 + 0.21638888888888885, + 0.59, + 0.25956597222222216, + 0.23583333333333334, + 0.2183333333333334, + 0.09000000000000001, + 0.11859375000000003 ], "mean_": [ 0.15833333333333333, @@ -1056,20 +1043,20 @@ 0.325, 0.1, 0.45, - -2.14670758297046, - 7.8222078621387485, - 13.38493382136027, - 22.956078785657883, - 0.26363303324518106, - 11.254206307729085, - 11.254206307729085, - -0.42713840523113805, + -2.1467075845833334, + 7.822207844583334, + 13.384933835, + 22.956078700833334, + 0.2636330339958333, + 11.254206290416667, + 11.254206290416667, + -0.42713840475000003, 3.620833333333333, 0.32916666666666666, - 11.862592383225758, - 6.496667162577311, - 5.2060151894887285, - 4.349699733654658, + 11.862592338333332, + 6.496667212916666, + 5.206015191666667, + 4.3496997295833335, 0.3875, 0.38333333333333336, 0.375, @@ -1085,528 +1072,530 @@ 0.1375 ], "scale_": [ - 0.3650532685634915, - 0.3529390488770289, - 0.256546237981036, - 0.4443901876604483, - 0.2633913438213184, - 0.26999871398870745, - 0.23437268517375365, - 0.476969600708473, - 0.25654623798103593, - 0.325933488443407, - 0.3611084401610633, + 0.36505326856349185, + 0.3529390488770296, + 0.2565462379810357, + 0.4443901876604488, + 0.26339134382131846, + 0.26999871398870695, + 0.2343726851737539, + 0.47696960070847283, + 0.2565462379810357, + 0.3259334884434075, + 0.36110844016106236, 0.24206145913796356, - 0.40611643103370754, - 0.28855482821968004, - 0.3210226714043032, - 0.36110844016106325, - 0.23437268517375365, - 0.24944382578493024, - 0.42809331796804495, - 0.282566363886433, - 0.39999999999999947, - 0.4422166387140524, - 0.39999999999999947, - 0.27638539919628324, - 0.43771819955563085, - 0.31598061649411296, - 0.310800936649525, + 0.4061164310337068, + 0.2885548282196797, + 0.3210226714043037, + 0.36110844016106236, + 0.23437268517375387, + 0.24944382578492943, + 0.42809331796804406, + 0.2825663638864329, + 0.4, + 0.44221663871405337, + 0.4, + 0.2763853991962833, + 0.4377181995556299, + 0.31598061649411346, + 0.31080093664952524, 0.33071891388307384, - 0.23437268517375365, + 0.23437268517375387, 0.33071891388307384, - 0.24944382578493002, - 0.4229525846816508, - 0.39999999999999947, - 0.4506168611531928, - 0.34437443284889807, - 0.26339134382131874, - 0.4756391898160714, - 0.3726779962499654, + 0.24944382578492943, + 0.4229525846816507, + 0.4000000000000001, + 0.4506168611531925, + 0.3443744328488978, + 0.26339134382131846, + 0.47563918981607145, + 0.37267799624996495, 0.3903123748998999, - 0.31080093664952557, - 0.45452967144315437, - 0.33538431521001266, - 0.39999999999999947, - 0.4993746088859546, - 0.4936928588595245, - 0.4982608642958913, - 0.282566363886433, - 0.37996710383926674, - 0.4618050334165817, - 0.2885548282196802, - 0.23437268517375365, - 0.4818944098266998, - 0.3799671038392669, - 0.4795107460271941, - 0.39361218928731795, - 0.47426844250440664, - 0.428093317968045, - 0.4525966747557911, - 0.256546237981036, - 0.4353917456983099, - 0.48717938174762787, - 0.3443744328488981, - 0.4255511132637303, - 0.4229525846816508, - 0.4175823272122514, - 0.2343726851737536, - 0.39361218928731795, - 0.37996710383926685, - 0.3570714214271432, - 0.48902894142939685, - 0.22634628092568487, - 0.3968408231128553, - 0.4119735698102757, - 0.22634628092568482, + 0.31080093664952524, + 0.4545296714431548, + 0.33538431521001233, + 0.4000000000000001, + 0.4993746088859544, + 0.49369285885952296, + 0.4982608642958916, + 0.2825663638864329, + 0.3799671038392666, + 0.4618050334165803, + 0.2885548282196797, + 0.2343726851737539, + 0.4818944098266987, + 0.3799671038392666, + 0.4795107460271933, + 0.39361218928731817, + 0.4742684425044065, + 0.42809331796804406, + 0.4525966747557918, + 0.2565462379810357, + 0.43539174569831046, + 0.487179381747627, + 0.3443744328488978, + 0.4255511132637301, + 0.4229525846816507, + 0.4175823272122517, + 0.23437268517375387, + 0.39361218928731817, + 0.3799671038392666, + 0.3570714214271425, + 0.4890289414293959, + 0.22634628092568446, + 0.3968408231128558, + 0.4119735698102758, + 0.22634628092568448, 0.24206145913796356, - 0.3529390488770289, - 0.4943429983321289, - 0.25654623798103593, - 0.2885548282196801, - 0.3259334884434072, - 0.3999999999999994, - 0.4991485806406299, - 0.44651427748729405, - 0.31080093664952557, - 0.2343726851737537, - 0.25654623798103593, - 0.4506168611531928, - 0.4851796631718549, - 0.22634628092568482, - 0.458257569495585, - 0.3000000000000001, - 0.36890886408434354, - 0.383491815065488, - 0.43999289766995064, - 0.49300664859163557, - 0.26339134382131857, - 0.3000000000000006, - 0.22634628092568482, - 0.30000000000000027, - 0.4061164310337074, - 0.3689088640843436, - 0.48072211307573537, - 0.30547663122114893, + 0.35293904887702954, + 0.4943429983321297, + 0.2565462379810357, + 0.28855482821967976, + 0.3259334884434075, + 0.4, + 0.49914858064063006, + 0.44651427748729383, + 0.31080093664952524, + 0.2343726851737539, + 0.2565462379810357, + 0.4506168611531925, + 0.485179663171856, + 0.22634628092568448, + 0.45825756949558394, + 0.3, + 0.36890886408434265, + 0.38349181506548763, + 0.439992897669951, + 0.4930066485916346, + 0.2633913438213185, + 0.30000000000000004, + 0.22634628092568448, + 0.30000000000000004, + 0.4061164310337068, + 0.36890886408434265, + 0.4807221130757352, + 0.3054766312211496, 0.33071891388307384, - 0.4982608642958914, - 0.38693955887479686, - 0.352939048877029, - 0.49369285885952446, - 0.47426844250440664, + 0.4982608642958916, + 0.3869395588747966, + 0.3529390488770296, + 0.49369285885952296, + 0.4742684425044065, 0.24206145913796356, - 0.45452967144315454, + 0.4545296714431548, 0.42295258468165076, - 0.4997221450188319, - 0.3159806164941128, - 0.29436254101966763, - 0.4818944098266997, - 0.45452967144315415, - 0.3210226714043032, - 0.42555111326373, - 0.2699987139887075, - 0.34437443284889824, - 0.24944382578492977, - 0.49956578367840826, - 0.3650532685634915, - 0.4651761912317613, - 0.3443744328488982, - 0.4861984048604937, - 0.30000000000000066, - 0.3799671038392669, - 0.4949572091493251, - 0.3108009366495255, - 0.39684082311285523, - 0.4995657836784082, - 0.29436254101966763, + 0.49972214501883166, + 0.31598061649411346, + 0.29436254101966774, + 0.48189440982669873, + 0.4545296714431548, + 0.3210226714043037, + 0.4255511132637301, + 0.26999871398870695, + 0.3443744328488978, + 0.24944382578492946, + 0.49956578367840837, + 0.3650532685634919, + 0.4651761912317621, + 0.3443744328488978, + 0.486198404860494, + 0.30000000000000004, + 0.3799671038392666, + 0.49495720914932534, + 0.31080093664952524, + 0.3968408231128558, + 0.4995657836784083, + 0.2943625410196677, 0.24206145913796356, - 0.2763853991962831, - 0.34437443284889807, - 0.24944382578492974, - 0.3353843152100126, + 0.2763853991962833, + 0.3443744328488978, + 0.24944382578492946, + 0.33538431521001233, 0.24206145913796356, - 0.3443744328488981, + 0.3443744328488978, 0.46351240544347894, - 0.3689088640843435, - 0.49495720914932534, + 0.36890886408434265, + 0.49495720914932523, 0.46351240544347894, - 0.48989794855663443, - 0.4782600118020416, - 0.44858961076789267, - 0.4728570079844433, - 0.39361218928731795, + 0.48989794855663565, + 0.4782600118020414, + 0.4485896107678921, + 0.47285700798444347, + 0.39361218928731817, 0.26339134382131846, - 0.4175823272122512, - 0.4399928976699508, - 0.49859176687947787, + 0.4175823272122517, + 0.43999289766995103, + 0.4985917668794783, 0.2763853991962833, - 0.4978948740000794, - 0.32593348844340725, - 0.28855482821968026, - 0.2885548282196803, - 0.3999999999999995, - 0.44439018766044813, - 0.4175823272122512, - 0.3000000000000004, + 0.4978948740000801, + 0.3259334884434075, + 0.2885548282196797, + 0.28855482821967976, + 0.4, + 0.4443901876604488, + 0.4175823272122517, + 0.30000000000000004, 0.4841229182759271, - 0.31598061649411296, - 0.30000000000000043, - 0.29436254101966763, - 0.383491815065488, - 0.48812282152024933, - 0.32593348844340686, - 0.3529390488770289, - 0.34437443284889807, - 0.25654623798103604, - 0.37996710383926685, + 0.31598061649411346, + 0.30000000000000004, + 0.2943625410196677, + 0.38349181506548763, + 0.4881228215202491, + 0.3259334884434075, + 0.35293904887702954, + 0.3443744328488978, + 0.2565462379810357, + 0.3799671038392666, 0.24206145913796356, - 0.46837484987988054, - 0.3763632627602695, - 0.4422166387140523, - 0.25654623798103593, - 0.3763632627602695, - 0.35707142142714327, - 0.4090767042988392, + 0.4683748498798798, + 0.3763632627602693, + 0.44221663871405337, + 0.2565462379810357, + 0.3763632627602693, + 0.3570714214271425, + 0.4090767042988393, 0.47563918981607145, - 0.4465142774872938, - 0.23437268517375362, - 0.39999999999999947, - 0.39361218928731795, - 0.3054766312211489, - 0.4890289414293969, - 0.37636326276026943, - 0.43539174569830996, - 0.352939048877029, - 0.40907670429883936, + 0.44651427748729383, + 0.23437268517375387, + 0.4000000000000001, + 0.39361218928731817, + 0.3054766312211496, + 0.4890289414293959, + 0.3763632627602693, + 0.4353917456983104, + 0.35293904887702954, + 0.4090767042988393, 0.24206145913796356, - 0.276385399196283, - 0.32593348844340686, - 0.282566363886433, - 0.4807221130757355, - 0.26339134382131835, - 0.4175823272122512, + 0.2763853991962833, + 0.3259334884434075, + 0.2825663638864329, + 0.4807221130757352, + 0.2633913438213185, + 0.4175823272122517, 0.33071891388307384, - 0.3763632627602692, - 0.31598061649411263, - 0.3726779962499655, - 0.3054766312211492, - 0.40907670429883947, - 0.3000000000000009, - 0.24944382578493, - 0.27638539919628236, + 0.3763632627602693, + 0.31598061649411346, + 0.3726779962499649, + 0.3054766312211496, + 0.4090767042988393, + 0.3, + 0.24944382578492943, + 0.2763853991962833, 0.24206145913796356, - 0.282566363886433, - 0.26999871398870745, - 0.27638539919628313, - 0.29436254101966763, - 0.24944382578493016, - 0.3529390488770289, - 0.3108009366495256, - 0.3443744328488981, - 0.42029668753816746, - 0.2885548282196804, + 0.2825663638864329, + 0.2699987139887069, + 0.2763853991962833, + 0.29436254101966774, + 0.24944382578492946, + 0.35293904887702954, + 0.31080093664952524, + 0.3443744328488978, + 0.42029668753816696, + 0.2885548282196797, 0.41197356981027583, - 0.4683748498798807, - 0.3000000000000006, - 0.4974937185533105, - 0.10867762368235526, - 11.295675552928978, - 9.419877749890057, - 18.9659615198469, - 0.1661594674862888, - 2.620578007660674, - 2.620578007660674, - 0.06277694377947443, - 0.9230741964881394, - 0.5514973305062822, - 7.934731273014081, - 6.39099992391551, - 7.915937422819337, - 6.207840592780945, - 0.8966662794299047, - 0.8961336705846704, + 0.4683748498798798, + 0.30000000000000004, + 0.49749371855331004, + 0.10867762644642436, + 11.29567556492853, + 9.41987776653881, + 18.96596145801403, + 0.16615946880903573, + 2.620577994144713, + 2.620577994144713, + 0.0627769435302746, + 0.9230741964881384, + 0.5514973305062824, + 7.934731255233834, + 6.390999988330715, + 7.915937456631044, + 6.207840592381949, + 0.896666279429904, + 0.896133670584671, 0.5010405838519137, - 0.465176191231763, - 0.5483402988412704, + 0.46517619123176207, + 0.54834029884127, 0.24206145913796356, - 0.465176191231763, - 0.7681145747868604, + 0.46517619123176207, + 0.7681145747868608, 0.509476174342061, - 0.4856267428111158, - 0.46726152562920564, - 0.3000000000000002, - 0.3443744328488982 + 0.4856267428111155, + 0.4672615256292063, + 0.30000000000000004, + 0.3443744328488978 ], "n_samples_seen_": 240, "feature_names_in_": { "py/tuple": [ [ - "Descriptor_FingerprintSet_MorganFP_0", - "Descriptor_FingerprintSet_MorganFP_1", - "Descriptor_FingerprintSet_MorganFP_2", - "Descriptor_FingerprintSet_MorganFP_3", - "Descriptor_FingerprintSet_MorganFP_4", - "Descriptor_FingerprintSet_MorganFP_5", - "Descriptor_FingerprintSet_MorganFP_6", - "Descriptor_FingerprintSet_MorganFP_7", - "Descriptor_FingerprintSet_MorganFP_8", - "Descriptor_FingerprintSet_MorganFP_9", - "Descriptor_FingerprintSet_MorganFP_11", - "Descriptor_FingerprintSet_MorganFP_12", - "Descriptor_FingerprintSet_MorganFP_13", - "Descriptor_FingerprintSet_MorganFP_14", - "Descriptor_FingerprintSet_MorganFP_15", - "Descriptor_FingerprintSet_MorganFP_16", - "Descriptor_FingerprintSet_MorganFP_17", - "Descriptor_FingerprintSet_MorganFP_18", - "Descriptor_FingerprintSet_MorganFP_20", - "Descriptor_FingerprintSet_MorganFP_21", - "Descriptor_FingerprintSet_MorganFP_22", - "Descriptor_FingerprintSet_MorganFP_23", - "Descriptor_FingerprintSet_MorganFP_24", - "Descriptor_FingerprintSet_MorganFP_25", - "Descriptor_FingerprintSet_MorganFP_26", - "Descriptor_FingerprintSet_MorganFP_27", - "Descriptor_FingerprintSet_MorganFP_28", - "Descriptor_FingerprintSet_MorganFP_29", - "Descriptor_FingerprintSet_MorganFP_30", - "Descriptor_FingerprintSet_MorganFP_31", - "Descriptor_FingerprintSet_MorganFP_32", - "Descriptor_FingerprintSet_MorganFP_33", - "Descriptor_FingerprintSet_MorganFP_34", - "Descriptor_FingerprintSet_MorganFP_36", - "Descriptor_FingerprintSet_MorganFP_37", - "Descriptor_FingerprintSet_MorganFP_38", - "Descriptor_FingerprintSet_MorganFP_39", - "Descriptor_FingerprintSet_MorganFP_40", - "Descriptor_FingerprintSet_MorganFP_41", - "Descriptor_FingerprintSet_MorganFP_42", - "Descriptor_FingerprintSet_MorganFP_43", - "Descriptor_FingerprintSet_MorganFP_44", - "Descriptor_FingerprintSet_MorganFP_45", - "Descriptor_FingerprintSet_MorganFP_46", - "Descriptor_FingerprintSet_MorganFP_47", - "Descriptor_FingerprintSet_MorganFP_48", - "Descriptor_FingerprintSet_MorganFP_50", - "Descriptor_FingerprintSet_MorganFP_51", - "Descriptor_FingerprintSet_MorganFP_52", - "Descriptor_FingerprintSet_MorganFP_54", - "Descriptor_FingerprintSet_MorganFP_55", - "Descriptor_FingerprintSet_MorganFP_56", - "Descriptor_FingerprintSet_MorganFP_57", - "Descriptor_FingerprintSet_MorganFP_58", - "Descriptor_FingerprintSet_MorganFP_59", - "Descriptor_FingerprintSet_MorganFP_60", - "Descriptor_FingerprintSet_MorganFP_61", - "Descriptor_FingerprintSet_MorganFP_62", - "Descriptor_FingerprintSet_MorganFP_63", - "Descriptor_FingerprintSet_MorganFP_65", - "Descriptor_FingerprintSet_MorganFP_66", - "Descriptor_FingerprintSet_MorganFP_67", - "Descriptor_FingerprintSet_MorganFP_68", - "Descriptor_FingerprintSet_MorganFP_69", - "Descriptor_FingerprintSet_MorganFP_71", - "Descriptor_FingerprintSet_MorganFP_72", - "Descriptor_FingerprintSet_MorganFP_73", - "Descriptor_FingerprintSet_MorganFP_74", - "Descriptor_FingerprintSet_MorganFP_75", - "Descriptor_FingerprintSet_MorganFP_77", - "Descriptor_FingerprintSet_MorganFP_78", - "Descriptor_FingerprintSet_MorganFP_79", - "Descriptor_FingerprintSet_MorganFP_80", - "Descriptor_FingerprintSet_MorganFP_82", - "Descriptor_FingerprintSet_MorganFP_83", - "Descriptor_FingerprintSet_MorganFP_84", - "Descriptor_FingerprintSet_MorganFP_85", - "Descriptor_FingerprintSet_MorganFP_86", - "Descriptor_FingerprintSet_MorganFP_87", - "Descriptor_FingerprintSet_MorganFP_88", - "Descriptor_FingerprintSet_MorganFP_89", - "Descriptor_FingerprintSet_MorganFP_90", - "Descriptor_FingerprintSet_MorganFP_91", - "Descriptor_FingerprintSet_MorganFP_92", - "Descriptor_FingerprintSet_MorganFP_93", - "Descriptor_FingerprintSet_MorganFP_94", - "Descriptor_FingerprintSet_MorganFP_95", - "Descriptor_FingerprintSet_MorganFP_96", - "Descriptor_FingerprintSet_MorganFP_98", - "Descriptor_FingerprintSet_MorganFP_99", - "Descriptor_FingerprintSet_MorganFP_101", - "Descriptor_FingerprintSet_MorganFP_102", - "Descriptor_FingerprintSet_MorganFP_103", - "Descriptor_FingerprintSet_MorganFP_104", - "Descriptor_FingerprintSet_MorganFP_105", - "Descriptor_FingerprintSet_MorganFP_106", - "Descriptor_FingerprintSet_MorganFP_108", - "Descriptor_FingerprintSet_MorganFP_109", - "Descriptor_FingerprintSet_MorganFP_110", - "Descriptor_FingerprintSet_MorganFP_111", - "Descriptor_FingerprintSet_MorganFP_112", - "Descriptor_FingerprintSet_MorganFP_113", - "Descriptor_FingerprintSet_MorganFP_114", - "Descriptor_FingerprintSet_MorganFP_115", - "Descriptor_FingerprintSet_MorganFP_117", - "Descriptor_FingerprintSet_MorganFP_118", - "Descriptor_FingerprintSet_MorganFP_119", - "Descriptor_FingerprintSet_MorganFP_120", - "Descriptor_FingerprintSet_MorganFP_121", - "Descriptor_FingerprintSet_MorganFP_122", - "Descriptor_FingerprintSet_MorganFP_123", - "Descriptor_FingerprintSet_MorganFP_124", - "Descriptor_FingerprintSet_MorganFP_125", - "Descriptor_FingerprintSet_MorganFP_126", - "Descriptor_FingerprintSet_MorganFP_127", - "Descriptor_FingerprintSet_MorganFP_128", - "Descriptor_FingerprintSet_MorganFP_129", - "Descriptor_FingerprintSet_MorganFP_131", - "Descriptor_FingerprintSet_MorganFP_132", - "Descriptor_FingerprintSet_MorganFP_133", - "Descriptor_FingerprintSet_MorganFP_134", - "Descriptor_FingerprintSet_MorganFP_135", - "Descriptor_FingerprintSet_MorganFP_136", - "Descriptor_FingerprintSet_MorganFP_137", - "Descriptor_FingerprintSet_MorganFP_138", - "Descriptor_FingerprintSet_MorganFP_139", - "Descriptor_FingerprintSet_MorganFP_140", - "Descriptor_FingerprintSet_MorganFP_141", - "Descriptor_FingerprintSet_MorganFP_142", - "Descriptor_FingerprintSet_MorganFP_144", - "Descriptor_FingerprintSet_MorganFP_145", - "Descriptor_FingerprintSet_MorganFP_146", - "Descriptor_FingerprintSet_MorganFP_147", - "Descriptor_FingerprintSet_MorganFP_148", - "Descriptor_FingerprintSet_MorganFP_149", - "Descriptor_FingerprintSet_MorganFP_150", - "Descriptor_FingerprintSet_MorganFP_151", - "Descriptor_FingerprintSet_MorganFP_152", - "Descriptor_FingerprintSet_MorganFP_153", - "Descriptor_FingerprintSet_MorganFP_154", - "Descriptor_FingerprintSet_MorganFP_155", - "Descriptor_FingerprintSet_MorganFP_156", - "Descriptor_FingerprintSet_MorganFP_157", - "Descriptor_FingerprintSet_MorganFP_158", - "Descriptor_FingerprintSet_MorganFP_160", - "Descriptor_FingerprintSet_MorganFP_161", - "Descriptor_FingerprintSet_MorganFP_162", - "Descriptor_FingerprintSet_MorganFP_163", - "Descriptor_FingerprintSet_MorganFP_164", - "Descriptor_FingerprintSet_MorganFP_165", - "Descriptor_FingerprintSet_MorganFP_166", - "Descriptor_FingerprintSet_MorganFP_167", - "Descriptor_FingerprintSet_MorganFP_168", - "Descriptor_FingerprintSet_MorganFP_169", - "Descriptor_FingerprintSet_MorganFP_170", - "Descriptor_FingerprintSet_MorganFP_172", - "Descriptor_FingerprintSet_MorganFP_173", - "Descriptor_FingerprintSet_MorganFP_174", - "Descriptor_FingerprintSet_MorganFP_175", - "Descriptor_FingerprintSet_MorganFP_177", - "Descriptor_FingerprintSet_MorganFP_178", - "Descriptor_FingerprintSet_MorganFP_179", - "Descriptor_FingerprintSet_MorganFP_182", - "Descriptor_FingerprintSet_MorganFP_183", - "Descriptor_FingerprintSet_MorganFP_184", - "Descriptor_FingerprintSet_MorganFP_185", - "Descriptor_FingerprintSet_MorganFP_186", - "Descriptor_FingerprintSet_MorganFP_187", - "Descriptor_FingerprintSet_MorganFP_188", - "Descriptor_FingerprintSet_MorganFP_189", - "Descriptor_FingerprintSet_MorganFP_191", - "Descriptor_FingerprintSet_MorganFP_192", - "Descriptor_FingerprintSet_MorganFP_193", - "Descriptor_FingerprintSet_MorganFP_194", - "Descriptor_FingerprintSet_MorganFP_195", - "Descriptor_FingerprintSet_MorganFP_196", - "Descriptor_FingerprintSet_MorganFP_197", - "Descriptor_FingerprintSet_MorganFP_198", - "Descriptor_FingerprintSet_MorganFP_199", - "Descriptor_FingerprintSet_MorganFP_200", - "Descriptor_FingerprintSet_MorganFP_201", - "Descriptor_FingerprintSet_MorganFP_202", - "Descriptor_FingerprintSet_MorganFP_203", - "Descriptor_FingerprintSet_MorganFP_204", - "Descriptor_FingerprintSet_MorganFP_205", - "Descriptor_FingerprintSet_MorganFP_206", - "Descriptor_FingerprintSet_MorganFP_207", - "Descriptor_FingerprintSet_MorganFP_208", - "Descriptor_FingerprintSet_MorganFP_209", - "Descriptor_FingerprintSet_MorganFP_210", - "Descriptor_FingerprintSet_MorganFP_211", - "Descriptor_FingerprintSet_MorganFP_212", - "Descriptor_FingerprintSet_MorganFP_213", - "Descriptor_FingerprintSet_MorganFP_214", - "Descriptor_FingerprintSet_MorganFP_215", - "Descriptor_FingerprintSet_MorganFP_216", - "Descriptor_FingerprintSet_MorganFP_217", - "Descriptor_FingerprintSet_MorganFP_218", - "Descriptor_FingerprintSet_MorganFP_219", - "Descriptor_FingerprintSet_MorganFP_221", - "Descriptor_FingerprintSet_MorganFP_226", - "Descriptor_FingerprintSet_MorganFP_228", - "Descriptor_FingerprintSet_MorganFP_229", - "Descriptor_FingerprintSet_MorganFP_230", - "Descriptor_FingerprintSet_MorganFP_231", - "Descriptor_FingerprintSet_MorganFP_232", - "Descriptor_FingerprintSet_MorganFP_233", - "Descriptor_FingerprintSet_MorganFP_234", - "Descriptor_FingerprintSet_MorganFP_235", - "Descriptor_FingerprintSet_MorganFP_237", - "Descriptor_FingerprintSet_MorganFP_239", - "Descriptor_FingerprintSet_MorganFP_241", - "Descriptor_FingerprintSet_MorganFP_242", - "Descriptor_FingerprintSet_MorganFP_243", - "Descriptor_FingerprintSet_MorganFP_244", - "Descriptor_FingerprintSet_MorganFP_245", - "Descriptor_FingerprintSet_MorganFP_246", - "Descriptor_FingerprintSet_MorganFP_247", - "Descriptor_FingerprintSet_MorganFP_248", - "Descriptor_FingerprintSet_MorganFP_249", - "Descriptor_FingerprintSet_MorganFP_250", - "Descriptor_FingerprintSet_MorganFP_251", - "Descriptor_FingerprintSet_MorganFP_252", - "Descriptor_FingerprintSet_MorganFP_255", - "Descriptor_RDkit_BCUT2D_CHGLO", - "Descriptor_RDkit_EState_VSA1", - "Descriptor_RDkit_EState_VSA2", - "Descriptor_RDkit_EState_VSA7", - "Descriptor_RDkit_FractionCSP3", - "Descriptor_RDkit_MaxAbsEStateIndex", - "Descriptor_RDkit_MaxEStateIndex", - "Descriptor_RDkit_MinPartialCharge", - "Descriptor_RDkit_NumAromaticRings", - "Descriptor_RDkit_NumSaturatedHeterocycles", - "Descriptor_RDkit_PEOE_VSA11", - "Descriptor_RDkit_PEOE_VSA4", - "Descriptor_RDkit_SlogP_VSA12", - "Descriptor_RDkit_SlogP_VSA4", - "Descriptor_RDkit_fr_Al_OH", - "Descriptor_RDkit_fr_Al_OH_noTert", - "Descriptor_RDkit_fr_ArN", - "Descriptor_RDkit_fr_Ar_NH", - "Descriptor_RDkit_fr_NH2", - "Descriptor_RDkit_fr_Ndealkylation1", - "Descriptor_RDkit_fr_Nhpyrrole", - "Descriptor_RDkit_fr_aryl_methyl", - "Descriptor_RDkit_fr_furan", - "Descriptor_RDkit_fr_imidazole", - "Descriptor_RDkit_fr_para_hydroxylation", - "Descriptor_RDkit_fr_piperzine", - "Descriptor_RDkit_fr_thiazole" + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_77", + "MorganFP_78", + "MorganFP_79", + "MorganFP_80", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_98", + "MorganFP_99", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_221", + "MorganFP_226", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_237", + "MorganFP_239", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_255", + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA2", + "EState_VSA7", + "FractionCSP3", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "MinPartialCharge", + "NumAromaticRings", + "NumSaturatedHeterocycles", + "PEOE_VSA11", + "PEOE_VSA4", + "SlogP_VSA12", + "SlogP_VSA4", + "fr_Al_OH", + "fr_Al_OH_noTert", + "fr_ArN", + "fr_Ar_NH", + "fr_NH2", + "fr_Ndealkylation1", + "fr_Nhpyrrole", + "fr_aryl_methyl", + "fr_furan", + "fr_imidazole", + "fr_para_hydroxylation", + "fr_piperzine", + "fr_thiazole" ] ] }, "versions": { "py/tuple": [ "sklearn", - "1.2.1" + "1.4.0" ] } } } }, "earlyStopping": null, - "parameters": null, - "alg": "sklearn.cross_decomposition._pls.PLSRegression", + "parameters": { + "random_state": 107420369 + }, + "alg": "xgboost.sklearn.XGBRegressor", "randomState": 107420369, "estimator": "./ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369.json" } diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369_replica.json b/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369_replica.json index 66b612d5..65875ce8 100644 --- a/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369_replica.json +++ b/testing/test_consistency/expected/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369_replica.json @@ -10,18 +10,10 @@ }, "descriptors": [ { - "py/object": "qsprpred.data.descriptors.sets.FingerprintSet", + "py/object": "qsprpred.data.descriptors.fingerprints.MorganFP", "py/state": { - "_isFP": true, - "fingerprintType": "MorganFP", - "_args": { - "py/tuple": [] - }, - "_kwargs": { - "radius": 2, - "nBits": 256 - }, - "_keepindices": [ + "idProp": "QSPRID", + "_usedBits": [ 0, 1, 2, @@ -279,270 +271,273 @@ 254, 255 ], + "radius": 2, + "nBits": 256, + "kwargs": {}, "descriptors": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "35", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "96", - "97", - "98", - "99", - "100", - "101", - "102", - "103", - "104", - "105", - "106", - "107", - "108", - "109", - "110", - "111", - "112", - "113", - "114", - "115", - "116", - "117", - "118", - "119", - "120", - "121", - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "143", - "144", - "145", - "146", - "147", - "148", - "149", - "150", - "151", - "152", - "153", - "154", - "155", - "156", - "157", - "158", - "159", - "160", - "161", - "162", - "163", - "164", - "165", - "166", - "167", - "168", - "169", - "170", - "171", - "172", - "173", - "174", - "175", - "176", - "177", - "178", - "179", - "180", - "181", - "182", - "183", - "184", - "185", - "186", - "187", - "188", - "189", - "190", - "191", - "192", - "193", - "194", - "195", - "196", - "197", - "198", - "199", - "200", - "201", - "202", - "203", - "204", - "205", - "206", - "207", - "208", - "209", - "210", - "211", - "212", - "213", - "214", - "215", - "216", - "217", - "218", - "219", - "220", - "221", - "222", - "223", - "224", - "225", - "226", - "227", - "228", - "229", - "230", - "231", - "232", - "233", - "234", - "235", - "236", - "237", - "238", - "239", - "240", - "241", - "242", - "243", - "244", - "245", - "246", - "247", - "248", - "249", - "250", - "251", - "252", - "253", - "254", - "255" + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_10", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_19", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_49", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_64", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_70", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_76", + "MorganFP_77", + "MorganFP_78", + "MorganFP_79", + "MorganFP_80", + "MorganFP_81", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_97", + "MorganFP_98", + "MorganFP_99", + "MorganFP_100", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_107", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_116", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_130", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_143", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_159", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_171", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_176", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_180", + "MorganFP_181", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_190", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_220", + "MorganFP_221", + "MorganFP_222", + "MorganFP_223", + "MorganFP_224", + "MorganFP_225", + "MorganFP_226", + "MorganFP_227", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_236", + "MorganFP_237", + "MorganFP_238", + "MorganFP_239", + "MorganFP_240", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_253", + "MorganFP_254", + "MorganFP_255" ] } }, { "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", "py/state": { - "_isFP": false, + "idProp": "QSPRID", "_descriptors": [ "AvgIpc", "BCUT2D_CHGHI", @@ -988,8 +983,8 @@ } ] }, - "transformer": null, - "imputer": null + "imputer": null, + "transformer": null } } ], @@ -1024,7 +1019,7 @@ "with_mean": true, "with_std": true, "copy": true, - "_sklearn_version": "1.2.1" + "_sklearn_version": "1.4.0" } }, "feature_fill_value": 0.0, @@ -1033,7 +1028,7 @@ "optimizer": null, "assessors": [ { - "py/object": "qsprpred.models.assessment_methods.CrossValAssessor", + "py/object": "qsprpred.models.assessment.methods.CrossValAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1042,12 +1037,13 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._regression.r2_score" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": "predict" }, "name": "r2_score" }, @@ -1056,7 +1052,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.CrossValAssessor", + "py/object": "qsprpred.models.assessment.methods.CrossValAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1065,23 +1061,22 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": { - "squared": false - }, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { - "py/function": "sklearn.metrics._regression.mean_squared_error" + "py/function": "sklearn.metrics._regression.root_mean_squared_error" }, - "_sign": -1 + "_sign": -1, + "_kwargs": {}, + "_response_method": "predict" }, - "name": "mean_squared_error" + "name": "root_mean_squared_error" }, "splitMultitaskScores": false, "split": null, "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.TestSetAssessor", + "py/object": "qsprpred.models.assessment.methods.TestSetAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1090,12 +1085,13 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._regression.r2_score" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": "predict" }, "name": "r2_score" }, @@ -1103,7 +1099,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.TestSetAssessor", + "py/object": "qsprpred.models.assessment.methods.TestSetAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1112,23 +1108,22 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": { - "squared": false - }, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { - "py/function": "sklearn.metrics._regression.mean_squared_error" + "py/function": "sklearn.metrics._regression.root_mean_squared_error" }, - "_sign": -1 + "_sign": -1, + "_kwargs": {}, + "_response_method": "predict" }, - "name": "mean_squared_error" + "name": "root_mean_squared_error" }, "splitMultitaskScores": false, "round": 5 } ], "randomSeed": 107420369, - "model": "/home/sichom/projects/QSPRpred/testing/test_consistency/data/models/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369_meta.json", + "model": "/zfsdata/data/helle/01_MainProjects/03_QSPRpred/Scripts/QSPRpred/testing/test_consistency/data/models/ConsistencyChecksREG_107420369/ConsistencyChecksREG_107420369_meta.json", "ds": null, "results": null } diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943.cv.tsv b/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943.cv.tsv new file mode 100644 index 00000000..6352829c --- /dev/null +++ b/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943.cv.tsv @@ -0,0 +1,241 @@ +QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction Fold +ConsistencyChecks_215 5.01 5.78548 0.0 +ConsistencyChecks_133 6.79 6.7094 0.0 +ConsistencyChecks_125 5.65 6.53108 0.0 +ConsistencyChecks_123 8.13 7.99228 0.0 +ConsistencyChecks_154 5.54 6.95635 0.0 +ConsistencyChecks_127 7.96 7.59893 0.0 +ConsistencyChecks_069 6.05 6.42855 0.0 +ConsistencyChecks_194 7.48 6.59744 0.0 +ConsistencyChecks_076 8.52 6.7377 0.0 +ConsistencyChecks_251 7.75 7.38364 0.0 +ConsistencyChecks_181 5.32 5.71743 0.0 +ConsistencyChecks_027 7.775 7.0608 0.0 +ConsistencyChecks_184 7.27 7.22863 0.0 +ConsistencyChecks_275 5.66 5.36289 0.0 +ConsistencyChecks_297 8.3 7.35912 0.0 +ConsistencyChecks_020 7.11 6.73677 0.0 +ConsistencyChecks_018 9.37 7.44286 0.0 +ConsistencyChecks_032 4.2 5.81038 0.0 +ConsistencyChecks_013 5.82 5.85863 0.0 +ConsistencyChecks_132 7.24 7.24244 0.0 +ConsistencyChecks_148 5.85 6.8291 0.0 +ConsistencyChecks_218 6.47 6.24014 0.0 +ConsistencyChecks_179 7.0 6.37777 0.0 +ConsistencyChecks_089 8.6 7.23275 0.0 +ConsistencyChecks_131 5.22 6.88836 0.0 +ConsistencyChecks_191 8.835 7.3633 0.0 +ConsistencyChecks_270 6.57 7.13847 0.0 +ConsistencyChecks_078 6.65 7.35725 0.0 +ConsistencyChecks_139 5.17 6.85312 0.0 +ConsistencyChecks_156 5.97 5.24495 0.0 +ConsistencyChecks_012 7.24 7.34743 0.0 +ConsistencyChecks_000 5.77 6.22291 0.0 +ConsistencyChecks_029 8.92 6.62871 0.0 +ConsistencyChecks_183 4.89 6.87662 0.0 +ConsistencyChecks_257 8.24 8.07424 0.0 +ConsistencyChecks_045 7.4 8.45954 0.0 +ConsistencyChecks_188 7.13 6.56221 0.0 +ConsistencyChecks_147 9.14538 6.98923 0.0 +ConsistencyChecks_173 7.8 7.13647 0.0 +ConsistencyChecks_037 6.6 6.49865 0.0 +ConsistencyChecks_198 7.65 8.46501 0.0 +ConsistencyChecks_192 5.04 7.05104 0.0 +ConsistencyChecks_219 4.62 6.09689 0.0 +ConsistencyChecks_284 7.08 7.65452 0.0 +ConsistencyChecks_011 7.29 7.59291 0.0 +ConsistencyChecks_099 8.28 7.15531 0.0 +ConsistencyChecks_160 5.89 5.74062 0.0 +ConsistencyChecks_197 7.66 7.36648 0.0 +ConsistencyChecks_241 6.59 7.31133 1.0 +ConsistencyChecks_265 6.86 7.04816 1.0 +ConsistencyChecks_213 7.28 6.24218 1.0 +ConsistencyChecks_267 6.75 7.47125 1.0 +ConsistencyChecks_200 8.19 7.71013 1.0 +ConsistencyChecks_021 5.89 6.18072 1.0 +ConsistencyChecks_100 8.72 8.50324 1.0 +ConsistencyChecks_252 5.7 6.49117 1.0 +ConsistencyChecks_046 9.7 7.27628 1.0 +ConsistencyChecks_263 7.0 6.72058 1.0 +ConsistencyChecks_044 4.66667 6.04886 1.0 +ConsistencyChecks_161 7.82 6.16236 1.0 +ConsistencyChecks_189 6.43 7.14999 1.0 +ConsistencyChecks_112 7.32 6.05077 1.0 +ConsistencyChecks_162 7.06 6.83395 1.0 +ConsistencyChecks_279 8.7 7.33446 1.0 +ConsistencyChecks_172 5.8 5.79757 1.0 +ConsistencyChecks_094 6.53 6.67046 1.0 +ConsistencyChecks_144 7.76 6.8523 1.0 +ConsistencyChecks_065 9.4 9.40162 1.0 +ConsistencyChecks_115 5.17 6.46855 1.0 +ConsistencyChecks_142 6.52 6.84942 1.0 +ConsistencyChecks_153 5.31 6.58396 1.0 +ConsistencyChecks_247 6.92 6.46896 1.0 +ConsistencyChecks_253 7.79 7.59025 1.0 +ConsistencyChecks_104 8.03 7.83642 1.0 +ConsistencyChecks_066 6.39667 5.34901 1.0 +ConsistencyChecks_290 7.27 8.09952 1.0 +ConsistencyChecks_105 5.84 6.4123 1.0 +ConsistencyChecks_261 5.82 6.72201 1.0 +ConsistencyChecks_190 9.15 7.89382 1.0 +ConsistencyChecks_201 7.34 7.97331 1.0 +ConsistencyChecks_033 5.4 6.66544 1.0 +ConsistencyChecks_182 5.65 6.3029 1.0 +ConsistencyChecks_223 5.12 6.36881 1.0 +ConsistencyChecks_070 6.69 7.18876 1.0 +ConsistencyChecks_299 7.6 6.6068 1.0 +ConsistencyChecks_062 6.56 7.01577 1.0 +ConsistencyChecks_262 6.4 6.37497 1.0 +ConsistencyChecks_256 7.31 6.33522 1.0 +ConsistencyChecks_063 6.24 6.49284 1.0 +ConsistencyChecks_134 7.44 7.18507 1.0 +ConsistencyChecks_090 5.43 6.69295 1.0 +ConsistencyChecks_180 6.08 6.28662 1.0 +ConsistencyChecks_145 8.19 7.43172 1.0 +ConsistencyChecks_075 6.06 6.70792 1.0 +ConsistencyChecks_058 6.77 7.35406 1.0 +ConsistencyChecks_073 7.75 6.52534 1.0 +ConsistencyChecks_093 6.7 7.1542 2.0 +ConsistencyChecks_258 5.42 6.1232 2.0 +ConsistencyChecks_098 6.47 8.18165 2.0 +ConsistencyChecks_227 7.92 7.70846 2.0 +ConsistencyChecks_106 9.0 6.80014 2.0 +ConsistencyChecks_025 6.46 6.85169 2.0 +ConsistencyChecks_137 8.15 7.96177 2.0 +ConsistencyChecks_084 6.21 6.39878 2.0 +ConsistencyChecks_210 6.4 6.50226 2.0 +ConsistencyChecks_175 8.72 9.26998 2.0 +ConsistencyChecks_298 6.11 6.92285 2.0 +ConsistencyChecks_239 7.48 7.22299 2.0 +ConsistencyChecks_040 7.52 7.61638 2.0 +ConsistencyChecks_250 6.93 6.49739 2.0 +ConsistencyChecks_165 6.68 6.88426 2.0 +ConsistencyChecks_114 6.5 6.90299 2.0 +ConsistencyChecks_120 9.345 6.47135 2.0 +ConsistencyChecks_288 6.58 6.15293 2.0 +ConsistencyChecks_072 6.23 7.43497 2.0 +ConsistencyChecks_246 6.52 5.66948 2.0 +ConsistencyChecks_006 7.24 6.17908 2.0 +ConsistencyChecks_024 6.66 7.19949 2.0 +ConsistencyChecks_022 6.16 5.94837 2.0 +ConsistencyChecks_291 5.97 6.89613 2.0 +ConsistencyChecks_259 5.48 6.99807 2.0 +ConsistencyChecks_059 7.58 7.65927 2.0 +ConsistencyChecks_122 8.4 8.15112 2.0 +ConsistencyChecks_118 8.54 7.66933 2.0 +ConsistencyChecks_028 7.38 8.37968 2.0 +ConsistencyChecks_071 5.95 8.03134 2.0 +ConsistencyChecks_280 4.96 6.1705 2.0 +ConsistencyChecks_009 7.08 7.14165 2.0 +ConsistencyChecks_126 7.37 7.28911 2.0 +ConsistencyChecks_208 6.62 8.11606 2.0 +ConsistencyChecks_285 5.27 5.77901 2.0 +ConsistencyChecks_129 5.34 5.69914 2.0 +ConsistencyChecks_167 6.66 7.67365 2.0 +ConsistencyChecks_102 7.64 7.77625 2.0 +ConsistencyChecks_119 8.35 8.85571 2.0 +ConsistencyChecks_281 8.03 8.49229 2.0 +ConsistencyChecks_229 6.62 6.89467 2.0 +ConsistencyChecks_111 7.47 7.21395 2.0 +ConsistencyChecks_296 9.555 8.78068 2.0 +ConsistencyChecks_242 7.52 8.07456 2.0 +ConsistencyChecks_272 4.99 6.78774 2.0 +ConsistencyChecks_085 6.38 7.05581 2.0 +ConsistencyChecks_159 6.04 5.76195 2.0 +ConsistencyChecks_083 6.0 7.63017 2.0 +ConsistencyChecks_224 6.87 6.80719 3.0 +ConsistencyChecks_030 7.51 7.48927 3.0 +ConsistencyChecks_277 7.09 6.04874 3.0 +ConsistencyChecks_081 8.79 6.76557 3.0 +ConsistencyChecks_041 6.1 6.0554 3.0 +ConsistencyChecks_248 7.4 8.88391 3.0 +ConsistencyChecks_195 7.48 7.15197 3.0 +ConsistencyChecks_107 5.96 6.43828 3.0 +ConsistencyChecks_017 6.57 6.10911 3.0 +ConsistencyChecks_266 7.54 6.90275 3.0 +ConsistencyChecks_278 6.46 6.38227 3.0 +ConsistencyChecks_067 6.0 6.87766 3.0 +ConsistencyChecks_289 9.4 6.61148 3.0 +ConsistencyChecks_233 6.69 7.00635 3.0 +ConsistencyChecks_064 6.3 6.44451 3.0 +ConsistencyChecks_232 6.22 6.70896 3.0 +ConsistencyChecks_008 9.0 8.46003 3.0 +ConsistencyChecks_061 6.42 6.68058 3.0 +ConsistencyChecks_082 5.0 6.26018 3.0 +ConsistencyChecks_202 6.33 6.35111 3.0 +ConsistencyChecks_080 5.61 6.03514 3.0 +ConsistencyChecks_077 6.7 5.43697 3.0 +ConsistencyChecks_274 7.92 7.73038 3.0 +ConsistencyChecks_088 5.11 6.4033 3.0 +ConsistencyChecks_186 5.01 7.38495 3.0 +ConsistencyChecks_187 4.37 6.88821 3.0 +ConsistencyChecks_140 6.0 6.90107 3.0 +ConsistencyChecks_244 7.32 7.14257 3.0 +ConsistencyChecks_255 7.52 7.27075 3.0 +ConsistencyChecks_276 5.24 6.46458 3.0 +ConsistencyChecks_196 7.44 8.03879 3.0 +ConsistencyChecks_216 6.76 7.02198 3.0 +ConsistencyChecks_249 5.94 6.37474 3.0 +ConsistencyChecks_016 5.92 5.7165 3.0 +ConsistencyChecks_047 5.76 6.50515 3.0 +ConsistencyChecks_205 8.71 7.51273 3.0 +ConsistencyChecks_185 8.89 8.32667 3.0 +ConsistencyChecks_087 5.57 6.39731 3.0 +ConsistencyChecks_170 7.0 7.98606 3.0 +ConsistencyChecks_221 5.93 7.08852 3.0 +ConsistencyChecks_056 5.37 6.14524 3.0 +ConsistencyChecks_287 7.04 7.51483 3.0 +ConsistencyChecks_236 7.77 6.84873 3.0 +ConsistencyChecks_207 9.92 6.67338 3.0 +ConsistencyChecks_023 6.1 6.261 3.0 +ConsistencyChecks_097 7.82 6.08754 3.0 +ConsistencyChecks_171 6.93 6.91536 3.0 +ConsistencyChecks_019 7.0 7.04222 3.0 +ConsistencyChecks_292 9.05 7.22642 4.0 +ConsistencyChecks_206 6.26 6.10644 4.0 +ConsistencyChecks_225 6.97 7.37838 4.0 +ConsistencyChecks_294 8.54 8.0764 4.0 +ConsistencyChecks_042 6.5 7.70441 4.0 +ConsistencyChecks_108 7.17 6.58386 4.0 +ConsistencyChecks_254 6.2475 6.84282 4.0 +ConsistencyChecks_269 7.1 7.62863 4.0 +ConsistencyChecks_283 8.17 8.14746 4.0 +ConsistencyChecks_217 8.52 7.27744 4.0 +ConsistencyChecks_096 7.102 6.72174 4.0 +ConsistencyChecks_007 6.34 5.5713 4.0 +ConsistencyChecks_116 7.3 7.60892 4.0 +ConsistencyChecks_043 7.3 6.73321 4.0 +ConsistencyChecks_002 7.88 7.89324 4.0 +ConsistencyChecks_060 6.46 5.6619 4.0 +ConsistencyChecks_117 6.42 8.18933 4.0 +ConsistencyChecks_150 7.64 6.5605 4.0 +ConsistencyChecks_228 7.03 7.66316 4.0 +ConsistencyChecks_209 7.48 7.52805 4.0 +ConsistencyChecks_295 8.48 5.94665 4.0 +ConsistencyChecks_235 4.95 6.3154 4.0 +ConsistencyChecks_193 6.68 6.50794 4.0 +ConsistencyChecks_212 9.22 8.75469 4.0 +ConsistencyChecks_271 5.31 7.56583 4.0 +ConsistencyChecks_143 6.41 6.50843 4.0 +ConsistencyChecks_166 9.71 8.08317 4.0 +ConsistencyChecks_231 6.72 6.45791 4.0 +ConsistencyChecks_034 7.01 6.60566 4.0 +ConsistencyChecks_049 9.1 8.95884 4.0 +ConsistencyChecks_051 5.01 6.76321 4.0 +ConsistencyChecks_036 7.88 6.62916 4.0 +ConsistencyChecks_204 5.375 5.80702 4.0 +ConsistencyChecks_031 7.04 6.09388 4.0 +ConsistencyChecks_293 8.84 6.54966 4.0 +ConsistencyChecks_038 6.98 6.65961 4.0 +ConsistencyChecks_169 7.32 6.74175 4.0 +ConsistencyChecks_091 5.16 5.96769 4.0 +ConsistencyChecks_092 7.35 5.76137 4.0 +ConsistencyChecks_245 6.31 6.84978 4.0 +ConsistencyChecks_055 7.07 6.57081 4.0 +ConsistencyChecks_074 7.07 6.99695 4.0 +ConsistencyChecks_273 7.88 6.64081 4.0 +ConsistencyChecks_177 7.61 6.54125 4.0 +ConsistencyChecks_158 5.09 6.50334 4.0 +ConsistencyChecks_035 6.745 5.42929 4.0 +ConsistencyChecks_141 7.07 8.29985 4.0 +ConsistencyChecks_048 8.32 7.46935 4.0 diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943.ind.tsv b/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943.ind.tsv new file mode 100644 index 00000000..22826ade --- /dev/null +++ b/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943.ind.tsv @@ -0,0 +1,61 @@ +QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction +ConsistencyChecks_168 4.53 6.35171 +ConsistencyChecks_151 7.79 6.27026 +ConsistencyChecks_226 6.77 6.01016 +ConsistencyChecks_101 6.99091 7.42035 +ConsistencyChecks_237 8.31 7.87453 +ConsistencyChecks_214 5.22 6.25584 +ConsistencyChecks_176 7.21 6.28576 +ConsistencyChecks_124 6.93 6.27583 +ConsistencyChecks_260 5.51 6.17996 +ConsistencyChecks_203 6.35 7.81396 +ConsistencyChecks_130 8.7 8.19333 +ConsistencyChecks_238 6.37 6.77684 +ConsistencyChecks_268 5.36 5.73755 +ConsistencyChecks_149 6.25 6.54575 +ConsistencyChecks_199 6.88 6.89435 +ConsistencyChecks_113 7.04 6.85379 +ConsistencyChecks_110 6.64 5.97258 +ConsistencyChecks_152 6.67 7.91012 +ConsistencyChecks_164 8.33 7.69628 +ConsistencyChecks_050 6.13 6.45397 +ConsistencyChecks_103 4.47 6.9622 +ConsistencyChecks_005 6.96 7.04966 +ConsistencyChecks_068 7.96 7.76831 +ConsistencyChecks_243 5.63 5.4547 +ConsistencyChecks_095 7.46 6.43816 +ConsistencyChecks_234 5.86 6.16586 +ConsistencyChecks_155 6.43 6.66316 +ConsistencyChecks_220 5.18 6.11007 +ConsistencyChecks_138 6.94 7.04094 +ConsistencyChecks_086 6.18 7.17366 +ConsistencyChecks_039 7.12 6.91849 +ConsistencyChecks_286 8.7 7.6176 +ConsistencyChecks_135 5.4 5.97337 +ConsistencyChecks_211 8.22 7.40633 +ConsistencyChecks_052 6.69 7.38776 +ConsistencyChecks_230 9.0 7.90906 +ConsistencyChecks_014 5.99 6.22024 +ConsistencyChecks_003 6.94 6.40938 +ConsistencyChecks_054 9.23 7.56419 +ConsistencyChecks_121 6.11 5.74126 +ConsistencyChecks_178 7.6 8.95944 +ConsistencyChecks_128 8.34 7.28065 +ConsistencyChecks_001 6.64 6.71468 +ConsistencyChecks_222 7.03 6.50668 +ConsistencyChecks_015 7.04 7.93127 +ConsistencyChecks_079 4.85 5.65451 +ConsistencyChecks_136 5.225 5.4158 +ConsistencyChecks_157 6.54 6.54267 +ConsistencyChecks_146 5.18 6.37125 +ConsistencyChecks_053 5.46 7.97828 +ConsistencyChecks_174 6.96 6.05824 +ConsistencyChecks_264 8.18 6.70842 +ConsistencyChecks_240 4.75 6.22233 +ConsistencyChecks_163 6.96 7.26901 +ConsistencyChecks_010 6.89 6.03204 +ConsistencyChecks_109 6.45 7.56544 +ConsistencyChecks_026 4.38 6.02049 +ConsistencyChecks_282 7.85 7.62482 +ConsistencyChecks_004 7.01 7.04877 +ConsistencyChecks_057 9.085 8.66624 diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943.json b/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943.json new file mode 100644 index 00000000..b4694c7e --- /dev/null +++ b/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943.json @@ -0,0 +1 @@ +{"unfitted": true, "meta": ["sklearn.cross_decomposition._pls", "PLSRegression"], "params": {"copy": true, "max_iter": 500, "n_components": 2, "scale": true, "tol": 1e-06}, "versions": ["sklearn", "1.4.0"]} \ No newline at end of file diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943_meta.json b/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943_meta.json new file mode 100644 index 00000000..bfbeebae --- /dev/null +++ b/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943_meta.json @@ -0,0 +1,1582 @@ +{ + "py/object": "qsprpred.models.scikit_learn.SklearnModel", + "py/state": { + "name": "ConsistencyChecksREG_1181241943", + "baseDir": ".", + "targetProperties": [ + { + "py/object": "qsprpred.tasks.TargetProperty", + "py/state": { + "name": "pchembl_value_Mean", + "task": { + "py/reduce": [ + { + "py/type": "qsprpred.tasks.TargetTasks" + }, + { + "py/tuple": [ + "REGRESSION" + ] + } + ] + }, + "imputer": null, + "transformer": null + } + } + ], + "nTargets": 1, + "featureCalculators": [ + { + "py/object": "qsprpred.data.descriptors.fingerprints.MorganFP", + "py/state": { + "idProp": "QSPRID", + "_usedBits": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 65, + 66, + 67, + 68, + 69, + 71, + 73, + 74, + 75, + 77, + 79, + 80, + 82, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 98, + 99, + 101, + 102, + 103, + 104, + 105, + 106, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 172, + 173, + 174, + 175, + 177, + 178, + 179, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 221, + 226, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 237, + 239, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 254, + 255 + ], + "radius": 2, + "nBits": 256, + "kwargs": {}, + "descriptors": [ + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_71", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_77", + "MorganFP_79", + "MorganFP_80", + "MorganFP_82", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_98", + "MorganFP_99", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_221", + "MorganFP_226", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_237", + "MorganFP_239", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_254", + "MorganFP_255" + ] + } + }, + { + "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", + "py/state": { + "idProp": "QSPRID", + "_descriptors": [ + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA2", + "EState_VSA7", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "NumAliphaticHeterocycles", + "NumSaturatedHeterocycles", + "PEOE_VSA11", + "PEOE_VSA4", + "PEOE_VSA5", + "SlogP_VSA12", + "fr_ArN", + "fr_Ar_NH", + "fr_NH2", + "fr_Ndealkylation1", + "fr_Nhpyrrole", + "fr_aryl_methyl", + "fr_ether", + "fr_furan", + "fr_halogen", + "fr_imidazole", + "fr_piperzine", + "fr_thiazole" + ], + "include3D": false, + "descriptors": [ + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA2", + "EState_VSA7", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "NumAliphaticHeterocycles", + "NumSaturatedHeterocycles", + "PEOE_VSA11", + "PEOE_VSA4", + "PEOE_VSA5", + "SlogP_VSA12", + "fr_ArN", + "fr_Ar_NH", + "fr_NH2", + "fr_Ndealkylation1", + "fr_Nhpyrrole", + "fr_aryl_methyl", + "fr_ether", + "fr_furan", + "fr_halogen", + "fr_imidazole", + "fr_piperzine", + "fr_thiazole" + ] + } + } + ], + "featureStandardizer": { + "py/object": "qsprpred.data.processing.feature_standardizers.SKLearnStandardizer", + "py/state": { + "scaler": { + "meta": "standard-scaler", + "n_features_in_": 248, + "params": { + "copy": true, + "with_mean": true, + "with_std": true + }, + "var_": [ + 0.13039930555555557, + 0.11859375000000003, + 0.0658159722222222, + 0.18956597222222224, + 0.069375, + 0.08326388888888889, + 0.051232638888888876, + 0.234375, + 0.08326388888888889, + 0.109375, + 0.1332638888888889, + 0.05859375, + 0.16972222222222222, + 0.10305555555555553, + 0.09331597222222224, + 0.11555555555555556, + 0.05859375, + 0.06222222222222223, + 0.1697222222222222, + 0.09331597222222224, + 0.1697222222222222, + 0.1788888888888889, + 0.15493055555555557, + 0.06937499999999999, + 0.19748263888888892, + 0.12456597222222225, + 0.09000000000000001, + 0.09984375000000002, + 0.05859375, + 0.09331597222222224, + 0.06222222222222225, + 0.1853993055555555, + 0.16734374999999999, + 0.05493055555555555, + 0.20999999999999996, + 0.11555555555555556, + 0.07984375, + 0.22623263888888884, + 0.13609374999999999, + 0.15234375, + 0.07289930555555557, + 0.20659722222222227, + 0.12456597222222225, + 0.14706597222222217, + 0.25, + 0.24373263888888885, + 0.24993055555555546, + 0.09331597222222222, + 0.14706597222222217, + 0.21484375, + 0.05123263888888887, + 0.08664930555555556, + 0.051232638888888876, + 0.22623263888888884, + 0.14164930555555552, + 0.2287326388888888, + 0.1624826388888889, + 0.22222222222222227, + 0.1788888888888889, + 0.21326388888888886, + 0.06937499999999999, + 0.1832638888888889, + 0.234375, + 0.12749999999999997, + 0.1697222222222222, + 0.1832638888888889, + 0.16734374999999996, + 0.1574826388888889, + 0.14164930555555552, + 0.12456597222222225, + 0.23914930555555552, + 0.1624826388888889, + 0.16000000000000003, + 0.05493055555555556, + 0.13609374999999999, + 0.24234374999999997, + 0.06222222222222224, + 0.09, + 0.09331597222222222, + 0.15493055555555557, + 0.24993055555555543, + 0.2030555555555555, + 0.08664930555555557, + 0.05859375, + 0.07638888888888887, + 0.19937500000000002, + 0.23539930555555563, + 0.06222222222222224, + 0.21164930555555556, + 0.09000000000000001, + 0.14164930555555552, + 0.13039930555555557, + 0.19748263888888892, + 0.24826388888888892, + 0.06222222222222222, + 0.08326388888888887, + 0.05859375, + 0.09659722222222218, + 0.17206597222222222, + 0.14972222222222217, + 0.23331597222222225, + 0.09659722222222221, + 0.0965972222222222, + 0.24956597222222227, + 0.13609374999999999, + 0.12749999999999997, + 0.24373263888888888, + 0.2299305555555555, + 0.05859375, + 0.19937500000000002, + 0.16972222222222216, + 0.24937499999999999, + 0.10623263888888886, + 0.07984375, + 0.23826388888888894, + 0.19748263888888892, + 0.10623263888888887, + 0.1697222222222222, + 0.07289930555555557, + 0.12456597222222225, + 0.062222222222222213, + 0.24993055555555543, + 0.13039930555555557, + 0.21937499999999993, + 0.13609374999999999, + 0.24000000000000005, + 0.07638888888888888, + 0.14164930555555552, + 0.23826388888888891, + 0.109375, + 0.14706597222222217, + 0.24826388888888892, + 0.07984375000000002, + 0.05859375, + 0.0658159722222222, + 0.1124826388888889, + 0.05493055555555556, + 0.13609374999999999, + 0.05859375, + 0.12159722222222223, + 0.21484375, + 0.15234375, + 0.24706597222222218, + 0.21484375, + 0.234375, + 0.22623263888888884, + 0.1875, + 0.22359375, + 0.14972222222222217, + 0.06937499999999999, + 0.17206597222222222, + 0.19555555555555557, + 0.24984375000000003, + 0.0658159722222222, + 0.24750000000000008, + 0.11248263888888889, + 0.08664930555555557, + 0.06581597222222221, + 0.1697222222222222, + 0.19159722222222222, + 0.18109375, + 0.07289930555555557, + 0.23222222222222222, + 0.09, + 0.09000000000000001, + 0.09984375000000001, + 0.14972222222222217, + 0.2333159722222222, + 0.10623263888888887, + 0.13326388888888893, + 0.1124826388888889, + 0.07289930555555557, + 0.13609374999999999, + 0.05123263888888886, + 0.21164930555555556, + 0.1470659722222222, + 0.1875, + 0.08326388888888889, + 0.13609374999999999, + 0.109375, + 0.16248263888888895, + 0.2275, + 0.19748263888888892, + 0.0658159722222222, + 0.16000000000000006, + 0.15748263888888892, + 0.09984375000000001, + 0.24234374999999997, + 0.1332638888888889, + 0.18539930555555553, + 0.14164930555555552, + 0.17206597222222222, + 0.05859375, + 0.069375, + 0.109375, + 0.07289930555555557, + 0.23222222222222222, + 0.07289930555555557, + 0.1697222222222222, + 0.09984375000000001, + 0.13888888888888887, + 0.12456597222222225, + 0.15234375, + 0.09984375000000002, + 0.17437500000000003, + 0.09331597222222224, + 0.0658159722222222, + 0.08326388888888889, + 0.08664930555555556, + 0.07289930555555557, + 0.069375, + 0.069375, + 0.08326388888888887, + 0.08326388888888887, + 0.11859375000000003, + 0.10305555555555553, + 0.11555555555555556, + 0.17664930555555555, + 0.07289930555555557, + 0.1788888888888889, + 0.20659722222222224, + 0.08326388888888889, + 0.0658159722222222, + 0.24998263888888891, + 0.01233600206528305, + 125.6234675420503, + 90.58447554526954, + 335.36272316927335, + 7.062366580649532, + 7.062366580649532, + 0.3037326388888888, + 0.27159722222222216, + 59.39011020439468, + 40.57657951349465, + 27.017342501224416, + 62.93037150617059, + 0.2582638888888889, + 0.23826388888888891, + 0.3141666666666667, + 0.05493055555555556, + 0.23826388888888891, + 0.49914930555555564, + 0.48248263888888887, + 0.2583159722222222, + 0.5847222222222221, + 0.24159722222222216, + 0.0965972222222222, + 0.10623263888888887 + ], + "mean_": [ + 0.15416666666666667, + 0.1375, + 0.07083333333333333, + 0.25416666666666665, + 0.075, + 0.09166666666666666, + 0.05416666666666667, + 0.375, + 0.09166666666666666, + 0.125, + 0.15833333333333333, + 0.0625, + 0.21666666666666667, + 0.11666666666666667, + 0.10416666666666667, + 0.13333333333333333, + 0.0625, + 0.06666666666666667, + 0.21666666666666667, + 0.10416666666666667, + 0.21666666666666667, + 0.23333333333333334, + 0.19166666666666668, + 0.075, + 0.2708333333333333, + 0.14583333333333334, + 0.1, + 0.1125, + 0.0625, + 0.10416666666666667, + 0.06666666666666667, + 0.7541666666666667, + 0.2125, + 0.058333333333333334, + 0.3, + 0.13333333333333333, + 0.0875, + 0.6541666666666667, + 0.1625, + 0.1875, + 0.07916666666666666, + 0.2916666666666667, + 0.14583333333333334, + 0.17916666666666667, + 0.5, + 0.42083333333333334, + 0.49166666666666664, + 0.10416666666666667, + 0.17916666666666667, + 0.3125, + 0.05416666666666667, + 0.09583333333333334, + 0.05416666666666667, + 0.3458333333333333, + 0.17083333333333334, + 0.3541666666666667, + 0.20416666666666666, + 0.3333333333333333, + 0.23333333333333334, + 0.30833333333333335, + 0.925, + 0.24166666666666667, + 0.375, + 0.15, + 0.21666666666666667, + 0.24166666666666667, + 0.2125, + 0.19583333333333333, + 0.17083333333333334, + 0.14583333333333334, + 0.3958333333333333, + 0.20416666666666666, + 0.8, + 0.058333333333333334, + 0.1625, + 0.4125, + 0.06666666666666667, + 0.1, + 0.10416666666666667, + 0.19166666666666668, + 0.49166666666666664, + 0.7166666666666667, + 0.09583333333333334, + 0.0625, + 0.08333333333333333, + 0.275, + 0.37916666666666665, + 0.06666666666666667, + 0.30416666666666664, + 0.1, + 0.17083333333333334, + 0.15416666666666667, + 0.2708333333333333, + 0.4583333333333333, + 0.06666666666666667, + 0.09166666666666666, + 0.0625, + 0.10833333333333334, + 0.22083333333333333, + 0.18333333333333332, + 0.37083333333333335, + 0.10833333333333334, + 0.10833333333333334, + 0.4791666666666667, + 0.1625, + 0.15, + 0.42083333333333334, + 0.35833333333333334, + 0.9375, + 0.275, + 0.7833333333333333, + 0.525, + 0.12083333333333333, + 0.0875, + 0.6083333333333333, + 0.2708333333333333, + 0.12083333333333333, + 0.21666666666666667, + 0.07916666666666666, + 0.14583333333333334, + 0.06666666666666667, + 0.49166666666666664, + 0.15416666666666667, + 0.675, + 0.1625, + 0.6, + 0.08333333333333333, + 0.17083333333333334, + 0.6083333333333333, + 0.125, + 0.17916666666666667, + 0.5416666666666666, + 0.0875, + 0.0625, + 0.07083333333333333, + 0.12916666666666668, + 0.058333333333333334, + 0.1625, + 0.0625, + 0.14166666666666666, + 0.3125, + 0.1875, + 0.44583333333333336, + 0.6875, + 0.375, + 0.3458333333333333, + 0.25, + 0.6625, + 0.18333333333333332, + 0.075, + 0.7791666666666667, + 0.26666666666666666, + 0.4875, + 0.07083333333333333, + 0.45, + 0.12916666666666668, + 0.09583333333333334, + 0.07083333333333333, + 0.21666666666666667, + 0.25833333333333336, + 0.2375, + 0.07916666666666666, + 0.36666666666666664, + 0.1, + 0.1, + 0.1125, + 0.18333333333333332, + 0.37083333333333335, + 0.12083333333333333, + 0.15833333333333333, + 0.12916666666666668, + 0.07916666666666666, + 0.1625, + 0.05416666666666667, + 0.30416666666666664, + 0.17916666666666667, + 0.25, + 0.09166666666666666, + 0.1625, + 0.125, + 0.20416666666666666, + 0.35, + 0.2708333333333333, + 0.07083333333333333, + 0.2, + 0.19583333333333333, + 0.1125, + 0.4125, + 0.15833333333333333, + 0.24583333333333332, + 0.17083333333333334, + 0.22083333333333333, + 0.0625, + 0.075, + 0.125, + 0.07916666666666666, + 0.36666666666666664, + 0.07916666666666666, + 0.21666666666666667, + 0.1125, + 0.16666666666666666, + 0.14583333333333334, + 0.1875, + 0.1125, + 0.225, + 0.10416666666666667, + 0.07083333333333333, + 0.09166666666666666, + 0.09583333333333334, + 0.07916666666666666, + 0.075, + 0.075, + 0.09166666666666666, + 0.09166666666666666, + 0.1375, + 0.11666666666666667, + 0.13333333333333333, + 0.22916666666666666, + 0.07916666666666666, + 0.23333333333333334, + 0.2916666666666667, + 0.09166666666666666, + 0.07083333333333333, + 0.5041666666666667, + -2.1508512608333334, + 7.815465828333333, + 13.461821344999999, + 22.47924867875, + 11.184492137916667, + 11.184492137916667, + 0.3541666666666667, + 0.30833333333333335, + 11.60772115, + 6.340729067499999, + 3.9023232266666663, + 5.019184591666668, + 0.4083333333333333, + 0.19166666666666668, + 0.45, + 0.058333333333333334, + 0.19166666666666668, + 0.5291666666666667, + 0.5291666666666667, + 0.37083333333333335, + 0.4166666666666667, + 0.3416666666666667, + 0.10833333333333334, + 0.12083333333333333 + ], + "scale_": [ + 0.36110844016106236, + 0.3443744328488978, + 0.2565462379810357, + 0.43539174569831046, + 0.26339134382131846, + 0.28855482821967976, + 0.22634628092568448, + 0.4841229182759271, + 0.28855482821967976, + 0.33071891388307384, + 0.36505326856349185, + 0.24206145913796356, + 0.41197356981027583, + 0.3210226714043037, + 0.3054766312211496, + 0.33993463423951903, + 0.24206145913796356, + 0.24944382578492943, + 0.41197356981027583, + 0.3054766312211496, + 0.41197356981027583, + 0.4229525846816507, + 0.39361218928731817, + 0.26339134382131846, + 0.4443901876604488, + 0.35293904887702954, + 0.30000000000000004, + 0.31598061649411346, + 0.24206145913796356, + 0.3054766312211496, + 0.2494438257849295, + 0.4305801964275128, + 0.4090767042988393, + 0.23437268517375387, + 0.45825756949558394, + 0.33993463423951903, + 0.2825663638864329, + 0.47563918981607145, + 0.36890886408434265, + 0.3903123748998999, + 0.26999871398870695, + 0.4545296714431548, + 0.35293904887702954, + 0.38349181506548763, + 0.5, + 0.49369285885952296, + 0.4999305507323547, + 0.3054766312211496, + 0.38349181506548763, + 0.46351240544347894, + 0.22634628092568446, + 0.2943625410196677, + 0.22634628092568448, + 0.47563918981607145, + 0.3763632627602693, + 0.4782600118020414, + 0.4030913530316532, + 0.47140452079103173, + 0.4229525846816507, + 0.4618050334165803, + 0.26339134382131846, + 0.42809331796804406, + 0.4841229182759271, + 0.3570714214271425, + 0.41197356981027583, + 0.42809331796804406, + 0.40907670429883924, + 0.3968408231128558, + 0.3763632627602693, + 0.35293904887702954, + 0.4890289414293959, + 0.4030913530316532, + 0.4, + 0.2343726851737539, + 0.36890886408434265, + 0.49228421668788036, + 0.24944382578492946, + 0.3, + 0.3054766312211496, + 0.39361218928731817, + 0.49993055073235465, + 0.45061686115319244, + 0.29436254101966774, + 0.24206145913796356, + 0.2763853991962833, + 0.44651427748729383, + 0.485179663171856, + 0.24944382578492946, + 0.4600535898735663, + 0.30000000000000004, + 0.3763632627602693, + 0.36110844016106236, + 0.4443901876604488, + 0.4982608642958916, + 0.24944382578492943, + 0.2885548282196797, + 0.24206145913796356, + 0.3108009366495252, + 0.41480835601783894, + 0.3869395588747966, + 0.4830279207480891, + 0.31080093664952524, + 0.31080093664952524, + 0.4995657836784083, + 0.36890886408434265, + 0.3570714214271425, + 0.49369285885952296, + 0.47951074602719335, + 0.24206145913796356, + 0.44651427748729383, + 0.4119735698102758, + 0.4993746088859545, + 0.3259334884434075, + 0.2825663638864329, + 0.4881228215202491, + 0.4443901876604488, + 0.3259334884434075, + 0.41197356981027583, + 0.26999871398870695, + 0.35293904887702954, + 0.2494438257849294, + 0.49993055073235465, + 0.36110844016106236, + 0.4683748498798798, + 0.36890886408434265, + 0.48989794855663565, + 0.2763853991962833, + 0.3763632627602693, + 0.48812282152024905, + 0.33071891388307384, + 0.38349181506548763, + 0.4982608642958916, + 0.2825663638864329, + 0.24206145913796356, + 0.2565462379810357, + 0.33538431521001233, + 0.2343726851737539, + 0.36890886408434265, + 0.24206145913796356, + 0.3487079325484613, + 0.46351240544347894, + 0.3903123748998999, + 0.49705731281434956, + 0.46351240544347894, + 0.4841229182759271, + 0.47563918981607145, + 0.4330127018922193, + 0.47285700798444347, + 0.3869395588747966, + 0.26339134382131846, + 0.41480835601783894, + 0.4422166387140533, + 0.49984372557830514, + 0.2565462379810357, + 0.49749371855331004, + 0.33538431521001233, + 0.29436254101966774, + 0.2565462379810357, + 0.41197356981027583, + 0.4377181995556299, + 0.42555111326373, + 0.26999871398870695, + 0.4818944098266987, + 0.3, + 0.30000000000000004, + 0.31598061649411346, + 0.3869395588747966, + 0.48302792074808903, + 0.3259334884434075, + 0.3650532685634919, + 0.33538431521001233, + 0.26999871398870695, + 0.36890886408434265, + 0.22634628092568446, + 0.4600535898735663, + 0.3834918150654877, + 0.4330127018922193, + 0.28855482821967976, + 0.36890886408434265, + 0.33071891388307384, + 0.4030913530316533, + 0.47696960070847283, + 0.4443901876604488, + 0.2565462379810357, + 0.4000000000000001, + 0.3968408231128558, + 0.31598061649411346, + 0.49228421668788036, + 0.36505326856349185, + 0.43058019642751283, + 0.3763632627602693, + 0.41480835601783894, + 0.24206145913796356, + 0.26339134382131846, + 0.33071891388307384, + 0.26999871398870695, + 0.4818944098266987, + 0.26999871398870695, + 0.41197356981027583, + 0.31598061649411346, + 0.3726779962499649, + 0.35293904887702954, + 0.3903123748998999, + 0.31598061649411346, + 0.4175823272122517, + 0.3054766312211496, + 0.2565462379810357, + 0.28855482821967976, + 0.2943625410196677, + 0.26999871398870695, + 0.26339134382131846, + 0.26339134382131846, + 0.2885548282196797, + 0.2885548282196797, + 0.3443744328488978, + 0.3210226714043037, + 0.33993463423951903, + 0.42029668753816696, + 0.26999871398870695, + 0.4229525846816507, + 0.45452967144315476, + 0.28855482821967976, + 0.2565462379810357, + 0.4999826385874703, + 0.11106755631273721, + 11.208187522612668, + 9.517587695696296, + 18.312911378840706, + 2.657511350991663, + 2.657511350991663, + 0.5511194415813044, + 0.5211499037918189, + 7.7064979208713655, + 6.369974844023691, + 5.197820937780024, + 7.9328665377762775, + 0.5081967029496443, + 0.48812282152024905, + 0.5605057240266746, + 0.2343726851737539, + 0.48812282152024905, + 0.7065049932983882, + 0.6946097025588462, + 0.5082479436478048, + 0.7646713164636307, + 0.4915254034352875, + 0.31080093664952524, + 0.3259334884434075 + ], + "n_samples_seen_": 240, + "feature_names_in_": { + "py/tuple": [ + [ + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_71", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_77", + "MorganFP_79", + "MorganFP_80", + "MorganFP_82", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_98", + "MorganFP_99", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_221", + "MorganFP_226", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_237", + "MorganFP_239", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_254", + "MorganFP_255", + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA2", + "EState_VSA7", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "NumAliphaticHeterocycles", + "NumSaturatedHeterocycles", + "PEOE_VSA11", + "PEOE_VSA4", + "PEOE_VSA5", + "SlogP_VSA12", + "fr_ArN", + "fr_Ar_NH", + "fr_NH2", + "fr_Ndealkylation1", + "fr_Nhpyrrole", + "fr_aryl_methyl", + "fr_ether", + "fr_furan", + "fr_halogen", + "fr_imidazole", + "fr_piperzine", + "fr_thiazole" + ] + ] + }, + "versions": { + "py/tuple": [ + "sklearn", + "1.4.0" + ] + } + } + } + }, + "earlyStopping": null, + "parameters": null, + "alg": "sklearn.cross_decomposition._pls.PLSRegression", + "randomState": 1181241943, + "estimator": "./ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943.json" + } +} \ No newline at end of file diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213_replica.json b/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943_replica.json similarity index 70% rename from testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213_replica.json rename to testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943_replica.json index dc4788fe..043ebfcb 100644 --- a/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213_replica.json +++ b/testing/test_consistency/expected/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943_replica.json @@ -10,18 +10,10 @@ }, "descriptors": [ { - "py/object": "qsprpred.data.descriptors.sets.FingerprintSet", + "py/object": "qsprpred.data.descriptors.fingerprints.MorganFP", "py/state": { - "_isFP": true, - "fingerprintType": "MorganFP", - "_args": { - "py/tuple": [] - }, - "_kwargs": { - "radius": 2, - "nBits": 256 - }, - "_keepindices": [ + "idProp": "QSPRID", + "_usedBits": [ 0, 1, 2, @@ -279,270 +271,273 @@ 254, 255 ], + "radius": 2, + "nBits": 256, + "kwargs": {}, "descriptors": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "35", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "96", - "97", - "98", - "99", - "100", - "101", - "102", - "103", - "104", - "105", - "106", - "107", - "108", - "109", - "110", - "111", - "112", - "113", - "114", - "115", - "116", - "117", - "118", - "119", - "120", - "121", - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "143", - "144", - "145", - "146", - "147", - "148", - "149", - "150", - "151", - "152", - "153", - "154", - "155", - "156", - "157", - "158", - "159", - "160", - "161", - "162", - "163", - "164", - "165", - "166", - "167", - "168", - "169", - "170", - "171", - "172", - "173", - "174", - "175", - "176", - "177", - "178", - "179", - "180", - "181", - "182", - "183", - "184", - "185", - "186", - "187", - "188", - "189", - "190", - "191", - "192", - "193", - "194", - "195", - "196", - "197", - "198", - "199", - "200", - "201", - "202", - "203", - "204", - "205", - "206", - "207", - "208", - "209", - "210", - "211", - "212", - "213", - "214", - "215", - "216", - "217", - "218", - "219", - "220", - "221", - "222", - "223", - "224", - "225", - "226", - "227", - "228", - "229", - "230", - "231", - "232", - "233", - "234", - "235", - "236", - "237", - "238", - "239", - "240", - "241", - "242", - "243", - "244", - "245", - "246", - "247", - "248", - "249", - "250", - "251", - "252", - "253", - "254", - "255" + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_10", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_19", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_49", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_64", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_70", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_76", + "MorganFP_77", + "MorganFP_78", + "MorganFP_79", + "MorganFP_80", + "MorganFP_81", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_97", + "MorganFP_98", + "MorganFP_99", + "MorganFP_100", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_107", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_116", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_130", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_143", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_159", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_171", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_176", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_180", + "MorganFP_181", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_190", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_220", + "MorganFP_221", + "MorganFP_222", + "MorganFP_223", + "MorganFP_224", + "MorganFP_225", + "MorganFP_226", + "MorganFP_227", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_236", + "MorganFP_237", + "MorganFP_238", + "MorganFP_239", + "MorganFP_240", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_253", + "MorganFP_254", + "MorganFP_255" ] } }, { "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", "py/state": { - "_isFP": false, + "idProp": "QSPRID", "_descriptors": [ "AvgIpc", "BCUT2D_CHGHI", @@ -988,8 +983,8 @@ } ] }, - "transformer": null, - "imputer": null + "imputer": null, + "transformer": null } } ], @@ -1024,7 +1019,7 @@ "with_mean": true, "with_std": true, "copy": true, - "_sklearn_version": "1.2.1" + "_sklearn_version": "1.4.0" } }, "feature_fill_value": 0.0, @@ -1033,7 +1028,7 @@ "optimizer": null, "assessors": [ { - "py/object": "qsprpred.models.assessment_methods.CrossValAssessor", + "py/object": "qsprpred.models.assessment.methods.CrossValAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1042,12 +1037,13 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._regression.r2_score" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": "predict" }, "name": "r2_score" }, @@ -1056,7 +1052,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.CrossValAssessor", + "py/object": "qsprpred.models.assessment.methods.CrossValAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1065,23 +1061,22 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": { - "squared": false - }, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { - "py/function": "sklearn.metrics._regression.mean_squared_error" + "py/function": "sklearn.metrics._regression.root_mean_squared_error" }, - "_sign": -1 + "_sign": -1, + "_kwargs": {}, + "_response_method": "predict" }, - "name": "mean_squared_error" + "name": "root_mean_squared_error" }, "splitMultitaskScores": false, "split": null, "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.TestSetAssessor", + "py/object": "qsprpred.models.assessment.methods.TestSetAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1090,12 +1085,13 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._regression.r2_score" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": "predict" }, "name": "r2_score" }, @@ -1103,7 +1099,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.TestSetAssessor", + "py/object": "qsprpred.models.assessment.methods.TestSetAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1112,23 +1108,22 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": { - "squared": false - }, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { - "py/function": "sklearn.metrics._regression.mean_squared_error" + "py/function": "sklearn.metrics._regression.root_mean_squared_error" }, - "_sign": -1 + "_sign": -1, + "_kwargs": {}, + "_response_method": "predict" }, - "name": "mean_squared_error" + "name": "root_mean_squared_error" }, "splitMultitaskScores": false, "round": 5 } ], - "randomSeed": 2746317213, - "model": "/home/sichom/projects/QSPRpred/testing/test_consistency/data/models/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213_meta.json", + "randomSeed": 1181241943, + "model": "/zfsdata/data/helle/01_MainProjects/03_QSPRpred/Scripts/QSPRpred/testing/test_consistency/data/models/ConsistencyChecksREG_1181241943/ConsistencyChecksREG_1181241943_meta.json", "ds": null, "results": null } diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213.cv.tsv b/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213.cv.tsv deleted file mode 100644 index 6cced4ec..00000000 --- a/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213.cv.tsv +++ /dev/null @@ -1,241 +0,0 @@ -QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction Fold -ConsistencyChecks_132 7.24 8.3415 0.0 -ConsistencyChecks_051 5.01 6.022 0.0 -ConsistencyChecks_215 5.01 6.07843 0.0 -ConsistencyChecks_283 8.17 7.9369 0.0 -ConsistencyChecks_251 7.75 7.3549 0.0 -ConsistencyChecks_198 7.65 9.6427 0.0 -ConsistencyChecks_006 7.24 6.03355 0.0 -ConsistencyChecks_296 9.555 7.023 0.0 -ConsistencyChecks_000 5.77 5.91547 0.0 -ConsistencyChecks_279 8.7 6.4899 0.0 -ConsistencyChecks_005 6.96 6.8703 0.0 -ConsistencyChecks_187 4.37 6.9176 0.0 -ConsistencyChecks_153 5.31 6.75053 0.0 -ConsistencyChecks_200 8.19 6.89077 0.0 -ConsistencyChecks_082 5.0 5.0678 0.0 -ConsistencyChecks_024 6.66 6.93832 0.0 -ConsistencyChecks_130 8.7 9.3928 0.0 -ConsistencyChecks_081 8.79 6.8071 0.0 -ConsistencyChecks_063 6.24 7.18237 0.0 -ConsistencyChecks_216 6.76 7.30825 0.0 -ConsistencyChecks_289 9.4 5.67788 0.0 -ConsistencyChecks_246 6.52 5.36852 0.0 -ConsistencyChecks_032 4.2 6.79562 0.0 -ConsistencyChecks_001 6.64 5.4839 0.0 -ConsistencyChecks_112 7.32 6.02687 0.0 -ConsistencyChecks_266 7.54 8.50705 0.0 -ConsistencyChecks_007 6.34 6.2273 0.0 -ConsistencyChecks_097 7.82 7.07005 0.0 -ConsistencyChecks_237 8.31 7.45021 0.0 -ConsistencyChecks_159 6.04 6.62505 0.0 -ConsistencyChecks_143 6.41 6.5994 0.0 -ConsistencyChecks_013 5.82 5.97535 0.0 -ConsistencyChecks_250 6.93 5.74166 0.0 -ConsistencyChecks_292 9.05 6.92852 0.0 -ConsistencyChecks_012 7.24 6.5783 0.0 -ConsistencyChecks_088 5.11 5.7125 0.0 -ConsistencyChecks_269 7.1 7.23511 0.0 -ConsistencyChecks_183 4.89 6.69189 0.0 -ConsistencyChecks_105 5.84 7.25727 0.0 -ConsistencyChecks_070 6.69 7.16809 0.0 -ConsistencyChecks_022 6.16 5.6527 0.0 -ConsistencyChecks_142 6.52 7.26617 0.0 -ConsistencyChecks_188 7.13 6.8903 0.0 -ConsistencyChecks_233 6.69 5.97547 0.0 -ConsistencyChecks_018 9.37 7.367 0.0 -ConsistencyChecks_285 5.27 5.9111 0.0 -ConsistencyChecks_238 6.37 6.65865 0.0 -ConsistencyChecks_116 7.3 7.50949 0.0 -ConsistencyChecks_059 7.58 8.4941 1.0 -ConsistencyChecks_221 5.93 5.84752 1.0 -ConsistencyChecks_020 7.11 7.37375 1.0 -ConsistencyChecks_048 8.32 8.0992 1.0 -ConsistencyChecks_189 6.43 7.64625 1.0 -ConsistencyChecks_277 7.09 6.34875 1.0 -ConsistencyChecks_225 6.97 6.5142 1.0 -ConsistencyChecks_067 6.0 5.98597 1.0 -ConsistencyChecks_084 6.21 6.46687 1.0 -ConsistencyChecks_140 6.0 6.62387 1.0 -ConsistencyChecks_085 6.38 6.38897 1.0 -ConsistencyChecks_133 6.79 6.7178 1.0 -ConsistencyChecks_126 7.37 7.4964 1.0 -ConsistencyChecks_267 6.75 7.769 1.0 -ConsistencyChecks_146 5.18 6.06403 1.0 -ConsistencyChecks_107 5.96 5.41465 1.0 -ConsistencyChecks_228 7.03 6.4693 1.0 -ConsistencyChecks_121 6.11 6.5527 1.0 -ConsistencyChecks_079 4.85 5.0386 1.0 -ConsistencyChecks_236 7.77 7.3268 1.0 -ConsistencyChecks_125 5.65 6.48435 1.0 -ConsistencyChecks_040 7.52 6.7178 1.0 -ConsistencyChecks_196 7.44 7.4641 1.0 -ConsistencyChecks_290 7.27 9.17015 1.0 -ConsistencyChecks_046 9.7 7.07712 1.0 -ConsistencyChecks_165 6.68 6.4489 1.0 -ConsistencyChecks_016 5.92 6.68932 1.0 -ConsistencyChecks_170 7.0 6.57491 1.0 -ConsistencyChecks_176 7.21 7.11525 1.0 -ConsistencyChecks_152 6.67 7.30387 1.0 -ConsistencyChecks_201 7.34 9.16115 1.0 -ConsistencyChecks_260 5.51 7.0916 1.0 -ConsistencyChecks_217 8.52 7.76381 1.0 -ConsistencyChecks_158 5.09 6.2303 1.0 -ConsistencyChecks_113 7.04 6.97353 1.0 -ConsistencyChecks_108 7.17 6.9395 1.0 -ConsistencyChecks_162 7.06 6.78385 1.0 -ConsistencyChecks_033 5.4 6.74662 1.0 -ConsistencyChecks_098 6.47 7.2564 1.0 -ConsistencyChecks_010 6.89 5.51913 1.0 -ConsistencyChecks_114 6.5 6.88931 1.0 -ConsistencyChecks_039 7.12 6.84448 1.0 -ConsistencyChecks_118 8.54 7.0273 1.0 -ConsistencyChecks_254 6.2475 7.05503 1.0 -ConsistencyChecks_259 5.48 6.8984 1.0 -ConsistencyChecks_091 5.16 6.43505 1.0 -ConsistencyChecks_103 4.47 7.5295 1.0 -ConsistencyChecks_174 6.96 5.99152 1.0 -ConsistencyChecks_072 6.23 7.0899 2.0 -ConsistencyChecks_177 7.61 6.788 2.0 -ConsistencyChecks_029 8.92 8.3283 2.0 -ConsistencyChecks_015 7.04 8.0518 2.0 -ConsistencyChecks_178 7.6 7.4688 2.0 -ConsistencyChecks_167 6.66 7.7835 2.0 -ConsistencyChecks_295 8.48 6.2538 2.0 -ConsistencyChecks_203 6.35 7.6033 2.0 -ConsistencyChecks_123 8.13 8.183 2.0 -ConsistencyChecks_211 8.22 7.5173 2.0 -ConsistencyChecks_299 7.6 7.0759 2.0 -ConsistencyChecks_265 6.86 7.23713 2.0 -ConsistencyChecks_186 5.01 6.13202 2.0 -ConsistencyChecks_219 4.62 6.2584 2.0 -ConsistencyChecks_227 7.92 7.3043 2.0 -ConsistencyChecks_173 7.8 7.7288 2.0 -ConsistencyChecks_025 6.46 6.8189 2.0 -ConsistencyChecks_052 6.69 6.2137 2.0 -ConsistencyChecks_089 8.6 8.73867 2.0 -ConsistencyChecks_058 6.77 6.9223 2.0 -ConsistencyChecks_208 6.62 8.3163 2.0 -ConsistencyChecks_041 6.1 6.33564 2.0 -ConsistencyChecks_202 6.33 6.9232 2.0 -ConsistencyChecks_160 5.89 6.2996 2.0 -ConsistencyChecks_111 7.47 7.3601 2.0 -ConsistencyChecks_141 7.07 8.92728 2.0 -ConsistencyChecks_101 6.99091 7.4169 2.0 -ConsistencyChecks_163 6.96 8.5515 2.0 -ConsistencyChecks_166 9.71 7.585 2.0 -ConsistencyChecks_194 7.48 6.6958 2.0 -ConsistencyChecks_030 7.51 6.97715 2.0 -ConsistencyChecks_249 5.94 6.5412 2.0 -ConsistencyChecks_066 6.39667 5.74419 2.0 -ConsistencyChecks_243 5.63 5.88105 2.0 -ConsistencyChecks_014 5.99 5.93137 2.0 -ConsistencyChecks_060 6.46 6.7649 2.0 -ConsistencyChecks_034 7.01 8.3273 2.0 -ConsistencyChecks_239 7.48 7.68125 2.0 -ConsistencyChecks_083 6.0 7.4574 2.0 -ConsistencyChecks_281 8.03 8.3361 2.0 -ConsistencyChecks_139 5.17 5.8333 2.0 -ConsistencyChecks_028 7.38 7.81737 2.0 -ConsistencyChecks_043 7.3 6.64789 2.0 -ConsistencyChecks_137 8.15 7.87696 2.0 -ConsistencyChecks_075 6.06 6.30935 2.0 -ConsistencyChecks_181 5.32 6.4683 2.0 -ConsistencyChecks_138 6.94 6.91628 2.0 -ConsistencyChecks_119 8.35 8.8735 2.0 -ConsistencyChecks_026 4.38 6.30425 3.0 -ConsistencyChecks_256 7.31 6.42975 3.0 -ConsistencyChecks_092 7.35 5.1019 3.0 -ConsistencyChecks_149 6.25 6.3126 3.0 -ConsistencyChecks_220 5.18 5.93947 3.0 -ConsistencyChecks_213 7.28 6.59359 3.0 -ConsistencyChecks_284 7.08 7.4351 3.0 -ConsistencyChecks_214 5.22 5.75775 3.0 -ConsistencyChecks_002 7.88 7.6112 3.0 -ConsistencyChecks_199 6.88 7.6137 3.0 -ConsistencyChecks_242 7.52 7.41192 3.0 -ConsistencyChecks_197 7.66 7.49447 3.0 -ConsistencyChecks_298 6.11 7.05549 3.0 -ConsistencyChecks_003 6.94 7.3019 3.0 -ConsistencyChecks_106 9.0 6.4613 3.0 -ConsistencyChecks_023 6.1 5.41893 3.0 -ConsistencyChecks_102 7.64 7.311 3.0 -ConsistencyChecks_094 6.53 6.6216 3.0 -ConsistencyChecks_090 5.43 6.74642 3.0 -ConsistencyChecks_257 8.24 7.41596 3.0 -ConsistencyChecks_282 7.85 7.11382 3.0 -ConsistencyChecks_205 8.71 8.58922 3.0 -ConsistencyChecks_272 4.99 7.0817 3.0 -ConsistencyChecks_019 7.0 7.077 3.0 -ConsistencyChecks_117 6.42 5.95605 3.0 -ConsistencyChecks_207 9.92 7.61162 3.0 -ConsistencyChecks_263 7.0 6.0786 3.0 -ConsistencyChecks_080 5.61 6.20044 3.0 -ConsistencyChecks_271 5.31 6.57203 3.0 -ConsistencyChecks_175 8.72 7.55906 3.0 -ConsistencyChecks_172 5.8 6.6438 3.0 -ConsistencyChecks_157 6.54 6.9109 3.0 -ConsistencyChecks_230 9.0 7.22301 3.0 -ConsistencyChecks_155 6.43 6.1004 3.0 -ConsistencyChecks_009 7.08 6.2453 3.0 -ConsistencyChecks_276 5.24 5.73737 3.0 -ConsistencyChecks_115 5.17 7.4226 3.0 -ConsistencyChecks_021 5.89 6.9985 3.0 -ConsistencyChecks_065 9.4 9.17006 3.0 -ConsistencyChecks_206 6.26 6.00445 3.0 -ConsistencyChecks_110 6.64 5.20645 3.0 -ConsistencyChecks_077 6.7 6.58555 3.0 -ConsistencyChecks_008 9.0 8.32414 3.0 -ConsistencyChecks_148 5.85 6.7176 3.0 -ConsistencyChecks_280 4.96 5.44782 3.0 -ConsistencyChecks_071 5.95 8.26094 3.0 -ConsistencyChecks_224 6.87 7.0528 3.0 -ConsistencyChecks_164 8.33 7.22581 3.0 -ConsistencyChecks_017 6.57 6.0649 4.0 -ConsistencyChecks_156 5.97 5.8761 4.0 -ConsistencyChecks_223 5.12 6.23707 4.0 -ConsistencyChecks_037 6.6 7.05587 4.0 -ConsistencyChecks_145 8.19 6.8795 4.0 -ConsistencyChecks_128 8.34 7.6919 4.0 -ConsistencyChecks_151 7.79 6.90075 4.0 -ConsistencyChecks_045 7.4 7.8567 4.0 -ConsistencyChecks_136 5.225 5.5718 4.0 -ConsistencyChecks_035 6.745 6.69565 4.0 -ConsistencyChecks_209 7.48 7.1144 4.0 -ConsistencyChecks_190 9.15 9.3482 4.0 -ConsistencyChecks_104 8.03 8.2917 4.0 -ConsistencyChecks_096 7.102 5.728 4.0 -ConsistencyChecks_241 6.59 7.8365 4.0 -ConsistencyChecks_262 6.4 5.3139 4.0 -ConsistencyChecks_261 5.82 7.4217 4.0 -ConsistencyChecks_210 6.4 6.92992 4.0 -ConsistencyChecks_169 7.32 7.483 4.0 -ConsistencyChecks_050 6.13 4.9937 4.0 -ConsistencyChecks_275 5.66 5.5757 4.0 -ConsistencyChecks_191 8.835 5.9385 4.0 -ConsistencyChecks_055 7.07 5.6482 4.0 -ConsistencyChecks_264 8.18 6.0854 4.0 -ConsistencyChecks_212 9.22 8.8977 4.0 -ConsistencyChecks_047 5.76 6.47258 4.0 -ConsistencyChecks_056 5.37 5.6205 4.0 -ConsistencyChecks_231 6.72 6.4369 4.0 -ConsistencyChecks_240 4.75 5.8547 4.0 -ConsistencyChecks_069 6.05 6.3082 4.0 -ConsistencyChecks_226 6.77 6.4418 4.0 -ConsistencyChecks_294 8.54 8.0688 4.0 -ConsistencyChecks_054 9.23 6.878 4.0 -ConsistencyChecks_053 5.46 6.7465 4.0 -ConsistencyChecks_049 9.1 9.3453 4.0 -ConsistencyChecks_124 6.93 5.74757 4.0 -ConsistencyChecks_204 5.375 5.6709 4.0 -ConsistencyChecks_031 7.04 6.5869 4.0 -ConsistencyChecks_253 7.79 6.0553 4.0 -ConsistencyChecks_252 5.7 6.2735 4.0 -ConsistencyChecks_061 6.42 5.7399 4.0 -ConsistencyChecks_147 9.14538 8.3618 4.0 -ConsistencyChecks_131 5.22 5.3434 4.0 -ConsistencyChecks_076 8.52 7.2487 4.0 -ConsistencyChecks_086 6.18 7.0758 4.0 -ConsistencyChecks_287 7.04 7.617 4.0 -ConsistencyChecks_062 6.56 6.4947 4.0 -ConsistencyChecks_100 8.72 9.1189 4.0 diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213.ind.tsv b/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213.ind.tsv deleted file mode 100644 index 643866d2..00000000 --- a/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213.ind.tsv +++ /dev/null @@ -1,61 +0,0 @@ -QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction -ConsistencyChecks_222 7.03 6.5149 -ConsistencyChecks_011 7.29 8.63698 -ConsistencyChecks_154 5.54 6.28168 -ConsistencyChecks_291 5.97 6.34525 -ConsistencyChecks_127 7.96 7.5628 -ConsistencyChecks_218 6.47 6.75235 -ConsistencyChecks_255 7.52 6.8596 -ConsistencyChecks_182 5.65 6.27587 -ConsistencyChecks_179 7.0 6.45713 -ConsistencyChecks_109 6.45 6.65339 -ConsistencyChecks_042 6.5 6.25612 -ConsistencyChecks_120 9.345 6.538 -ConsistencyChecks_036 7.88 6.9054 -ConsistencyChecks_095 7.46 7.0696 -ConsistencyChecks_192 5.04 5.74516 -ConsistencyChecks_288 6.58 6.8365 -ConsistencyChecks_134 7.44 7.09615 -ConsistencyChecks_168 4.53 5.91553 -ConsistencyChecks_248 7.4 9.2173 -ConsistencyChecks_286 8.7 8.4496 -ConsistencyChecks_229 6.62 6.7813 -ConsistencyChecks_278 6.46 5.70552 -ConsistencyChecks_004 7.01 7.7379 -ConsistencyChecks_195 7.48 8.6303 -ConsistencyChecks_027 7.775 5.4861 -ConsistencyChecks_150 7.64 5.4503 -ConsistencyChecks_044 4.66667 6.2749 -ConsistencyChecks_180 6.08 6.7788 -ConsistencyChecks_235 4.95 5.76607 -ConsistencyChecks_135 5.4 6.5711 -ConsistencyChecks_093 6.7 6.22905 -ConsistencyChecks_268 5.36 5.43047 -ConsistencyChecks_144 7.76 6.17287 -ConsistencyChecks_184 7.27 7.7014 -ConsistencyChecks_293 8.84 6.9909 -ConsistencyChecks_087 5.57 5.70062 -ConsistencyChecks_064 6.3 6.71232 -ConsistencyChecks_122 8.4 6.64 -ConsistencyChecks_244 7.32 7.28146 -ConsistencyChecks_129 5.34 5.45695 -ConsistencyChecks_270 6.57 5.8779 -ConsistencyChecks_232 6.22 8.8354 -ConsistencyChecks_247 6.92 7.1617 -ConsistencyChecks_245 6.31 6.4215 -ConsistencyChecks_161 7.82 7.73386 -ConsistencyChecks_171 6.93 7.784 -ConsistencyChecks_297 8.3 6.07067 -ConsistencyChecks_099 8.28 5.8294 -ConsistencyChecks_074 7.07 5.76184 -ConsistencyChecks_078 6.65 7.6295 -ConsistencyChecks_057 9.085 8.9038 -ConsistencyChecks_258 5.42 5.8019 -ConsistencyChecks_234 5.86 6.59242 -ConsistencyChecks_068 7.96 9.14625 -ConsistencyChecks_274 7.92 8.76322 -ConsistencyChecks_193 6.68 5.9504 -ConsistencyChecks_185 8.89 7.63825 -ConsistencyChecks_038 6.98 5.7834 -ConsistencyChecks_073 7.75 7.2572 -ConsistencyChecks_273 7.88 6.1173 diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213.json b/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213.json deleted file mode 100644 index e960b8eb..00000000 --- a/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213.json +++ /dev/null @@ -1 +0,0 @@ -{"unfitted": true, "meta": ["sklearn.ensemble._forest", "ExtraTreesRegressor"], "params": {"bootstrap": false, "ccp_alpha": 0.0, "criterion": "squared_error", "max_depth": null, "max_features": 1.0, "max_leaf_nodes": null, "max_samples": null, "min_impurity_decrease": 0.0, "min_samples_leaf": 1, "min_samples_split": 2, "min_weight_fraction_leaf": 0.0, "n_estimators": 100, "n_jobs": null, "oob_score": false, "random_state": 2746317213, "verbose": 0, "warm_start": false}, "versions": ["sklearn", "1.2.1"]} \ No newline at end of file diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213_meta.json b/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213_meta.json deleted file mode 100644 index 62cc6cd7..00000000 --- a/testing/test_consistency/expected/ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213_meta.json +++ /dev/null @@ -1,1621 +0,0 @@ -{ - "py/object": "qsprpred.models.scikit_learn.SklearnModel", - "py/state": { - "name": "ConsistencyChecksREG_2746317213", - "baseDir": ".", - "targetProperties": [ - { - "py/object": "qsprpred.tasks.TargetProperty", - "py/state": { - "name": "pchembl_value_Mean", - "task": { - "py/reduce": [ - { - "py/type": "qsprpred.tasks.TargetTasks" - }, - { - "py/tuple": [ - "REGRESSION" - ] - } - ] - }, - "transformer": null, - "imputer": null - } - } - ], - "nTargets": 1, - "featureCalculators": [ - { - "py/object": "qsprpred.data.descriptors.calculators.MoleculeDescriptorsCalculator", - "py/state": { - "descSets": [ - { - "py/object": "qsprpred.data.descriptors.sets.FingerprintSet", - "py/state": { - "_isFP": true, - "fingerprintType": "MorganFP", - "_args": { - "py/tuple": [] - }, - "_kwargs": { - "radius": 2, - "nBits": 256 - }, - "_keepindices": [ - 0, - 1, - 2, - 3, - 4, - 5, - 7, - 8, - 9, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 50, - 51, - 52, - 53, - 54, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 77, - 79, - 80, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 94, - 95, - 96, - 98, - 99, - 101, - 102, - 103, - 104, - 105, - 106, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 155, - 156, - 157, - 158, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 172, - 173, - 174, - 175, - 177, - 178, - 179, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 221, - 226, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 237, - 239, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 254, - 255 - ], - "descriptors": [ - "0", - "1", - "2", - "3", - "4", - "5", - "7", - "8", - "9", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "50", - "51", - "52", - "53", - "54", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "65", - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "75", - "77", - "79", - "80", - "82", - "83", - "84", - "85", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "94", - "95", - "96", - "98", - "99", - "101", - "102", - "103", - "104", - "105", - "106", - "108", - "109", - "110", - "111", - "112", - "113", - "114", - "115", - "117", - "118", - "119", - "120", - "121", - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "144", - "145", - "146", - "147", - "148", - "149", - "150", - "151", - "152", - "153", - "155", - "156", - "157", - "158", - "160", - "161", - "162", - "163", - "164", - "165", - "166", - "167", - "168", - "169", - "170", - "172", - "173", - "174", - "175", - "177", - "178", - "179", - "182", - "183", - "184", - "185", - "186", - "187", - "188", - "189", - "191", - "192", - "193", - "194", - "195", - "196", - "197", - "198", - "199", - "200", - "201", - "202", - "203", - "204", - "205", - "206", - "207", - "208", - "209", - "210", - "211", - "212", - "213", - "214", - "215", - "216", - "217", - "218", - "219", - "221", - "226", - "228", - "229", - "230", - "231", - "232", - "233", - "234", - "235", - "237", - "239", - "241", - "242", - "243", - "244", - "245", - "246", - "247", - "248", - "249", - "250", - "251", - "252", - "254", - "255" - ] - } - }, - { - "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", - "py/state": { - "_isFP": false, - "_descriptors": [ - "BCUT2D_CHGLO", - "EState_VSA1", - "EState_VSA10", - "EState_VSA2", - "EState_VSA5", - "EState_VSA7", - "FractionCSP3", - "MaxAbsEStateIndex", - "MaxEStateIndex", - "MinPartialCharge", - "NumSaturatedHeterocycles", - "PEOE_VSA11", - "PEOE_VSA4", - "PEOE_VSA5", - "PEOE_VSA6", - "SMR_VSA9", - "SlogP_VSA12", - "SlogP_VSA4", - "fr_ArN", - "fr_Ar_NH", - "fr_NH2", - "fr_Ndealkylation1", - "fr_Nhpyrrole", - "fr_aryl_methyl", - "fr_ester", - "fr_ether", - "fr_furan", - "fr_imidazole", - "fr_piperzine", - "fr_thiazole" - ], - "include3D": false, - "descriptors": [ - "BCUT2D_CHGLO", - "EState_VSA1", - "EState_VSA10", - "EState_VSA2", - "EState_VSA5", - "EState_VSA7", - "FractionCSP3", - "MaxAbsEStateIndex", - "MaxEStateIndex", - "MinPartialCharge", - "NumSaturatedHeterocycles", - "PEOE_VSA11", - "PEOE_VSA4", - "PEOE_VSA5", - "PEOE_VSA6", - "SMR_VSA9", - "SlogP_VSA12", - "SlogP_VSA4", - "fr_ArN", - "fr_Ar_NH", - "fr_NH2", - "fr_Ndealkylation1", - "fr_Nhpyrrole", - "fr_aryl_methyl", - "fr_ester", - "fr_ether", - "fr_furan", - "fr_imidazole", - "fr_piperzine", - "fr_thiazole" - ] - } - } - ], - "noParallelization": false - } - } - ], - "featureStandardizer": { - "py/object": "qsprpred.data.processing.feature_standardizers.SKLearnStandardizer", - "py/state": { - "scaler": { - "meta": "standard-scaler", - "n_features_in_": 252, - "params": { - "copy": true, - "with_mean": true, - "with_std": true - }, - "var_": [ - 0.14972222222222198, - 0.13039930555555615, - 0.0693750000000001, - 0.19159722222222306, - 0.05859375, - 0.062222222222222436, - 0.23109375000000018, - 0.08326388888888926, - 0.10305555555555522, - 0.1303993055555562, - 0.07638888888888876, - 0.1549305555555554, - 0.09331597222222193, - 0.10305555555555516, - 0.12159722222222258, - 0.05493055555555544, - 0.06581597222222234, - 0.18326388888888945, - 0.08326388888888919, - 0.1549305555555554, - 0.19159722222222306, - 0.16493055555555616, - 0.06581597222222237, - 0.19159722222222306, - 0.11555555555555509, - 0.09000000000000032, - 0.09984374999999954, - 0.05859375, - 0.109375, - 0.06581597222222232, - 0.1832638888888895, - 0.1624826388888886, - 0.20484374999999938, - 0.11555555555555509, - 0.08664930555555551, - 0.2235937499999999, - 0.12456597222222182, - 0.1599999999999996, - 0.09659722222222232, - 0.20305555555555588, - 0.109375, - 0.15234375, - 0.2488888888888886, - 0.24081597222222217, - 0.24937500000000007, - 0.07638888888888884, - 0.1360937500000006, - 0.2132638888888901, - 0.05123263888888899, - 0.08326388888888922, - 0.2322222222222232, - 0.14706597222222245, - 0.2299305555555562, - 0.16734375000000015, - 0.22623263888888875, - 0.17888888888888885, - 0.2116493055555562, - 0.06937500000000005, - 0.19555555555555487, - 0.23638888888888845, - 0.12456597222222182, - 0.1743749999999996, - 0.17888888888888882, - 0.05123263888888905, - 0.15493055555555543, - 0.054930555555555434, - 0.14164930555555555, - 0.15493055555555543, - 0.12456597222222185, - 0.23914930555555652, - 0.15999999999999953, - 0.1649305555555561, - 0.05859375, - 0.06581597222222232, - 0.13888888888888912, - 0.24081597222222237, - 0.06581597222222228, - 0.10305555555555515, - 0.10623263888888856, - 0.1549305555555554, - 0.2485937499999996, - 0.20484374999999938, - 0.08664930555555551, - 0.06937500000000013, - 0.19359374999999968, - 0.234375, - 0.05123263888888907, - 0.211649305555556, - 0.09659722222222214, - 0.1303993055555562, - 0.13888888888888923, - 0.19159722222222306, - 0.24706597222222174, - 0.06581597222222234, - 0.08664930555555551, - 0.05859375, - 0.09331597222222196, - 0.17437499999999953, - 0.13326388888888865, - 0.23109375000000018, - 0.09659722222222228, - 0.10623263888888856, - 0.24937500000000012, - 0.1416493055555556, - 0.1360937500000006, - 0.24659722222222138, - 0.22993055555555617, - 0.05493055555555545, - 0.20484374999999932, - 0.1743749999999994, - 0.24914930555555545, - 0.10623263888888873, - 0.07289930555555572, - 0.22993055555555614, - 0.19748263888888834, - 0.1062326388888884, - 0.178888888888889, - 0.07289930555555588, - 0.12159722222222263, - 0.06222222222222253, - 0.2498437499999999, - 0.12750000000000059, - 0.21484375, - 0.12159722222222256, - 0.23109375000000007, - 0.09000000000000016, - 0.14972222222222223, - 0.24437499999999931, - 0.1030555555555552, - 0.14437500000000023, - 0.247899305555555, - 0.07984375000000009, - 0.05493055555555545, - 0.09000000000000023, - 0.11248263888888912, - 0.07289930555555584, - 0.12456597222222185, - 0.109375, - 0.21789930555555576, - 0.1549305555555554, - 0.24609375, - 0.20659722222222182, - 0.23826388888888922, - 0.22750000000000029, - 0.19937500000000025, - 0.2262326388888887, - 0.1549305555555554, - 0.06937500000000016, - 0.17664930555555616, - 0.19359374999999976, - 0.24888888888888847, - 0.07289930555555588, - 0.24826388888888853, - 0.109375, - 0.08664930555555553, - 0.08664930555555551, - 0.15999999999999961, - 0.19159722222222306, - 0.172065972222222, - 0.07289930555555593, - 0.23826388888888925, - 0.0998437499999994, - 0.07984375000000009, - 0.0832638888888893, - 0.14706597222222242, - 0.234375, - 0.10623263888888863, - 0.11859375000000023, - 0.11248263888888912, - 0.05859375, - 0.14164930555555566, - 0.05859375, - 0.21937500000000035, - 0.14164930555555555, - 0.18539930555555612, - 0.06581597222222234, - 0.1416493055555554, - 0.12456597222222184, - 0.16493055555555608, - 0.2287326388888889, - 0.20305555555555585, - 0.05859375, - 0.15999999999999956, - 0.15234375, - 0.09331597222222188, - 0.23999999999999905, - 0.13888888888888928, - 0.19937500000000025, - 0.15234375, - 0.1599999999999996, - 0.05493055555555545, - 0.062222222222222394, - 0.10623263888888873, - 0.09000000000000032, - 0.23109375000000018, - 0.07289930555555585, - 0.18326388888888948, - 0.09984374999999952, - 0.13039930555555615, - 0.10623263888888848, - 0.15234375, - 0.10305555555555522, - 0.17664930555555616, - 0.08664930555555551, - 0.07289930555555588, - 0.08664930555555551, - 0.07289930555555575, - 0.07638888888888863, - 0.07984375000000009, - 0.07984375000000009, - 0.0933159722222219, - 0.06581597222222235, - 0.109375, - 0.09984374999999962, - 0.13326388888888865, - 0.16734375000000018, - 0.07984375000000009, - 0.17888888888888896, - 0.2116493055555561, - 0.08664930555555551, - 0.05493055555555548, - 0.24888888888888858, - 0.012506485209500514, - 121.15087939955629, - 45.52150619221887, - 88.33298496524498, - 110.24724430605609, - 361.629305953246, - 0.028083462518416688, - 6.91905552638616, - 6.91905552638616, - 0.0039095377124141704, - 0.3012326388888891, - 61.444440539172106, - 40.57727316062258, - 26.7140617931244, - 322.5285449038037, - 52.352607196593944, - 63.31978870523825, - 37.81154712632511, - 0.26414930555555644, - 0.2277083333333336, - 0.3391666666666668, - 0.05859375, - 0.2277083333333336, - 0.5783159722222216, - 0.05493055555555542, - 0.5132638888888895, - 0.2632638888888895, - 0.23604166666666723, - 0.09984374999999951, - 0.1155555555555552 - ], - "mean_": [ - 0.18333333333333332, - 0.15416666666666667, - 0.075, - 0.25833333333333336, - 0.0625, - 0.06666666666666667, - 0.3625, - 0.09166666666666666, - 0.11666666666666667, - 0.15416666666666667, - 0.08333333333333333, - 0.19166666666666668, - 0.10416666666666667, - 0.11666666666666667, - 0.14166666666666666, - 0.058333333333333334, - 0.07083333333333333, - 0.24166666666666667, - 0.09166666666666666, - 0.19166666666666668, - 0.25833333333333336, - 0.20833333333333334, - 0.07083333333333333, - 0.25833333333333336, - 0.13333333333333333, - 0.1, - 0.1125, - 0.0625, - 0.125, - 0.07083333333333333, - 0.7583333333333333, - 0.20416666666666666, - 0.2875, - 0.13333333333333333, - 0.09583333333333334, - 0.6625, - 0.14583333333333334, - 0.2, - 0.10833333333333334, - 0.2833333333333333, - 0.125, - 0.1875, - 0.4666666666666667, - 0.4041666666666667, - 0.475, - 0.08333333333333333, - 0.1625, - 0.30833333333333335, - 0.05416666666666667, - 0.09166666666666666, - 0.36666666666666664, - 0.17916666666666667, - 0.35833333333333334, - 0.2125, - 0.3458333333333333, - 0.23333333333333334, - 0.30416666666666664, - 0.925, - 0.26666666666666666, - 0.38333333333333336, - 0.14583333333333334, - 0.225, - 0.23333333333333334, - 0.05416666666666667, - 0.19166666666666668, - 0.058333333333333334, - 0.17083333333333334, - 0.19166666666666668, - 0.14583333333333334, - 0.3958333333333333, - 0.2, - 0.7916666666666666, - 0.0625, - 0.07083333333333333, - 0.16666666666666666, - 0.4041666666666667, - 0.07083333333333333, - 0.11666666666666667, - 0.12083333333333333, - 0.19166666666666668, - 0.4625, - 0.7125, - 0.09583333333333334, - 0.075, - 0.2625, - 0.375, - 0.05416666666666667, - 0.30416666666666664, - 0.10833333333333334, - 0.15416666666666667, - 0.16666666666666666, - 0.25833333333333336, - 0.44583333333333336, - 0.07083333333333333, - 0.09583333333333334, - 0.0625, - 0.10416666666666667, - 0.225, - 0.15833333333333333, - 0.3625, - 0.10833333333333334, - 0.12083333333333333, - 0.475, - 0.17083333333333334, - 0.1625, - 0.44166666666666665, - 0.35833333333333334, - 0.9416666666666667, - 0.2875, - 0.775, - 0.5291666666666667, - 0.12083333333333333, - 0.07916666666666666, - 0.6416666666666667, - 0.2708333333333333, - 0.12083333333333333, - 0.23333333333333334, - 0.07916666666666666, - 0.14166666666666666, - 0.06666666666666667, - 0.4875, - 0.15, - 0.6875, - 0.14166666666666666, - 0.6375, - 0.1, - 0.18333333333333332, - 0.575, - 0.11666666666666667, - 0.175, - 0.5458333333333333, - 0.0875, - 0.058333333333333334, - 0.1, - 0.12916666666666668, - 0.07916666666666666, - 0.14583333333333334, - 0.125, - 0.32083333333333336, - 0.19166666666666668, - 0.4375, - 0.7083333333333334, - 0.39166666666666666, - 0.35, - 0.275, - 0.6541666666666667, - 0.19166666666666668, - 0.075, - 0.7708333333333334, - 0.2625, - 0.4666666666666667, - 0.07916666666666666, - 0.4583333333333333, - 0.125, - 0.09583333333333334, - 0.09583333333333334, - 0.2, - 0.25833333333333336, - 0.22083333333333333, - 0.07916666666666666, - 0.39166666666666666, - 0.1125, - 0.0875, - 0.09166666666666666, - 0.17916666666666667, - 0.375, - 0.12083333333333333, - 0.1375, - 0.12916666666666668, - 0.0625, - 0.17083333333333334, - 0.0625, - 0.325, - 0.17083333333333334, - 0.24583333333333332, - 0.07083333333333333, - 0.17083333333333334, - 0.14583333333333334, - 0.20833333333333334, - 0.3541666666666667, - 0.2833333333333333, - 0.0625, - 0.2, - 0.1875, - 0.10416666666666667, - 0.4, - 0.16666666666666666, - 0.275, - 0.1875, - 0.2, - 0.058333333333333334, - 0.06666666666666667, - 0.12083333333333333, - 0.1, - 0.3625, - 0.07916666666666666, - 0.24166666666666667, - 0.1125, - 0.15416666666666667, - 0.12083333333333333, - 0.1875, - 0.11666666666666667, - 0.22916666666666666, - 0.09583333333333334, - 0.07916666666666666, - 0.09583333333333334, - 0.07916666666666666, - 0.08333333333333333, - 0.0875, - 0.0875, - 0.10416666666666667, - 0.07083333333333333, - 0.125, - 0.1125, - 0.15833333333333333, - 0.2125, - 0.0875, - 0.23333333333333334, - 0.30416666666666664, - 0.09583333333333334, - 0.058333333333333334, - 0.4666666666666667, - -2.146254403392474, - 7.801154937346777, - 8.593973797559737, - 13.475293729702631, - 12.875791436433792, - 22.521520747741064, - 0.2596044953757276, - 11.300073413054148, - 11.300073413054148, - -0.4298660364622871, - 0.32083333333333336, - 12.082130233446756, - 6.488119000196457, - 3.9584131479263305, - 20.674948585033416, - 11.27687188188235, - 5.128823447227478, - 4.1128416160742445, - 0.3958333333333333, - 0.175, - 0.45, - 0.0625, - 0.175, - 0.5708333333333333, - 0.058333333333333334, - 0.5583333333333333, - 0.35833333333333334, - 0.325, - 0.1125, - 0.13333333333333333 - ], - "scale_": [ - 0.3869395588747963, - 0.3611084401610632, - 0.2633913438213187, - 0.43771819955563085, - 0.24206145913796356, - 0.24944382578492985, - 0.4807221130757354, - 0.28855482821968037, - 0.3210226714043032, - 0.36110844016106325, - 0.2763853991962831, - 0.39361218928731795, - 0.3054766312211491, - 0.32102267140430313, - 0.3487079325484618, - 0.23437268517375365, - 0.256546237981036, - 0.42809331796804473, - 0.28855482821968026, - 0.39361218928731795, - 0.43771819955563085, - 0.4061164310337076, - 0.25654623798103604, - 0.43771819955563085, - 0.3399346342395183, - 0.30000000000000054, - 0.31598061649411274, - 0.24206145913796356, - 0.33071891388307384, - 0.25654623798103593, - 0.4280933179680448, - 0.40309135303165283, - 0.45259667475579113, - 0.3399346342395183, - 0.29436254101966763, - 0.4728570079844433, - 0.3529390488770289, - 0.39999999999999947, - 0.3108009366495254, - 0.4506168611531928, - 0.33071891388307384, - 0.3903123748998999, - 0.4988876515698586, - 0.49073004006502613, - 0.49937460888595453, - 0.27638539919628324, - 0.3689088640843435, - 0.4618050334165817, - 0.22634628092568473, - 0.2885548282196803, - 0.4818944098266997, - 0.383491815065488, - 0.47951074602719407, - 0.40907670429883947, - 0.47563918981607134, - 0.42295258468165065, - 0.460053589873567, - 0.26339134382131857, - 0.44221663871405253, - 0.4861984048604936, - 0.3529390488770289, - 0.4175823272122512, - 0.4229525846816506, - 0.22634628092568487, - 0.39361218928731795, - 0.23437268517375362, - 0.3763632627602693, - 0.39361218928731795, - 0.352939048877029, - 0.4890289414293969, - 0.3999999999999994, - 0.40611643103370754, - 0.24206145913796356, - 0.25654623798103593, - 0.3726779962499653, - 0.49073004006502635, - 0.2565462379810359, - 0.3210226714043031, - 0.3259334884434071, - 0.39361218928731795, - 0.49859176687947787, - 0.45259667475579113, - 0.29436254101966763, - 0.26339134382131874, - 0.43999289766995064, - 0.4841229182759271, - 0.2263462809256849, - 0.4600535898735668, - 0.31080093664952513, - 0.36110844016106325, - 0.3726779962499654, - 0.43771819955563085, - 0.4970573128143491, - 0.256546237981036, - 0.29436254101966763, - 0.24206145913796356, - 0.30547663122114915, - 0.4175823272122511, - 0.3650532685634915, - 0.4807221130757354, - 0.31080093664952535, - 0.3259334884434071, - 0.4993746088859546, - 0.37636326276026943, - 0.3689088640843435, - 0.4965855638479852, - 0.479510746027194, - 0.23437268517375365, - 0.4525966747557911, - 0.4175823272122509, - 0.49914858064062995, - 0.3259334884434073, - 0.26999871398870723, - 0.479510746027194, - 0.4443901876604482, - 0.3259334884434068, - 0.4229525846816508, - 0.2699987139887075, - 0.3487079325484619, - 0.24944382578493005, - 0.49984372557830503, - 0.3570714214271433, - 0.46351240544347894, - 0.3487079325484618, - 0.4807221130757353, - 0.30000000000000027, - 0.38693955887479664, - 0.494342998332129, - 0.3210226714043032, - 0.3799671038392669, - 0.4978948740000795, - 0.282566363886433, - 0.23437268517375365, - 0.3000000000000004, - 0.33538431521001266, - 0.26999871398870745, - 0.352939048877029, - 0.33071891388307384, - 0.4667968568398418, - 0.39361218928731795, - 0.49607837082461076, - 0.4545296714431543, - 0.4881228215202494, - 0.4769696007084731, - 0.44651427748729405, - 0.4756391898160713, - 0.39361218928731795, - 0.2633913438213188, - 0.4202966875381677, - 0.43999289766995076, - 0.4988876515698584, - 0.2699987139887075, - 0.4982608642958912, - 0.33071891388307384, - 0.2943625410196677, - 0.29436254101966763, - 0.3999999999999995, - 0.43771819955563085, - 0.41480835601783866, - 0.2699987139887076, - 0.4881228215202494, - 0.3159806164941125, - 0.282566363886433, - 0.2885548282196805, - 0.38349181506548796, - 0.4841229182759271, - 0.3259334884434072, - 0.3443744328488981, - 0.33538431521001266, - 0.24206145913796356, - 0.3763632627602695, - 0.24206145913796356, - 0.46837484987988026, - 0.3763632627602693, - 0.4305801964275135, - 0.256546237981036, - 0.37636326276026916, - 0.352939048877029, - 0.4061164310337075, - 0.47826001180204153, - 0.4506168611531928, - 0.24206145913796356, - 0.39999999999999947, - 0.3903123748998999, - 0.30547663122114904, - 0.48989794855663465, - 0.3726779962499655, - 0.44651427748729405, - 0.3903123748998999, - 0.39999999999999947, - 0.23437268517375365, - 0.24944382578492977, - 0.3259334884434073, - 0.30000000000000054, - 0.4807221130757354, - 0.26999871398870745, - 0.4280933179680448, - 0.3159806164941127, - 0.3611084401610632, - 0.3259334884434069, - 0.3903123748998999, - 0.3210226714043032, - 0.4202966875381677, - 0.29436254101966763, - 0.2699987139887075, - 0.29436254101966763, - 0.2699987139887073, - 0.27638539919628285, - 0.282566363886433, - 0.282566363886433, - 0.30547663122114904, - 0.256546237981036, - 0.33071891388307384, - 0.31598061649411285, - 0.3650532685634915, - 0.4090767042988395, - 0.282566363886433, - 0.42295258468165076, - 0.4600535898735669, - 0.29436254101966763, - 0.23437268517375373, - 0.49888765156985854, - 0.11183239785277124, - 11.006856017935199, - 6.74696273831558, - 9.398562920215248, - 10.49986877565887, - 19.016553471995024, - 0.16758121171067086, - 2.630409763969515, - 2.630409763969515, - 0.062526296167406, - 0.5488466442357912, - 7.838650428432953, - 6.370029290405389, - 5.168564771106618, - 17.959079734323907, - 7.235510154549846, - 7.9573732289769, - 6.1491094579886205, - 0.513954575381479, - 0.4771879434073472, - 0.582380173655205, - 0.24206145913796356, - 0.4771879434073472, - 0.7604708884778046, - 0.2343726851737536, - 0.7164243776483946, - 0.5130924759620721, - 0.48584119490494754, - 0.3159806164941127, - 0.3399346342395185 - ], - "n_samples_seen_": 240, - "feature_names_in_": { - "py/tuple": [ - [ - "Descriptor_FingerprintSet_MorganFP_0", - "Descriptor_FingerprintSet_MorganFP_1", - "Descriptor_FingerprintSet_MorganFP_2", - "Descriptor_FingerprintSet_MorganFP_3", - "Descriptor_FingerprintSet_MorganFP_4", - "Descriptor_FingerprintSet_MorganFP_5", - "Descriptor_FingerprintSet_MorganFP_7", - "Descriptor_FingerprintSet_MorganFP_8", - "Descriptor_FingerprintSet_MorganFP_9", - "Descriptor_FingerprintSet_MorganFP_11", - "Descriptor_FingerprintSet_MorganFP_12", - "Descriptor_FingerprintSet_MorganFP_13", - "Descriptor_FingerprintSet_MorganFP_14", - "Descriptor_FingerprintSet_MorganFP_15", - "Descriptor_FingerprintSet_MorganFP_16", - "Descriptor_FingerprintSet_MorganFP_17", - "Descriptor_FingerprintSet_MorganFP_18", - "Descriptor_FingerprintSet_MorganFP_20", - "Descriptor_FingerprintSet_MorganFP_21", - "Descriptor_FingerprintSet_MorganFP_22", - "Descriptor_FingerprintSet_MorganFP_23", - "Descriptor_FingerprintSet_MorganFP_24", - "Descriptor_FingerprintSet_MorganFP_25", - "Descriptor_FingerprintSet_MorganFP_26", - "Descriptor_FingerprintSet_MorganFP_27", - "Descriptor_FingerprintSet_MorganFP_28", - "Descriptor_FingerprintSet_MorganFP_29", - "Descriptor_FingerprintSet_MorganFP_30", - "Descriptor_FingerprintSet_MorganFP_31", - "Descriptor_FingerprintSet_MorganFP_32", - "Descriptor_FingerprintSet_MorganFP_33", - "Descriptor_FingerprintSet_MorganFP_34", - "Descriptor_FingerprintSet_MorganFP_36", - "Descriptor_FingerprintSet_MorganFP_37", - "Descriptor_FingerprintSet_MorganFP_38", - "Descriptor_FingerprintSet_MorganFP_39", - "Descriptor_FingerprintSet_MorganFP_40", - "Descriptor_FingerprintSet_MorganFP_41", - "Descriptor_FingerprintSet_MorganFP_42", - "Descriptor_FingerprintSet_MorganFP_43", - "Descriptor_FingerprintSet_MorganFP_44", - "Descriptor_FingerprintSet_MorganFP_45", - "Descriptor_FingerprintSet_MorganFP_46", - "Descriptor_FingerprintSet_MorganFP_47", - "Descriptor_FingerprintSet_MorganFP_48", - "Descriptor_FingerprintSet_MorganFP_50", - "Descriptor_FingerprintSet_MorganFP_51", - "Descriptor_FingerprintSet_MorganFP_52", - "Descriptor_FingerprintSet_MorganFP_53", - "Descriptor_FingerprintSet_MorganFP_54", - "Descriptor_FingerprintSet_MorganFP_56", - "Descriptor_FingerprintSet_MorganFP_57", - "Descriptor_FingerprintSet_MorganFP_58", - "Descriptor_FingerprintSet_MorganFP_59", - "Descriptor_FingerprintSet_MorganFP_60", - "Descriptor_FingerprintSet_MorganFP_61", - "Descriptor_FingerprintSet_MorganFP_62", - "Descriptor_FingerprintSet_MorganFP_63", - "Descriptor_FingerprintSet_MorganFP_65", - "Descriptor_FingerprintSet_MorganFP_66", - "Descriptor_FingerprintSet_MorganFP_67", - "Descriptor_FingerprintSet_MorganFP_68", - "Descriptor_FingerprintSet_MorganFP_69", - "Descriptor_FingerprintSet_MorganFP_70", - "Descriptor_FingerprintSet_MorganFP_71", - "Descriptor_FingerprintSet_MorganFP_72", - "Descriptor_FingerprintSet_MorganFP_73", - "Descriptor_FingerprintSet_MorganFP_74", - "Descriptor_FingerprintSet_MorganFP_75", - "Descriptor_FingerprintSet_MorganFP_77", - "Descriptor_FingerprintSet_MorganFP_79", - "Descriptor_FingerprintSet_MorganFP_80", - "Descriptor_FingerprintSet_MorganFP_82", - "Descriptor_FingerprintSet_MorganFP_83", - "Descriptor_FingerprintSet_MorganFP_84", - "Descriptor_FingerprintSet_MorganFP_85", - "Descriptor_FingerprintSet_MorganFP_86", - "Descriptor_FingerprintSet_MorganFP_87", - "Descriptor_FingerprintSet_MorganFP_88", - "Descriptor_FingerprintSet_MorganFP_89", - "Descriptor_FingerprintSet_MorganFP_90", - "Descriptor_FingerprintSet_MorganFP_91", - "Descriptor_FingerprintSet_MorganFP_92", - "Descriptor_FingerprintSet_MorganFP_94", - "Descriptor_FingerprintSet_MorganFP_95", - "Descriptor_FingerprintSet_MorganFP_96", - "Descriptor_FingerprintSet_MorganFP_98", - "Descriptor_FingerprintSet_MorganFP_99", - "Descriptor_FingerprintSet_MorganFP_101", - "Descriptor_FingerprintSet_MorganFP_102", - "Descriptor_FingerprintSet_MorganFP_103", - "Descriptor_FingerprintSet_MorganFP_104", - "Descriptor_FingerprintSet_MorganFP_105", - "Descriptor_FingerprintSet_MorganFP_106", - "Descriptor_FingerprintSet_MorganFP_108", - "Descriptor_FingerprintSet_MorganFP_109", - "Descriptor_FingerprintSet_MorganFP_110", - "Descriptor_FingerprintSet_MorganFP_111", - "Descriptor_FingerprintSet_MorganFP_112", - "Descriptor_FingerprintSet_MorganFP_113", - "Descriptor_FingerprintSet_MorganFP_114", - "Descriptor_FingerprintSet_MorganFP_115", - "Descriptor_FingerprintSet_MorganFP_117", - "Descriptor_FingerprintSet_MorganFP_118", - "Descriptor_FingerprintSet_MorganFP_119", - "Descriptor_FingerprintSet_MorganFP_120", - "Descriptor_FingerprintSet_MorganFP_121", - "Descriptor_FingerprintSet_MorganFP_122", - "Descriptor_FingerprintSet_MorganFP_123", - "Descriptor_FingerprintSet_MorganFP_124", - "Descriptor_FingerprintSet_MorganFP_125", - "Descriptor_FingerprintSet_MorganFP_126", - "Descriptor_FingerprintSet_MorganFP_127", - "Descriptor_FingerprintSet_MorganFP_128", - "Descriptor_FingerprintSet_MorganFP_129", - "Descriptor_FingerprintSet_MorganFP_131", - "Descriptor_FingerprintSet_MorganFP_132", - "Descriptor_FingerprintSet_MorganFP_133", - "Descriptor_FingerprintSet_MorganFP_134", - "Descriptor_FingerprintSet_MorganFP_135", - "Descriptor_FingerprintSet_MorganFP_136", - "Descriptor_FingerprintSet_MorganFP_137", - "Descriptor_FingerprintSet_MorganFP_138", - "Descriptor_FingerprintSet_MorganFP_139", - "Descriptor_FingerprintSet_MorganFP_140", - "Descriptor_FingerprintSet_MorganFP_141", - "Descriptor_FingerprintSet_MorganFP_142", - "Descriptor_FingerprintSet_MorganFP_144", - "Descriptor_FingerprintSet_MorganFP_145", - "Descriptor_FingerprintSet_MorganFP_146", - "Descriptor_FingerprintSet_MorganFP_147", - "Descriptor_FingerprintSet_MorganFP_148", - "Descriptor_FingerprintSet_MorganFP_149", - "Descriptor_FingerprintSet_MorganFP_150", - "Descriptor_FingerprintSet_MorganFP_151", - "Descriptor_FingerprintSet_MorganFP_152", - "Descriptor_FingerprintSet_MorganFP_153", - "Descriptor_FingerprintSet_MorganFP_155", - "Descriptor_FingerprintSet_MorganFP_156", - "Descriptor_FingerprintSet_MorganFP_157", - "Descriptor_FingerprintSet_MorganFP_158", - "Descriptor_FingerprintSet_MorganFP_160", - "Descriptor_FingerprintSet_MorganFP_161", - "Descriptor_FingerprintSet_MorganFP_162", - "Descriptor_FingerprintSet_MorganFP_163", - "Descriptor_FingerprintSet_MorganFP_164", - "Descriptor_FingerprintSet_MorganFP_165", - "Descriptor_FingerprintSet_MorganFP_166", - "Descriptor_FingerprintSet_MorganFP_167", - "Descriptor_FingerprintSet_MorganFP_168", - "Descriptor_FingerprintSet_MorganFP_169", - "Descriptor_FingerprintSet_MorganFP_170", - "Descriptor_FingerprintSet_MorganFP_172", - "Descriptor_FingerprintSet_MorganFP_173", - "Descriptor_FingerprintSet_MorganFP_174", - "Descriptor_FingerprintSet_MorganFP_175", - "Descriptor_FingerprintSet_MorganFP_177", - "Descriptor_FingerprintSet_MorganFP_178", - "Descriptor_FingerprintSet_MorganFP_179", - "Descriptor_FingerprintSet_MorganFP_182", - "Descriptor_FingerprintSet_MorganFP_183", - "Descriptor_FingerprintSet_MorganFP_184", - "Descriptor_FingerprintSet_MorganFP_185", - "Descriptor_FingerprintSet_MorganFP_186", - "Descriptor_FingerprintSet_MorganFP_187", - "Descriptor_FingerprintSet_MorganFP_188", - "Descriptor_FingerprintSet_MorganFP_189", - "Descriptor_FingerprintSet_MorganFP_191", - "Descriptor_FingerprintSet_MorganFP_192", - "Descriptor_FingerprintSet_MorganFP_193", - "Descriptor_FingerprintSet_MorganFP_194", - "Descriptor_FingerprintSet_MorganFP_195", - "Descriptor_FingerprintSet_MorganFP_196", - "Descriptor_FingerprintSet_MorganFP_197", - "Descriptor_FingerprintSet_MorganFP_198", - "Descriptor_FingerprintSet_MorganFP_199", - "Descriptor_FingerprintSet_MorganFP_200", - "Descriptor_FingerprintSet_MorganFP_201", - "Descriptor_FingerprintSet_MorganFP_202", - "Descriptor_FingerprintSet_MorganFP_203", - "Descriptor_FingerprintSet_MorganFP_204", - "Descriptor_FingerprintSet_MorganFP_205", - "Descriptor_FingerprintSet_MorganFP_206", - "Descriptor_FingerprintSet_MorganFP_207", - "Descriptor_FingerprintSet_MorganFP_208", - "Descriptor_FingerprintSet_MorganFP_209", - "Descriptor_FingerprintSet_MorganFP_210", - "Descriptor_FingerprintSet_MorganFP_211", - "Descriptor_FingerprintSet_MorganFP_212", - "Descriptor_FingerprintSet_MorganFP_213", - "Descriptor_FingerprintSet_MorganFP_214", - "Descriptor_FingerprintSet_MorganFP_215", - "Descriptor_FingerprintSet_MorganFP_216", - "Descriptor_FingerprintSet_MorganFP_217", - "Descriptor_FingerprintSet_MorganFP_218", - "Descriptor_FingerprintSet_MorganFP_219", - "Descriptor_FingerprintSet_MorganFP_221", - "Descriptor_FingerprintSet_MorganFP_226", - "Descriptor_FingerprintSet_MorganFP_228", - "Descriptor_FingerprintSet_MorganFP_229", - "Descriptor_FingerprintSet_MorganFP_230", - "Descriptor_FingerprintSet_MorganFP_231", - "Descriptor_FingerprintSet_MorganFP_232", - "Descriptor_FingerprintSet_MorganFP_233", - "Descriptor_FingerprintSet_MorganFP_234", - "Descriptor_FingerprintSet_MorganFP_235", - "Descriptor_FingerprintSet_MorganFP_237", - "Descriptor_FingerprintSet_MorganFP_239", - "Descriptor_FingerprintSet_MorganFP_241", - "Descriptor_FingerprintSet_MorganFP_242", - "Descriptor_FingerprintSet_MorganFP_243", - "Descriptor_FingerprintSet_MorganFP_244", - "Descriptor_FingerprintSet_MorganFP_245", - "Descriptor_FingerprintSet_MorganFP_246", - "Descriptor_FingerprintSet_MorganFP_247", - "Descriptor_FingerprintSet_MorganFP_248", - "Descriptor_FingerprintSet_MorganFP_249", - "Descriptor_FingerprintSet_MorganFP_250", - "Descriptor_FingerprintSet_MorganFP_251", - "Descriptor_FingerprintSet_MorganFP_252", - "Descriptor_FingerprintSet_MorganFP_254", - "Descriptor_FingerprintSet_MorganFP_255", - "Descriptor_RDkit_BCUT2D_CHGLO", - "Descriptor_RDkit_EState_VSA1", - "Descriptor_RDkit_EState_VSA10", - "Descriptor_RDkit_EState_VSA2", - "Descriptor_RDkit_EState_VSA5", - "Descriptor_RDkit_EState_VSA7", - "Descriptor_RDkit_FractionCSP3", - "Descriptor_RDkit_MaxAbsEStateIndex", - "Descriptor_RDkit_MaxEStateIndex", - "Descriptor_RDkit_MinPartialCharge", - "Descriptor_RDkit_NumSaturatedHeterocycles", - "Descriptor_RDkit_PEOE_VSA11", - "Descriptor_RDkit_PEOE_VSA4", - "Descriptor_RDkit_PEOE_VSA5", - "Descriptor_RDkit_PEOE_VSA6", - "Descriptor_RDkit_SMR_VSA9", - "Descriptor_RDkit_SlogP_VSA12", - "Descriptor_RDkit_SlogP_VSA4", - "Descriptor_RDkit_fr_ArN", - "Descriptor_RDkit_fr_Ar_NH", - "Descriptor_RDkit_fr_NH2", - "Descriptor_RDkit_fr_Ndealkylation1", - "Descriptor_RDkit_fr_Nhpyrrole", - "Descriptor_RDkit_fr_aryl_methyl", - "Descriptor_RDkit_fr_ester", - "Descriptor_RDkit_fr_ether", - "Descriptor_RDkit_fr_furan", - "Descriptor_RDkit_fr_imidazole", - "Descriptor_RDkit_fr_piperzine", - "Descriptor_RDkit_fr_thiazole" - ] - ] - }, - "versions": { - "py/tuple": [ - "sklearn", - "1.2.1" - ] - } - } - } - }, - "earlyStopping": null, - "parameters": { - "random_state": 2746317213 - }, - "alg": "sklearn.ensemble._forest.ExtraTreesRegressor", - "randomState": 2746317213, - "estimator": "./ConsistencyChecksREG_2746317213/ConsistencyChecksREG_2746317213.json" - } -} \ No newline at end of file diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327.cv.tsv b/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327.cv.tsv index 50da8be7..64b78ed0 100644 --- a/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327.cv.tsv +++ b/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327.cv.tsv @@ -1,241 +1,241 @@ QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction Fold -ConsistencyChecks_057 9.085 8.36157 0.0 -ConsistencyChecks_166 9.71 7.61076 0.0 -ConsistencyChecks_040 7.52 6.87843 0.0 -ConsistencyChecks_097 7.82 6.76942 0.0 -ConsistencyChecks_056 5.37 7.57176 0.0 -ConsistencyChecks_242 7.52 7.38251 0.0 -ConsistencyChecks_181 5.32 6.54936 0.0 -ConsistencyChecks_021 5.89 6.15416 0.0 -ConsistencyChecks_277 7.09 5.94649 0.0 -ConsistencyChecks_117 6.42 6.86681 0.0 -ConsistencyChecks_018 9.37 7.82964 0.0 -ConsistencyChecks_229 6.62 6.73128 0.0 -ConsistencyChecks_265 6.86 6.32126 0.0 -ConsistencyChecks_130 8.7 8.44017 0.0 -ConsistencyChecks_270 6.57 6.25083 0.0 -ConsistencyChecks_296 9.555 8.46516 0.0 -ConsistencyChecks_264 8.18 7.08958 0.0 -ConsistencyChecks_275 5.66 5.51028 0.0 -ConsistencyChecks_134 7.44 6.45994 0.0 -ConsistencyChecks_014 5.99 7.01392 0.0 -ConsistencyChecks_106 9.0 6.4022 0.0 -ConsistencyChecks_218 6.47 6.30954 0.0 -ConsistencyChecks_262 6.4 5.57612 0.0 -ConsistencyChecks_171 6.93 7.00434 0.0 -ConsistencyChecks_282 7.85 7.61206 0.0 -ConsistencyChecks_267 6.75 7.99117 0.0 -ConsistencyChecks_158 5.09 7.21985 0.0 -ConsistencyChecks_016 5.92 6.16032 0.0 -ConsistencyChecks_015 7.04 7.71771 0.0 -ConsistencyChecks_213 7.28 6.01088 0.0 -ConsistencyChecks_176 7.21 6.41804 0.0 -ConsistencyChecks_163 6.96 7.0902 0.0 -ConsistencyChecks_111 7.47 6.22993 0.0 -ConsistencyChecks_102 7.64 7.51414 0.0 -ConsistencyChecks_274 7.92 8.51522 0.0 -ConsistencyChecks_003 6.94 5.9459 0.0 -ConsistencyChecks_289 9.4 5.87701 0.0 -ConsistencyChecks_224 6.87 6.72461 0.0 -ConsistencyChecks_292 9.05 6.28393 0.0 -ConsistencyChecks_010 6.89 5.96024 0.0 -ConsistencyChecks_131 5.22 6.12057 0.0 -ConsistencyChecks_230 9.0 7.87374 0.0 -ConsistencyChecks_280 4.96 5.04507 0.0 -ConsistencyChecks_031 7.04 6.47222 0.0 -ConsistencyChecks_293 8.84 6.45516 0.0 -ConsistencyChecks_020 7.11 7.27606 0.0 -ConsistencyChecks_194 7.48 6.78031 0.0 -ConsistencyChecks_028 7.38 8.50345 0.0 -ConsistencyChecks_295 8.48 6.75974 1.0 -ConsistencyChecks_005 6.96 6.93817 1.0 -ConsistencyChecks_058 6.77 7.31255 1.0 -ConsistencyChecks_298 6.11 6.51032 1.0 -ConsistencyChecks_191 8.835 7.19266 1.0 -ConsistencyChecks_159 6.04 6.43748 1.0 -ConsistencyChecks_188 7.13 6.35075 1.0 -ConsistencyChecks_120 9.345 7.68511 1.0 -ConsistencyChecks_024 6.66 7.17951 1.0 -ConsistencyChecks_089 8.6 8.38017 1.0 -ConsistencyChecks_073 7.75 6.3645 1.0 -ConsistencyChecks_151 7.79 7.15501 1.0 -ConsistencyChecks_193 6.68 7.44348 1.0 -ConsistencyChecks_157 6.54 6.06812 1.0 -ConsistencyChecks_006 7.24 7.63737 1.0 -ConsistencyChecks_184 7.27 7.38798 1.0 -ConsistencyChecks_122 8.4 7.34102 1.0 -ConsistencyChecks_027 7.775 6.93287 1.0 -ConsistencyChecks_252 5.7 6.78323 1.0 -ConsistencyChecks_206 6.26 6.33882 1.0 -ConsistencyChecks_222 7.03 6.43695 1.0 -ConsistencyChecks_168 4.53 7.19812 1.0 -ConsistencyChecks_046 9.7 8.04878 1.0 -ConsistencyChecks_142 6.52 6.61385 1.0 -ConsistencyChecks_287 7.04 6.84027 1.0 -ConsistencyChecks_183 4.89 6.19598 1.0 -ConsistencyChecks_268 5.36 5.41472 1.0 -ConsistencyChecks_141 7.07 8.66105 1.0 -ConsistencyChecks_139 5.17 5.87292 1.0 -ConsistencyChecks_050 6.13 6.10986 1.0 -ConsistencyChecks_039 7.12 7.06167 1.0 -ConsistencyChecks_023 6.1 5.5112 1.0 -ConsistencyChecks_205 8.71 8.70674 1.0 -ConsistencyChecks_258 5.42 6.48882 1.0 -ConsistencyChecks_189 6.43 7.25933 1.0 -ConsistencyChecks_208 6.62 8.41197 1.0 -ConsistencyChecks_146 5.18 6.37353 1.0 -ConsistencyChecks_279 8.7 7.99914 1.0 -ConsistencyChecks_244 7.32 6.83395 1.0 -ConsistencyChecks_288 6.58 6.22393 1.0 -ConsistencyChecks_241 6.59 7.10257 1.0 -ConsistencyChecks_129 5.34 5.53574 1.0 -ConsistencyChecks_152 6.67 7.85415 1.0 -ConsistencyChecks_086 6.18 7.04634 1.0 -ConsistencyChecks_110 6.64 6.46194 1.0 -ConsistencyChecks_088 5.11 6.10867 1.0 -ConsistencyChecks_217 8.52 7.15584 1.0 -ConsistencyChecks_099 8.28 7.06804 1.0 -ConsistencyChecks_043 7.3 5.59541 2.0 -ConsistencyChecks_165 6.68 7.25732 2.0 -ConsistencyChecks_153 5.31 6.76613 2.0 -ConsistencyChecks_045 7.4 7.77999 2.0 -ConsistencyChecks_147 9.14538 8.09041 2.0 -ConsistencyChecks_299 7.6 6.90406 2.0 -ConsistencyChecks_135 5.4 6.77235 2.0 -ConsistencyChecks_148 5.85 7.18801 2.0 -ConsistencyChecks_260 5.51 6.08268 2.0 -ConsistencyChecks_172 5.8 6.68951 2.0 -ConsistencyChecks_095 7.46 7.56416 2.0 -ConsistencyChecks_245 6.31 6.56372 2.0 -ConsistencyChecks_094 6.53 6.71751 2.0 -ConsistencyChecks_187 4.37 6.91715 2.0 -ConsistencyChecks_195 7.48 7.86416 2.0 -ConsistencyChecks_011 7.29 8.40813 2.0 -ConsistencyChecks_035 6.745 6.09855 2.0 -ConsistencyChecks_128 8.34 8.29834 2.0 -ConsistencyChecks_237 8.31 7.15227 2.0 -ConsistencyChecks_114 6.5 6.98878 2.0 -ConsistencyChecks_283 8.17 7.9706 2.0 -ConsistencyChecks_174 6.96 5.96321 2.0 -ConsistencyChecks_049 9.1 8.65082 2.0 -ConsistencyChecks_200 8.19 7.70397 2.0 -ConsistencyChecks_149 6.25 6.10189 2.0 -ConsistencyChecks_220 5.18 6.42642 2.0 -ConsistencyChecks_204 5.375 5.3359 2.0 -ConsistencyChecks_082 5.0 6.04768 2.0 -ConsistencyChecks_109 6.45 6.87502 2.0 -ConsistencyChecks_096 7.102 7.02249 2.0 -ConsistencyChecks_132 7.24 6.72198 2.0 -ConsistencyChecks_029 8.92 7.68124 2.0 -ConsistencyChecks_178 7.6 7.752 2.0 -ConsistencyChecks_164 8.33 8.64226 2.0 -ConsistencyChecks_059 7.58 7.27794 2.0 -ConsistencyChecks_182 5.65 6.46499 2.0 -ConsistencyChecks_126 7.37 7.36162 2.0 -ConsistencyChecks_278 6.46 6.39293 2.0 -ConsistencyChecks_063 6.24 6.64729 2.0 -ConsistencyChecks_093 6.7 6.83846 2.0 -ConsistencyChecks_167 6.66 7.07747 2.0 -ConsistencyChecks_273 7.88 6.75283 2.0 -ConsistencyChecks_078 6.65 7.31557 2.0 -ConsistencyChecks_214 5.22 7.33499 2.0 -ConsistencyChecks_269 7.1 7.96814 2.0 -ConsistencyChecks_143 6.41 6.90497 2.0 -ConsistencyChecks_124 6.93 6.62652 2.0 -ConsistencyChecks_055 7.07 6.03404 2.0 -ConsistencyChecks_053 5.46 7.33764 3.0 -ConsistencyChecks_186 5.01 7.51176 3.0 -ConsistencyChecks_297 8.3 7.09631 3.0 -ConsistencyChecks_179 7.0 5.52984 3.0 -ConsistencyChecks_246 6.52 6.41159 3.0 -ConsistencyChecks_075 6.06 7.28736 3.0 -ConsistencyChecks_253 7.79 6.87631 3.0 -ConsistencyChecks_215 5.01 6.44364 3.0 -ConsistencyChecks_219 4.62 6.36525 3.0 -ConsistencyChecks_150 7.64 6.43591 3.0 -ConsistencyChecks_140 6.0 7.69965 3.0 -ConsistencyChecks_190 9.15 8.45676 3.0 -ConsistencyChecks_004 7.01 8.28876 3.0 -ConsistencyChecks_052 6.69 7.77893 3.0 -ConsistencyChecks_210 6.4 6.884 3.0 -ConsistencyChecks_271 5.31 7.12538 3.0 -ConsistencyChecks_261 5.82 6.43873 3.0 -ConsistencyChecks_125 5.65 6.76176 3.0 -ConsistencyChecks_175 8.72 8.52426 3.0 -ConsistencyChecks_013 5.82 5.75906 3.0 -ConsistencyChecks_144 7.76 6.71744 3.0 -ConsistencyChecks_137 8.15 7.43134 3.0 -ConsistencyChecks_101 6.99091 6.67865 3.0 -ConsistencyChecks_032 4.2 6.3658 3.0 -ConsistencyChecks_145 8.19 6.83765 3.0 -ConsistencyChecks_108 7.17 6.59321 3.0 -ConsistencyChecks_060 6.46 6.76791 3.0 -ConsistencyChecks_090 5.43 6.69952 3.0 -ConsistencyChecks_133 6.79 6.72293 3.0 -ConsistencyChecks_285 5.27 5.97739 3.0 -ConsistencyChecks_281 8.03 7.79095 3.0 -ConsistencyChecks_079 4.85 5.52791 3.0 -ConsistencyChecks_119 8.35 8.18486 3.0 -ConsistencyChecks_138 6.94 6.89528 3.0 -ConsistencyChecks_272 4.99 8.17512 3.0 -ConsistencyChecks_286 8.7 8.28915 3.0 -ConsistencyChecks_085 6.38 6.68118 3.0 -ConsistencyChecks_266 7.54 6.87623 3.0 -ConsistencyChecks_061 6.42 6.08514 3.0 -ConsistencyChecks_250 6.93 6.23146 3.0 -ConsistencyChecks_034 7.01 7.34375 3.0 -ConsistencyChecks_234 5.86 6.88604 3.0 -ConsistencyChecks_201 7.34 8.2588 3.0 -ConsistencyChecks_107 5.96 6.51878 3.0 -ConsistencyChecks_291 5.97 6.84193 3.0 -ConsistencyChecks_069 6.05 6.75803 3.0 -ConsistencyChecks_263 7.0 6.99158 3.0 -ConsistencyChecks_026 4.38 5.89804 3.0 -ConsistencyChecks_076 8.52 6.93034 4.0 -ConsistencyChecks_212 9.22 8.52787 4.0 -ConsistencyChecks_185 8.89 8.35116 4.0 -ConsistencyChecks_199 6.88 6.54863 4.0 -ConsistencyChecks_290 7.27 8.57297 4.0 -ConsistencyChecks_255 7.52 7.49567 4.0 -ConsistencyChecks_025 6.46 7.44625 4.0 -ConsistencyChecks_257 8.24 6.9415 4.0 -ConsistencyChecks_030 7.51 7.11318 4.0 -ConsistencyChecks_173 7.8 6.95695 4.0 -ConsistencyChecks_098 6.47 8.06528 4.0 -ConsistencyChecks_112 7.32 6.16537 4.0 -ConsistencyChecks_251 7.75 6.31968 4.0 -ConsistencyChecks_022 6.16 6.0126 4.0 -ConsistencyChecks_248 7.4 8.61353 4.0 -ConsistencyChecks_080 5.61 5.77958 4.0 -ConsistencyChecks_104 8.03 8.1145 4.0 -ConsistencyChecks_221 5.93 7.31553 4.0 -ConsistencyChecks_136 5.225 5.43922 4.0 -ConsistencyChecks_121 6.11 5.92702 4.0 -ConsistencyChecks_247 6.92 5.4227 4.0 -ConsistencyChecks_041 6.1 5.98001 4.0 -ConsistencyChecks_068 7.96 7.74676 4.0 -ConsistencyChecks_203 6.35 7.69805 4.0 -ConsistencyChecks_002 7.88 7.48915 4.0 -ConsistencyChecks_198 7.65 9.45334 4.0 -ConsistencyChecks_202 6.33 6.06785 4.0 -ConsistencyChecks_007 6.34 6.49108 4.0 -ConsistencyChecks_019 7.0 6.69946 4.0 -ConsistencyChecks_037 6.6 6.89492 4.0 -ConsistencyChecks_048 8.32 8.42831 4.0 -ConsistencyChecks_081 8.79 7.40421 4.0 -ConsistencyChecks_236 7.77 7.18973 4.0 -ConsistencyChecks_223 5.12 6.1714 4.0 -ConsistencyChecks_000 5.77 6.00847 4.0 -ConsistencyChecks_092 7.35 5.42272 4.0 -ConsistencyChecks_196 7.44 8.01139 4.0 -ConsistencyChecks_065 9.4 8.98782 4.0 -ConsistencyChecks_047 5.76 7.58443 4.0 -ConsistencyChecks_118 8.54 9.36094 4.0 -ConsistencyChecks_017 6.57 7.07068 4.0 -ConsistencyChecks_232 6.22 6.7405 4.0 -ConsistencyChecks_239 7.48 7.3009 4.0 -ConsistencyChecks_240 4.75 6.18581 4.0 -ConsistencyChecks_243 5.63 5.50179 4.0 -ConsistencyChecks_127 7.96 7.50592 4.0 -ConsistencyChecks_054 9.23 6.43774 4.0 -ConsistencyChecks_161 7.82 7.2169 4.0 +ConsistencyChecks_057 9.085 8.7261 0.0 +ConsistencyChecks_166 9.71 7.7044 0.0 +ConsistencyChecks_040 7.52 7.4613 0.0 +ConsistencyChecks_097 7.82 7.84855 0.0 +ConsistencyChecks_056 5.37 7.0159 0.0 +ConsistencyChecks_242 7.52 7.23295 0.0 +ConsistencyChecks_181 5.32 6.34355 0.0 +ConsistencyChecks_021 5.89 6.1554 0.0 +ConsistencyChecks_277 7.09 5.6035 0.0 +ConsistencyChecks_117 6.42 7.2486 0.0 +ConsistencyChecks_018 9.37 8.5722 0.0 +ConsistencyChecks_229 6.62 6.01962 0.0 +ConsistencyChecks_265 6.86 5.0718 0.0 +ConsistencyChecks_130 8.7 9.07195 0.0 +ConsistencyChecks_270 6.57 6.4532 0.0 +ConsistencyChecks_296 9.555 8.7358 0.0 +ConsistencyChecks_264 8.18 8.23535 0.0 +ConsistencyChecks_275 5.66 5.5361 0.0 +ConsistencyChecks_134 7.44 6.1737 0.0 +ConsistencyChecks_014 5.99 6.93282 0.0 +ConsistencyChecks_106 9.0 7.5573 0.0 +ConsistencyChecks_218 6.47 6.39295 0.0 +ConsistencyChecks_262 6.4 4.9573 0.0 +ConsistencyChecks_171 6.93 7.3718 0.0 +ConsistencyChecks_282 7.85 8.8805 0.0 +ConsistencyChecks_267 6.75 7.2304 0.0 +ConsistencyChecks_158 5.09 7.33731 0.0 +ConsistencyChecks_016 5.92 6.17544 0.0 +ConsistencyChecks_015 7.04 7.1721 0.0 +ConsistencyChecks_213 7.28 5.86965 0.0 +ConsistencyChecks_176 7.21 7.00445 0.0 +ConsistencyChecks_163 6.96 7.30229 0.0 +ConsistencyChecks_111 7.47 6.23 0.0 +ConsistencyChecks_102 7.64 8.3186 0.0 +ConsistencyChecks_274 7.92 8.76725 0.0 +ConsistencyChecks_003 6.94 5.56735 0.0 +ConsistencyChecks_289 9.4 6.69537 0.0 +ConsistencyChecks_224 6.87 6.70205 0.0 +ConsistencyChecks_292 9.05 7.9705 0.0 +ConsistencyChecks_010 6.89 5.6263 0.0 +ConsistencyChecks_131 5.22 6.10035 0.0 +ConsistencyChecks_230 9.0 7.9373 0.0 +ConsistencyChecks_280 4.96 5.3496 0.0 +ConsistencyChecks_031 7.04 6.36431 0.0 +ConsistencyChecks_293 8.84 6.73907 0.0 +ConsistencyChecks_020 7.11 5.2735 0.0 +ConsistencyChecks_194 7.48 6.7932 0.0 +ConsistencyChecks_028 7.38 8.37193 0.0 +ConsistencyChecks_295 8.48 7.62576 1.0 +ConsistencyChecks_005 6.96 8.24795 1.0 +ConsistencyChecks_058 6.77 7.8285 1.0 +ConsistencyChecks_298 6.11 7.62614 1.0 +ConsistencyChecks_191 8.835 7.2194 1.0 +ConsistencyChecks_159 6.04 6.0382 1.0 +ConsistencyChecks_188 7.13 6.3946 1.0 +ConsistencyChecks_120 9.345 6.70735 1.0 +ConsistencyChecks_024 6.66 7.3819 1.0 +ConsistencyChecks_089 8.6 7.45465 1.0 +ConsistencyChecks_073 7.75 7.4308 1.0 +ConsistencyChecks_151 7.79 7.4953 1.0 +ConsistencyChecks_193 6.68 7.5775 1.0 +ConsistencyChecks_157 6.54 7.3409 1.0 +ConsistencyChecks_006 7.24 7.10455 1.0 +ConsistencyChecks_184 7.27 7.14 1.0 +ConsistencyChecks_122 8.4 7.5206 1.0 +ConsistencyChecks_027 7.775 7.03042 1.0 +ConsistencyChecks_252 5.7 7.7139 1.0 +ConsistencyChecks_206 6.26 5.84742 1.0 +ConsistencyChecks_222 7.03 6.74884 1.0 +ConsistencyChecks_168 4.53 7.5937 1.0 +ConsistencyChecks_046 9.7 8.4449 1.0 +ConsistencyChecks_142 6.52 6.2445 1.0 +ConsistencyChecks_287 7.04 7.5042 1.0 +ConsistencyChecks_183 4.89 7.1182 1.0 +ConsistencyChecks_268 5.36 5.28995 1.0 +ConsistencyChecks_141 7.07 8.4715 1.0 +ConsistencyChecks_139 5.17 5.8711 1.0 +ConsistencyChecks_050 6.13 7.4288 1.0 +ConsistencyChecks_039 7.12 6.72 1.0 +ConsistencyChecks_023 6.1 5.95192 1.0 +ConsistencyChecks_205 8.71 7.55215 1.0 +ConsistencyChecks_258 5.42 6.0126 1.0 +ConsistencyChecks_189 6.43 7.06132 1.0 +ConsistencyChecks_208 6.62 8.07592 1.0 +ConsistencyChecks_146 5.18 6.8772 1.0 +ConsistencyChecks_279 8.7 7.25159 1.0 +ConsistencyChecks_244 7.32 6.4042 1.0 +ConsistencyChecks_288 6.58 6.32252 1.0 +ConsistencyChecks_241 6.59 8.0687 1.0 +ConsistencyChecks_129 5.34 5.8685 1.0 +ConsistencyChecks_152 6.67 6.92226 1.0 +ConsistencyChecks_086 6.18 7.0144 1.0 +ConsistencyChecks_110 6.64 6.3628 1.0 +ConsistencyChecks_088 5.11 6.37821 1.0 +ConsistencyChecks_217 8.52 7.507 1.0 +ConsistencyChecks_099 8.28 6.947 1.0 +ConsistencyChecks_043 7.3 6.86313 2.0 +ConsistencyChecks_165 6.68 7.14541 2.0 +ConsistencyChecks_153 5.31 7.12817 2.0 +ConsistencyChecks_045 7.4 7.86465 2.0 +ConsistencyChecks_147 9.14538 7.8154 2.0 +ConsistencyChecks_299 7.6 7.0886 2.0 +ConsistencyChecks_135 5.4 5.1792 2.0 +ConsistencyChecks_148 5.85 6.5335 2.0 +ConsistencyChecks_260 5.51 6.06513 2.0 +ConsistencyChecks_172 5.8 7.98755 2.0 +ConsistencyChecks_095 7.46 6.7134 2.0 +ConsistencyChecks_245 6.31 6.53552 2.0 +ConsistencyChecks_094 6.53 6.9036 2.0 +ConsistencyChecks_187 4.37 7.0465 2.0 +ConsistencyChecks_195 7.48 7.5456 2.0 +ConsistencyChecks_011 7.29 8.40805 2.0 +ConsistencyChecks_035 6.745 5.9856 2.0 +ConsistencyChecks_128 8.34 9.02325 2.0 +ConsistencyChecks_237 8.31 7.52115 2.0 +ConsistencyChecks_114 6.5 6.67213 2.0 +ConsistencyChecks_283 8.17 7.8702 2.0 +ConsistencyChecks_174 6.96 5.3431 2.0 +ConsistencyChecks_049 9.1 9.20435 2.0 +ConsistencyChecks_200 8.19 8.41582 2.0 +ConsistencyChecks_149 6.25 6.1221 2.0 +ConsistencyChecks_220 5.18 6.4167 2.0 +ConsistencyChecks_204 5.375 5.258 2.0 +ConsistencyChecks_082 5.0 5.65505 2.0 +ConsistencyChecks_109 6.45 8.1109 2.0 +ConsistencyChecks_096 7.102 6.6313 2.0 +ConsistencyChecks_132 7.24 7.3726 2.0 +ConsistencyChecks_029 8.92 6.82115 2.0 +ConsistencyChecks_178 7.6 6.7519 2.0 +ConsistencyChecks_164 8.33 7.62165 2.0 +ConsistencyChecks_059 7.58 8.4279 2.0 +ConsistencyChecks_182 5.65 6.47795 2.0 +ConsistencyChecks_126 7.37 7.774 2.0 +ConsistencyChecks_278 6.46 6.7081 2.0 +ConsistencyChecks_063 6.24 8.0735 2.0 +ConsistencyChecks_093 6.7 6.1967 2.0 +ConsistencyChecks_167 6.66 7.0283 2.0 +ConsistencyChecks_273 7.88 6.2197 2.0 +ConsistencyChecks_078 6.65 7.3318 2.0 +ConsistencyChecks_214 5.22 6.57266 2.0 +ConsistencyChecks_269 7.1 7.3603 2.0 +ConsistencyChecks_143 6.41 7.35445 2.0 +ConsistencyChecks_124 6.93 6.379 2.0 +ConsistencyChecks_055 7.07 6.7221 2.0 +ConsistencyChecks_053 5.46 7.51082 3.0 +ConsistencyChecks_186 5.01 6.44605 3.0 +ConsistencyChecks_297 8.3 7.3616 3.0 +ConsistencyChecks_179 7.0 6.82562 3.0 +ConsistencyChecks_246 6.52 6.6364 3.0 +ConsistencyChecks_075 6.06 8.1109 3.0 +ConsistencyChecks_253 7.79 6.64445 3.0 +ConsistencyChecks_215 5.01 6.33695 3.0 +ConsistencyChecks_219 4.62 6.0861 3.0 +ConsistencyChecks_150 7.64 6.92205 3.0 +ConsistencyChecks_140 6.0 7.28147 3.0 +ConsistencyChecks_190 9.15 8.34265 3.0 +ConsistencyChecks_004 7.01 8.3503 3.0 +ConsistencyChecks_052 6.69 8.69075 3.0 +ConsistencyChecks_210 6.4 6.5547 3.0 +ConsistencyChecks_271 5.31 7.79755 3.0 +ConsistencyChecks_261 5.82 6.2347 3.0 +ConsistencyChecks_125 5.65 7.0446 3.0 +ConsistencyChecks_175 8.72 8.74955 3.0 +ConsistencyChecks_013 5.82 6.17825 3.0 +ConsistencyChecks_144 7.76 6.6992 3.0 +ConsistencyChecks_137 8.15 8.18563 3.0 +ConsistencyChecks_101 6.99091 6.49212 3.0 +ConsistencyChecks_032 4.2 8.0771 3.0 +ConsistencyChecks_145 8.19 7.5794 3.0 +ConsistencyChecks_108 7.17 7.4103 3.0 +ConsistencyChecks_060 6.46 6.44965 3.0 +ConsistencyChecks_090 5.43 7.0337 3.0 +ConsistencyChecks_133 6.79 6.6786 3.0 +ConsistencyChecks_285 5.27 6.32585 3.0 +ConsistencyChecks_281 8.03 8.2782 3.0 +ConsistencyChecks_079 4.85 5.1473 3.0 +ConsistencyChecks_119 8.35 9.12785 3.0 +ConsistencyChecks_138 6.94 7.2971 3.0 +ConsistencyChecks_272 4.99 8.11205 3.0 +ConsistencyChecks_286 8.7 7.4246 3.0 +ConsistencyChecks_085 6.38 6.3305 3.0 +ConsistencyChecks_266 7.54 8.25997 3.0 +ConsistencyChecks_061 6.42 6.86025 3.0 +ConsistencyChecks_250 6.93 6.13942 3.0 +ConsistencyChecks_034 7.01 6.6499 3.0 +ConsistencyChecks_234 5.86 6.5492 3.0 +ConsistencyChecks_201 7.34 8.116 3.0 +ConsistencyChecks_107 5.96 6.5269 3.0 +ConsistencyChecks_291 5.97 6.8773 3.0 +ConsistencyChecks_069 6.05 6.66275 3.0 +ConsistencyChecks_263 7.0 7.75835 3.0 +ConsistencyChecks_026 4.38 6.5099 3.0 +ConsistencyChecks_076 8.52 7.0073 4.0 +ConsistencyChecks_212 9.22 8.7067 4.0 +ConsistencyChecks_185 8.89 8.8054 4.0 +ConsistencyChecks_199 6.88 6.8993 4.0 +ConsistencyChecks_290 7.27 9.40615 4.0 +ConsistencyChecks_255 7.52 7.1154 4.0 +ConsistencyChecks_025 6.46 6.6786 4.0 +ConsistencyChecks_257 8.24 6.78135 4.0 +ConsistencyChecks_030 7.51 6.95945 4.0 +ConsistencyChecks_173 7.8 6.8212 4.0 +ConsistencyChecks_098 6.47 7.675 4.0 +ConsistencyChecks_112 7.32 5.90995 4.0 +ConsistencyChecks_251 7.75 6.5816 4.0 +ConsistencyChecks_022 6.16 5.5006 4.0 +ConsistencyChecks_248 7.4 9.0892 4.0 +ConsistencyChecks_080 5.61 5.3181 4.0 +ConsistencyChecks_104 8.03 8.1228 4.0 +ConsistencyChecks_221 5.93 6.4058 4.0 +ConsistencyChecks_136 5.225 5.40135 4.0 +ConsistencyChecks_121 6.11 5.3973 4.0 +ConsistencyChecks_247 6.92 4.37 4.0 +ConsistencyChecks_041 6.1 5.64965 4.0 +ConsistencyChecks_068 7.96 9.10505 4.0 +ConsistencyChecks_203 6.35 7.38495 4.0 +ConsistencyChecks_002 7.88 6.72698 4.0 +ConsistencyChecks_198 7.65 9.4776 4.0 +ConsistencyChecks_202 6.33 6.8893 4.0 +ConsistencyChecks_007 6.34 6.035 4.0 +ConsistencyChecks_019 7.0 7.1944 4.0 +ConsistencyChecks_037 6.6 6.6607 4.0 +ConsistencyChecks_048 8.32 8.0858 4.0 +ConsistencyChecks_081 8.79 6.3773 4.0 +ConsistencyChecks_236 7.77 7.1835 4.0 +ConsistencyChecks_223 5.12 5.99215 4.0 +ConsistencyChecks_000 5.77 6.39479 4.0 +ConsistencyChecks_092 7.35 4.37 4.0 +ConsistencyChecks_196 7.44 8.544 4.0 +ConsistencyChecks_065 9.4 9.12205 4.0 +ConsistencyChecks_047 5.76 7.817 4.0 +ConsistencyChecks_118 8.54 8.7056 4.0 +ConsistencyChecks_017 6.57 7.0531 4.0 +ConsistencyChecks_232 6.22 9.2481 4.0 +ConsistencyChecks_239 7.48 6.4081 4.0 +ConsistencyChecks_240 4.75 5.35626 4.0 +ConsistencyChecks_243 5.63 5.6207 4.0 +ConsistencyChecks_127 7.96 6.4496 4.0 +ConsistencyChecks_054 9.23 5.7668 4.0 +ConsistencyChecks_161 7.82 7.1689 4.0 diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327.ind.tsv b/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327.ind.tsv index f58c5259..77ecd8d6 100644 --- a/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327.ind.tsv +++ b/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327.ind.tsv @@ -1,61 +1,61 @@ QSPRID pchembl_value_Mean_Label pchembl_value_Mean_Prediction -ConsistencyChecks_249 5.94 6.44725 -ConsistencyChecks_238 6.37 6.74216 -ConsistencyChecks_197 7.66 6.59327 -ConsistencyChecks_036 7.88 6.59651 -ConsistencyChecks_177 7.61 6.056 -ConsistencyChecks_254 6.2475 6.69754 -ConsistencyChecks_226 6.77 5.86827 -ConsistencyChecks_155 6.43 7.02132 -ConsistencyChecks_211 8.22 7.12314 -ConsistencyChecks_012 7.24 7.01073 -ConsistencyChecks_192 5.04 6.21819 -ConsistencyChecks_156 5.97 5.35271 -ConsistencyChecks_038 6.98 7.54889 -ConsistencyChecks_064 6.3 6.3207 -ConsistencyChecks_070 6.69 6.56501 -ConsistencyChecks_077 6.7 6.15736 -ConsistencyChecks_001 6.64 6.85571 -ConsistencyChecks_062 6.56 6.72293 -ConsistencyChecks_228 7.03 8.85968 -ConsistencyChecks_009 7.08 6.59844 -ConsistencyChecks_100 8.72 8.49998 -ConsistencyChecks_233 6.69 7.28546 -ConsistencyChecks_072 6.23 6.80491 -ConsistencyChecks_116 7.3 7.39091 -ConsistencyChecks_105 5.84 7.49641 -ConsistencyChecks_160 5.89 5.50213 -ConsistencyChecks_042 6.5 6.83326 -ConsistencyChecks_044 4.66667 6.37867 -ConsistencyChecks_169 7.32 6.83755 -ConsistencyChecks_162 7.06 6.09169 -ConsistencyChecks_227 7.92 7.85022 -ConsistencyChecks_115 5.17 7.19281 -ConsistencyChecks_071 5.95 7.33436 -ConsistencyChecks_235 4.95 6.33097 -ConsistencyChecks_067 6.0 6.77751 -ConsistencyChecks_087 5.57 7.61597 -ConsistencyChecks_294 8.54 7.4695 -ConsistencyChecks_276 5.24 5.37173 -ConsistencyChecks_154 5.54 6.01098 -ConsistencyChecks_207 9.92 7.40954 -ConsistencyChecks_225 6.97 7.42665 -ConsistencyChecks_103 4.47 6.88775 -ConsistencyChecks_259 5.48 6.99571 -ConsistencyChecks_209 7.48 7.20783 -ConsistencyChecks_180 6.08 6.87077 -ConsistencyChecks_074 7.07 7.8056 -ConsistencyChecks_066 6.39667 6.02305 -ConsistencyChecks_083 6.0 6.85906 -ConsistencyChecks_170 7.0 7.73509 -ConsistencyChecks_084 6.21 6.65129 -ConsistencyChecks_051 5.01 7.73814 -ConsistencyChecks_123 8.13 7.48334 -ConsistencyChecks_216 6.76 6.06756 -ConsistencyChecks_033 5.4 7.23499 -ConsistencyChecks_231 6.72 6.3501 -ConsistencyChecks_256 7.31 6.74457 -ConsistencyChecks_284 7.08 7.61294 -ConsistencyChecks_091 5.16 6.36689 -ConsistencyChecks_113 7.04 7.07436 -ConsistencyChecks_008 9.0 8.5723 +ConsistencyChecks_249 5.94 6.495 +ConsistencyChecks_238 6.37 7.9178 +ConsistencyChecks_197 7.66 6.8914 +ConsistencyChecks_036 7.88 6.64225 +ConsistencyChecks_177 7.61 6.98205 +ConsistencyChecks_254 6.2475 6.4355 +ConsistencyChecks_226 6.77 6.2445 +ConsistencyChecks_155 6.43 7.4348 +ConsistencyChecks_211 8.22 7.9628 +ConsistencyChecks_012 7.24 7.6004 +ConsistencyChecks_192 5.04 6.4103 +ConsistencyChecks_156 5.97 6.51395 +ConsistencyChecks_038 6.98 6.4679 +ConsistencyChecks_064 6.3 4.9071 +ConsistencyChecks_070 6.69 7.67995 +ConsistencyChecks_077 6.7 6.4253 +ConsistencyChecks_001 6.64 7.0799 +ConsistencyChecks_062 6.56 7.0275 +ConsistencyChecks_228 7.03 8.9523 +ConsistencyChecks_009 7.08 6.62985 +ConsistencyChecks_100 8.72 8.86395 +ConsistencyChecks_233 6.69 6.40436 +ConsistencyChecks_072 6.23 7.59326 +ConsistencyChecks_116 7.3 7.1548 +ConsistencyChecks_105 5.84 6.99039 +ConsistencyChecks_160 5.89 5.3699 +ConsistencyChecks_042 6.5 6.7877 +ConsistencyChecks_044 4.66667 5.7019 +ConsistencyChecks_169 7.32 7.1465 +ConsistencyChecks_162 7.06 6.7799 +ConsistencyChecks_227 7.92 6.6962 +ConsistencyChecks_115 5.17 6.6611 +ConsistencyChecks_071 5.95 8.05466 +ConsistencyChecks_235 4.95 5.0998 +ConsistencyChecks_067 6.0 7.2805 +ConsistencyChecks_087 5.57 5.3186 +ConsistencyChecks_294 8.54 7.81805 +ConsistencyChecks_276 5.24 6.8947 +ConsistencyChecks_154 5.54 7.3506 +ConsistencyChecks_207 9.92 8.75727 +ConsistencyChecks_225 6.97 8.39898 +ConsistencyChecks_103 4.47 6.72115 +ConsistencyChecks_259 5.48 7.36575 +ConsistencyChecks_209 7.48 7.6634 +ConsistencyChecks_180 6.08 6.89 +ConsistencyChecks_074 7.07 8.2022 +ConsistencyChecks_066 6.39667 5.38595 +ConsistencyChecks_083 6.0 6.5811 +ConsistencyChecks_170 7.0 7.6537 +ConsistencyChecks_084 6.21 6.87313 +ConsistencyChecks_051 5.01 7.45436 +ConsistencyChecks_123 8.13 7.96815 +ConsistencyChecks_216 6.76 7.3925 +ConsistencyChecks_033 5.4 6.68122 +ConsistencyChecks_231 6.72 6.808 +ConsistencyChecks_256 7.31 8.15952 +ConsistencyChecks_284 7.08 7.1141 +ConsistencyChecks_091 5.16 5.724 +ConsistencyChecks_113 7.04 6.6884 +ConsistencyChecks_008 9.0 8.431 diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327.json b/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327.json index bde9faaf..706c091a 100644 --- a/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327.json +++ b/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327.json @@ -1 +1 @@ -{"unfitted": true, "meta": ["xgboost.sklearn", "XGBRegressor"], "params": {"objective": "reg:squarederror", "base_score": null, "booster": null, "callbacks": null, "colsample_bylevel": null, "colsample_bynode": null, "colsample_bytree": null, "device": null, "early_stopping_rounds": null, "enable_categorical": false, "eval_metric": null, "feature_types": null, "gamma": null, "grow_policy": null, "importance_type": null, "interaction_constraints": null, "learning_rate": null, "max_bin": null, "max_cat_threshold": null, "max_cat_to_onehot": null, "max_delta_step": null, "max_depth": null, "max_leaves": null, "min_child_weight": null, "missing": NaN, "monotone_constraints": null, "multi_strategy": null, "n_estimators": null, "n_jobs": null, "num_parallel_tree": null, "random_state": null, "reg_alpha": null, "reg_lambda": null, "sampling_method": null, "scale_pos_weight": null, "subsample": null, "tree_method": null, "validate_parameters": null, "verbosity": null, "seed": 478163327}, "versions": ["xgboost", "2.0.1"]} \ No newline at end of file +{"unfitted": true, "meta": ["sklearn.ensemble._forest", "ExtraTreesRegressor"], "params": {"bootstrap": false, "ccp_alpha": 0.0, "criterion": "squared_error", "max_depth": null, "max_features": 1.0, "max_leaf_nodes": null, "max_samples": null, "min_impurity_decrease": 0.0, "min_samples_leaf": 1, "min_samples_split": 2, "min_weight_fraction_leaf": 0.0, "monotonic_cst": null, "n_estimators": 100, "n_jobs": null, "oob_score": false, "random_state": 478163327, "verbose": 0, "warm_start": false}, "versions": ["sklearn", "1.4.0"]} \ No newline at end of file diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327_meta.json b/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327_meta.json index 1d372d20..8872eb18 100644 --- a/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327_meta.json +++ b/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327_meta.json @@ -20,540 +20,527 @@ } ] }, - "transformer": null, - "imputer": null + "imputer": null, + "transformer": null } } ], "nTargets": 1, "featureCalculators": [ { - "py/object": "qsprpred.data.descriptors.calculators.MoleculeDescriptorsCalculator", + "py/object": "qsprpred.data.descriptors.fingerprints.MorganFP", "py/state": { - "descSets": [ - { - "py/object": "qsprpred.data.descriptors.sets.FingerprintSet", - "py/state": { - "_isFP": true, - "fingerprintType": "MorganFP", - "_args": { - "py/tuple": [] - }, - "_kwargs": { - "radius": 2, - "nBits": 256 - }, - "_keepindices": [ - 0, - 1, - 2, - 3, - 4, - 5, - 7, - 8, - 9, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 65, - 66, - 67, - 68, - 69, - 71, - 72, - 73, - 74, - 75, - 77, - 79, - 80, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 99, - 101, - 102, - 103, - 104, - 105, - 106, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 172, - 173, - 174, - 175, - 177, - 178, - 179, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 221, - 226, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 237, - 239, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 254, - 255 - ], - "descriptors": [ - "0", - "1", - "2", - "3", - "4", - "5", - "7", - "8", - "9", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "35", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "65", - "66", - "67", - "68", - "69", - "71", - "72", - "73", - "74", - "75", - "77", - "79", - "80", - "82", - "83", - "84", - "85", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "96", - "99", - "101", - "102", - "103", - "104", - "105", - "106", - "108", - "109", - "110", - "111", - "112", - "113", - "114", - "115", - "117", - "118", - "119", - "120", - "121", - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "144", - "145", - "146", - "147", - "148", - "149", - "150", - "151", - "152", - "153", - "154", - "155", - "156", - "157", - "158", - "160", - "161", - "162", - "163", - "164", - "165", - "166", - "167", - "168", - "169", - "170", - "172", - "173", - "174", - "175", - "177", - "178", - "179", - "182", - "183", - "184", - "185", - "186", - "187", - "188", - "189", - "191", - "192", - "193", - "194", - "195", - "196", - "197", - "198", - "199", - "200", - "201", - "202", - "203", - "204", - "205", - "206", - "207", - "208", - "209", - "210", - "211", - "212", - "213", - "214", - "215", - "216", - "217", - "218", - "219", - "221", - "226", - "228", - "229", - "230", - "231", - "232", - "233", - "234", - "235", - "237", - "239", - "241", - "242", - "243", - "244", - "245", - "246", - "247", - "248", - "249", - "250", - "251", - "252", - "254", - "255" - ] - } - }, - { - "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", - "py/state": { - "_isFP": false, - "_descriptors": [ - "BCUT2D_CHGLO", - "EState_VSA1", - "EState_VSA7", - "FractionCSP3", - "MaxAbsEStateIndex", - "MaxEStateIndex", - "MinPartialCharge", - "NumSaturatedHeterocycles", - "PEOE_VSA10", - "PEOE_VSA11", - "PEOE_VSA4", - "SlogP_VSA12", - "SlogP_VSA4", - "fr_ArN", - "fr_NH2", - "fr_Ndealkylation1", - "fr_aryl_methyl", - "fr_furan", - "fr_imidazole", - "fr_piperzine", - "fr_thiazole", - "fr_thiophene" - ], - "include3D": false, - "descriptors": [ - "BCUT2D_CHGLO", - "EState_VSA1", - "EState_VSA7", - "FractionCSP3", - "MaxAbsEStateIndex", - "MaxEStateIndex", - "MinPartialCharge", - "NumSaturatedHeterocycles", - "PEOE_VSA10", - "PEOE_VSA11", - "PEOE_VSA4", - "SlogP_VSA12", - "SlogP_VSA4", - "fr_ArN", - "fr_NH2", - "fr_Ndealkylation1", - "fr_aryl_methyl", - "fr_furan", - "fr_imidazole", - "fr_piperzine", - "fr_thiazole", - "fr_thiophene" - ] - } - } + "idProp": "QSPRID", + "_usedBits": [ + 0, + 1, + 2, + 3, + 4, + 5, + 7, + 8, + 9, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 65, + 66, + 67, + 68, + 69, + 71, + 72, + 73, + 74, + 75, + 77, + 79, + 80, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 99, + 101, + 102, + 103, + 104, + 105, + 106, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 172, + 173, + 174, + 175, + 177, + 178, + 179, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 221, + 226, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 237, + 239, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 254, + 255 ], - "noParallelization": false + "radius": 2, + "nBits": 256, + "kwargs": {}, + "descriptors": [ + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_77", + "MorganFP_79", + "MorganFP_80", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_99", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_221", + "MorganFP_226", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_237", + "MorganFP_239", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_254", + "MorganFP_255" + ] + } + }, + { + "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", + "py/state": { + "idProp": "QSPRID", + "_descriptors": [ + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA7", + "FractionCSP3", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "MinPartialCharge", + "NumSaturatedHeterocycles", + "PEOE_VSA10", + "PEOE_VSA11", + "PEOE_VSA4", + "SlogP_VSA12", + "SlogP_VSA4", + "fr_ArN", + "fr_NH2", + "fr_Ndealkylation1", + "fr_aryl_methyl", + "fr_furan", + "fr_imidazole", + "fr_piperzine", + "fr_thiazole", + "fr_thiophene" + ], + "include3D": false, + "descriptors": [ + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA7", + "FractionCSP3", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "MinPartialCharge", + "NumSaturatedHeterocycles", + "PEOE_VSA10", + "PEOE_VSA11", + "PEOE_VSA4", + "SlogP_VSA12", + "SlogP_VSA4", + "fr_ArN", + "fr_NH2", + "fr_Ndealkylation1", + "fr_aryl_methyl", + "fr_furan", + "fr_imidazole", + "fr_piperzine", + "fr_thiazole", + "fr_thiophene" + ] } } ], @@ -569,252 +556,252 @@ "with_std": true }, "var_": [ - 0.14164930555555574, - 0.11555555555555515, + 0.14164930555555552, + 0.11555555555555556, 0.069375, 0.1875, 0.05859375, 0.069375, - 0.23331597222222217, - 0.07638888888888883, - 0.09331597222222204, - 0.11859375000000028, - 0.06581597222222232, - 0.15493055555555543, - 0.09984374999999956, - 0.09659722222222238, - 0.10305555555555529, + 0.23331597222222225, + 0.07638888888888887, + 0.09331597222222224, + 0.11859375000000003, + 0.06581597222222221, + 0.15493055555555557, + 0.09984375000000001, + 0.09659722222222221, + 0.10305555555555553, 0.05859375, - 0.051232638888888966, - 0.18109375000000008, - 0.07638888888888877, - 0.1624826388888886, - 0.18956597222222177, - 0.14972222222222203, - 0.05493055555555547, - 0.19555555555555487, - 0.13326388888888865, - 0.0998437499999996, - 0.09659722222222232, - 0.06222222222222248, - 0.11248263888888912, - 0.05493055555555545, - 0.1895659722222217, - 0.1574826388888887, - 0.05123263888888906, - 0.19937500000000022, - 0.1303993055555562, - 0.07984375000000009, - 0.22623263888888878, - 0.13888888888888928, - 0.16972222222222216, - 0.08664930555555551, - 0.21326388888889009, - 0.12750000000000053, - 0.1549305555555554, - 0.24972222222222076, - 0.24234375, + 0.051232638888888876, + 0.18109375000000003, + 0.07638888888888887, + 0.1624826388888889, + 0.1895659722222222, + 0.14972222222222217, + 0.054930555555555545, + 0.19555555555555557, + 0.13326388888888893, + 0.09984375000000002, + 0.09659722222222221, + 0.06222222222222224, + 0.1124826388888889, + 0.05493055555555556, + 0.18956597222222224, + 0.1574826388888889, + 0.05123263888888887, + 0.19937500000000002, + 0.13039930555555557, + 0.07984375, + 0.22623263888888884, + 0.13888888888888887, + 0.16972222222222222, + 0.08664930555555556, + 0.21326388888888886, + 0.12749999999999997, + 0.15493055555555557, + 0.24972222222222223, + 0.24234374999999997, 0.24609375, 0.109375, - 0.14972222222222226, - 0.21326388888888997, - 0.05123263888888903, - 0.06937500000000006, - 0.051232638888889064, - 0.23999999999999888, - 0.14706597222222242, - 0.2222222222222226, - 0.1599999999999996, - 0.21937500000000068, - 0.17206597222222206, - 0.21789930555555573, - 0.07289930555555563, - 0.18956597222222177, - 0.2391493055555564, - 0.13326388888888865, - 0.18539930555555614, - 0.1624826388888885, - 0.1697222222222224, + 0.1497222222222222, + 0.21326388888888886, + 0.051232638888888876, + 0.06937499999999999, + 0.051232638888888876, + 0.24000000000000005, + 0.1470659722222222, + 0.2222222222222223, + 0.16000000000000003, + 0.219375, + 0.17206597222222222, + 0.21789930555555556, + 0.07289930555555556, + 0.18956597222222224, + 0.23914930555555555, + 0.1332638888888889, + 0.1853993055555555, + 0.1624826388888889, + 0.1697222222222222, 0.05859375, 0.15234375, 0.15234375, - 0.13326388888888865, - 0.2408159722222222, - 0.15999999999999956, - 0.16248263888888842, - 0.05493055555555542, - 0.062222222222222526, - 0.14164930555555572, - 0.23826388888888922, - 0.06937500000000009, - 0.10623263888888872, + 0.1332638888888889, + 0.24081597222222223, + 0.16000000000000006, + 0.16248263888888895, + 0.054930555555555545, + 0.06222222222222224, + 0.14164930555555552, + 0.23826388888888894, + 0.069375, + 0.10623263888888887, 0.109375, - 0.16493055555555616, - 0.24972222222222076, - 0.21000000000000077, - 0.09000000000000026, - 0.05123263888888897, - 0.06222222222222252, + 0.16493055555555552, + 0.24972222222222223, + 0.20999999999999996, + 0.09000000000000001, + 0.051232638888888876, + 0.06222222222222224, 0.1875, - 0.2391493055555565, - 0.20831597222222192, - 0.09331597222222197, - 0.1215972222222226, - 0.1416493055555556, - 0.1915972222222231, - 0.24826388888888856, + 0.23914930555555555, + 0.20831597222222223, + 0.09331597222222224, + 0.12159722222222223, + 0.14164930555555552, + 0.19159722222222222, + 0.24826388888888892, 0.05859375, - 0.08326388888888919, - 0.05123263888888904, - 0.0998437499999996, - 0.1697222222222222, - 0.12750000000000045, - 0.23331597222222217, - 0.09331597222222167, - 0.11248263888888912, - 0.24937500000000012, - 0.14437500000000014, - 0.1360937500000006, - 0.24159722222222238, + 0.08326388888888887, + 0.051232638888888876, + 0.09984375000000001, + 0.16972222222222222, + 0.12749999999999997, + 0.23331597222222225, + 0.09331597222222224, + 0.1124826388888889, + 0.24937499999999996, + 0.14437499999999998, + 0.13609374999999999, + 0.2415972222222222, 0.234375, 0.05859375, - 0.20305555555555602, - 0.16972222222222183, - 0.2485937499999997, - 0.09659722222222235, - 0.07289930555555593, - 0.2322222222222234, - 0.1955555555555549, - 0.11248263888888912, - 0.18326388888888945, - 0.07984375000000012, - 0.12456597222222182, - 0.06937499999999995, - 0.24859374999999978, - 0.13039930555555623, - 0.22081597222222218, - 0.1155555555555551, - 0.23109374999999988, - 0.09331597222222192, - 0.15493055555555543, - 0.24234374999999986, - 0.09000000000000037, - 0.14706597222222242, - 0.2493750000000001, - 0.0763888888888888, - 0.05493055555555544, - 0.07638888888888862, - 0.10623263888888838, - 0.06222222222222242, - 0.1332638888888887, - 0.05493055555555545, - 0.13039930555555615, - 0.21789930555555573, - 0.1599999999999996, - 0.24750000000000053, + 0.20305555555555557, + 0.1697222222222222, + 0.24859375000000003, + 0.09659722222222221, + 0.07289930555555557, + 0.23222222222222227, + 0.1955555555555556, + 0.11248263888888893, + 0.1832638888888889, + 0.07984375, + 0.12456597222222224, + 0.069375, + 0.24859375000000003, + 0.13039930555555557, + 0.2208159722222222, + 0.11555555555555556, + 0.23109374999999996, + 0.09331597222222224, + 0.15493055555555557, + 0.24234374999999997, + 0.09000000000000001, + 0.14706597222222217, + 0.24937499999999999, + 0.07638888888888887, + 0.05493055555555556, + 0.07638888888888888, + 0.10623263888888886, + 0.06222222222222224, + 0.13326388888888893, + 0.054930555555555545, + 0.13039930555555557, + 0.21789930555555556, + 0.16000000000000006, + 0.2475000000000001, 0.21484375, - 0.23638888888888848, - 0.22081597222222202, - 0.1853993055555562, - 0.2235937499999999, + 0.23638888888888887, + 0.2208159722222222, + 0.1853993055555555, + 0.22359375, 0.15234375, - 0.06222222222222229, - 0.1832638888888897, - 0.19159722222222306, - 0.24888888888888858, - 0.06937500000000009, - 0.24789930555555503, - 0.11555555555555504, - 0.07638888888888881, - 0.08664930555555551, - 0.16248263888888856, - 0.1993750000000004, - 0.1624826388888886, - 0.07984375000000006, - 0.23734375000000088, - 0.08326388888888926, - 0.0832638888888892, - 0.07984375000000007, - 0.1388888888888892, + 0.06222222222222223, + 0.1832638888888889, + 0.19159722222222222, + 0.24888888888888888, + 0.069375, + 0.24789930555555564, + 0.11555555555555556, + 0.07638888888888887, + 0.08664930555555556, + 0.16248263888888895, + 0.19937500000000002, + 0.16248263888888895, + 0.07984375, + 0.23734375000000002, + 0.08326388888888889, + 0.08326388888888889, + 0.07984375, + 0.13888888888888887, 0.234375, - 0.11248263888888911, - 0.1388888888888892, - 0.11859375000000028, - 0.062222222222222366, - 0.1416493055555557, + 0.1124826388888889, + 0.13888888888888887, + 0.11859375000000003, + 0.06222222222222223, + 0.14164930555555552, 0.05859375, 0.21484375, - 0.14164930555555555, + 0.14164930555555552, 0.1875, - 0.08326388888888932, - 0.13326388888888868, - 0.12159722222222258, - 0.169722222222222, - 0.21789930555555573, - 0.20484374999999938, + 0.08326388888888887, + 0.1332638888888889, + 0.12159722222222223, + 0.16972222222222216, + 0.21789930555555556, + 0.20484374999999996, 0.05859375, - 0.16493055555555605, - 0.14972222222222206, - 0.09331597222222178, - 0.24305555555555652, - 0.13326388888888865, + 0.16493055555555552, + 0.14972222222222217, + 0.09331597222222224, + 0.24305555555555552, + 0.1332638888888889, 0.1875, 0.14164930555555555, - 0.15999999999999953, - 0.05493055555555544, - 0.06937500000000014, - 0.09984374999999952, - 0.09000000000000016, - 0.22873263888888892, - 0.07289930555555585, - 0.1853993055555562, - 0.1030555555555552, - 0.13039930555555615, - 0.11859375000000022, - 0.15748263888888842, - 0.11248263888888912, - 0.16734375000000018, - 0.07984375000000007, - 0.07289930555555578, - 0.07638888888888896, - 0.07289930555555586, - 0.07638888888888874, - 0.07289930555555563, - 0.0693750000000001, - 0.0832638888888893, - 0.07984375000000009, - 0.11248263888888912, - 0.09331597222222197, - 0.12456597222222188, - 0.16734375000000024, - 0.08664930555555551, - 0.17888888888888885, - 0.21638888888888824, - 0.08664930555555551, - 0.05123263888888908, - 0.24956597222222224, - 0.012329571601671897, - 120.18420496193554, - 330.74857483162936, - 0.029870377473567, - 7.171341738075652, - 7.171341738075652, - 0.003826315649940496, - 0.28826388888889054, - 57.74927652681347, - 62.11430992361314, - 40.894459061566245, - 57.2717711746289, - 38.241748069064435, - 0.26039930555555446, - 0.3372222222222219, - 0.05123263888888902, + 0.16000000000000006, + 0.05493055555555556, + 0.06937499999999999, + 0.09984375000000002, + 0.09000000000000001, + 0.2287326388888888, + 0.07289930555555557, + 0.1853993055555555, + 0.10305555555555554, + 0.13039930555555557, + 0.11859375000000003, + 0.15748263888888892, + 0.11248263888888892, + 0.16734374999999996, + 0.07984375, + 0.07289930555555557, + 0.0763888888888889, + 0.07289930555555557, + 0.07638888888888887, + 0.07289930555555557, + 0.069375, + 0.08326388888888889, + 0.07984375, + 0.1124826388888889, + 0.09331597222222224, + 0.12456597222222225, + 0.16734374999999996, + 0.08664930555555556, + 0.1788888888888889, + 0.2163888888888889, + 0.08664930555555556, + 0.05123263888888888, + 0.24956597222222227, + 0.012329572037301268, + 120.18420490211919, + 330.74857416235716, + 0.029870377964923436, + 7.171341694260409, + 7.171341694260409, + 0.0038263156519710386, + 0.2882638888888888, + 57.749276977441326, + 62.114309824088586, + 40.8944599289845, + 57.27177176127187, + 38.24174809628042, + 0.2603993055555556, + 0.3372222222222222, + 0.051232638888888876, 0.5544270833333333, - 0.2623437500000009, - 0.2262326388888891, - 0.08664930555555551, + 0.2623437500000001, + 0.2262326388888889, + 0.08664930555555556, 0.109375, - 0.07638888888888887 + 0.07638888888888888 ], "mean_": [ 0.17083333333333334, @@ -1041,19 +1028,19 @@ 0.09583333333333334, 0.05416666666666667, 0.4791666666666667, - -2.1462848747769994, - 7.47238664428393, - 21.9173050959905, - 0.2612876179628074, - 11.214737820625306, - 11.214737820625306, - -0.43058615246166787, + -2.146284875416667, + 7.47238663125, + 21.917305012916664, + 0.26128761875833334, + 11.214737819583332, + 11.214737819583332, + -0.43058615200000006, 0.30833333333333335, - 10.349856563409169, - 12.253048247098922, - 6.330605794986089, - 4.804581602414449, - 4.343701334794362, + 10.349856530416666, + 12.253048205416667, + 6.330605843750001, + 4.804581608333334, + 4.343701334583333, 0.37916666666666665, 0.43333333333333335, 0.05416666666666667, @@ -1065,250 +1052,250 @@ 0.08333333333333333 ], "scale_": [ - 0.3763632627602696, - 0.33993463423951836, + 0.3763632627602693, + 0.33993463423951903, 0.26339134382131846, 0.4330127018922193, 0.24206145913796356, 0.26339134382131846, - 0.48302792074808903, - 0.2763853991962832, - 0.3054766312211493, - 0.3443744328488982, - 0.25654623798103593, - 0.39361218928731795, - 0.31598061649411274, - 0.3108009366495255, - 0.3210226714043033, + 0.4830279207480891, + 0.2763853991962833, + 0.3054766312211496, + 0.3443744328488978, + 0.2565462379810357, + 0.39361218928731817, + 0.31598061649411346, + 0.31080093664952524, + 0.3210226714043037, 0.24206145913796356, - 0.22634628092568468, - 0.42555111326373013, - 0.27638539919628313, - 0.40309135303165283, - 0.4353917456983099, - 0.3869395588747964, - 0.2343726851737537, - 0.44221663871405253, - 0.3650532685634915, - 0.3159806164941128, - 0.3108009366495254, - 0.24944382578492993, - 0.33538431521001266, - 0.23437268517375365, - 0.43539174569830985, - 0.3968408231128555, - 0.22634628092568487, - 0.44651427748729405, - 0.36110844016106325, - 0.282566363886433, - 0.4756391898160714, - 0.3726779962499655, - 0.4119735698102758, - 0.29436254101966763, - 0.46180503341658163, - 0.35707142142714327, - 0.39361218928731795, - 0.4997221450188302, - 0.4922842166878804, + 0.22634628092568448, + 0.4255511132637301, + 0.2763853991962833, + 0.4030913530316532, + 0.4353917456983104, + 0.3869395588747966, + 0.23437268517375387, + 0.4422166387140533, + 0.3650532685634919, + 0.31598061649411346, + 0.31080093664952524, + 0.24944382578492946, + 0.33538431521001233, + 0.2343726851737539, + 0.43539174569831046, + 0.3968408231128558, + 0.22634628092568446, + 0.44651427748729383, + 0.36110844016106236, + 0.2825663638864329, + 0.47563918981607145, + 0.3726779962499649, + 0.41197356981027583, + 0.2943625410196677, + 0.4618050334165803, + 0.3570714214271425, + 0.39361218928731817, + 0.49972214501883166, + 0.49228421668788036, 0.49607837082461076, 0.33071891388307384, - 0.3869395588747967, - 0.4618050334165815, - 0.22634628092568482, - 0.26339134382131857, - 0.2263462809256849, - 0.4898979485566345, - 0.38349181506548796, - 0.47140452079103207, - 0.39999999999999947, - 0.4683748498798806, - 0.4148083560178387, - 0.4667968568398418, - 0.26999871398870706, - 0.4353917456983099, - 0.4890289414293968, - 0.3650532685634915, - 0.43058019642751355, - 0.4030913530316527, - 0.41197356981027605, + 0.38693955887479664, + 0.4618050334165803, + 0.22634628092568448, + 0.26339134382131846, + 0.22634628092568448, + 0.48989794855663565, + 0.3834918150654877, + 0.47140452079103173, + 0.4, + 0.4683748498798799, + 0.41480835601783894, + 0.46679685683984157, + 0.2699987139887069, + 0.43539174569831046, + 0.4890289414293959, + 0.36505326856349185, + 0.4305801964275128, + 0.4030913530316532, + 0.41197356981027583, 0.24206145913796356, 0.3903123748998999, 0.3903123748998999, - 0.3650532685634915, + 0.36505326856349185, 0.4907300400650262, - 0.39999999999999947, - 0.40309135303165267, - 0.2343726851737536, - 0.24944382578493005, - 0.37636326276026955, - 0.4881228215202494, - 0.2633913438213186, - 0.3259334884434073, + 0.4000000000000001, + 0.4030913530316533, + 0.23437268517375387, + 0.24944382578492946, + 0.3763632627602693, + 0.4881228215202491, + 0.26339134382131846, + 0.3259334884434075, 0.33071891388307384, - 0.4061164310337076, - 0.4997221450188302, - 0.4582575694955848, - 0.30000000000000043, - 0.22634628092568468, - 0.24944382578493002, + 0.4061164310337068, + 0.49972214501883166, + 0.45825756949558394, + 0.30000000000000004, + 0.22634628092568448, + 0.24944382578492946, 0.4330127018922193, - 0.4890289414293969, - 0.45641644604705245, - 0.30547663122114915, - 0.34870793254846183, - 0.37636326276026943, - 0.4377181995556309, - 0.4982608642958913, + 0.4890289414293959, + 0.4564164460470528, + 0.3054766312211496, + 0.3487079325484613, + 0.3763632627602693, + 0.4377181995556299, + 0.4982608642958916, 0.24206145913796356, - 0.28855482821968026, - 0.22634628092568485, - 0.3159806164941128, + 0.2885548282196797, + 0.22634628092568448, + 0.31598061649411346, 0.41197356981027583, - 0.3570714214271431, - 0.48302792074808903, - 0.30547663122114865, - 0.33538431521001266, - 0.4993746088859546, - 0.3799671038392668, - 0.3689088640843435, - 0.4915254034352877, + 0.3570714214271425, + 0.4830279207480891, + 0.3054766312211496, + 0.33538431521001233, + 0.4993746088859544, + 0.3799671038392666, + 0.36890886408434265, + 0.49152540343528756, 0.4841229182759271, 0.24206145913796356, - 0.450616861153193, - 0.4119735698102754, - 0.498591766879478, - 0.31080093664952546, - 0.2699987139887076, - 0.4818944098266999, - 0.4422166387140526, - 0.33538431521001266, - 0.42809331796804473, - 0.2825663638864331, - 0.3529390488770289, - 0.2633913438213184, - 0.49859176687947804, - 0.3611084401610633, - 0.46991060024458076, - 0.3399346342395183, - 0.48072211307573515, - 0.3054766312211491, - 0.39361218928731795, - 0.49228421668788025, - 0.3000000000000006, - 0.38349181506548796, - 0.4993746088859546, - 0.27638539919628313, - 0.23437268517375365, - 0.27638539919628285, - 0.3259334884434068, - 0.24944382578492982, - 0.3650532685634916, - 0.23437268517375365, - 0.3611084401610632, - 0.4667968568398418, - 0.39999999999999947, - 0.4974937185533105, + 0.4506168611531925, + 0.41197356981027583, + 0.4985917668794783, + 0.31080093664952524, + 0.26999871398870695, + 0.48189440982669873, + 0.44221663871405337, + 0.3353843152100124, + 0.42809331796804406, + 0.2825663638864329, + 0.35293904887702954, + 0.26339134382131846, + 0.4985917668794783, + 0.36110844016106236, + 0.4699106002445808, + 0.33993463423951903, + 0.4807221130757352, + 0.3054766312211496, + 0.39361218928731817, + 0.49228421668788036, + 0.30000000000000004, + 0.38349181506548763, + 0.4993746088859545, + 0.2763853991962833, + 0.2343726851737539, + 0.2763853991962833, + 0.3259334884434075, + 0.24944382578492946, + 0.3650532685634919, + 0.23437268517375387, + 0.36110844016106236, + 0.46679685683984157, + 0.4000000000000001, + 0.4974937185533101, 0.46351240544347894, - 0.48619840486049365, - 0.4699106002445806, - 0.4305801964275136, - 0.4728570079844433, + 0.48619840486049404, + 0.4699106002445808, + 0.4305801964275128, + 0.47285700798444347, 0.3903123748998999, - 0.24944382578492957, - 0.428093317968045, - 0.43771819955563085, - 0.49888765156985854, - 0.2633913438213186, - 0.4978948740000795, - 0.33993463423951825, - 0.2763853991962832, - 0.29436254101966763, - 0.40309135303165283, - 0.4465142774872943, - 0.40309135303165283, - 0.28256636388643297, - 0.4871793817476278, - 0.28855482821968037, - 0.2885548282196803, - 0.282566363886433, - 0.3726779962499654, + 0.24944382578492943, + 0.42809331796804406, + 0.4377181995556299, + 0.49888765156985887, + 0.26339134382131846, + 0.4978948740000801, + 0.33993463423951903, + 0.2763853991962833, + 0.2943625410196677, + 0.4030913530316533, + 0.44651427748729383, + 0.4030913530316533, + 0.2825663638864329, + 0.4871793817476269, + 0.28855482821967976, + 0.28855482821967976, + 0.2825663638864329, + 0.3726779962499649, 0.4841229182759271, - 0.3353843152100126, - 0.3726779962499654, - 0.3443744328488982, - 0.2494438257849297, - 0.37636326276026955, + 0.33538431521001233, + 0.3726779962499649, + 0.3443744328488978, + 0.24944382578492943, + 0.3763632627602693, 0.24206145913796356, 0.46351240544347894, 0.3763632627602693, 0.4330127018922193, - 0.2885548282196805, - 0.3650532685634915, - 0.3487079325484618, - 0.41197356981027555, - 0.4667968568398418, - 0.45259667475579113, + 0.2885548282196797, + 0.36505326856349185, + 0.3487079325484613, + 0.4119735698102758, + 0.46679685683984157, + 0.4525966747557918, 0.24206145913796356, - 0.4061164310337074, - 0.3869395588747964, - 0.3054766312211489, - 0.4930066485916357, - 0.3650532685634915, + 0.4061164310337068, + 0.3869395588747966, + 0.3054766312211496, + 0.4930066485916346, + 0.36505326856349185, 0.4330127018922193, 0.3763632627602693, - 0.3999999999999994, - 0.23437268517375365, - 0.26339134382131874, - 0.3159806164941127, - 0.30000000000000027, - 0.47826001180204153, - 0.26999871398870745, - 0.4305801964275136, - 0.3210226714043032, - 0.3611084401610632, - 0.34437443284889807, - 0.3968408231128552, - 0.33538431521001266, - 0.4090767042988395, - 0.282566363886433, - 0.26999871398870734, - 0.27638539919628347, - 0.26999871398870745, - 0.2763853991962831, - 0.26999871398870706, - 0.2633913438213187, - 0.2885548282196805, - 0.282566363886433, - 0.33538431521001266, - 0.30547663122114915, - 0.35293904887702904, - 0.4090767042988396, - 0.29436254101966763, - 0.42295258468165065, - 0.4651761912317614, - 0.29436254101966763, - 0.22634628092568493, + 0.4000000000000001, + 0.2343726851737539, + 0.26339134382131846, + 0.31598061649411346, + 0.30000000000000004, + 0.4782600118020414, + 0.26999871398870695, + 0.4305801964275128, + 0.3210226714043037, + 0.36110844016106236, + 0.3443744328488978, + 0.3968408231128558, + 0.33538431521001233, + 0.40907670429883924, + 0.2825663638864329, + 0.26999871398870695, + 0.27638539919628335, + 0.26999871398870695, + 0.2763853991962833, + 0.26999871398870695, + 0.26339134382131846, + 0.28855482821967976, + 0.2825663638864329, + 0.33538431521001233, + 0.3054766312211496, + 0.35293904887702954, + 0.40907670429883924, + 0.2943625410196677, + 0.4229525846816507, + 0.4651761912317621, + 0.2943625410196677, + 0.22634628092568448, 0.4995657836784083, - 0.11103860410538263, - 10.962855693747661, - 18.186494297462318, - 0.17283048768538206, - 2.677936096712476, - 2.677936096712476, - 0.061857219869151055, - 0.5369021222614887, - 7.599294475595315, - 7.88126321877484, - 6.394877564235788, - 7.567811518175443, - 6.183991273365805, - 0.5102933524508765, - 0.5807083796728113, - 0.2263462809256848, + 0.11103860606699487, + 10.962855691019525, + 18.186494279062064, + 0.1728304891068802, + 2.6779360885316903, + 2.6779360885316903, + 0.061857219885564196, + 0.536902122261487, + 7.599294505244637, + 7.8812632124608415, + 6.394877632057122, + 7.567811556934532, + 6.183991275566324, + 0.5102933524508776, + 0.5807083796728115, + 0.22634628092568448, 0.7445986055139597, - 0.5121950312136978, - 0.47563918981607173, - 0.29436254101966763, + 0.512195031213697, + 0.4756391898160715, + 0.2943625410196677, 0.33071891388307384, 0.2763853991962833 ], @@ -1316,259 +1303,259 @@ "feature_names_in_": { "py/tuple": [ [ - "Descriptor_FingerprintSet_MorganFP_0", - "Descriptor_FingerprintSet_MorganFP_1", - "Descriptor_FingerprintSet_MorganFP_2", - "Descriptor_FingerprintSet_MorganFP_3", - "Descriptor_FingerprintSet_MorganFP_4", - "Descriptor_FingerprintSet_MorganFP_5", - "Descriptor_FingerprintSet_MorganFP_7", - "Descriptor_FingerprintSet_MorganFP_8", - "Descriptor_FingerprintSet_MorganFP_9", - "Descriptor_FingerprintSet_MorganFP_11", - "Descriptor_FingerprintSet_MorganFP_12", - "Descriptor_FingerprintSet_MorganFP_13", - "Descriptor_FingerprintSet_MorganFP_14", - "Descriptor_FingerprintSet_MorganFP_15", - "Descriptor_FingerprintSet_MorganFP_16", - "Descriptor_FingerprintSet_MorganFP_17", - "Descriptor_FingerprintSet_MorganFP_18", - "Descriptor_FingerprintSet_MorganFP_20", - "Descriptor_FingerprintSet_MorganFP_21", - "Descriptor_FingerprintSet_MorganFP_22", - "Descriptor_FingerprintSet_MorganFP_23", - "Descriptor_FingerprintSet_MorganFP_24", - "Descriptor_FingerprintSet_MorganFP_25", - "Descriptor_FingerprintSet_MorganFP_26", - "Descriptor_FingerprintSet_MorganFP_27", - "Descriptor_FingerprintSet_MorganFP_28", - "Descriptor_FingerprintSet_MorganFP_29", - "Descriptor_FingerprintSet_MorganFP_30", - "Descriptor_FingerprintSet_MorganFP_31", - "Descriptor_FingerprintSet_MorganFP_32", - "Descriptor_FingerprintSet_MorganFP_33", - "Descriptor_FingerprintSet_MorganFP_34", - "Descriptor_FingerprintSet_MorganFP_35", - "Descriptor_FingerprintSet_MorganFP_36", - "Descriptor_FingerprintSet_MorganFP_37", - "Descriptor_FingerprintSet_MorganFP_38", - "Descriptor_FingerprintSet_MorganFP_39", - "Descriptor_FingerprintSet_MorganFP_40", - "Descriptor_FingerprintSet_MorganFP_41", - "Descriptor_FingerprintSet_MorganFP_42", - "Descriptor_FingerprintSet_MorganFP_43", - "Descriptor_FingerprintSet_MorganFP_44", - "Descriptor_FingerprintSet_MorganFP_45", - "Descriptor_FingerprintSet_MorganFP_46", - "Descriptor_FingerprintSet_MorganFP_47", - "Descriptor_FingerprintSet_MorganFP_48", - "Descriptor_FingerprintSet_MorganFP_50", - "Descriptor_FingerprintSet_MorganFP_51", - "Descriptor_FingerprintSet_MorganFP_52", - "Descriptor_FingerprintSet_MorganFP_53", - "Descriptor_FingerprintSet_MorganFP_54", - "Descriptor_FingerprintSet_MorganFP_55", - "Descriptor_FingerprintSet_MorganFP_56", - "Descriptor_FingerprintSet_MorganFP_57", - "Descriptor_FingerprintSet_MorganFP_58", - "Descriptor_FingerprintSet_MorganFP_59", - "Descriptor_FingerprintSet_MorganFP_60", - "Descriptor_FingerprintSet_MorganFP_61", - "Descriptor_FingerprintSet_MorganFP_62", - "Descriptor_FingerprintSet_MorganFP_63", - "Descriptor_FingerprintSet_MorganFP_65", - "Descriptor_FingerprintSet_MorganFP_66", - "Descriptor_FingerprintSet_MorganFP_67", - "Descriptor_FingerprintSet_MorganFP_68", - "Descriptor_FingerprintSet_MorganFP_69", - "Descriptor_FingerprintSet_MorganFP_71", - "Descriptor_FingerprintSet_MorganFP_72", - "Descriptor_FingerprintSet_MorganFP_73", - "Descriptor_FingerprintSet_MorganFP_74", - "Descriptor_FingerprintSet_MorganFP_75", - "Descriptor_FingerprintSet_MorganFP_77", - "Descriptor_FingerprintSet_MorganFP_79", - "Descriptor_FingerprintSet_MorganFP_80", - "Descriptor_FingerprintSet_MorganFP_82", - "Descriptor_FingerprintSet_MorganFP_83", - "Descriptor_FingerprintSet_MorganFP_84", - "Descriptor_FingerprintSet_MorganFP_85", - "Descriptor_FingerprintSet_MorganFP_86", - "Descriptor_FingerprintSet_MorganFP_87", - "Descriptor_FingerprintSet_MorganFP_88", - "Descriptor_FingerprintSet_MorganFP_89", - "Descriptor_FingerprintSet_MorganFP_90", - "Descriptor_FingerprintSet_MorganFP_91", - "Descriptor_FingerprintSet_MorganFP_92", - "Descriptor_FingerprintSet_MorganFP_93", - "Descriptor_FingerprintSet_MorganFP_94", - "Descriptor_FingerprintSet_MorganFP_95", - "Descriptor_FingerprintSet_MorganFP_96", - "Descriptor_FingerprintSet_MorganFP_99", - "Descriptor_FingerprintSet_MorganFP_101", - "Descriptor_FingerprintSet_MorganFP_102", - "Descriptor_FingerprintSet_MorganFP_103", - "Descriptor_FingerprintSet_MorganFP_104", - "Descriptor_FingerprintSet_MorganFP_105", - "Descriptor_FingerprintSet_MorganFP_106", - "Descriptor_FingerprintSet_MorganFP_108", - "Descriptor_FingerprintSet_MorganFP_109", - "Descriptor_FingerprintSet_MorganFP_110", - "Descriptor_FingerprintSet_MorganFP_111", - "Descriptor_FingerprintSet_MorganFP_112", - "Descriptor_FingerprintSet_MorganFP_113", - "Descriptor_FingerprintSet_MorganFP_114", - "Descriptor_FingerprintSet_MorganFP_115", - "Descriptor_FingerprintSet_MorganFP_117", - "Descriptor_FingerprintSet_MorganFP_118", - "Descriptor_FingerprintSet_MorganFP_119", - "Descriptor_FingerprintSet_MorganFP_120", - "Descriptor_FingerprintSet_MorganFP_121", - "Descriptor_FingerprintSet_MorganFP_122", - "Descriptor_FingerprintSet_MorganFP_123", - "Descriptor_FingerprintSet_MorganFP_124", - "Descriptor_FingerprintSet_MorganFP_125", - "Descriptor_FingerprintSet_MorganFP_126", - "Descriptor_FingerprintSet_MorganFP_127", - "Descriptor_FingerprintSet_MorganFP_128", - "Descriptor_FingerprintSet_MorganFP_129", - "Descriptor_FingerprintSet_MorganFP_131", - "Descriptor_FingerprintSet_MorganFP_132", - "Descriptor_FingerprintSet_MorganFP_133", - "Descriptor_FingerprintSet_MorganFP_134", - "Descriptor_FingerprintSet_MorganFP_135", - "Descriptor_FingerprintSet_MorganFP_136", - "Descriptor_FingerprintSet_MorganFP_137", - "Descriptor_FingerprintSet_MorganFP_138", - "Descriptor_FingerprintSet_MorganFP_139", - "Descriptor_FingerprintSet_MorganFP_140", - "Descriptor_FingerprintSet_MorganFP_141", - "Descriptor_FingerprintSet_MorganFP_142", - "Descriptor_FingerprintSet_MorganFP_144", - "Descriptor_FingerprintSet_MorganFP_145", - "Descriptor_FingerprintSet_MorganFP_146", - "Descriptor_FingerprintSet_MorganFP_147", - "Descriptor_FingerprintSet_MorganFP_148", - "Descriptor_FingerprintSet_MorganFP_149", - "Descriptor_FingerprintSet_MorganFP_150", - "Descriptor_FingerprintSet_MorganFP_151", - "Descriptor_FingerprintSet_MorganFP_152", - "Descriptor_FingerprintSet_MorganFP_153", - "Descriptor_FingerprintSet_MorganFP_154", - "Descriptor_FingerprintSet_MorganFP_155", - "Descriptor_FingerprintSet_MorganFP_156", - "Descriptor_FingerprintSet_MorganFP_157", - "Descriptor_FingerprintSet_MorganFP_158", - "Descriptor_FingerprintSet_MorganFP_160", - "Descriptor_FingerprintSet_MorganFP_161", - "Descriptor_FingerprintSet_MorganFP_162", - "Descriptor_FingerprintSet_MorganFP_163", - "Descriptor_FingerprintSet_MorganFP_164", - "Descriptor_FingerprintSet_MorganFP_165", - "Descriptor_FingerprintSet_MorganFP_166", - "Descriptor_FingerprintSet_MorganFP_167", - "Descriptor_FingerprintSet_MorganFP_168", - "Descriptor_FingerprintSet_MorganFP_169", - "Descriptor_FingerprintSet_MorganFP_170", - "Descriptor_FingerprintSet_MorganFP_172", - "Descriptor_FingerprintSet_MorganFP_173", - "Descriptor_FingerprintSet_MorganFP_174", - "Descriptor_FingerprintSet_MorganFP_175", - "Descriptor_FingerprintSet_MorganFP_177", - "Descriptor_FingerprintSet_MorganFP_178", - "Descriptor_FingerprintSet_MorganFP_179", - "Descriptor_FingerprintSet_MorganFP_182", - "Descriptor_FingerprintSet_MorganFP_183", - "Descriptor_FingerprintSet_MorganFP_184", - "Descriptor_FingerprintSet_MorganFP_185", - "Descriptor_FingerprintSet_MorganFP_186", - "Descriptor_FingerprintSet_MorganFP_187", - "Descriptor_FingerprintSet_MorganFP_188", - "Descriptor_FingerprintSet_MorganFP_189", - "Descriptor_FingerprintSet_MorganFP_191", - "Descriptor_FingerprintSet_MorganFP_192", - "Descriptor_FingerprintSet_MorganFP_193", - "Descriptor_FingerprintSet_MorganFP_194", - "Descriptor_FingerprintSet_MorganFP_195", - "Descriptor_FingerprintSet_MorganFP_196", - "Descriptor_FingerprintSet_MorganFP_197", - "Descriptor_FingerprintSet_MorganFP_198", - "Descriptor_FingerprintSet_MorganFP_199", - "Descriptor_FingerprintSet_MorganFP_200", - "Descriptor_FingerprintSet_MorganFP_201", - "Descriptor_FingerprintSet_MorganFP_202", - "Descriptor_FingerprintSet_MorganFP_203", - "Descriptor_FingerprintSet_MorganFP_204", - "Descriptor_FingerprintSet_MorganFP_205", - "Descriptor_FingerprintSet_MorganFP_206", - "Descriptor_FingerprintSet_MorganFP_207", - "Descriptor_FingerprintSet_MorganFP_208", - "Descriptor_FingerprintSet_MorganFP_209", - "Descriptor_FingerprintSet_MorganFP_210", - "Descriptor_FingerprintSet_MorganFP_211", - "Descriptor_FingerprintSet_MorganFP_212", - "Descriptor_FingerprintSet_MorganFP_213", - "Descriptor_FingerprintSet_MorganFP_214", - "Descriptor_FingerprintSet_MorganFP_215", - "Descriptor_FingerprintSet_MorganFP_216", - "Descriptor_FingerprintSet_MorganFP_217", - "Descriptor_FingerprintSet_MorganFP_218", - "Descriptor_FingerprintSet_MorganFP_219", - "Descriptor_FingerprintSet_MorganFP_221", - "Descriptor_FingerprintSet_MorganFP_226", - "Descriptor_FingerprintSet_MorganFP_228", - "Descriptor_FingerprintSet_MorganFP_229", - "Descriptor_FingerprintSet_MorganFP_230", - "Descriptor_FingerprintSet_MorganFP_231", - "Descriptor_FingerprintSet_MorganFP_232", - "Descriptor_FingerprintSet_MorganFP_233", - "Descriptor_FingerprintSet_MorganFP_234", - "Descriptor_FingerprintSet_MorganFP_235", - "Descriptor_FingerprintSet_MorganFP_237", - "Descriptor_FingerprintSet_MorganFP_239", - "Descriptor_FingerprintSet_MorganFP_241", - "Descriptor_FingerprintSet_MorganFP_242", - "Descriptor_FingerprintSet_MorganFP_243", - "Descriptor_FingerprintSet_MorganFP_244", - "Descriptor_FingerprintSet_MorganFP_245", - "Descriptor_FingerprintSet_MorganFP_246", - "Descriptor_FingerprintSet_MorganFP_247", - "Descriptor_FingerprintSet_MorganFP_248", - "Descriptor_FingerprintSet_MorganFP_249", - "Descriptor_FingerprintSet_MorganFP_250", - "Descriptor_FingerprintSet_MorganFP_251", - "Descriptor_FingerprintSet_MorganFP_252", - "Descriptor_FingerprintSet_MorganFP_254", - "Descriptor_FingerprintSet_MorganFP_255", - "Descriptor_RDkit_BCUT2D_CHGLO", - "Descriptor_RDkit_EState_VSA1", - "Descriptor_RDkit_EState_VSA7", - "Descriptor_RDkit_FractionCSP3", - "Descriptor_RDkit_MaxAbsEStateIndex", - "Descriptor_RDkit_MaxEStateIndex", - "Descriptor_RDkit_MinPartialCharge", - "Descriptor_RDkit_NumSaturatedHeterocycles", - "Descriptor_RDkit_PEOE_VSA10", - "Descriptor_RDkit_PEOE_VSA11", - "Descriptor_RDkit_PEOE_VSA4", - "Descriptor_RDkit_SlogP_VSA12", - "Descriptor_RDkit_SlogP_VSA4", - "Descriptor_RDkit_fr_ArN", - "Descriptor_RDkit_fr_NH2", - "Descriptor_RDkit_fr_Ndealkylation1", - "Descriptor_RDkit_fr_aryl_methyl", - "Descriptor_RDkit_fr_furan", - "Descriptor_RDkit_fr_imidazole", - "Descriptor_RDkit_fr_piperzine", - "Descriptor_RDkit_fr_thiazole", - "Descriptor_RDkit_fr_thiophene" + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_77", + "MorganFP_79", + "MorganFP_80", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_99", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_221", + "MorganFP_226", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_237", + "MorganFP_239", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_254", + "MorganFP_255", + "BCUT2D_CHGLO", + "EState_VSA1", + "EState_VSA7", + "FractionCSP3", + "MaxAbsEStateIndex", + "MaxEStateIndex", + "MinPartialCharge", + "NumSaturatedHeterocycles", + "PEOE_VSA10", + "PEOE_VSA11", + "PEOE_VSA4", + "SlogP_VSA12", + "SlogP_VSA4", + "fr_ArN", + "fr_NH2", + "fr_Ndealkylation1", + "fr_aryl_methyl", + "fr_furan", + "fr_imidazole", + "fr_piperzine", + "fr_thiazole", + "fr_thiophene" ] ] }, "versions": { "py/tuple": [ "sklearn", - "1.2.1" + "1.4.0" ] } } @@ -1576,9 +1563,9 @@ }, "earlyStopping": null, "parameters": { - "seed": 478163327 + "random_state": 478163327 }, - "alg": "xgboost.sklearn.XGBRegressor", + "alg": "sklearn.ensemble._forest.ExtraTreesRegressor", "randomState": 478163327, "estimator": "./ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327.json" } diff --git a/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327_replica.json b/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327_replica.json index 1e5b54ec..7c9b06f5 100644 --- a/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327_replica.json +++ b/testing/test_consistency/expected/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327_replica.json @@ -10,18 +10,10 @@ }, "descriptors": [ { - "py/object": "qsprpred.data.descriptors.sets.FingerprintSet", + "py/object": "qsprpred.data.descriptors.fingerprints.MorganFP", "py/state": { - "_isFP": true, - "fingerprintType": "MorganFP", - "_args": { - "py/tuple": [] - }, - "_kwargs": { - "radius": 2, - "nBits": 256 - }, - "_keepindices": [ + "idProp": "QSPRID", + "_usedBits": [ 0, 1, 2, @@ -279,270 +271,273 @@ 254, 255 ], + "radius": 2, + "nBits": 256, + "kwargs": {}, "descriptors": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "35", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "96", - "97", - "98", - "99", - "100", - "101", - "102", - "103", - "104", - "105", - "106", - "107", - "108", - "109", - "110", - "111", - "112", - "113", - "114", - "115", - "116", - "117", - "118", - "119", - "120", - "121", - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "143", - "144", - "145", - "146", - "147", - "148", - "149", - "150", - "151", - "152", - "153", - "154", - "155", - "156", - "157", - "158", - "159", - "160", - "161", - "162", - "163", - "164", - "165", - "166", - "167", - "168", - "169", - "170", - "171", - "172", - "173", - "174", - "175", - "176", - "177", - "178", - "179", - "180", - "181", - "182", - "183", - "184", - "185", - "186", - "187", - "188", - "189", - "190", - "191", - "192", - "193", - "194", - "195", - "196", - "197", - "198", - "199", - "200", - "201", - "202", - "203", - "204", - "205", - "206", - "207", - "208", - "209", - "210", - "211", - "212", - "213", - "214", - "215", - "216", - "217", - "218", - "219", - "220", - "221", - "222", - "223", - "224", - "225", - "226", - "227", - "228", - "229", - "230", - "231", - "232", - "233", - "234", - "235", - "236", - "237", - "238", - "239", - "240", - "241", - "242", - "243", - "244", - "245", - "246", - "247", - "248", - "249", - "250", - "251", - "252", - "253", - "254", - "255" + "MorganFP_0", + "MorganFP_1", + "MorganFP_2", + "MorganFP_3", + "MorganFP_4", + "MorganFP_5", + "MorganFP_6", + "MorganFP_7", + "MorganFP_8", + "MorganFP_9", + "MorganFP_10", + "MorganFP_11", + "MorganFP_12", + "MorganFP_13", + "MorganFP_14", + "MorganFP_15", + "MorganFP_16", + "MorganFP_17", + "MorganFP_18", + "MorganFP_19", + "MorganFP_20", + "MorganFP_21", + "MorganFP_22", + "MorganFP_23", + "MorganFP_24", + "MorganFP_25", + "MorganFP_26", + "MorganFP_27", + "MorganFP_28", + "MorganFP_29", + "MorganFP_30", + "MorganFP_31", + "MorganFP_32", + "MorganFP_33", + "MorganFP_34", + "MorganFP_35", + "MorganFP_36", + "MorganFP_37", + "MorganFP_38", + "MorganFP_39", + "MorganFP_40", + "MorganFP_41", + "MorganFP_42", + "MorganFP_43", + "MorganFP_44", + "MorganFP_45", + "MorganFP_46", + "MorganFP_47", + "MorganFP_48", + "MorganFP_49", + "MorganFP_50", + "MorganFP_51", + "MorganFP_52", + "MorganFP_53", + "MorganFP_54", + "MorganFP_55", + "MorganFP_56", + "MorganFP_57", + "MorganFP_58", + "MorganFP_59", + "MorganFP_60", + "MorganFP_61", + "MorganFP_62", + "MorganFP_63", + "MorganFP_64", + "MorganFP_65", + "MorganFP_66", + "MorganFP_67", + "MorganFP_68", + "MorganFP_69", + "MorganFP_70", + "MorganFP_71", + "MorganFP_72", + "MorganFP_73", + "MorganFP_74", + "MorganFP_75", + "MorganFP_76", + "MorganFP_77", + "MorganFP_78", + "MorganFP_79", + "MorganFP_80", + "MorganFP_81", + "MorganFP_82", + "MorganFP_83", + "MorganFP_84", + "MorganFP_85", + "MorganFP_86", + "MorganFP_87", + "MorganFP_88", + "MorganFP_89", + "MorganFP_90", + "MorganFP_91", + "MorganFP_92", + "MorganFP_93", + "MorganFP_94", + "MorganFP_95", + "MorganFP_96", + "MorganFP_97", + "MorganFP_98", + "MorganFP_99", + "MorganFP_100", + "MorganFP_101", + "MorganFP_102", + "MorganFP_103", + "MorganFP_104", + "MorganFP_105", + "MorganFP_106", + "MorganFP_107", + "MorganFP_108", + "MorganFP_109", + "MorganFP_110", + "MorganFP_111", + "MorganFP_112", + "MorganFP_113", + "MorganFP_114", + "MorganFP_115", + "MorganFP_116", + "MorganFP_117", + "MorganFP_118", + "MorganFP_119", + "MorganFP_120", + "MorganFP_121", + "MorganFP_122", + "MorganFP_123", + "MorganFP_124", + "MorganFP_125", + "MorganFP_126", + "MorganFP_127", + "MorganFP_128", + "MorganFP_129", + "MorganFP_130", + "MorganFP_131", + "MorganFP_132", + "MorganFP_133", + "MorganFP_134", + "MorganFP_135", + "MorganFP_136", + "MorganFP_137", + "MorganFP_138", + "MorganFP_139", + "MorganFP_140", + "MorganFP_141", + "MorganFP_142", + "MorganFP_143", + "MorganFP_144", + "MorganFP_145", + "MorganFP_146", + "MorganFP_147", + "MorganFP_148", + "MorganFP_149", + "MorganFP_150", + "MorganFP_151", + "MorganFP_152", + "MorganFP_153", + "MorganFP_154", + "MorganFP_155", + "MorganFP_156", + "MorganFP_157", + "MorganFP_158", + "MorganFP_159", + "MorganFP_160", + "MorganFP_161", + "MorganFP_162", + "MorganFP_163", + "MorganFP_164", + "MorganFP_165", + "MorganFP_166", + "MorganFP_167", + "MorganFP_168", + "MorganFP_169", + "MorganFP_170", + "MorganFP_171", + "MorganFP_172", + "MorganFP_173", + "MorganFP_174", + "MorganFP_175", + "MorganFP_176", + "MorganFP_177", + "MorganFP_178", + "MorganFP_179", + "MorganFP_180", + "MorganFP_181", + "MorganFP_182", + "MorganFP_183", + "MorganFP_184", + "MorganFP_185", + "MorganFP_186", + "MorganFP_187", + "MorganFP_188", + "MorganFP_189", + "MorganFP_190", + "MorganFP_191", + "MorganFP_192", + "MorganFP_193", + "MorganFP_194", + "MorganFP_195", + "MorganFP_196", + "MorganFP_197", + "MorganFP_198", + "MorganFP_199", + "MorganFP_200", + "MorganFP_201", + "MorganFP_202", + "MorganFP_203", + "MorganFP_204", + "MorganFP_205", + "MorganFP_206", + "MorganFP_207", + "MorganFP_208", + "MorganFP_209", + "MorganFP_210", + "MorganFP_211", + "MorganFP_212", + "MorganFP_213", + "MorganFP_214", + "MorganFP_215", + "MorganFP_216", + "MorganFP_217", + "MorganFP_218", + "MorganFP_219", + "MorganFP_220", + "MorganFP_221", + "MorganFP_222", + "MorganFP_223", + "MorganFP_224", + "MorganFP_225", + "MorganFP_226", + "MorganFP_227", + "MorganFP_228", + "MorganFP_229", + "MorganFP_230", + "MorganFP_231", + "MorganFP_232", + "MorganFP_233", + "MorganFP_234", + "MorganFP_235", + "MorganFP_236", + "MorganFP_237", + "MorganFP_238", + "MorganFP_239", + "MorganFP_240", + "MorganFP_241", + "MorganFP_242", + "MorganFP_243", + "MorganFP_244", + "MorganFP_245", + "MorganFP_246", + "MorganFP_247", + "MorganFP_248", + "MorganFP_249", + "MorganFP_250", + "MorganFP_251", + "MorganFP_252", + "MorganFP_253", + "MorganFP_254", + "MorganFP_255" ] } }, { "py/object": "qsprpred.data.descriptors.sets.RDKitDescs", "py/state": { - "_isFP": false, + "idProp": "QSPRID", "_descriptors": [ "AvgIpc", "BCUT2D_CHGHI", @@ -988,8 +983,8 @@ } ] }, - "transformer": null, - "imputer": null + "imputer": null, + "transformer": null } } ], @@ -1024,7 +1019,7 @@ "with_mean": true, "with_std": true, "copy": true, - "_sklearn_version": "1.2.1" + "_sklearn_version": "1.4.0" } }, "feature_fill_value": 0.0, @@ -1033,7 +1028,7 @@ "optimizer": null, "assessors": [ { - "py/object": "qsprpred.models.assessment_methods.CrossValAssessor", + "py/object": "qsprpred.models.assessment.methods.CrossValAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1042,12 +1037,13 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._regression.r2_score" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": "predict" }, "name": "r2_score" }, @@ -1056,7 +1052,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.CrossValAssessor", + "py/object": "qsprpred.models.assessment.methods.CrossValAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1065,23 +1061,22 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": { - "squared": false - }, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { - "py/function": "sklearn.metrics._regression.mean_squared_error" + "py/function": "sklearn.metrics._regression.root_mean_squared_error" }, - "_sign": -1 + "_sign": -1, + "_kwargs": {}, + "_response_method": "predict" }, - "name": "mean_squared_error" + "name": "root_mean_squared_error" }, "splitMultitaskScores": false, "split": null, "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.TestSetAssessor", + "py/object": "qsprpred.models.assessment.methods.TestSetAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1090,12 +1085,13 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": {}, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { "py/function": "sklearn.metrics._regression.r2_score" }, - "_sign": 1 + "_sign": 1, + "_kwargs": {}, + "_response_method": "predict" }, "name": "r2_score" }, @@ -1103,7 +1099,7 @@ "round": 5 }, { - "py/object": "qsprpred.models.assessment_methods.TestSetAssessor", + "py/object": "qsprpred.models.assessment.methods.TestSetAssessor", "monitor": { "py/object": "qsprpred.models.monitors.NullMonitor" }, @@ -1112,23 +1108,22 @@ "scoreFunc": { "py/object": "qsprpred.models.metrics.SklearnMetrics", "scorer": { - "py/object": "sklearn.metrics._scorer._PredictScorer", - "_kwargs": { - "squared": false - }, + "py/object": "sklearn.metrics._scorer._Scorer", "_score_func": { - "py/function": "sklearn.metrics._regression.mean_squared_error" + "py/function": "sklearn.metrics._regression.root_mean_squared_error" }, - "_sign": -1 + "_sign": -1, + "_kwargs": {}, + "_response_method": "predict" }, - "name": "mean_squared_error" + "name": "root_mean_squared_error" }, "splitMultitaskScores": false, "round": 5 } ], "randomSeed": 478163327, - "model": "/home/sichom/projects/QSPRpred/testing/test_consistency/data/models/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327_meta.json", + "model": "/zfsdata/data/helle/01_MainProjects/03_QSPRpred/Scripts/QSPRpred/testing/test_consistency/data/models/ConsistencyChecksREG_478163327/ConsistencyChecksREG_478163327_meta.json", "ds": null, "results": null } From 1115807d868d2133ed54d93eafac9c0d3a4f0a33 Mon Sep 17 00:00:00 2001 From: martin-sicho Date: Fri, 15 Mar 2024 14:15:30 +0100 Subject: [PATCH 28/29] introduce the `prepMols` method to allow customized prep of molecules for descriptors and improve documentation --- qsprpred/data/descriptors/fingerprints.py | 29 +--- qsprpred/data/descriptors/sets.py | 16 +- tutorials/advanced/data/parallelization.ipynb | 155 ++++-------------- 3 files changed, 53 insertions(+), 147 deletions(-) diff --git a/qsprpred/data/descriptors/fingerprints.py b/qsprpred/data/descriptors/fingerprints.py index 79724843..c355df38 100644 --- a/qsprpred/data/descriptors/fingerprints.py +++ b/qsprpred/data/descriptors/fingerprints.py @@ -46,12 +46,20 @@ def isFP(self): def dtype(self): return bool + def prepMols(self, mols: list[str | Mol]) -> list[Mol]: + return [Chem.AddHs(mol) for mol in self.iterMols(mols)] + def __call__( self, mols: list[str | Mol], props: dict[str, list[Any]], *args, **kwargs ) -> pd.DataFrame: """Calculate binary fingerprints for the input molecules. Only the bits specified by `usedBits` will be returned if more bits are calculated. + Before calculating the fingerprints, the molecules are + prepared by adding hydrogens (see `Fingerprint.prepMols`). + If this is undesirable, the user can prepare the molecules + themselves and call `Fingerprint.getDescriptors` directly. + Args: mols(list): list of SMILES or RDKit molecules props(dict): dictionary of properties @@ -61,9 +69,7 @@ def __call__( Returns: data frame of descriptor values of shape (n_mols, n_descriptors) """ - mols = list(self.iterMols(mols, to_list=True)) - mols = [Chem.AddHs(mol) for mol in self.iterMols(mols)] - values = self.getDescriptors(mols, props, *args, **kwargs) + values = self.getDescriptors(self.prepMols(mols), props, *args, **kwargs) values = values[:, self.usedBits] values = values.astype(self.dtype) df = pd.DataFrame(values, index=props[self.idProp]) @@ -83,15 +89,6 @@ def __init__(self, radius=2, nBits=2048, **kwargs): def getDescriptors( self, mols: list[Mol], props: dict[str, list[Any]], *args, **kwargs ) -> np.ndarray: - """Return the Morgan fingerprints for the input molecules. - - Args: - mols: molecules to obtain the fingerprint of - props: dictionary of properties - - Returns: - array: `np.ndarray` of fingerprints for "mols", shape (n_mols, n_bits) - """ convertFP = DataStructs.ConvertToNumpyArray ret = np.zeros((len(mols), len(self))) for idx, mol in enumerate(mols): @@ -116,14 +113,6 @@ class RDKitMACCSFP(Fingerprint): def getDescriptors( self, mols: list[Mol], props: dict[str, list[Any]], *args, **kwargs ) -> np.ndarray: - """Return the MACCS fingerprints for the input molecules. - - Args: - mols: molecules to obtain the fingerprint of - - Returns: - fingerprint (list): `list` of fingerprints for "mols" - """ convertFP = DataStructs.ConvertToNumpyArray ret = np.zeros((len(mols), len(self))) diff --git a/qsprpred/data/descriptors/sets.py b/qsprpred/data/descriptors/sets.py index 63eafbad..8bd037b4 100644 --- a/qsprpred/data/descriptors/sets.py +++ b/qsprpred/data/descriptors/sets.py @@ -66,6 +66,10 @@ def iterMols( ret = list(ret) return ret + def prepMols(self, mols: list[str | Mol]) -> list[Mol]: + """Prepare the molecules for descriptor calculation.""" + return self.iterMols(mols, to_list=True) + def __len__(self): """Return the number of descriptors currently calculated by this instance.""" return len(self.descriptors) @@ -119,6 +123,9 @@ def __call__( to the dtype specified by `self.dtype`. Infinite values are replaced by NaNs using the `treatInfs` method. + The molecules are prepared first by calling the `DescriptorSet.prepMols` method. + If you call `DescriptorSet.getDescriptors` directly, you can skip this step. + Args: mols(list): list of SMILES or RDKit molecules props(dict): dictionary of properties for the passed molecules @@ -128,8 +135,7 @@ def __call__( Returns: data frame of descriptor values of shape (n_mols, n_descriptors) """ - mols = self.iterMols(mols, to_list=True) - values = self.getDescriptors(mols, props, *args, **kwargs) + values = self.getDescriptors(self.prepMols(mols), props, *args, **kwargs) df = pd.DataFrame(values, index=props[self.idProp]) df.columns = self.descriptors try: @@ -151,7 +157,11 @@ def __call__( def getDescriptors( self, mols: list[Mol], props: dict[str, list[Any]], *args, **kwargs ) -> np.ndarray: - """Main method to calculate descriptors for a list of molecules. + """Method to calculate descriptors for a list of molecules. + + This method should use molecules as they are without any preparation. + Any preparation steps should be defined in the `DescriptorSet.prepMols` method., + which is picked up by the main `DescriptorSet.__call__`. Args: mols(list): list of SMILES or RDKit molecules diff --git a/tutorials/advanced/data/parallelization.ipynb b/tutorials/advanced/data/parallelization.ipynb index 29aa965e..1d10eb5d 100644 --- a/tutorials/advanced/data/parallelization.ipynb +++ b/tutorials/advanced/data/parallelization.ipynb @@ -4,10 +4,7 @@ "cell_type": "markdown", "id": "9fedcee856268b35", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "# Code Parallelization\n", @@ -77,10 +74,7 @@ "cell_type": "markdown", "id": "8f9ffda3a4b8202f", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "## Setting `nJobs` and `chunkSize`\n", @@ -117,10 +111,7 @@ "end_time": "2024-01-16T16:30:51.361058064Z", "start_time": "2024-01-16T16:30:47.131517756Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [ { @@ -161,10 +152,7 @@ "cell_type": "markdown", "id": "9357f12c0516b989", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "This calculation is done on one CPU by default:" @@ -179,10 +167,7 @@ "end_time": "2024-01-16T16:30:51.368391209Z", "start_time": "2024-01-16T16:30:51.363595085Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [ { @@ -204,10 +189,7 @@ "cell_type": "markdown", "id": "e7e51a9829413df0", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "and the whole data set supplied as one chunk:" @@ -222,10 +204,7 @@ "end_time": "2024-01-16T16:30:51.372183338Z", "start_time": "2024-01-16T16:30:51.367032511Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [ { @@ -247,10 +226,7 @@ "cell_type": "markdown", "id": "d28c75dc19273bed", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "We can now try running this calculation in parallel on 2 CPUs:" @@ -265,10 +241,7 @@ "end_time": "2024-01-16T16:30:51.379969255Z", "start_time": "2024-01-16T16:30:51.375227876Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [], "source": [ @@ -279,10 +252,7 @@ "cell_type": "markdown", "id": "6bc6ee9045cc5f12", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "The chunk size will automatically be adjusted to 25% of the data set size so that each portion of the data set is processed on a separate CPU:" @@ -297,10 +267,7 @@ "end_time": "2024-01-16T16:30:51.411732902Z", "start_time": "2024-01-16T16:30:51.378238063Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [ { @@ -322,10 +289,7 @@ "cell_type": "markdown", "id": "2e21998b62ee78bf", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "We can see how this affects the time taken to run the calculation:" @@ -340,10 +304,7 @@ "end_time": "2024-01-16T16:30:53.084658845Z", "start_time": "2024-01-16T16:30:51.383586975Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [ { @@ -364,10 +325,7 @@ "cell_type": "markdown", "id": "bc5243c149010a23", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "This was faster, but not by a factor of 4. This is because there is some overhead associated with parallelization and the calculation of fingerprints is very fast by itself so the overhead affects our runtime more. In such cases, be careful about setting the chunk size manually:" @@ -382,10 +340,7 @@ "end_time": "2024-01-16T16:31:10.073558913Z", "start_time": "2024-01-16T16:30:53.083216365Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [ { @@ -407,10 +362,7 @@ "cell_type": "markdown", "id": "c9fdc32aa83072e6", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "This was slower than even the single CPU calculation!" @@ -420,10 +372,7 @@ "cell_type": "markdown", "id": "7c2367dd655da9c8", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "## Custom Operations\n", @@ -440,10 +389,7 @@ "end_time": "2024-01-16T16:31:10.082418114Z", "start_time": "2024-01-16T16:31:10.077838705Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [ { @@ -474,10 +420,7 @@ "cell_type": "markdown", "id": "3ada92396624b990", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "As you can see, this gives us a generator object. In order to run the function on each chunk and get the results, we need to iterate over the generator and collect results:" @@ -492,10 +435,7 @@ "end_time": "2024-01-16T16:31:10.175831497Z", "start_time": "2024-01-16T16:31:10.081098696Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [ { @@ -539,10 +479,7 @@ "cell_type": "markdown", "id": "a5f2d451e08ec155", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "The results in this case are just four `None` values since our function doesn't return anything:" @@ -557,10 +494,7 @@ "end_time": "2024-01-16T16:31:10.223479222Z", "start_time": "2024-01-16T16:31:10.180906772Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [ { @@ -582,10 +516,7 @@ "cell_type": "markdown", "id": "84a590acb0626ee9", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "We can also instruct the `apply` method to pass a `DataFrame` instead of a dictionary of properties to the function. This is useful if you want to use the `pandas.DataFrame` API to process the data:" @@ -600,10 +531,7 @@ "end_time": "2024-01-16T16:31:10.254595551Z", "start_time": "2024-01-16T16:31:10.227714969Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [ { @@ -633,10 +561,7 @@ "cell_type": "markdown", "id": "a14646b3cc04daee", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "**WARNING:** The `apply` method does not guarantee that the results will be returned in the same order as the chunks were processed. This is because the chunks are processed in parallel and the order depends on the order in which the parallel processes finish." @@ -646,10 +571,7 @@ "cell_type": "markdown", "id": "39fcfa580de331", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "### Molecule Processors\n", @@ -666,10 +588,7 @@ "end_time": "2024-01-16T16:31:10.307074944Z", "start_time": "2024-01-16T16:31:10.228216373Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [ { @@ -734,10 +653,7 @@ "cell_type": "markdown", "id": "d4a679c7ec23c64a", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "With `processMols`, we can also automatically convert the molecules to RDKit molecules before passing them to the processor:" @@ -752,10 +668,7 @@ "end_time": "2024-01-16T16:31:10.955175012Z", "start_time": "2024-01-16T16:31:10.278782050Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [ { @@ -803,10 +716,7 @@ "cell_type": "markdown", "id": "4927b7b9fe7bfa4c", "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "source": [ "You can also derive from `MolProcessorWithID` if you want to access the molecule IDs provided by the data set in your processor. This is useful to overcome the issue that the order in which chunks are processed is not guaranteed:" @@ -821,10 +731,7 @@ "end_time": "2024-01-16T16:31:12.843689806Z", "start_time": "2024-01-16T16:31:10.956455648Z" }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } + "collapsed": false }, "outputs": [ { From 935cf1a032cc87b71410e2f200993f9e5e10836a Mon Sep 17 00:00:00 2001 From: martin-sicho Date: Fri, 15 Mar 2024 14:23:51 +0100 Subject: [PATCH 29/29] update CHANGELOG.md --- CHANGELOG.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28e8aca1..05c9f174 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,8 @@ From v3.0.2 to v3.0.3 ## Fixes -- Fixed a bug where an attached standardizer would be refit when calling -`QSPRModel.predictMols` with `use_applicability_domain=True`. +- Fixed a bug where an attached standardizer would be refit when calling + `QSPRModel.predictMols` with `use_applicability_domain=True`. - Fixed random seed not set in `FoldsFromDataSplit.iterFolds` for `ClusterSplit`. ## Changes @@ -14,7 +14,8 @@ None. ## New Features -None. +- Added the `prepMols` method to `DescriptorSet` to allow separated customization of + molecule preparation before descriptor calculation. ## Removed Features