From 78b3c37b25247954e08d6a467ee5405d4ba0df5a Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Tue, 21 Jan 2025 10:10:48 -0800 Subject: [PATCH 01/23] New sklearn transformer wrapper --- atomsci/ddm/pipeline/transformations.py | 41 ++++++++++++++++++ atomsci/ddm/test/unit/test_transformers.py | 48 ++++++++++++++++++++++ 2 files changed, 89 insertions(+) diff --git a/atomsci/ddm/pipeline/transformations.py b/atomsci/ddm/pipeline/transformations.py index 7f42f003..2c7e53ab 100644 --- a/atomsci/ddm/pipeline/transformations.py +++ b/atomsci/ddm/pipeline/transformations.py @@ -264,6 +264,47 @@ def untransform(self, z): # **************************************************************************************** +# **************************************************************************************** +class SklearnTransformerWrapper(Transformer): + """ + This wrapps a given sklearn transformer and converts it to a DeepChem style transformer + """ + def __init__(self, dataset, sklearn_transformer, + transform_X=False, transform_y=False, transform_w=False): + + self.transform_X = transform_X + self.transform_y = transform_y + self.transform_w = transform_w + + assert sum([self.transform_X, self.transform_y, self.transform_w]), \ + "This transformer can operate on only one of X, y, or w." + + self.sklearn_transformer = sklearn_transformer + + if self.transform_X: + self.sklearn_transformer.fit(dataset.X) + elif self.transform_y: + self.sklearn_transformer.fit(dataset.y) + else: + self.sklearn_transformer.fit(dataset.w) + + def transform(self, dataset, parallel=False): + return dataset.transform(self) + + def transform_array(self, X, y, w, ids): + """Transform the data in a set of (X, y, w) arrays.""" + if self.transform_X: + X = self.sklearn_transformer.transform(X) + elif self.transform_y: + y = self.sklearn_transformer.transform(y) + else: + w = self.sklearn_transformer.transform(w) + + return (X, y, w, ids) + + def untransform(self, z: np.ndarray) -> np.ndarray: + return self.sklearn_transformer.inverse_transform(z) + # **************************************************************************************** class NormalizationTransformerMissingData(NormalizationTransformer): diff --git a/atomsci/ddm/test/unit/test_transformers.py b/atomsci/ddm/test/unit/test_transformers.py index 69cfebd6..2c0b6edd 100644 --- a/atomsci/ddm/test/unit/test_transformers.py +++ b/atomsci/ddm/test/unit/test_transformers.py @@ -2,6 +2,54 @@ import numpy as np from deepchem.data import NumpyDataset +from sklearn.preprocessing import RobustScaler, PowerTransformer + +def test_sklearn_transformer_wrapper(): + """ + Creates a mock dataset. + Tests the SklearnTransformerWrapper with RobustScaler on X. + Tests the SklearnTransformerWrapper with PowerTransformer on y. + Tests the SklearnTransformerWrapper with RobustScaler on w. + Asserts that the transformed values match the expected values. + """ + # Create a mock dataset + X = np.array([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]) + y = np.array([[1.0], [3.0], [5.0]]) + w = np.array([[1.0], [1.0], [1.0]]) + ids = np.array(range(len(y))) + dataset = NumpyDataset(X=X, y=y, w=w, ids=ids) + + # Test with RobustScaler on X + scaler = RobustScaler() + transformer = trans.SklearnTransformerWrapper(dataset, scaler, transform_X=True) + transformed_dataset = transformer.transform(dataset) + expected_transformed_X = scaler.fit_transform(X) + np.testing.assert_array_almost_equal(transformed_dataset.X, expected_transformed_X) + + # Test untransform on X + untransformed_X = transformer.untransform(transformed_dataset.X) + np.testing.assert_array_almost_equal(untransformed_X, X) + + # Test with PowerTransformer on y + power_transformer = PowerTransformer() + transformer = trans.SklearnTransformerWrapper(dataset, power_transformer, transform_y=True) + transformed_dataset = transformer.transform(dataset) + expected_transformed_y = power_transformer.fit_transform(y) + np.testing.assert_array_almost_equal(transformed_dataset.y, expected_transformed_y) + + # Test untransform on y + untransformed_y = transformer.untransform(transformed_dataset.y) + np.testing.assert_array_almost_equal(untransformed_y, y) + + # Test with RobustScaler on w + transformer = trans.SklearnTransformerWrapper(dataset, scaler, transform_w=True) + transformed_dataset = transformer.transform(dataset) + expected_transformed_w = scaler.fit_transform(w) + np.testing.assert_array_almost_equal(transformed_dataset.w, expected_transformed_w) + + # Test untransform on w + untransformed_w = transformer.untransform(transformed_dataset.w) + np.testing.assert_array_almost_equal(untransformed_w, w) def test_no_missing_values(): """ From f35e3fbe6e27aa39fca4241196dfac0d88a803bd Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Tue, 21 Jan 2025 10:11:22 -0800 Subject: [PATCH 02/23] This should be an else if since it is an else if in the init and in untransform --- atomsci/ddm/pipeline/transformations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atomsci/ddm/pipeline/transformations.py b/atomsci/ddm/pipeline/transformations.py index 2c7e53ab..9e4d7084 100644 --- a/atomsci/ddm/pipeline/transformations.py +++ b/atomsci/ddm/pipeline/transformations.py @@ -351,7 +351,7 @@ def transform_array(self, X, y, w, ids): X = np.nan_to_num(X * X_weight / self.X_stds) # zero out large values, especially for out of range test data X[np.abs(X) > 1e30] = 1e30 - if self.transform_y: + elif self.transform_y: if not hasattr(self, 'move_mean') or self.move_mean: y = np.nan_to_num((y - self.y_means) / self.y_stds) else: From 458e1885fb52eb99cf89d76820ba9b02243d3f18 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Tue, 21 Jan 2025 10:17:39 -0800 Subject: [PATCH 03/23] Remove UMAP transformer since it is deprecated --- atomsci/ddm/docs/PARAMETERS.md | 41 ---------- atomsci/ddm/pipeline/model_tracker.py | 3 +- atomsci/ddm/pipeline/model_wrapper.py | 5 +- atomsci/ddm/pipeline/parameter_parser.py | 33 ++------ atomsci/ddm/pipeline/transformations.py | 76 +------------------ .../ddm/utils/hyperparam_search_wrapper.py | 3 - 6 files changed, 9 insertions(+), 152 deletions(-) diff --git a/atomsci/ddm/docs/PARAMETERS.md b/atomsci/ddm/docs/PARAMETERS.md index 135b332b..92fe82ac 100644 --- a/atomsci/ddm/docs/PARAMETERS.md +++ b/atomsci/ddm/docs/PARAMETERS.md @@ -16,7 +16,6 @@ The AMPL pipeline contains many parameters and options to fit models and make pr - [Hybrid model](#Hybrid-model) - [Splitting](#Splitting) - [Transformers](#Transformers) - - [UMAP](#UMAP) - [XGBoost](#XGBoost) - [Additional DeepChem Models](#Auto-DCModels) - [Model Saving](#Model-Saving) @@ -635,46 +634,6 @@ the model will train for max_epochs regardless of validation error.| --- - -## UMAP - -- **umap\_dim** - -||| -|-|-| -|*Description:*|Dimension of projected feature space, if UMAP transformation is requested. Can be input as a comma separated list for hyperparameter search (e.g. '2,6,10').| -|*Default:*|10| - -- **umap\_metric** - -||| -|-|-| -|*Description:*|Distance metric used, if UMAP transformation is requested. Can be input as a comma separated list for hyperparameter search (e.g. 'euclidean','cityblock')| -|*Default:*|euclidean| - -- **umap\_min\_dist** - -||| -|-|-| -|*Description:*|Minimum distance used in UMAP projection, if UMAP transformation is requested. Can be input as a comma separated list for hyperparameter search (e.g. '0.01,0.02,0.05')| -|*Default:*|0.05| - -- **umap\_neighbors** - -||| -|-|-| -|*Description:*|Number of nearest neighbors used in UMAP projection, if UMAP transformation is requested. Can be input as a comma separated list for hyperparameter search (e.g. '10,20,30')| -|*Default:*|20| - -- **umap\_targ\_wt** - -||| -|-|-| -|*Description:*|Weight given to training set response values in UMAP projection, if UMAP transformation is requested. Can be input as a comma separated list for hyperparameter search (e.g. '0.0,0.1,0.2')| -|*Default:*|0.0| - ---- - ## XGBoost diff --git a/atomsci/ddm/pipeline/model_tracker.py b/atomsci/ddm/pipeline/model_tracker.py index 61053c7e..9f6a3d85 100644 --- a/atomsci/ddm/pipeline/model_tracker.py +++ b/atomsci/ddm/pipeline/model_tracker.py @@ -459,9 +459,8 @@ def convert_metadata(old_metadata): ("descriptor_specific", 'DescriptorSpecific'), ("nn_specific", "NNSpecific"), ("xgb_specific", "xgbSpecific"), - ("umap_specific", "UmapSpecific"), - ] + for (nkey, okey) in map_keys: value = model_metadata.get(okey) if value is not None: diff --git a/atomsci/ddm/pipeline/model_wrapper.py b/atomsci/ddm/pipeline/model_wrapper.py index 59e515b6..680c4123 100644 --- a/atomsci/ddm/pipeline/model_wrapper.py +++ b/atomsci/ddm/pipeline/model_wrapper.py @@ -504,10 +504,7 @@ def get_num_features(self): the number of dimensions of the feature space, taking both featurization method and transformers into account. """ - if self.params.feature_transform_type == 'umap': - return self.params.umap_dim - else: - return self.featurization.get_feature_count() + return self.featurization.get_feature_count() # **************************************************************************************** diff --git a/atomsci/ddm/pipeline/parameter_parser.py b/atomsci/ddm/pipeline/parameter_parser.py index 7e3b4e0c..e690d3c5 100644 --- a/atomsci/ddm/pipeline/parameter_parser.py +++ b/atomsci/ddm/pipeline/parameter_parser.py @@ -527,7 +527,7 @@ def get_list_args(self): # Parameters that may take lists of values, usually but not always in the context of a hyperparam search convert_to_float_list = {'dropouts','weight_init_stddevs','bias_init_consts','learning_rate', - 'umap_targ_wt', 'umap_min_dist', 'dropout_list','weight_decay_penalty', + 'dropout_list','weight_decay_penalty', 'xgb_learning_rate', 'xgb_gamma', "xgb_min_child_weight", @@ -536,7 +536,7 @@ def get_list_args(self): "ki_convert_ratio" } convert_to_int_list = {'layer_sizes','rf_max_features','rf_estimators', 'rf_max_depth', - 'umap_dim', 'umap_neighbors', 'layer_nums', 'node_nums', + 'layer_nums', 'node_nums', 'xgb_max_depth', 'xgb_n_estimators'}.union(all_auto_int_lists()) convert_to_numeric_list = convert_to_float_list | convert_to_int_list keep_as_list = {'dropouts','weight_init_stddevs','bias_init_consts', @@ -550,9 +550,9 @@ def get_list_args(self): 'xgb_max_depth', 'xgb_n_estimators' } convert_to_str_list = \ - {'response_cols','model_type','featurizer','splitter','umap_metric','weight_decay_penalty_type','descriptor_type'} + {'response_cols','model_type','featurizer','splitter','weight_decay_penalty_type','descriptor_type'} not_a_str_list_outside_of_hyperparams = \ - {'model_type','featurizer','splitter','umap_metric','weight_decay_penalty_type','descriptor_type'} + {'model_type','featurizer','splitter','weight_decay_penalty_type','descriptor_type'} #********************************************************************************************************** def to_str(params_obj): @@ -1252,7 +1252,7 @@ def get_parser(): # ********************************************************************************************************** # model_building_parameters: transformers parser.add_argument( - '--feature_transform_type', dest='feature_transform_type', choices=['normalization', 'umap'], + '--feature_transform_type', dest='feature_transform_type', choices=['normalization'], default='normalization', help='type of transformation for the features') parser.add_argument( '--response_transform_type', dest='response_transform_type', default='normalization', @@ -1276,29 +1276,6 @@ def get_parser(): help='Boolean switch for using transformation on regression output. Default is True') parser.set_defaults(transformers=True) - # ********************************************************************************************************** - # model_building_parameters: UMAP - parser.add_argument( - '--umap_dim', dest='umap_dim', required=False, default='10', - help='Dimension of projected feature space, if UMAP transformation is requested. Can be input as a comma ' - 'separated list for hyperparameter search (e.g. \'2,6,10\').') - parser.add_argument( - '--umap_metric', dest='umap_metric', required=False, default='euclidean', - help='Distance metric used, if UMAP transformation is requested. Can be input as a comma separated list ' - 'for hyperparameter search (e.g. \'euclidean\',\'cityblock\')') - parser.add_argument( - '--umap_min_dist', dest='umap_min_dist', required=False, default='0.05', - help='Minimum distance used in UMAP projection, if UMAP transformation is requested. Can be input as a ' - 'comma separated list for hyperparameter search (e.g. \'0.01,0.02,0.05\')') - parser.add_argument( - '--umap_neighbors', dest='umap_neighbors', required=False, default='20', - help='Number of nearest neighbors used in UMAP projection, if UMAP transformation is requested. Can be input ' - 'as a comma separated list for hyperparameter search (e.g. \'10,20,30\')') - parser.add_argument( - '--umap_targ_wt', dest='umap_targ_wt', required=False, default='0.0', - help='Weight given to training set response values in UMAP projection, if UMAP transformation is requested.' - ' Can be input as a comma separated list for hyperparameter search (e.g. \'0.0,0.1,0.2\')') - # ********************************************************************************************************** # model_building_parameters: XGBoost parser.add_argument( diff --git a/atomsci/ddm/pipeline/transformations.py b/atomsci/ddm/pipeline/transformations.py index 9e4d7084..17a60c13 100644 --- a/atomsci/ddm/pipeline/transformations.py +++ b/atomsci/ddm/pipeline/transformations.py @@ -5,7 +5,6 @@ import logging import numpy as np -import umap from deepchem.trans.transformers import Transformer, NormalizationTransformer, BalancingTransformer from sklearn.impute import SimpleImputer @@ -80,13 +79,7 @@ def create_feature_transformers(params, featurization, train_dset): Returns: (list of DeepChem transformer objects): list of transformers for the feature matrix """ - if params.feature_transform_type == 'umap': - # Map feature vectors using UMAP for dimension reduction - log.warning("UMAP feature transformation is deprecated and will be removed in a future release.") - if params.split_strategy == 'k_fold_cv': - log.warning("Warning: UMAP transformation may produce misleading results when used with K-fold split strategy.") - transformers_x = [UMAPTransformer(params, train_dset)] - elif params.transformers: + if params.transformers: # TODO: Transformers on responses and features should be controlled only by parameters # response_transform_type and feature_transform_type, rather than params.transformers. @@ -133,14 +126,7 @@ def get_transformer_specific_metadata(params): transformer. """ meta_dict = {} - if params.feature_transform_type == 'umap': - umap_dict = dict( - umap_dim = params.umap_dim, - umap_metric = params.umap_metric, - umap_targ_wt = params.umap_targ_wt, - umap_neighbors = params.umap_neighbors, - umap_min_dist = params.umap_min_dist ) - meta_dict['umap_specific'] = umap_dict + return meta_dict # **************************************************************************************** @@ -206,64 +192,6 @@ def get_all_training_datasets(model_dataset): return result -# **************************************************************************************** -class UMAPTransformer(Transformer): - """Dimension reduction transformations using the UMAP algorithm. - - DEPRECATED: Will be removed in a future release. - - Attributes: - mapper (UMAP) : UMAP transformer - scaler (RobustScaler): Centering/scaling transformer - - """ - def __init__(self, params, dataset): - """Initializes a UMAPTransformer object. - - Args: - params (Namespace): Contains parameters used to instantiate the transformer. - - dataset (Dataset): Dataset used to "train" the projection mapping. - """ - - # TODO: decide whether to make n_epochs a parameter - #default_n_epochs = None - default_n_epochs = 500 - - if params.prediction_type == 'classification': - target_metric = 'categorical' - else: - target_metric = 'l2' - self.scaler = RobustScaler() - # Use SimpleImputer to replace missing values (NaNs) with means for each column - self.imputer = SimpleImputer() - scaled_X = self.scaler.fit_transform(self.imputer.fit_transform(dataset.X)) - self.mapper = umap.UMAP(n_neighbors=params.umap_neighbors, - n_components=params.umap_dim, - metric=params.umap_metric, - target_metric=target_metric, - target_weight=params.umap_targ_wt, - min_dist=params.umap_min_dist, - n_epochs=default_n_epochs) - # TODO: How to deal with multitask data? - self.mapper.fit(scaled_X, y=dataset.y.flatten()) - - # **************************************************************************************** - def transform(self, dataset, parallel=False): - return super(UMAPTransformer, self).transform(dataset, parallel=parallel) - - # **************************************************************************************** - def transform_array(self, X, y, w, ids): - X = self.mapper.transform(self.scaler.transform(self.imputer.transform(X))) - return (X, y, w, ids) - - # **************************************************************************************** - def untransform(self, z): - """Reverses stored transformation on provided data.""" - raise NotImplementedError("Can't reverse a UMAP transformation") - # **************************************************************************************** - - # **************************************************************************************** class SklearnTransformerWrapper(Transformer): """ diff --git a/atomsci/ddm/utils/hyperparam_search_wrapper.py b/atomsci/ddm/utils/hyperparam_search_wrapper.py index 264ec6d9..6b2963be 100755 --- a/atomsci/ddm/utils/hyperparam_search_wrapper.py +++ b/atomsci/ddm/utils/hyperparam_search_wrapper.py @@ -135,8 +135,6 @@ def reformat_filter_dict(filter_dict): 'training_dataset': {'bucket', 'dataset_key', 'dataset_oid', 'num_classes','feature_transform_type', 'response_transform_type', 'id_col', 'smiles_col', 'response_cols'}, - 'umap_specific': - {'umap_dim', 'umap_metric', 'umap_min_dist', 'umap_neighbors','umap_targ_wt'} } if filter_dict['model_type'] == 'NN': rename_dict['nn_specific'] = {'baseline_epoch', 'batch_size', 'best_epoch', 'bias_init_consts','dropouts', @@ -270,7 +268,6 @@ def __init__(self, params): self.hyperparam_layers = {'layer_sizes', 'dropouts', 'weight_init_stddevs', 'bias_init_consts'} self.hyperparam_keys = {'model_type', 'featurizer', 'splitter', 'learning_rate', 'weight_decay_penalty', 'rf_estimators', 'rf_max_features', 'rf_max_depth', - 'umap_dim', 'umap_targ_wt', 'umap_metric', 'umap_neighbors', 'umap_min_dist', 'xgb_learning_rate', 'xgb_gamma'} self.nn_specific_keys = {'learning_rate', 'layers','weight_decay_penalty'} From 2479de0ea4ab2e7a3da18ebd8c0a053cb6cff63e Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Tue, 21 Jan 2025 10:18:37 -0800 Subject: [PATCH 04/23] deleted large chunk of commented code --- atomsci/ddm/pipeline/compare_models.py | 196 ------------------------- 1 file changed, 196 deletions(-) diff --git a/atomsci/ddm/pipeline/compare_models.py b/atomsci/ddm/pipeline/compare_models.py index 3e95c88e..28598e60 100644 --- a/atomsci/ddm/pipeline/compare_models.py +++ b/atomsci/ddm/pipeline/compare_models.py @@ -665,202 +665,6 @@ def get_best_models_info(col_names=None, bucket='public', pred_type="regression" top_models_df.to_csv(os.path.join(output_dir, 'best_models_metadata_%s.csv' % shortened_key), index=False) return top_models_df - -# TODO: This function looks like work in progress, should we delete it? -''' -#--------------------------------------------------------------------------------------------------------- -def _get_best_grouped_models_info(collection='pilot_fixed', pred_type='regression', top_n=1, subset='test'): - """Get results for models in the given collection.""" - - if not mlmt_supported: - print("Model tracker not supported in your environment; can examine models saved in filesystem only.") - return - - res_dir = '/usr/local/data/%s_perf' % collection - plt_dir = '%s/Plots' % res_dir - os.makedirs(plt_dir, exist_ok=True) - res_files = os.listdir(res_dir) - suffix = '_%s_model_perf_metrics.csv' % collection - - if pred_type == 'regression': - metric_type = 'r2_score' - else: - metric_type = 'roc_auc_score' - for res_file in res_files: - try: - if not res_file.endswith(suffix): - continue - res_path = os.path.join(res_dir, res_file) - - res_df = pd.read_csv(res_path, index_col=False) - res_df['combo'] = ['%s/%s' % (m,f) for m, f in zip(res_df.model_type.values, res_df.featurizer.values)] - dset_name = res_file.replace(suffix, '') - datasets.append(dset_name) - res_df['dataset'] = dset_name - print(dset_name) - res_df = res_df.sort_values('{0}_{1}'.format(metric_type, subset), ascending=False) - res_df['model_type/feat'] = ['%s/%s' % (m,f) for m, f in zip(res_df.model_type.values, res_df.featurizer.values)] - res_df = res_df.sort_values('{0}_{1}'.format(metric_type, subset), ascending=False) - grouped_df = res_df.groupby('model_type/feat').apply( - lambda t: t.head(top_n) - ).reset_index(drop=True) - top_grouped_models.append(grouped_df) - top_combo = res_df['model_type/feat'].values[0] - top_combo_dsets.append(top_combo + dset_name.lstrip('ATOM_GSK_dskey')) - top_score = res_df['{0}_{1}'.format(metric_type, subset)].values[0] - top_model_feat.append(top_combo) - top_scores.append(top_score) - num_samples.append(res_df['Dataset Size'][0]) - -#------------------------------------------------------------------------------------------------------------------ -def get_umap_nn_model_perf_table(dataset_key, bucket, collection_name, pred_type='regression'): - """Load performance metrics from model tracker for all NN models with the given prediction_type saved in - the model tracker DB under a given collection that were trained against a particular dataset. Show - parameter settings for UMAP transformer for models where they are available. - - Args: - dataset_key (str): Dataset key for training dataset. - - bucket (str): Dataset bucket for training dataset. - - collection_name (str): Name of model tracker collection to search for models. - - pred_type (str): Prediction type ('classification' or 'regression') of models to query. - - Returns: - pd.DataFrame: Table of model performance metrics. - - """ - if not mlmt_supported: - print("Model tracker not supported in your environment; can examine models saved in filesystem only.") - return None - - query_params = { - "match_metadata": { - "training_dataset.bucket": bucket, - "training_dataset.dataset_key": dataset_key, - "model_parameters.model_type" : "NN", - "model_parameters.prediction_type" : pred_type - }, - - "match_metrics": { - "metrics_type": "training", # match only training metrics - "label": "best", - }, - } - query_params['match_metadata'].update(other_filters) - - print("Finding models trained on %s dataset %s" % (bucket, dataset_key)) - mlmt_client = dsf.initialize_model_tracker() - metadata_list = mlmt_client.model.query_model_metadata( - collection_name=collection_name, - query_params=query_params, - ).result() - if metadata_list == []: - print("No matching models returned") - return - else: - print("Found %d matching models" % len(metadata_list)) - - model_uuid_list = [] - learning_rate_list = [] - dropouts_list = [] - layer_sizes_list = [] - featurizer_list = [] - best_epoch_list = [] - max_epochs_list = [] - - feature_transform_type_list = [] - umap_dim_list = [] - umap_targ_wt_list = [] - umap_neighbors_list = [] - umap_min_dist_list = [] - - subsets = ['train', 'valid', 'test'] - - if pred_type == 'regression': - sort_metric = 'r2_score' - metrics = ['r2_score', 'rms_score', 'mae_score'] - else: - sort_metric = 'roc_auc_score' - metrics = ['roc_auc_score', 'prc_auc_score', 'matthews_cc', 'kappa', 'confusion_matrix'] - score_dict = {} - for subset in subsets: - score_dict[subset] = {} - for metric in metrics: - score_dict[subset][metric] = [] - - for metadata_dict in metadata_list: - model_uuid = metadata_dict['model_uuid'] - #print("Got metadata for model UUID %s" % model_uuid) - - # Get model metrics for this model - metrics_dicts = metadata_dict['training_metrics'] - #print("Got %d metrics dicts for model %s" % (len(metrics_dicts), model_uuid)) - if len(metrics_dicts) < 3: - print("Got no or incomplete metrics for model %s, skipping..." % model_uuid) - continue - if len(metrics_dicts) > 3: - raise Exception('Got more than one set of best epoch metrics for model %s' % model_uuid) - subset_metrics = {} - for metrics_dict in metrics_dicts: - subset = metrics_dict['subset'] - subset_metrics[subset] = metrics_dict['prediction_results'] - - model_uuid_list.append(model_uuid) - model_params = metadata_dict['model_parameters'] - model_type = model_params['model_type'] - if model_type != 'NN': - continue - featurizer = model_params['featurizer'] - featurizer_list.append(featurizer) - feature_transform_type = metadata_dict['training_dataset']['feature_transform_type'] - feature_transform_type_list.append(feature_transform_type) - nn_params = metadata_dict['nn_specific'] - max_epochs_list.append(nn_params['max_epochs']) - best_epoch_list.append(nn_params['best_epoch']) - learning_rate_list.append(nn_params['learning_rate']) - layer_sizes_list.append(','.join(['%d' % s for s in nn_params['layer_sizes']])) - dropouts_list.append(','.join(['%.2f' % d for d in nn_params['dropouts']])) - for subset in subsets: - for metric in metrics: - score_dict[subset][metric].append(subset_metrics[subset][metric]) - if 'umap_specific' in metadata_dict: - umap_params = metadata_dict['umap_specific'] - umap_dim_list.append(umap_params['umap_dim']) - umap_targ_wt_list.append(umap_params['umap_targ_wt']) - umap_neighbors_list.append(umap_params['umap_neighbors']) - umap_min_dist_list.append(umap_params['umap_min_dist']) - else: - umap_dim_list.append(nan) - umap_targ_wt_list.append(nan) - umap_neighbors_list.append(nan) - umap_min_dist_list.append(nan) - - - perf_df = pd.DataFrame(dict( - model_uuid=model_uuid_list, - learning_rate=learning_rate_list, - dropouts=dropouts_list, - layer_sizes=layer_sizes_list, - featurizer=featurizer_list, - best_epoch=best_epoch_list, - max_epochs=max_epochs_list, - feature_transform_type=feature_transform_type_list, - umap_dim=umap_dim_list, - umap_targ_wt=umap_targ_wt_list, - umap_neighbors=umap_neighbors_list, - umap_min_dist=umap_min_dist_list )) - for subset in subsets: - for metric in metrics: - metric_col = '%s_%s' % (metric, subset) - perf_df[metric_col] = score_dict[subset][metric] - sort_by = '%s_valid' % sort_metric - - perf_df = perf_df.sort_values(sort_by, ascending=False) - return perf_df -''' - #------------------------------------------------------------------------------------------------------------------ def get_tarball_perf_table(model_tarball, pred_type='classification'): """Retrieve model metadata and performance metrics for a model saved as a tarball (.tar.gz) file. From 9e8dfce3019e596ded56e9fbea0cdfb2ffc0b0b9 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Tue, 21 Jan 2025 14:24:50 -0800 Subject: [PATCH 05/23] Inserted Sklearn RobustScaler and PowerTransformer into the pipeline and added tests --- atomsci/ddm/docs/PARAMETERS.md | 59 +++++++++++++++++-- atomsci/ddm/pipeline/featurization.py | 37 ++++++++++-- atomsci/ddm/pipeline/parameter_parser.py | 44 +++++++++++++- atomsci/ddm/pipeline/transformations.py | 18 ++++-- .../jsons/PowerTransformer_transformer.json | 28 +++++++++ .../jsons/RobustScaler_transformer.json | 32 ++++++++++ .../test_balancing_transformer.py | 32 ++++++++++ ..._NN_mordred_filtered_powertransformer.json | 57 ++++++++++++++++++ ..._fit_NN_mordred_filtered_robustscaler.json | 57 ++++++++++++++++++ .../delaney_Panel/test_delaney_panel.py | 8 +++ 10 files changed, 355 insertions(+), 17 deletions(-) create mode 100644 atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json create mode 100644 atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json create mode 100644 atomsci/ddm/test/integrative/delaney_Panel/jsons/multi_class_random_config_delaney_fit_NN_mordred_filtered_powertransformer.json create mode 100644 atomsci/ddm/test/integrative/delaney_Panel/jsons/multi_class_random_config_delaney_fit_NN_mordred_filtered_robustscaler.json diff --git a/atomsci/ddm/docs/PARAMETERS.md b/atomsci/ddm/docs/PARAMETERS.md index 92fe82ac..bd0192e2 100644 --- a/atomsci/ddm/docs/PARAMETERS.md +++ b/atomsci/ddm/docs/PARAMETERS.md @@ -593,16 +593,17 @@ the model will train for max_epochs regardless of validation error.| ||| |-|-| -|*Description:*|type of transformation for the features| -|*Default:*|normalization| -|*Type:*|Choice| +|*Description:*|type of transformation for the features. Choices are {"normalization", "RobustScaler", "PowerTransformer"}.| +|*Default:*|"normalizaton"| +|*Type:*|choice| - **response\_transform\_type** ||| |-|-| -|*Description:*|type of transformation for the response column (defaults to "normalization") TODO: Not currently implemented| -|*Default:*|normalization| +|*Description:*|type of transformation for the response column. Choices are {"normalization"}| +|*Default:*|"normalization"| +|*Type:*|choice| - **transformer\_bucket** @@ -632,6 +633,54 @@ the model will train for max_epochs regardless of validation error.| |*Default:*|TRUE| |*Type:*|Bool| +- **robustscaler_with_centering** + +||| +|-|-| +|*Description:*|If `True`, center the data before scaling. This will cause `transform` to raise an exception when attempted on sparse matrices, because centering them entails building a dense matrix which in common use cases is likely to be too large to fit in memory.| +|*Default:*|TRUE| +|*Type:*|Bool| + +- **robustscaler_with_scaling** + +||| +|-|-| +|*Description:*|If `True`, scale the data to interquartile range.| +|*Default:*|TRUE| +|*Type:*|Bool| + + - **robustscaler_quartile_range** + +||| +|-|-| +|*Description:*|Quantile range used to calculate `scale_`. By default this is equal to the IQR, i.e., `q_min` is the first quantile and `q_max` is the third quantile. `(q_min, q_max), 0.0 < q_min < q_max < 100.0`| +|*Default:*|(25.0, 75.0)| +|*Type:*|List| + + - **robustscaler_unit_variance** + +||| +|-|-| +|*Description:*|If `True`, scale data so that normally distributed features have a variance of 1. In general, if the difference between the x-values of `q_max` and `q_min` for a standard normal distribution is greater than 1, the dataset will be scaled down. If less than 1, the dataset will be scaled up.| +|*Default:*|FALSE| +|*Type:*|bool| + + - **powertransformer_method** + +||| +|-|-| +|*Description:*|The power transform method. Available methods are: ‘yeo-johnson’ , works with positive and negative values ‘box-cox’, only works with strictly positive values. Choices are {"yeo-johnson", "box-cox"}| +|*Default:*|"yeo-johnson"| +|*Type:*|choice| + + - **powertransformer_standardize** + +||| +|-|-| +|*Description:*|Set to True to apply zero-mean, unit-variance normalization to the transformed output.| +|*Default:*|TRUE| +|*Type:*|Bool| + --- diff --git a/atomsci/ddm/pipeline/featurization.py b/atomsci/ddm/pipeline/featurization.py index 294b432d..dc05d886 100644 --- a/atomsci/ddm/pipeline/featurization.py +++ b/atomsci/ddm/pipeline/featurization.py @@ -22,6 +22,8 @@ from rdkit.Chem import Descriptors from rdkit.ML.Descriptors import MoleculeDescriptors +from sklearn.preprocessing import RobustScaler, PowerTransformer + subclassed_mordred_classes = ['EState', 'MolecularDistanceEdge'] try: from mordred import Calculator, descriptors @@ -615,12 +617,13 @@ def get_feature_count(self): raise NotImplementedError # **************************************************************************************** - def create_feature_transformer(self, dataset): + def create_feature_transformer(self, dataset, params): """Fit a scaling and centering transformation to the feature matrix of the given dataset, and return a DeepChem transformer object holding its parameters. Args: dataset (deepchem.Dataset): featurized dataset + params (Namespace): Contains parameters used to instantiate the featurizer. Returns: Empty list @@ -814,12 +817,13 @@ def featurize_data(self, dset_df, params, contains_responses): return features, ids, vals, attr, w, featurized_dset_df # **************************************************************************************** - def create_feature_transformer(self, dataset): + def create_feature_transformer(self, dataset, params): """Fit a scaling and centering transformation to the feature matrix of the given dataset, and return a DeepChem transformer object holding its parameters. Args: dataset (deepchem.Dataset): featurized dataset + params (Namespace): Contains parameters used to instantiate the featurizer. Returns: Empty list since we will not be transforming the features of a DynamicFeaturization object @@ -1150,12 +1154,13 @@ def featurize_data(self, dset_df, params, contains_responses): raise NotImplementedError # **************************************************************************************** - def create_feature_transformer(self, dataset): + def create_feature_transformer(self, dataset, params): """Fit a scaling and centering transformation to the feature matrix of the given dataset, and return a DeepChem transformer object holding its parameters. Args: dataset (deepchem.Dataset): featurized dataset + params (Namespace): Contains parameters used to instantiate the featurizer. """ # Leave it to subclasses to determine if features should be scaled and centered. @@ -1588,17 +1593,39 @@ def get_feature_count(self): return len(self.get_feature_columns()) # **************************************************************************************** - def create_feature_transformer(self, dataset): + def create_feature_transformer(self, dataset, params): """Fit a scaling and centering transformation to the feature matrix of the given dataset, and return a DeepChem transformer object holding its parameters. Args: dataset (deepchem.Dataset): featurized dataset + params (Namespace): Contains parameters used to instantiate the featurizer. Returns: (list of DeepChem transformer objects): list of transformers for the feature matrix """ - transformers_x = [trans.NormalizationTransformerMissingData(transform_X=True, dataset=dataset)] + if params.feature_transform_type == 'normalization': + transformers_x = [trans.NormalizationTransformerMissingData(transform_X=True, dataset=dataset)] + elif params.feature_transformer_type == 'RobustScaler': + transformers_x = [ + trans.SklearnTransformerWrapper(transform_X=True, dataset=dataset, + sklearn_transformer=RobustScaler( + with_centering=params.robustscaler_with_centering, + with_scaling=params.robustscaler_with_scaling, + quantile_range=params.robustscaler_quartile_range, + unit_variance=params.robustscaler_unit_variance + )) + ] + elif params.feature_transformer_type == 'PowerTransformer': + transformers_x = [ + trans.SklearnTransformerWrapper(transform_X=True, dataset=dataset, + sklearn_transformer=PowerTransformer( + method=params.powertransformer_method, + standardize=params.powertransformer_standardize + )) + ] + else: + transformers_x = [] return transformers_x diff --git a/atomsci/ddm/pipeline/parameter_parser.py b/atomsci/ddm/pipeline/parameter_parser.py index e690d3c5..2d529931 100644 --- a/atomsci/ddm/pipeline/parameter_parser.py +++ b/atomsci/ddm/pipeline/parameter_parser.py @@ -533,7 +533,8 @@ def get_list_args(self): "xgb_min_child_weight", "xgb_subsample", "xgb_colsample_bytree", - "ki_convert_ratio" + "ki_convert_ratio", + "robustscaler_quartile_range" } convert_to_int_list = {'layer_sizes','rf_max_features','rf_estimators', 'rf_max_depth', 'layer_nums', 'node_nums', @@ -1252,11 +1253,13 @@ def get_parser(): # ********************************************************************************************************** # model_building_parameters: transformers parser.add_argument( - '--feature_transform_type', dest='feature_transform_type', choices=['normalization'], + '--feature_transform_type', dest='feature_transform_type', + choices=['normalization', 'RobustScaler', 'PowerTransformer'], default='normalization', help='type of transformation for the features') parser.add_argument( '--response_transform_type', dest='response_transform_type', default='normalization', - help='type of normalization for the response column TODO: Not currently implemented') + choices=['normalization'], + help='type of normalization for the response column.') parser.add_argument( '--weight_transform_type', dest='weight_transform_type', choices=[None, 'None', 'balancing'], default=None, help='type of normalization for the weights') @@ -1274,6 +1277,41 @@ def get_parser(): parser.add_argument( '--transformers', dest='transformers', action='store_false', help='Boolean switch for using transformation on regression output. Default is True') + + # RobustScaler parameters + parser.add_argument( + '--robustscaler_with_centering', action='store_false', + help='If True, center the data before scaling. ' + 'This will cause transform to raise an exception when attempted on sparse matrices, ' + 'because centering them entails building a dense matrix which in common use ' + 'cases is likely to be too large to fit in memory. Default is True') + parser.add_argument( + '--robustscaler_with_scaling', action='store_false', + help='If True, scale the data to interquartile range. Default is True') + parser.add_argument( + '--robustscaler_quartile_range', type=str, default='25.0,75.0', + help='Quantile range used to calculate scale_. ' + 'By default this is equal to the IQR, i.e., ' + 'q_min is the first quantile and q_max is the third quantile. ' + '(q_min, q_max), 0.0 < q_min < q_max < 100.0. Default is "25.0,75.0"') + parser.add_argument( + '--robustscaler_with_scaling', action='store_true', + help='If True, scale data so that normally distributed features have a variance of 1. ' + 'In general, if the difference between the x-values of q_max and q_min for a standard ' + 'normal distribution is greater than 1, the dataset will be scaled down. ' + 'If less than 1, the dataset will be scaled up. Default is False.') + + # PowerTransformer parameters + parser.add_argument( + '--powertransformer_method', choices=['yeo-johnson', 'box-cox'], + help='The power transform method. Available methods are: "yeo-johnson", ' + 'works with positive and negative values "box-cox", only works with strictly positive values. ' + 'Choices are {"yeo-johnson", "box-cox"}') + parser.add_argument( + '--powertransformer_standardize', action='store_false', + help='Set to True to apply zero-mean, unit-variance normalization to the transformed output. ' + 'Default is True.') + parser.set_defaults(transformers=True) # ********************************************************************************************************** diff --git a/atomsci/ddm/pipeline/transformations.py b/atomsci/ddm/pipeline/transformations.py index 17a60c13..c1867847 100644 --- a/atomsci/ddm/pipeline/transformations.py +++ b/atomsci/ddm/pipeline/transformations.py @@ -7,8 +7,7 @@ import numpy as np from deepchem.trans.transformers import Transformer, NormalizationTransformer, BalancingTransformer -from sklearn.impute import SimpleImputer -from sklearn.preprocessing import RobustScaler + logging.basicConfig(format='%(asctime)-15s %(message)s') log = logging.getLogger('ATOM') @@ -84,7 +83,7 @@ def create_feature_transformers(params, featurization, train_dset): # response_transform_type and feature_transform_type, rather than params.transformers. # Scale and center feature matrix if featurization type calls for it - transformers_x = featurization.create_feature_transformer(train_dset) + transformers_x = featurization.create_feature_transformer(train_dset, params) else: transformers_x = [] @@ -126,7 +125,18 @@ def get_transformer_specific_metadata(params): transformer. """ meta_dict = {} - + if params.feature_transform_type == 'RobustScaler': + robustscaler_dict = dict( + robustscaler_with_centering = params.robustscaler_with_centering, + robustscaler_with_scaling = params.robustscaler_with_scaling, + robustscaler_with_quartile_range = params.robustscaler_quartile_range, + robustscaler_unit_variance = params.robustscaler_unit_variance,) + meta_dict['robustscaler_specific'] = robustscaler_dict + if params.feature_transform_type == 'PowerTransformer': + powertransformer_dict = dict( + powertransformer_method = params.powertransformer_method, + powertransformer_standardize = params.powertransformer_standardize) + meta_dict['powertransformer_specific'] = powertransformer_dict return meta_dict # **************************************************************************************** diff --git a/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json b/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json new file mode 100644 index 00000000..f83e464e --- /dev/null +++ b/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json @@ -0,0 +1,28 @@ +{ + "dataset_key" : "replaced", + "datastore" : "False", + "uncertainty": "False", + "splitter": "scaffold", + "split_valid_frac": "0.20", + "split_test_frac": "0.20", + "split_strategy": "train_valid_test", + "prediction_type": "classification", + "model_choice_score_type": "roc_auc", + "response_cols" : "active", + "id_col": "compound_id", + "smiles_col" : "rdkit_smiles", + "result_dir": "replaced", + "system": "LC", + "transformers": "True", + "model_type": "NN", + "featurizer": "ecfp", + "feature_transform_type": "PowerTransformer", + "learning_rate": ".0007", + "layer_sizes": "20,10", + "dropouts": "0.3,0.3", + "save_results": "False", + "max_epochs": "2", + "early_stopping_patience": "2", + "verbose": "False", + "seed":"0" + } \ No newline at end of file diff --git a/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json b/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json new file mode 100644 index 00000000..2aa2323a --- /dev/null +++ b/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json @@ -0,0 +1,32 @@ +{ + "dataset_key" : "replaced", + "datastore" : "False", + "uncertainty": "False", + "splitter": "scaffold", + "split_valid_frac": "0.20", + "split_test_frac": "0.20", + "split_strategy": "train_valid_test", + "prediction_type": "classification", + "model_choice_score_type": "roc_auc", + "response_cols" : "active", + "id_col": "compound_id", + "smiles_col" : "rdkit_smiles", + "result_dir": "replaced", + "system": "LC", + "transformers": "True", + "model_type": "NN", + "featurizer": "ecfp", + "feature_transform_type": "RobustScaler", + "robustscaler_with_center": "True", + "robustscaler_with_scaling": "True", + "robustscaler_with_quartile_range": "30.0,80.0", + "robustscaler_unit_variance": "True", + "learning_rate": ".0007", + "layer_sizes": "20,10", + "dropouts": "0.3,0.3", + "save_results": "False", + "max_epochs": "2", + "early_stopping_patience": "2", + "verbose": "False", + "seed":"0" + } \ No newline at end of file diff --git a/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py b/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py index f09369e7..7d766db0 100644 --- a/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py +++ b/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py @@ -7,6 +7,8 @@ import os import json +from sklearn.preprocessing import RobustScaler, PowerTransformer + import sys sys.path.append(os.path.join(os.path.dirname(__file__), '..')) import make_test_datasets @@ -328,6 +330,36 @@ def test_kfold_regression_transformers(): # transformer means should be around expected_mean np.testing.assert_array_almost_equal(transformer.y_means, expected_y_means) +def test_sklearn_transformers(): + """ + Test the balancing transformer to ensure that it correctly adjusts weights for imbalanced datasets. + """ + dset_key = make_relative_to_file('../../test_datasets/MRP3_dataset.csv') + res_dir = tempfile.mkdtemp() + + robustscaler_params = read_params( + make_relative_to_file('jsons/RobustScaler_transformer.json'), + dset_key, + res_dir + ) + + robustscaler_pipe = make_pipeline(robustscaler_params) + transformers_x = robustscaler_pipe.model_wrapper.transformers_x + assert len(transformers_x)==1 + assert isinstance(transformers_x[0], trans.SklearnTransformerWrapper) + assert isinstance(transformers_x[0].sklearn_transformer, RobustScaler) + + powertransformer_params = read_params( + make_relative_to_file('jsons/PowerTransformer_transformer.json'), + dset_key, + res_dir + ) + + powertransformer_pipe = make_pipeline(powertransformer_params) + transformers_x = powertransformer_pipe.model_wrapper.transformers_x + assert len(transformers_x)==1 + assert isinstance(transformers_x[0], trans.SklearnTransformerWrapper) + assert isinstance(transformers_x[0].sklearn_transformer, PowerTransformer) if __name__ == '__main__': test_kfold_regression_transformers() diff --git a/atomsci/ddm/test/integrative/delaney_Panel/jsons/multi_class_random_config_delaney_fit_NN_mordred_filtered_powertransformer.json b/atomsci/ddm/test/integrative/delaney_Panel/jsons/multi_class_random_config_delaney_fit_NN_mordred_filtered_powertransformer.json new file mode 100644 index 00000000..ec2a8592 --- /dev/null +++ b/atomsci/ddm/test/integrative/delaney_Panel/jsons/multi_class_random_config_delaney_fit_NN_mordred_filtered_powertransformer.json @@ -0,0 +1,57 @@ +{ + "comment": "System", + "comment": "----------------------------------------", + "system": "LC", + "datastore": "False", + "save_results": "False", + "data_owner": "username", + + "comment": "Input file", + "comment": "----------------------------------------", + "comment": "Note: dataset_key must be a path/file name: E.G. ./dataset.csv", + "dataset_key": "./delaney-processed_curated_fit.csv", + "id_col": "Compound ID", + "smiles_col": "smiles", + + "comment": "Prediction Type", + "comment": "----------------------------------------", + "response_cols": ["measured log solubility in mols per litre_class", + "measured log solubility in mols per litre_class2"], + "num_model_tasks": 2, + "prediction_type": "classification", + + "comment": "Features", + "comment": "----------------------------------------", + "featurizer": "computed_descriptors", + + "comment": "Descriptors", + "comment": "----------------------------------------", + "descriptor_type": "mordred_filtered", + + "comment": "Splitting", + "comment": "----------------------------------------", + "base_spliter": "random", + "spliter": "random", + + "comment": "Model", + "comment": "----------------------------------------", + "model_type": "NN", + "dropout": ".01,.01,.01", + "layer_sizes": "64,64,64", + "learning_rate": "0.007", + "max_epochs": "50", + + "comment": "Transformers", + "comment": "----------------------------------------", + "comment": "Feature transformer type", + "feature_transformer_type": "PowerTransformer", + + "comment": "Training", + "comment": "----------------------------------------", + "comment": "This regulates how long to train the model", + "early_stopping_patience": "50", + + "comment": "Results", + "comment": "----------------------------------------", + "result_dir": "result" +} diff --git a/atomsci/ddm/test/integrative/delaney_Panel/jsons/multi_class_random_config_delaney_fit_NN_mordred_filtered_robustscaler.json b/atomsci/ddm/test/integrative/delaney_Panel/jsons/multi_class_random_config_delaney_fit_NN_mordred_filtered_robustscaler.json new file mode 100644 index 00000000..6f73e363 --- /dev/null +++ b/atomsci/ddm/test/integrative/delaney_Panel/jsons/multi_class_random_config_delaney_fit_NN_mordred_filtered_robustscaler.json @@ -0,0 +1,57 @@ +{ + "comment": "System", + "comment": "----------------------------------------", + "system": "LC", + "datastore": "False", + "save_results": "False", + "data_owner": "username", + + "comment": "Input file", + "comment": "----------------------------------------", + "comment": "Note: dataset_key must be a path/file name: E.G. ./dataset.csv", + "dataset_key": "./delaney-processed_curated_fit.csv", + "id_col": "Compound ID", + "smiles_col": "smiles", + + "comment": "Prediction Type", + "comment": "----------------------------------------", + "response_cols": ["measured log solubility in mols per litre_class", + "measured log solubility in mols per litre_class2"], + "num_model_tasks": 2, + "prediction_type": "classification", + + "comment": "Features", + "comment": "----------------------------------------", + "featurizer": "computed_descriptors", + + "comment": "Descriptors", + "comment": "----------------------------------------", + "descriptor_type": "mordred_filtered", + + "comment": "Splitting", + "comment": "----------------------------------------", + "base_spliter": "random", + "spliter": "random", + + "comment": "Model", + "comment": "----------------------------------------", + "model_type": "NN", + "dropout": ".01,.01,.01", + "layer_sizes": "64,64,64", + "learning_rate": "0.007", + "max_epochs": "50", + + "comment": "Transformers", + "comment": "----------------------------------------", + "comment": "Feature transformer type", + "feature_transformer_type": "RobustScaler", + + "comment": "Training", + "comment": "----------------------------------------", + "comment": "This regulates how long to train the model", + "early_stopping_patience": "50", + + "comment": "Results", + "comment": "----------------------------------------", + "result_dir": "result" +} diff --git a/atomsci/ddm/test/integrative/delaney_Panel/test_delaney_panel.py b/atomsci/ddm/test/integrative/delaney_Panel/test_delaney_panel.py index f05bc998..ac83c245 100644 --- a/atomsci/ddm/test/integrative/delaney_Panel/test_delaney_panel.py +++ b/atomsci/ddm/test/integrative/delaney_Panel/test_delaney_panel.py @@ -306,6 +306,14 @@ def test_multi_class_random_config_delaney_fit_NN_mordred_filtered(): init() train_and_predict('jsons/multi_class_random_config_delaney_fit_NN_mordred_filtered.json') # crashes during run +def test_multi_class_random_config_delaney_fit_NN_mordred_filtered_robustscaler(): + init() + train_and_predict('jsons/multi_class_random_config_delaney_fit_NN_mordred_filtered_robustscaler.json') # crashes during run + +def test_multi_class_random_config_delaney_fit_NN_mordred_filtered_powertransformer(): + init() + train_and_predict('jsons/multi_class_random_config_delaney_fit_NN_mordred_filtered_powertransformer.json') # crashes during run + def test_multi_class_config_delaney_fit_NN_graphconv(): init() train_and_predict('jsons/multi_class_config_delaney_fit_NN_graphconv.json') # fine From 53d3f74a185f50bba8297d9bca817d7ba1bc88d3 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Tue, 21 Jan 2025 14:39:10 -0800 Subject: [PATCH 06/23] Fixed argument name. Changed from robustscaler_with_scaling to robustscaler_unit_variance --- atomsci/ddm/pipeline/parameter_parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atomsci/ddm/pipeline/parameter_parser.py b/atomsci/ddm/pipeline/parameter_parser.py index 2d529931..93a077bf 100644 --- a/atomsci/ddm/pipeline/parameter_parser.py +++ b/atomsci/ddm/pipeline/parameter_parser.py @@ -1295,7 +1295,7 @@ def get_parser(): 'q_min is the first quantile and q_max is the third quantile. ' '(q_min, q_max), 0.0 < q_min < q_max < 100.0. Default is "25.0,75.0"') parser.add_argument( - '--robustscaler_with_scaling', action='store_true', + '--robustscaler_unit_variance', action='store_true', help='If True, scale data so that normally distributed features have a variance of 1. ' 'In general, if the difference between the x-values of q_max and q_min for a standard ' 'normal distribution is greater than 1, the dataset will be scaled down. ' From 8feea361208d532c1514b4ecde4aa1043dbcb92d Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Tue, 21 Jan 2025 15:51:46 -0800 Subject: [PATCH 07/23] Updated test to use mordred_filtered features. Added arguments to default true and default false lists --- atomsci/ddm/pipeline/parameter_parser.py | 7 +++++-- .../jsons/PowerTransformer_transformer.json | 3 ++- .../jsons/RobustScaler_transformer.json | 5 +++-- .../balancing_trans/test_balancing_transformer.py | 15 ++++++++------- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/atomsci/ddm/pipeline/parameter_parser.py b/atomsci/ddm/pipeline/parameter_parser.py index 93a077bf..2bd23edf 100644 --- a/atomsci/ddm/pipeline/parameter_parser.py +++ b/atomsci/ddm/pipeline/parameter_parser.py @@ -775,8 +775,11 @@ def dict_to_list(inp_dictionary,replace_spaces=False): temp_list_to_command_line = [] # Special case handling for arguments that are False or True by default - default_false = ['previously_split','use_shortlist','datastore', 'save_results','verbose', 'hyperparam', 'split_only', 'is_ki', 'production'] - default_true = ['transformers','previously_featurized','uncertainty', 'rerun'] + default_false = ['previously_split','use_shortlist','datastore', 'save_results','verbose', 'hyperparam', 'split_only', 'is_ki', 'production', + 'robustscaler_unit_variance'] + default_true = ['transformers','previously_featurized','uncertainty', 'rerun', + 'robustscaler_with_centering', 'robustscaler_with_scaling', + 'powertransformer_standardize'] for key, value in inp_dictionary.items(): if key in default_false: true_options = ['True','true','ture','TRUE','Ture'] diff --git a/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json b/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json index f83e464e..fa533976 100644 --- a/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json +++ b/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json @@ -15,7 +15,8 @@ "system": "LC", "transformers": "True", "model_type": "NN", - "featurizer": "ecfp", + "featurizer": "computed_descriptors", + "descriptor_type": "rdkit_raw", "feature_transform_type": "PowerTransformer", "learning_rate": ".0007", "layer_sizes": "20,10", diff --git a/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json b/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json index 2aa2323a..45a1b8ed 100644 --- a/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json +++ b/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json @@ -15,11 +15,12 @@ "system": "LC", "transformers": "True", "model_type": "NN", - "featurizer": "ecfp", + "featurizer": "computed_descriptors", + "descriptor_type": "rdkit_raw", "feature_transform_type": "RobustScaler", "robustscaler_with_center": "True", "robustscaler_with_scaling": "True", - "robustscaler_with_quartile_range": "30.0,80.0", + "robustscaler_quartile_range": "30.0,80.0", "robustscaler_unit_variance": "True", "learning_rate": ".0007", "layer_sizes": "20,10", diff --git a/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py b/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py index 7d766db0..0c6bf5f2 100644 --- a/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py +++ b/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py @@ -345,9 +345,9 @@ def test_sklearn_transformers(): robustscaler_pipe = make_pipeline(robustscaler_params) transformers_x = robustscaler_pipe.model_wrapper.transformers_x - assert len(transformers_x)==1 - assert isinstance(transformers_x[0], trans.SklearnTransformerWrapper) - assert isinstance(transformers_x[0].sklearn_transformer, RobustScaler) + assert len(transformers_x[0])==1 + assert isinstance(transformers_x[0][0], trans.SklearnTransformerWrapper) + assert isinstance(transformers_x[0][0].sklearn_transformer, RobustScaler) powertransformer_params = read_params( make_relative_to_file('jsons/PowerTransformer_transformer.json'), @@ -357,12 +357,13 @@ def test_sklearn_transformers(): powertransformer_pipe = make_pipeline(powertransformer_params) transformers_x = powertransformer_pipe.model_wrapper.transformers_x - assert len(transformers_x)==1 - assert isinstance(transformers_x[0], trans.SklearnTransformerWrapper) - assert isinstance(transformers_x[0].sklearn_transformer, PowerTransformer) + assert len(transformers_x[0])==1 + assert isinstance(transformers_x[0][0], trans.SklearnTransformerWrapper) + assert isinstance(transformers_x[0][0].sklearn_transformer, PowerTransformer) if __name__ == '__main__': - test_kfold_regression_transformers() + test_sklearn_transformers() + #test_kfold_regression_transformers() #test_kfold_transformers() #test_all_transformers() #test_balancing_transformer() \ No newline at end of file From 1eda346480f70c4c8139a60bbc717050f77bb286 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Tue, 21 Jan 2025 16:56:59 -0800 Subject: [PATCH 08/23] feature_transformer_type should be feature_transform_type --- atomsci/ddm/pipeline/featurization.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/atomsci/ddm/pipeline/featurization.py b/atomsci/ddm/pipeline/featurization.py index dc05d886..fe0eb3db 100644 --- a/atomsci/ddm/pipeline/featurization.py +++ b/atomsci/ddm/pipeline/featurization.py @@ -1606,7 +1606,7 @@ def create_feature_transformer(self, dataset, params): """ if params.feature_transform_type == 'normalization': transformers_x = [trans.NormalizationTransformerMissingData(transform_X=True, dataset=dataset)] - elif params.feature_transformer_type == 'RobustScaler': + elif params.feature_transform_type == 'RobustScaler': transformers_x = [ trans.SklearnTransformerWrapper(transform_X=True, dataset=dataset, sklearn_transformer=RobustScaler( @@ -1616,7 +1616,7 @@ def create_feature_transformer(self, dataset, params): unit_variance=params.robustscaler_unit_variance )) ] - elif params.feature_transformer_type == 'PowerTransformer': + elif params.feature_transform_type == 'PowerTransformer': transformers_x = [ trans.SklearnTransformerWrapper(transform_X=True, dataset=dataset, sklearn_transformer=PowerTransformer( From fd2269227b0be11a423c39cbda3b757c2b20c98c Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Wed, 22 Jan 2025 08:10:39 -0800 Subject: [PATCH 09/23] unit_variance parameter must be a tuple --- atomsci/ddm/pipeline/featurization.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/atomsci/ddm/pipeline/featurization.py b/atomsci/ddm/pipeline/featurization.py index fe0eb3db..e81532f2 100644 --- a/atomsci/ddm/pipeline/featurization.py +++ b/atomsci/ddm/pipeline/featurization.py @@ -1607,6 +1607,10 @@ def create_feature_transformer(self, dataset, params): if params.feature_transform_type == 'normalization': transformers_x = [trans.NormalizationTransformerMissingData(transform_X=True, dataset=dataset)] elif params.feature_transform_type == 'RobustScaler': + # Check unit_variance has length 2 and convert it into a tuple + unit_variance = params.robustscaler_unit_variance + assert len(unit_variance) == 2, f'robustscaler_unit_variance must have length 2, got {unit_variance}.' + unit_variance = (unit_variance[0], unit_variance[1]) transformers_x = [ trans.SklearnTransformerWrapper(transform_X=True, dataset=dataset, sklearn_transformer=RobustScaler( From 28cd0e0a14c2c685fbbd7981fe6d69fee8739617 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Wed, 22 Jan 2025 11:35:16 -0800 Subject: [PATCH 10/23] Convert quartiles --- atomsci/ddm/pipeline/featurization.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/atomsci/ddm/pipeline/featurization.py b/atomsci/ddm/pipeline/featurization.py index e81532f2..6d490f38 100644 --- a/atomsci/ddm/pipeline/featurization.py +++ b/atomsci/ddm/pipeline/featurization.py @@ -1607,16 +1607,16 @@ def create_feature_transformer(self, dataset, params): if params.feature_transform_type == 'normalization': transformers_x = [trans.NormalizationTransformerMissingData(transform_X=True, dataset=dataset)] elif params.feature_transform_type == 'RobustScaler': - # Check unit_variance has length 2 and convert it into a tuple - unit_variance = params.robustscaler_unit_variance - assert len(unit_variance) == 2, f'robustscaler_unit_variance must have length 2, got {unit_variance}.' - unit_variance = (unit_variance[0], unit_variance[1]) + # Check quartile_range has length 2 and convert it into a tuple + quartiles = params.robustscaler_quartile_range + assert len(quartiles) == 2, f'robustscaler_quartile_range must have length 2, got {quartiles}.' + quartiles = (quartiles[0], quartiles[1]) transformers_x = [ trans.SklearnTransformerWrapper(transform_X=True, dataset=dataset, sklearn_transformer=RobustScaler( with_centering=params.robustscaler_with_centering, with_scaling=params.robustscaler_with_scaling, - quantile_range=params.robustscaler_quartile_range, + quantile_range=quartiles, unit_variance=params.robustscaler_unit_variance )) ] From 77c8b2601d93d64e8d360823c8077e348b06bae0 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Wed, 22 Jan 2025 15:00:02 -0800 Subject: [PATCH 11/23] Updated rdkit to use AvgIpc for a numerically better behaved feature --- atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv b/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv index 787842ae..1a72e7b0 100644 --- a/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv +++ b/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv @@ -8,4 +8,4 @@ moe_scaled_filtered,ASA+_per_atom;ASA-;ASA_H_per_atom;ASA_P;ASA_per_atom;BCUT_PE moe_informative,ASA+;ASA-;ASA_H;ASA_P;ASA;BCUT_PEOE_0;BCUT_PEOE_1;BCUT_PEOE_2;BCUT_PEOE_3;BCUT_SLOGP_0;BCUT_SLOGP_1;BCUT_SLOGP_2;BCUT_SLOGP_3;BCUT_SMR_0;BCUT_SMR_1;BCUT_SMR_2;BCUT_SMR_3;CASA+;CASA-;DASA;DCASA;E;E_ang;E_ele;E_nb;E_oop;E_sol;E_stb;E_str;E_strain;E_tor;E_vdw;FASA+;FASA-;FASA_H;FASA_P;FCASA+;FCASA-;FCharge;GCUT_PEOE_0;GCUT_PEOE_1;GCUT_PEOE_2;GCUT_PEOE_3;GCUT_SLOGP_0;GCUT_SLOGP_1;GCUT_SLOGP_2;GCUT_SLOGP_3;GCUT_SMR_0;GCUT_SMR_1;GCUT_SMR_2;GCUT_SMR_3;Kier1;Kier2;Kier3;KierA1;KierA2;KierA3;KierFlex;PC+;PC-;PEOE_PC+;PEOE_PC-;PEOE_RPC+;PEOE_RPC-;PEOE_VSA+0;PEOE_VSA+1;PEOE_VSA+2;PEOE_VSA+3;PEOE_VSA+4;PEOE_VSA+5;PEOE_VSA+6;PEOE_VSA-0;PEOE_VSA-1;PEOE_VSA-2;PEOE_VSA-3;PEOE_VSA-4;PEOE_VSA-5;PEOE_VSA-6;PEOE_VSA_FHYD;PEOE_VSA_FNEG;PEOE_VSA_FPNEG;PEOE_VSA_FPPOS;PEOE_VSA_HYD;PEOE_VSA_NEG;PEOE_VSA_PNEG;PEOE_VSA_POL;PEOE_VSA_POS;PEOE_VSA_PPOS;Q_VSA_FHYD;Q_VSA_FPNEG;Q_VSA_FPOS;Q_VSA_FPPOS;Q_VSA_HYD;Q_VSA_NEG;Q_VSA_PNEG;Q_VSA_POL;Q_VSA_POS;Q_VSA_PPOS;RPC+;RPC-;SMR_VSA0;SMR_VSA1;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR;SlogP;SlogP_VSA0;SlogP_VSA1;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;TPSA;VAdjEq;VAdjMa;VDistEq;VDistMa;VSA;Weight;a_IC;a_acc;a_acid;a_aro;a_base;a_count;a_don;a_donacc;a_heavy;a_hyd;a_nB;a_nBr;a_nC;a_nCl;a_nF;a_nI;a_nN;a_nO;a_nP;a_nS;apol;ast_fraglike;ast_fraglike_ext;ast_violation;ast_violation_ext;b_1rotN;b_1rotR;b_ar;b_count;b_double;b_heavy;b_max1len;b_rotN;b_rotR;b_single;b_triple;balabanJ;bpol;chi0_C;chi0;chi0v_C;chi0v;chi1_C;chi1;chi1v_C;chi1v;chiral;chiral_u;dens;density;diameter;dipole;dipoleX;dipoleY;dipoleZ;glob;h_ema;h_emd_C;h_emd;h_logD;h_logP;h_logS;h_log_dbo;h_log_pbo;h_mr;h_pKa;h_pKb;h_pavgQ;h_pstates;h_pstrain;lip_acc;lip_don;lip_druglike;lip_violation;logP(o/w);logS;mr;mutagenic;npr1;npr2;opr_brigid;opr_leadlike;opr_nrot;opr_violation;petitjean;petitjeanSC;pmi1;pmi2;pmi3;pmiX;pmiY;pmiZ;pmi;radius;reactive;rgyr;rings;rsynth;std_dim1;std_dim2;std_dim3;vdw_area;vdw_vol;vol;vsa_acc;vsa_acid;vsa_base;vsa_don;vsa_hyd;vsa_other;vsa_pol;vsurf_A;vsurf_CP;vsurf_CW1;vsurf_CW2;vsurf_CW3;vsurf_CW4;vsurf_CW5;vsurf_CW6;vsurf_CW7;vsurf_CW8;vsurf_D1;vsurf_D2;vsurf_D3;vsurf_D4;vsurf_D5;vsurf_D6;vsurf_D7;vsurf_D8;vsurf_DD12;vsurf_DD13;vsurf_DD23;vsurf_DW12;vsurf_DW13;vsurf_DW23;vsurf_EDmin1;vsurf_EDmin2;vsurf_EDmin3;vsurf_EWmin1;vsurf_EWmin2;vsurf_EWmin3;vsurf_G;vsurf_HB1;vsurf_HB2;vsurf_HB3;vsurf_HB4;vsurf_HB5;vsurf_HB6;vsurf_HB7;vsurf_HB8;vsurf_HL1;vsurf_HL2;vsurf_ID1;vsurf_ID2;vsurf_ID3;vsurf_ID4;vsurf_ID5;vsurf_ID6;vsurf_ID7;vsurf_ID8;vsurf_IW1;vsurf_IW2;vsurf_IW3;vsurf_IW4;vsurf_IW5;vsurf_IW6;vsurf_IW7;vsurf_IW8;vsurf_R;vsurf_S;vsurf_V;vsurf_W1;vsurf_W2;vsurf_W3;vsurf_W4;vsurf_W5;vsurf_W6;vsurf_W7;vsurf_W8;vsurf_Wp1;vsurf_Wp2;vsurf_Wp3;vsurf_Wp4;vsurf_Wp5;vsurf_Wp6;vsurf_Wp7;vsurf_Wp8;weinerPath;weinerPol;zagreb,0,moe mordred_raw,ABC;ABCGG;nAcid;nBase;SpAbs_A;SpMax_A;SpDiam_A;SpAD_A;SpMAD_A;LogEE_A;VE1_A;VE2_A;VE3_A;VR1_A;VR2_A;VR3_A;nAromAtom;nAromBond;nAtom;nHeavyAtom;nSpiro;nBridgehead;nHetero;nH;nB;nC;nN;nO;nS;nP;nF;nCl;nBr;nI;nX;ATS0dv;ATS1dv;ATS2dv;ATS3dv;ATS4dv;ATS5dv;ATS6dv;ATS7dv;ATS8dv;ATS0d;ATS1d;ATS2d;ATS3d;ATS4d;ATS5d;ATS6d;ATS7d;ATS8d;ATS0s;ATS1s;ATS2s;ATS3s;ATS4s;ATS5s;ATS6s;ATS7s;ATS8s;ATS0Z;ATS1Z;ATS2Z;ATS3Z;ATS4Z;ATS5Z;ATS6Z;ATS7Z;ATS8Z;ATS0m;ATS1m;ATS2m;ATS3m;ATS4m;ATS5m;ATS6m;ATS7m;ATS8m;ATS0v;ATS1v;ATS2v;ATS3v;ATS4v;ATS5v;ATS6v;ATS7v;ATS8v;ATS0se;ATS1se;ATS2se;ATS3se;ATS4se;ATS5se;ATS6se;ATS7se;ATS8se;ATS0pe;ATS1pe;ATS2pe;ATS3pe;ATS4pe;ATS5pe;ATS6pe;ATS7pe;ATS8pe;ATS0are;ATS1are;ATS2are;ATS3are;ATS4are;ATS5are;ATS6are;ATS7are;ATS8are;ATS0p;ATS1p;ATS2p;ATS3p;ATS4p;ATS5p;ATS6p;ATS7p;ATS8p;ATS0i;ATS1i;ATS2i;ATS3i;ATS4i;ATS5i;ATS6i;ATS7i;ATS8i;AATS0dv;AATS1dv;AATS2dv;AATS3dv;AATS4dv;AATS5dv;AATS6dv;AATS7dv;AATS8dv;AATS0d;AATS1d;AATS2d;AATS3d;AATS4d;AATS5d;AATS6d;AATS7d;AATS8d;AATS0s;AATS1s;AATS2s;AATS3s;AATS4s;AATS5s;AATS6s;AATS7s;AATS8s;AATS0Z;AATS1Z;AATS2Z;AATS3Z;AATS4Z;AATS5Z;AATS6Z;AATS7Z;AATS8Z;AATS0m;AATS1m;AATS2m;AATS3m;AATS4m;AATS5m;AATS6m;AATS7m;AATS8m;AATS0v;AATS1v;AATS2v;AATS3v;AATS4v;AATS5v;AATS6v;AATS7v;AATS8v;AATS0se;AATS1se;AATS2se;AATS3se;AATS4se;AATS5se;AATS6se;AATS7se;AATS8se;AATS0pe;AATS1pe;AATS2pe;AATS3pe;AATS4pe;AATS5pe;AATS6pe;AATS7pe;AATS8pe;AATS0are;AATS1are;AATS2are;AATS3are;AATS4are;AATS5are;AATS6are;AATS7are;AATS8are;AATS0p;AATS1p;AATS2p;AATS3p;AATS4p;AATS5p;AATS6p;AATS7p;AATS8p;AATS0i;AATS1i;AATS2i;AATS3i;AATS4i;AATS5i;AATS6i;AATS7i;AATS8i;ATSC0c;ATSC1c;ATSC2c;ATSC3c;ATSC4c;ATSC5c;ATSC6c;ATSC7c;ATSC8c;ATSC0dv;ATSC1dv;ATSC2dv;ATSC3dv;ATSC4dv;ATSC5dv;ATSC6dv;ATSC7dv;ATSC8dv;ATSC0d;ATSC1d;ATSC2d;ATSC3d;ATSC4d;ATSC5d;ATSC6d;ATSC7d;ATSC8d;ATSC0s;ATSC1s;ATSC2s;ATSC3s;ATSC4s;ATSC5s;ATSC6s;ATSC7s;ATSC8s;ATSC0Z;ATSC1Z;ATSC2Z;ATSC3Z;ATSC4Z;ATSC5Z;ATSC6Z;ATSC7Z;ATSC8Z;ATSC0m;ATSC1m;ATSC2m;ATSC3m;ATSC4m;ATSC5m;ATSC6m;ATSC7m;ATSC8m;ATSC0v;ATSC1v;ATSC2v;ATSC3v;ATSC4v;ATSC5v;ATSC6v;ATSC7v;ATSC8v;ATSC0se;ATSC1se;ATSC2se;ATSC3se;ATSC4se;ATSC5se;ATSC6se;ATSC7se;ATSC8se;ATSC0pe;ATSC1pe;ATSC2pe;ATSC3pe;ATSC4pe;ATSC5pe;ATSC6pe;ATSC7pe;ATSC8pe;ATSC0are;ATSC1are;ATSC2are;ATSC3are;ATSC4are;ATSC5are;ATSC6are;ATSC7are;ATSC8are;ATSC0p;ATSC1p;ATSC2p;ATSC3p;ATSC4p;ATSC5p;ATSC6p;ATSC7p;ATSC8p;ATSC0i;ATSC1i;ATSC2i;ATSC3i;ATSC4i;ATSC5i;ATSC6i;ATSC7i;ATSC8i;AATSC0c;AATSC1c;AATSC2c;AATSC3c;AATSC4c;AATSC5c;AATSC6c;AATSC7c;AATSC8c;AATSC0dv;AATSC1dv;AATSC2dv;AATSC3dv;AATSC4dv;AATSC5dv;AATSC6dv;AATSC7dv;AATSC8dv;AATSC0d;AATSC1d;AATSC2d;AATSC3d;AATSC4d;AATSC5d;AATSC6d;AATSC7d;AATSC8d;AATSC0s;AATSC1s;AATSC2s;AATSC3s;AATSC4s;AATSC5s;AATSC6s;AATSC7s;AATSC8s;AATSC0Z;AATSC1Z;AATSC2Z;AATSC3Z;AATSC4Z;AATSC5Z;AATSC6Z;AATSC7Z;AATSC8Z;AATSC0m;AATSC1m;AATSC2m;AATSC3m;AATSC4m;AATSC5m;AATSC6m;AATSC7m;AATSC8m;AATSC0v;AATSC1v;AATSC2v;AATSC3v;AATSC4v;AATSC5v;AATSC6v;AATSC7v;AATSC8v;AATSC0se;AATSC1se;AATSC2se;AATSC3se;AATSC4se;AATSC5se;AATSC6se;AATSC7se;AATSC8se;AATSC0pe;AATSC1pe;AATSC2pe;AATSC3pe;AATSC4pe;AATSC5pe;AATSC6pe;AATSC7pe;AATSC8pe;AATSC0are;AATSC1are;AATSC2are;AATSC3are;AATSC4are;AATSC5are;AATSC6are;AATSC7are;AATSC8are;AATSC0p;AATSC1p;AATSC2p;AATSC3p;AATSC4p;AATSC5p;AATSC6p;AATSC7p;AATSC8p;AATSC0i;AATSC1i;AATSC2i;AATSC3i;AATSC4i;AATSC5i;AATSC6i;AATSC7i;AATSC8i;MATS1c;MATS2c;MATS3c;MATS4c;MATS5c;MATS6c;MATS7c;MATS8c;MATS1dv;MATS2dv;MATS3dv;MATS4dv;MATS5dv;MATS6dv;MATS7dv;MATS8dv;MATS1d;MATS2d;MATS3d;MATS4d;MATS5d;MATS6d;MATS7d;MATS8d;MATS1s;MATS2s;MATS3s;MATS4s;MATS5s;MATS6s;MATS7s;MATS8s;MATS1Z;MATS2Z;MATS3Z;MATS4Z;MATS5Z;MATS6Z;MATS7Z;MATS8Z;MATS1m;MATS2m;MATS3m;MATS4m;MATS5m;MATS6m;MATS7m;MATS8m;MATS1v;MATS2v;MATS3v;MATS4v;MATS5v;MATS6v;MATS7v;MATS8v;MATS1se;MATS2se;MATS3se;MATS4se;MATS5se;MATS6se;MATS7se;MATS8se;MATS1pe;MATS2pe;MATS3pe;MATS4pe;MATS5pe;MATS6pe;MATS7pe;MATS8pe;MATS1are;MATS2are;MATS3are;MATS4are;MATS5are;MATS6are;MATS7are;MATS8are;MATS1p;MATS2p;MATS3p;MATS4p;MATS5p;MATS6p;MATS7p;MATS8p;MATS1i;MATS2i;MATS3i;MATS4i;MATS5i;MATS6i;MATS7i;MATS8i;GATS1c;GATS2c;GATS3c;GATS4c;GATS5c;GATS6c;GATS7c;GATS8c;GATS1dv;GATS2dv;GATS3dv;GATS4dv;GATS5dv;GATS6dv;GATS7dv;GATS8dv;GATS1d;GATS2d;GATS3d;GATS4d;GATS5d;GATS6d;GATS7d;GATS8d;GATS1s;GATS2s;GATS3s;GATS4s;GATS5s;GATS6s;GATS7s;GATS8s;GATS1Z;GATS2Z;GATS3Z;GATS4Z;GATS5Z;GATS6Z;GATS7Z;GATS8Z;GATS1m;GATS2m;GATS3m;GATS4m;GATS5m;GATS6m;GATS7m;GATS8m;GATS1v;GATS2v;GATS3v;GATS4v;GATS5v;GATS6v;GATS7v;GATS8v;GATS1se;GATS2se;GATS3se;GATS4se;GATS5se;GATS6se;GATS7se;GATS8se;GATS1pe;GATS2pe;GATS3pe;GATS4pe;GATS5pe;GATS6pe;GATS7pe;GATS8pe;GATS1are;GATS2are;GATS3are;GATS4are;GATS5are;GATS6are;GATS7are;GATS8are;GATS1p;GATS2p;GATS3p;GATS4p;GATS5p;GATS6p;GATS7p;GATS8p;GATS1i;GATS2i;GATS3i;GATS4i;GATS5i;GATS6i;GATS7i;GATS8i;BCUTc-1h;BCUTc-1l;BCUTdv-1h;BCUTdv-1l;BCUTd-1h;BCUTd-1l;BCUTs-1h;BCUTs-1l;BCUTZ-1h;BCUTZ-1l;BCUTm-1h;BCUTm-1l;BCUTv-1h;BCUTv-1l;BCUTse-1h;BCUTse-1l;BCUTpe-1h;BCUTpe-1l;BCUTare-1h;BCUTare-1l;BCUTp-1h;BCUTp-1l;BCUTi-1h;BCUTi-1l;BalabanJ;SpAbs_DzZ;SpMax_DzZ;SpDiam_DzZ;SpAD_DzZ;SpMAD_DzZ;LogEE_DzZ;SM1_DzZ;VE1_DzZ;VE2_DzZ;VE3_DzZ;VR1_DzZ;VR2_DzZ;VR3_DzZ;SpAbs_Dzm;SpMax_Dzm;SpDiam_Dzm;SpAD_Dzm;SpMAD_Dzm;LogEE_Dzm;SM1_Dzm;VE1_Dzm;VE2_Dzm;VE3_Dzm;VR1_Dzm;VR2_Dzm;VR3_Dzm;SpAbs_Dzv;SpMax_Dzv;SpDiam_Dzv;SpAD_Dzv;SpMAD_Dzv;LogEE_Dzv;SM1_Dzv;VE1_Dzv;VE2_Dzv;VE3_Dzv;VR1_Dzv;VR2_Dzv;VR3_Dzv;SpAbs_Dzse;SpMax_Dzse;SpDiam_Dzse;SpAD_Dzse;SpMAD_Dzse;LogEE_Dzse;SM1_Dzse;VE1_Dzse;VE2_Dzse;VE3_Dzse;VR1_Dzse;VR2_Dzse;VR3_Dzse;SpAbs_Dzpe;SpMax_Dzpe;SpDiam_Dzpe;SpAD_Dzpe;SpMAD_Dzpe;LogEE_Dzpe;SM1_Dzpe;VE1_Dzpe;VE2_Dzpe;VE3_Dzpe;VR1_Dzpe;VR2_Dzpe;VR3_Dzpe;SpAbs_Dzare;SpMax_Dzare;SpDiam_Dzare;SpAD_Dzare;SpMAD_Dzare;LogEE_Dzare;SM1_Dzare;VE1_Dzare;VE2_Dzare;VE3_Dzare;VR1_Dzare;VR2_Dzare;VR3_Dzare;SpAbs_Dzp;SpMax_Dzp;SpDiam_Dzp;SpAD_Dzp;SpMAD_Dzp;LogEE_Dzp;SM1_Dzp;VE1_Dzp;VE2_Dzp;VE3_Dzp;VR1_Dzp;VR2_Dzp;VR3_Dzp;SpAbs_Dzi;SpMax_Dzi;SpDiam_Dzi;SpAD_Dzi;SpMAD_Dzi;LogEE_Dzi;SM1_Dzi;VE1_Dzi;VE2_Dzi;VE3_Dzi;VR1_Dzi;VR2_Dzi;VR3_Dzi;BertzCT;nBonds;nBondsO;nBondsS;nBondsD;nBondsT;nBondsA;nBondsM;nBondsKS;nBondsKD;RNCG;RPCG;C1SP1;C2SP1;C1SP2;C2SP2;C3SP2;C1SP3;C2SP3;C3SP3;C4SP3;HybRatio;FCSP3;Xch-3d;Xch-4d;Xch-5d;Xch-6d;Xch-7d;Xch-3dv;Xch-4dv;Xch-5dv;Xch-6dv;Xch-7dv;Xc-3d;Xc-4d;Xc-5d;Xc-6d;Xc-3dv;Xc-4dv;Xc-5dv;Xc-6dv;Xpc-4d;Xpc-5d;Xpc-6d;Xpc-4dv;Xpc-5dv;Xpc-6dv;Xp-0d;Xp-1d;Xp-2d;Xp-3d;Xp-4d;Xp-5d;Xp-6d;Xp-7d;AXp-0d;AXp-1d;AXp-2d;AXp-3d;AXp-4d;AXp-5d;AXp-6d;AXp-7d;Xp-0dv;Xp-1dv;Xp-2dv;Xp-3dv;Xp-4dv;Xp-5dv;Xp-6dv;Xp-7dv;AXp-0dv;AXp-1dv;AXp-2dv;AXp-3dv;AXp-4dv;AXp-5dv;AXp-6dv;AXp-7dv;SZ;Sm;Sv;Sse;Spe;Sare;Sp;Si;MZ;Mm;Mv;Mse;Mpe;Mare;Mp;Mi;SpAbs_Dt;SpMax_Dt;SpDiam_Dt;SpAD_Dt;SpMAD_Dt;LogEE_Dt;SM1_Dt;VE1_Dt;VE2_Dt;VE3_Dt;VR1_Dt;VR2_Dt;VR3_Dt;DetourIndex;SpAbs_D;SpMax_D;SpDiam_D;SpAD_D;SpMAD_D;LogEE_D;VE1_D;VE2_D;VE3_D;VR1_D;VR2_D;VR3_D;NsLi;NssBe;NssssBe;NssBH;NsssB;NssssB;NsCH3;NdCH2;NssCH2;NtCH;NdsCH;NaaCH;NsssCH;NddC;NtsC;NdssC;NaasC;NaaaC;NssssC;NsNH3;NsNH2;NssNH2;NdNH;NssNH;NaaNH;NtN;NsssNH;NdsN;NaaN;NsssN;NddsN;NaasN;NssssN;NsOH;NdO;NssO;NaaO;NsF;NsSiH3;NssSiH2;NsssSiH;NssssSi;NsPH2;NssPH;NsssP;NdsssP;NsssssP;NsSH;NdS;NssS;NaaS;NdssS;NddssS;NsCl;NsGeH3;NssGeH2;NsssGeH;NssssGe;NsAsH2;NssAsH;NsssAs;NsssdAs;NsssssAs;NsSeH;NdSe;NssSe;NaaSe;NdssSe;NddssSe;NsBr;NsSnH3;NssSnH2;NsssSnH;NssssSn;NsI;NsPbH3;NssPbH2;NsssPbH;NssssPb;SsLi;SssBe;SssssBe;SssBH;SsssB;SssssB;SsCH3;SdCH2;SssCH2;StCH;SdsCH;SaaCH;SsssCH;SddC;StsC;SdssC;SaasC;SaaaC;SssssC;SsNH3;SsNH2;SssNH2;SdNH;SssNH;SaaNH;StN;SsssNH;SdsN;SaaN;SsssN;SddsN;SaasN;SssssN;SsOH;SdO;SssO;SaaO;SsF;SsSiH3;SssSiH2;SsssSiH;SssssSi;SsPH2;SssPH;SsssP;SdsssP;SsssssP;SsSH;SdS;SssS;SaaS;SdssS;SddssS;SsCl;SsGeH3;SssGeH2;SsssGeH;SssssGe;SsAsH2;SssAsH;SsssAs;SsssdAs;SsssssAs;SsSeH;SdSe;SssSe;SaaSe;SdssSe;SddssSe;SsBr;SsSnH3;SssSnH2;SsssSnH;SssssSn;SsI;SsPbH3;SssPbH2;SsssPbH;SssssPb;MAXsLi;MAXssBe;MAXssssBe;MAXssBH;MAXsssB;MAXssssB;MAXsCH3;MAXdCH2;MAXssCH2;MAXtCH;MAXdsCH;MAXaaCH;MAXsssCH;MAXddC;MAXtsC;MAXdssC;MAXaasC;MAXaaaC;MAXssssC;MAXsNH3;MAXsNH2;MAXssNH2;MAXdNH;MAXssNH;MAXaaNH;MAXtN;MAXsssNH;MAXdsN;MAXaaN;MAXsssN;MAXddsN;MAXaasN;MAXssssN;MAXsOH;MAXdO;MAXssO;MAXaaO;MAXsF;MAXsSiH3;MAXssSiH2;MAXsssSiH;MAXssssSi;MAXsPH2;MAXssPH;MAXsssP;MAXdsssP;MAXsssssP;MAXsSH;MAXdS;MAXssS;MAXaaS;MAXdssS;MAXddssS;MAXsCl;MAXsGeH3;MAXssGeH2;MAXsssGeH;MAXssssGe;MAXsAsH2;MAXssAsH;MAXsssAs;MAXsssdAs;MAXsssssAs;MAXsSeH;MAXdSe;MAXssSe;MAXaaSe;MAXdssSe;MAXddssSe;MAXsBr;MAXsSnH3;MAXssSnH2;MAXsssSnH;MAXssssSn;MAXsI;MAXsPbH3;MAXssPbH2;MAXsssPbH;MAXssssPb;MINsLi;MINssBe;MINssssBe;MINssBH;MINsssB;MINssssB;MINsCH3;MINdCH2;MINssCH2;MINtCH;MINdsCH;MINaaCH;MINsssCH;MINddC;MINtsC;MINdssC;MINaasC;MINaaaC;MINssssC;MINsNH3;MINsNH2;MINssNH2;MINdNH;MINssNH;MINaaNH;MINtN;MINsssNH;MINdsN;MINaaN;MINsssN;MINddsN;MINaasN;MINssssN;MINsOH;MINdO;MINssO;MINaaO;MINsF;MINsSiH3;MINssSiH2;MINsssSiH;MINssssSi;MINsPH2;MINssPH;MINsssP;MINdsssP;MINsssssP;MINsSH;MINdS;MINssS;MINaaS;MINdssS;MINddssS;MINsCl;MINsGeH3;MINssGeH2;MINsssGeH;MINssssGe;MINsAsH2;MINssAsH;MINsssAs;MINsssdAs;MINsssssAs;MINsSeH;MINdSe;MINssSe;MINaaSe;MINdssSe;MINddssSe;MINsBr;MINsSnH3;MINssSnH2;MINsssSnH;MINssssSn;MINsI;MINsPbH3;MINssPbH2;MINsssPbH;MINssssPb;ECIndex;ETA_alpha;AETA_alpha;ETA_shape_p;ETA_shape_y;ETA_shape_x;ETA_beta;AETA_beta;ETA_beta_s;AETA_beta_s;ETA_beta_ns;AETA_beta_ns;ETA_beta_ns_d;AETA_beta_ns_d;ETA_eta;AETA_eta;ETA_eta_L;AETA_eta_L;ETA_eta_R;AETA_eta_R;ETA_eta_RL;AETA_eta_RL;ETA_eta_F;AETA_eta_F;ETA_eta_FL;AETA_eta_FL;ETA_eta_B;AETA_eta_B;ETA_eta_BR;AETA_eta_BR;ETA_dAlpha_A;ETA_dAlpha_B;ETA_epsilon_1;ETA_epsilon_2;ETA_epsilon_3;ETA_epsilon_4;ETA_epsilon_5;ETA_dEpsilon_A;ETA_dEpsilon_B;ETA_dEpsilon_C;ETA_dEpsilon_D;ETA_dBeta;AETA_dBeta;ETA_psi_1;ETA_dPsi_A;ETA_dPsi_B;fragCpx;fMF;nHBAcc;nHBDon;IC0;IC1;IC2;IC3;IC4;IC5;TIC0;TIC1;TIC2;TIC3;TIC4;TIC5;SIC0;SIC1;SIC2;SIC3;SIC4;SIC5;BIC0;BIC1;BIC2;BIC3;BIC4;BIC5;CIC0;CIC1;CIC2;CIC3;CIC4;CIC5;MIC0;MIC1;MIC2;MIC3;MIC4;MIC5;ZMIC0;ZMIC1;ZMIC2;ZMIC3;ZMIC4;ZMIC5;Kier1;Kier2;Kier3;Lipinski;GhoseFilter;FilterItLogS;VMcGowan;LabuteASA;PEOE_VSA1;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;SMR_VSA1;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;SlogP_VSA10;SlogP_VSA11;EState_VSA1;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;EState_VSA10;VSA_EState1;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;MDEC-11;MDEC-12;MDEC-13;MDEC-14;MDEC-22;MDEC-23;MDEC-24;MDEC-33;MDEC-34;MDEC-44;MDEO-11;MDEO-12;MDEO-22;MDEN-11;MDEN-12;MDEN-13;MDEN-22;MDEN-23;MDEN-33;MID;AMID;MID_h;AMID_h;MID_C;AMID_C;MID_N;AMID_N;MID_O;AMID_O;MID_X;AMID_X;MPC2;MPC3;MPC4;MPC5;MPC6;MPC7;MPC8;MPC9;MPC10;TMPC10;piPC1;piPC2;piPC3;piPC4;piPC5;piPC6;piPC7;piPC8;piPC9;piPC10;TpiPC10;apol;bpol;nRing;n3Ring;n4Ring;n5Ring;n6Ring;n7Ring;n8Ring;n9Ring;n10Ring;n11Ring;n12Ring;nG12Ring;nHRing;n3HRing;n4HRing;n5HRing;n6HRing;n7HRing;n8HRing;n9HRing;n10HRing;n11HRing;n12HRing;nG12HRing;naRing;n3aRing;n4aRing;n5aRing;n6aRing;n7aRing;n8aRing;n9aRing;n10aRing;n11aRing;n12aRing;nG12aRing;naHRing;n3aHRing;n4aHRing;n5aHRing;n6aHRing;n7aHRing;n8aHRing;n9aHRing;n10aHRing;n11aHRing;n12aHRing;nG12aHRing;nARing;n3ARing;n4ARing;n5ARing;n6ARing;n7ARing;n8ARing;n9ARing;n10ARing;n11ARing;n12ARing;nG12ARing;nAHRing;n3AHRing;n4AHRing;n5AHRing;n6AHRing;n7AHRing;n8AHRing;n9AHRing;n10AHRing;n11AHRing;n12AHRing;nG12AHRing;nFRing;n4FRing;n5FRing;n6FRing;n7FRing;n8FRing;n9FRing;n10FRing;n11FRing;n12FRing;nG12FRing;nFHRing;n4FHRing;n5FHRing;n6FHRing;n7FHRing;n8FHRing;n9FHRing;n10FHRing;n11FHRing;n12FHRing;nG12FHRing;nFaRing;n4FaRing;n5FaRing;n6FaRing;n7FaRing;n8FaRing;n9FaRing;n10FaRing;n11FaRing;n12FaRing;nG12FaRing;nFaHRing;n4FaHRing;n5FaHRing;n6FaHRing;n7FaHRing;n8FaHRing;n9FaHRing;n10FaHRing;n11FaHRing;n12FaHRing;nG12FaHRing;nFARing;n4FARing;n5FARing;n6FARing;n7FARing;n8FARing;n9FARing;n10FARing;n11FARing;n12FARing;nG12FARing;nFAHRing;n4FAHRing;n5FAHRing;n6FAHRing;n7FAHRing;n8FAHRing;n9FAHRing;n10FAHRing;n11FAHRing;n12FAHRing;nG12FAHRing;nRot;RotRatio;SLogP;SMR;TopoPSA(NO);TopoPSA;GGI1;GGI2;GGI3;GGI4;GGI5;GGI6;GGI7;GGI8;GGI9;GGI10;JGI1;JGI2;JGI3;JGI4;JGI5;JGI6;JGI7;JGI8;JGI9;JGI10;JGT10;Diameter;Radius;TopoShapeIndex;PetitjeanIndex;Vabc;VAdjMat;MWC01;MWC02;MWC03;MWC04;MWC05;MWC06;MWC07;MWC08;MWC09;MWC10;TMWC10;SRW02;SRW03;SRW04;SRW05;SRW06;SRW07;SRW08;SRW09;SRW10;TSRW10;MW;AMW;WPath;WPol;Zagreb1;Zagreb2;mZagreb1;mZagreb2,0,mordred mordred_filtered,AATS0Z;AATS0are;AATS0d;AATS0dv;AATS0i;AATS0m;AATS0p;AATS0pe;AATS0s;AATS0se;AATS0v;AATS1Z;AATS1are;AATS1d;AATS1dv;AATS1i;AATS1m;AATS1p;AATS1pe;AATS1s;AATS1se;AATS1v;AATS2Z;AATS2are;AATS2d;AATS2dv;AATS2i;AATS2m;AATS2p;AATS2pe;AATS2s;AATS2se;AATS2v;AATS3Z;AATS3are;AATS3d;AATS3dv;AATS3i;AATS3m;AATS3p;AATS3pe;AATS3s;AATS3se;AATS3v;AATS4Z;AATS4are;AATS4d;AATS4dv;AATS4i;AATS4m;AATS4p;AATS4pe;AATS4s;AATS4se;AATS4v;AATS5Z;AATS5are;AATS5d;AATS5dv;AATS5i;AATS5m;AATS5p;AATS5pe;AATS5s;AATS5se;AATS5v;AATS6Z;AATS6are;AATS6d;AATS6dv;AATS6i;AATS6m;AATS6p;AATS6pe;AATS6s;AATS6se;AATS6v;AATS7Z;AATS7are;AATS7d;AATS7dv;AATS7i;AATS7m;AATS7p;AATS7pe;AATS7s;AATS7se;AATS7v;AATS8Z;AATS8are;AATS8d;AATS8dv;AATS8i;AATS8m;AATS8p;AATS8pe;AATS8s;AATS8se;AATS8v;AATSC0Z;AATSC0are;AATSC0c;AATSC0d;AATSC0dv;AATSC0i;AATSC0m;AATSC0p;AATSC0pe;AATSC0s;AATSC0se;AATSC0v;AATSC1Z;AATSC1are;AATSC1c;AATSC1d;AATSC1dv;AATSC1i;AATSC1m;AATSC1p;AATSC1pe;AATSC1s;AATSC1se;AATSC1v;AATSC2Z;AATSC2are;AATSC2c;AATSC2d;AATSC2dv;AATSC2i;AATSC2m;AATSC2p;AATSC2pe;AATSC2s;AATSC2se;AATSC2v;AATSC3Z;AATSC3are;AATSC3c;AATSC3d;AATSC3dv;AATSC3i;AATSC3m;AATSC3p;AATSC3pe;AATSC3s;AATSC3se;AATSC3v;AATSC4Z;AATSC4are;AATSC4c;AATSC4d;AATSC4dv;AATSC4i;AATSC4m;AATSC4p;AATSC4pe;AATSC4s;AATSC4se;AATSC4v;AATSC5Z;AATSC5are;AATSC5c;AATSC5d;AATSC5dv;AATSC5i;AATSC5m;AATSC5p;AATSC5pe;AATSC5s;AATSC5se;AATSC5v;AATSC6Z;AATSC6are;AATSC6c;AATSC6d;AATSC6dv;AATSC6i;AATSC6m;AATSC6p;AATSC6pe;AATSC6s;AATSC6se;AATSC6v;AATSC7Z;AATSC7are;AATSC7c;AATSC7d;AATSC7dv;AATSC7i;AATSC7m;AATSC7p;AATSC7pe;AATSC7s;AATSC7se;AATSC7v;AATSC8Z;AATSC8are;AATSC8c;AATSC8d;AATSC8dv;AATSC8i;AATSC8m;AATSC8p;AATSC8pe;AATSC8s;AATSC8se;AATSC8v;ABC;ABCGG;AETA_alpha;AETA_beta;AETA_beta_ns;AETA_beta_ns_d;AETA_beta_s;AETA_dBeta;AETA_eta;AETA_eta_B;AETA_eta_BR;AETA_eta_F;AETA_eta_FL;AETA_eta_L;AETA_eta_R;AETA_eta_RL;AMID;AMID_C;AMID_N;AMID_O;AMID_X;AMID_h;AMW;ATS0Z;ATS0are;ATS0d;ATS0dv;ATS0i;ATS0m;ATS0p;ATS0pe;ATS0s;ATS0se;ATS0v;ATS1Z;ATS1are;ATS1d;ATS1dv;ATS1i;ATS1m;ATS1p;ATS1pe;ATS1s;ATS1se;ATS1v;ATS2Z;ATS2are;ATS2d;ATS2dv;ATS2i;ATS2m;ATS2p;ATS2pe;ATS2s;ATS2se;ATS2v;ATS3Z;ATS3are;ATS3d;ATS3dv;ATS3i;ATS3m;ATS3p;ATS3pe;ATS3s;ATS3se;ATS3v;ATS4Z;ATS4are;ATS4d;ATS4dv;ATS4i;ATS4m;ATS4p;ATS4pe;ATS4s;ATS4se;ATS4v;ATS5Z;ATS5are;ATS5d;ATS5dv;ATS5i;ATS5m;ATS5p;ATS5pe;ATS5s;ATS5se;ATS5v;ATS6Z;ATS6are;ATS6d;ATS6dv;ATS6i;ATS6m;ATS6p;ATS6pe;ATS6s;ATS6se;ATS6v;ATS7Z;ATS7are;ATS7d;ATS7dv;ATS7i;ATS7m;ATS7p;ATS7pe;ATS7s;ATS7se;ATS7v;ATS8Z;ATS8are;ATS8d;ATS8dv;ATS8i;ATS8m;ATS8p;ATS8pe;ATS8s;ATS8se;ATS8v;ATSC0Z;ATSC0are;ATSC0c;ATSC0d;ATSC0dv;ATSC0i;ATSC0m;ATSC0p;ATSC0pe;ATSC0s;ATSC0se;ATSC0v;ATSC1Z;ATSC1are;ATSC1c;ATSC1d;ATSC1dv;ATSC1i;ATSC1m;ATSC1p;ATSC1pe;ATSC1s;ATSC1se;ATSC1v;ATSC2Z;ATSC2are;ATSC2c;ATSC2d;ATSC2dv;ATSC2i;ATSC2m;ATSC2p;ATSC2pe;ATSC2s;ATSC2se;ATSC2v;ATSC3Z;ATSC3are;ATSC3c;ATSC3d;ATSC3dv;ATSC3i;ATSC3m;ATSC3p;ATSC3pe;ATSC3s;ATSC3se;ATSC3v;ATSC4Z;ATSC4are;ATSC4c;ATSC4d;ATSC4dv;ATSC4i;ATSC4m;ATSC4p;ATSC4pe;ATSC4s;ATSC4se;ATSC4v;ATSC5Z;ATSC5are;ATSC5c;ATSC5d;ATSC5dv;ATSC5i;ATSC5m;ATSC5p;ATSC5pe;ATSC5s;ATSC5se;ATSC5v;ATSC6Z;ATSC6are;ATSC6c;ATSC6d;ATSC6dv;ATSC6i;ATSC6m;ATSC6p;ATSC6pe;ATSC6s;ATSC6se;ATSC6v;ATSC7Z;ATSC7are;ATSC7c;ATSC7d;ATSC7dv;ATSC7i;ATSC7m;ATSC7p;ATSC7pe;ATSC7s;ATSC7se;ATSC7v;ATSC8Z;ATSC8are;ATSC8c;ATSC8d;ATSC8dv;ATSC8i;ATSC8m;ATSC8p;ATSC8pe;ATSC8s;ATSC8se;ATSC8v;AXp-0d;AXp-0dv;AXp-1d;AXp-1dv;AXp-2d;AXp-2dv;AXp-3d;AXp-3dv;AXp-4d;AXp-4dv;AXp-5d;AXp-5dv;AXp-6d;AXp-6dv;AXp-7d;AXp-7dv;BCUTZ-1h;BCUTZ-1l;BCUTare-1h;BCUTare-1l;BCUTc-1h;BCUTc-1l;BCUTd-1h;BCUTd-1l;BCUTdv-1h;BCUTdv-1l;BCUTi-1h;BCUTi-1l;BCUTm-1h;BCUTm-1l;BCUTp-1h;BCUTp-1l;BCUTpe-1h;BCUTpe-1l;BCUTs-1h;BCUTs-1l;BCUTse-1h;BCUTse-1l;BCUTv-1h;BCUTv-1l;BIC0;BIC1;BIC2;BIC3;BIC4;BIC5;BalabanJ;BertzCT;C1SP1;C1SP2;C1SP3;C2SP1;C2SP2;C2SP3;C3SP2;C3SP3;C4SP3;CIC0;CIC1;CIC2;CIC3;CIC4;CIC5;DPSA1;DPSA2;DPSA3;DPSA4;DPSA5;DetourIndex;Diameter;ECIndex;EState_VSA1;EState_VSA10;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;ETA_alpha;ETA_beta;ETA_beta_ns;ETA_beta_ns_d;ETA_beta_s;ETA_dAlpha_A;ETA_dAlpha_B;ETA_dBeta;ETA_dEpsilon_A;ETA_dEpsilon_B;ETA_dEpsilon_C;ETA_dEpsilon_D;ETA_dPsi_A;ETA_dPsi_B;ETA_epsilon_1;ETA_epsilon_2;ETA_epsilon_3;ETA_epsilon_4;ETA_epsilon_5;ETA_eta;ETA_eta_B;ETA_eta_BR;ETA_eta_F;ETA_eta_FL;ETA_eta_L;ETA_eta_R;ETA_eta_RL;ETA_psi_1;ETA_shape_p;ETA_shape_x;ETA_shape_y;FCSP3;FNSA1;FNSA2;FNSA3;FNSA4;FNSA5;FPSA1;FPSA2;FPSA3;FPSA4;FPSA5;FilterItLogS;GATS1Z;GATS1are;GATS1c;GATS1d;GATS1dv;GATS1i;GATS1m;GATS1p;GATS1pe;GATS1s;GATS1se;GATS1v;GATS2Z;GATS2are;GATS2c;GATS2d;GATS2dv;GATS2i;GATS2m;GATS2p;GATS2pe;GATS2s;GATS2se;GATS2v;GATS3Z;GATS3are;GATS3c;GATS3d;GATS3dv;GATS3i;GATS3m;GATS3p;GATS3pe;GATS3s;GATS3se;GATS3v;GATS4Z;GATS4are;GATS4c;GATS4d;GATS4dv;GATS4i;GATS4m;GATS4p;GATS4pe;GATS4s;GATS4se;GATS4v;GATS5Z;GATS5are;GATS5c;GATS5d;GATS5dv;GATS5i;GATS5m;GATS5p;GATS5pe;GATS5s;GATS5se;GATS5v;GATS6Z;GATS6are;GATS6c;GATS6d;GATS6dv;GATS6i;GATS6m;GATS6p;GATS6pe;GATS6s;GATS6se;GATS6v;GATS7Z;GATS7are;GATS7c;GATS7d;GATS7dv;GATS7i;GATS7m;GATS7p;GATS7pe;GATS7s;GATS7se;GATS7v;GATS8Z;GATS8are;GATS8c;GATS8d;GATS8dv;GATS8i;GATS8m;GATS8p;GATS8pe;GATS8s;GATS8se;GATS8v;GGI1;GGI10;GGI2;GGI3;GGI4;GGI5;GGI6;GGI7;GGI8;GGI9;GRAV;GRAVH;GRAVHp;GRAVp;GeomDiameter;GeomPetitjeanIndex;GeomRadius;GeomShapeIndex;GhoseFilter;HybRatio;IC0;IC1;IC2;IC3;IC4;IC5;JGI1;JGI10;JGI2;JGI3;JGI4;JGI5;JGI6;JGI7;JGI8;JGI9;JGT10;Kier1;Kier2;Kier3;LabuteASA;Lipinski;LogEE_A;LogEE_D;LogEE_Dt;LogEE_DzZ;LogEE_Dzare;LogEE_Dzi;LogEE_Dzm;LogEE_Dzp;LogEE_Dzpe;LogEE_Dzse;LogEE_Dzv;MATS1Z;MATS1are;MATS1c;MATS1d;MATS1dv;MATS1i;MATS1m;MATS1p;MATS1pe;MATS1s;MATS1se;MATS1v;MATS2Z;MATS2are;MATS2c;MATS2d;MATS2dv;MATS2i;MATS2m;MATS2p;MATS2pe;MATS2s;MATS2se;MATS2v;MATS3Z;MATS3are;MATS3c;MATS3d;MATS3dv;MATS3i;MATS3m;MATS3p;MATS3pe;MATS3s;MATS3se;MATS3v;MATS4Z;MATS4are;MATS4c;MATS4d;MATS4dv;MATS4i;MATS4m;MATS4p;MATS4pe;MATS4s;MATS4se;MATS4v;MATS5Z;MATS5are;MATS5c;MATS5d;MATS5dv;MATS5i;MATS5m;MATS5p;MATS5pe;MATS5s;MATS5se;MATS5v;MATS6Z;MATS6are;MATS6c;MATS6d;MATS6dv;MATS6i;MATS6m;MATS6p;MATS6pe;MATS6s;MATS6se;MATS6v;MATS7Z;MATS7are;MATS7c;MATS7d;MATS7dv;MATS7i;MATS7m;MATS7p;MATS7pe;MATS7s;MATS7se;MATS7v;MATS8Z;MATS8are;MATS8c;MATS8d;MATS8dv;MATS8i;MATS8m;MATS8p;MATS8pe;MATS8s;MATS8se;MATS8v;MDEC-22;MDEC-23;MDEC-33;MIC0;MIC1;MIC2;MIC3;MIC4;MIC5;MID;MID_C;MID_N;MID_O;MID_X;MID_h;MOMI-X;MOMI-Y;MOMI-Z;MPC10;MPC2;MPC3;MPC4;MPC5;MPC6;MPC7;MPC8;MPC9;MW;MWC01;MWC02;MWC03;MWC04;MWC05;MWC06;MWC07;MWC08;MWC09;MWC10;MZ;Mare;Mi;Mm;Mor01;Mor01m;Mor01p;Mor01se;Mor01v;Mor02;Mor02m;Mor02p;Mor02se;Mor02v;Mor03;Mor03m;Mor03p;Mor03se;Mor03v;Mor04;Mor04m;Mor04p;Mor04se;Mor04v;Mor05;Mor05m;Mor05p;Mor05se;Mor05v;Mor06;Mor06m;Mor06p;Mor06se;Mor06v;Mor07;Mor07m;Mor07p;Mor07se;Mor07v;Mor08;Mor08m;Mor08p;Mor08se;Mor08v;Mor09;Mor09m;Mor09p;Mor09se;Mor09v;Mor10;Mor10m;Mor10p;Mor10se;Mor10v;Mor11;Mor11m;Mor11p;Mor11se;Mor11v;Mor12;Mor12m;Mor12p;Mor12se;Mor12v;Mor13;Mor13m;Mor13p;Mor13se;Mor13v;Mor14;Mor14m;Mor14p;Mor14se;Mor14v;Mor15;Mor15m;Mor15p;Mor15se;Mor15v;Mor16;Mor16m;Mor16p;Mor16se;Mor16v;Mor17;Mor17m;Mor17p;Mor17se;Mor17v;Mor18;Mor18m;Mor18p;Mor18se;Mor18v;Mor19;Mor19m;Mor19p;Mor19se;Mor19v;Mor20;Mor20m;Mor20p;Mor20se;Mor20v;Mor21;Mor21m;Mor21p;Mor21se;Mor21v;Mor22;Mor22m;Mor22p;Mor22se;Mor22v;Mor23;Mor23m;Mor23p;Mor23se;Mor23v;Mor24;Mor24m;Mor24p;Mor24se;Mor24v;Mor25;Mor25m;Mor25p;Mor25se;Mor25v;Mor26;Mor26m;Mor26p;Mor26se;Mor26v;Mor27;Mor27m;Mor27p;Mor27se;Mor27v;Mor28;Mor28m;Mor28p;Mor28se;Mor28v;Mor29;Mor29m;Mor29p;Mor29se;Mor29v;Mor30;Mor30m;Mor30p;Mor30se;Mor30v;Mor31;Mor31m;Mor31p;Mor31se;Mor31v;Mor32;Mor32m;Mor32p;Mor32se;Mor32v;Mp;Mpe;Mse;Mv;NaaCH;NaaN;NaaNH;NaaO;NaaS;NaaaC;NaasC;NaasN;NdCH2;NdO;NdS;NddsN;NddssS;NdsCH;NdsN;NdssC;NsBr;NsCH3;NsCl;NsF;NsNH2;NsOH;NssCH2;NssNH;NssO;NssS;NsssCH;NsssN;NssssC;NtN;NtsC;PEOE_VSA1;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;PNSA1;PNSA2;PNSA3;PNSA4;PNSA5;PPSA1;PPSA2;PPSA3;PPSA4;PPSA5;PetitjeanIndex;RASA;RNCG;RNCS;RPCG;RPCS;RPSA;Radius;RotRatio;SIC0;SIC1;SIC2;SIC3;SIC4;SIC5;SLogP;SM1_Dt;SM1_DzZ;SM1_Dzare;SM1_Dzi;SM1_Dzm;SM1_Dzp;SM1_Dzpe;SM1_Dzse;SM1_Dzv;SMR;SMR_VSA1;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SRW02;SRW03;SRW04;SRW05;SRW06;SRW07;SRW08;SRW09;SRW10;SZ;SaaCH;SaaN;SaaNH;SaaO;SaaS;SaaaC;SaasC;SaasN;Sare;SdCH2;SdO;SdS;SddsN;SddssS;SdsCH;SdsN;SdssC;Si;SlogP_VSA1;SlogP_VSA10;SlogP_VSA11;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;Sm;Sp;SpAD_A;SpAD_D;SpAD_Dt;SpAD_DzZ;SpAD_Dzare;SpAD_Dzi;SpAD_Dzm;SpAD_Dzp;SpAD_Dzpe;SpAD_Dzse;SpAD_Dzv;SpAbs_A;SpAbs_D;SpAbs_Dt;SpAbs_DzZ;SpAbs_Dzare;SpAbs_Dzi;SpAbs_Dzm;SpAbs_Dzp;SpAbs_Dzpe;SpAbs_Dzse;SpAbs_Dzv;SpDiam_A;SpDiam_D;SpDiam_Dt;SpDiam_DzZ;SpDiam_Dzare;SpDiam_Dzi;SpDiam_Dzm;SpDiam_Dzp;SpDiam_Dzpe;SpDiam_Dzse;SpDiam_Dzv;SpMAD_A;SpMAD_D;SpMAD_Dt;SpMAD_DzZ;SpMAD_Dzare;SpMAD_Dzi;SpMAD_Dzm;SpMAD_Dzp;SpMAD_Dzpe;SpMAD_Dzse;SpMAD_Dzv;SpMax_A;SpMax_D;SpMax_Dt;SpMax_DzZ;SpMax_Dzare;SpMax_Dzi;SpMax_Dzm;SpMax_Dzp;SpMax_Dzpe;SpMax_Dzse;SpMax_Dzv;Spe;SsBr;SsCH3;SsCl;SsF;SsNH2;SsOH;Sse;SssCH2;SssNH;SssO;SssS;SsssCH;SsssN;SssssC;StN;StsC;Sv;TASA;TIC0;TIC1;TIC2;TIC3;TIC4;TIC5;TMPC10;TMWC10;TPSA;TSRW10;TopoPSA;TopoPSA(NO);TopoShapeIndex;TpiPC10;VAdjMat;VE1_A;VE1_D;VE1_Dt;VE1_DzZ;VE1_Dzare;VE1_Dzi;VE1_Dzm;VE1_Dzp;VE1_Dzpe;VE1_Dzse;VE1_Dzv;VE2_A;VE2_D;VE2_Dt;VE2_DzZ;VE2_Dzare;VE2_Dzi;VE2_Dzm;VE2_Dzp;VE2_Dzpe;VE2_Dzse;VE2_Dzv;VE3_A;VE3_D;VE3_Dt;VE3_DzZ;VE3_Dzare;VE3_Dzi;VE3_Dzm;VE3_Dzp;VE3_Dzpe;VE3_Dzse;VE3_Dzv;VMcGowan;VR1_A;VR1_D;VR1_Dt;VR1_DzZ;VR1_Dzare;VR1_Dzi;VR1_Dzm;VR1_Dzp;VR1_Dzpe;VR1_Dzse;VR1_Dzv;VR2_A;VR2_D;VR2_Dt;VR2_DzZ;VR2_Dzare;VR2_Dzi;VR2_Dzm;VR2_Dzp;VR2_Dzpe;VR2_Dzse;VR2_Dzv;VR3_A;VR3_D;VR3_Dt;VR3_DzZ;VR3_Dzare;VR3_Dzi;VR3_Dzm;VR3_Dzp;VR3_Dzpe;VR3_Dzse;VR3_Dzv;VSA_EState1;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;Vabc;WNSA1;WNSA2;WNSA3;WNSA4;WNSA5;WPSA1;WPSA2;WPSA3;WPSA4;WPSA5;WPath;WPol;Xc-3d;Xc-3dv;Xc-4d;Xc-4dv;Xc-5d;Xc-5dv;Xc-6d;Xc-6dv;Xch-3d;Xch-3dv;Xch-4d;Xch-4dv;Xch-5d;Xch-5dv;Xch-6d;Xch-6dv;Xch-7d;Xch-7dv;Xp-0d;Xp-0dv;Xp-1d;Xp-1dv;Xp-2d;Xp-2dv;Xp-3d;Xp-3dv;Xp-4d;Xp-4dv;Xp-5d;Xp-5dv;Xp-6d;Xp-6dv;Xp-7d;Xp-7dv;Xpc-4d;Xpc-4dv;Xpc-5d;Xpc-5dv;Xpc-6d;Xpc-6dv;ZMIC0;ZMIC1;ZMIC2;ZMIC3;ZMIC4;ZMIC5;Zagreb1;Zagreb2;apol;bpol;fMF;fragCpx;mZagreb1;mZagreb2;n10AHRing;n10ARing;n10FAHRing;n10FARing;n10FHRing;n10FRing;n10FaHRing;n10FaRing;n10HRing;n10Ring;n10aHRing;n10aRing;n11AHRing;n11ARing;n11FAHRing;n11FARing;n11FHRing;n11FRing;n11FaHRing;n11FaRing;n11HRing;n11Ring;n11aHRing;n11aRing;n12AHRing;n12ARing;n12FAHRing;n12FARing;n12FHRing;n12FRing;n12FaHRing;n12FaRing;n12HRing;n12Ring;n12aHRing;n12aRing;n3AHRing;n3ARing;n3HRing;n3Ring;n3aHRing;n3aRing;n4AHRing;n4ARing;n4FAHRing;n4FARing;n4FHRing;n4FRing;n4FaHRing;n4FaRing;n4HRing;n4Ring;n4aHRing;n4aRing;n5AHRing;n5ARing;n5FAHRing;n5FARing;n5FHRing;n5FRing;n5FaHRing;n5FaRing;n5HRing;n5Ring;n5aHRing;n5aRing;n6AHRing;n6ARing;n6FAHRing;n6FARing;n6FHRing;n6FRing;n6FaHRing;n6FaRing;n6HRing;n6Ring;n6aHRing;n6aRing;n7AHRing;n7ARing;n7FAHRing;n7FARing;n7FHRing;n7FRing;n7FaHRing;n7FaRing;n7HRing;n7Ring;n7aHRing;n7aRing;n8AHRing;n8ARing;n8FAHRing;n8FARing;n8FHRing;n8FRing;n8FaHRing;n8FaRing;n8HRing;n8Ring;n8aHRing;n8aRing;n9AHRing;n9ARing;n9FAHRing;n9FARing;n9FHRing;n9FRing;n9FaHRing;n9FaRing;n9HRing;n9Ring;n9aHRing;n9aRing;nAHRing;nARing;nAcid;nAromAtom;nAromBond;nAtom;nB;nBase;nBonds;nBondsA;nBondsD;nBondsKD;nBondsKS;nBondsM;nBondsO;nBondsS;nBondsT;nBr;nBridgehead;nC;nCl;nF;nFAHRing;nFARing;nFHRing;nFRing;nFaHRing;nFaRing;nG12AHRing;nG12ARing;nG12FAHRing;nG12FARing;nG12FHRing;nG12FRing;nG12FaHRing;nG12FaRing;nG12HRing;nG12Ring;nG12aHRing;nG12aRing;nH;nHBAcc;nHBDon;nHRing;nHeavyAtom;nHetero;nI;nN;nO;nP;nRing;nRot;nS;nSpiro;nX;naHRing;naRing;piPC1;piPC10;piPC2;piPC3;piPC4;piPC5;piPC6;piPC7;piPC8;piPC9,0,mordred -rdkit_raw,MaxEStateIndex;MinEStateIndex;MaxAbsEStateIndex;MinAbsEStateIndex;qed;MolWt;HeavyAtomMolWt;ExactMolWt;NumValenceElectrons;NumRadicalElectrons;MaxPartialCharge;MinPartialCharge;MaxAbsPartialCharge;MinAbsPartialCharge;FpDensityMorgan1;FpDensityMorgan2;FpDensityMorgan3;BalabanJ;BertzCT;Chi0;Chi0n;Chi0v;Chi1;Chi1n;Chi1v;Chi2n;Chi2v;Chi3n;Chi3v;Chi4n;Chi4v;HallKierAlpha;Ipc;Kappa1;Kappa2;Kappa3;LabuteASA;PEOE_VSA1;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;PEOE_VSA14;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;SMR_VSA1;SMR_VSA10;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1;SlogP_VSA10;SlogP_VSA11;SlogP_VSA12;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;TPSA;EState_VSA1;EState_VSA10;EState_VSA11;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;VSA_EState1;VSA_EState10;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;FractionCSP3;HeavyAtomCount;NHOHCount;NOCount;NumAliphaticCarbocycles;NumAliphaticHeterocycles;NumAliphaticRings;NumAromaticCarbocycles;NumAromaticHeterocycles;NumAromaticRings;NumHAcceptors;NumHDonors;NumHeteroatoms;NumRotatableBonds;NumSaturatedCarbocycles;NumSaturatedHeterocycles;NumSaturatedRings;RingCount;MolLogP;MolMR;fr_Al_COO;fr_Al_OH;fr_Al_OH_noTert;fr_ArN;fr_Ar_COO;fr_Ar_N;fr_Ar_NH;fr_Ar_OH;fr_COO;fr_COO2;fr_C_O;fr_C_O_noCOO;fr_C_S;fr_HOCCN;fr_Imine;fr_NH0;fr_NH1;fr_NH2;fr_N_O;fr_Ndealkylation1;fr_Ndealkylation2;fr_Nhpyrrole;fr_SH;fr_aldehyde;fr_alkyl_carbamate;fr_alkyl_halide;fr_allylic_oxid;fr_amide;fr_amidine;fr_aniline;fr_aryl_methyl;fr_azide;fr_azo;fr_barbitur;fr_benzene;fr_benzodiazepine;fr_bicyclic;fr_diazo;fr_dihydropyridine;fr_epoxide;fr_ester;fr_ether;fr_furan;fr_guanido;fr_halogen;fr_hdrzine;fr_hdrzone;fr_imidazole;fr_imide;fr_isocyan;fr_isothiocyan;fr_ketone;fr_ketone_Topliss;fr_lactam;fr_lactone;fr_methoxy;fr_morpholine;fr_nitrile;fr_nitro;fr_nitro_arom;fr_nitro_arom_nonortho;fr_nitroso;fr_oxazole;fr_oxime;fr_para_hydroxylation;fr_phenol;fr_phenol_noOrthoHbond;fr_phos_acid;fr_phos_ester;fr_piperdine;fr_piperzine;fr_priamide;fr_prisulfonamd;fr_pyridine;fr_quatN;fr_sulfide;fr_sulfonamd;fr_sulfone;fr_term_acetylene;fr_tetrazole;fr_thiazole;fr_thiocyan;fr_thiophene;fr_unbrch_alkane;fr_urea,0,rdkit +rdkit_raw,MaxEStateIndex;MinEStateIndex;MaxAbsEStateIndex;MinAbsEStateIndex;qed;MolWt;HeavyAtomMolWt;ExactMolWt;NumValenceElectrons;NumRadicalElectrons;MaxPartialCharge;MinPartialCharge;MaxAbsPartialCharge;MinAbsPartialCharge;FpDensityMorgan1;FpDensityMorgan2;FpDensityMorgan3;BalabanJ;BertzCT;Chi0;Chi0n;Chi0v;Chi1;Chi1n;Chi1v;Chi2n;Chi2v;Chi3n;Chi3v;Chi4n;Chi4v;HallKierAlpha;AvgIpc;Kappa1;Kappa2;Kappa3;LabuteASA;PEOE_VSA1;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;PEOE_VSA14;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;SMR_VSA1;SMR_VSA10;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1;SlogP_VSA10;SlogP_VSA11;SlogP_VSA12;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;TPSA;EState_VSA1;EState_VSA10;EState_VSA11;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;VSA_EState1;VSA_EState10;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;FractionCSP3;HeavyAtomCount;NHOHCount;NOCount;NumAliphaticCarbocycles;NumAliphaticHeterocycles;NumAliphaticRings;NumAromaticCarbocycles;NumAromaticHeterocycles;NumAromaticRings;NumHAcceptors;NumHDonors;NumHeteroatoms;NumRotatableBonds;NumSaturatedCarbocycles;NumSaturatedHeterocycles;NumSaturatedRings;RingCount;MolLogP;MolMR;fr_Al_COO;fr_Al_OH;fr_Al_OH_noTert;fr_ArN;fr_Ar_COO;fr_Ar_N;fr_Ar_NH;fr_Ar_OH;fr_COO;fr_COO2;fr_C_O;fr_C_O_noCOO;fr_C_S;fr_HOCCN;fr_Imine;fr_NH0;fr_NH1;fr_NH2;fr_N_O;fr_Ndealkylation1;fr_Ndealkylation2;fr_Nhpyrrole;fr_SH;fr_aldehyde;fr_alkyl_carbamate;fr_alkyl_halide;fr_allylic_oxid;fr_amide;fr_amidine;fr_aniline;fr_aryl_methyl;fr_azide;fr_azo;fr_barbitur;fr_benzene;fr_benzodiazepine;fr_bicyclic;fr_diazo;fr_dihydropyridine;fr_epoxide;fr_ester;fr_ether;fr_furan;fr_guanido;fr_halogen;fr_hdrzine;fr_hdrzone;fr_imidazole;fr_imide;fr_isocyan;fr_isothiocyan;fr_ketone;fr_ketone_Topliss;fr_lactam;fr_lactone;fr_methoxy;fr_morpholine;fr_nitrile;fr_nitro;fr_nitro_arom;fr_nitro_arom_nonortho;fr_nitroso;fr_oxazole;fr_oxime;fr_para_hydroxylation;fr_phenol;fr_phenol_noOrthoHbond;fr_phos_acid;fr_phos_ester;fr_piperdine;fr_piperzine;fr_priamide;fr_prisulfonamd;fr_pyridine;fr_quatN;fr_sulfide;fr_sulfonamd;fr_sulfone;fr_term_acetylene;fr_tetrazole;fr_thiazole;fr_thiocyan;fr_thiophene;fr_unbrch_alkane;fr_urea,0,rdkit From 2551e3832898effb9f26622fa0843489156955a5 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Wed, 22 Jan 2025 16:09:06 -0800 Subject: [PATCH 12/23] set default for PowerTransformer method --- atomsci/ddm/pipeline/parameter_parser.py | 1 + 1 file changed, 1 insertion(+) diff --git a/atomsci/ddm/pipeline/parameter_parser.py b/atomsci/ddm/pipeline/parameter_parser.py index 2bd23edf..f42a7f1f 100644 --- a/atomsci/ddm/pipeline/parameter_parser.py +++ b/atomsci/ddm/pipeline/parameter_parser.py @@ -1307,6 +1307,7 @@ def get_parser(): # PowerTransformer parameters parser.add_argument( '--powertransformer_method', choices=['yeo-johnson', 'box-cox'], + default='yeo-johnson', help='The power transform method. Available methods are: "yeo-johnson", ' 'works with positive and negative values "box-cox", only works with strictly positive values. ' 'Choices are {"yeo-johnson", "box-cox"}') From fa3ea05807c50aab33589f960808e5b09d1594d5 Mon Sep 17 00:00:00 2001 From: stewarthe6 <40305524+stewarthe6@users.noreply.github.com> Date: Thu, 20 Mar 2025 16:26:18 -0700 Subject: [PATCH 13/23] Update descriptor_sets_sources_by_descr_type.csv Ipc should not be changed to AvgIpc like this because it would break all rdkit_raw models. --- atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv b/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv index 1a72e7b0..787842ae 100644 --- a/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv +++ b/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv @@ -8,4 +8,4 @@ moe_scaled_filtered,ASA+_per_atom;ASA-;ASA_H_per_atom;ASA_P;ASA_per_atom;BCUT_PE moe_informative,ASA+;ASA-;ASA_H;ASA_P;ASA;BCUT_PEOE_0;BCUT_PEOE_1;BCUT_PEOE_2;BCUT_PEOE_3;BCUT_SLOGP_0;BCUT_SLOGP_1;BCUT_SLOGP_2;BCUT_SLOGP_3;BCUT_SMR_0;BCUT_SMR_1;BCUT_SMR_2;BCUT_SMR_3;CASA+;CASA-;DASA;DCASA;E;E_ang;E_ele;E_nb;E_oop;E_sol;E_stb;E_str;E_strain;E_tor;E_vdw;FASA+;FASA-;FASA_H;FASA_P;FCASA+;FCASA-;FCharge;GCUT_PEOE_0;GCUT_PEOE_1;GCUT_PEOE_2;GCUT_PEOE_3;GCUT_SLOGP_0;GCUT_SLOGP_1;GCUT_SLOGP_2;GCUT_SLOGP_3;GCUT_SMR_0;GCUT_SMR_1;GCUT_SMR_2;GCUT_SMR_3;Kier1;Kier2;Kier3;KierA1;KierA2;KierA3;KierFlex;PC+;PC-;PEOE_PC+;PEOE_PC-;PEOE_RPC+;PEOE_RPC-;PEOE_VSA+0;PEOE_VSA+1;PEOE_VSA+2;PEOE_VSA+3;PEOE_VSA+4;PEOE_VSA+5;PEOE_VSA+6;PEOE_VSA-0;PEOE_VSA-1;PEOE_VSA-2;PEOE_VSA-3;PEOE_VSA-4;PEOE_VSA-5;PEOE_VSA-6;PEOE_VSA_FHYD;PEOE_VSA_FNEG;PEOE_VSA_FPNEG;PEOE_VSA_FPPOS;PEOE_VSA_HYD;PEOE_VSA_NEG;PEOE_VSA_PNEG;PEOE_VSA_POL;PEOE_VSA_POS;PEOE_VSA_PPOS;Q_VSA_FHYD;Q_VSA_FPNEG;Q_VSA_FPOS;Q_VSA_FPPOS;Q_VSA_HYD;Q_VSA_NEG;Q_VSA_PNEG;Q_VSA_POL;Q_VSA_POS;Q_VSA_PPOS;RPC+;RPC-;SMR_VSA0;SMR_VSA1;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR;SlogP;SlogP_VSA0;SlogP_VSA1;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;TPSA;VAdjEq;VAdjMa;VDistEq;VDistMa;VSA;Weight;a_IC;a_acc;a_acid;a_aro;a_base;a_count;a_don;a_donacc;a_heavy;a_hyd;a_nB;a_nBr;a_nC;a_nCl;a_nF;a_nI;a_nN;a_nO;a_nP;a_nS;apol;ast_fraglike;ast_fraglike_ext;ast_violation;ast_violation_ext;b_1rotN;b_1rotR;b_ar;b_count;b_double;b_heavy;b_max1len;b_rotN;b_rotR;b_single;b_triple;balabanJ;bpol;chi0_C;chi0;chi0v_C;chi0v;chi1_C;chi1;chi1v_C;chi1v;chiral;chiral_u;dens;density;diameter;dipole;dipoleX;dipoleY;dipoleZ;glob;h_ema;h_emd_C;h_emd;h_logD;h_logP;h_logS;h_log_dbo;h_log_pbo;h_mr;h_pKa;h_pKb;h_pavgQ;h_pstates;h_pstrain;lip_acc;lip_don;lip_druglike;lip_violation;logP(o/w);logS;mr;mutagenic;npr1;npr2;opr_brigid;opr_leadlike;opr_nrot;opr_violation;petitjean;petitjeanSC;pmi1;pmi2;pmi3;pmiX;pmiY;pmiZ;pmi;radius;reactive;rgyr;rings;rsynth;std_dim1;std_dim2;std_dim3;vdw_area;vdw_vol;vol;vsa_acc;vsa_acid;vsa_base;vsa_don;vsa_hyd;vsa_other;vsa_pol;vsurf_A;vsurf_CP;vsurf_CW1;vsurf_CW2;vsurf_CW3;vsurf_CW4;vsurf_CW5;vsurf_CW6;vsurf_CW7;vsurf_CW8;vsurf_D1;vsurf_D2;vsurf_D3;vsurf_D4;vsurf_D5;vsurf_D6;vsurf_D7;vsurf_D8;vsurf_DD12;vsurf_DD13;vsurf_DD23;vsurf_DW12;vsurf_DW13;vsurf_DW23;vsurf_EDmin1;vsurf_EDmin2;vsurf_EDmin3;vsurf_EWmin1;vsurf_EWmin2;vsurf_EWmin3;vsurf_G;vsurf_HB1;vsurf_HB2;vsurf_HB3;vsurf_HB4;vsurf_HB5;vsurf_HB6;vsurf_HB7;vsurf_HB8;vsurf_HL1;vsurf_HL2;vsurf_ID1;vsurf_ID2;vsurf_ID3;vsurf_ID4;vsurf_ID5;vsurf_ID6;vsurf_ID7;vsurf_ID8;vsurf_IW1;vsurf_IW2;vsurf_IW3;vsurf_IW4;vsurf_IW5;vsurf_IW6;vsurf_IW7;vsurf_IW8;vsurf_R;vsurf_S;vsurf_V;vsurf_W1;vsurf_W2;vsurf_W3;vsurf_W4;vsurf_W5;vsurf_W6;vsurf_W7;vsurf_W8;vsurf_Wp1;vsurf_Wp2;vsurf_Wp3;vsurf_Wp4;vsurf_Wp5;vsurf_Wp6;vsurf_Wp7;vsurf_Wp8;weinerPath;weinerPol;zagreb,0,moe mordred_raw,ABC;ABCGG;nAcid;nBase;SpAbs_A;SpMax_A;SpDiam_A;SpAD_A;SpMAD_A;LogEE_A;VE1_A;VE2_A;VE3_A;VR1_A;VR2_A;VR3_A;nAromAtom;nAromBond;nAtom;nHeavyAtom;nSpiro;nBridgehead;nHetero;nH;nB;nC;nN;nO;nS;nP;nF;nCl;nBr;nI;nX;ATS0dv;ATS1dv;ATS2dv;ATS3dv;ATS4dv;ATS5dv;ATS6dv;ATS7dv;ATS8dv;ATS0d;ATS1d;ATS2d;ATS3d;ATS4d;ATS5d;ATS6d;ATS7d;ATS8d;ATS0s;ATS1s;ATS2s;ATS3s;ATS4s;ATS5s;ATS6s;ATS7s;ATS8s;ATS0Z;ATS1Z;ATS2Z;ATS3Z;ATS4Z;ATS5Z;ATS6Z;ATS7Z;ATS8Z;ATS0m;ATS1m;ATS2m;ATS3m;ATS4m;ATS5m;ATS6m;ATS7m;ATS8m;ATS0v;ATS1v;ATS2v;ATS3v;ATS4v;ATS5v;ATS6v;ATS7v;ATS8v;ATS0se;ATS1se;ATS2se;ATS3se;ATS4se;ATS5se;ATS6se;ATS7se;ATS8se;ATS0pe;ATS1pe;ATS2pe;ATS3pe;ATS4pe;ATS5pe;ATS6pe;ATS7pe;ATS8pe;ATS0are;ATS1are;ATS2are;ATS3are;ATS4are;ATS5are;ATS6are;ATS7are;ATS8are;ATS0p;ATS1p;ATS2p;ATS3p;ATS4p;ATS5p;ATS6p;ATS7p;ATS8p;ATS0i;ATS1i;ATS2i;ATS3i;ATS4i;ATS5i;ATS6i;ATS7i;ATS8i;AATS0dv;AATS1dv;AATS2dv;AATS3dv;AATS4dv;AATS5dv;AATS6dv;AATS7dv;AATS8dv;AATS0d;AATS1d;AATS2d;AATS3d;AATS4d;AATS5d;AATS6d;AATS7d;AATS8d;AATS0s;AATS1s;AATS2s;AATS3s;AATS4s;AATS5s;AATS6s;AATS7s;AATS8s;AATS0Z;AATS1Z;AATS2Z;AATS3Z;AATS4Z;AATS5Z;AATS6Z;AATS7Z;AATS8Z;AATS0m;AATS1m;AATS2m;AATS3m;AATS4m;AATS5m;AATS6m;AATS7m;AATS8m;AATS0v;AATS1v;AATS2v;AATS3v;AATS4v;AATS5v;AATS6v;AATS7v;AATS8v;AATS0se;AATS1se;AATS2se;AATS3se;AATS4se;AATS5se;AATS6se;AATS7se;AATS8se;AATS0pe;AATS1pe;AATS2pe;AATS3pe;AATS4pe;AATS5pe;AATS6pe;AATS7pe;AATS8pe;AATS0are;AATS1are;AATS2are;AATS3are;AATS4are;AATS5are;AATS6are;AATS7are;AATS8are;AATS0p;AATS1p;AATS2p;AATS3p;AATS4p;AATS5p;AATS6p;AATS7p;AATS8p;AATS0i;AATS1i;AATS2i;AATS3i;AATS4i;AATS5i;AATS6i;AATS7i;AATS8i;ATSC0c;ATSC1c;ATSC2c;ATSC3c;ATSC4c;ATSC5c;ATSC6c;ATSC7c;ATSC8c;ATSC0dv;ATSC1dv;ATSC2dv;ATSC3dv;ATSC4dv;ATSC5dv;ATSC6dv;ATSC7dv;ATSC8dv;ATSC0d;ATSC1d;ATSC2d;ATSC3d;ATSC4d;ATSC5d;ATSC6d;ATSC7d;ATSC8d;ATSC0s;ATSC1s;ATSC2s;ATSC3s;ATSC4s;ATSC5s;ATSC6s;ATSC7s;ATSC8s;ATSC0Z;ATSC1Z;ATSC2Z;ATSC3Z;ATSC4Z;ATSC5Z;ATSC6Z;ATSC7Z;ATSC8Z;ATSC0m;ATSC1m;ATSC2m;ATSC3m;ATSC4m;ATSC5m;ATSC6m;ATSC7m;ATSC8m;ATSC0v;ATSC1v;ATSC2v;ATSC3v;ATSC4v;ATSC5v;ATSC6v;ATSC7v;ATSC8v;ATSC0se;ATSC1se;ATSC2se;ATSC3se;ATSC4se;ATSC5se;ATSC6se;ATSC7se;ATSC8se;ATSC0pe;ATSC1pe;ATSC2pe;ATSC3pe;ATSC4pe;ATSC5pe;ATSC6pe;ATSC7pe;ATSC8pe;ATSC0are;ATSC1are;ATSC2are;ATSC3are;ATSC4are;ATSC5are;ATSC6are;ATSC7are;ATSC8are;ATSC0p;ATSC1p;ATSC2p;ATSC3p;ATSC4p;ATSC5p;ATSC6p;ATSC7p;ATSC8p;ATSC0i;ATSC1i;ATSC2i;ATSC3i;ATSC4i;ATSC5i;ATSC6i;ATSC7i;ATSC8i;AATSC0c;AATSC1c;AATSC2c;AATSC3c;AATSC4c;AATSC5c;AATSC6c;AATSC7c;AATSC8c;AATSC0dv;AATSC1dv;AATSC2dv;AATSC3dv;AATSC4dv;AATSC5dv;AATSC6dv;AATSC7dv;AATSC8dv;AATSC0d;AATSC1d;AATSC2d;AATSC3d;AATSC4d;AATSC5d;AATSC6d;AATSC7d;AATSC8d;AATSC0s;AATSC1s;AATSC2s;AATSC3s;AATSC4s;AATSC5s;AATSC6s;AATSC7s;AATSC8s;AATSC0Z;AATSC1Z;AATSC2Z;AATSC3Z;AATSC4Z;AATSC5Z;AATSC6Z;AATSC7Z;AATSC8Z;AATSC0m;AATSC1m;AATSC2m;AATSC3m;AATSC4m;AATSC5m;AATSC6m;AATSC7m;AATSC8m;AATSC0v;AATSC1v;AATSC2v;AATSC3v;AATSC4v;AATSC5v;AATSC6v;AATSC7v;AATSC8v;AATSC0se;AATSC1se;AATSC2se;AATSC3se;AATSC4se;AATSC5se;AATSC6se;AATSC7se;AATSC8se;AATSC0pe;AATSC1pe;AATSC2pe;AATSC3pe;AATSC4pe;AATSC5pe;AATSC6pe;AATSC7pe;AATSC8pe;AATSC0are;AATSC1are;AATSC2are;AATSC3are;AATSC4are;AATSC5are;AATSC6are;AATSC7are;AATSC8are;AATSC0p;AATSC1p;AATSC2p;AATSC3p;AATSC4p;AATSC5p;AATSC6p;AATSC7p;AATSC8p;AATSC0i;AATSC1i;AATSC2i;AATSC3i;AATSC4i;AATSC5i;AATSC6i;AATSC7i;AATSC8i;MATS1c;MATS2c;MATS3c;MATS4c;MATS5c;MATS6c;MATS7c;MATS8c;MATS1dv;MATS2dv;MATS3dv;MATS4dv;MATS5dv;MATS6dv;MATS7dv;MATS8dv;MATS1d;MATS2d;MATS3d;MATS4d;MATS5d;MATS6d;MATS7d;MATS8d;MATS1s;MATS2s;MATS3s;MATS4s;MATS5s;MATS6s;MATS7s;MATS8s;MATS1Z;MATS2Z;MATS3Z;MATS4Z;MATS5Z;MATS6Z;MATS7Z;MATS8Z;MATS1m;MATS2m;MATS3m;MATS4m;MATS5m;MATS6m;MATS7m;MATS8m;MATS1v;MATS2v;MATS3v;MATS4v;MATS5v;MATS6v;MATS7v;MATS8v;MATS1se;MATS2se;MATS3se;MATS4se;MATS5se;MATS6se;MATS7se;MATS8se;MATS1pe;MATS2pe;MATS3pe;MATS4pe;MATS5pe;MATS6pe;MATS7pe;MATS8pe;MATS1are;MATS2are;MATS3are;MATS4are;MATS5are;MATS6are;MATS7are;MATS8are;MATS1p;MATS2p;MATS3p;MATS4p;MATS5p;MATS6p;MATS7p;MATS8p;MATS1i;MATS2i;MATS3i;MATS4i;MATS5i;MATS6i;MATS7i;MATS8i;GATS1c;GATS2c;GATS3c;GATS4c;GATS5c;GATS6c;GATS7c;GATS8c;GATS1dv;GATS2dv;GATS3dv;GATS4dv;GATS5dv;GATS6dv;GATS7dv;GATS8dv;GATS1d;GATS2d;GATS3d;GATS4d;GATS5d;GATS6d;GATS7d;GATS8d;GATS1s;GATS2s;GATS3s;GATS4s;GATS5s;GATS6s;GATS7s;GATS8s;GATS1Z;GATS2Z;GATS3Z;GATS4Z;GATS5Z;GATS6Z;GATS7Z;GATS8Z;GATS1m;GATS2m;GATS3m;GATS4m;GATS5m;GATS6m;GATS7m;GATS8m;GATS1v;GATS2v;GATS3v;GATS4v;GATS5v;GATS6v;GATS7v;GATS8v;GATS1se;GATS2se;GATS3se;GATS4se;GATS5se;GATS6se;GATS7se;GATS8se;GATS1pe;GATS2pe;GATS3pe;GATS4pe;GATS5pe;GATS6pe;GATS7pe;GATS8pe;GATS1are;GATS2are;GATS3are;GATS4are;GATS5are;GATS6are;GATS7are;GATS8are;GATS1p;GATS2p;GATS3p;GATS4p;GATS5p;GATS6p;GATS7p;GATS8p;GATS1i;GATS2i;GATS3i;GATS4i;GATS5i;GATS6i;GATS7i;GATS8i;BCUTc-1h;BCUTc-1l;BCUTdv-1h;BCUTdv-1l;BCUTd-1h;BCUTd-1l;BCUTs-1h;BCUTs-1l;BCUTZ-1h;BCUTZ-1l;BCUTm-1h;BCUTm-1l;BCUTv-1h;BCUTv-1l;BCUTse-1h;BCUTse-1l;BCUTpe-1h;BCUTpe-1l;BCUTare-1h;BCUTare-1l;BCUTp-1h;BCUTp-1l;BCUTi-1h;BCUTi-1l;BalabanJ;SpAbs_DzZ;SpMax_DzZ;SpDiam_DzZ;SpAD_DzZ;SpMAD_DzZ;LogEE_DzZ;SM1_DzZ;VE1_DzZ;VE2_DzZ;VE3_DzZ;VR1_DzZ;VR2_DzZ;VR3_DzZ;SpAbs_Dzm;SpMax_Dzm;SpDiam_Dzm;SpAD_Dzm;SpMAD_Dzm;LogEE_Dzm;SM1_Dzm;VE1_Dzm;VE2_Dzm;VE3_Dzm;VR1_Dzm;VR2_Dzm;VR3_Dzm;SpAbs_Dzv;SpMax_Dzv;SpDiam_Dzv;SpAD_Dzv;SpMAD_Dzv;LogEE_Dzv;SM1_Dzv;VE1_Dzv;VE2_Dzv;VE3_Dzv;VR1_Dzv;VR2_Dzv;VR3_Dzv;SpAbs_Dzse;SpMax_Dzse;SpDiam_Dzse;SpAD_Dzse;SpMAD_Dzse;LogEE_Dzse;SM1_Dzse;VE1_Dzse;VE2_Dzse;VE3_Dzse;VR1_Dzse;VR2_Dzse;VR3_Dzse;SpAbs_Dzpe;SpMax_Dzpe;SpDiam_Dzpe;SpAD_Dzpe;SpMAD_Dzpe;LogEE_Dzpe;SM1_Dzpe;VE1_Dzpe;VE2_Dzpe;VE3_Dzpe;VR1_Dzpe;VR2_Dzpe;VR3_Dzpe;SpAbs_Dzare;SpMax_Dzare;SpDiam_Dzare;SpAD_Dzare;SpMAD_Dzare;LogEE_Dzare;SM1_Dzare;VE1_Dzare;VE2_Dzare;VE3_Dzare;VR1_Dzare;VR2_Dzare;VR3_Dzare;SpAbs_Dzp;SpMax_Dzp;SpDiam_Dzp;SpAD_Dzp;SpMAD_Dzp;LogEE_Dzp;SM1_Dzp;VE1_Dzp;VE2_Dzp;VE3_Dzp;VR1_Dzp;VR2_Dzp;VR3_Dzp;SpAbs_Dzi;SpMax_Dzi;SpDiam_Dzi;SpAD_Dzi;SpMAD_Dzi;LogEE_Dzi;SM1_Dzi;VE1_Dzi;VE2_Dzi;VE3_Dzi;VR1_Dzi;VR2_Dzi;VR3_Dzi;BertzCT;nBonds;nBondsO;nBondsS;nBondsD;nBondsT;nBondsA;nBondsM;nBondsKS;nBondsKD;RNCG;RPCG;C1SP1;C2SP1;C1SP2;C2SP2;C3SP2;C1SP3;C2SP3;C3SP3;C4SP3;HybRatio;FCSP3;Xch-3d;Xch-4d;Xch-5d;Xch-6d;Xch-7d;Xch-3dv;Xch-4dv;Xch-5dv;Xch-6dv;Xch-7dv;Xc-3d;Xc-4d;Xc-5d;Xc-6d;Xc-3dv;Xc-4dv;Xc-5dv;Xc-6dv;Xpc-4d;Xpc-5d;Xpc-6d;Xpc-4dv;Xpc-5dv;Xpc-6dv;Xp-0d;Xp-1d;Xp-2d;Xp-3d;Xp-4d;Xp-5d;Xp-6d;Xp-7d;AXp-0d;AXp-1d;AXp-2d;AXp-3d;AXp-4d;AXp-5d;AXp-6d;AXp-7d;Xp-0dv;Xp-1dv;Xp-2dv;Xp-3dv;Xp-4dv;Xp-5dv;Xp-6dv;Xp-7dv;AXp-0dv;AXp-1dv;AXp-2dv;AXp-3dv;AXp-4dv;AXp-5dv;AXp-6dv;AXp-7dv;SZ;Sm;Sv;Sse;Spe;Sare;Sp;Si;MZ;Mm;Mv;Mse;Mpe;Mare;Mp;Mi;SpAbs_Dt;SpMax_Dt;SpDiam_Dt;SpAD_Dt;SpMAD_Dt;LogEE_Dt;SM1_Dt;VE1_Dt;VE2_Dt;VE3_Dt;VR1_Dt;VR2_Dt;VR3_Dt;DetourIndex;SpAbs_D;SpMax_D;SpDiam_D;SpAD_D;SpMAD_D;LogEE_D;VE1_D;VE2_D;VE3_D;VR1_D;VR2_D;VR3_D;NsLi;NssBe;NssssBe;NssBH;NsssB;NssssB;NsCH3;NdCH2;NssCH2;NtCH;NdsCH;NaaCH;NsssCH;NddC;NtsC;NdssC;NaasC;NaaaC;NssssC;NsNH3;NsNH2;NssNH2;NdNH;NssNH;NaaNH;NtN;NsssNH;NdsN;NaaN;NsssN;NddsN;NaasN;NssssN;NsOH;NdO;NssO;NaaO;NsF;NsSiH3;NssSiH2;NsssSiH;NssssSi;NsPH2;NssPH;NsssP;NdsssP;NsssssP;NsSH;NdS;NssS;NaaS;NdssS;NddssS;NsCl;NsGeH3;NssGeH2;NsssGeH;NssssGe;NsAsH2;NssAsH;NsssAs;NsssdAs;NsssssAs;NsSeH;NdSe;NssSe;NaaSe;NdssSe;NddssSe;NsBr;NsSnH3;NssSnH2;NsssSnH;NssssSn;NsI;NsPbH3;NssPbH2;NsssPbH;NssssPb;SsLi;SssBe;SssssBe;SssBH;SsssB;SssssB;SsCH3;SdCH2;SssCH2;StCH;SdsCH;SaaCH;SsssCH;SddC;StsC;SdssC;SaasC;SaaaC;SssssC;SsNH3;SsNH2;SssNH2;SdNH;SssNH;SaaNH;StN;SsssNH;SdsN;SaaN;SsssN;SddsN;SaasN;SssssN;SsOH;SdO;SssO;SaaO;SsF;SsSiH3;SssSiH2;SsssSiH;SssssSi;SsPH2;SssPH;SsssP;SdsssP;SsssssP;SsSH;SdS;SssS;SaaS;SdssS;SddssS;SsCl;SsGeH3;SssGeH2;SsssGeH;SssssGe;SsAsH2;SssAsH;SsssAs;SsssdAs;SsssssAs;SsSeH;SdSe;SssSe;SaaSe;SdssSe;SddssSe;SsBr;SsSnH3;SssSnH2;SsssSnH;SssssSn;SsI;SsPbH3;SssPbH2;SsssPbH;SssssPb;MAXsLi;MAXssBe;MAXssssBe;MAXssBH;MAXsssB;MAXssssB;MAXsCH3;MAXdCH2;MAXssCH2;MAXtCH;MAXdsCH;MAXaaCH;MAXsssCH;MAXddC;MAXtsC;MAXdssC;MAXaasC;MAXaaaC;MAXssssC;MAXsNH3;MAXsNH2;MAXssNH2;MAXdNH;MAXssNH;MAXaaNH;MAXtN;MAXsssNH;MAXdsN;MAXaaN;MAXsssN;MAXddsN;MAXaasN;MAXssssN;MAXsOH;MAXdO;MAXssO;MAXaaO;MAXsF;MAXsSiH3;MAXssSiH2;MAXsssSiH;MAXssssSi;MAXsPH2;MAXssPH;MAXsssP;MAXdsssP;MAXsssssP;MAXsSH;MAXdS;MAXssS;MAXaaS;MAXdssS;MAXddssS;MAXsCl;MAXsGeH3;MAXssGeH2;MAXsssGeH;MAXssssGe;MAXsAsH2;MAXssAsH;MAXsssAs;MAXsssdAs;MAXsssssAs;MAXsSeH;MAXdSe;MAXssSe;MAXaaSe;MAXdssSe;MAXddssSe;MAXsBr;MAXsSnH3;MAXssSnH2;MAXsssSnH;MAXssssSn;MAXsI;MAXsPbH3;MAXssPbH2;MAXsssPbH;MAXssssPb;MINsLi;MINssBe;MINssssBe;MINssBH;MINsssB;MINssssB;MINsCH3;MINdCH2;MINssCH2;MINtCH;MINdsCH;MINaaCH;MINsssCH;MINddC;MINtsC;MINdssC;MINaasC;MINaaaC;MINssssC;MINsNH3;MINsNH2;MINssNH2;MINdNH;MINssNH;MINaaNH;MINtN;MINsssNH;MINdsN;MINaaN;MINsssN;MINddsN;MINaasN;MINssssN;MINsOH;MINdO;MINssO;MINaaO;MINsF;MINsSiH3;MINssSiH2;MINsssSiH;MINssssSi;MINsPH2;MINssPH;MINsssP;MINdsssP;MINsssssP;MINsSH;MINdS;MINssS;MINaaS;MINdssS;MINddssS;MINsCl;MINsGeH3;MINssGeH2;MINsssGeH;MINssssGe;MINsAsH2;MINssAsH;MINsssAs;MINsssdAs;MINsssssAs;MINsSeH;MINdSe;MINssSe;MINaaSe;MINdssSe;MINddssSe;MINsBr;MINsSnH3;MINssSnH2;MINsssSnH;MINssssSn;MINsI;MINsPbH3;MINssPbH2;MINsssPbH;MINssssPb;ECIndex;ETA_alpha;AETA_alpha;ETA_shape_p;ETA_shape_y;ETA_shape_x;ETA_beta;AETA_beta;ETA_beta_s;AETA_beta_s;ETA_beta_ns;AETA_beta_ns;ETA_beta_ns_d;AETA_beta_ns_d;ETA_eta;AETA_eta;ETA_eta_L;AETA_eta_L;ETA_eta_R;AETA_eta_R;ETA_eta_RL;AETA_eta_RL;ETA_eta_F;AETA_eta_F;ETA_eta_FL;AETA_eta_FL;ETA_eta_B;AETA_eta_B;ETA_eta_BR;AETA_eta_BR;ETA_dAlpha_A;ETA_dAlpha_B;ETA_epsilon_1;ETA_epsilon_2;ETA_epsilon_3;ETA_epsilon_4;ETA_epsilon_5;ETA_dEpsilon_A;ETA_dEpsilon_B;ETA_dEpsilon_C;ETA_dEpsilon_D;ETA_dBeta;AETA_dBeta;ETA_psi_1;ETA_dPsi_A;ETA_dPsi_B;fragCpx;fMF;nHBAcc;nHBDon;IC0;IC1;IC2;IC3;IC4;IC5;TIC0;TIC1;TIC2;TIC3;TIC4;TIC5;SIC0;SIC1;SIC2;SIC3;SIC4;SIC5;BIC0;BIC1;BIC2;BIC3;BIC4;BIC5;CIC0;CIC1;CIC2;CIC3;CIC4;CIC5;MIC0;MIC1;MIC2;MIC3;MIC4;MIC5;ZMIC0;ZMIC1;ZMIC2;ZMIC3;ZMIC4;ZMIC5;Kier1;Kier2;Kier3;Lipinski;GhoseFilter;FilterItLogS;VMcGowan;LabuteASA;PEOE_VSA1;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;SMR_VSA1;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;SlogP_VSA10;SlogP_VSA11;EState_VSA1;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;EState_VSA10;VSA_EState1;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;MDEC-11;MDEC-12;MDEC-13;MDEC-14;MDEC-22;MDEC-23;MDEC-24;MDEC-33;MDEC-34;MDEC-44;MDEO-11;MDEO-12;MDEO-22;MDEN-11;MDEN-12;MDEN-13;MDEN-22;MDEN-23;MDEN-33;MID;AMID;MID_h;AMID_h;MID_C;AMID_C;MID_N;AMID_N;MID_O;AMID_O;MID_X;AMID_X;MPC2;MPC3;MPC4;MPC5;MPC6;MPC7;MPC8;MPC9;MPC10;TMPC10;piPC1;piPC2;piPC3;piPC4;piPC5;piPC6;piPC7;piPC8;piPC9;piPC10;TpiPC10;apol;bpol;nRing;n3Ring;n4Ring;n5Ring;n6Ring;n7Ring;n8Ring;n9Ring;n10Ring;n11Ring;n12Ring;nG12Ring;nHRing;n3HRing;n4HRing;n5HRing;n6HRing;n7HRing;n8HRing;n9HRing;n10HRing;n11HRing;n12HRing;nG12HRing;naRing;n3aRing;n4aRing;n5aRing;n6aRing;n7aRing;n8aRing;n9aRing;n10aRing;n11aRing;n12aRing;nG12aRing;naHRing;n3aHRing;n4aHRing;n5aHRing;n6aHRing;n7aHRing;n8aHRing;n9aHRing;n10aHRing;n11aHRing;n12aHRing;nG12aHRing;nARing;n3ARing;n4ARing;n5ARing;n6ARing;n7ARing;n8ARing;n9ARing;n10ARing;n11ARing;n12ARing;nG12ARing;nAHRing;n3AHRing;n4AHRing;n5AHRing;n6AHRing;n7AHRing;n8AHRing;n9AHRing;n10AHRing;n11AHRing;n12AHRing;nG12AHRing;nFRing;n4FRing;n5FRing;n6FRing;n7FRing;n8FRing;n9FRing;n10FRing;n11FRing;n12FRing;nG12FRing;nFHRing;n4FHRing;n5FHRing;n6FHRing;n7FHRing;n8FHRing;n9FHRing;n10FHRing;n11FHRing;n12FHRing;nG12FHRing;nFaRing;n4FaRing;n5FaRing;n6FaRing;n7FaRing;n8FaRing;n9FaRing;n10FaRing;n11FaRing;n12FaRing;nG12FaRing;nFaHRing;n4FaHRing;n5FaHRing;n6FaHRing;n7FaHRing;n8FaHRing;n9FaHRing;n10FaHRing;n11FaHRing;n12FaHRing;nG12FaHRing;nFARing;n4FARing;n5FARing;n6FARing;n7FARing;n8FARing;n9FARing;n10FARing;n11FARing;n12FARing;nG12FARing;nFAHRing;n4FAHRing;n5FAHRing;n6FAHRing;n7FAHRing;n8FAHRing;n9FAHRing;n10FAHRing;n11FAHRing;n12FAHRing;nG12FAHRing;nRot;RotRatio;SLogP;SMR;TopoPSA(NO);TopoPSA;GGI1;GGI2;GGI3;GGI4;GGI5;GGI6;GGI7;GGI8;GGI9;GGI10;JGI1;JGI2;JGI3;JGI4;JGI5;JGI6;JGI7;JGI8;JGI9;JGI10;JGT10;Diameter;Radius;TopoShapeIndex;PetitjeanIndex;Vabc;VAdjMat;MWC01;MWC02;MWC03;MWC04;MWC05;MWC06;MWC07;MWC08;MWC09;MWC10;TMWC10;SRW02;SRW03;SRW04;SRW05;SRW06;SRW07;SRW08;SRW09;SRW10;TSRW10;MW;AMW;WPath;WPol;Zagreb1;Zagreb2;mZagreb1;mZagreb2,0,mordred mordred_filtered,AATS0Z;AATS0are;AATS0d;AATS0dv;AATS0i;AATS0m;AATS0p;AATS0pe;AATS0s;AATS0se;AATS0v;AATS1Z;AATS1are;AATS1d;AATS1dv;AATS1i;AATS1m;AATS1p;AATS1pe;AATS1s;AATS1se;AATS1v;AATS2Z;AATS2are;AATS2d;AATS2dv;AATS2i;AATS2m;AATS2p;AATS2pe;AATS2s;AATS2se;AATS2v;AATS3Z;AATS3are;AATS3d;AATS3dv;AATS3i;AATS3m;AATS3p;AATS3pe;AATS3s;AATS3se;AATS3v;AATS4Z;AATS4are;AATS4d;AATS4dv;AATS4i;AATS4m;AATS4p;AATS4pe;AATS4s;AATS4se;AATS4v;AATS5Z;AATS5are;AATS5d;AATS5dv;AATS5i;AATS5m;AATS5p;AATS5pe;AATS5s;AATS5se;AATS5v;AATS6Z;AATS6are;AATS6d;AATS6dv;AATS6i;AATS6m;AATS6p;AATS6pe;AATS6s;AATS6se;AATS6v;AATS7Z;AATS7are;AATS7d;AATS7dv;AATS7i;AATS7m;AATS7p;AATS7pe;AATS7s;AATS7se;AATS7v;AATS8Z;AATS8are;AATS8d;AATS8dv;AATS8i;AATS8m;AATS8p;AATS8pe;AATS8s;AATS8se;AATS8v;AATSC0Z;AATSC0are;AATSC0c;AATSC0d;AATSC0dv;AATSC0i;AATSC0m;AATSC0p;AATSC0pe;AATSC0s;AATSC0se;AATSC0v;AATSC1Z;AATSC1are;AATSC1c;AATSC1d;AATSC1dv;AATSC1i;AATSC1m;AATSC1p;AATSC1pe;AATSC1s;AATSC1se;AATSC1v;AATSC2Z;AATSC2are;AATSC2c;AATSC2d;AATSC2dv;AATSC2i;AATSC2m;AATSC2p;AATSC2pe;AATSC2s;AATSC2se;AATSC2v;AATSC3Z;AATSC3are;AATSC3c;AATSC3d;AATSC3dv;AATSC3i;AATSC3m;AATSC3p;AATSC3pe;AATSC3s;AATSC3se;AATSC3v;AATSC4Z;AATSC4are;AATSC4c;AATSC4d;AATSC4dv;AATSC4i;AATSC4m;AATSC4p;AATSC4pe;AATSC4s;AATSC4se;AATSC4v;AATSC5Z;AATSC5are;AATSC5c;AATSC5d;AATSC5dv;AATSC5i;AATSC5m;AATSC5p;AATSC5pe;AATSC5s;AATSC5se;AATSC5v;AATSC6Z;AATSC6are;AATSC6c;AATSC6d;AATSC6dv;AATSC6i;AATSC6m;AATSC6p;AATSC6pe;AATSC6s;AATSC6se;AATSC6v;AATSC7Z;AATSC7are;AATSC7c;AATSC7d;AATSC7dv;AATSC7i;AATSC7m;AATSC7p;AATSC7pe;AATSC7s;AATSC7se;AATSC7v;AATSC8Z;AATSC8are;AATSC8c;AATSC8d;AATSC8dv;AATSC8i;AATSC8m;AATSC8p;AATSC8pe;AATSC8s;AATSC8se;AATSC8v;ABC;ABCGG;AETA_alpha;AETA_beta;AETA_beta_ns;AETA_beta_ns_d;AETA_beta_s;AETA_dBeta;AETA_eta;AETA_eta_B;AETA_eta_BR;AETA_eta_F;AETA_eta_FL;AETA_eta_L;AETA_eta_R;AETA_eta_RL;AMID;AMID_C;AMID_N;AMID_O;AMID_X;AMID_h;AMW;ATS0Z;ATS0are;ATS0d;ATS0dv;ATS0i;ATS0m;ATS0p;ATS0pe;ATS0s;ATS0se;ATS0v;ATS1Z;ATS1are;ATS1d;ATS1dv;ATS1i;ATS1m;ATS1p;ATS1pe;ATS1s;ATS1se;ATS1v;ATS2Z;ATS2are;ATS2d;ATS2dv;ATS2i;ATS2m;ATS2p;ATS2pe;ATS2s;ATS2se;ATS2v;ATS3Z;ATS3are;ATS3d;ATS3dv;ATS3i;ATS3m;ATS3p;ATS3pe;ATS3s;ATS3se;ATS3v;ATS4Z;ATS4are;ATS4d;ATS4dv;ATS4i;ATS4m;ATS4p;ATS4pe;ATS4s;ATS4se;ATS4v;ATS5Z;ATS5are;ATS5d;ATS5dv;ATS5i;ATS5m;ATS5p;ATS5pe;ATS5s;ATS5se;ATS5v;ATS6Z;ATS6are;ATS6d;ATS6dv;ATS6i;ATS6m;ATS6p;ATS6pe;ATS6s;ATS6se;ATS6v;ATS7Z;ATS7are;ATS7d;ATS7dv;ATS7i;ATS7m;ATS7p;ATS7pe;ATS7s;ATS7se;ATS7v;ATS8Z;ATS8are;ATS8d;ATS8dv;ATS8i;ATS8m;ATS8p;ATS8pe;ATS8s;ATS8se;ATS8v;ATSC0Z;ATSC0are;ATSC0c;ATSC0d;ATSC0dv;ATSC0i;ATSC0m;ATSC0p;ATSC0pe;ATSC0s;ATSC0se;ATSC0v;ATSC1Z;ATSC1are;ATSC1c;ATSC1d;ATSC1dv;ATSC1i;ATSC1m;ATSC1p;ATSC1pe;ATSC1s;ATSC1se;ATSC1v;ATSC2Z;ATSC2are;ATSC2c;ATSC2d;ATSC2dv;ATSC2i;ATSC2m;ATSC2p;ATSC2pe;ATSC2s;ATSC2se;ATSC2v;ATSC3Z;ATSC3are;ATSC3c;ATSC3d;ATSC3dv;ATSC3i;ATSC3m;ATSC3p;ATSC3pe;ATSC3s;ATSC3se;ATSC3v;ATSC4Z;ATSC4are;ATSC4c;ATSC4d;ATSC4dv;ATSC4i;ATSC4m;ATSC4p;ATSC4pe;ATSC4s;ATSC4se;ATSC4v;ATSC5Z;ATSC5are;ATSC5c;ATSC5d;ATSC5dv;ATSC5i;ATSC5m;ATSC5p;ATSC5pe;ATSC5s;ATSC5se;ATSC5v;ATSC6Z;ATSC6are;ATSC6c;ATSC6d;ATSC6dv;ATSC6i;ATSC6m;ATSC6p;ATSC6pe;ATSC6s;ATSC6se;ATSC6v;ATSC7Z;ATSC7are;ATSC7c;ATSC7d;ATSC7dv;ATSC7i;ATSC7m;ATSC7p;ATSC7pe;ATSC7s;ATSC7se;ATSC7v;ATSC8Z;ATSC8are;ATSC8c;ATSC8d;ATSC8dv;ATSC8i;ATSC8m;ATSC8p;ATSC8pe;ATSC8s;ATSC8se;ATSC8v;AXp-0d;AXp-0dv;AXp-1d;AXp-1dv;AXp-2d;AXp-2dv;AXp-3d;AXp-3dv;AXp-4d;AXp-4dv;AXp-5d;AXp-5dv;AXp-6d;AXp-6dv;AXp-7d;AXp-7dv;BCUTZ-1h;BCUTZ-1l;BCUTare-1h;BCUTare-1l;BCUTc-1h;BCUTc-1l;BCUTd-1h;BCUTd-1l;BCUTdv-1h;BCUTdv-1l;BCUTi-1h;BCUTi-1l;BCUTm-1h;BCUTm-1l;BCUTp-1h;BCUTp-1l;BCUTpe-1h;BCUTpe-1l;BCUTs-1h;BCUTs-1l;BCUTse-1h;BCUTse-1l;BCUTv-1h;BCUTv-1l;BIC0;BIC1;BIC2;BIC3;BIC4;BIC5;BalabanJ;BertzCT;C1SP1;C1SP2;C1SP3;C2SP1;C2SP2;C2SP3;C3SP2;C3SP3;C4SP3;CIC0;CIC1;CIC2;CIC3;CIC4;CIC5;DPSA1;DPSA2;DPSA3;DPSA4;DPSA5;DetourIndex;Diameter;ECIndex;EState_VSA1;EState_VSA10;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;ETA_alpha;ETA_beta;ETA_beta_ns;ETA_beta_ns_d;ETA_beta_s;ETA_dAlpha_A;ETA_dAlpha_B;ETA_dBeta;ETA_dEpsilon_A;ETA_dEpsilon_B;ETA_dEpsilon_C;ETA_dEpsilon_D;ETA_dPsi_A;ETA_dPsi_B;ETA_epsilon_1;ETA_epsilon_2;ETA_epsilon_3;ETA_epsilon_4;ETA_epsilon_5;ETA_eta;ETA_eta_B;ETA_eta_BR;ETA_eta_F;ETA_eta_FL;ETA_eta_L;ETA_eta_R;ETA_eta_RL;ETA_psi_1;ETA_shape_p;ETA_shape_x;ETA_shape_y;FCSP3;FNSA1;FNSA2;FNSA3;FNSA4;FNSA5;FPSA1;FPSA2;FPSA3;FPSA4;FPSA5;FilterItLogS;GATS1Z;GATS1are;GATS1c;GATS1d;GATS1dv;GATS1i;GATS1m;GATS1p;GATS1pe;GATS1s;GATS1se;GATS1v;GATS2Z;GATS2are;GATS2c;GATS2d;GATS2dv;GATS2i;GATS2m;GATS2p;GATS2pe;GATS2s;GATS2se;GATS2v;GATS3Z;GATS3are;GATS3c;GATS3d;GATS3dv;GATS3i;GATS3m;GATS3p;GATS3pe;GATS3s;GATS3se;GATS3v;GATS4Z;GATS4are;GATS4c;GATS4d;GATS4dv;GATS4i;GATS4m;GATS4p;GATS4pe;GATS4s;GATS4se;GATS4v;GATS5Z;GATS5are;GATS5c;GATS5d;GATS5dv;GATS5i;GATS5m;GATS5p;GATS5pe;GATS5s;GATS5se;GATS5v;GATS6Z;GATS6are;GATS6c;GATS6d;GATS6dv;GATS6i;GATS6m;GATS6p;GATS6pe;GATS6s;GATS6se;GATS6v;GATS7Z;GATS7are;GATS7c;GATS7d;GATS7dv;GATS7i;GATS7m;GATS7p;GATS7pe;GATS7s;GATS7se;GATS7v;GATS8Z;GATS8are;GATS8c;GATS8d;GATS8dv;GATS8i;GATS8m;GATS8p;GATS8pe;GATS8s;GATS8se;GATS8v;GGI1;GGI10;GGI2;GGI3;GGI4;GGI5;GGI6;GGI7;GGI8;GGI9;GRAV;GRAVH;GRAVHp;GRAVp;GeomDiameter;GeomPetitjeanIndex;GeomRadius;GeomShapeIndex;GhoseFilter;HybRatio;IC0;IC1;IC2;IC3;IC4;IC5;JGI1;JGI10;JGI2;JGI3;JGI4;JGI5;JGI6;JGI7;JGI8;JGI9;JGT10;Kier1;Kier2;Kier3;LabuteASA;Lipinski;LogEE_A;LogEE_D;LogEE_Dt;LogEE_DzZ;LogEE_Dzare;LogEE_Dzi;LogEE_Dzm;LogEE_Dzp;LogEE_Dzpe;LogEE_Dzse;LogEE_Dzv;MATS1Z;MATS1are;MATS1c;MATS1d;MATS1dv;MATS1i;MATS1m;MATS1p;MATS1pe;MATS1s;MATS1se;MATS1v;MATS2Z;MATS2are;MATS2c;MATS2d;MATS2dv;MATS2i;MATS2m;MATS2p;MATS2pe;MATS2s;MATS2se;MATS2v;MATS3Z;MATS3are;MATS3c;MATS3d;MATS3dv;MATS3i;MATS3m;MATS3p;MATS3pe;MATS3s;MATS3se;MATS3v;MATS4Z;MATS4are;MATS4c;MATS4d;MATS4dv;MATS4i;MATS4m;MATS4p;MATS4pe;MATS4s;MATS4se;MATS4v;MATS5Z;MATS5are;MATS5c;MATS5d;MATS5dv;MATS5i;MATS5m;MATS5p;MATS5pe;MATS5s;MATS5se;MATS5v;MATS6Z;MATS6are;MATS6c;MATS6d;MATS6dv;MATS6i;MATS6m;MATS6p;MATS6pe;MATS6s;MATS6se;MATS6v;MATS7Z;MATS7are;MATS7c;MATS7d;MATS7dv;MATS7i;MATS7m;MATS7p;MATS7pe;MATS7s;MATS7se;MATS7v;MATS8Z;MATS8are;MATS8c;MATS8d;MATS8dv;MATS8i;MATS8m;MATS8p;MATS8pe;MATS8s;MATS8se;MATS8v;MDEC-22;MDEC-23;MDEC-33;MIC0;MIC1;MIC2;MIC3;MIC4;MIC5;MID;MID_C;MID_N;MID_O;MID_X;MID_h;MOMI-X;MOMI-Y;MOMI-Z;MPC10;MPC2;MPC3;MPC4;MPC5;MPC6;MPC7;MPC8;MPC9;MW;MWC01;MWC02;MWC03;MWC04;MWC05;MWC06;MWC07;MWC08;MWC09;MWC10;MZ;Mare;Mi;Mm;Mor01;Mor01m;Mor01p;Mor01se;Mor01v;Mor02;Mor02m;Mor02p;Mor02se;Mor02v;Mor03;Mor03m;Mor03p;Mor03se;Mor03v;Mor04;Mor04m;Mor04p;Mor04se;Mor04v;Mor05;Mor05m;Mor05p;Mor05se;Mor05v;Mor06;Mor06m;Mor06p;Mor06se;Mor06v;Mor07;Mor07m;Mor07p;Mor07se;Mor07v;Mor08;Mor08m;Mor08p;Mor08se;Mor08v;Mor09;Mor09m;Mor09p;Mor09se;Mor09v;Mor10;Mor10m;Mor10p;Mor10se;Mor10v;Mor11;Mor11m;Mor11p;Mor11se;Mor11v;Mor12;Mor12m;Mor12p;Mor12se;Mor12v;Mor13;Mor13m;Mor13p;Mor13se;Mor13v;Mor14;Mor14m;Mor14p;Mor14se;Mor14v;Mor15;Mor15m;Mor15p;Mor15se;Mor15v;Mor16;Mor16m;Mor16p;Mor16se;Mor16v;Mor17;Mor17m;Mor17p;Mor17se;Mor17v;Mor18;Mor18m;Mor18p;Mor18se;Mor18v;Mor19;Mor19m;Mor19p;Mor19se;Mor19v;Mor20;Mor20m;Mor20p;Mor20se;Mor20v;Mor21;Mor21m;Mor21p;Mor21se;Mor21v;Mor22;Mor22m;Mor22p;Mor22se;Mor22v;Mor23;Mor23m;Mor23p;Mor23se;Mor23v;Mor24;Mor24m;Mor24p;Mor24se;Mor24v;Mor25;Mor25m;Mor25p;Mor25se;Mor25v;Mor26;Mor26m;Mor26p;Mor26se;Mor26v;Mor27;Mor27m;Mor27p;Mor27se;Mor27v;Mor28;Mor28m;Mor28p;Mor28se;Mor28v;Mor29;Mor29m;Mor29p;Mor29se;Mor29v;Mor30;Mor30m;Mor30p;Mor30se;Mor30v;Mor31;Mor31m;Mor31p;Mor31se;Mor31v;Mor32;Mor32m;Mor32p;Mor32se;Mor32v;Mp;Mpe;Mse;Mv;NaaCH;NaaN;NaaNH;NaaO;NaaS;NaaaC;NaasC;NaasN;NdCH2;NdO;NdS;NddsN;NddssS;NdsCH;NdsN;NdssC;NsBr;NsCH3;NsCl;NsF;NsNH2;NsOH;NssCH2;NssNH;NssO;NssS;NsssCH;NsssN;NssssC;NtN;NtsC;PEOE_VSA1;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;PNSA1;PNSA2;PNSA3;PNSA4;PNSA5;PPSA1;PPSA2;PPSA3;PPSA4;PPSA5;PetitjeanIndex;RASA;RNCG;RNCS;RPCG;RPCS;RPSA;Radius;RotRatio;SIC0;SIC1;SIC2;SIC3;SIC4;SIC5;SLogP;SM1_Dt;SM1_DzZ;SM1_Dzare;SM1_Dzi;SM1_Dzm;SM1_Dzp;SM1_Dzpe;SM1_Dzse;SM1_Dzv;SMR;SMR_VSA1;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SRW02;SRW03;SRW04;SRW05;SRW06;SRW07;SRW08;SRW09;SRW10;SZ;SaaCH;SaaN;SaaNH;SaaO;SaaS;SaaaC;SaasC;SaasN;Sare;SdCH2;SdO;SdS;SddsN;SddssS;SdsCH;SdsN;SdssC;Si;SlogP_VSA1;SlogP_VSA10;SlogP_VSA11;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;Sm;Sp;SpAD_A;SpAD_D;SpAD_Dt;SpAD_DzZ;SpAD_Dzare;SpAD_Dzi;SpAD_Dzm;SpAD_Dzp;SpAD_Dzpe;SpAD_Dzse;SpAD_Dzv;SpAbs_A;SpAbs_D;SpAbs_Dt;SpAbs_DzZ;SpAbs_Dzare;SpAbs_Dzi;SpAbs_Dzm;SpAbs_Dzp;SpAbs_Dzpe;SpAbs_Dzse;SpAbs_Dzv;SpDiam_A;SpDiam_D;SpDiam_Dt;SpDiam_DzZ;SpDiam_Dzare;SpDiam_Dzi;SpDiam_Dzm;SpDiam_Dzp;SpDiam_Dzpe;SpDiam_Dzse;SpDiam_Dzv;SpMAD_A;SpMAD_D;SpMAD_Dt;SpMAD_DzZ;SpMAD_Dzare;SpMAD_Dzi;SpMAD_Dzm;SpMAD_Dzp;SpMAD_Dzpe;SpMAD_Dzse;SpMAD_Dzv;SpMax_A;SpMax_D;SpMax_Dt;SpMax_DzZ;SpMax_Dzare;SpMax_Dzi;SpMax_Dzm;SpMax_Dzp;SpMax_Dzpe;SpMax_Dzse;SpMax_Dzv;Spe;SsBr;SsCH3;SsCl;SsF;SsNH2;SsOH;Sse;SssCH2;SssNH;SssO;SssS;SsssCH;SsssN;SssssC;StN;StsC;Sv;TASA;TIC0;TIC1;TIC2;TIC3;TIC4;TIC5;TMPC10;TMWC10;TPSA;TSRW10;TopoPSA;TopoPSA(NO);TopoShapeIndex;TpiPC10;VAdjMat;VE1_A;VE1_D;VE1_Dt;VE1_DzZ;VE1_Dzare;VE1_Dzi;VE1_Dzm;VE1_Dzp;VE1_Dzpe;VE1_Dzse;VE1_Dzv;VE2_A;VE2_D;VE2_Dt;VE2_DzZ;VE2_Dzare;VE2_Dzi;VE2_Dzm;VE2_Dzp;VE2_Dzpe;VE2_Dzse;VE2_Dzv;VE3_A;VE3_D;VE3_Dt;VE3_DzZ;VE3_Dzare;VE3_Dzi;VE3_Dzm;VE3_Dzp;VE3_Dzpe;VE3_Dzse;VE3_Dzv;VMcGowan;VR1_A;VR1_D;VR1_Dt;VR1_DzZ;VR1_Dzare;VR1_Dzi;VR1_Dzm;VR1_Dzp;VR1_Dzpe;VR1_Dzse;VR1_Dzv;VR2_A;VR2_D;VR2_Dt;VR2_DzZ;VR2_Dzare;VR2_Dzi;VR2_Dzm;VR2_Dzp;VR2_Dzpe;VR2_Dzse;VR2_Dzv;VR3_A;VR3_D;VR3_Dt;VR3_DzZ;VR3_Dzare;VR3_Dzi;VR3_Dzm;VR3_Dzp;VR3_Dzpe;VR3_Dzse;VR3_Dzv;VSA_EState1;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;Vabc;WNSA1;WNSA2;WNSA3;WNSA4;WNSA5;WPSA1;WPSA2;WPSA3;WPSA4;WPSA5;WPath;WPol;Xc-3d;Xc-3dv;Xc-4d;Xc-4dv;Xc-5d;Xc-5dv;Xc-6d;Xc-6dv;Xch-3d;Xch-3dv;Xch-4d;Xch-4dv;Xch-5d;Xch-5dv;Xch-6d;Xch-6dv;Xch-7d;Xch-7dv;Xp-0d;Xp-0dv;Xp-1d;Xp-1dv;Xp-2d;Xp-2dv;Xp-3d;Xp-3dv;Xp-4d;Xp-4dv;Xp-5d;Xp-5dv;Xp-6d;Xp-6dv;Xp-7d;Xp-7dv;Xpc-4d;Xpc-4dv;Xpc-5d;Xpc-5dv;Xpc-6d;Xpc-6dv;ZMIC0;ZMIC1;ZMIC2;ZMIC3;ZMIC4;ZMIC5;Zagreb1;Zagreb2;apol;bpol;fMF;fragCpx;mZagreb1;mZagreb2;n10AHRing;n10ARing;n10FAHRing;n10FARing;n10FHRing;n10FRing;n10FaHRing;n10FaRing;n10HRing;n10Ring;n10aHRing;n10aRing;n11AHRing;n11ARing;n11FAHRing;n11FARing;n11FHRing;n11FRing;n11FaHRing;n11FaRing;n11HRing;n11Ring;n11aHRing;n11aRing;n12AHRing;n12ARing;n12FAHRing;n12FARing;n12FHRing;n12FRing;n12FaHRing;n12FaRing;n12HRing;n12Ring;n12aHRing;n12aRing;n3AHRing;n3ARing;n3HRing;n3Ring;n3aHRing;n3aRing;n4AHRing;n4ARing;n4FAHRing;n4FARing;n4FHRing;n4FRing;n4FaHRing;n4FaRing;n4HRing;n4Ring;n4aHRing;n4aRing;n5AHRing;n5ARing;n5FAHRing;n5FARing;n5FHRing;n5FRing;n5FaHRing;n5FaRing;n5HRing;n5Ring;n5aHRing;n5aRing;n6AHRing;n6ARing;n6FAHRing;n6FARing;n6FHRing;n6FRing;n6FaHRing;n6FaRing;n6HRing;n6Ring;n6aHRing;n6aRing;n7AHRing;n7ARing;n7FAHRing;n7FARing;n7FHRing;n7FRing;n7FaHRing;n7FaRing;n7HRing;n7Ring;n7aHRing;n7aRing;n8AHRing;n8ARing;n8FAHRing;n8FARing;n8FHRing;n8FRing;n8FaHRing;n8FaRing;n8HRing;n8Ring;n8aHRing;n8aRing;n9AHRing;n9ARing;n9FAHRing;n9FARing;n9FHRing;n9FRing;n9FaHRing;n9FaRing;n9HRing;n9Ring;n9aHRing;n9aRing;nAHRing;nARing;nAcid;nAromAtom;nAromBond;nAtom;nB;nBase;nBonds;nBondsA;nBondsD;nBondsKD;nBondsKS;nBondsM;nBondsO;nBondsS;nBondsT;nBr;nBridgehead;nC;nCl;nF;nFAHRing;nFARing;nFHRing;nFRing;nFaHRing;nFaRing;nG12AHRing;nG12ARing;nG12FAHRing;nG12FARing;nG12FHRing;nG12FRing;nG12FaHRing;nG12FaRing;nG12HRing;nG12Ring;nG12aHRing;nG12aRing;nH;nHBAcc;nHBDon;nHRing;nHeavyAtom;nHetero;nI;nN;nO;nP;nRing;nRot;nS;nSpiro;nX;naHRing;naRing;piPC1;piPC10;piPC2;piPC3;piPC4;piPC5;piPC6;piPC7;piPC8;piPC9,0,mordred -rdkit_raw,MaxEStateIndex;MinEStateIndex;MaxAbsEStateIndex;MinAbsEStateIndex;qed;MolWt;HeavyAtomMolWt;ExactMolWt;NumValenceElectrons;NumRadicalElectrons;MaxPartialCharge;MinPartialCharge;MaxAbsPartialCharge;MinAbsPartialCharge;FpDensityMorgan1;FpDensityMorgan2;FpDensityMorgan3;BalabanJ;BertzCT;Chi0;Chi0n;Chi0v;Chi1;Chi1n;Chi1v;Chi2n;Chi2v;Chi3n;Chi3v;Chi4n;Chi4v;HallKierAlpha;AvgIpc;Kappa1;Kappa2;Kappa3;LabuteASA;PEOE_VSA1;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;PEOE_VSA14;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;SMR_VSA1;SMR_VSA10;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1;SlogP_VSA10;SlogP_VSA11;SlogP_VSA12;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;TPSA;EState_VSA1;EState_VSA10;EState_VSA11;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;VSA_EState1;VSA_EState10;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;FractionCSP3;HeavyAtomCount;NHOHCount;NOCount;NumAliphaticCarbocycles;NumAliphaticHeterocycles;NumAliphaticRings;NumAromaticCarbocycles;NumAromaticHeterocycles;NumAromaticRings;NumHAcceptors;NumHDonors;NumHeteroatoms;NumRotatableBonds;NumSaturatedCarbocycles;NumSaturatedHeterocycles;NumSaturatedRings;RingCount;MolLogP;MolMR;fr_Al_COO;fr_Al_OH;fr_Al_OH_noTert;fr_ArN;fr_Ar_COO;fr_Ar_N;fr_Ar_NH;fr_Ar_OH;fr_COO;fr_COO2;fr_C_O;fr_C_O_noCOO;fr_C_S;fr_HOCCN;fr_Imine;fr_NH0;fr_NH1;fr_NH2;fr_N_O;fr_Ndealkylation1;fr_Ndealkylation2;fr_Nhpyrrole;fr_SH;fr_aldehyde;fr_alkyl_carbamate;fr_alkyl_halide;fr_allylic_oxid;fr_amide;fr_amidine;fr_aniline;fr_aryl_methyl;fr_azide;fr_azo;fr_barbitur;fr_benzene;fr_benzodiazepine;fr_bicyclic;fr_diazo;fr_dihydropyridine;fr_epoxide;fr_ester;fr_ether;fr_furan;fr_guanido;fr_halogen;fr_hdrzine;fr_hdrzone;fr_imidazole;fr_imide;fr_isocyan;fr_isothiocyan;fr_ketone;fr_ketone_Topliss;fr_lactam;fr_lactone;fr_methoxy;fr_morpholine;fr_nitrile;fr_nitro;fr_nitro_arom;fr_nitro_arom_nonortho;fr_nitroso;fr_oxazole;fr_oxime;fr_para_hydroxylation;fr_phenol;fr_phenol_noOrthoHbond;fr_phos_acid;fr_phos_ester;fr_piperdine;fr_piperzine;fr_priamide;fr_prisulfonamd;fr_pyridine;fr_quatN;fr_sulfide;fr_sulfonamd;fr_sulfone;fr_term_acetylene;fr_tetrazole;fr_thiazole;fr_thiocyan;fr_thiophene;fr_unbrch_alkane;fr_urea,0,rdkit +rdkit_raw,MaxEStateIndex;MinEStateIndex;MaxAbsEStateIndex;MinAbsEStateIndex;qed;MolWt;HeavyAtomMolWt;ExactMolWt;NumValenceElectrons;NumRadicalElectrons;MaxPartialCharge;MinPartialCharge;MaxAbsPartialCharge;MinAbsPartialCharge;FpDensityMorgan1;FpDensityMorgan2;FpDensityMorgan3;BalabanJ;BertzCT;Chi0;Chi0n;Chi0v;Chi1;Chi1n;Chi1v;Chi2n;Chi2v;Chi3n;Chi3v;Chi4n;Chi4v;HallKierAlpha;Ipc;Kappa1;Kappa2;Kappa3;LabuteASA;PEOE_VSA1;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;PEOE_VSA14;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;SMR_VSA1;SMR_VSA10;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1;SlogP_VSA10;SlogP_VSA11;SlogP_VSA12;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;TPSA;EState_VSA1;EState_VSA10;EState_VSA11;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;VSA_EState1;VSA_EState10;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;FractionCSP3;HeavyAtomCount;NHOHCount;NOCount;NumAliphaticCarbocycles;NumAliphaticHeterocycles;NumAliphaticRings;NumAromaticCarbocycles;NumAromaticHeterocycles;NumAromaticRings;NumHAcceptors;NumHDonors;NumHeteroatoms;NumRotatableBonds;NumSaturatedCarbocycles;NumSaturatedHeterocycles;NumSaturatedRings;RingCount;MolLogP;MolMR;fr_Al_COO;fr_Al_OH;fr_Al_OH_noTert;fr_ArN;fr_Ar_COO;fr_Ar_N;fr_Ar_NH;fr_Ar_OH;fr_COO;fr_COO2;fr_C_O;fr_C_O_noCOO;fr_C_S;fr_HOCCN;fr_Imine;fr_NH0;fr_NH1;fr_NH2;fr_N_O;fr_Ndealkylation1;fr_Ndealkylation2;fr_Nhpyrrole;fr_SH;fr_aldehyde;fr_alkyl_carbamate;fr_alkyl_halide;fr_allylic_oxid;fr_amide;fr_amidine;fr_aniline;fr_aryl_methyl;fr_azide;fr_azo;fr_barbitur;fr_benzene;fr_benzodiazepine;fr_bicyclic;fr_diazo;fr_dihydropyridine;fr_epoxide;fr_ester;fr_ether;fr_furan;fr_guanido;fr_halogen;fr_hdrzine;fr_hdrzone;fr_imidazole;fr_imide;fr_isocyan;fr_isothiocyan;fr_ketone;fr_ketone_Topliss;fr_lactam;fr_lactone;fr_methoxy;fr_morpholine;fr_nitrile;fr_nitro;fr_nitro_arom;fr_nitro_arom_nonortho;fr_nitroso;fr_oxazole;fr_oxime;fr_para_hydroxylation;fr_phenol;fr_phenol_noOrthoHbond;fr_phos_acid;fr_phos_ester;fr_piperdine;fr_piperzine;fr_priamide;fr_prisulfonamd;fr_pyridine;fr_quatN;fr_sulfide;fr_sulfonamd;fr_sulfone;fr_term_acetylene;fr_tetrazole;fr_thiazole;fr_thiocyan;fr_thiophene;fr_unbrch_alkane;fr_urea,0,rdkit From 01b4c2852dd9fad51f4c50526430c76f8fdb66f4 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Wed, 26 Mar 2025 15:26:18 -0700 Subject: [PATCH 14/23] rdkit_scaled by heavy atom count is working --- .../descriptor_sets_sources_by_descr_type.csv | 3 +- atomsci/ddm/pipeline/featurization.py | 44 +++++++++++++++++++ ...s_config_delaney_fit_XGB_rdkit_scaled.json | 36 +++++++++++++++ .../delaney_Panel/test_delaney_panel.py | 6 ++- 4 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 atomsci/ddm/test/integrative/delaney_Panel/jsons/class_config_delaney_fit_XGB_rdkit_scaled.json diff --git a/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv b/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv index 1a72e7b0..d114441a 100644 --- a/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv +++ b/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv @@ -8,4 +8,5 @@ moe_scaled_filtered,ASA+_per_atom;ASA-;ASA_H_per_atom;ASA_P;ASA_per_atom;BCUT_PE moe_informative,ASA+;ASA-;ASA_H;ASA_P;ASA;BCUT_PEOE_0;BCUT_PEOE_1;BCUT_PEOE_2;BCUT_PEOE_3;BCUT_SLOGP_0;BCUT_SLOGP_1;BCUT_SLOGP_2;BCUT_SLOGP_3;BCUT_SMR_0;BCUT_SMR_1;BCUT_SMR_2;BCUT_SMR_3;CASA+;CASA-;DASA;DCASA;E;E_ang;E_ele;E_nb;E_oop;E_sol;E_stb;E_str;E_strain;E_tor;E_vdw;FASA+;FASA-;FASA_H;FASA_P;FCASA+;FCASA-;FCharge;GCUT_PEOE_0;GCUT_PEOE_1;GCUT_PEOE_2;GCUT_PEOE_3;GCUT_SLOGP_0;GCUT_SLOGP_1;GCUT_SLOGP_2;GCUT_SLOGP_3;GCUT_SMR_0;GCUT_SMR_1;GCUT_SMR_2;GCUT_SMR_3;Kier1;Kier2;Kier3;KierA1;KierA2;KierA3;KierFlex;PC+;PC-;PEOE_PC+;PEOE_PC-;PEOE_RPC+;PEOE_RPC-;PEOE_VSA+0;PEOE_VSA+1;PEOE_VSA+2;PEOE_VSA+3;PEOE_VSA+4;PEOE_VSA+5;PEOE_VSA+6;PEOE_VSA-0;PEOE_VSA-1;PEOE_VSA-2;PEOE_VSA-3;PEOE_VSA-4;PEOE_VSA-5;PEOE_VSA-6;PEOE_VSA_FHYD;PEOE_VSA_FNEG;PEOE_VSA_FPNEG;PEOE_VSA_FPPOS;PEOE_VSA_HYD;PEOE_VSA_NEG;PEOE_VSA_PNEG;PEOE_VSA_POL;PEOE_VSA_POS;PEOE_VSA_PPOS;Q_VSA_FHYD;Q_VSA_FPNEG;Q_VSA_FPOS;Q_VSA_FPPOS;Q_VSA_HYD;Q_VSA_NEG;Q_VSA_PNEG;Q_VSA_POL;Q_VSA_POS;Q_VSA_PPOS;RPC+;RPC-;SMR_VSA0;SMR_VSA1;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR;SlogP;SlogP_VSA0;SlogP_VSA1;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;TPSA;VAdjEq;VAdjMa;VDistEq;VDistMa;VSA;Weight;a_IC;a_acc;a_acid;a_aro;a_base;a_count;a_don;a_donacc;a_heavy;a_hyd;a_nB;a_nBr;a_nC;a_nCl;a_nF;a_nI;a_nN;a_nO;a_nP;a_nS;apol;ast_fraglike;ast_fraglike_ext;ast_violation;ast_violation_ext;b_1rotN;b_1rotR;b_ar;b_count;b_double;b_heavy;b_max1len;b_rotN;b_rotR;b_single;b_triple;balabanJ;bpol;chi0_C;chi0;chi0v_C;chi0v;chi1_C;chi1;chi1v_C;chi1v;chiral;chiral_u;dens;density;diameter;dipole;dipoleX;dipoleY;dipoleZ;glob;h_ema;h_emd_C;h_emd;h_logD;h_logP;h_logS;h_log_dbo;h_log_pbo;h_mr;h_pKa;h_pKb;h_pavgQ;h_pstates;h_pstrain;lip_acc;lip_don;lip_druglike;lip_violation;logP(o/w);logS;mr;mutagenic;npr1;npr2;opr_brigid;opr_leadlike;opr_nrot;opr_violation;petitjean;petitjeanSC;pmi1;pmi2;pmi3;pmiX;pmiY;pmiZ;pmi;radius;reactive;rgyr;rings;rsynth;std_dim1;std_dim2;std_dim3;vdw_area;vdw_vol;vol;vsa_acc;vsa_acid;vsa_base;vsa_don;vsa_hyd;vsa_other;vsa_pol;vsurf_A;vsurf_CP;vsurf_CW1;vsurf_CW2;vsurf_CW3;vsurf_CW4;vsurf_CW5;vsurf_CW6;vsurf_CW7;vsurf_CW8;vsurf_D1;vsurf_D2;vsurf_D3;vsurf_D4;vsurf_D5;vsurf_D6;vsurf_D7;vsurf_D8;vsurf_DD12;vsurf_DD13;vsurf_DD23;vsurf_DW12;vsurf_DW13;vsurf_DW23;vsurf_EDmin1;vsurf_EDmin2;vsurf_EDmin3;vsurf_EWmin1;vsurf_EWmin2;vsurf_EWmin3;vsurf_G;vsurf_HB1;vsurf_HB2;vsurf_HB3;vsurf_HB4;vsurf_HB5;vsurf_HB6;vsurf_HB7;vsurf_HB8;vsurf_HL1;vsurf_HL2;vsurf_ID1;vsurf_ID2;vsurf_ID3;vsurf_ID4;vsurf_ID5;vsurf_ID6;vsurf_ID7;vsurf_ID8;vsurf_IW1;vsurf_IW2;vsurf_IW3;vsurf_IW4;vsurf_IW5;vsurf_IW6;vsurf_IW7;vsurf_IW8;vsurf_R;vsurf_S;vsurf_V;vsurf_W1;vsurf_W2;vsurf_W3;vsurf_W4;vsurf_W5;vsurf_W6;vsurf_W7;vsurf_W8;vsurf_Wp1;vsurf_Wp2;vsurf_Wp3;vsurf_Wp4;vsurf_Wp5;vsurf_Wp6;vsurf_Wp7;vsurf_Wp8;weinerPath;weinerPol;zagreb,0,moe mordred_raw,ABC;ABCGG;nAcid;nBase;SpAbs_A;SpMax_A;SpDiam_A;SpAD_A;SpMAD_A;LogEE_A;VE1_A;VE2_A;VE3_A;VR1_A;VR2_A;VR3_A;nAromAtom;nAromBond;nAtom;nHeavyAtom;nSpiro;nBridgehead;nHetero;nH;nB;nC;nN;nO;nS;nP;nF;nCl;nBr;nI;nX;ATS0dv;ATS1dv;ATS2dv;ATS3dv;ATS4dv;ATS5dv;ATS6dv;ATS7dv;ATS8dv;ATS0d;ATS1d;ATS2d;ATS3d;ATS4d;ATS5d;ATS6d;ATS7d;ATS8d;ATS0s;ATS1s;ATS2s;ATS3s;ATS4s;ATS5s;ATS6s;ATS7s;ATS8s;ATS0Z;ATS1Z;ATS2Z;ATS3Z;ATS4Z;ATS5Z;ATS6Z;ATS7Z;ATS8Z;ATS0m;ATS1m;ATS2m;ATS3m;ATS4m;ATS5m;ATS6m;ATS7m;ATS8m;ATS0v;ATS1v;ATS2v;ATS3v;ATS4v;ATS5v;ATS6v;ATS7v;ATS8v;ATS0se;ATS1se;ATS2se;ATS3se;ATS4se;ATS5se;ATS6se;ATS7se;ATS8se;ATS0pe;ATS1pe;ATS2pe;ATS3pe;ATS4pe;ATS5pe;ATS6pe;ATS7pe;ATS8pe;ATS0are;ATS1are;ATS2are;ATS3are;ATS4are;ATS5are;ATS6are;ATS7are;ATS8are;ATS0p;ATS1p;ATS2p;ATS3p;ATS4p;ATS5p;ATS6p;ATS7p;ATS8p;ATS0i;ATS1i;ATS2i;ATS3i;ATS4i;ATS5i;ATS6i;ATS7i;ATS8i;AATS0dv;AATS1dv;AATS2dv;AATS3dv;AATS4dv;AATS5dv;AATS6dv;AATS7dv;AATS8dv;AATS0d;AATS1d;AATS2d;AATS3d;AATS4d;AATS5d;AATS6d;AATS7d;AATS8d;AATS0s;AATS1s;AATS2s;AATS3s;AATS4s;AATS5s;AATS6s;AATS7s;AATS8s;AATS0Z;AATS1Z;AATS2Z;AATS3Z;AATS4Z;AATS5Z;AATS6Z;AATS7Z;AATS8Z;AATS0m;AATS1m;AATS2m;AATS3m;AATS4m;AATS5m;AATS6m;AATS7m;AATS8m;AATS0v;AATS1v;AATS2v;AATS3v;AATS4v;AATS5v;AATS6v;AATS7v;AATS8v;AATS0se;AATS1se;AATS2se;AATS3se;AATS4se;AATS5se;AATS6se;AATS7se;AATS8se;AATS0pe;AATS1pe;AATS2pe;AATS3pe;AATS4pe;AATS5pe;AATS6pe;AATS7pe;AATS8pe;AATS0are;AATS1are;AATS2are;AATS3are;AATS4are;AATS5are;AATS6are;AATS7are;AATS8are;AATS0p;AATS1p;AATS2p;AATS3p;AATS4p;AATS5p;AATS6p;AATS7p;AATS8p;AATS0i;AATS1i;AATS2i;AATS3i;AATS4i;AATS5i;AATS6i;AATS7i;AATS8i;ATSC0c;ATSC1c;ATSC2c;ATSC3c;ATSC4c;ATSC5c;ATSC6c;ATSC7c;ATSC8c;ATSC0dv;ATSC1dv;ATSC2dv;ATSC3dv;ATSC4dv;ATSC5dv;ATSC6dv;ATSC7dv;ATSC8dv;ATSC0d;ATSC1d;ATSC2d;ATSC3d;ATSC4d;ATSC5d;ATSC6d;ATSC7d;ATSC8d;ATSC0s;ATSC1s;ATSC2s;ATSC3s;ATSC4s;ATSC5s;ATSC6s;ATSC7s;ATSC8s;ATSC0Z;ATSC1Z;ATSC2Z;ATSC3Z;ATSC4Z;ATSC5Z;ATSC6Z;ATSC7Z;ATSC8Z;ATSC0m;ATSC1m;ATSC2m;ATSC3m;ATSC4m;ATSC5m;ATSC6m;ATSC7m;ATSC8m;ATSC0v;ATSC1v;ATSC2v;ATSC3v;ATSC4v;ATSC5v;ATSC6v;ATSC7v;ATSC8v;ATSC0se;ATSC1se;ATSC2se;ATSC3se;ATSC4se;ATSC5se;ATSC6se;ATSC7se;ATSC8se;ATSC0pe;ATSC1pe;ATSC2pe;ATSC3pe;ATSC4pe;ATSC5pe;ATSC6pe;ATSC7pe;ATSC8pe;ATSC0are;ATSC1are;ATSC2are;ATSC3are;ATSC4are;ATSC5are;ATSC6are;ATSC7are;ATSC8are;ATSC0p;ATSC1p;ATSC2p;ATSC3p;ATSC4p;ATSC5p;ATSC6p;ATSC7p;ATSC8p;ATSC0i;ATSC1i;ATSC2i;ATSC3i;ATSC4i;ATSC5i;ATSC6i;ATSC7i;ATSC8i;AATSC0c;AATSC1c;AATSC2c;AATSC3c;AATSC4c;AATSC5c;AATSC6c;AATSC7c;AATSC8c;AATSC0dv;AATSC1dv;AATSC2dv;AATSC3dv;AATSC4dv;AATSC5dv;AATSC6dv;AATSC7dv;AATSC8dv;AATSC0d;AATSC1d;AATSC2d;AATSC3d;AATSC4d;AATSC5d;AATSC6d;AATSC7d;AATSC8d;AATSC0s;AATSC1s;AATSC2s;AATSC3s;AATSC4s;AATSC5s;AATSC6s;AATSC7s;AATSC8s;AATSC0Z;AATSC1Z;AATSC2Z;AATSC3Z;AATSC4Z;AATSC5Z;AATSC6Z;AATSC7Z;AATSC8Z;AATSC0m;AATSC1m;AATSC2m;AATSC3m;AATSC4m;AATSC5m;AATSC6m;AATSC7m;AATSC8m;AATSC0v;AATSC1v;AATSC2v;AATSC3v;AATSC4v;AATSC5v;AATSC6v;AATSC7v;AATSC8v;AATSC0se;AATSC1se;AATSC2se;AATSC3se;AATSC4se;AATSC5se;AATSC6se;AATSC7se;AATSC8se;AATSC0pe;AATSC1pe;AATSC2pe;AATSC3pe;AATSC4pe;AATSC5pe;AATSC6pe;AATSC7pe;AATSC8pe;AATSC0are;AATSC1are;AATSC2are;AATSC3are;AATSC4are;AATSC5are;AATSC6are;AATSC7are;AATSC8are;AATSC0p;AATSC1p;AATSC2p;AATSC3p;AATSC4p;AATSC5p;AATSC6p;AATSC7p;AATSC8p;AATSC0i;AATSC1i;AATSC2i;AATSC3i;AATSC4i;AATSC5i;AATSC6i;AATSC7i;AATSC8i;MATS1c;MATS2c;MATS3c;MATS4c;MATS5c;MATS6c;MATS7c;MATS8c;MATS1dv;MATS2dv;MATS3dv;MATS4dv;MATS5dv;MATS6dv;MATS7dv;MATS8dv;MATS1d;MATS2d;MATS3d;MATS4d;MATS5d;MATS6d;MATS7d;MATS8d;MATS1s;MATS2s;MATS3s;MATS4s;MATS5s;MATS6s;MATS7s;MATS8s;MATS1Z;MATS2Z;MATS3Z;MATS4Z;MATS5Z;MATS6Z;MATS7Z;MATS8Z;MATS1m;MATS2m;MATS3m;MATS4m;MATS5m;MATS6m;MATS7m;MATS8m;MATS1v;MATS2v;MATS3v;MATS4v;MATS5v;MATS6v;MATS7v;MATS8v;MATS1se;MATS2se;MATS3se;MATS4se;MATS5se;MATS6se;MATS7se;MATS8se;MATS1pe;MATS2pe;MATS3pe;MATS4pe;MATS5pe;MATS6pe;MATS7pe;MATS8pe;MATS1are;MATS2are;MATS3are;MATS4are;MATS5are;MATS6are;MATS7are;MATS8are;MATS1p;MATS2p;MATS3p;MATS4p;MATS5p;MATS6p;MATS7p;MATS8p;MATS1i;MATS2i;MATS3i;MATS4i;MATS5i;MATS6i;MATS7i;MATS8i;GATS1c;GATS2c;GATS3c;GATS4c;GATS5c;GATS6c;GATS7c;GATS8c;GATS1dv;GATS2dv;GATS3dv;GATS4dv;GATS5dv;GATS6dv;GATS7dv;GATS8dv;GATS1d;GATS2d;GATS3d;GATS4d;GATS5d;GATS6d;GATS7d;GATS8d;GATS1s;GATS2s;GATS3s;GATS4s;GATS5s;GATS6s;GATS7s;GATS8s;GATS1Z;GATS2Z;GATS3Z;GATS4Z;GATS5Z;GATS6Z;GATS7Z;GATS8Z;GATS1m;GATS2m;GATS3m;GATS4m;GATS5m;GATS6m;GATS7m;GATS8m;GATS1v;GATS2v;GATS3v;GATS4v;GATS5v;GATS6v;GATS7v;GATS8v;GATS1se;GATS2se;GATS3se;GATS4se;GATS5se;GATS6se;GATS7se;GATS8se;GATS1pe;GATS2pe;GATS3pe;GATS4pe;GATS5pe;GATS6pe;GATS7pe;GATS8pe;GATS1are;GATS2are;GATS3are;GATS4are;GATS5are;GATS6are;GATS7are;GATS8are;GATS1p;GATS2p;GATS3p;GATS4p;GATS5p;GATS6p;GATS7p;GATS8p;GATS1i;GATS2i;GATS3i;GATS4i;GATS5i;GATS6i;GATS7i;GATS8i;BCUTc-1h;BCUTc-1l;BCUTdv-1h;BCUTdv-1l;BCUTd-1h;BCUTd-1l;BCUTs-1h;BCUTs-1l;BCUTZ-1h;BCUTZ-1l;BCUTm-1h;BCUTm-1l;BCUTv-1h;BCUTv-1l;BCUTse-1h;BCUTse-1l;BCUTpe-1h;BCUTpe-1l;BCUTare-1h;BCUTare-1l;BCUTp-1h;BCUTp-1l;BCUTi-1h;BCUTi-1l;BalabanJ;SpAbs_DzZ;SpMax_DzZ;SpDiam_DzZ;SpAD_DzZ;SpMAD_DzZ;LogEE_DzZ;SM1_DzZ;VE1_DzZ;VE2_DzZ;VE3_DzZ;VR1_DzZ;VR2_DzZ;VR3_DzZ;SpAbs_Dzm;SpMax_Dzm;SpDiam_Dzm;SpAD_Dzm;SpMAD_Dzm;LogEE_Dzm;SM1_Dzm;VE1_Dzm;VE2_Dzm;VE3_Dzm;VR1_Dzm;VR2_Dzm;VR3_Dzm;SpAbs_Dzv;SpMax_Dzv;SpDiam_Dzv;SpAD_Dzv;SpMAD_Dzv;LogEE_Dzv;SM1_Dzv;VE1_Dzv;VE2_Dzv;VE3_Dzv;VR1_Dzv;VR2_Dzv;VR3_Dzv;SpAbs_Dzse;SpMax_Dzse;SpDiam_Dzse;SpAD_Dzse;SpMAD_Dzse;LogEE_Dzse;SM1_Dzse;VE1_Dzse;VE2_Dzse;VE3_Dzse;VR1_Dzse;VR2_Dzse;VR3_Dzse;SpAbs_Dzpe;SpMax_Dzpe;SpDiam_Dzpe;SpAD_Dzpe;SpMAD_Dzpe;LogEE_Dzpe;SM1_Dzpe;VE1_Dzpe;VE2_Dzpe;VE3_Dzpe;VR1_Dzpe;VR2_Dzpe;VR3_Dzpe;SpAbs_Dzare;SpMax_Dzare;SpDiam_Dzare;SpAD_Dzare;SpMAD_Dzare;LogEE_Dzare;SM1_Dzare;VE1_Dzare;VE2_Dzare;VE3_Dzare;VR1_Dzare;VR2_Dzare;VR3_Dzare;SpAbs_Dzp;SpMax_Dzp;SpDiam_Dzp;SpAD_Dzp;SpMAD_Dzp;LogEE_Dzp;SM1_Dzp;VE1_Dzp;VE2_Dzp;VE3_Dzp;VR1_Dzp;VR2_Dzp;VR3_Dzp;SpAbs_Dzi;SpMax_Dzi;SpDiam_Dzi;SpAD_Dzi;SpMAD_Dzi;LogEE_Dzi;SM1_Dzi;VE1_Dzi;VE2_Dzi;VE3_Dzi;VR1_Dzi;VR2_Dzi;VR3_Dzi;BertzCT;nBonds;nBondsO;nBondsS;nBondsD;nBondsT;nBondsA;nBondsM;nBondsKS;nBondsKD;RNCG;RPCG;C1SP1;C2SP1;C1SP2;C2SP2;C3SP2;C1SP3;C2SP3;C3SP3;C4SP3;HybRatio;FCSP3;Xch-3d;Xch-4d;Xch-5d;Xch-6d;Xch-7d;Xch-3dv;Xch-4dv;Xch-5dv;Xch-6dv;Xch-7dv;Xc-3d;Xc-4d;Xc-5d;Xc-6d;Xc-3dv;Xc-4dv;Xc-5dv;Xc-6dv;Xpc-4d;Xpc-5d;Xpc-6d;Xpc-4dv;Xpc-5dv;Xpc-6dv;Xp-0d;Xp-1d;Xp-2d;Xp-3d;Xp-4d;Xp-5d;Xp-6d;Xp-7d;AXp-0d;AXp-1d;AXp-2d;AXp-3d;AXp-4d;AXp-5d;AXp-6d;AXp-7d;Xp-0dv;Xp-1dv;Xp-2dv;Xp-3dv;Xp-4dv;Xp-5dv;Xp-6dv;Xp-7dv;AXp-0dv;AXp-1dv;AXp-2dv;AXp-3dv;AXp-4dv;AXp-5dv;AXp-6dv;AXp-7dv;SZ;Sm;Sv;Sse;Spe;Sare;Sp;Si;MZ;Mm;Mv;Mse;Mpe;Mare;Mp;Mi;SpAbs_Dt;SpMax_Dt;SpDiam_Dt;SpAD_Dt;SpMAD_Dt;LogEE_Dt;SM1_Dt;VE1_Dt;VE2_Dt;VE3_Dt;VR1_Dt;VR2_Dt;VR3_Dt;DetourIndex;SpAbs_D;SpMax_D;SpDiam_D;SpAD_D;SpMAD_D;LogEE_D;VE1_D;VE2_D;VE3_D;VR1_D;VR2_D;VR3_D;NsLi;NssBe;NssssBe;NssBH;NsssB;NssssB;NsCH3;NdCH2;NssCH2;NtCH;NdsCH;NaaCH;NsssCH;NddC;NtsC;NdssC;NaasC;NaaaC;NssssC;NsNH3;NsNH2;NssNH2;NdNH;NssNH;NaaNH;NtN;NsssNH;NdsN;NaaN;NsssN;NddsN;NaasN;NssssN;NsOH;NdO;NssO;NaaO;NsF;NsSiH3;NssSiH2;NsssSiH;NssssSi;NsPH2;NssPH;NsssP;NdsssP;NsssssP;NsSH;NdS;NssS;NaaS;NdssS;NddssS;NsCl;NsGeH3;NssGeH2;NsssGeH;NssssGe;NsAsH2;NssAsH;NsssAs;NsssdAs;NsssssAs;NsSeH;NdSe;NssSe;NaaSe;NdssSe;NddssSe;NsBr;NsSnH3;NssSnH2;NsssSnH;NssssSn;NsI;NsPbH3;NssPbH2;NsssPbH;NssssPb;SsLi;SssBe;SssssBe;SssBH;SsssB;SssssB;SsCH3;SdCH2;SssCH2;StCH;SdsCH;SaaCH;SsssCH;SddC;StsC;SdssC;SaasC;SaaaC;SssssC;SsNH3;SsNH2;SssNH2;SdNH;SssNH;SaaNH;StN;SsssNH;SdsN;SaaN;SsssN;SddsN;SaasN;SssssN;SsOH;SdO;SssO;SaaO;SsF;SsSiH3;SssSiH2;SsssSiH;SssssSi;SsPH2;SssPH;SsssP;SdsssP;SsssssP;SsSH;SdS;SssS;SaaS;SdssS;SddssS;SsCl;SsGeH3;SssGeH2;SsssGeH;SssssGe;SsAsH2;SssAsH;SsssAs;SsssdAs;SsssssAs;SsSeH;SdSe;SssSe;SaaSe;SdssSe;SddssSe;SsBr;SsSnH3;SssSnH2;SsssSnH;SssssSn;SsI;SsPbH3;SssPbH2;SsssPbH;SssssPb;MAXsLi;MAXssBe;MAXssssBe;MAXssBH;MAXsssB;MAXssssB;MAXsCH3;MAXdCH2;MAXssCH2;MAXtCH;MAXdsCH;MAXaaCH;MAXsssCH;MAXddC;MAXtsC;MAXdssC;MAXaasC;MAXaaaC;MAXssssC;MAXsNH3;MAXsNH2;MAXssNH2;MAXdNH;MAXssNH;MAXaaNH;MAXtN;MAXsssNH;MAXdsN;MAXaaN;MAXsssN;MAXddsN;MAXaasN;MAXssssN;MAXsOH;MAXdO;MAXssO;MAXaaO;MAXsF;MAXsSiH3;MAXssSiH2;MAXsssSiH;MAXssssSi;MAXsPH2;MAXssPH;MAXsssP;MAXdsssP;MAXsssssP;MAXsSH;MAXdS;MAXssS;MAXaaS;MAXdssS;MAXddssS;MAXsCl;MAXsGeH3;MAXssGeH2;MAXsssGeH;MAXssssGe;MAXsAsH2;MAXssAsH;MAXsssAs;MAXsssdAs;MAXsssssAs;MAXsSeH;MAXdSe;MAXssSe;MAXaaSe;MAXdssSe;MAXddssSe;MAXsBr;MAXsSnH3;MAXssSnH2;MAXsssSnH;MAXssssSn;MAXsI;MAXsPbH3;MAXssPbH2;MAXsssPbH;MAXssssPb;MINsLi;MINssBe;MINssssBe;MINssBH;MINsssB;MINssssB;MINsCH3;MINdCH2;MINssCH2;MINtCH;MINdsCH;MINaaCH;MINsssCH;MINddC;MINtsC;MINdssC;MINaasC;MINaaaC;MINssssC;MINsNH3;MINsNH2;MINssNH2;MINdNH;MINssNH;MINaaNH;MINtN;MINsssNH;MINdsN;MINaaN;MINsssN;MINddsN;MINaasN;MINssssN;MINsOH;MINdO;MINssO;MINaaO;MINsF;MINsSiH3;MINssSiH2;MINsssSiH;MINssssSi;MINsPH2;MINssPH;MINsssP;MINdsssP;MINsssssP;MINsSH;MINdS;MINssS;MINaaS;MINdssS;MINddssS;MINsCl;MINsGeH3;MINssGeH2;MINsssGeH;MINssssGe;MINsAsH2;MINssAsH;MINsssAs;MINsssdAs;MINsssssAs;MINsSeH;MINdSe;MINssSe;MINaaSe;MINdssSe;MINddssSe;MINsBr;MINsSnH3;MINssSnH2;MINsssSnH;MINssssSn;MINsI;MINsPbH3;MINssPbH2;MINsssPbH;MINssssPb;ECIndex;ETA_alpha;AETA_alpha;ETA_shape_p;ETA_shape_y;ETA_shape_x;ETA_beta;AETA_beta;ETA_beta_s;AETA_beta_s;ETA_beta_ns;AETA_beta_ns;ETA_beta_ns_d;AETA_beta_ns_d;ETA_eta;AETA_eta;ETA_eta_L;AETA_eta_L;ETA_eta_R;AETA_eta_R;ETA_eta_RL;AETA_eta_RL;ETA_eta_F;AETA_eta_F;ETA_eta_FL;AETA_eta_FL;ETA_eta_B;AETA_eta_B;ETA_eta_BR;AETA_eta_BR;ETA_dAlpha_A;ETA_dAlpha_B;ETA_epsilon_1;ETA_epsilon_2;ETA_epsilon_3;ETA_epsilon_4;ETA_epsilon_5;ETA_dEpsilon_A;ETA_dEpsilon_B;ETA_dEpsilon_C;ETA_dEpsilon_D;ETA_dBeta;AETA_dBeta;ETA_psi_1;ETA_dPsi_A;ETA_dPsi_B;fragCpx;fMF;nHBAcc;nHBDon;IC0;IC1;IC2;IC3;IC4;IC5;TIC0;TIC1;TIC2;TIC3;TIC4;TIC5;SIC0;SIC1;SIC2;SIC3;SIC4;SIC5;BIC0;BIC1;BIC2;BIC3;BIC4;BIC5;CIC0;CIC1;CIC2;CIC3;CIC4;CIC5;MIC0;MIC1;MIC2;MIC3;MIC4;MIC5;ZMIC0;ZMIC1;ZMIC2;ZMIC3;ZMIC4;ZMIC5;Kier1;Kier2;Kier3;Lipinski;GhoseFilter;FilterItLogS;VMcGowan;LabuteASA;PEOE_VSA1;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;SMR_VSA1;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;SlogP_VSA10;SlogP_VSA11;EState_VSA1;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;EState_VSA10;VSA_EState1;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;MDEC-11;MDEC-12;MDEC-13;MDEC-14;MDEC-22;MDEC-23;MDEC-24;MDEC-33;MDEC-34;MDEC-44;MDEO-11;MDEO-12;MDEO-22;MDEN-11;MDEN-12;MDEN-13;MDEN-22;MDEN-23;MDEN-33;MID;AMID;MID_h;AMID_h;MID_C;AMID_C;MID_N;AMID_N;MID_O;AMID_O;MID_X;AMID_X;MPC2;MPC3;MPC4;MPC5;MPC6;MPC7;MPC8;MPC9;MPC10;TMPC10;piPC1;piPC2;piPC3;piPC4;piPC5;piPC6;piPC7;piPC8;piPC9;piPC10;TpiPC10;apol;bpol;nRing;n3Ring;n4Ring;n5Ring;n6Ring;n7Ring;n8Ring;n9Ring;n10Ring;n11Ring;n12Ring;nG12Ring;nHRing;n3HRing;n4HRing;n5HRing;n6HRing;n7HRing;n8HRing;n9HRing;n10HRing;n11HRing;n12HRing;nG12HRing;naRing;n3aRing;n4aRing;n5aRing;n6aRing;n7aRing;n8aRing;n9aRing;n10aRing;n11aRing;n12aRing;nG12aRing;naHRing;n3aHRing;n4aHRing;n5aHRing;n6aHRing;n7aHRing;n8aHRing;n9aHRing;n10aHRing;n11aHRing;n12aHRing;nG12aHRing;nARing;n3ARing;n4ARing;n5ARing;n6ARing;n7ARing;n8ARing;n9ARing;n10ARing;n11ARing;n12ARing;nG12ARing;nAHRing;n3AHRing;n4AHRing;n5AHRing;n6AHRing;n7AHRing;n8AHRing;n9AHRing;n10AHRing;n11AHRing;n12AHRing;nG12AHRing;nFRing;n4FRing;n5FRing;n6FRing;n7FRing;n8FRing;n9FRing;n10FRing;n11FRing;n12FRing;nG12FRing;nFHRing;n4FHRing;n5FHRing;n6FHRing;n7FHRing;n8FHRing;n9FHRing;n10FHRing;n11FHRing;n12FHRing;nG12FHRing;nFaRing;n4FaRing;n5FaRing;n6FaRing;n7FaRing;n8FaRing;n9FaRing;n10FaRing;n11FaRing;n12FaRing;nG12FaRing;nFaHRing;n4FaHRing;n5FaHRing;n6FaHRing;n7FaHRing;n8FaHRing;n9FaHRing;n10FaHRing;n11FaHRing;n12FaHRing;nG12FaHRing;nFARing;n4FARing;n5FARing;n6FARing;n7FARing;n8FARing;n9FARing;n10FARing;n11FARing;n12FARing;nG12FARing;nFAHRing;n4FAHRing;n5FAHRing;n6FAHRing;n7FAHRing;n8FAHRing;n9FAHRing;n10FAHRing;n11FAHRing;n12FAHRing;nG12FAHRing;nRot;RotRatio;SLogP;SMR;TopoPSA(NO);TopoPSA;GGI1;GGI2;GGI3;GGI4;GGI5;GGI6;GGI7;GGI8;GGI9;GGI10;JGI1;JGI2;JGI3;JGI4;JGI5;JGI6;JGI7;JGI8;JGI9;JGI10;JGT10;Diameter;Radius;TopoShapeIndex;PetitjeanIndex;Vabc;VAdjMat;MWC01;MWC02;MWC03;MWC04;MWC05;MWC06;MWC07;MWC08;MWC09;MWC10;TMWC10;SRW02;SRW03;SRW04;SRW05;SRW06;SRW07;SRW08;SRW09;SRW10;TSRW10;MW;AMW;WPath;WPol;Zagreb1;Zagreb2;mZagreb1;mZagreb2,0,mordred mordred_filtered,AATS0Z;AATS0are;AATS0d;AATS0dv;AATS0i;AATS0m;AATS0p;AATS0pe;AATS0s;AATS0se;AATS0v;AATS1Z;AATS1are;AATS1d;AATS1dv;AATS1i;AATS1m;AATS1p;AATS1pe;AATS1s;AATS1se;AATS1v;AATS2Z;AATS2are;AATS2d;AATS2dv;AATS2i;AATS2m;AATS2p;AATS2pe;AATS2s;AATS2se;AATS2v;AATS3Z;AATS3are;AATS3d;AATS3dv;AATS3i;AATS3m;AATS3p;AATS3pe;AATS3s;AATS3se;AATS3v;AATS4Z;AATS4are;AATS4d;AATS4dv;AATS4i;AATS4m;AATS4p;AATS4pe;AATS4s;AATS4se;AATS4v;AATS5Z;AATS5are;AATS5d;AATS5dv;AATS5i;AATS5m;AATS5p;AATS5pe;AATS5s;AATS5se;AATS5v;AATS6Z;AATS6are;AATS6d;AATS6dv;AATS6i;AATS6m;AATS6p;AATS6pe;AATS6s;AATS6se;AATS6v;AATS7Z;AATS7are;AATS7d;AATS7dv;AATS7i;AATS7m;AATS7p;AATS7pe;AATS7s;AATS7se;AATS7v;AATS8Z;AATS8are;AATS8d;AATS8dv;AATS8i;AATS8m;AATS8p;AATS8pe;AATS8s;AATS8se;AATS8v;AATSC0Z;AATSC0are;AATSC0c;AATSC0d;AATSC0dv;AATSC0i;AATSC0m;AATSC0p;AATSC0pe;AATSC0s;AATSC0se;AATSC0v;AATSC1Z;AATSC1are;AATSC1c;AATSC1d;AATSC1dv;AATSC1i;AATSC1m;AATSC1p;AATSC1pe;AATSC1s;AATSC1se;AATSC1v;AATSC2Z;AATSC2are;AATSC2c;AATSC2d;AATSC2dv;AATSC2i;AATSC2m;AATSC2p;AATSC2pe;AATSC2s;AATSC2se;AATSC2v;AATSC3Z;AATSC3are;AATSC3c;AATSC3d;AATSC3dv;AATSC3i;AATSC3m;AATSC3p;AATSC3pe;AATSC3s;AATSC3se;AATSC3v;AATSC4Z;AATSC4are;AATSC4c;AATSC4d;AATSC4dv;AATSC4i;AATSC4m;AATSC4p;AATSC4pe;AATSC4s;AATSC4se;AATSC4v;AATSC5Z;AATSC5are;AATSC5c;AATSC5d;AATSC5dv;AATSC5i;AATSC5m;AATSC5p;AATSC5pe;AATSC5s;AATSC5se;AATSC5v;AATSC6Z;AATSC6are;AATSC6c;AATSC6d;AATSC6dv;AATSC6i;AATSC6m;AATSC6p;AATSC6pe;AATSC6s;AATSC6se;AATSC6v;AATSC7Z;AATSC7are;AATSC7c;AATSC7d;AATSC7dv;AATSC7i;AATSC7m;AATSC7p;AATSC7pe;AATSC7s;AATSC7se;AATSC7v;AATSC8Z;AATSC8are;AATSC8c;AATSC8d;AATSC8dv;AATSC8i;AATSC8m;AATSC8p;AATSC8pe;AATSC8s;AATSC8se;AATSC8v;ABC;ABCGG;AETA_alpha;AETA_beta;AETA_beta_ns;AETA_beta_ns_d;AETA_beta_s;AETA_dBeta;AETA_eta;AETA_eta_B;AETA_eta_BR;AETA_eta_F;AETA_eta_FL;AETA_eta_L;AETA_eta_R;AETA_eta_RL;AMID;AMID_C;AMID_N;AMID_O;AMID_X;AMID_h;AMW;ATS0Z;ATS0are;ATS0d;ATS0dv;ATS0i;ATS0m;ATS0p;ATS0pe;ATS0s;ATS0se;ATS0v;ATS1Z;ATS1are;ATS1d;ATS1dv;ATS1i;ATS1m;ATS1p;ATS1pe;ATS1s;ATS1se;ATS1v;ATS2Z;ATS2are;ATS2d;ATS2dv;ATS2i;ATS2m;ATS2p;ATS2pe;ATS2s;ATS2se;ATS2v;ATS3Z;ATS3are;ATS3d;ATS3dv;ATS3i;ATS3m;ATS3p;ATS3pe;ATS3s;ATS3se;ATS3v;ATS4Z;ATS4are;ATS4d;ATS4dv;ATS4i;ATS4m;ATS4p;ATS4pe;ATS4s;ATS4se;ATS4v;ATS5Z;ATS5are;ATS5d;ATS5dv;ATS5i;ATS5m;ATS5p;ATS5pe;ATS5s;ATS5se;ATS5v;ATS6Z;ATS6are;ATS6d;ATS6dv;ATS6i;ATS6m;ATS6p;ATS6pe;ATS6s;ATS6se;ATS6v;ATS7Z;ATS7are;ATS7d;ATS7dv;ATS7i;ATS7m;ATS7p;ATS7pe;ATS7s;ATS7se;ATS7v;ATS8Z;ATS8are;ATS8d;ATS8dv;ATS8i;ATS8m;ATS8p;ATS8pe;ATS8s;ATS8se;ATS8v;ATSC0Z;ATSC0are;ATSC0c;ATSC0d;ATSC0dv;ATSC0i;ATSC0m;ATSC0p;ATSC0pe;ATSC0s;ATSC0se;ATSC0v;ATSC1Z;ATSC1are;ATSC1c;ATSC1d;ATSC1dv;ATSC1i;ATSC1m;ATSC1p;ATSC1pe;ATSC1s;ATSC1se;ATSC1v;ATSC2Z;ATSC2are;ATSC2c;ATSC2d;ATSC2dv;ATSC2i;ATSC2m;ATSC2p;ATSC2pe;ATSC2s;ATSC2se;ATSC2v;ATSC3Z;ATSC3are;ATSC3c;ATSC3d;ATSC3dv;ATSC3i;ATSC3m;ATSC3p;ATSC3pe;ATSC3s;ATSC3se;ATSC3v;ATSC4Z;ATSC4are;ATSC4c;ATSC4d;ATSC4dv;ATSC4i;ATSC4m;ATSC4p;ATSC4pe;ATSC4s;ATSC4se;ATSC4v;ATSC5Z;ATSC5are;ATSC5c;ATSC5d;ATSC5dv;ATSC5i;ATSC5m;ATSC5p;ATSC5pe;ATSC5s;ATSC5se;ATSC5v;ATSC6Z;ATSC6are;ATSC6c;ATSC6d;ATSC6dv;ATSC6i;ATSC6m;ATSC6p;ATSC6pe;ATSC6s;ATSC6se;ATSC6v;ATSC7Z;ATSC7are;ATSC7c;ATSC7d;ATSC7dv;ATSC7i;ATSC7m;ATSC7p;ATSC7pe;ATSC7s;ATSC7se;ATSC7v;ATSC8Z;ATSC8are;ATSC8c;ATSC8d;ATSC8dv;ATSC8i;ATSC8m;ATSC8p;ATSC8pe;ATSC8s;ATSC8se;ATSC8v;AXp-0d;AXp-0dv;AXp-1d;AXp-1dv;AXp-2d;AXp-2dv;AXp-3d;AXp-3dv;AXp-4d;AXp-4dv;AXp-5d;AXp-5dv;AXp-6d;AXp-6dv;AXp-7d;AXp-7dv;BCUTZ-1h;BCUTZ-1l;BCUTare-1h;BCUTare-1l;BCUTc-1h;BCUTc-1l;BCUTd-1h;BCUTd-1l;BCUTdv-1h;BCUTdv-1l;BCUTi-1h;BCUTi-1l;BCUTm-1h;BCUTm-1l;BCUTp-1h;BCUTp-1l;BCUTpe-1h;BCUTpe-1l;BCUTs-1h;BCUTs-1l;BCUTse-1h;BCUTse-1l;BCUTv-1h;BCUTv-1l;BIC0;BIC1;BIC2;BIC3;BIC4;BIC5;BalabanJ;BertzCT;C1SP1;C1SP2;C1SP3;C2SP1;C2SP2;C2SP3;C3SP2;C3SP3;C4SP3;CIC0;CIC1;CIC2;CIC3;CIC4;CIC5;DPSA1;DPSA2;DPSA3;DPSA4;DPSA5;DetourIndex;Diameter;ECIndex;EState_VSA1;EState_VSA10;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;ETA_alpha;ETA_beta;ETA_beta_ns;ETA_beta_ns_d;ETA_beta_s;ETA_dAlpha_A;ETA_dAlpha_B;ETA_dBeta;ETA_dEpsilon_A;ETA_dEpsilon_B;ETA_dEpsilon_C;ETA_dEpsilon_D;ETA_dPsi_A;ETA_dPsi_B;ETA_epsilon_1;ETA_epsilon_2;ETA_epsilon_3;ETA_epsilon_4;ETA_epsilon_5;ETA_eta;ETA_eta_B;ETA_eta_BR;ETA_eta_F;ETA_eta_FL;ETA_eta_L;ETA_eta_R;ETA_eta_RL;ETA_psi_1;ETA_shape_p;ETA_shape_x;ETA_shape_y;FCSP3;FNSA1;FNSA2;FNSA3;FNSA4;FNSA5;FPSA1;FPSA2;FPSA3;FPSA4;FPSA5;FilterItLogS;GATS1Z;GATS1are;GATS1c;GATS1d;GATS1dv;GATS1i;GATS1m;GATS1p;GATS1pe;GATS1s;GATS1se;GATS1v;GATS2Z;GATS2are;GATS2c;GATS2d;GATS2dv;GATS2i;GATS2m;GATS2p;GATS2pe;GATS2s;GATS2se;GATS2v;GATS3Z;GATS3are;GATS3c;GATS3d;GATS3dv;GATS3i;GATS3m;GATS3p;GATS3pe;GATS3s;GATS3se;GATS3v;GATS4Z;GATS4are;GATS4c;GATS4d;GATS4dv;GATS4i;GATS4m;GATS4p;GATS4pe;GATS4s;GATS4se;GATS4v;GATS5Z;GATS5are;GATS5c;GATS5d;GATS5dv;GATS5i;GATS5m;GATS5p;GATS5pe;GATS5s;GATS5se;GATS5v;GATS6Z;GATS6are;GATS6c;GATS6d;GATS6dv;GATS6i;GATS6m;GATS6p;GATS6pe;GATS6s;GATS6se;GATS6v;GATS7Z;GATS7are;GATS7c;GATS7d;GATS7dv;GATS7i;GATS7m;GATS7p;GATS7pe;GATS7s;GATS7se;GATS7v;GATS8Z;GATS8are;GATS8c;GATS8d;GATS8dv;GATS8i;GATS8m;GATS8p;GATS8pe;GATS8s;GATS8se;GATS8v;GGI1;GGI10;GGI2;GGI3;GGI4;GGI5;GGI6;GGI7;GGI8;GGI9;GRAV;GRAVH;GRAVHp;GRAVp;GeomDiameter;GeomPetitjeanIndex;GeomRadius;GeomShapeIndex;GhoseFilter;HybRatio;IC0;IC1;IC2;IC3;IC4;IC5;JGI1;JGI10;JGI2;JGI3;JGI4;JGI5;JGI6;JGI7;JGI8;JGI9;JGT10;Kier1;Kier2;Kier3;LabuteASA;Lipinski;LogEE_A;LogEE_D;LogEE_Dt;LogEE_DzZ;LogEE_Dzare;LogEE_Dzi;LogEE_Dzm;LogEE_Dzp;LogEE_Dzpe;LogEE_Dzse;LogEE_Dzv;MATS1Z;MATS1are;MATS1c;MATS1d;MATS1dv;MATS1i;MATS1m;MATS1p;MATS1pe;MATS1s;MATS1se;MATS1v;MATS2Z;MATS2are;MATS2c;MATS2d;MATS2dv;MATS2i;MATS2m;MATS2p;MATS2pe;MATS2s;MATS2se;MATS2v;MATS3Z;MATS3are;MATS3c;MATS3d;MATS3dv;MATS3i;MATS3m;MATS3p;MATS3pe;MATS3s;MATS3se;MATS3v;MATS4Z;MATS4are;MATS4c;MATS4d;MATS4dv;MATS4i;MATS4m;MATS4p;MATS4pe;MATS4s;MATS4se;MATS4v;MATS5Z;MATS5are;MATS5c;MATS5d;MATS5dv;MATS5i;MATS5m;MATS5p;MATS5pe;MATS5s;MATS5se;MATS5v;MATS6Z;MATS6are;MATS6c;MATS6d;MATS6dv;MATS6i;MATS6m;MATS6p;MATS6pe;MATS6s;MATS6se;MATS6v;MATS7Z;MATS7are;MATS7c;MATS7d;MATS7dv;MATS7i;MATS7m;MATS7p;MATS7pe;MATS7s;MATS7se;MATS7v;MATS8Z;MATS8are;MATS8c;MATS8d;MATS8dv;MATS8i;MATS8m;MATS8p;MATS8pe;MATS8s;MATS8se;MATS8v;MDEC-22;MDEC-23;MDEC-33;MIC0;MIC1;MIC2;MIC3;MIC4;MIC5;MID;MID_C;MID_N;MID_O;MID_X;MID_h;MOMI-X;MOMI-Y;MOMI-Z;MPC10;MPC2;MPC3;MPC4;MPC5;MPC6;MPC7;MPC8;MPC9;MW;MWC01;MWC02;MWC03;MWC04;MWC05;MWC06;MWC07;MWC08;MWC09;MWC10;MZ;Mare;Mi;Mm;Mor01;Mor01m;Mor01p;Mor01se;Mor01v;Mor02;Mor02m;Mor02p;Mor02se;Mor02v;Mor03;Mor03m;Mor03p;Mor03se;Mor03v;Mor04;Mor04m;Mor04p;Mor04se;Mor04v;Mor05;Mor05m;Mor05p;Mor05se;Mor05v;Mor06;Mor06m;Mor06p;Mor06se;Mor06v;Mor07;Mor07m;Mor07p;Mor07se;Mor07v;Mor08;Mor08m;Mor08p;Mor08se;Mor08v;Mor09;Mor09m;Mor09p;Mor09se;Mor09v;Mor10;Mor10m;Mor10p;Mor10se;Mor10v;Mor11;Mor11m;Mor11p;Mor11se;Mor11v;Mor12;Mor12m;Mor12p;Mor12se;Mor12v;Mor13;Mor13m;Mor13p;Mor13se;Mor13v;Mor14;Mor14m;Mor14p;Mor14se;Mor14v;Mor15;Mor15m;Mor15p;Mor15se;Mor15v;Mor16;Mor16m;Mor16p;Mor16se;Mor16v;Mor17;Mor17m;Mor17p;Mor17se;Mor17v;Mor18;Mor18m;Mor18p;Mor18se;Mor18v;Mor19;Mor19m;Mor19p;Mor19se;Mor19v;Mor20;Mor20m;Mor20p;Mor20se;Mor20v;Mor21;Mor21m;Mor21p;Mor21se;Mor21v;Mor22;Mor22m;Mor22p;Mor22se;Mor22v;Mor23;Mor23m;Mor23p;Mor23se;Mor23v;Mor24;Mor24m;Mor24p;Mor24se;Mor24v;Mor25;Mor25m;Mor25p;Mor25se;Mor25v;Mor26;Mor26m;Mor26p;Mor26se;Mor26v;Mor27;Mor27m;Mor27p;Mor27se;Mor27v;Mor28;Mor28m;Mor28p;Mor28se;Mor28v;Mor29;Mor29m;Mor29p;Mor29se;Mor29v;Mor30;Mor30m;Mor30p;Mor30se;Mor30v;Mor31;Mor31m;Mor31p;Mor31se;Mor31v;Mor32;Mor32m;Mor32p;Mor32se;Mor32v;Mp;Mpe;Mse;Mv;NaaCH;NaaN;NaaNH;NaaO;NaaS;NaaaC;NaasC;NaasN;NdCH2;NdO;NdS;NddsN;NddssS;NdsCH;NdsN;NdssC;NsBr;NsCH3;NsCl;NsF;NsNH2;NsOH;NssCH2;NssNH;NssO;NssS;NsssCH;NsssN;NssssC;NtN;NtsC;PEOE_VSA1;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;PNSA1;PNSA2;PNSA3;PNSA4;PNSA5;PPSA1;PPSA2;PPSA3;PPSA4;PPSA5;PetitjeanIndex;RASA;RNCG;RNCS;RPCG;RPCS;RPSA;Radius;RotRatio;SIC0;SIC1;SIC2;SIC3;SIC4;SIC5;SLogP;SM1_Dt;SM1_DzZ;SM1_Dzare;SM1_Dzi;SM1_Dzm;SM1_Dzp;SM1_Dzpe;SM1_Dzse;SM1_Dzv;SMR;SMR_VSA1;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SRW02;SRW03;SRW04;SRW05;SRW06;SRW07;SRW08;SRW09;SRW10;SZ;SaaCH;SaaN;SaaNH;SaaO;SaaS;SaaaC;SaasC;SaasN;Sare;SdCH2;SdO;SdS;SddsN;SddssS;SdsCH;SdsN;SdssC;Si;SlogP_VSA1;SlogP_VSA10;SlogP_VSA11;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;Sm;Sp;SpAD_A;SpAD_D;SpAD_Dt;SpAD_DzZ;SpAD_Dzare;SpAD_Dzi;SpAD_Dzm;SpAD_Dzp;SpAD_Dzpe;SpAD_Dzse;SpAD_Dzv;SpAbs_A;SpAbs_D;SpAbs_Dt;SpAbs_DzZ;SpAbs_Dzare;SpAbs_Dzi;SpAbs_Dzm;SpAbs_Dzp;SpAbs_Dzpe;SpAbs_Dzse;SpAbs_Dzv;SpDiam_A;SpDiam_D;SpDiam_Dt;SpDiam_DzZ;SpDiam_Dzare;SpDiam_Dzi;SpDiam_Dzm;SpDiam_Dzp;SpDiam_Dzpe;SpDiam_Dzse;SpDiam_Dzv;SpMAD_A;SpMAD_D;SpMAD_Dt;SpMAD_DzZ;SpMAD_Dzare;SpMAD_Dzi;SpMAD_Dzm;SpMAD_Dzp;SpMAD_Dzpe;SpMAD_Dzse;SpMAD_Dzv;SpMax_A;SpMax_D;SpMax_Dt;SpMax_DzZ;SpMax_Dzare;SpMax_Dzi;SpMax_Dzm;SpMax_Dzp;SpMax_Dzpe;SpMax_Dzse;SpMax_Dzv;Spe;SsBr;SsCH3;SsCl;SsF;SsNH2;SsOH;Sse;SssCH2;SssNH;SssO;SssS;SsssCH;SsssN;SssssC;StN;StsC;Sv;TASA;TIC0;TIC1;TIC2;TIC3;TIC4;TIC5;TMPC10;TMWC10;TPSA;TSRW10;TopoPSA;TopoPSA(NO);TopoShapeIndex;TpiPC10;VAdjMat;VE1_A;VE1_D;VE1_Dt;VE1_DzZ;VE1_Dzare;VE1_Dzi;VE1_Dzm;VE1_Dzp;VE1_Dzpe;VE1_Dzse;VE1_Dzv;VE2_A;VE2_D;VE2_Dt;VE2_DzZ;VE2_Dzare;VE2_Dzi;VE2_Dzm;VE2_Dzp;VE2_Dzpe;VE2_Dzse;VE2_Dzv;VE3_A;VE3_D;VE3_Dt;VE3_DzZ;VE3_Dzare;VE3_Dzi;VE3_Dzm;VE3_Dzp;VE3_Dzpe;VE3_Dzse;VE3_Dzv;VMcGowan;VR1_A;VR1_D;VR1_Dt;VR1_DzZ;VR1_Dzare;VR1_Dzi;VR1_Dzm;VR1_Dzp;VR1_Dzpe;VR1_Dzse;VR1_Dzv;VR2_A;VR2_D;VR2_Dt;VR2_DzZ;VR2_Dzare;VR2_Dzi;VR2_Dzm;VR2_Dzp;VR2_Dzpe;VR2_Dzse;VR2_Dzv;VR3_A;VR3_D;VR3_Dt;VR3_DzZ;VR3_Dzare;VR3_Dzi;VR3_Dzm;VR3_Dzp;VR3_Dzpe;VR3_Dzse;VR3_Dzv;VSA_EState1;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;Vabc;WNSA1;WNSA2;WNSA3;WNSA4;WNSA5;WPSA1;WPSA2;WPSA3;WPSA4;WPSA5;WPath;WPol;Xc-3d;Xc-3dv;Xc-4d;Xc-4dv;Xc-5d;Xc-5dv;Xc-6d;Xc-6dv;Xch-3d;Xch-3dv;Xch-4d;Xch-4dv;Xch-5d;Xch-5dv;Xch-6d;Xch-6dv;Xch-7d;Xch-7dv;Xp-0d;Xp-0dv;Xp-1d;Xp-1dv;Xp-2d;Xp-2dv;Xp-3d;Xp-3dv;Xp-4d;Xp-4dv;Xp-5d;Xp-5dv;Xp-6d;Xp-6dv;Xp-7d;Xp-7dv;Xpc-4d;Xpc-4dv;Xpc-5d;Xpc-5dv;Xpc-6d;Xpc-6dv;ZMIC0;ZMIC1;ZMIC2;ZMIC3;ZMIC4;ZMIC5;Zagreb1;Zagreb2;apol;bpol;fMF;fragCpx;mZagreb1;mZagreb2;n10AHRing;n10ARing;n10FAHRing;n10FARing;n10FHRing;n10FRing;n10FaHRing;n10FaRing;n10HRing;n10Ring;n10aHRing;n10aRing;n11AHRing;n11ARing;n11FAHRing;n11FARing;n11FHRing;n11FRing;n11FaHRing;n11FaRing;n11HRing;n11Ring;n11aHRing;n11aRing;n12AHRing;n12ARing;n12FAHRing;n12FARing;n12FHRing;n12FRing;n12FaHRing;n12FaRing;n12HRing;n12Ring;n12aHRing;n12aRing;n3AHRing;n3ARing;n3HRing;n3Ring;n3aHRing;n3aRing;n4AHRing;n4ARing;n4FAHRing;n4FARing;n4FHRing;n4FRing;n4FaHRing;n4FaRing;n4HRing;n4Ring;n4aHRing;n4aRing;n5AHRing;n5ARing;n5FAHRing;n5FARing;n5FHRing;n5FRing;n5FaHRing;n5FaRing;n5HRing;n5Ring;n5aHRing;n5aRing;n6AHRing;n6ARing;n6FAHRing;n6FARing;n6FHRing;n6FRing;n6FaHRing;n6FaRing;n6HRing;n6Ring;n6aHRing;n6aRing;n7AHRing;n7ARing;n7FAHRing;n7FARing;n7FHRing;n7FRing;n7FaHRing;n7FaRing;n7HRing;n7Ring;n7aHRing;n7aRing;n8AHRing;n8ARing;n8FAHRing;n8FARing;n8FHRing;n8FRing;n8FaHRing;n8FaRing;n8HRing;n8Ring;n8aHRing;n8aRing;n9AHRing;n9ARing;n9FAHRing;n9FARing;n9FHRing;n9FRing;n9FaHRing;n9FaRing;n9HRing;n9Ring;n9aHRing;n9aRing;nAHRing;nARing;nAcid;nAromAtom;nAromBond;nAtom;nB;nBase;nBonds;nBondsA;nBondsD;nBondsKD;nBondsKS;nBondsM;nBondsO;nBondsS;nBondsT;nBr;nBridgehead;nC;nCl;nF;nFAHRing;nFARing;nFHRing;nFRing;nFaHRing;nFaRing;nG12AHRing;nG12ARing;nG12FAHRing;nG12FARing;nG12FHRing;nG12FRing;nG12FaHRing;nG12FaRing;nG12HRing;nG12Ring;nG12aHRing;nG12aRing;nH;nHBAcc;nHBDon;nHRing;nHeavyAtom;nHetero;nI;nN;nO;nP;nRing;nRot;nS;nSpiro;nX;naHRing;naRing;piPC1;piPC10;piPC2;piPC3;piPC4;piPC5;piPC6;piPC7;piPC8;piPC9,0,mordred -rdkit_raw,MaxEStateIndex;MinEStateIndex;MaxAbsEStateIndex;MinAbsEStateIndex;qed;MolWt;HeavyAtomMolWt;ExactMolWt;NumValenceElectrons;NumRadicalElectrons;MaxPartialCharge;MinPartialCharge;MaxAbsPartialCharge;MinAbsPartialCharge;FpDensityMorgan1;FpDensityMorgan2;FpDensityMorgan3;BalabanJ;BertzCT;Chi0;Chi0n;Chi0v;Chi1;Chi1n;Chi1v;Chi2n;Chi2v;Chi3n;Chi3v;Chi4n;Chi4v;HallKierAlpha;AvgIpc;Kappa1;Kappa2;Kappa3;LabuteASA;PEOE_VSA1;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;PEOE_VSA14;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;SMR_VSA1;SMR_VSA10;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1;SlogP_VSA10;SlogP_VSA11;SlogP_VSA12;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;TPSA;EState_VSA1;EState_VSA10;EState_VSA11;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;VSA_EState1;VSA_EState10;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;FractionCSP3;HeavyAtomCount;NHOHCount;NOCount;NumAliphaticCarbocycles;NumAliphaticHeterocycles;NumAliphaticRings;NumAromaticCarbocycles;NumAromaticHeterocycles;NumAromaticRings;NumHAcceptors;NumHDonors;NumHeteroatoms;NumRotatableBonds;NumSaturatedCarbocycles;NumSaturatedHeterocycles;NumSaturatedRings;RingCount;MolLogP;MolMR;fr_Al_COO;fr_Al_OH;fr_Al_OH_noTert;fr_ArN;fr_Ar_COO;fr_Ar_N;fr_Ar_NH;fr_Ar_OH;fr_COO;fr_COO2;fr_C_O;fr_C_O_noCOO;fr_C_S;fr_HOCCN;fr_Imine;fr_NH0;fr_NH1;fr_NH2;fr_N_O;fr_Ndealkylation1;fr_Ndealkylation2;fr_Nhpyrrole;fr_SH;fr_aldehyde;fr_alkyl_carbamate;fr_alkyl_halide;fr_allylic_oxid;fr_amide;fr_amidine;fr_aniline;fr_aryl_methyl;fr_azide;fr_azo;fr_barbitur;fr_benzene;fr_benzodiazepine;fr_bicyclic;fr_diazo;fr_dihydropyridine;fr_epoxide;fr_ester;fr_ether;fr_furan;fr_guanido;fr_halogen;fr_hdrzine;fr_hdrzone;fr_imidazole;fr_imide;fr_isocyan;fr_isothiocyan;fr_ketone;fr_ketone_Topliss;fr_lactam;fr_lactone;fr_methoxy;fr_morpholine;fr_nitrile;fr_nitro;fr_nitro_arom;fr_nitro_arom_nonortho;fr_nitroso;fr_oxazole;fr_oxime;fr_para_hydroxylation;fr_phenol;fr_phenol_noOrthoHbond;fr_phos_acid;fr_phos_ester;fr_piperdine;fr_piperzine;fr_priamide;fr_prisulfonamd;fr_pyridine;fr_quatN;fr_sulfide;fr_sulfonamd;fr_sulfone;fr_term_acetylene;fr_tetrazole;fr_thiazole;fr_thiocyan;fr_thiophene;fr_unbrch_alkane;fr_urea,0,rdkit +rdkit_raw,MaxEStateIndex;MinEStateIndex;MaxAbsEStateIndex;MinAbsEStateIndex;qed;MolWt;HeavyAtomMolWt;ExactMolWt;NumValenceElectrons;NumRadicalElectrons;MaxPartialCharge;MinPartialCharge;MaxAbsPartialCharge;MinAbsPartialCharge;FpDensityMorgan1;FpDensityMorgan2;FpDensityMorgan3;BalabanJ;BertzCT;Chi0;Chi0n;Chi0v;Chi1;Chi1n;Chi1v;Chi2n;Chi2v;Chi3n;Chi3v;Chi4n;Chi4v;HallKierAlpha;Ipc;Kappa1;Kappa2;Kappa3;LabuteASA;PEOE_VSA1;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;PEOE_VSA14;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;SMR_VSA1;SMR_VSA10;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1;SlogP_VSA10;SlogP_VSA11;SlogP_VSA12;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;TPSA;EState_VSA1;EState_VSA10;EState_VSA11;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;VSA_EState1;VSA_EState10;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;FractionCSP3;HeavyAtomCount;NHOHCount;NOCount;NumAliphaticCarbocycles;NumAliphaticHeterocycles;NumAliphaticRings;NumAromaticCarbocycles;NumAromaticHeterocycles;NumAromaticRings;NumHAcceptors;NumHDonors;NumHeteroatoms;NumRotatableBonds;NumSaturatedCarbocycles;NumSaturatedHeterocycles;NumSaturatedRings;RingCount;MolLogP;MolMR;fr_Al_COO;fr_Al_OH;fr_Al_OH_noTert;fr_ArN;fr_Ar_COO;fr_Ar_N;fr_Ar_NH;fr_Ar_OH;fr_COO;fr_COO2;fr_C_O;fr_C_O_noCOO;fr_C_S;fr_HOCCN;fr_Imine;fr_NH0;fr_NH1;fr_NH2;fr_N_O;fr_Ndealkylation1;fr_Ndealkylation2;fr_Nhpyrrole;fr_SH;fr_aldehyde;fr_alkyl_carbamate;fr_alkyl_halide;fr_allylic_oxid;fr_amide;fr_amidine;fr_aniline;fr_aryl_methyl;fr_azide;fr_azo;fr_barbitur;fr_benzene;fr_benzodiazepine;fr_bicyclic;fr_diazo;fr_dihydropyridine;fr_epoxide;fr_ester;fr_ether;fr_furan;fr_guanido;fr_halogen;fr_hdrzine;fr_hdrzone;fr_imidazole;fr_imide;fr_isocyan;fr_isothiocyan;fr_ketone;fr_ketone_Topliss;fr_lactam;fr_lactone;fr_methoxy;fr_morpholine;fr_nitrile;fr_nitro;fr_nitro_arom;fr_nitro_arom_nonortho;fr_nitroso;fr_oxazole;fr_oxime;fr_para_hydroxylation;fr_phenol;fr_phenol_noOrthoHbond;fr_phos_acid;fr_phos_ester;fr_piperdine;fr_piperzine;fr_priamide;fr_prisulfonamd;fr_pyridine;fr_quatN;fr_sulfide;fr_sulfonamd;fr_sulfone;fr_term_acetylene;fr_tetrazole;fr_thiazole;fr_thiocyan;fr_thiophene;fr_unbrch_alkane;fr_urea,0,rdkit +rdkit_scaled,MaxEStateIndex_per_heavyatom;MinEStateIndex_per_heavyatom;MaxAbsEStateIndex_per_heavyatom;MinAbsEStateIndex;qed_per_heavyatom;MolWt_per_heavyatom;HeavyAtomMolWt_per_heavyatom;ExactMolWt_per_heavyatom;NumValenceElectrons;NumRadicalElectrons;MaxPartialCharge;MinPartialCharge;MaxAbsPartialCharge;MinAbsPartialCharge;FpDensityMorgan1_per_heavyatom;FpDensityMorgan2_per_heavyatom;FpDensityMorgan3_per_heavyatom;BalabanJ;BertzCT_per_heavyatom;Chi0_per_heavyatom;Chi0n_per_heavyatom;Chi0v_per_heavyatom;Chi1_per_heavyatom;Chi1n_per_heavyatom;Chi1v_per_heavyatom;Chi2n_per_heavyatom;Chi2v_per_heavyatom;Chi3n_per_heavyatom;Chi3v_per_heavyatom;Chi4n_per_heavyatom;Chi4v;HallKierAlpha_per_heavyatom;AvgIpc;Kappa1_per_heavyatom;Kappa2_per_heavyatom;Kappa3;LabuteASA_per_heavyatom;PEOE_VSA1_per_heavyatom;PEOE_VSA10_per_heavyatom;PEOE_VSA11_per_heavyatom;PEOE_VSA12_per_heavyatom;PEOE_VSA13;PEOE_VSA14;PEOE_VSA2_per_heavyatom;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6_per_heavyatom;PEOE_VSA7_per_heavyatom;PEOE_VSA8_per_heavyatom;PEOE_VSA9_per_heavyatom;SMR_VSA1_per_heavyatom;SMR_VSA10_per_heavyatom;SMR_VSA2;SMR_VSA3_per_heavyatom;SMR_VSA4;SMR_VSA5_per_heavyatom;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1_per_heavyatom;SlogP_VSA10;SlogP_VSA11;SlogP_VSA12;SlogP_VSA2_per_heavyatom;SlogP_VSA3_per_heavyatom;SlogP_VSA4;SlogP_VSA5_per_heavyatom;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;TPSA_per_heavyatom;EState_VSA1_per_heavyatom;EState_VSA10_per_heavyatom;EState_VSA11_per_heavyatom;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9_per_heavyatom;VSA_EState1_per_heavyatom;VSA_EState10_per_heavyatom;VSA_EState2_per_heavyatom;VSA_EState3_per_heavyatom;VSA_EState4_per_heavyatom;VSA_EState5_per_heavyatom;VSA_EState6_per_heavyatom;VSA_EState7_per_heavyatom;VSA_EState8_per_heavyatom;VSA_EState9_per_heavyatom;FractionCSP3;HeavyAtomCount;NHOHCount;NOCount;NumAliphaticCarbocycles;NumAliphaticHeterocycles;NumAliphaticRings;NumAromaticCarbocycles;NumAromaticHeterocycles;NumAromaticRings;NumHAcceptors;NumHDonors;NumHeteroatoms;NumRotatableBonds;NumSaturatedCarbocycles;NumSaturatedHeterocycles;NumSaturatedRings;RingCount;MolLogP;MolMR_per_heavyatom;fr_Al_COO;fr_Al_OH;fr_Al_OH_noTert;fr_ArN;fr_Ar_COO;fr_Ar_N;fr_Ar_NH;fr_Ar_OH;fr_COO;fr_COO2;fr_C_O;fr_C_O_noCOO;fr_C_S;fr_HOCCN;fr_Imine;fr_NH0;fr_NH1;fr_NH2;fr_N_O;fr_Ndealkylation1;fr_Ndealkylation2;fr_Nhpyrrole;fr_SH;fr_aldehyde;fr_alkyl_carbamate;fr_alkyl_halide;fr_allylic_oxid;fr_amide;fr_amidine;fr_aniline;fr_aryl_methyl;fr_azide;fr_azo;fr_barbitur;fr_benzene;fr_benzodiazepine;fr_bicyclic;fr_diazo;fr_dihydropyridine;fr_epoxide;fr_ester;fr_ether;fr_furan;fr_guanido;fr_halogen;fr_hdrzine;fr_hdrzone;fr_imidazole;fr_imide;fr_isocyan;fr_isothiocyan;fr_ketone;fr_ketone_Topliss;fr_lactam;fr_lactone;fr_methoxy;fr_morpholine;fr_nitrile;fr_nitro;fr_nitro_arom;fr_nitro_arom_nonortho;fr_nitroso;fr_oxazole;fr_oxime;fr_para_hydroxylation;fr_phenol;fr_phenol_noOrthoHbond;fr_phos_acid;fr_phos_ester;fr_piperdine;fr_piperzine;fr_priamide;fr_prisulfonamd;fr_pyridine;fr_quatN;fr_sulfide;fr_sulfonamd;fr_sulfone;fr_term_acetylene;fr_tetrazole;fr_thiazole;fr_thiocyan;fr_thiophene;fr_unbrch_alkane;fr_urea,1,rdkit diff --git a/atomsci/ddm/pipeline/featurization.py b/atomsci/ddm/pipeline/featurization.py index dd2d62c2..9df5b623 100644 --- a/atomsci/ddm/pipeline/featurization.py +++ b/atomsci/ddm/pipeline/featurization.py @@ -1950,6 +1950,9 @@ def compute_descriptors(self, smiles_df, params): elif descr_source == 'rdkit': desc_df, is_valid = self.compute_rdkit_descriptors(smiles_df, smiles_col = params.smiles_col) + if descr_scaled: + desc_df = self.scale_by_heavyatomcount(desc_df, params.descriptor_type) + desc_df = desc_df[descr_cols] # Add the ID and SMILES columns to the returned data frame ret_df = smiles_df[is_valid][[params.id_col, params.smiles_col]].reset_index(drop=True) @@ -2073,6 +2076,47 @@ def scale_moe_descriptors(self, desc_df, descr_type): scaled_df=pd.concat(scaled_cols, axis=1) return scaled_df.copy() + # **************************************************************************************** + def scale_by_heavyatomcount(self, desc_df, descr_type, heavy_atom_col=''): + """Scale selected descriptors computed by rdkit or mordred by dividing their values by the heavy atom count per molecule. + + Args: + desc_df (DataFrame): Data frame containing computed descriptors. + + descr_type (str): Descriptor type, used to look up expected set of descriptor columns. + + Returns: + scaled_df (DataFrame): Data frame with scaled descriptors. + + """ + cls = self.__class__ + descr_cols = cls.desc_type_cols[descr_type] + if heavy_atom_col != '': + ha_count = desc_df[heavy_atom_col].values + else: + if 'HeavyAtomCount' in descr_cols: + ha_count = desc_df.HeavyAtomCount.values + elif 'nHeavyAtom' in descr_cols: + ha_count = desc_df.nHeavyAtom.values + else: + raise RuntimeError("Could not infer heavy atom column. " + "Should be HeavyAtomCount or nHeavyAtom or set using the heavy_atom_col parameter") + + unscaled_desc_cols = [col.replace('_per_heavyatom', '') for col in descr_cols] + nondesc_cols = list(set(desc_df.columns.values) - set(unscaled_desc_cols)) + scaled_cols=[desc_df[nondesc_cols].copy()] + for scaled_col, unscaled_col in zip(descr_cols, unscaled_desc_cols): + if scaled_col.endswith('_per_heavyatom'): + tmp_col=desc_df[unscaled_col] / ha_count + tmp_col=tmp_col.rename(scaled_col) + scaled_cols.append(tmp_col) + else: + tmp_col=desc_df[unscaled_col] + tmp_col=tmp_col.rename(scaled_col) + scaled_cols.append(tmp_col) + scaled_df=pd.concat(scaled_cols, axis=1) + return scaled_df.copy() + # **************************************************************************************** def __str__(self): """Returns a human-readable description of this Featurization object. diff --git a/atomsci/ddm/test/integrative/delaney_Panel/jsons/class_config_delaney_fit_XGB_rdkit_scaled.json b/atomsci/ddm/test/integrative/delaney_Panel/jsons/class_config_delaney_fit_XGB_rdkit_scaled.json new file mode 100644 index 00000000..7b1b731c --- /dev/null +++ b/atomsci/ddm/test/integrative/delaney_Panel/jsons/class_config_delaney_fit_XGB_rdkit_scaled.json @@ -0,0 +1,36 @@ +{ + "comment": "System", + "comment": "----------------------------------------", + "system": "LC", + "datastore": "False", + "save_results": "False", + "data_owner": "username", + + "comment": "Input file", + "comment": "----------------------------------------", + "comment": "Note: dataset_key must be a path/file name: E.G. ./dataset.csv", + "dataset_key": "./delaney-processed_curated_fit.csv", + "id_col": "Compound ID", + "smiles_col": "smiles", + + "comment": "Prediction Type", + "comment": "----------------------------------------", + "response_cols": "measured log solubility in mols per litre_class", + "prediction_type": "classification", + + "comment": "Features", + "comment": "----------------------------------------", + "featurizer": "computed_descriptors", + + "comment": "Descriptors", + "comment": "----------------------------------------", + "descriptor_type": "rdkit_scaled", + + "comment": "Model", + "comment": "----------------------------------------", + "model_type": "xgboost", + + "comment": "Results", + "comment": "----------------------------------------", + "result_dir": "result" +} diff --git a/atomsci/ddm/test/integrative/delaney_Panel/test_delaney_panel.py b/atomsci/ddm/test/integrative/delaney_Panel/test_delaney_panel.py index ac83c245..54b237a2 100644 --- a/atomsci/ddm/test/integrative/delaney_Panel/test_delaney_panel.py +++ b/atomsci/ddm/test/integrative/delaney_Panel/test_delaney_panel.py @@ -298,6 +298,10 @@ def test_class_config_delaney_fit_XGB_mordred_filtered(): init() train_and_predict('jsons/class_config_delaney_fit_XGB_mordred_filtered.json') # breaks because labels aren't numbers +def test_class_config_delaney_fit_XGB_rdkit_scaled(): + init() + train_and_predict('jsons/class_config_delaney_fit_XGB_rdkit_scaled.json') # fine + def test_class_config_delaney_fit_NN_ecfp(): init() train_and_predict('jsons/class_config_delaney_fit_NN_ecfp.json') # only works for class @@ -351,5 +355,5 @@ def test_class_config_H1_fit_NN_moe(): train_and_predict('jsons/class_config_H1_fit_NN_moe.json', prefix='H1') if __name__ == '__main__': - test_reg_kfold_config_delaney_fit_NN_graphconv() + test_class_config_delaney_fit_XGB_rdkit_scaled() #pass From 94326bc052a02cd839fc82f4a696529e53a65326 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Wed, 26 Mar 2025 17:01:21 -0700 Subject: [PATCH 15/23] rdkit_raw has the Ipc feature which causes RobustTransformer to return nans --- .../balancing_trans/jsons/PowerTransformer_transformer.json | 2 +- .../balancing_trans/jsons/RobustScaler_transformer.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json b/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json index fa533976..91208473 100644 --- a/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json +++ b/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json @@ -16,7 +16,7 @@ "transformers": "True", "model_type": "NN", "featurizer": "computed_descriptors", - "descriptor_type": "rdkit_raw", + "descriptor_type": "mordred_filtered", "feature_transform_type": "PowerTransformer", "learning_rate": ".0007", "layer_sizes": "20,10", diff --git a/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json b/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json index 45a1b8ed..5afc4525 100644 --- a/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json +++ b/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json @@ -16,7 +16,7 @@ "transformers": "True", "model_type": "NN", "featurizer": "computed_descriptors", - "descriptor_type": "rdkit_raw", + "descriptor_type": "mordred_filtered", "feature_transform_type": "RobustScaler", "robustscaler_with_center": "True", "robustscaler_with_scaling": "True", From 6e7805ab3fbbfbac58a8acdb709bd097808e89f6 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Thu, 27 Mar 2025 15:07:55 -0700 Subject: [PATCH 16/23] Added SimpleImputer to help sort out nans in the dataset when used with RobustScaler and PowerTransformer. Updated documentation in related sections. Added functions to ModelFileReader to read out transformer specific parameters. Changed models that test RobustScaler and PowerTransformer to use RF to speed up the training --- atomsci/ddm/docs/PARAMETERS.md | 9 ++++ atomsci/ddm/pipeline/parameter_parser.py | 8 +++ atomsci/ddm/pipeline/transformations.py | 34 +++++++------ .../jsons/PowerTransformer_transformer.json | 7 +-- .../jsons/RobustScaler_transformer.json | 7 +-- .../test_balancing_transformer.py | 31 +++++++++--- atomsci/ddm/utils/model_file_reader.py | 50 ++++++++++++++++++- 7 files changed, 111 insertions(+), 35 deletions(-) diff --git a/atomsci/ddm/docs/PARAMETERS.md b/atomsci/ddm/docs/PARAMETERS.md index c7b430f8..32f76886 100644 --- a/atomsci/ddm/docs/PARAMETERS.md +++ b/atomsci/ddm/docs/PARAMETERS.md @@ -713,6 +713,15 @@ the model will train for max_epochs regardless of validation error.| |*Default:*|TRUE| |*Type:*|Bool| + - **imputer_strategy** + +||| +|-|-| +|*Description:*|This sets the imputer strategy for the SimpleImputer for use with PowerTransformer or RobustScaler. Choices are {"mean", "median", "most_frequent"}| +|*Default:*|"mean"| +|*Type:*|choice| + + --- diff --git a/atomsci/ddm/pipeline/parameter_parser.py b/atomsci/ddm/pipeline/parameter_parser.py index 96cba0f2..a07b9de4 100644 --- a/atomsci/ddm/pipeline/parameter_parser.py +++ b/atomsci/ddm/pipeline/parameter_parser.py @@ -1340,6 +1340,14 @@ def get_parser(): help='Set to True to apply zero-mean, unit-variance normalization to the transformed output. ' 'Default is True.') + # Sklearn parameters + parser.add_argument( + '--imputer_strategy', choices=['mean', 'median', 'most_frequent'], + default='mean', + help='This sets the imputer strategy for the SimpleImputer for use with' + 'PowerTransformer or RobustScaler.' + 'Choices are {"mean", "median", "most_frequent"}') + parser.set_defaults(transformers=True) # ********************************************************************************************************** diff --git a/atomsci/ddm/pipeline/transformations.py b/atomsci/ddm/pipeline/transformations.py index c1867847..9fb2b1d9 100644 --- a/atomsci/ddm/pipeline/transformations.py +++ b/atomsci/ddm/pipeline/transformations.py @@ -3,9 +3,12 @@ """ import logging +import pdb import numpy as np +from sklearn.impute import SimpleImputer +from sklearn.pipeline import Pipeline from deepchem.trans.transformers import Transformer, NormalizationTransformer, BalancingTransformer @@ -124,20 +127,15 @@ def get_transformer_specific_metadata(params): meta_dict (dict): Nested dictionary of parameters and values for each currently active transformer. """ - meta_dict = {} - if params.feature_transform_type == 'RobustScaler': - robustscaler_dict = dict( - robustscaler_with_centering = params.robustscaler_with_centering, - robustscaler_with_scaling = params.robustscaler_with_scaling, - robustscaler_with_quartile_range = params.robustscaler_quartile_range, - robustscaler_unit_variance = params.robustscaler_unit_variance,) - meta_dict['robustscaler_specific'] = robustscaler_dict - if params.feature_transform_type == 'PowerTransformer': - powertransformer_dict = dict( - powertransformer_method = params.powertransformer_method, - powertransformer_standardize = params.powertransformer_standardize) - meta_dict['powertransformer_specific'] = powertransformer_dict - return meta_dict + meta_dict = dict( + robustscaler_with_centering = params.robustscaler_with_centering, + robustscaler_with_scaling = params.robustscaler_with_scaling, + robustscaler_quartile_range = params.robustscaler_quartile_range, + robustscaler_unit_variance = params.robustscaler_unit_variance, + powertransformer_method = params.powertransformer_method, + powertransformer_standardize = params.powertransformer_standardize, + imputer_strategy = params.imputer_strategy) + return dict(transformer_specific=meta_dict) # **************************************************************************************** def get_transformer_keys(params): @@ -208,7 +206,8 @@ class SklearnTransformerWrapper(Transformer): This wrapps a given sklearn transformer and converts it to a DeepChem style transformer """ def __init__(self, dataset, sklearn_transformer, - transform_X=False, transform_y=False, transform_w=False): + transform_X=False, transform_y=False, transform_w=False, + imputer_strategy="mean"): self.transform_X = transform_X self.transform_y = transform_y @@ -217,7 +216,10 @@ def __init__(self, dataset, sklearn_transformer, assert sum([self.transform_X, self.transform_y, self.transform_w]), \ "This transformer can operate on only one of X, y, or w." - self.sklearn_transformer = sklearn_transformer + # keep_empty_features is set to true so that feature counts do not change + imputer = SimpleImputer(strategy=imputer_strategy, keep_empty_features=True) + self.sklearn_transformer = Pipeline([('imputer', imputer), + ('scaler', sklearn_transformer)]) if self.transform_X: self.sklearn_transformer.fit(dataset.X) diff --git a/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json b/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json index 91208473..851deb1d 100644 --- a/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json +++ b/atomsci/ddm/test/integrative/balancing_trans/jsons/PowerTransformer_transformer.json @@ -14,16 +14,11 @@ "result_dir": "replaced", "system": "LC", "transformers": "True", - "model_type": "NN", + "model_type": "RF", "featurizer": "computed_descriptors", "descriptor_type": "mordred_filtered", "feature_transform_type": "PowerTransformer", - "learning_rate": ".0007", - "layer_sizes": "20,10", - "dropouts": "0.3,0.3", "save_results": "False", - "max_epochs": "2", - "early_stopping_patience": "2", "verbose": "False", "seed":"0" } \ No newline at end of file diff --git a/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json b/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json index 5afc4525..272df42d 100644 --- a/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json +++ b/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json @@ -14,7 +14,7 @@ "result_dir": "replaced", "system": "LC", "transformers": "True", - "model_type": "NN", + "model_type": "RF", "featurizer": "computed_descriptors", "descriptor_type": "mordred_filtered", "feature_transform_type": "RobustScaler", @@ -22,12 +22,7 @@ "robustscaler_with_scaling": "True", "robustscaler_quartile_range": "30.0,80.0", "robustscaler_unit_variance": "True", - "learning_rate": ".0007", - "layer_sizes": "20,10", - "dropouts": "0.3,0.3", "save_results": "False", - "max_epochs": "2", - "early_stopping_patience": "2", "verbose": "False", "seed":"0" } \ No newline at end of file diff --git a/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py b/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py index abe83b17..13cbbe40 100644 --- a/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py +++ b/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py @@ -3,6 +3,8 @@ import atomsci.ddm.pipeline.parameter_parser as parse import atomsci.ddm.pipeline.model_pipeline as mp import atomsci.ddm.pipeline.transformations as trans +import atomsci.ddm.pipeline.compare_models as cm +import atomsci.ddm.utils.model_file_reader as mfr import numpy as np import os import json @@ -380,8 +382,18 @@ def test_sklearn_transformers(): transformers_x = robustscaler_pipe.model_wrapper.transformers_x assert len(transformers_x[0])==1 assert isinstance(transformers_x[0][0], trans.SklearnTransformerWrapper) - assert isinstance(transformers_x[0][0].sklearn_transformer, RobustScaler) + assert isinstance(transformers_x[0][0].sklearn_transformer.named_steps['scaler'], RobustScaler) + tar_path = cm.get_filesystem_perf_results(res_dir)['model_path'].values[0] + reader = mfr.ModelFileReader(tar_path) + + assert reader.get_robustscaler_with_centering() + assert reader.get_robustscaler_with_scaling() + assert reader.get_robustscaler_quartile_range() == [30.0, 80.0] + assert reader.get_robustscaler_unit_variance() + assert reader.get_imputer_strategy() == 'mean' + + res_dir = tempfile.mkdtemp() powertransformer_params = read_params( make_relative_to_file('jsons/PowerTransformer_transformer.json'), dset_key, @@ -392,10 +404,17 @@ def test_sklearn_transformers(): transformers_x = powertransformer_pipe.model_wrapper.transformers_x assert len(transformers_x[0])==1 assert isinstance(transformers_x[0][0], trans.SklearnTransformerWrapper) - assert isinstance(transformers_x[0][0].sklearn_transformer, PowerTransformer) + assert isinstance(transformers_x[0][0].sklearn_transformer.named_steps['scaler'], PowerTransformer) + + tar_path = cm.get_filesystem_perf_results(res_dir)['model_path'].values[0] + reader = mfr.ModelFileReader(tar_path) + + assert reader.get_powertransformer_method() == 'yeo-johnson' + assert reader.get_powertransformer_standardize() if __name__ == '__main__': - test_kfold_regression_transformers() - test_kfold_transformers() - test_all_transformers() - test_balancing_transformer() \ No newline at end of file + test_sklearn_transformers() + #test_kfold_regression_transformers() + #test_kfold_transformers() + #test_all_transformers() + #test_balancing_transformer() \ No newline at end of file diff --git a/atomsci/ddm/utils/model_file_reader.py b/atomsci/ddm/utils/model_file_reader.py index 97fb50be..c4abaff9 100644 --- a/atomsci/ddm/utils/model_file_reader.py +++ b/atomsci/ddm/utils/model_file_reader.py @@ -91,6 +91,55 @@ def get_model_parameters(self): """ return self.metadata_dict.get("model_parameters") + def get_transformer_specific_parameters(self): + """Returns: + (str): embedding specific parameters + + """ + return self.metadata_dict.get("transformer_specific") + + def get_robustscaler_with_centering(self): + """Returns: + (bool): robustscaler_with_centering + """ + return self.get_transformer_specific_parameters().get("robustscaler_with_centering") + + def get_robustscaler_with_scaling(self): + """Returns: + (bool): robustscaler_with_scaling + """ + return self.get_transformer_specific_parameters().get("robustscaler_with_scaling") + + def get_robustscaler_quartile_range(self): + """Returns: + (list[float]): robustscaler_quartile_range + """ + return self.get_transformer_specific_parameters().get("robustscaler_quartile_range") + + def get_robustscaler_unit_variance(self): + """Returns: + (bool): robustscaler_unit_variance + """ + return self.get_transformer_specific_parameters().get("robustscaler_unit_variance") + + def get_powertransformer_method(self): + """Returns: + (str): powertransformer_method + """ + return self.get_transformer_specific_parameters().get("powertransformer_method") + + def get_powertransformer_standardize(self): + """Returns: + (bool): powertransformer_standardize + """ + return self.get_transformer_specific_parameters().get("powertransformer_standardize") + + def get_imputer_strategy(self): + """Returns: + (str): imputer_strategy + """ + return self.get_transformer_specific_parameters().get("imputer_strategy") + def get_embedding_specific_parameters(self): """Returns: (str): embedding specific parameters @@ -104,7 +153,6 @@ def get_embedding_model_uuid(self): """ return self.get_embedding_specific_parameters().get("embedding_model_uuid") - def get_embedding_model_path(self): """Returns: (str): embedding_model_path From 46fe7a18054dbf8120fce01ac935e4a725d49b3a Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Thu, 27 Mar 2025 15:15:09 -0700 Subject: [PATCH 17/23] Set add_indicator to True so inverse transform works. Also cleaned up unused imports --- atomsci/ddm/pipeline/transformations.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/atomsci/ddm/pipeline/transformations.py b/atomsci/ddm/pipeline/transformations.py index 9fb2b1d9..79bcb538 100644 --- a/atomsci/ddm/pipeline/transformations.py +++ b/atomsci/ddm/pipeline/transformations.py @@ -3,7 +3,6 @@ """ import logging -import pdb import numpy as np @@ -217,7 +216,8 @@ def __init__(self, dataset, sklearn_transformer, "This transformer can operate on only one of X, y, or w." # keep_empty_features is set to true so that feature counts do not change - imputer = SimpleImputer(strategy=imputer_strategy, keep_empty_features=True) + imputer = SimpleImputer(strategy=imputer_strategy, keep_empty_features=True, + add_indicator=True) # this is true so that inverse works self.sklearn_transformer = Pipeline([('imputer', imputer), ('scaler', sklearn_transformer)]) From cdb6f9893f6c204a1e2c04ca67c01f07fa78efbb Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Mon, 31 Mar 2025 09:23:10 -0700 Subject: [PATCH 18/23] Added json needed for the delaney_panel test. --- ...laney_fit_XGB_mordred_filtered_scaled.json | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 atomsci/ddm/test/integrative/delaney_Panel/jsons/class_config_delaney_fit_XGB_mordred_filtered_scaled.json diff --git a/atomsci/ddm/test/integrative/delaney_Panel/jsons/class_config_delaney_fit_XGB_mordred_filtered_scaled.json b/atomsci/ddm/test/integrative/delaney_Panel/jsons/class_config_delaney_fit_XGB_mordred_filtered_scaled.json new file mode 100644 index 00000000..77c7294e --- /dev/null +++ b/atomsci/ddm/test/integrative/delaney_Panel/jsons/class_config_delaney_fit_XGB_mordred_filtered_scaled.json @@ -0,0 +1,36 @@ +{ + "comment": "System", + "comment": "----------------------------------------", + "system": "LC", + "datastore": "False", + "save_results": "False", + "data_owner": "username", + + "comment": "Input file", + "comment": "----------------------------------------", + "comment": "Note: dataset_key must be a path/file name: E.G. ./dataset.csv", + "dataset_key": "./delaney-processed_curated_fit.csv", + "id_col": "Compound ID", + "smiles_col": "smiles", + + "comment": "Prediction Type", + "comment": "----------------------------------------", + "response_cols": "measured log solubility in mols per litre_class", + "prediction_type": "classification", + + "comment": "Features", + "comment": "----------------------------------------", + "featurizer": "computed_descriptors", + + "comment": "Descriptors", + "comment": "----------------------------------------", + "descriptor_type": "mordred_filtered_scaled", + + "comment": "Model", + "comment": "----------------------------------------", + "model_type": "xgboost", + + "comment": "Results", + "comment": "----------------------------------------", + "result_dir": "result" +} From da690e6eeeedbce7c68f6d29824082194572ba08 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Mon, 31 Mar 2025 10:43:28 -0700 Subject: [PATCH 19/23] default_true and default_false were being overwritten. Now calls set_default function for all sklearn parameters --- atomsci/ddm/pipeline/parameter_parser.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/atomsci/ddm/pipeline/parameter_parser.py b/atomsci/ddm/pipeline/parameter_parser.py index a07b9de4..601929cb 100644 --- a/atomsci/ddm/pipeline/parameter_parser.py +++ b/atomsci/ddm/pipeline/parameter_parser.py @@ -775,13 +775,14 @@ def dict_to_list(inp_dictionary,replace_spaces=False): temp_list_to_command_line = [] # Special case handling for arguments that are False or True by default - default_false = ['previously_split','use_shortlist','datastore', 'save_results','verbose', 'hyperparam', 'split_only', 'is_ki', 'production', 'embedding_and_features'] - default_true = ['transformers','previously_featurized','uncertainty', 'rerun'] - default_false = ['previously_split','use_shortlist','datastore', 'save_results','verbose', 'hyperparam', 'split_only', 'is_ki', 'production', + default_false = ['previously_split','use_shortlist','datastore', + 'save_results','verbose', 'hyperparam', 'split_only', 'is_ki', 'production', + 'embedding_and_features', 'robustscaler_unit_variance'] default_true = ['transformers','previously_featurized','uncertainty', 'rerun', 'robustscaler_with_centering', 'robustscaler_with_scaling', 'powertransformer_standardize'] + for key, value in inp_dictionary.items(): if key in default_false: true_options = ['True','true','ture','TRUE','Ture'] @@ -1304,6 +1305,7 @@ def get_parser(): parser.add_argument( '--transformers', dest='transformers', action='store_false', help='Boolean switch for using transformation on regression output. Default is True') + parser.set_defaults(transformers=True) # RobustScaler parameters parser.add_argument( @@ -1312,9 +1314,11 @@ def get_parser(): 'This will cause transform to raise an exception when attempted on sparse matrices, ' 'because centering them entails building a dense matrix which in common use ' 'cases is likely to be too large to fit in memory. Default is True') + parser.set_defaults(robustscaler_with_centering=True) parser.add_argument( '--robustscaler_with_scaling', action='store_false', help='If True, scale the data to interquartile range. Default is True') + parser.set_defaults(robustscaler_with_scaling=True) parser.add_argument( '--robustscaler_quartile_range', type=str, default='25.0,75.0', help='Quantile range used to calculate scale_. ' @@ -1327,6 +1331,7 @@ def get_parser(): 'In general, if the difference between the x-values of q_max and q_min for a standard ' 'normal distribution is greater than 1, the dataset will be scaled down. ' 'If less than 1, the dataset will be scaled up. Default is False.') + parser.set_defaults(robustscaler_unit_variance=False) # PowerTransformer parameters parser.add_argument( @@ -1339,6 +1344,7 @@ def get_parser(): '--powertransformer_standardize', action='store_false', help='Set to True to apply zero-mean, unit-variance normalization to the transformed output. ' 'Default is True.') + parser.set_defaults(powertransformer_standardize=True) # Sklearn parameters parser.add_argument( @@ -1348,8 +1354,6 @@ def get_parser(): 'PowerTransformer or RobustScaler.' 'Choices are {"mean", "median", "most_frequent"}') - parser.set_defaults(transformers=True) - # ********************************************************************************************************** # model_building_parameters: XGBoost parser.add_argument( From 86349883569d970a3a8d7d3ea73e178a8b48ed42 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Wed, 2 Apr 2025 14:56:09 -0700 Subject: [PATCH 20/23] Refactor so we wrap sklearn Pipelines instead of transformers to make it more generalizeable. Fixed tests. Fixed bug where the imputer_strategy parameter was not used --- atomsci/ddm/pipeline/featurization.py | 33 ++++++++++++------- atomsci/ddm/pipeline/transformations.py | 30 +++++++---------- .../jsons/RobustScaler_transformer.json | 1 + .../test_balancing_transformer.py | 23 +++++++++---- atomsci/ddm/test/unit/test_transformers.py | 8 ++--- 5 files changed, 54 insertions(+), 41 deletions(-) diff --git a/atomsci/ddm/pipeline/featurization.py b/atomsci/ddm/pipeline/featurization.py index dd2d62c2..e98be3b8 100644 --- a/atomsci/ddm/pipeline/featurization.py +++ b/atomsci/ddm/pipeline/featurization.py @@ -24,7 +24,8 @@ from rdkit.ML.Descriptors import MoleculeDescriptors from sklearn.preprocessing import RobustScaler, PowerTransformer - +from sklearn.impute import SimpleImputer +from sklearn.pipeline import Pipeline subclassed_mordred_classes = ['EState', 'MolecularDistanceEdge'] try: from mordred import Calculator, descriptors @@ -1642,27 +1643,37 @@ def create_feature_transformer(self, dataset, params): if params.feature_transform_type == 'normalization': transformers_x = [trans.NormalizationTransformerMissingData(transform_X=True, dataset=dataset)] elif params.feature_transform_type == 'RobustScaler': + # keep_empty_features is set to true so that feature counts do not change + imputer = SimpleImputer(strategy=params.imputer_strategy, keep_empty_features=True, + add_indicator=True) # this is true so that inverse works # Check quartile_range has length 2 and convert it into a tuple quartiles = params.robustscaler_quartile_range assert len(quartiles) == 2, f'robustscaler_quartile_range must have length 2, got {quartiles}.' quartiles = (quartiles[0], quartiles[1]) - transformers_x = [ - trans.SklearnTransformerWrapper(transform_X=True, dataset=dataset, - sklearn_transformer=RobustScaler( + robust_scaler = RobustScaler( with_centering=params.robustscaler_with_centering, with_scaling=params.robustscaler_with_scaling, quantile_range=quartiles, unit_variance=params.robustscaler_unit_variance - )) - ] - elif params.feature_transform_type == 'PowerTransformer': + ) + pipeline = Pipeline([('SimpleImputer', imputer), ('RobustScaler', robust_scaler)]) transformers_x = [ - trans.SklearnTransformerWrapper(transform_X=True, dataset=dataset, - sklearn_transformer=PowerTransformer( + trans.SklearnPipelineWrapper(transform_X=True, dataset=dataset, + sklearn_pipeline=pipeline) + ] + elif params.feature_transform_type == 'PowerTransformer': + # keep_empty_features is set to true so that feature counts do not change + imputer = SimpleImputer(strategy=params.imputer_strategy, keep_empty_features=True, + add_indicator=True) # this is true so that inverse works + power_transformer = PowerTransformer( method=params.powertransformer_method, standardize=params.powertransformer_standardize - )) - ] + ) + pipeline = Pipeline([('SimpleImputer', imputer), ('PowerTransformer', power_transformer)]) + transformers_x = [ + trans.SklearnPipelineWrapper(transform_X=True, dataset=dataset, + sklearn_pipeline=pipeline) + ] else: transformers_x = [] return transformers_x diff --git a/atomsci/ddm/pipeline/transformations.py b/atomsci/ddm/pipeline/transformations.py index 79bcb538..84124f97 100644 --- a/atomsci/ddm/pipeline/transformations.py +++ b/atomsci/ddm/pipeline/transformations.py @@ -6,11 +6,8 @@ import numpy as np -from sklearn.impute import SimpleImputer -from sklearn.pipeline import Pipeline from deepchem.trans.transformers import Transformer, NormalizationTransformer, BalancingTransformer - logging.basicConfig(format='%(asctime)-15s %(message)s') log = logging.getLogger('ATOM') @@ -200,13 +197,12 @@ def get_all_training_datasets(model_dataset): # **************************************************************************************** -class SklearnTransformerWrapper(Transformer): +class SklearnPipelineWrapper(Transformer): """ This wrapps a given sklearn transformer and converts it to a DeepChem style transformer """ - def __init__(self, dataset, sklearn_transformer, - transform_X=False, transform_y=False, transform_w=False, - imputer_strategy="mean"): + def __init__(self, dataset, sklearn_pipeline, + transform_X=False, transform_y=False, transform_w=False): self.transform_X = transform_X self.transform_y = transform_y @@ -215,18 +211,14 @@ def __init__(self, dataset, sklearn_transformer, assert sum([self.transform_X, self.transform_y, self.transform_w]), \ "This transformer can operate on only one of X, y, or w." - # keep_empty_features is set to true so that feature counts do not change - imputer = SimpleImputer(strategy=imputer_strategy, keep_empty_features=True, - add_indicator=True) # this is true so that inverse works - self.sklearn_transformer = Pipeline([('imputer', imputer), - ('scaler', sklearn_transformer)]) + self.sklearn_pipeline = sklearn_pipeline if self.transform_X: - self.sklearn_transformer.fit(dataset.X) + self.sklearn_pipeline.fit(dataset.X) elif self.transform_y: - self.sklearn_transformer.fit(dataset.y) + self.sklearn_pipeline.fit(dataset.y) else: - self.sklearn_transformer.fit(dataset.w) + self.sklearn_pipeline.fit(dataset.w) def transform(self, dataset, parallel=False): return dataset.transform(self) @@ -234,16 +226,16 @@ def transform(self, dataset, parallel=False): def transform_array(self, X, y, w, ids): """Transform the data in a set of (X, y, w) arrays.""" if self.transform_X: - X = self.sklearn_transformer.transform(X) + X = self.sklearn_pipeline.transform(X) elif self.transform_y: - y = self.sklearn_transformer.transform(y) + y = self.sklearn_pipeline.transform(y) else: - w = self.sklearn_transformer.transform(w) + w = self.sklearn_pipeline.transform(w) return (X, y, w, ids) def untransform(self, z: np.ndarray) -> np.ndarray: - return self.sklearn_transformer.inverse_transform(z) + return self.sklearn_pipeline.inverse_transform(z) # **************************************************************************************** diff --git a/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json b/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json index 272df42d..9a171a04 100644 --- a/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json +++ b/atomsci/ddm/test/integrative/balancing_trans/jsons/RobustScaler_transformer.json @@ -22,6 +22,7 @@ "robustscaler_with_scaling": "True", "robustscaler_quartile_range": "30.0,80.0", "robustscaler_unit_variance": "True", + "imputer_strategy": "median", "save_results": "False", "verbose": "False", "seed":"0" diff --git a/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py b/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py index 13cbbe40..4c293107 100644 --- a/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py +++ b/atomsci/ddm/test/integrative/balancing_trans/test_balancing_transformer.py @@ -9,7 +9,9 @@ import os import json +from sklearn.impute import SimpleImputer from sklearn.preprocessing import RobustScaler, PowerTransformer +from sklearn.pipeline import Pipeline import sys sys.path.append(os.path.join(os.path.dirname(__file__), '..')) @@ -365,7 +367,7 @@ def test_kfold_regression_transformers(): # transformer means should be around expected_mean np.testing.assert_array_almost_equal(transformer.y_means, expected_y_means) -def test_sklearn_transformers(): +def test_sklearn_pipelines(): """ Test the balancing transformer to ensure that it correctly adjusts weights for imbalanced datasets. """ @@ -381,8 +383,13 @@ def test_sklearn_transformers(): robustscaler_pipe = make_pipeline(robustscaler_params) transformers_x = robustscaler_pipe.model_wrapper.transformers_x assert len(transformers_x[0])==1 - assert isinstance(transformers_x[0][0], trans.SklearnTransformerWrapper) - assert isinstance(transformers_x[0][0].sklearn_transformer.named_steps['scaler'], RobustScaler) + assert isinstance(transformers_x[0][0], trans.SklearnPipelineWrapper) + assert isinstance(transformers_x[0][0].sklearn_pipeline, Pipeline) + scaler = transformers_x[0][0].sklearn_pipeline.named_steps['RobustScaler'] + assert isinstance(scaler, RobustScaler) + imputer = transformers_x[0][0].sklearn_pipeline.named_steps['SimpleImputer'] + assert isinstance(imputer, SimpleImputer) + assert imputer.strategy == 'median' tar_path = cm.get_filesystem_perf_results(res_dir)['model_path'].values[0] reader = mfr.ModelFileReader(tar_path) @@ -391,7 +398,7 @@ def test_sklearn_transformers(): assert reader.get_robustscaler_with_scaling() assert reader.get_robustscaler_quartile_range() == [30.0, 80.0] assert reader.get_robustscaler_unit_variance() - assert reader.get_imputer_strategy() == 'mean' + assert reader.get_imputer_strategy() == 'median' res_dir = tempfile.mkdtemp() powertransformer_params = read_params( @@ -403,8 +410,10 @@ def test_sklearn_transformers(): powertransformer_pipe = make_pipeline(powertransformer_params) transformers_x = powertransformer_pipe.model_wrapper.transformers_x assert len(transformers_x[0])==1 - assert isinstance(transformers_x[0][0], trans.SklearnTransformerWrapper) - assert isinstance(transformers_x[0][0].sklearn_transformer.named_steps['scaler'], PowerTransformer) + assert isinstance(transformers_x[0][0], trans.SklearnPipelineWrapper) + assert isinstance(transformers_x[0][0].sklearn_pipeline, Pipeline) + scaler = transformers_x[0][0].sklearn_pipeline.named_steps['PowerTransformer'] + assert isinstance(scaler, PowerTransformer) tar_path = cm.get_filesystem_perf_results(res_dir)['model_path'].values[0] reader = mfr.ModelFileReader(tar_path) @@ -413,7 +422,7 @@ def test_sklearn_transformers(): assert reader.get_powertransformer_standardize() if __name__ == '__main__': - test_sklearn_transformers() + test_sklearn_pipelines() #test_kfold_regression_transformers() #test_kfold_transformers() #test_all_transformers() diff --git a/atomsci/ddm/test/unit/test_transformers.py b/atomsci/ddm/test/unit/test_transformers.py index 2c0b6edd..9cb43a34 100644 --- a/atomsci/ddm/test/unit/test_transformers.py +++ b/atomsci/ddm/test/unit/test_transformers.py @@ -4,7 +4,7 @@ from sklearn.preprocessing import RobustScaler, PowerTransformer -def test_sklearn_transformer_wrapper(): +def test_sklearn_pipeline_wrapper(): """ Creates a mock dataset. Tests the SklearnTransformerWrapper with RobustScaler on X. @@ -21,7 +21,7 @@ def test_sklearn_transformer_wrapper(): # Test with RobustScaler on X scaler = RobustScaler() - transformer = trans.SklearnTransformerWrapper(dataset, scaler, transform_X=True) + transformer = trans.SklearnPipelineWrapper(dataset, scaler, transform_X=True) transformed_dataset = transformer.transform(dataset) expected_transformed_X = scaler.fit_transform(X) np.testing.assert_array_almost_equal(transformed_dataset.X, expected_transformed_X) @@ -32,7 +32,7 @@ def test_sklearn_transformer_wrapper(): # Test with PowerTransformer on y power_transformer = PowerTransformer() - transformer = trans.SklearnTransformerWrapper(dataset, power_transformer, transform_y=True) + transformer = trans.SklearnPipelineWrapper(dataset, power_transformer, transform_y=True) transformed_dataset = transformer.transform(dataset) expected_transformed_y = power_transformer.fit_transform(y) np.testing.assert_array_almost_equal(transformed_dataset.y, expected_transformed_y) @@ -42,7 +42,7 @@ def test_sklearn_transformer_wrapper(): np.testing.assert_array_almost_equal(untransformed_y, y) # Test with RobustScaler on w - transformer = trans.SklearnTransformerWrapper(dataset, scaler, transform_w=True) + transformer = trans.SklearnPipelineWrapper(dataset, scaler, transform_w=True) transformed_dataset = transformer.transform(dataset) expected_transformed_w = scaler.fit_transform(w) np.testing.assert_array_almost_equal(transformed_dataset.w, expected_transformed_w) From 2969378bb425e879bf9bec6d674daf4adeff856b Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Thu, 3 Apr 2025 16:28:23 -0700 Subject: [PATCH 21/23] Updated rdkit_scaled and mordred_filtered_scaled. Added option to have log scale features --- .../descriptor_sets_sources_by_descr_type.csv | 4 ++-- atomsci/ddm/pipeline/featurization.py | 21 ++++++++++++++++--- .../delaney_Panel/test_delaney_panel.py | 2 +- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv b/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv index 9548604a..825930b1 100644 --- a/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv +++ b/atomsci/ddm/data/descriptor_sets_sources_by_descr_type.csv @@ -9,5 +9,5 @@ moe_informative,ASA+;ASA-;ASA_H;ASA_P;ASA;BCUT_PEOE_0;BCUT_PEOE_1;BCUT_PEOE_2;BC mordred_raw,ABC;ABCGG;nAcid;nBase;SpAbs_A;SpMax_A;SpDiam_A;SpAD_A;SpMAD_A;LogEE_A;VE1_A;VE2_A;VE3_A;VR1_A;VR2_A;VR3_A;nAromAtom;nAromBond;nAtom;nHeavyAtom;nSpiro;nBridgehead;nHetero;nH;nB;nC;nN;nO;nS;nP;nF;nCl;nBr;nI;nX;ATS0dv;ATS1dv;ATS2dv;ATS3dv;ATS4dv;ATS5dv;ATS6dv;ATS7dv;ATS8dv;ATS0d;ATS1d;ATS2d;ATS3d;ATS4d;ATS5d;ATS6d;ATS7d;ATS8d;ATS0s;ATS1s;ATS2s;ATS3s;ATS4s;ATS5s;ATS6s;ATS7s;ATS8s;ATS0Z;ATS1Z;ATS2Z;ATS3Z;ATS4Z;ATS5Z;ATS6Z;ATS7Z;ATS8Z;ATS0m;ATS1m;ATS2m;ATS3m;ATS4m;ATS5m;ATS6m;ATS7m;ATS8m;ATS0v;ATS1v;ATS2v;ATS3v;ATS4v;ATS5v;ATS6v;ATS7v;ATS8v;ATS0se;ATS1se;ATS2se;ATS3se;ATS4se;ATS5se;ATS6se;ATS7se;ATS8se;ATS0pe;ATS1pe;ATS2pe;ATS3pe;ATS4pe;ATS5pe;ATS6pe;ATS7pe;ATS8pe;ATS0are;ATS1are;ATS2are;ATS3are;ATS4are;ATS5are;ATS6are;ATS7are;ATS8are;ATS0p;ATS1p;ATS2p;ATS3p;ATS4p;ATS5p;ATS6p;ATS7p;ATS8p;ATS0i;ATS1i;ATS2i;ATS3i;ATS4i;ATS5i;ATS6i;ATS7i;ATS8i;AATS0dv;AATS1dv;AATS2dv;AATS3dv;AATS4dv;AATS5dv;AATS6dv;AATS7dv;AATS8dv;AATS0d;AATS1d;AATS2d;AATS3d;AATS4d;AATS5d;AATS6d;AATS7d;AATS8d;AATS0s;AATS1s;AATS2s;AATS3s;AATS4s;AATS5s;AATS6s;AATS7s;AATS8s;AATS0Z;AATS1Z;AATS2Z;AATS3Z;AATS4Z;AATS5Z;AATS6Z;AATS7Z;AATS8Z;AATS0m;AATS1m;AATS2m;AATS3m;AATS4m;AATS5m;AATS6m;AATS7m;AATS8m;AATS0v;AATS1v;AATS2v;AATS3v;AATS4v;AATS5v;AATS6v;AATS7v;AATS8v;AATS0se;AATS1se;AATS2se;AATS3se;AATS4se;AATS5se;AATS6se;AATS7se;AATS8se;AATS0pe;AATS1pe;AATS2pe;AATS3pe;AATS4pe;AATS5pe;AATS6pe;AATS7pe;AATS8pe;AATS0are;AATS1are;AATS2are;AATS3are;AATS4are;AATS5are;AATS6are;AATS7are;AATS8are;AATS0p;AATS1p;AATS2p;AATS3p;AATS4p;AATS5p;AATS6p;AATS7p;AATS8p;AATS0i;AATS1i;AATS2i;AATS3i;AATS4i;AATS5i;AATS6i;AATS7i;AATS8i;ATSC0c;ATSC1c;ATSC2c;ATSC3c;ATSC4c;ATSC5c;ATSC6c;ATSC7c;ATSC8c;ATSC0dv;ATSC1dv;ATSC2dv;ATSC3dv;ATSC4dv;ATSC5dv;ATSC6dv;ATSC7dv;ATSC8dv;ATSC0d;ATSC1d;ATSC2d;ATSC3d;ATSC4d;ATSC5d;ATSC6d;ATSC7d;ATSC8d;ATSC0s;ATSC1s;ATSC2s;ATSC3s;ATSC4s;ATSC5s;ATSC6s;ATSC7s;ATSC8s;ATSC0Z;ATSC1Z;ATSC2Z;ATSC3Z;ATSC4Z;ATSC5Z;ATSC6Z;ATSC7Z;ATSC8Z;ATSC0m;ATSC1m;ATSC2m;ATSC3m;ATSC4m;ATSC5m;ATSC6m;ATSC7m;ATSC8m;ATSC0v;ATSC1v;ATSC2v;ATSC3v;ATSC4v;ATSC5v;ATSC6v;ATSC7v;ATSC8v;ATSC0se;ATSC1se;ATSC2se;ATSC3se;ATSC4se;ATSC5se;ATSC6se;ATSC7se;ATSC8se;ATSC0pe;ATSC1pe;ATSC2pe;ATSC3pe;ATSC4pe;ATSC5pe;ATSC6pe;ATSC7pe;ATSC8pe;ATSC0are;ATSC1are;ATSC2are;ATSC3are;ATSC4are;ATSC5are;ATSC6are;ATSC7are;ATSC8are;ATSC0p;ATSC1p;ATSC2p;ATSC3p;ATSC4p;ATSC5p;ATSC6p;ATSC7p;ATSC8p;ATSC0i;ATSC1i;ATSC2i;ATSC3i;ATSC4i;ATSC5i;ATSC6i;ATSC7i;ATSC8i;AATSC0c;AATSC1c;AATSC2c;AATSC3c;AATSC4c;AATSC5c;AATSC6c;AATSC7c;AATSC8c;AATSC0dv;AATSC1dv;AATSC2dv;AATSC3dv;AATSC4dv;AATSC5dv;AATSC6dv;AATSC7dv;AATSC8dv;AATSC0d;AATSC1d;AATSC2d;AATSC3d;AATSC4d;AATSC5d;AATSC6d;AATSC7d;AATSC8d;AATSC0s;AATSC1s;AATSC2s;AATSC3s;AATSC4s;AATSC5s;AATSC6s;AATSC7s;AATSC8s;AATSC0Z;AATSC1Z;AATSC2Z;AATSC3Z;AATSC4Z;AATSC5Z;AATSC6Z;AATSC7Z;AATSC8Z;AATSC0m;AATSC1m;AATSC2m;AATSC3m;AATSC4m;AATSC5m;AATSC6m;AATSC7m;AATSC8m;AATSC0v;AATSC1v;AATSC2v;AATSC3v;AATSC4v;AATSC5v;AATSC6v;AATSC7v;AATSC8v;AATSC0se;AATSC1se;AATSC2se;AATSC3se;AATSC4se;AATSC5se;AATSC6se;AATSC7se;AATSC8se;AATSC0pe;AATSC1pe;AATSC2pe;AATSC3pe;AATSC4pe;AATSC5pe;AATSC6pe;AATSC7pe;AATSC8pe;AATSC0are;AATSC1are;AATSC2are;AATSC3are;AATSC4are;AATSC5are;AATSC6are;AATSC7are;AATSC8are;AATSC0p;AATSC1p;AATSC2p;AATSC3p;AATSC4p;AATSC5p;AATSC6p;AATSC7p;AATSC8p;AATSC0i;AATSC1i;AATSC2i;AATSC3i;AATSC4i;AATSC5i;AATSC6i;AATSC7i;AATSC8i;MATS1c;MATS2c;MATS3c;MATS4c;MATS5c;MATS6c;MATS7c;MATS8c;MATS1dv;MATS2dv;MATS3dv;MATS4dv;MATS5dv;MATS6dv;MATS7dv;MATS8dv;MATS1d;MATS2d;MATS3d;MATS4d;MATS5d;MATS6d;MATS7d;MATS8d;MATS1s;MATS2s;MATS3s;MATS4s;MATS5s;MATS6s;MATS7s;MATS8s;MATS1Z;MATS2Z;MATS3Z;MATS4Z;MATS5Z;MATS6Z;MATS7Z;MATS8Z;MATS1m;MATS2m;MATS3m;MATS4m;MATS5m;MATS6m;MATS7m;MATS8m;MATS1v;MATS2v;MATS3v;MATS4v;MATS5v;MATS6v;MATS7v;MATS8v;MATS1se;MATS2se;MATS3se;MATS4se;MATS5se;MATS6se;MATS7se;MATS8se;MATS1pe;MATS2pe;MATS3pe;MATS4pe;MATS5pe;MATS6pe;MATS7pe;MATS8pe;MATS1are;MATS2are;MATS3are;MATS4are;MATS5are;MATS6are;MATS7are;MATS8are;MATS1p;MATS2p;MATS3p;MATS4p;MATS5p;MATS6p;MATS7p;MATS8p;MATS1i;MATS2i;MATS3i;MATS4i;MATS5i;MATS6i;MATS7i;MATS8i;GATS1c;GATS2c;GATS3c;GATS4c;GATS5c;GATS6c;GATS7c;GATS8c;GATS1dv;GATS2dv;GATS3dv;GATS4dv;GATS5dv;GATS6dv;GATS7dv;GATS8dv;GATS1d;GATS2d;GATS3d;GATS4d;GATS5d;GATS6d;GATS7d;GATS8d;GATS1s;GATS2s;GATS3s;GATS4s;GATS5s;GATS6s;GATS7s;GATS8s;GATS1Z;GATS2Z;GATS3Z;GATS4Z;GATS5Z;GATS6Z;GATS7Z;GATS8Z;GATS1m;GATS2m;GATS3m;GATS4m;GATS5m;GATS6m;GATS7m;GATS8m;GATS1v;GATS2v;GATS3v;GATS4v;GATS5v;GATS6v;GATS7v;GATS8v;GATS1se;GATS2se;GATS3se;GATS4se;GATS5se;GATS6se;GATS7se;GATS8se;GATS1pe;GATS2pe;GATS3pe;GATS4pe;GATS5pe;GATS6pe;GATS7pe;GATS8pe;GATS1are;GATS2are;GATS3are;GATS4are;GATS5are;GATS6are;GATS7are;GATS8are;GATS1p;GATS2p;GATS3p;GATS4p;GATS5p;GATS6p;GATS7p;GATS8p;GATS1i;GATS2i;GATS3i;GATS4i;GATS5i;GATS6i;GATS7i;GATS8i;BCUTc-1h;BCUTc-1l;BCUTdv-1h;BCUTdv-1l;BCUTd-1h;BCUTd-1l;BCUTs-1h;BCUTs-1l;BCUTZ-1h;BCUTZ-1l;BCUTm-1h;BCUTm-1l;BCUTv-1h;BCUTv-1l;BCUTse-1h;BCUTse-1l;BCUTpe-1h;BCUTpe-1l;BCUTare-1h;BCUTare-1l;BCUTp-1h;BCUTp-1l;BCUTi-1h;BCUTi-1l;BalabanJ;SpAbs_DzZ;SpMax_DzZ;SpDiam_DzZ;SpAD_DzZ;SpMAD_DzZ;LogEE_DzZ;SM1_DzZ;VE1_DzZ;VE2_DzZ;VE3_DzZ;VR1_DzZ;VR2_DzZ;VR3_DzZ;SpAbs_Dzm;SpMax_Dzm;SpDiam_Dzm;SpAD_Dzm;SpMAD_Dzm;LogEE_Dzm;SM1_Dzm;VE1_Dzm;VE2_Dzm;VE3_Dzm;VR1_Dzm;VR2_Dzm;VR3_Dzm;SpAbs_Dzv;SpMax_Dzv;SpDiam_Dzv;SpAD_Dzv;SpMAD_Dzv;LogEE_Dzv;SM1_Dzv;VE1_Dzv;VE2_Dzv;VE3_Dzv;VR1_Dzv;VR2_Dzv;VR3_Dzv;SpAbs_Dzse;SpMax_Dzse;SpDiam_Dzse;SpAD_Dzse;SpMAD_Dzse;LogEE_Dzse;SM1_Dzse;VE1_Dzse;VE2_Dzse;VE3_Dzse;VR1_Dzse;VR2_Dzse;VR3_Dzse;SpAbs_Dzpe;SpMax_Dzpe;SpDiam_Dzpe;SpAD_Dzpe;SpMAD_Dzpe;LogEE_Dzpe;SM1_Dzpe;VE1_Dzpe;VE2_Dzpe;VE3_Dzpe;VR1_Dzpe;VR2_Dzpe;VR3_Dzpe;SpAbs_Dzare;SpMax_Dzare;SpDiam_Dzare;SpAD_Dzare;SpMAD_Dzare;LogEE_Dzare;SM1_Dzare;VE1_Dzare;VE2_Dzare;VE3_Dzare;VR1_Dzare;VR2_Dzare;VR3_Dzare;SpAbs_Dzp;SpMax_Dzp;SpDiam_Dzp;SpAD_Dzp;SpMAD_Dzp;LogEE_Dzp;SM1_Dzp;VE1_Dzp;VE2_Dzp;VE3_Dzp;VR1_Dzp;VR2_Dzp;VR3_Dzp;SpAbs_Dzi;SpMax_Dzi;SpDiam_Dzi;SpAD_Dzi;SpMAD_Dzi;LogEE_Dzi;SM1_Dzi;VE1_Dzi;VE2_Dzi;VE3_Dzi;VR1_Dzi;VR2_Dzi;VR3_Dzi;BertzCT;nBonds;nBondsO;nBondsS;nBondsD;nBondsT;nBondsA;nBondsM;nBondsKS;nBondsKD;RNCG;RPCG;C1SP1;C2SP1;C1SP2;C2SP2;C3SP2;C1SP3;C2SP3;C3SP3;C4SP3;HybRatio;FCSP3;Xch-3d;Xch-4d;Xch-5d;Xch-6d;Xch-7d;Xch-3dv;Xch-4dv;Xch-5dv;Xch-6dv;Xch-7dv;Xc-3d;Xc-4d;Xc-5d;Xc-6d;Xc-3dv;Xc-4dv;Xc-5dv;Xc-6dv;Xpc-4d;Xpc-5d;Xpc-6d;Xpc-4dv;Xpc-5dv;Xpc-6dv;Xp-0d;Xp-1d;Xp-2d;Xp-3d;Xp-4d;Xp-5d;Xp-6d;Xp-7d;AXp-0d;AXp-1d;AXp-2d;AXp-3d;AXp-4d;AXp-5d;AXp-6d;AXp-7d;Xp-0dv;Xp-1dv;Xp-2dv;Xp-3dv;Xp-4dv;Xp-5dv;Xp-6dv;Xp-7dv;AXp-0dv;AXp-1dv;AXp-2dv;AXp-3dv;AXp-4dv;AXp-5dv;AXp-6dv;AXp-7dv;SZ;Sm;Sv;Sse;Spe;Sare;Sp;Si;MZ;Mm;Mv;Mse;Mpe;Mare;Mp;Mi;SpAbs_Dt;SpMax_Dt;SpDiam_Dt;SpAD_Dt;SpMAD_Dt;LogEE_Dt;SM1_Dt;VE1_Dt;VE2_Dt;VE3_Dt;VR1_Dt;VR2_Dt;VR3_Dt;DetourIndex;SpAbs_D;SpMax_D;SpDiam_D;SpAD_D;SpMAD_D;LogEE_D;VE1_D;VE2_D;VE3_D;VR1_D;VR2_D;VR3_D;NsLi;NssBe;NssssBe;NssBH;NsssB;NssssB;NsCH3;NdCH2;NssCH2;NtCH;NdsCH;NaaCH;NsssCH;NddC;NtsC;NdssC;NaasC;NaaaC;NssssC;NsNH3;NsNH2;NssNH2;NdNH;NssNH;NaaNH;NtN;NsssNH;NdsN;NaaN;NsssN;NddsN;NaasN;NssssN;NsOH;NdO;NssO;NaaO;NsF;NsSiH3;NssSiH2;NsssSiH;NssssSi;NsPH2;NssPH;NsssP;NdsssP;NsssssP;NsSH;NdS;NssS;NaaS;NdssS;NddssS;NsCl;NsGeH3;NssGeH2;NsssGeH;NssssGe;NsAsH2;NssAsH;NsssAs;NsssdAs;NsssssAs;NsSeH;NdSe;NssSe;NaaSe;NdssSe;NddssSe;NsBr;NsSnH3;NssSnH2;NsssSnH;NssssSn;NsI;NsPbH3;NssPbH2;NsssPbH;NssssPb;SsLi;SssBe;SssssBe;SssBH;SsssB;SssssB;SsCH3;SdCH2;SssCH2;StCH;SdsCH;SaaCH;SsssCH;SddC;StsC;SdssC;SaasC;SaaaC;SssssC;SsNH3;SsNH2;SssNH2;SdNH;SssNH;SaaNH;StN;SsssNH;SdsN;SaaN;SsssN;SddsN;SaasN;SssssN;SsOH;SdO;SssO;SaaO;SsF;SsSiH3;SssSiH2;SsssSiH;SssssSi;SsPH2;SssPH;SsssP;SdsssP;SsssssP;SsSH;SdS;SssS;SaaS;SdssS;SddssS;SsCl;SsGeH3;SssGeH2;SsssGeH;SssssGe;SsAsH2;SssAsH;SsssAs;SsssdAs;SsssssAs;SsSeH;SdSe;SssSe;SaaSe;SdssSe;SddssSe;SsBr;SsSnH3;SssSnH2;SsssSnH;SssssSn;SsI;SsPbH3;SssPbH2;SsssPbH;SssssPb;MAXsLi;MAXssBe;MAXssssBe;MAXssBH;MAXsssB;MAXssssB;MAXsCH3;MAXdCH2;MAXssCH2;MAXtCH;MAXdsCH;MAXaaCH;MAXsssCH;MAXddC;MAXtsC;MAXdssC;MAXaasC;MAXaaaC;MAXssssC;MAXsNH3;MAXsNH2;MAXssNH2;MAXdNH;MAXssNH;MAXaaNH;MAXtN;MAXsssNH;MAXdsN;MAXaaN;MAXsssN;MAXddsN;MAXaasN;MAXssssN;MAXsOH;MAXdO;MAXssO;MAXaaO;MAXsF;MAXsSiH3;MAXssSiH2;MAXsssSiH;MAXssssSi;MAXsPH2;MAXssPH;MAXsssP;MAXdsssP;MAXsssssP;MAXsSH;MAXdS;MAXssS;MAXaaS;MAXdssS;MAXddssS;MAXsCl;MAXsGeH3;MAXssGeH2;MAXsssGeH;MAXssssGe;MAXsAsH2;MAXssAsH;MAXsssAs;MAXsssdAs;MAXsssssAs;MAXsSeH;MAXdSe;MAXssSe;MAXaaSe;MAXdssSe;MAXddssSe;MAXsBr;MAXsSnH3;MAXssSnH2;MAXsssSnH;MAXssssSn;MAXsI;MAXsPbH3;MAXssPbH2;MAXsssPbH;MAXssssPb;MINsLi;MINssBe;MINssssBe;MINssBH;MINsssB;MINssssB;MINsCH3;MINdCH2;MINssCH2;MINtCH;MINdsCH;MINaaCH;MINsssCH;MINddC;MINtsC;MINdssC;MINaasC;MINaaaC;MINssssC;MINsNH3;MINsNH2;MINssNH2;MINdNH;MINssNH;MINaaNH;MINtN;MINsssNH;MINdsN;MINaaN;MINsssN;MINddsN;MINaasN;MINssssN;MINsOH;MINdO;MINssO;MINaaO;MINsF;MINsSiH3;MINssSiH2;MINsssSiH;MINssssSi;MINsPH2;MINssPH;MINsssP;MINdsssP;MINsssssP;MINsSH;MINdS;MINssS;MINaaS;MINdssS;MINddssS;MINsCl;MINsGeH3;MINssGeH2;MINsssGeH;MINssssGe;MINsAsH2;MINssAsH;MINsssAs;MINsssdAs;MINsssssAs;MINsSeH;MINdSe;MINssSe;MINaaSe;MINdssSe;MINddssSe;MINsBr;MINsSnH3;MINssSnH2;MINsssSnH;MINssssSn;MINsI;MINsPbH3;MINssPbH2;MINsssPbH;MINssssPb;ECIndex;ETA_alpha;AETA_alpha;ETA_shape_p;ETA_shape_y;ETA_shape_x;ETA_beta;AETA_beta;ETA_beta_s;AETA_beta_s;ETA_beta_ns;AETA_beta_ns;ETA_beta_ns_d;AETA_beta_ns_d;ETA_eta;AETA_eta;ETA_eta_L;AETA_eta_L;ETA_eta_R;AETA_eta_R;ETA_eta_RL;AETA_eta_RL;ETA_eta_F;AETA_eta_F;ETA_eta_FL;AETA_eta_FL;ETA_eta_B;AETA_eta_B;ETA_eta_BR;AETA_eta_BR;ETA_dAlpha_A;ETA_dAlpha_B;ETA_epsilon_1;ETA_epsilon_2;ETA_epsilon_3;ETA_epsilon_4;ETA_epsilon_5;ETA_dEpsilon_A;ETA_dEpsilon_B;ETA_dEpsilon_C;ETA_dEpsilon_D;ETA_dBeta;AETA_dBeta;ETA_psi_1;ETA_dPsi_A;ETA_dPsi_B;fragCpx;fMF;nHBAcc;nHBDon;IC0;IC1;IC2;IC3;IC4;IC5;TIC0;TIC1;TIC2;TIC3;TIC4;TIC5;SIC0;SIC1;SIC2;SIC3;SIC4;SIC5;BIC0;BIC1;BIC2;BIC3;BIC4;BIC5;CIC0;CIC1;CIC2;CIC3;CIC4;CIC5;MIC0;MIC1;MIC2;MIC3;MIC4;MIC5;ZMIC0;ZMIC1;ZMIC2;ZMIC3;ZMIC4;ZMIC5;Kier1;Kier2;Kier3;Lipinski;GhoseFilter;FilterItLogS;VMcGowan;LabuteASA;PEOE_VSA1;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;SMR_VSA1;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;SlogP_VSA10;SlogP_VSA11;EState_VSA1;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;EState_VSA10;VSA_EState1;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;MDEC-11;MDEC-12;MDEC-13;MDEC-14;MDEC-22;MDEC-23;MDEC-24;MDEC-33;MDEC-34;MDEC-44;MDEO-11;MDEO-12;MDEO-22;MDEN-11;MDEN-12;MDEN-13;MDEN-22;MDEN-23;MDEN-33;MID;AMID;MID_h;AMID_h;MID_C;AMID_C;MID_N;AMID_N;MID_O;AMID_O;MID_X;AMID_X;MPC2;MPC3;MPC4;MPC5;MPC6;MPC7;MPC8;MPC9;MPC10;TMPC10;piPC1;piPC2;piPC3;piPC4;piPC5;piPC6;piPC7;piPC8;piPC9;piPC10;TpiPC10;apol;bpol;nRing;n3Ring;n4Ring;n5Ring;n6Ring;n7Ring;n8Ring;n9Ring;n10Ring;n11Ring;n12Ring;nG12Ring;nHRing;n3HRing;n4HRing;n5HRing;n6HRing;n7HRing;n8HRing;n9HRing;n10HRing;n11HRing;n12HRing;nG12HRing;naRing;n3aRing;n4aRing;n5aRing;n6aRing;n7aRing;n8aRing;n9aRing;n10aRing;n11aRing;n12aRing;nG12aRing;naHRing;n3aHRing;n4aHRing;n5aHRing;n6aHRing;n7aHRing;n8aHRing;n9aHRing;n10aHRing;n11aHRing;n12aHRing;nG12aHRing;nARing;n3ARing;n4ARing;n5ARing;n6ARing;n7ARing;n8ARing;n9ARing;n10ARing;n11ARing;n12ARing;nG12ARing;nAHRing;n3AHRing;n4AHRing;n5AHRing;n6AHRing;n7AHRing;n8AHRing;n9AHRing;n10AHRing;n11AHRing;n12AHRing;nG12AHRing;nFRing;n4FRing;n5FRing;n6FRing;n7FRing;n8FRing;n9FRing;n10FRing;n11FRing;n12FRing;nG12FRing;nFHRing;n4FHRing;n5FHRing;n6FHRing;n7FHRing;n8FHRing;n9FHRing;n10FHRing;n11FHRing;n12FHRing;nG12FHRing;nFaRing;n4FaRing;n5FaRing;n6FaRing;n7FaRing;n8FaRing;n9FaRing;n10FaRing;n11FaRing;n12FaRing;nG12FaRing;nFaHRing;n4FaHRing;n5FaHRing;n6FaHRing;n7FaHRing;n8FaHRing;n9FaHRing;n10FaHRing;n11FaHRing;n12FaHRing;nG12FaHRing;nFARing;n4FARing;n5FARing;n6FARing;n7FARing;n8FARing;n9FARing;n10FARing;n11FARing;n12FARing;nG12FARing;nFAHRing;n4FAHRing;n5FAHRing;n6FAHRing;n7FAHRing;n8FAHRing;n9FAHRing;n10FAHRing;n11FAHRing;n12FAHRing;nG12FAHRing;nRot;RotRatio;SLogP;SMR;TopoPSA(NO);TopoPSA;GGI1;GGI2;GGI3;GGI4;GGI5;GGI6;GGI7;GGI8;GGI9;GGI10;JGI1;JGI2;JGI3;JGI4;JGI5;JGI6;JGI7;JGI8;JGI9;JGI10;JGT10;Diameter;Radius;TopoShapeIndex;PetitjeanIndex;Vabc;VAdjMat;MWC01;MWC02;MWC03;MWC04;MWC05;MWC06;MWC07;MWC08;MWC09;MWC10;TMWC10;SRW02;SRW03;SRW04;SRW05;SRW06;SRW07;SRW08;SRW09;SRW10;TSRW10;MW;AMW;WPath;WPol;Zagreb1;Zagreb2;mZagreb1;mZagreb2,0,mordred mordred_filtered,AATS0Z;AATS0are;AATS0d;AATS0dv;AATS0i;AATS0m;AATS0p;AATS0pe;AATS0s;AATS0se;AATS0v;AATS1Z;AATS1are;AATS1d;AATS1dv;AATS1i;AATS1m;AATS1p;AATS1pe;AATS1s;AATS1se;AATS1v;AATS2Z;AATS2are;AATS2d;AATS2dv;AATS2i;AATS2m;AATS2p;AATS2pe;AATS2s;AATS2se;AATS2v;AATS3Z;AATS3are;AATS3d;AATS3dv;AATS3i;AATS3m;AATS3p;AATS3pe;AATS3s;AATS3se;AATS3v;AATS4Z;AATS4are;AATS4d;AATS4dv;AATS4i;AATS4m;AATS4p;AATS4pe;AATS4s;AATS4se;AATS4v;AATS5Z;AATS5are;AATS5d;AATS5dv;AATS5i;AATS5m;AATS5p;AATS5pe;AATS5s;AATS5se;AATS5v;AATS6Z;AATS6are;AATS6d;AATS6dv;AATS6i;AATS6m;AATS6p;AATS6pe;AATS6s;AATS6se;AATS6v;AATS7Z;AATS7are;AATS7d;AATS7dv;AATS7i;AATS7m;AATS7p;AATS7pe;AATS7s;AATS7se;AATS7v;AATS8Z;AATS8are;AATS8d;AATS8dv;AATS8i;AATS8m;AATS8p;AATS8pe;AATS8s;AATS8se;AATS8v;AATSC0Z;AATSC0are;AATSC0c;AATSC0d;AATSC0dv;AATSC0i;AATSC0m;AATSC0p;AATSC0pe;AATSC0s;AATSC0se;AATSC0v;AATSC1Z;AATSC1are;AATSC1c;AATSC1d;AATSC1dv;AATSC1i;AATSC1m;AATSC1p;AATSC1pe;AATSC1s;AATSC1se;AATSC1v;AATSC2Z;AATSC2are;AATSC2c;AATSC2d;AATSC2dv;AATSC2i;AATSC2m;AATSC2p;AATSC2pe;AATSC2s;AATSC2se;AATSC2v;AATSC3Z;AATSC3are;AATSC3c;AATSC3d;AATSC3dv;AATSC3i;AATSC3m;AATSC3p;AATSC3pe;AATSC3s;AATSC3se;AATSC3v;AATSC4Z;AATSC4are;AATSC4c;AATSC4d;AATSC4dv;AATSC4i;AATSC4m;AATSC4p;AATSC4pe;AATSC4s;AATSC4se;AATSC4v;AATSC5Z;AATSC5are;AATSC5c;AATSC5d;AATSC5dv;AATSC5i;AATSC5m;AATSC5p;AATSC5pe;AATSC5s;AATSC5se;AATSC5v;AATSC6Z;AATSC6are;AATSC6c;AATSC6d;AATSC6dv;AATSC6i;AATSC6m;AATSC6p;AATSC6pe;AATSC6s;AATSC6se;AATSC6v;AATSC7Z;AATSC7are;AATSC7c;AATSC7d;AATSC7dv;AATSC7i;AATSC7m;AATSC7p;AATSC7pe;AATSC7s;AATSC7se;AATSC7v;AATSC8Z;AATSC8are;AATSC8c;AATSC8d;AATSC8dv;AATSC8i;AATSC8m;AATSC8p;AATSC8pe;AATSC8s;AATSC8se;AATSC8v;ABC;ABCGG;AETA_alpha;AETA_beta;AETA_beta_ns;AETA_beta_ns_d;AETA_beta_s;AETA_dBeta;AETA_eta;AETA_eta_B;AETA_eta_BR;AETA_eta_F;AETA_eta_FL;AETA_eta_L;AETA_eta_R;AETA_eta_RL;AMID;AMID_C;AMID_N;AMID_O;AMID_X;AMID_h;AMW;ATS0Z;ATS0are;ATS0d;ATS0dv;ATS0i;ATS0m;ATS0p;ATS0pe;ATS0s;ATS0se;ATS0v;ATS1Z;ATS1are;ATS1d;ATS1dv;ATS1i;ATS1m;ATS1p;ATS1pe;ATS1s;ATS1se;ATS1v;ATS2Z;ATS2are;ATS2d;ATS2dv;ATS2i;ATS2m;ATS2p;ATS2pe;ATS2s;ATS2se;ATS2v;ATS3Z;ATS3are;ATS3d;ATS3dv;ATS3i;ATS3m;ATS3p;ATS3pe;ATS3s;ATS3se;ATS3v;ATS4Z;ATS4are;ATS4d;ATS4dv;ATS4i;ATS4m;ATS4p;ATS4pe;ATS4s;ATS4se;ATS4v;ATS5Z;ATS5are;ATS5d;ATS5dv;ATS5i;ATS5m;ATS5p;ATS5pe;ATS5s;ATS5se;ATS5v;ATS6Z;ATS6are;ATS6d;ATS6dv;ATS6i;ATS6m;ATS6p;ATS6pe;ATS6s;ATS6se;ATS6v;ATS7Z;ATS7are;ATS7d;ATS7dv;ATS7i;ATS7m;ATS7p;ATS7pe;ATS7s;ATS7se;ATS7v;ATS8Z;ATS8are;ATS8d;ATS8dv;ATS8i;ATS8m;ATS8p;ATS8pe;ATS8s;ATS8se;ATS8v;ATSC0Z;ATSC0are;ATSC0c;ATSC0d;ATSC0dv;ATSC0i;ATSC0m;ATSC0p;ATSC0pe;ATSC0s;ATSC0se;ATSC0v;ATSC1Z;ATSC1are;ATSC1c;ATSC1d;ATSC1dv;ATSC1i;ATSC1m;ATSC1p;ATSC1pe;ATSC1s;ATSC1se;ATSC1v;ATSC2Z;ATSC2are;ATSC2c;ATSC2d;ATSC2dv;ATSC2i;ATSC2m;ATSC2p;ATSC2pe;ATSC2s;ATSC2se;ATSC2v;ATSC3Z;ATSC3are;ATSC3c;ATSC3d;ATSC3dv;ATSC3i;ATSC3m;ATSC3p;ATSC3pe;ATSC3s;ATSC3se;ATSC3v;ATSC4Z;ATSC4are;ATSC4c;ATSC4d;ATSC4dv;ATSC4i;ATSC4m;ATSC4p;ATSC4pe;ATSC4s;ATSC4se;ATSC4v;ATSC5Z;ATSC5are;ATSC5c;ATSC5d;ATSC5dv;ATSC5i;ATSC5m;ATSC5p;ATSC5pe;ATSC5s;ATSC5se;ATSC5v;ATSC6Z;ATSC6are;ATSC6c;ATSC6d;ATSC6dv;ATSC6i;ATSC6m;ATSC6p;ATSC6pe;ATSC6s;ATSC6se;ATSC6v;ATSC7Z;ATSC7are;ATSC7c;ATSC7d;ATSC7dv;ATSC7i;ATSC7m;ATSC7p;ATSC7pe;ATSC7s;ATSC7se;ATSC7v;ATSC8Z;ATSC8are;ATSC8c;ATSC8d;ATSC8dv;ATSC8i;ATSC8m;ATSC8p;ATSC8pe;ATSC8s;ATSC8se;ATSC8v;AXp-0d;AXp-0dv;AXp-1d;AXp-1dv;AXp-2d;AXp-2dv;AXp-3d;AXp-3dv;AXp-4d;AXp-4dv;AXp-5d;AXp-5dv;AXp-6d;AXp-6dv;AXp-7d;AXp-7dv;BCUTZ-1h;BCUTZ-1l;BCUTare-1h;BCUTare-1l;BCUTc-1h;BCUTc-1l;BCUTd-1h;BCUTd-1l;BCUTdv-1h;BCUTdv-1l;BCUTi-1h;BCUTi-1l;BCUTm-1h;BCUTm-1l;BCUTp-1h;BCUTp-1l;BCUTpe-1h;BCUTpe-1l;BCUTs-1h;BCUTs-1l;BCUTse-1h;BCUTse-1l;BCUTv-1h;BCUTv-1l;BIC0;BIC1;BIC2;BIC3;BIC4;BIC5;BalabanJ;BertzCT;C1SP1;C1SP2;C1SP3;C2SP1;C2SP2;C2SP3;C3SP2;C3SP3;C4SP3;CIC0;CIC1;CIC2;CIC3;CIC4;CIC5;DPSA1;DPSA2;DPSA3;DPSA4;DPSA5;DetourIndex;Diameter;ECIndex;EState_VSA1;EState_VSA10;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;ETA_alpha;ETA_beta;ETA_beta_ns;ETA_beta_ns_d;ETA_beta_s;ETA_dAlpha_A;ETA_dAlpha_B;ETA_dBeta;ETA_dEpsilon_A;ETA_dEpsilon_B;ETA_dEpsilon_C;ETA_dEpsilon_D;ETA_dPsi_A;ETA_dPsi_B;ETA_epsilon_1;ETA_epsilon_2;ETA_epsilon_3;ETA_epsilon_4;ETA_epsilon_5;ETA_eta;ETA_eta_B;ETA_eta_BR;ETA_eta_F;ETA_eta_FL;ETA_eta_L;ETA_eta_R;ETA_eta_RL;ETA_psi_1;ETA_shape_p;ETA_shape_x;ETA_shape_y;FCSP3;FNSA1;FNSA2;FNSA3;FNSA4;FNSA5;FPSA1;FPSA2;FPSA3;FPSA4;FPSA5;FilterItLogS;GATS1Z;GATS1are;GATS1c;GATS1d;GATS1dv;GATS1i;GATS1m;GATS1p;GATS1pe;GATS1s;GATS1se;GATS1v;GATS2Z;GATS2are;GATS2c;GATS2d;GATS2dv;GATS2i;GATS2m;GATS2p;GATS2pe;GATS2s;GATS2se;GATS2v;GATS3Z;GATS3are;GATS3c;GATS3d;GATS3dv;GATS3i;GATS3m;GATS3p;GATS3pe;GATS3s;GATS3se;GATS3v;GATS4Z;GATS4are;GATS4c;GATS4d;GATS4dv;GATS4i;GATS4m;GATS4p;GATS4pe;GATS4s;GATS4se;GATS4v;GATS5Z;GATS5are;GATS5c;GATS5d;GATS5dv;GATS5i;GATS5m;GATS5p;GATS5pe;GATS5s;GATS5se;GATS5v;GATS6Z;GATS6are;GATS6c;GATS6d;GATS6dv;GATS6i;GATS6m;GATS6p;GATS6pe;GATS6s;GATS6se;GATS6v;GATS7Z;GATS7are;GATS7c;GATS7d;GATS7dv;GATS7i;GATS7m;GATS7p;GATS7pe;GATS7s;GATS7se;GATS7v;GATS8Z;GATS8are;GATS8c;GATS8d;GATS8dv;GATS8i;GATS8m;GATS8p;GATS8pe;GATS8s;GATS8se;GATS8v;GGI1;GGI10;GGI2;GGI3;GGI4;GGI5;GGI6;GGI7;GGI8;GGI9;GRAV;GRAVH;GRAVHp;GRAVp;GeomDiameter;GeomPetitjeanIndex;GeomRadius;GeomShapeIndex;GhoseFilter;HybRatio;IC0;IC1;IC2;IC3;IC4;IC5;JGI1;JGI10;JGI2;JGI3;JGI4;JGI5;JGI6;JGI7;JGI8;JGI9;JGT10;Kier1;Kier2;Kier3;LabuteASA;Lipinski;LogEE_A;LogEE_D;LogEE_Dt;LogEE_DzZ;LogEE_Dzare;LogEE_Dzi;LogEE_Dzm;LogEE_Dzp;LogEE_Dzpe;LogEE_Dzse;LogEE_Dzv;MATS1Z;MATS1are;MATS1c;MATS1d;MATS1dv;MATS1i;MATS1m;MATS1p;MATS1pe;MATS1s;MATS1se;MATS1v;MATS2Z;MATS2are;MATS2c;MATS2d;MATS2dv;MATS2i;MATS2m;MATS2p;MATS2pe;MATS2s;MATS2se;MATS2v;MATS3Z;MATS3are;MATS3c;MATS3d;MATS3dv;MATS3i;MATS3m;MATS3p;MATS3pe;MATS3s;MATS3se;MATS3v;MATS4Z;MATS4are;MATS4c;MATS4d;MATS4dv;MATS4i;MATS4m;MATS4p;MATS4pe;MATS4s;MATS4se;MATS4v;MATS5Z;MATS5are;MATS5c;MATS5d;MATS5dv;MATS5i;MATS5m;MATS5p;MATS5pe;MATS5s;MATS5se;MATS5v;MATS6Z;MATS6are;MATS6c;MATS6d;MATS6dv;MATS6i;MATS6m;MATS6p;MATS6pe;MATS6s;MATS6se;MATS6v;MATS7Z;MATS7are;MATS7c;MATS7d;MATS7dv;MATS7i;MATS7m;MATS7p;MATS7pe;MATS7s;MATS7se;MATS7v;MATS8Z;MATS8are;MATS8c;MATS8d;MATS8dv;MATS8i;MATS8m;MATS8p;MATS8pe;MATS8s;MATS8se;MATS8v;MDEC-22;MDEC-23;MDEC-33;MIC0;MIC1;MIC2;MIC3;MIC4;MIC5;MID;MID_C;MID_N;MID_O;MID_X;MID_h;MOMI-X;MOMI-Y;MOMI-Z;MPC10;MPC2;MPC3;MPC4;MPC5;MPC6;MPC7;MPC8;MPC9;MW;MWC01;MWC02;MWC03;MWC04;MWC05;MWC06;MWC07;MWC08;MWC09;MWC10;MZ;Mare;Mi;Mm;Mor01;Mor01m;Mor01p;Mor01se;Mor01v;Mor02;Mor02m;Mor02p;Mor02se;Mor02v;Mor03;Mor03m;Mor03p;Mor03se;Mor03v;Mor04;Mor04m;Mor04p;Mor04se;Mor04v;Mor05;Mor05m;Mor05p;Mor05se;Mor05v;Mor06;Mor06m;Mor06p;Mor06se;Mor06v;Mor07;Mor07m;Mor07p;Mor07se;Mor07v;Mor08;Mor08m;Mor08p;Mor08se;Mor08v;Mor09;Mor09m;Mor09p;Mor09se;Mor09v;Mor10;Mor10m;Mor10p;Mor10se;Mor10v;Mor11;Mor11m;Mor11p;Mor11se;Mor11v;Mor12;Mor12m;Mor12p;Mor12se;Mor12v;Mor13;Mor13m;Mor13p;Mor13se;Mor13v;Mor14;Mor14m;Mor14p;Mor14se;Mor14v;Mor15;Mor15m;Mor15p;Mor15se;Mor15v;Mor16;Mor16m;Mor16p;Mor16se;Mor16v;Mor17;Mor17m;Mor17p;Mor17se;Mor17v;Mor18;Mor18m;Mor18p;Mor18se;Mor18v;Mor19;Mor19m;Mor19p;Mor19se;Mor19v;Mor20;Mor20m;Mor20p;Mor20se;Mor20v;Mor21;Mor21m;Mor21p;Mor21se;Mor21v;Mor22;Mor22m;Mor22p;Mor22se;Mor22v;Mor23;Mor23m;Mor23p;Mor23se;Mor23v;Mor24;Mor24m;Mor24p;Mor24se;Mor24v;Mor25;Mor25m;Mor25p;Mor25se;Mor25v;Mor26;Mor26m;Mor26p;Mor26se;Mor26v;Mor27;Mor27m;Mor27p;Mor27se;Mor27v;Mor28;Mor28m;Mor28p;Mor28se;Mor28v;Mor29;Mor29m;Mor29p;Mor29se;Mor29v;Mor30;Mor30m;Mor30p;Mor30se;Mor30v;Mor31;Mor31m;Mor31p;Mor31se;Mor31v;Mor32;Mor32m;Mor32p;Mor32se;Mor32v;Mp;Mpe;Mse;Mv;NaaCH;NaaN;NaaNH;NaaO;NaaS;NaaaC;NaasC;NaasN;NdCH2;NdO;NdS;NddsN;NddssS;NdsCH;NdsN;NdssC;NsBr;NsCH3;NsCl;NsF;NsNH2;NsOH;NssCH2;NssNH;NssO;NssS;NsssCH;NsssN;NssssC;NtN;NtsC;PEOE_VSA1;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;PNSA1;PNSA2;PNSA3;PNSA4;PNSA5;PPSA1;PPSA2;PPSA3;PPSA4;PPSA5;PetitjeanIndex;RASA;RNCG;RNCS;RPCG;RPCS;RPSA;Radius;RotRatio;SIC0;SIC1;SIC2;SIC3;SIC4;SIC5;SLogP;SM1_Dt;SM1_DzZ;SM1_Dzare;SM1_Dzi;SM1_Dzm;SM1_Dzp;SM1_Dzpe;SM1_Dzse;SM1_Dzv;SMR;SMR_VSA1;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SRW02;SRW03;SRW04;SRW05;SRW06;SRW07;SRW08;SRW09;SRW10;SZ;SaaCH;SaaN;SaaNH;SaaO;SaaS;SaaaC;SaasC;SaasN;Sare;SdCH2;SdO;SdS;SddsN;SddssS;SdsCH;SdsN;SdssC;Si;SlogP_VSA1;SlogP_VSA10;SlogP_VSA11;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;Sm;Sp;SpAD_A;SpAD_D;SpAD_Dt;SpAD_DzZ;SpAD_Dzare;SpAD_Dzi;SpAD_Dzm;SpAD_Dzp;SpAD_Dzpe;SpAD_Dzse;SpAD_Dzv;SpAbs_A;SpAbs_D;SpAbs_Dt;SpAbs_DzZ;SpAbs_Dzare;SpAbs_Dzi;SpAbs_Dzm;SpAbs_Dzp;SpAbs_Dzpe;SpAbs_Dzse;SpAbs_Dzv;SpDiam_A;SpDiam_D;SpDiam_Dt;SpDiam_DzZ;SpDiam_Dzare;SpDiam_Dzi;SpDiam_Dzm;SpDiam_Dzp;SpDiam_Dzpe;SpDiam_Dzse;SpDiam_Dzv;SpMAD_A;SpMAD_D;SpMAD_Dt;SpMAD_DzZ;SpMAD_Dzare;SpMAD_Dzi;SpMAD_Dzm;SpMAD_Dzp;SpMAD_Dzpe;SpMAD_Dzse;SpMAD_Dzv;SpMax_A;SpMax_D;SpMax_Dt;SpMax_DzZ;SpMax_Dzare;SpMax_Dzi;SpMax_Dzm;SpMax_Dzp;SpMax_Dzpe;SpMax_Dzse;SpMax_Dzv;Spe;SsBr;SsCH3;SsCl;SsF;SsNH2;SsOH;Sse;SssCH2;SssNH;SssO;SssS;SsssCH;SsssN;SssssC;StN;StsC;Sv;TASA;TIC0;TIC1;TIC2;TIC3;TIC4;TIC5;TMPC10;TMWC10;TPSA;TSRW10;TopoPSA;TopoPSA(NO);TopoShapeIndex;TpiPC10;VAdjMat;VE1_A;VE1_D;VE1_Dt;VE1_DzZ;VE1_Dzare;VE1_Dzi;VE1_Dzm;VE1_Dzp;VE1_Dzpe;VE1_Dzse;VE1_Dzv;VE2_A;VE2_D;VE2_Dt;VE2_DzZ;VE2_Dzare;VE2_Dzi;VE2_Dzm;VE2_Dzp;VE2_Dzpe;VE2_Dzse;VE2_Dzv;VE3_A;VE3_D;VE3_Dt;VE3_DzZ;VE3_Dzare;VE3_Dzi;VE3_Dzm;VE3_Dzp;VE3_Dzpe;VE3_Dzse;VE3_Dzv;VMcGowan;VR1_A;VR1_D;VR1_Dt;VR1_DzZ;VR1_Dzare;VR1_Dzi;VR1_Dzm;VR1_Dzp;VR1_Dzpe;VR1_Dzse;VR1_Dzv;VR2_A;VR2_D;VR2_Dt;VR2_DzZ;VR2_Dzare;VR2_Dzi;VR2_Dzm;VR2_Dzp;VR2_Dzpe;VR2_Dzse;VR2_Dzv;VR3_A;VR3_D;VR3_Dt;VR3_DzZ;VR3_Dzare;VR3_Dzi;VR3_Dzm;VR3_Dzp;VR3_Dzpe;VR3_Dzse;VR3_Dzv;VSA_EState1;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;Vabc;WNSA1;WNSA2;WNSA3;WNSA4;WNSA5;WPSA1;WPSA2;WPSA3;WPSA4;WPSA5;WPath;WPol;Xc-3d;Xc-3dv;Xc-4d;Xc-4dv;Xc-5d;Xc-5dv;Xc-6d;Xc-6dv;Xch-3d;Xch-3dv;Xch-4d;Xch-4dv;Xch-5d;Xch-5dv;Xch-6d;Xch-6dv;Xch-7d;Xch-7dv;Xp-0d;Xp-0dv;Xp-1d;Xp-1dv;Xp-2d;Xp-2dv;Xp-3d;Xp-3dv;Xp-4d;Xp-4dv;Xp-5d;Xp-5dv;Xp-6d;Xp-6dv;Xp-7d;Xp-7dv;Xpc-4d;Xpc-4dv;Xpc-5d;Xpc-5dv;Xpc-6d;Xpc-6dv;ZMIC0;ZMIC1;ZMIC2;ZMIC3;ZMIC4;ZMIC5;Zagreb1;Zagreb2;apol;bpol;fMF;fragCpx;mZagreb1;mZagreb2;n10AHRing;n10ARing;n10FAHRing;n10FARing;n10FHRing;n10FRing;n10FaHRing;n10FaRing;n10HRing;n10Ring;n10aHRing;n10aRing;n11AHRing;n11ARing;n11FAHRing;n11FARing;n11FHRing;n11FRing;n11FaHRing;n11FaRing;n11HRing;n11Ring;n11aHRing;n11aRing;n12AHRing;n12ARing;n12FAHRing;n12FARing;n12FHRing;n12FRing;n12FaHRing;n12FaRing;n12HRing;n12Ring;n12aHRing;n12aRing;n3AHRing;n3ARing;n3HRing;n3Ring;n3aHRing;n3aRing;n4AHRing;n4ARing;n4FAHRing;n4FARing;n4FHRing;n4FRing;n4FaHRing;n4FaRing;n4HRing;n4Ring;n4aHRing;n4aRing;n5AHRing;n5ARing;n5FAHRing;n5FARing;n5FHRing;n5FRing;n5FaHRing;n5FaRing;n5HRing;n5Ring;n5aHRing;n5aRing;n6AHRing;n6ARing;n6FAHRing;n6FARing;n6FHRing;n6FRing;n6FaHRing;n6FaRing;n6HRing;n6Ring;n6aHRing;n6aRing;n7AHRing;n7ARing;n7FAHRing;n7FARing;n7FHRing;n7FRing;n7FaHRing;n7FaRing;n7HRing;n7Ring;n7aHRing;n7aRing;n8AHRing;n8ARing;n8FAHRing;n8FARing;n8FHRing;n8FRing;n8FaHRing;n8FaRing;n8HRing;n8Ring;n8aHRing;n8aRing;n9AHRing;n9ARing;n9FAHRing;n9FARing;n9FHRing;n9FRing;n9FaHRing;n9FaRing;n9HRing;n9Ring;n9aHRing;n9aRing;nAHRing;nARing;nAcid;nAromAtom;nAromBond;nAtom;nB;nBase;nBonds;nBondsA;nBondsD;nBondsKD;nBondsKS;nBondsM;nBondsO;nBondsS;nBondsT;nBr;nBridgehead;nC;nCl;nF;nFAHRing;nFARing;nFHRing;nFRing;nFaHRing;nFaRing;nG12AHRing;nG12ARing;nG12FAHRing;nG12FARing;nG12FHRing;nG12FRing;nG12FaHRing;nG12FaRing;nG12HRing;nG12Ring;nG12aHRing;nG12aRing;nH;nHBAcc;nHBDon;nHRing;nHeavyAtom;nHetero;nI;nN;nO;nP;nRing;nRot;nS;nSpiro;nX;naHRing;naRing;piPC1;piPC10;piPC2;piPC3;piPC4;piPC5;piPC6;piPC7;piPC8;piPC9,0,mordred rdkit_raw,MaxEStateIndex;MinEStateIndex;MaxAbsEStateIndex;MinAbsEStateIndex;qed;MolWt;HeavyAtomMolWt;ExactMolWt;NumValenceElectrons;NumRadicalElectrons;MaxPartialCharge;MinPartialCharge;MaxAbsPartialCharge;MinAbsPartialCharge;FpDensityMorgan1;FpDensityMorgan2;FpDensityMorgan3;BalabanJ;BertzCT;Chi0;Chi0n;Chi0v;Chi1;Chi1n;Chi1v;Chi2n;Chi2v;Chi3n;Chi3v;Chi4n;Chi4v;HallKierAlpha;Ipc;Kappa1;Kappa2;Kappa3;LabuteASA;PEOE_VSA1;PEOE_VSA10;PEOE_VSA11;PEOE_VSA12;PEOE_VSA13;PEOE_VSA14;PEOE_VSA2;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6;PEOE_VSA7;PEOE_VSA8;PEOE_VSA9;SMR_VSA1;SMR_VSA10;SMR_VSA2;SMR_VSA3;SMR_VSA4;SMR_VSA5;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1;SlogP_VSA10;SlogP_VSA11;SlogP_VSA12;SlogP_VSA2;SlogP_VSA3;SlogP_VSA4;SlogP_VSA5;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;TPSA;EState_VSA1;EState_VSA10;EState_VSA11;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;VSA_EState1;VSA_EState10;VSA_EState2;VSA_EState3;VSA_EState4;VSA_EState5;VSA_EState6;VSA_EState7;VSA_EState8;VSA_EState9;FractionCSP3;HeavyAtomCount;NHOHCount;NOCount;NumAliphaticCarbocycles;NumAliphaticHeterocycles;NumAliphaticRings;NumAromaticCarbocycles;NumAromaticHeterocycles;NumAromaticRings;NumHAcceptors;NumHDonors;NumHeteroatoms;NumRotatableBonds;NumSaturatedCarbocycles;NumSaturatedHeterocycles;NumSaturatedRings;RingCount;MolLogP;MolMR;fr_Al_COO;fr_Al_OH;fr_Al_OH_noTert;fr_ArN;fr_Ar_COO;fr_Ar_N;fr_Ar_NH;fr_Ar_OH;fr_COO;fr_COO2;fr_C_O;fr_C_O_noCOO;fr_C_S;fr_HOCCN;fr_Imine;fr_NH0;fr_NH1;fr_NH2;fr_N_O;fr_Ndealkylation1;fr_Ndealkylation2;fr_Nhpyrrole;fr_SH;fr_aldehyde;fr_alkyl_carbamate;fr_alkyl_halide;fr_allylic_oxid;fr_amide;fr_amidine;fr_aniline;fr_aryl_methyl;fr_azide;fr_azo;fr_barbitur;fr_benzene;fr_benzodiazepine;fr_bicyclic;fr_diazo;fr_dihydropyridine;fr_epoxide;fr_ester;fr_ether;fr_furan;fr_guanido;fr_halogen;fr_hdrzine;fr_hdrzone;fr_imidazole;fr_imide;fr_isocyan;fr_isothiocyan;fr_ketone;fr_ketone_Topliss;fr_lactam;fr_lactone;fr_methoxy;fr_morpholine;fr_nitrile;fr_nitro;fr_nitro_arom;fr_nitro_arom_nonortho;fr_nitroso;fr_oxazole;fr_oxime;fr_para_hydroxylation;fr_phenol;fr_phenol_noOrthoHbond;fr_phos_acid;fr_phos_ester;fr_piperdine;fr_piperzine;fr_priamide;fr_prisulfonamd;fr_pyridine;fr_quatN;fr_sulfide;fr_sulfonamd;fr_sulfone;fr_term_acetylene;fr_tetrazole;fr_thiazole;fr_thiocyan;fr_thiophene;fr_unbrch_alkane;fr_urea,0,rdkit -rdkit_scaled,MaxEStateIndex_per_heavyatom;MinEStateIndex_per_heavyatom;MaxAbsEStateIndex_per_heavyatom;MinAbsEStateIndex;qed_per_heavyatom;MolWt_per_heavyatom;HeavyAtomMolWt_per_heavyatom;ExactMolWt_per_heavyatom;NumValenceElectrons;NumRadicalElectrons;MaxPartialCharge;MinPartialCharge;MaxAbsPartialCharge;MinAbsPartialCharge;FpDensityMorgan1_per_heavyatom;FpDensityMorgan2_per_heavyatom;FpDensityMorgan3_per_heavyatom;BalabanJ;BertzCT_per_heavyatom;Chi0_per_heavyatom;Chi0n_per_heavyatom;Chi0v_per_heavyatom;Chi1_per_heavyatom;Chi1n_per_heavyatom;Chi1v_per_heavyatom;Chi2n_per_heavyatom;Chi2v_per_heavyatom;Chi3n_per_heavyatom;Chi3v_per_heavyatom;Chi4n_per_heavyatom;Chi4v;HallKierAlpha_per_heavyatom;AvgIpc;Kappa1_per_heavyatom;Kappa2_per_heavyatom;Kappa3;LabuteASA_per_heavyatom;PEOE_VSA1_per_heavyatom;PEOE_VSA10_per_heavyatom;PEOE_VSA11_per_heavyatom;PEOE_VSA12_per_heavyatom;PEOE_VSA13;PEOE_VSA14;PEOE_VSA2_per_heavyatom;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6_per_heavyatom;PEOE_VSA7_per_heavyatom;PEOE_VSA8_per_heavyatom;PEOE_VSA9_per_heavyatom;SMR_VSA1_per_heavyatom;SMR_VSA10_per_heavyatom;SMR_VSA2;SMR_VSA3_per_heavyatom;SMR_VSA4;SMR_VSA5_per_heavyatom;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1_per_heavyatom;SlogP_VSA10;SlogP_VSA11;SlogP_VSA12;SlogP_VSA2_per_heavyatom;SlogP_VSA3_per_heavyatom;SlogP_VSA4;SlogP_VSA5_per_heavyatom;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;TPSA_per_heavyatom;EState_VSA1_per_heavyatom;EState_VSA10_per_heavyatom;EState_VSA11_per_heavyatom;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9_per_heavyatom;VSA_EState1_per_heavyatom;VSA_EState10_per_heavyatom;VSA_EState2_per_heavyatom;VSA_EState3_per_heavyatom;VSA_EState4_per_heavyatom;VSA_EState5_per_heavyatom;VSA_EState6_per_heavyatom;VSA_EState7_per_heavyatom;VSA_EState8_per_heavyatom;VSA_EState9_per_heavyatom;FractionCSP3;HeavyAtomCount;NHOHCount;NOCount;NumAliphaticCarbocycles;NumAliphaticHeterocycles;NumAliphaticRings;NumAromaticCarbocycles;NumAromaticHeterocycles;NumAromaticRings;NumHAcceptors;NumHDonors;NumHeteroatoms;NumRotatableBonds;NumSaturatedCarbocycles;NumSaturatedHeterocycles;NumSaturatedRings;RingCount;MolLogP;MolMR_per_heavyatom;fr_Al_COO;fr_Al_OH;fr_Al_OH_noTert;fr_ArN;fr_Ar_COO;fr_Ar_N;fr_Ar_NH;fr_Ar_OH;fr_COO;fr_COO2;fr_C_O;fr_C_O_noCOO;fr_C_S;fr_HOCCN;fr_Imine;fr_NH0;fr_NH1;fr_NH2;fr_N_O;fr_Ndealkylation1;fr_Ndealkylation2;fr_Nhpyrrole;fr_SH;fr_aldehyde;fr_alkyl_carbamate;fr_alkyl_halide;fr_allylic_oxid;fr_amide;fr_amidine;fr_aniline;fr_aryl_methyl;fr_azide;fr_azo;fr_barbitur;fr_benzene;fr_benzodiazepine;fr_bicyclic;fr_diazo;fr_dihydropyridine;fr_epoxide;fr_ester;fr_ether;fr_furan;fr_guanido;fr_halogen;fr_hdrzine;fr_hdrzone;fr_imidazole;fr_imide;fr_isocyan;fr_isothiocyan;fr_ketone;fr_ketone_Topliss;fr_lactam;fr_lactone;fr_methoxy;fr_morpholine;fr_nitrile;fr_nitro;fr_nitro_arom;fr_nitro_arom_nonortho;fr_nitroso;fr_oxazole;fr_oxime;fr_para_hydroxylation;fr_phenol;fr_phenol_noOrthoHbond;fr_phos_acid;fr_phos_ester;fr_piperdine;fr_piperzine;fr_priamide;fr_prisulfonamd;fr_pyridine;fr_quatN;fr_sulfide;fr_sulfonamd;fr_sulfone;fr_term_acetylene;fr_tetrazole;fr_thiazole;fr_thiocyan;fr_thiophene;fr_unbrch_alkane;fr_urea,1,rdkit -mordred_filtered_scaled,AATS0Z;AATS0are;AATS0d;AATS0dv;AATS0i;AATS0m;AATS0p;AATS0pe;AATS0s;AATS0se;AATS0v;AATS1Z;AATS1are;AATS1d;AATS1dv;AATS1i;AATS1m;AATS1p;AATS1pe;AATS1s;AATS1se;AATS1v;AATS2Z;AATS2are;AATS2d;AATS2dv;AATS2i;AATS2m;AATS2p;AATS2pe;AATS2s;AATS2se;AATS2v;AATS3Z;AATS3are;AATS3d;AATS3dv;AATS3i;AATS3m;AATS3p;AATS3pe;AATS3s;AATS3se;AATS3v;AATS4Z;AATS4are;AATS4d;AATS4dv;AATS4i;AATS4m;AATS4p;AATS4pe;AATS4s;AATS4se;AATS4v;AATS5Z;AATS5are;AATS5d;AATS5dv;AATS5i;AATS5m;AATS5p;AATS5pe;AATS5s;AATS5se;AATS5v;AATS6Z;AATS6are;AATS6d;AATS6dv;AATS6i;AATS6m;AATS6p;AATS6pe;AATS6s;AATS6se;AATS6v;AATS7Z;AATS7are;AATS7d;AATS7dv;AATS7i;AATS7m;AATS7p;AATS7pe;AATS7s;AATS7se;AATS7v;AATS8Z;AATS8are;AATS8d;AATS8dv;AATS8i;AATS8m;AATS8p;AATS8pe;AATS8s;AATS8se;AATS8v;AATSC0Z;AATSC0are;AATSC0c;AATSC0d;AATSC0dv;AATSC0i;AATSC0m;AATSC0p;AATSC0pe;AATSC0s;AATSC0se;AATSC0v;AATSC1Z;AATSC1are;AATSC1c;AATSC1d;AATSC1dv;AATSC1i;AATSC1m;AATSC1p;AATSC1pe;AATSC1s;AATSC1se;AATSC1v;AATSC2Z;AATSC2are;AATSC2c;AATSC2d;AATSC2dv;AATSC2i;AATSC2m;AATSC2p;AATSC2pe;AATSC2s;AATSC2se;AATSC2v;AATSC3Z;AATSC3are;AATSC3c;AATSC3d;AATSC3dv;AATSC3i;AATSC3m;AATSC3p;AATSC3pe;AATSC3s;AATSC3se;AATSC3v;AATSC4Z;AATSC4are;AATSC4c;AATSC4d;AATSC4dv;AATSC4i;AATSC4m;AATSC4p;AATSC4pe;AATSC4s;AATSC4se;AATSC4v;AATSC5Z;AATSC5are;AATSC5c;AATSC5d;AATSC5dv;AATSC5i;AATSC5m;AATSC5p;AATSC5pe;AATSC5s;AATSC5se;AATSC5v;AATSC6Z;AATSC6are;AATSC6c;AATSC6d;AATSC6dv;AATSC6i;AATSC6m;AATSC6p;AATSC6pe;AATSC6s;AATSC6se;AATSC6v;AATSC7Z;AATSC7are;AATSC7c;AATSC7d;AATSC7dv;AATSC7i;AATSC7m;AATSC7p;AATSC7pe;AATSC7s;AATSC7se;AATSC7v;AATSC8Z;AATSC8are;AATSC8c;AATSC8d;AATSC8dv;AATSC8i;AATSC8m;AATSC8p;AATSC8pe;AATSC8s;AATSC8se;AATSC8v;ABC;ABCGG;AETA_alpha;AETA_beta;AETA_beta_ns;AETA_beta_ns_d;AETA_beta_s;AETA_dBeta;AETA_eta_per_heavyatom;AETA_eta_B;AETA_eta_BR;AETA_eta_F_per_heavyatom;AETA_eta_FL;AETA_eta_L;AETA_eta_R_per_heavyatom;AETA_eta_RL;AMID;AMID_C;AMID_N;AMID_O;AMID_X;AMID_h;AMW;ATS0Z;ATS0are_per_heavyatom;ATS0d;ATS0dv_per_heavyatom;ATS0i_per_heavyatom;ATS0m_per_heavyatom;ATS0p_per_heavyatom;ATS0pe_per_heavyatom;ATS0s_per_heavyatom;ATS0se_per_heavyatom;ATS0v_per_heavyatom;ATS1Z;ATS1are_per_heavyatom;ATS1d;ATS1dv_per_heavyatom;ATS1i_per_heavyatom;ATS1m_per_heavyatom;ATS1p_per_heavyatom;ATS1pe_per_heavyatom;ATS1s_per_heavyatom;ATS1se_per_heavyatom;ATS1v_per_heavyatom;ATS2Z;ATS2are_per_heavyatom;ATS2d;ATS2dv_per_heavyatom;ATS2i_per_heavyatom;ATS2m_per_heavyatom;ATS2p_per_heavyatom;ATS2pe_per_heavyatom;ATS2s_per_heavyatom;ATS2se_per_heavyatom;ATS2v_per_heavyatom;ATS3Z;ATS3are_per_heavyatom;ATS3d;ATS3dv_per_heavyatom;ATS3i_per_heavyatom;ATS3m_per_heavyatom;ATS3p_per_heavyatom;ATS3pe_per_heavyatom;ATS3s_per_heavyatom;ATS3se_per_heavyatom;ATS3v_per_heavyatom;ATS4Z;ATS4are_per_heavyatom;ATS4d;ATS4dv_per_heavyatom;ATS4i_per_heavyatom;ATS4m_per_heavyatom;ATS4p_per_heavyatom;ATS4pe_per_heavyatom;ATS4s_per_heavyatom;ATS4se_per_heavyatom;ATS4v_per_heavyatom;ATS5Z;ATS5are_per_heavyatom;ATS5d;ATS5dv_per_heavyatom;ATS5i_per_heavyatom;ATS5m_per_heavyatom;ATS5p_per_heavyatom;ATS5pe_per_heavyatom;ATS5s_per_heavyatom;ATS5se_per_heavyatom;ATS5v_per_heavyatom;ATS6Z;ATS6are_per_heavyatom;ATS6d;ATS6dv_per_heavyatom;ATS6i_per_heavyatom;ATS6m_per_heavyatom;ATS6p_per_heavyatom;ATS6pe_per_heavyatom;ATS6s_per_heavyatom;ATS6se_per_heavyatom;ATS6v_per_heavyatom;ATS7Z;ATS7are_per_heavyatom;ATS7d;ATS7dv_per_heavyatom;ATS7i_per_heavyatom;ATS7m_per_heavyatom;ATS7p_per_heavyatom;ATS7pe_per_heavyatom;ATS7s_per_heavyatom;ATS7se_per_heavyatom;ATS7v_per_heavyatom;ATS8Z;ATS8are_per_heavyatom;ATS8d;ATS8dv_per_heavyatom;ATS8i_per_heavyatom;ATS8m_per_heavyatom;ATS8p_per_heavyatom;ATS8pe_per_heavyatom;ATS8s_per_heavyatom;ATS8se_per_heavyatom;ATS8v_per_heavyatom;ATSC0Z;ATSC0are_per_heavyatom;ATSC0c_per_heavyatom;ATSC0d_per_heavyatom;ATSC0dv_per_heavyatom;ATSC0i_per_heavyatom;ATSC0m;ATSC0p_per_heavyatom;ATSC0pe_per_heavyatom;ATSC0s_per_heavyatom;ATSC0se_per_heavyatom;ATSC0v_per_heavyatom;ATSC1Z;ATSC1are;ATSC1c_per_heavyatom;ATSC1d_per_heavyatom;ATSC1dv_per_heavyatom;ATSC1i;ATSC1m;ATSC1p;ATSC1pe;ATSC1s;ATSC1se;ATSC1v;ATSC2Z;ATSC2are;ATSC2c;ATSC2d;ATSC2dv;ATSC2i;ATSC2m;ATSC2p;ATSC2pe;ATSC2s;ATSC2se;ATSC2v;ATSC3Z;ATSC3are;ATSC3c_per_heavyatom;ATSC3d;ATSC3dv;ATSC3i;ATSC3m;ATSC3p;ATSC3pe;ATSC3s;ATSC3se;ATSC3v;ATSC4Z;ATSC4are;ATSC4c_per_heavyatom;ATSC4d;ATSC4dv;ATSC4i;ATSC4m;ATSC4p;ATSC4pe;ATSC4s;ATSC4se;ATSC4v;ATSC5Z;ATSC5are;ATSC5c;ATSC5d;ATSC5dv;ATSC5i;ATSC5m;ATSC5p;ATSC5pe;ATSC5s;ATSC5se;ATSC5v;ATSC6Z;ATSC6are;ATSC6c;ATSC6d;ATSC6dv;ATSC6i;ATSC6m;ATSC6p;ATSC6pe;ATSC6s;ATSC6se;ATSC6v;ATSC7Z;ATSC7are;ATSC7c_per_heavyatom;ATSC7d;ATSC7dv;ATSC7i;ATSC7m;ATSC7p;ATSC7pe;ATSC7s;ATSC7se;ATSC7v;ATSC8Z;ATSC8are;ATSC8c;ATSC8d;ATSC8dv;ATSC8i;ATSC8m;ATSC8p;ATSC8pe;ATSC8s;ATSC8se;ATSC8v;AXp-0d;AXp-0dv;AXp-1d;AXp-1dv;AXp-2d;AXp-2dv;AXp-3d;AXp-3dv;AXp-4d;AXp-4dv;AXp-5d;AXp-5dv;AXp-6d;AXp-6dv;AXp-7d;AXp-7dv;BCUTZ-1h;BCUTZ-1l;BCUTare-1h;BCUTare-1l;BCUTc-1h;BCUTc-1l;BCUTd-1h;BCUTd-1l;BCUTdv-1h;BCUTdv-1l;BCUTi-1h;BCUTi-1l;BCUTm-1h;BCUTm-1l;BCUTp-1h;BCUTp-1l;BCUTpe-1h;BCUTpe-1l;BCUTs-1h;BCUTs-1l;BCUTse-1h;BCUTse-1l;BCUTv-1h;BCUTv-1l;BIC0_per_heavyatom;BIC1_per_heavyatom;BIC2;BIC3;BIC4;BIC5;BalabanJ;BertzCT_per_heavyatom;C1SP1;C1SP2;C1SP3;C2SP1;C2SP2;C2SP3;C3SP2;C3SP3;C4SP3;CIC0_per_heavyatom;CIC1_per_heavyatom;CIC2_per_heavyatom;CIC3_per_heavyatom;CIC4;CIC5;DPSA1_per_heavyatom;DPSA2_per_heavyatom;DPSA3_per_heavyatom;DPSA4_per_heavyatom;DPSA5_per_heavyatom;DetourIndex;Diameter;ECIndex;EState_VSA1_per_heavyatom;EState_VSA10_per_heavyatom;EState_VSA2_per_heavyatom;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;ETA_alpha_per_heavyatom;ETA_beta_per_heavyatom;ETA_beta_ns_per_heavyatom;ETA_beta_ns_d;ETA_beta_s_per_heavyatom;ETA_dAlpha_A;ETA_dAlpha_B;ETA_dBeta_per_heavyatom;ETA_dEpsilon_A;ETA_dEpsilon_B;ETA_dEpsilon_C;ETA_dEpsilon_D;ETA_dPsi_A;ETA_dPsi_B;ETA_epsilon_1;ETA_epsilon_2;ETA_epsilon_3;ETA_epsilon_4;ETA_epsilon_5;ETA_eta_per_heavyatom;ETA_eta_B_per_heavyatom;ETA_eta_BR_per_heavyatom;ETA_eta_F_per_heavyatom;ETA_eta_FL_per_heavyatom;ETA_eta_L_per_heavyatom;ETA_eta_R_per_heavyatom;ETA_eta_RL_per_heavyatom;ETA_psi_1;ETA_shape_p;ETA_shape_x;ETA_shape_y;FCSP3;FNSA1;FNSA2_per_heavyatom;FNSA3;FNSA4;FNSA5;FPSA1;FPSA2_per_heavyatom;FPSA3;FPSA4;FPSA5;FilterItLogS;GATS1Z;GATS1are;GATS1c;GATS1d;GATS1dv;GATS1i;GATS1m;GATS1p;GATS1pe;GATS1s;GATS1se;GATS1v;GATS2Z;GATS2are;GATS2c;GATS2d;GATS2dv;GATS2i;GATS2m;GATS2p;GATS2pe;GATS2s;GATS2se;GATS2v;GATS3Z;GATS3are;GATS3c;GATS3d;GATS3dv;GATS3i;GATS3m;GATS3p;GATS3pe;GATS3s;GATS3se;GATS3v;GATS4Z;GATS4are;GATS4c;GATS4d;GATS4dv;GATS4i;GATS4m;GATS4p;GATS4pe;GATS4s;GATS4se;GATS4v;GATS5Z;GATS5are;GATS5c;GATS5d;GATS5dv;GATS5i;GATS5m;GATS5p;GATS5pe;GATS5s;GATS5se;GATS5v;GATS6Z;GATS6are;GATS6c;GATS6d;GATS6dv;GATS6i;GATS6m;GATS6p;GATS6pe;GATS6s;GATS6se;GATS6v;GATS7Z;GATS7are;GATS7c;GATS7d;GATS7dv;GATS7i;GATS7m;GATS7p;GATS7pe;GATS7s;GATS7se;GATS7v;GATS8Z;GATS8are;GATS8c;GATS8d;GATS8dv;GATS8i;GATS8m;GATS8p;GATS8pe;GATS8s;GATS8se;GATS8v;GGI1_per_heavyatom;GGI10_per_heavyatom;GGI2_per_heavyatom;GGI3_per_heavyatom;GGI4_per_heavyatom;GGI5_per_heavyatom;GGI6_per_heavyatom;GGI7_per_heavyatom;GGI8_per_heavyatom;GGI9_per_heavyatom;GRAV_per_heavyatom;GRAVH_per_heavyatom;GRAVHp_per_heavyatom;GRAVp_per_heavyatom;GeomDiameter_per_heavyatom;GeomPetitjeanIndex;GeomRadius_per_heavyatom;GeomShapeIndex;GhoseFilter;HybRatio;IC0;IC1;IC2_per_heavyatom;IC3_per_heavyatom;IC4_per_heavyatom;IC5_per_heavyatom;JGI1;JGI10;JGI2;JGI3;JGI4;JGI5;JGI6;JGI7;JGI8;JGI9;JGT10;Kier1_per_heavyatom;Kier2_per_heavyatom;Kier3_per_heavyatom;LabuteASA_per_heavyatom;Lipinski;LogEE_A_per_heavyatom;LogEE_D_per_heavyatom;LogEE_Dt;LogEE_DzZ_per_heavyatom;LogEE_Dzare_per_heavyatom;LogEE_Dzi_per_heavyatom;LogEE_Dzm_per_heavyatom;LogEE_Dzp_per_heavyatom;LogEE_Dzpe_per_heavyatom;LogEE_Dzse_per_heavyatom;LogEE_Dzv_per_heavyatom;MATS1Z;MATS1are;MATS1c;MATS1d;MATS1dv;MATS1i;MATS1m;MATS1p;MATS1pe;MATS1s;MATS1se;MATS1v;MATS2Z;MATS2are;MATS2c;MATS2d;MATS2dv;MATS2i;MATS2m;MATS2p;MATS2pe;MATS2s;MATS2se;MATS2v;MATS3Z;MATS3are;MATS3c;MATS3d;MATS3dv;MATS3i;MATS3m;MATS3p;MATS3pe;MATS3s;MATS3se;MATS3v;MATS4Z;MATS4are;MATS4c;MATS4d;MATS4dv;MATS4i;MATS4m;MATS4p;MATS4pe;MATS4s;MATS4se;MATS4v;MATS5Z;MATS5are;MATS5c;MATS5d;MATS5dv;MATS5i;MATS5m;MATS5p;MATS5pe;MATS5s;MATS5se;MATS5v;MATS6Z;MATS6are;MATS6c;MATS6d;MATS6dv;MATS6i;MATS6m;MATS6p;MATS6pe;MATS6s;MATS6se;MATS6v;MATS7Z;MATS7are;MATS7c;MATS7d;MATS7dv;MATS7i;MATS7m;MATS7p;MATS7pe;MATS7s;MATS7se;MATS7v;MATS8Z;MATS8are;MATS8c;MATS8d;MATS8dv;MATS8i;MATS8m;MATS8p;MATS8pe;MATS8s;MATS8se;MATS8v;MDEC-22;MDEC-23;MDEC-33;MIC0;MIC1;MIC2;MIC3;MIC4;MIC5;MID_per_heavyatom;MID_C_per_heavyatom;MID_N_per_heavyatom;MID_O_per_heavyatom;MID_X;MID_h_per_heavyatom;MOMI-X_per_heavyatom;MOMI-Y_per_heavyatom;MOMI-Z_per_heavyatom;MPC10;MPC2;MPC3;MPC4;MPC5;MPC6;MPC7;MPC8;MPC9;MW_per_heavyatom;MWC01;MWC02_per_heavyatom;MWC03_per_heavyatom;MWC04_per_heavyatom;MWC05_per_heavyatom;MWC06_per_heavyatom;MWC07_per_heavyatom;MWC08_per_heavyatom;MWC09_per_heavyatom;MWC10_per_heavyatom;MZ;Mare;Mi;Mm;Mor01;Mor01m;Mor01p;Mor01se;Mor01v;Mor02;Mor02m;Mor02p;Mor02se;Mor02v;Mor03;Mor03m;Mor03p;Mor03se;Mor03v;Mor04;Mor04m;Mor04p;Mor04se;Mor04v;Mor05;Mor05m;Mor05p;Mor05se;Mor05v;Mor06;Mor06m;Mor06p;Mor06se;Mor06v;Mor07;Mor07m;Mor07p;Mor07se;Mor07v;Mor08;Mor08m;Mor08p;Mor08se;Mor08v;Mor09;Mor09m;Mor09p;Mor09se;Mor09v;Mor10;Mor10m;Mor10p;Mor10se;Mor10v;Mor11;Mor11m;Mor11p;Mor11se;Mor11v;Mor12;Mor12m;Mor12p;Mor12se;Mor12v;Mor13;Mor13m;Mor13p;Mor13se;Mor13v;Mor14;Mor14m;Mor14p;Mor14se;Mor14v;Mor15;Mor15m;Mor15p;Mor15se;Mor15v;Mor16;Mor16m;Mor16p;Mor16se;Mor16v;Mor17;Mor17m;Mor17p;Mor17se;Mor17v;Mor18;Mor18m;Mor18p;Mor18se;Mor18v;Mor19;Mor19m;Mor19p;Mor19se;Mor19v;Mor20;Mor20m;Mor20p;Mor20se;Mor20v;Mor21;Mor21m;Mor21p;Mor21se;Mor21v;Mor22;Mor22m;Mor22p;Mor22se;Mor22v;Mor23;Mor23m;Mor23p;Mor23se;Mor23v;Mor24;Mor24m;Mor24p;Mor24se;Mor24v;Mor25;Mor25m;Mor25p;Mor25se;Mor25v;Mor26;Mor26m;Mor26p;Mor26se;Mor26v;Mor27;Mor27m;Mor27p;Mor27se;Mor27v;Mor28;Mor28m;Mor28p;Mor28se;Mor28v;Mor29;Mor29m;Mor29p;Mor29se;Mor29v;Mor30;Mor30m;Mor30p;Mor30se;Mor30v;Mor31;Mor31m;Mor31p;Mor31se;Mor31v;Mor32;Mor32m;Mor32p;Mor32se;Mor32v;Mp;Mpe;Mse;Mv;NaaCH;NaaN;NaaNH;NaaO;NaaS;NaaaC;NaasC;NaasN;NdCH2;NdO;NdS;NddsN;NddssS;NdsCH;NdsN;NdssC;NsBr;NsCH3;NsCl;NsF;NsNH2;NsOH;NssCH2;NssNH;NssO;NssS;NsssCH;NsssN;NssssC;NtN;NtsC;PEOE_VSA1_per_heavyatom;PEOE_VSA10_per_heavyatom;PEOE_VSA11;PEOE_VSA12_per_heavyatom;PEOE_VSA13;PEOE_VSA2_per_heavyatom;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6_per_heavyatom;PEOE_VSA7_per_heavyatom;PEOE_VSA8_per_heavyatom;PEOE_VSA9;PNSA1_per_heavyatom;PNSA2_per_heavyatom;PNSA3_per_heavyatom;PNSA4_per_heavyatom;PNSA5_per_heavyatom;PPSA1_per_heavyatom;PPSA2_per_heavyatom;PPSA3_per_heavyatom;PPSA4_per_heavyatom;PPSA5_per_heavyatom;PetitjeanIndex;RASA;RNCG_per_heavyatom;RNCS_per_heavyatom;RPCG_per_heavyatom;RPCS;RPSA;Radius;RotRatio;SIC0_per_heavyatom;SIC1_per_heavyatom;SIC2;SIC3;SIC4;SIC5;SLogP;SM1_Dt;SM1_DzZ_per_heavyatom;SM1_Dzare_per_heavyatom;SM1_Dzi_per_heavyatom;SM1_Dzm_per_heavyatom;SM1_Dzp_per_heavyatom;SM1_Dzpe_per_heavyatom;SM1_Dzse_per_heavyatom;SM1_Dzv_per_heavyatom;SMR_per_heavyatom;SMR_VSA1_per_heavyatom;SMR_VSA2;SMR_VSA3_per_heavyatom;SMR_VSA4;SMR_VSA5_per_heavyatom;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SRW02_per_heavyatom;SRW03;SRW04_per_heavyatom;SRW05;SRW06_per_heavyatom;SRW07;SRW08_per_heavyatom;SRW09;SRW10_per_heavyatom;SZ_per_heavyatom;SaaCH;SaaN;SaaNH;SaaO;SaaS;SaaaC;SaasC;SaasN;Sare_per_heavyatom;SdCH2;SdO_per_heavyatom;SdS;SddsN;SddssS;SdsCH;SdsN;SdssC_per_heavyatom;Si_per_heavyatom;SlogP_VSA1_per_heavyatom;SlogP_VSA10;SlogP_VSA11;SlogP_VSA2_per_heavyatom;SlogP_VSA3_per_heavyatom;SlogP_VSA4;SlogP_VSA5_per_heavyatom;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;Sm_per_heavyatom;Sp_per_heavyatom;SpAD_A_per_heavyatom;SpAD_D_per_heavyatom;SpAD_Dt;SpAD_DzZ_per_heavyatom;SpAD_Dzare_per_heavyatom;SpAD_Dzi_per_heavyatom;SpAD_Dzm_per_heavyatom;SpAD_Dzp_per_heavyatom;SpAD_Dzpe_per_heavyatom;SpAD_Dzse_per_heavyatom;SpAD_Dzv_per_heavyatom;SpAbs_A_per_heavyatom;SpAbs_D_per_heavyatom;SpAbs_Dt;SpAbs_DzZ_per_heavyatom;SpAbs_Dzare_per_heavyatom;SpAbs_Dzi_per_heavyatom;SpAbs_Dzm_per_heavyatom;SpAbs_Dzp_per_heavyatom;SpAbs_Dzpe_per_heavyatom;SpAbs_Dzse_per_heavyatom;SpAbs_Dzv_per_heavyatom;SpDiam_A;SpDiam_D_per_heavyatom;SpDiam_Dt;SpDiam_DzZ_per_heavyatom;SpDiam_Dzare_per_heavyatom;SpDiam_Dzi_per_heavyatom;SpDiam_Dzm_per_heavyatom;SpDiam_Dzp_per_heavyatom;SpDiam_Dzpe_per_heavyatom;SpDiam_Dzse_per_heavyatom;SpDiam_Dzv_per_heavyatom;SpMAD_A;SpMAD_D_per_heavyatom;SpMAD_Dt;SpMAD_DzZ_per_heavyatom;SpMAD_Dzare_per_heavyatom;SpMAD_Dzi_per_heavyatom;SpMAD_Dzm_per_heavyatom;SpMAD_Dzp_per_heavyatom;SpMAD_Dzpe_per_heavyatom;SpMAD_Dzse_per_heavyatom;SpMAD_Dzv_per_heavyatom;SpMax_A;SpMax_D_per_heavyatom;SpMax_Dt;SpMax_DzZ_per_heavyatom;SpMax_Dzare_per_heavyatom;SpMax_Dzi_per_heavyatom;SpMax_Dzm_per_heavyatom;SpMax_Dzp_per_heavyatom;SpMax_Dzpe_per_heavyatom;SpMax_Dzse_per_heavyatom;SpMax_Dzv_per_heavyatom;Spe_per_heavyatom;SsBr;SsCH3;SsCl;SsF;SsNH2;SsOH;Sse_per_heavyatom;SssCH2;SssNH_per_heavyatom;SssO;SssS;SsssCH_per_heavyatom;SsssN;SssssC;StN;StsC;Sv_per_heavyatom;TASA_per_heavyatom;TIC0_per_heavyatom;TIC1_per_heavyatom;TIC2_per_heavyatom;TIC3_per_heavyatom;TIC4_per_heavyatom;TIC5_per_heavyatom;TMPC10;TMWC10_per_heavyatom;TPSA_per_heavyatom;TSRW10_per_heavyatom;TopoPSA_per_heavyatom;TopoPSA(NO)_per_heavyatom;TopoShapeIndex;TpiPC10_per_heavyatom;VAdjMat_per_heavyatom;VE1_A_per_heavyatom;VE1_D_per_heavyatom;VE1_Dt;VE1_DzZ_per_heavyatom;VE1_Dzare_per_heavyatom;VE1_Dzi_per_heavyatom;VE1_Dzm_per_heavyatom;VE1_Dzp_per_heavyatom;VE1_Dzpe_per_heavyatom;VE1_Dzse_per_heavyatom;VE1_Dzv_per_heavyatom;VE2_A_per_heavyatom;VE2_D_per_heavyatom;VE2_Dt;VE2_DzZ_per_heavyatom;VE2_Dzare_per_heavyatom;VE2_Dzi_per_heavyatom;VE2_Dzm_per_heavyatom;VE2_Dzp_per_heavyatom;VE2_Dzpe_per_heavyatom;VE2_Dzse_per_heavyatom;VE2_Dzv_per_heavyatom;VE3_A_per_heavyatom;VE3_D_per_heavyatom;VE3_Dt;VE3_DzZ_per_heavyatom;VE3_Dzare_per_heavyatom;VE3_Dzi_per_heavyatom;VE3_Dzm_per_heavyatom;VE3_Dzp_per_heavyatom;VE3_Dzpe_per_heavyatom;VE3_Dzse_per_heavyatom;VE3_Dzv_per_heavyatom;VMcGowan_per_heavyatom;VR1_A;VR1_D_per_heavyatom;VR1_Dt;VR1_DzZ_per_heavyatom;VR1_Dzare_per_heavyatom;VR1_Dzi_per_heavyatom;VR1_Dzm_per_heavyatom;VR1_Dzp_per_heavyatom;VR1_Dzpe_per_heavyatom;VR1_Dzse_per_heavyatom;VR1_Dzv_per_heavyatom;VR2_A;VR2_D_per_heavyatom;VR2_Dt;VR2_DzZ_per_heavyatom;VR2_Dzare_per_heavyatom;VR2_Dzi_per_heavyatom;VR2_Dzm_per_heavyatom;VR2_Dzp_per_heavyatom;VR2_Dzpe_per_heavyatom;VR2_Dzse_per_heavyatom;VR2_Dzv_per_heavyatom;VR3_A_per_heavyatom;VR3_D_per_heavyatom;VR3_Dt;VR3_DzZ_per_heavyatom;VR3_Dzare_per_heavyatom;VR3_Dzi_per_heavyatom;VR3_Dzm_per_heavyatom;VR3_Dzp_per_heavyatom;VR3_Dzpe_per_heavyatom;VR3_Dzse_per_heavyatom;VR3_Dzv_per_heavyatom;VSA_EState1_per_heavyatom;VSA_EState2_per_heavyatom;VSA_EState3_per_heavyatom;VSA_EState4_per_heavyatom;VSA_EState5_per_heavyatom;VSA_EState6_per_heavyatom;VSA_EState7_per_heavyatom;VSA_EState8_per_heavyatom;VSA_EState9_per_heavyatom;Vabc_per_heavyatom;WNSA1_per_heavyatom;WNSA2_per_heavyatom;WNSA3_per_heavyatom;WNSA4_per_heavyatom;WNSA5_per_heavyatom;WPSA1_per_heavyatom;WPSA2_per_heavyatom;WPSA3_per_heavyatom;WPSA4_per_heavyatom;WPSA5_per_heavyatom;WPath;WPol;Xc-3d_per_heavyatom;Xc-3dv_per_heavyatom;Xc-4d;Xc-4dv;Xc-5d_per_heavyatom;Xc-5dv;Xc-6d;Xc-6dv;Xch-3d;Xch-3dv;Xch-4d;Xch-4dv;Xch-5d;Xch-5dv;Xch-6d;Xch-6dv;Xch-7d;Xch-7dv;Xp-0d_per_heavyatom;Xp-0dv_per_heavyatom;Xp-1d_per_heavyatom;Xp-1dv_per_heavyatom;Xp-2d_per_heavyatom;Xp-2dv_per_heavyatom;Xp-3d_per_heavyatom;Xp-3dv_per_heavyatom;Xp-4d_per_heavyatom;Xp-4dv;Xp-5d_per_heavyatom;Xp-5dv;Xp-6d_per_heavyatom;Xp-6dv;Xp-7d_per_heavyatom;Xp-7dv;Xpc-4d_per_heavyatom;Xpc-4dv;Xpc-5d_per_heavyatom;Xpc-5dv;Xpc-6d_per_heavyatom;Xpc-6dv;ZMIC0_per_heavyatom;ZMIC1_per_heavyatom;ZMIC2_per_heavyatom;ZMIC3_per_heavyatom;ZMIC4_per_heavyatom;ZMIC5;Zagreb1;Zagreb2;apol_per_heavyatom;bpol_per_heavyatom;fMF;fragCpx_per_heavyatom;mZagreb1_per_heavyatom;mZagreb2_per_heavyatom;n10AHRing;n10ARing;n10FAHRing;n10FARing;n10FHRing;n10FRing;n10FaHRing;n10FaRing;n10HRing;n10Ring;n10aHRing;n10aRing;n11AHRing;n11ARing;n11FAHRing;n11FARing;n11FHRing;n11FRing;n11FaHRing;n11FaRing;n11HRing;n11Ring;n11aHRing;n11aRing;n12AHRing;n12ARing;n12FAHRing;n12FARing;n12FHRing;n12FRing;n12FaHRing;n12FaRing;n12HRing;n12Ring;n12aHRing;n12aRing;n3AHRing;n3ARing;n3HRing;n3Ring;n3aHRing;n3aRing;n4AHRing;n4ARing;n4FAHRing;n4FARing;n4FHRing;n4FRing;n4FaHRing;n4FaRing;n4HRing;n4Ring;n4aHRing;n4aRing;n5AHRing;n5ARing;n5FAHRing;n5FARing;n5FHRing;n5FRing;n5FaHRing;n5FaRing;n5HRing;n5Ring;n5aHRing;n5aRing;n6AHRing;n6ARing;n6FAHRing;n6FARing;n6FHRing;n6FRing;n6FaHRing;n6FaRing;n6HRing;n6Ring;n6aHRing;n6aRing;n7AHRing;n7ARing;n7FAHRing;n7FARing;n7FHRing;n7FRing;n7FaHRing;n7FaRing;n7HRing;n7Ring;n7aHRing;n7aRing;n8AHRing;n8ARing;n8FAHRing;n8FARing;n8FHRing;n8FRing;n8FaHRing;n8FaRing;n8HRing;n8Ring;n8aHRing;n8aRing;n9AHRing;n9ARing;n9FAHRing;n9FARing;n9FHRing;n9FRing;n9FaHRing;n9FaRing;n9HRing;n9Ring;n9aHRing;n9aRing;nAHRing;nARing;nAcid;nAromAtom;nAromBond;nAtom;nB;nBase;nBonds;nBondsA;nBondsD;nBondsKD;nBondsKS;nBondsM;nBondsO;nBondsS;nBondsT;nBr;nBridgehead;nC;nCl;nF;nFAHRing;nFARing;nFHRing;nFRing;nFaHRing;nFaRing;nG12AHRing;nG12ARing;nG12FAHRing;nG12FARing;nG12FHRing;nG12FRing;nG12FaHRing;nG12FaRing;nG12HRing;nG12Ring;nG12aHRing;nG12aRing;nH;nHBAcc;nHBDon;nHRing;nHeavyAtom;nHetero;nI;nN;nO;nP;nRing;nRot;nS;nSpiro;nX;naHRing;naRing;piPC1_per_heavyatom;piPC10_per_heavyatom;piPC2_per_heavyatom;piPC3_per_heavyatom;piPC4_per_heavyatom;piPC5_per_heavyatom;piPC6_per_heavyatom;piPC7_per_heavyatom;piPC8_per_heavyatom;piPC9_per_heavyatom,1,mordred +rdkit_scaled,MaxEStateIndex_per_heavyatom;MinEStateIndex_per_heavyatom;MaxAbsEStateIndex_per_heavyatom;MinAbsEStateIndex;qed_per_heavyatom;MolWt_per_heavyatom;HeavyAtomMolWt_per_heavyatom;ExactMolWt_per_heavyatom;NumValenceElectrons;NumRadicalElectrons;MaxPartialCharge;MinPartialCharge;MaxAbsPartialCharge;MinAbsPartialCharge;FpDensityMorgan1_per_heavyatom;FpDensityMorgan2_per_heavyatom;FpDensityMorgan3_per_heavyatom;BalabanJ;BertzCT_per_heavyatom;Chi0_per_heavyatom;Chi0n_per_heavyatom;Chi0v_per_heavyatom;Chi1_per_heavyatom;Chi1n_per_heavyatom;Chi1v_per_heavyatom;Chi2n_per_heavyatom;Chi2v_per_heavyatom;Chi3n_per_heavyatom;Chi3v_per_heavyatom;Chi4n_per_heavyatom;Chi4v_per_heavyatom;HallKierAlpha_per_heavyatom;AvgIpc;Kappa1_per_heavyatom;Kappa2_per_heavyatom;Kappa3;LabuteASA_per_heavyatom;PEOE_VSA1_per_heavyatom;PEOE_VSA10_per_heavyatom;PEOE_VSA11_per_heavyatom;PEOE_VSA12_per_heavyatom;PEOE_VSA13;PEOE_VSA14;PEOE_VSA2_per_heavyatom;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6_per_heavyatom;PEOE_VSA7_per_heavyatom;PEOE_VSA8_per_heavyatom;PEOE_VSA9_per_heavyatom;SMR_VSA1_per_heavyatom;SMR_VSA10_per_heavyatom;SMR_VSA2;SMR_VSA3_per_heavyatom;SMR_VSA4;SMR_VSA5_per_heavyatom;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SlogP_VSA1_per_heavyatom;SlogP_VSA10;SlogP_VSA11;SlogP_VSA12;SlogP_VSA2_per_heavyatom;SlogP_VSA3_per_heavyatom;SlogP_VSA4;SlogP_VSA5_per_heavyatom;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;TPSA_per_heavyatom;EState_VSA1_per_heavyatom;EState_VSA10_per_heavyatom;EState_VSA11_per_heavyatom;EState_VSA2;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9_per_heavyatom;VSA_EState1_per_heavyatom;VSA_EState10_per_heavyatom;VSA_EState2_per_heavyatom;VSA_EState3_per_heavyatom;VSA_EState4_per_heavyatom;VSA_EState5_per_heavyatom;VSA_EState6_per_heavyatom;VSA_EState7_per_heavyatom;VSA_EState8_per_heavyatom;VSA_EState9_per_heavyatom;FractionCSP3;HeavyAtomCount;NHOHCount;NOCount;NumAliphaticCarbocycles;NumAliphaticHeterocycles;NumAliphaticRings;NumAromaticCarbocycles;NumAromaticHeterocycles;NumAromaticRings;NumHAcceptors;NumHDonors;NumHeteroatoms;NumRotatableBonds;NumSaturatedCarbocycles;NumSaturatedHeterocycles;NumSaturatedRings;RingCount;MolLogP;MolMR_per_heavyatom;fr_Al_COO;fr_Al_OH;fr_Al_OH_noTert;fr_ArN;fr_Ar_COO;fr_Ar_N;fr_Ar_NH;fr_Ar_OH;fr_COO;fr_COO2;fr_C_O;fr_C_O_noCOO;fr_C_S;fr_HOCCN;fr_Imine;fr_NH0;fr_NH1;fr_NH2;fr_N_O;fr_Ndealkylation1;fr_Ndealkylation2;fr_Nhpyrrole;fr_SH;fr_aldehyde;fr_alkyl_carbamate;fr_alkyl_halide;fr_allylic_oxid;fr_amide;fr_amidine;fr_aniline;fr_aryl_methyl;fr_azide;fr_azo;fr_barbitur;fr_benzene;fr_benzodiazepine;fr_bicyclic;fr_diazo;fr_dihydropyridine;fr_epoxide;fr_ester;fr_ether;fr_furan;fr_guanido;fr_halogen;fr_hdrzine;fr_hdrzone;fr_imidazole;fr_imide;fr_isocyan;fr_isothiocyan;fr_ketone;fr_ketone_Topliss;fr_lactam;fr_lactone;fr_methoxy;fr_morpholine;fr_nitrile;fr_nitro;fr_nitro_arom;fr_nitro_arom_nonortho;fr_nitroso;fr_oxazole;fr_oxime;fr_para_hydroxylation;fr_phenol;fr_phenol_noOrthoHbond;fr_phos_acid;fr_phos_ester;fr_piperdine;fr_piperzine;fr_priamide;fr_prisulfonamd;fr_pyridine;fr_quatN;fr_sulfide;fr_sulfonamd;fr_sulfone;fr_term_acetylene;fr_tetrazole;fr_thiazole;fr_thiocyan;fr_thiophene;fr_unbrch_alkane;fr_urea,1,rdkit +mordred_filtered_scaled,AATS0Z;AATS0are;AATS0d;AATS0dv;AATS0i;AATS0m;AATS0p;AATS0pe;AATS0s;AATS0se;AATS0v;AATS1Z;AATS1are;AATS1d;AATS1dv;AATS1i;AATS1m;AATS1p;AATS1pe;AATS1s;AATS1se;AATS1v;AATS2Z;AATS2are;AATS2d;AATS2dv;AATS2i;AATS2m;AATS2p;AATS2pe;AATS2s;AATS2se;AATS2v;AATS3Z;AATS3are;AATS3d;AATS3dv;AATS3i;AATS3m;AATS3p;AATS3pe;AATS3s;AATS3se;AATS3v;AATS4Z;AATS4are;AATS4d;AATS4dv;AATS4i;AATS4m;AATS4p;AATS4pe;AATS4s;AATS4se;AATS4v;AATS5Z;AATS5are;AATS5d;AATS5dv;AATS5i;AATS5m;AATS5p;AATS5pe;AATS5s;AATS5se;AATS5v;AATS6Z;AATS6are;AATS6d;AATS6dv;AATS6i;AATS6m;AATS6p;AATS6pe;AATS6s;AATS6se;AATS6v;AATS7Z;AATS7are;AATS7d;AATS7dv;AATS7i;AATS7m;AATS7p;AATS7pe;AATS7s;AATS7se;AATS7v;AATS8Z;AATS8are;AATS8d;AATS8dv;AATS8i;AATS8m;AATS8p;AATS8pe;AATS8s;AATS8se;AATS8v;AATSC0Z;AATSC0are;AATSC0c;AATSC0d;AATSC0dv;AATSC0i;AATSC0m;AATSC0p;AATSC0pe;AATSC0s;AATSC0se;AATSC0v;AATSC1Z;AATSC1are;AATSC1c;AATSC1d;AATSC1dv;AATSC1i;AATSC1m;AATSC1p;AATSC1pe;AATSC1s;AATSC1se;AATSC1v;AATSC2Z;AATSC2are;AATSC2c;AATSC2d;AATSC2dv;AATSC2i;AATSC2m;AATSC2p;AATSC2pe;AATSC2s;AATSC2se;AATSC2v;AATSC3Z;AATSC3are;AATSC3c;AATSC3d;AATSC3dv;AATSC3i;AATSC3m;AATSC3p;AATSC3pe;AATSC3s;AATSC3se;AATSC3v;AATSC4Z;AATSC4are;AATSC4c;AATSC4d;AATSC4dv;AATSC4i;AATSC4m;AATSC4p;AATSC4pe;AATSC4s;AATSC4se;AATSC4v;AATSC5Z;AATSC5are;AATSC5c;AATSC5d;AATSC5dv;AATSC5i;AATSC5m;AATSC5p;AATSC5pe;AATSC5s;AATSC5se;AATSC5v;AATSC6Z;AATSC6are;AATSC6c;AATSC6d;AATSC6dv;AATSC6i;AATSC6m;AATSC6p;AATSC6pe;AATSC6s;AATSC6se;AATSC6v;AATSC7Z;AATSC7are;AATSC7c;AATSC7d;AATSC7dv;AATSC7i;AATSC7m;AATSC7p;AATSC7pe;AATSC7s;AATSC7se;AATSC7v;AATSC8Z;AATSC8are;AATSC8c;AATSC8d;AATSC8dv;AATSC8i;AATSC8m;AATSC8p;AATSC8pe;AATSC8s;AATSC8se;AATSC8v;ABC;ABCGG;AETA_alpha;AETA_beta;AETA_beta_ns;AETA_beta_ns_d;AETA_beta_s;AETA_dBeta;AETA_eta_per_heavyatom;AETA_eta_B;AETA_eta_BR;AETA_eta_F_per_heavyatom;AETA_eta_FL;AETA_eta_L;AETA_eta_R_per_heavyatom;AETA_eta_RL;AMID;AMID_C;AMID_N;AMID_O;AMID_X;AMID_h;AMW;ATS0Z;ATS0are_per_heavyatom;ATS0d;ATS0dv_per_heavyatom;ATS0i_per_heavyatom;ATS0m_per_heavyatom;ATS0p_per_heavyatom;ATS0pe_per_heavyatom;ATS0s_per_heavyatom;ATS0se_per_heavyatom;ATS0v_per_heavyatom;ATS1Z;ATS1are_per_heavyatom;ATS1d;ATS1dv_per_heavyatom;ATS1i_per_heavyatom;ATS1m_per_heavyatom;ATS1p_per_heavyatom;ATS1pe_per_heavyatom;ATS1s_per_heavyatom;ATS1se_per_heavyatom;ATS1v_per_heavyatom;ATS2Z;ATS2are_per_heavyatom;ATS2d;ATS2dv_per_heavyatom;ATS2i_per_heavyatom;ATS2m_per_heavyatom;ATS2p_per_heavyatom;ATS2pe_per_heavyatom;ATS2s_per_heavyatom;ATS2se_per_heavyatom;ATS2v_per_heavyatom;ATS3Z;ATS3are_per_heavyatom;ATS3d;ATS3dv_per_heavyatom;ATS3i_per_heavyatom;ATS3m_per_heavyatom;ATS3p_per_heavyatom;ATS3pe_per_heavyatom;ATS3s_per_heavyatom;ATS3se_per_heavyatom;ATS3v_per_heavyatom;ATS4Z;ATS4are_per_heavyatom;ATS4d;ATS4dv_per_heavyatom;ATS4i_per_heavyatom;ATS4m_per_heavyatom;ATS4p_per_heavyatom;ATS4pe_per_heavyatom;ATS4s_per_heavyatom;ATS4se_per_heavyatom;ATS4v_per_heavyatom;ATS5Z;ATS5are_per_heavyatom;ATS5d;ATS5dv_per_heavyatom;ATS5i_per_heavyatom;ATS5m_per_heavyatom;ATS5p_per_heavyatom;ATS5pe_per_heavyatom;ATS5s_per_heavyatom;ATS5se_per_heavyatom;ATS5v_per_heavyatom;ATS6Z;ATS6are_per_heavyatom;ATS6d;ATS6dv_per_heavyatom;ATS6i_per_heavyatom;ATS6m_per_heavyatom;ATS6p_per_heavyatom;ATS6pe_per_heavyatom;ATS6s_per_heavyatom;ATS6se_per_heavyatom;ATS6v_per_heavyatom;ATS7Z;ATS7are_per_heavyatom;ATS7d;ATS7dv_per_heavyatom;ATS7i_per_heavyatom;ATS7m_per_heavyatom;ATS7p_per_heavyatom;ATS7pe_per_heavyatom;ATS7s_per_heavyatom;ATS7se_per_heavyatom;ATS7v_per_heavyatom;ATS8Z;ATS8are_per_heavyatom;ATS8d;ATS8dv_per_heavyatom;ATS8i_per_heavyatom;ATS8m_per_heavyatom;ATS8p_per_heavyatom;ATS8pe_per_heavyatom;ATS8s_per_heavyatom;ATS8se_per_heavyatom;ATS8v_per_heavyatom;ATSC0Z;ATSC0are_per_heavyatom;ATSC0c_per_heavyatom;ATSC0d_per_heavyatom;ATSC0dv_per_heavyatom;ATSC0i_per_heavyatom;ATSC0m;ATSC0p_per_heavyatom;ATSC0pe_per_heavyatom;ATSC0s_per_heavyatom;ATSC0se_per_heavyatom;ATSC0v_per_heavyatom;ATSC1Z;ATSC1are;ATSC1c_per_heavyatom;ATSC1d_per_heavyatom;ATSC1dv_per_heavyatom;ATSC1i;ATSC1m;ATSC1p;ATSC1pe;ATSC1s;ATSC1se;ATSC1v;ATSC2Z;ATSC2are;ATSC2c;ATSC2d;ATSC2dv;ATSC2i;ATSC2m;ATSC2p;ATSC2pe;ATSC2s;ATSC2se;ATSC2v;ATSC3Z;ATSC3are;ATSC3c_per_heavyatom;ATSC3d;ATSC3dv;ATSC3i;ATSC3m;ATSC3p;ATSC3pe;ATSC3s;ATSC3se;ATSC3v;ATSC4Z;ATSC4are;ATSC4c_per_heavyatom;ATSC4d;ATSC4dv;ATSC4i;ATSC4m;ATSC4p;ATSC4pe;ATSC4s;ATSC4se;ATSC4v;ATSC5Z;ATSC5are;ATSC5c;ATSC5d;ATSC5dv;ATSC5i;ATSC5m;ATSC5p;ATSC5pe;ATSC5s;ATSC5se;ATSC5v;ATSC6Z;ATSC6are;ATSC6c;ATSC6d;ATSC6dv;ATSC6i;ATSC6m;ATSC6p;ATSC6pe;ATSC6s;ATSC6se;ATSC6v;ATSC7Z;ATSC7are;ATSC7c_per_heavyatom;ATSC7d;ATSC7dv;ATSC7i;ATSC7m;ATSC7p;ATSC7pe;ATSC7s;ATSC7se;ATSC7v;ATSC8Z;ATSC8are;ATSC8c;ATSC8d;ATSC8dv;ATSC8i;ATSC8m;ATSC8p;ATSC8pe;ATSC8s;ATSC8se;ATSC8v;AXp-0d;AXp-0dv;AXp-1d;AXp-1dv;AXp-2d;AXp-2dv;AXp-3d;AXp-3dv;AXp-4d;AXp-4dv;AXp-5d;AXp-5dv;AXp-6d;AXp-6dv;AXp-7d;AXp-7dv;BCUTZ-1h;BCUTZ-1l;BCUTare-1h;BCUTare-1l;BCUTc-1h;BCUTc-1l;BCUTd-1h;BCUTd-1l;BCUTdv-1h;BCUTdv-1l;BCUTi-1h;BCUTi-1l;BCUTm-1h;BCUTm-1l;BCUTp-1h;BCUTp-1l;BCUTpe-1h;BCUTpe-1l;BCUTs-1h;BCUTs-1l;BCUTse-1h;BCUTse-1l;BCUTv-1h;BCUTv-1l;BIC0_per_heavyatom;BIC1_per_heavyatom;BIC2;BIC3;BIC4;BIC5;BalabanJ;BertzCT_per_heavyatom;C1SP1;C1SP2;C1SP3;C2SP1;C2SP2;C2SP3;C3SP2;C3SP3;C4SP3;CIC0_per_heavyatom;CIC1_per_heavyatom;CIC2_per_heavyatom;CIC3_per_heavyatom;CIC4;CIC5;DPSA1_per_heavyatom;DPSA2_per_heavyatom;DPSA3_per_heavyatom;DPSA4_per_heavyatom;DPSA5_per_heavyatom;DetourIndex;Diameter;ECIndex;EState_VSA1_per_heavyatom;EState_VSA10_per_heavyatom;EState_VSA2_per_heavyatom;EState_VSA3;EState_VSA4;EState_VSA5;EState_VSA6;EState_VSA7;EState_VSA8;EState_VSA9;ETA_alpha_per_heavyatom;ETA_beta_per_heavyatom;ETA_beta_ns_per_heavyatom;ETA_beta_ns_d;ETA_beta_s_per_heavyatom;ETA_dAlpha_A;ETA_dAlpha_B;ETA_dBeta_per_heavyatom;ETA_dEpsilon_A;ETA_dEpsilon_B;ETA_dEpsilon_C;ETA_dEpsilon_D;ETA_dPsi_A;ETA_dPsi_B;ETA_epsilon_1;ETA_epsilon_2;ETA_epsilon_3;ETA_epsilon_4;ETA_epsilon_5;ETA_eta_per_heavyatom;ETA_eta_B_per_heavyatom;ETA_eta_BR_per_heavyatom;ETA_eta_F_per_heavyatom;ETA_eta_FL_per_heavyatom;ETA_eta_L_per_heavyatom;ETA_eta_R_per_heavyatom;ETA_eta_RL_per_heavyatom;ETA_psi_1;ETA_shape_p;ETA_shape_x;ETA_shape_y;FCSP3;FNSA1;FNSA2_per_heavyatom;FNSA3;FNSA4;FNSA5;FPSA1;FPSA2_per_heavyatom;FPSA3;FPSA4;FPSA5;FilterItLogS;GATS1Z;GATS1are;GATS1c;GATS1d;GATS1dv;GATS1i;GATS1m;GATS1p;GATS1pe;GATS1s;GATS1se;GATS1v;GATS2Z;GATS2are;GATS2c;GATS2d;GATS2dv;GATS2i;GATS2m;GATS2p;GATS2pe;GATS2s;GATS2se;GATS2v;GATS3Z;GATS3are;GATS3c;GATS3d;GATS3dv;GATS3i;GATS3m;GATS3p;GATS3pe;GATS3s;GATS3se;GATS3v;GATS4Z;GATS4are;GATS4c;GATS4d;GATS4dv;GATS4i;GATS4m;GATS4p;GATS4pe;GATS4s;GATS4se;GATS4v;GATS5Z;GATS5are;GATS5c;GATS5d;GATS5dv;GATS5i;GATS5m;GATS5p;GATS5pe;GATS5s;GATS5se;GATS5v;GATS6Z;GATS6are;GATS6c;GATS6d;GATS6dv;GATS6i;GATS6m;GATS6p;GATS6pe;GATS6s;GATS6se;GATS6v;GATS7Z;GATS7are;GATS7c;GATS7d;GATS7dv;GATS7i;GATS7m;GATS7p;GATS7pe;GATS7s;GATS7se;GATS7v;GATS8Z;GATS8are;GATS8c;GATS8d;GATS8dv;GATS8i;GATS8m;GATS8p;GATS8pe;GATS8s;GATS8se;GATS8v;GGI1_per_heavyatom;GGI10_per_heavyatom;GGI2_per_heavyatom;GGI3_per_heavyatom;GGI4_per_heavyatom;GGI5_per_heavyatom;GGI6_per_heavyatom;GGI7_per_heavyatom;GGI8_per_heavyatom;GGI9_per_heavyatom;GRAV_per_heavyatom;GRAVH_per_heavyatom;GRAVHp_per_heavyatom;GRAVp_per_heavyatom;GeomDiameter_per_heavyatom;GeomPetitjeanIndex;GeomRadius_per_heavyatom;GeomShapeIndex;GhoseFilter;HybRatio;IC0;IC1;IC2_per_heavyatom;IC3_per_heavyatom;IC4_per_heavyatom;IC5_per_heavyatom;JGI1;JGI10;JGI2;JGI3;JGI4;JGI5;JGI6;JGI7;JGI8;JGI9;JGT10;Kier1_per_heavyatom;Kier2_per_heavyatom;Kier3_per_heavyatom;LabuteASA_per_heavyatom;Lipinski;LogEE_A_per_heavyatom;LogEE_D_per_heavyatom;LogEE_Dt;LogEE_DzZ_per_heavyatom;LogEE_Dzare_per_heavyatom;LogEE_Dzi_per_heavyatom;LogEE_Dzm_per_heavyatom;LogEE_Dzp_per_heavyatom;LogEE_Dzpe_per_heavyatom;LogEE_Dzse_per_heavyatom;LogEE_Dzv_per_heavyatom;MATS1Z;MATS1are;MATS1c;MATS1d;MATS1dv;MATS1i;MATS1m;MATS1p;MATS1pe;MATS1s;MATS1se;MATS1v;MATS2Z;MATS2are;MATS2c;MATS2d;MATS2dv;MATS2i;MATS2m;MATS2p;MATS2pe;MATS2s;MATS2se;MATS2v;MATS3Z;MATS3are;MATS3c;MATS3d;MATS3dv;MATS3i;MATS3m;MATS3p;MATS3pe;MATS3s;MATS3se;MATS3v;MATS4Z;MATS4are;MATS4c;MATS4d;MATS4dv;MATS4i;MATS4m;MATS4p;MATS4pe;MATS4s;MATS4se;MATS4v;MATS5Z;MATS5are;MATS5c;MATS5d;MATS5dv;MATS5i;MATS5m;MATS5p;MATS5pe;MATS5s;MATS5se;MATS5v;MATS6Z;MATS6are;MATS6c;MATS6d;MATS6dv;MATS6i;MATS6m;MATS6p;MATS6pe;MATS6s;MATS6se;MATS6v;MATS7Z;MATS7are;MATS7c;MATS7d;MATS7dv;MATS7i;MATS7m;MATS7p;MATS7pe;MATS7s;MATS7se;MATS7v;MATS8Z;MATS8are;MATS8c;MATS8d;MATS8dv;MATS8i;MATS8m;MATS8p;MATS8pe;MATS8s;MATS8se;MATS8v;MDEC-22;MDEC-23;MDEC-33;MIC0;MIC1;MIC2;MIC3;MIC4;MIC5;MID_per_heavyatom;MID_C_per_heavyatom;MID_N_per_heavyatom;MID_O_per_heavyatom;MID_X;MID_h_per_heavyatom;MOMI-X_per_heavyatom;MOMI-Y_per_heavyatom;MOMI-Z_per_heavyatom;MPC10;MPC2;MPC3;MPC4;MPC5;MPC6;MPC7;MPC8;MPC9;MW_per_heavyatom;MWC01;MWC02_per_heavyatom;MWC03_per_heavyatom;MWC04_per_heavyatom;MWC05_per_heavyatom;MWC06_per_heavyatom;MWC07_per_heavyatom;MWC08_per_heavyatom;MWC09_per_heavyatom;MWC10_per_heavyatom;MZ;Mare;Mi;Mm;Mor01;Mor01m;Mor01p;Mor01se;Mor01v;Mor02;Mor02m;Mor02p;Mor02se;Mor02v;Mor03;Mor03m;Mor03p;Mor03se;Mor03v;Mor04;Mor04m;Mor04p;Mor04se;Mor04v;Mor05;Mor05m;Mor05p;Mor05se;Mor05v;Mor06;Mor06m;Mor06p;Mor06se;Mor06v;Mor07;Mor07m;Mor07p;Mor07se;Mor07v;Mor08;Mor08m;Mor08p;Mor08se;Mor08v;Mor09;Mor09m;Mor09p;Mor09se;Mor09v;Mor10;Mor10m;Mor10p;Mor10se;Mor10v;Mor11;Mor11m;Mor11p;Mor11se;Mor11v;Mor12;Mor12m;Mor12p;Mor12se;Mor12v;Mor13;Mor13m;Mor13p;Mor13se;Mor13v;Mor14;Mor14m;Mor14p;Mor14se;Mor14v;Mor15;Mor15m;Mor15p;Mor15se;Mor15v;Mor16;Mor16m;Mor16p;Mor16se;Mor16v;Mor17;Mor17m;Mor17p;Mor17se;Mor17v;Mor18;Mor18m;Mor18p;Mor18se;Mor18v;Mor19;Mor19m;Mor19p;Mor19se;Mor19v;Mor20;Mor20m;Mor20p;Mor20se;Mor20v;Mor21;Mor21m;Mor21p;Mor21se;Mor21v;Mor22;Mor22m;Mor22p;Mor22se;Mor22v;Mor23;Mor23m;Mor23p;Mor23se;Mor23v;Mor24;Mor24m;Mor24p;Mor24se;Mor24v;Mor25;Mor25m;Mor25p;Mor25se;Mor25v;Mor26;Mor26m;Mor26p;Mor26se;Mor26v;Mor27;Mor27m;Mor27p;Mor27se;Mor27v;Mor28;Mor28m;Mor28p;Mor28se;Mor28v;Mor29;Mor29m;Mor29p;Mor29se;Mor29v;Mor30;Mor30m;Mor30p;Mor30se;Mor30v;Mor31;Mor31m;Mor31p;Mor31se;Mor31v;Mor32;Mor32m;Mor32p;Mor32se;Mor32v;Mp;Mpe;Mse;Mv;NaaCH;NaaN;NaaNH;NaaO;NaaS;NaaaC;NaasC;NaasN;NdCH2;NdO;NdS;NddsN;NddssS;NdsCH;NdsN;NdssC;NsBr;NsCH3;NsCl;NsF;NsNH2;NsOH;NssCH2;NssNH;NssO;NssS;NsssCH;NsssN;NssssC;NtN;NtsC;PEOE_VSA1_per_heavyatom;PEOE_VSA10_per_heavyatom;PEOE_VSA11;PEOE_VSA12_per_heavyatom;PEOE_VSA13;PEOE_VSA2_per_heavyatom;PEOE_VSA3;PEOE_VSA4;PEOE_VSA5;PEOE_VSA6_per_heavyatom;PEOE_VSA7_per_heavyatom;PEOE_VSA8_per_heavyatom;PEOE_VSA9;PNSA1_per_heavyatom;PNSA2_per_heavyatom;PNSA3_per_heavyatom;PNSA4_per_heavyatom;PNSA5_per_heavyatom;PPSA1_per_heavyatom;PPSA2_per_heavyatom;PPSA3_per_heavyatom;PPSA4_per_heavyatom;PPSA5_per_heavyatom;PetitjeanIndex;RASA;RNCG_per_heavyatom;RNCS_per_heavyatom;RPCG_per_heavyatom;RPCS;RPSA;Radius;RotRatio;SIC0_per_heavyatom;SIC1_per_heavyatom;SIC2;SIC3;SIC4;SIC5;SLogP;SM1_Dt;SM1_DzZ_per_heavyatom;SM1_Dzare_per_heavyatom;SM1_Dzi_per_heavyatom;SM1_Dzm_per_heavyatom;SM1_Dzp_per_heavyatom;SM1_Dzpe_per_heavyatom;SM1_Dzse_per_heavyatom;SM1_Dzv_per_heavyatom;SMR_per_heavyatom;SMR_VSA1_per_heavyatom;SMR_VSA2;SMR_VSA3_per_heavyatom;SMR_VSA4;SMR_VSA5_per_heavyatom;SMR_VSA6;SMR_VSA7;SMR_VSA8;SMR_VSA9;SRW02_per_heavyatom;SRW03;SRW04_per_heavyatom;SRW05;SRW06_per_heavyatom;SRW07;SRW08_per_heavyatom;SRW09;SRW10_per_heavyatom;SZ_per_heavyatom;SaaCH;SaaN;SaaNH;SaaO;SaaS;SaaaC;SaasC;SaasN;Sare_per_heavyatom;SdCH2;SdO_per_heavyatom;SdS;SddsN;SddssS;SdsCH;SdsN;SdssC_per_heavyatom;Si_per_heavyatom;SlogP_VSA1_per_heavyatom;SlogP_VSA10;SlogP_VSA11;SlogP_VSA2_per_heavyatom;SlogP_VSA3_per_heavyatom;SlogP_VSA4;SlogP_VSA5_per_heavyatom;SlogP_VSA6;SlogP_VSA7;SlogP_VSA8;SlogP_VSA9;Sm_per_heavyatom;Sp_per_heavyatom;SpAD_A_per_heavyatom;SpAD_D_per_heavyatom;SpAD_Dt;SpAD_DzZ_per_heavyatom;SpAD_Dzare_per_heavyatom;SpAD_Dzi_per_heavyatom;SpAD_Dzm_per_heavyatom;SpAD_Dzp_per_heavyatom;SpAD_Dzpe_per_heavyatom;SpAD_Dzse_per_heavyatom;SpAD_Dzv_per_heavyatom;SpAbs_A_per_heavyatom;SpAbs_D_per_heavyatom;SpAbs_Dt;SpAbs_DzZ_per_heavyatom;SpAbs_Dzare_per_heavyatom;SpAbs_Dzi_per_heavyatom;SpAbs_Dzm_per_heavyatom;SpAbs_Dzp_per_heavyatom;SpAbs_Dzpe_per_heavyatom;SpAbs_Dzse_per_heavyatom;SpAbs_Dzv_per_heavyatom;SpDiam_A;SpDiam_D_per_heavyatom;SpDiam_Dt;SpDiam_DzZ_per_heavyatom;SpDiam_Dzare_per_heavyatom;SpDiam_Dzi_per_heavyatom;SpDiam_Dzm_per_heavyatom;SpDiam_Dzp_per_heavyatom;SpDiam_Dzpe_per_heavyatom;SpDiam_Dzse_per_heavyatom;SpDiam_Dzv_per_heavyatom;SpMAD_A;SpMAD_D_per_heavyatom;SpMAD_Dt;SpMAD_DzZ_per_heavyatom;SpMAD_Dzare_per_heavyatom;SpMAD_Dzi_per_heavyatom;SpMAD_Dzm_per_heavyatom;SpMAD_Dzp_per_heavyatom;SpMAD_Dzpe_per_heavyatom;SpMAD_Dzse_per_heavyatom;SpMAD_Dzv_per_heavyatom;SpMax_A;SpMax_D_per_heavyatom;SpMax_Dt;SpMax_DzZ_per_heavyatom;SpMax_Dzare_per_heavyatom;SpMax_Dzi_per_heavyatom;SpMax_Dzm_per_heavyatom;SpMax_Dzp_per_heavyatom;SpMax_Dzpe_per_heavyatom;SpMax_Dzse_per_heavyatom;SpMax_Dzv_per_heavyatom;Spe_per_heavyatom;SsBr;SsCH3;SsCl;SsF;SsNH2;SsOH;Sse_per_heavyatom;SssCH2;SssNH_per_heavyatom;SssO;SssS;SsssCH_per_heavyatom;SsssN;SssssC;StN;StsC;Sv_per_heavyatom;TASA_per_heavyatom;TIC0_per_heavyatom;TIC1_per_heavyatom;TIC2_per_heavyatom;TIC3_per_heavyatom;TIC4_per_heavyatom;TIC5_per_heavyatom;TMPC10;TMWC10_per_heavyatom;TPSA_per_heavyatom;TSRW10_per_heavyatom;TopoPSA_per_heavyatom;TopoPSA(NO)_per_heavyatom;TopoShapeIndex;TpiPC10_per_heavyatom;VAdjMat_per_heavyatom;VE1_A_per_heavyatom;VE1_D_per_heavyatom;VE1_Dt;VE1_DzZ_per_heavyatom;VE1_Dzare_per_heavyatom;VE1_Dzi_per_heavyatom;VE1_Dzm_per_heavyatom;VE1_Dzp_per_heavyatom;VE1_Dzpe_per_heavyatom;VE1_Dzse_per_heavyatom;VE1_Dzv_per_heavyatom;VE2_A_per_heavyatom;VE2_D_per_heavyatom;VE2_Dt;VE2_DzZ_per_heavyatom;VE2_Dzare_per_heavyatom;VE2_Dzi_per_heavyatom;VE2_Dzm_per_heavyatom;VE2_Dzp_per_heavyatom;VE2_Dzpe_per_heavyatom;VE2_Dzse_per_heavyatom;VE2_Dzv_per_heavyatom;VE3_A_per_heavyatom;VE3_D_per_heavyatom;VE3_Dt;VE3_DzZ_per_heavyatom;VE3_Dzare_per_heavyatom;VE3_Dzi_per_heavyatom;VE3_Dzm_per_heavyatom;VE3_Dzp_per_heavyatom;VE3_Dzpe_per_heavyatom;VE3_Dzse_per_heavyatom;VE3_Dzv_per_heavyatom;VMcGowan_per_heavyatom;VR1_A_log_scaled;VR1_D_per_heavyatom;VR1_Dt;VR1_DzZ_per_heavyatom;VR1_Dzare_per_heavyatom;VR1_Dzi_per_heavyatom;VR1_Dzm_per_heavyatom;VR1_Dzp_per_heavyatom;VR1_Dzpe_per_heavyatom;VR1_Dzse_per_heavyatom;VR1_Dzv_per_heavyatom;VR2_A_log_scaled;VR2_D_per_heavyatom;VR2_Dt;VR2_DzZ_per_heavyatom;VR2_Dzare_per_heavyatom;VR2_Dzi_per_heavyatom;VR2_Dzm_per_heavyatom;VR2_Dzp_per_heavyatom;VR2_Dzpe_per_heavyatom;VR2_Dzse_per_heavyatom;VR2_Dzv_per_heavyatom;VR3_A_per_heavyatom;VR3_D_per_heavyatom;VR3_Dt;VR3_DzZ_per_heavyatom;VR3_Dzare_per_heavyatom;VR3_Dzi_per_heavyatom;VR3_Dzm_per_heavyatom;VR3_Dzp_per_heavyatom;VR3_Dzpe_per_heavyatom;VR3_Dzse_per_heavyatom;VR3_Dzv_per_heavyatom;VSA_EState1_per_heavyatom;VSA_EState2_per_heavyatom;VSA_EState3_per_heavyatom;VSA_EState4_per_heavyatom;VSA_EState5_per_heavyatom;VSA_EState6_per_heavyatom;VSA_EState7_per_heavyatom;VSA_EState8_per_heavyatom;VSA_EState9_per_heavyatom;Vabc_per_heavyatom;WNSA1_per_heavyatom;WNSA2_per_heavyatom;WNSA3_per_heavyatom;WNSA4_per_heavyatom;WNSA5_per_heavyatom;WPSA1_per_heavyatom;WPSA2_per_heavyatom;WPSA3_per_heavyatom;WPSA4_per_heavyatom;WPSA5_per_heavyatom;WPath;WPol;Xc-3d_per_heavyatom;Xc-3dv_per_heavyatom;Xc-4d;Xc-4dv;Xc-5d_per_heavyatom;Xc-5dv;Xc-6d;Xc-6dv;Xch-3d;Xch-3dv;Xch-4d;Xch-4dv;Xch-5d;Xch-5dv;Xch-6d;Xch-6dv;Xch-7d;Xch-7dv;ZMIC0_per_heavyatom;ZMIC1_per_heavyatom;ZMIC2_per_heavyatom;ZMIC3_per_heavyatom;ZMIC4_per_heavyatom;ZMIC5;Zagreb1;Zagreb2;apol_per_heavyatom;bpol_per_heavyatom;fMF;fragCpx_per_heavyatom;mZagreb1_per_heavyatom;mZagreb2_per_heavyatom;n10AHRing;n10ARing;n10FAHRing;n10FARing;n10FHRing;n10FRing;n10FaHRing;n10FaRing;n10HRing;n10Ring;n10aHRing;n10aRing;n11AHRing;n11ARing;n11FAHRing;n11FARing;n11FHRing;n11FRing;n11FaHRing;n11FaRing;n11HRing;n11Ring;n11aHRing;n11aRing;n12AHRing;n12ARing;n12FAHRing;n12FARing;n12FHRing;n12FRing;n12FaHRing;n12FaRing;n12HRing;n12Ring;n12aHRing;n12aRing;n3AHRing;n3ARing;n3HRing;n3Ring;n3aHRing;n3aRing;n4AHRing;n4ARing;n4FAHRing;n4FARing;n4FHRing;n4FRing;n4FaHRing;n4FaRing;n4HRing;n4Ring;n4aHRing;n4aRing;n5AHRing;n5ARing;n5FAHRing;n5FARing;n5FHRing;n5FRing;n5FaHRing;n5FaRing;n5HRing;n5Ring;n5aHRing;n5aRing;n6AHRing;n6ARing;n6FAHRing;n6FARing;n6FHRing;n6FRing;n6FaHRing;n6FaRing;n6HRing;n6Ring;n6aHRing;n6aRing;n7AHRing;n7ARing;n7FAHRing;n7FARing;n7FHRing;n7FRing;n7FaHRing;n7FaRing;n7HRing;n7Ring;n7aHRing;n7aRing;n8AHRing;n8ARing;n8FAHRing;n8FARing;n8FHRing;n8FRing;n8FaHRing;n8FaRing;n8HRing;n8Ring;n8aHRing;n8aRing;n9AHRing;n9ARing;n9FAHRing;n9FARing;n9FHRing;n9FRing;n9FaHRing;n9FaRing;n9HRing;n9Ring;n9aHRing;n9aRing;nAHRing;nARing;nAcid;nAromAtom;nAromBond;nAtom;nB;nBase;nBonds;nBondsA;nBondsD;nBondsKD;nBondsKS;nBondsM;nBondsO;nBondsS;nBondsT;nBr;nBridgehead;nC;nCl;nF;nFAHRing;nFARing;nFHRing;nFRing;nFaHRing;nFaRing;nG12AHRing;nG12ARing;nG12FAHRing;nG12FARing;nG12FHRing;nG12FRing;nG12FaHRing;nG12FaRing;nG12HRing;nG12Ring;nG12aHRing;nG12aRing;nH;nHBAcc;nHBDon;nHRing;nHeavyAtom;nHetero;nI;nN;nO;nP;nRing;nRot;nS;nSpiro;nX;naHRing;naRing;piPC1_per_heavyatom;piPC10_per_heavyatom;piPC2_per_heavyatom;piPC3_per_heavyatom;piPC4_per_heavyatom;piPC5_per_heavyatom;piPC6_per_heavyatom;piPC7_per_heavyatom;piPC8_per_heavyatom;piPC9_per_heavyatom,1,mordred diff --git a/atomsci/ddm/pipeline/featurization.py b/atomsci/ddm/pipeline/featurization.py index 9a1344d7..5236fbff 100644 --- a/atomsci/ddm/pipeline/featurization.py +++ b/atomsci/ddm/pipeline/featurization.py @@ -1952,7 +1952,7 @@ def compute_descriptors(self, smiles_df, params): raise Exception("mordred package needs to be installed to use Mordred descriptors") desc_df, is_valid = self.compute_mordred_descriptors(smiles_df[params.smiles_col].values, params) if descr_scaled: - desc_df = self.scale_by_heavyatomcount(desc_df, params.descriptor_type) + desc_df = self.scale_by_heavyatomcount_and_log_scale(desc_df, params.descriptor_type) desc_df = desc_df[descr_cols] # Add the ID and SMILES columns to the returned data frame @@ -1965,7 +1965,8 @@ def compute_descriptors(self, smiles_df, params): elif descr_source == 'rdkit': desc_df, is_valid = self.compute_rdkit_descriptors(smiles_df, smiles_col = params.smiles_col) if descr_scaled: - desc_df = self.scale_by_heavyatomcount(desc_df, params.descriptor_type) + desc_df = self.scale_by_heavyatomcount_and_log_scale(desc_df, params.descriptor_type) + # RDKit features do not contain log scale features desc_df = desc_df[descr_cols] # Add the ID and SMILES columns to the returned data frame @@ -2091,7 +2092,7 @@ def scale_moe_descriptors(self, desc_df, descr_type): return scaled_df.copy() # **************************************************************************************** - def scale_by_heavyatomcount(self, desc_df, descr_type, heavy_atom_col=''): + def scale_by_heavyatomcount_and_log_scale(self, desc_df, descr_type, heavy_atom_col=''): """Scale selected descriptors computed by rdkit or mordred by dividing their values by the heavy atom count per molecule. Args: @@ -2099,9 +2100,15 @@ def scale_by_heavyatomcount(self, desc_df, descr_type, heavy_atom_col=''): descr_type (str): Descriptor type, used to look up expected set of descriptor columns. + heavy_atom_col (str): Column containing the heavy atom count. Default value is '', which will try + to infer the heavy atom count column based on descr_type. + Returns: scaled_df (DataFrame): Data frame with scaled descriptors. + Raises: + ValueError: If there are negative feature values in a column that needs log scaling + """ cls = self.__class__ descr_cols = cls.desc_type_cols[descr_type] @@ -2117,6 +2124,7 @@ def scale_by_heavyatomcount(self, desc_df, descr_type, heavy_atom_col=''): "Should be HeavyAtomCount or nHeavyAtom or set using the heavy_atom_col parameter") unscaled_desc_cols = [col.replace('_per_heavyatom', '') for col in descr_cols] + unscaled_desc_cols = [col.replace('_log_scaled', '') for col in unscaled_desc_cols] nondesc_cols = list(set(desc_df.columns.values) - set(unscaled_desc_cols)) scaled_cols=[desc_df[nondesc_cols].copy()] for scaled_col, unscaled_col in zip(descr_cols, unscaled_desc_cols): @@ -2124,6 +2132,13 @@ def scale_by_heavyatomcount(self, desc_df, descr_type, heavy_atom_col=''): tmp_col=desc_df[unscaled_col] / ha_count tmp_col=tmp_col.rename(scaled_col) scaled_cols.append(tmp_col) + elif scaled_col.endswith('_log_scaled'): + feat_vals = desc_df[unscaled_col] + if any(feat_vals < 0): + raise ValueError(f"Cannot log scale {unscaled_col} because of negative values in feature.") + tmp_col=np.log(feat_vals) + tmp_col=tmp_col.rename(scaled_col) + scaled_cols.append(tmp_col) else: tmp_col=desc_df[unscaled_col] tmp_col=tmp_col.rename(scaled_col) diff --git a/atomsci/ddm/test/integrative/delaney_Panel/test_delaney_panel.py b/atomsci/ddm/test/integrative/delaney_Panel/test_delaney_panel.py index 2dbd9640..6f599a53 100644 --- a/atomsci/ddm/test/integrative/delaney_Panel/test_delaney_panel.py +++ b/atomsci/ddm/test/integrative/delaney_Panel/test_delaney_panel.py @@ -359,6 +359,6 @@ def test_class_config_H1_fit_NN_moe(): train_and_predict('jsons/class_config_H1_fit_NN_moe.json', prefix='H1') if __name__ == '__main__': - test_class_config_delaney_fit_XGB_mordred_filtered() + test_class_config_delaney_fit_XGB_rdkit_scaled() test_class_config_delaney_fit_XGB_mordred_filtered_scaled() #pass From e0af6a2dd8302c9d1e0c352f9d78ff959a95c990 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Thu, 17 Apr 2025 09:08:21 -0700 Subject: [PATCH 22/23] Updated input sanity check for SklearnPipeLineWrapper. Removed 'add_indicator' flag because that changed the number of features and crashed. --- atomsci/ddm/pipeline/featurization.py | 6 ++---- atomsci/ddm/pipeline/transformations.py | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/atomsci/ddm/pipeline/featurization.py b/atomsci/ddm/pipeline/featurization.py index 5236fbff..b749418d 100644 --- a/atomsci/ddm/pipeline/featurization.py +++ b/atomsci/ddm/pipeline/featurization.py @@ -1644,8 +1644,7 @@ def create_feature_transformer(self, dataset, params): transformers_x = [trans.NormalizationTransformerMissingData(transform_X=True, dataset=dataset)] elif params.feature_transform_type == 'RobustScaler': # keep_empty_features is set to true so that feature counts do not change - imputer = SimpleImputer(strategy=params.imputer_strategy, keep_empty_features=True, - add_indicator=True) # this is true so that inverse works + imputer = SimpleImputer(strategy=params.imputer_strategy, keep_empty_features=True) # Check quartile_range has length 2 and convert it into a tuple quartiles = params.robustscaler_quartile_range assert len(quartiles) == 2, f'robustscaler_quartile_range must have length 2, got {quartiles}.' @@ -1663,8 +1662,7 @@ def create_feature_transformer(self, dataset, params): ] elif params.feature_transform_type == 'PowerTransformer': # keep_empty_features is set to true so that feature counts do not change - imputer = SimpleImputer(strategy=params.imputer_strategy, keep_empty_features=True, - add_indicator=True) # this is true so that inverse works + imputer = SimpleImputer(strategy=params.imputer_strategy, keep_empty_features=True) power_transformer = PowerTransformer( method=params.powertransformer_method, standardize=params.powertransformer_standardize diff --git a/atomsci/ddm/pipeline/transformations.py b/atomsci/ddm/pipeline/transformations.py index 84124f97..b19be0ac 100644 --- a/atomsci/ddm/pipeline/transformations.py +++ b/atomsci/ddm/pipeline/transformations.py @@ -208,7 +208,7 @@ def __init__(self, dataset, sklearn_pipeline, self.transform_y = transform_y self.transform_w = transform_w - assert sum([self.transform_X, self.transform_y, self.transform_w]), \ + assert (self.transform_X ^ self.transform_y) ^ self.transform_w, \ "This transformer can operate on only one of X, y, or w." self.sklearn_pipeline = sklearn_pipeline @@ -235,7 +235,7 @@ def transform_array(self, X, y, w, ids): return (X, y, w, ids) def untransform(self, z: np.ndarray) -> np.ndarray: - return self.sklearn_pipeline.inverse_transform(z) + raise NotImplementedError("SklearnPipelineWrapper does not support inverse transforms") # **************************************************************************************** From 8d981659658c00ff3f9e218cfc3483f2c35b9359 Mon Sep 17 00:00:00 2001 From: "he6@llnl.gov" Date: Mon, 21 Apr 2025 09:29:28 -0700 Subject: [PATCH 23/23] Updated transformer test to expect NotImpelmentedError when untransforming using SklearnPipelineWrapper --- atomsci/ddm/test/unit/test_transformers.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/atomsci/ddm/test/unit/test_transformers.py b/atomsci/ddm/test/unit/test_transformers.py index 9cb43a34..c8bdd184 100644 --- a/atomsci/ddm/test/unit/test_transformers.py +++ b/atomsci/ddm/test/unit/test_transformers.py @@ -1,6 +1,7 @@ import atomsci.ddm.pipeline.transformations as trans import numpy as np from deepchem.data import NumpyDataset +import pytest from sklearn.preprocessing import RobustScaler, PowerTransformer @@ -27,8 +28,9 @@ def test_sklearn_pipeline_wrapper(): np.testing.assert_array_almost_equal(transformed_dataset.X, expected_transformed_X) # Test untransform on X - untransformed_X = transformer.untransform(transformed_dataset.X) - np.testing.assert_array_almost_equal(untransformed_X, X) + with pytest.raises(NotImplementedError) as exception_info: + untransformed_X = transformer.untransform(transformed_dataset.X) + assert str(exception_info.value) == 'SklearnPipelineWrapper does not support inverse transforms' # Test with PowerTransformer on y power_transformer = PowerTransformer() @@ -38,8 +40,9 @@ def test_sklearn_pipeline_wrapper(): np.testing.assert_array_almost_equal(transformed_dataset.y, expected_transformed_y) # Test untransform on y - untransformed_y = transformer.untransform(transformed_dataset.y) - np.testing.assert_array_almost_equal(untransformed_y, y) + with pytest.raises(NotImplementedError) as exception_info: + untransformed_y = transformer.untransform(transformed_dataset.y) + assert str(exception_info.value) == 'SklearnPipelineWrapper does not support inverse transforms' # Test with RobustScaler on w transformer = trans.SklearnPipelineWrapper(dataset, scaler, transform_w=True) @@ -48,8 +51,9 @@ def test_sklearn_pipeline_wrapper(): np.testing.assert_array_almost_equal(transformed_dataset.w, expected_transformed_w) # Test untransform on w - untransformed_w = transformer.untransform(transformed_dataset.w) - np.testing.assert_array_almost_equal(untransformed_w, w) + with pytest.raises(NotImplementedError) as exception_info: + untransformed_w = transformer.untransform(transformed_dataset.w) + assert str(exception_info.value) == 'SklearnPipelineWrapper does not support inverse transforms' def test_no_missing_values(): """