workbench 0.8.483__tar.gz → 0.8.485__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {workbench-0.8.483 → workbench-0.8.485}/PKG-INFO +1 -1
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/Dockerfile +1 -1
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/assets/ml_pipelines/render.js +20 -12
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/requirements.lock +3 -3
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_dashboard/app.py +1 -1
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_dashboard/workbench_dashboard/workbench_dashboard_stack.py +2 -1
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/cyp_challenge.md +13 -10
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/uncertainty_quantification.md +6 -4
- workbench-0.8.485/docs/images/uq_endpoint_flow.svg +97 -0
- workbench-0.8.485/docs/presentations/pxr_repl_demo.md +137 -0
- {workbench-0.8.483 → workbench-0.8.485}/lambda_layers/build_deploy.sh +1 -1
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_chemprop_2d6.py +2 -2
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_chemprop_union.py +3 -2
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_feature_sets.py +30 -30
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/pipelines.json +13 -8
- workbench-0.8.485/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_readout_phase1.py +40 -0
- workbench-0.8.485/ml_pipelines/OpenADMET/pxr/phase1/pxr_tabicl_spike_phase1.py +134 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/pipelines.json +17 -3
- workbench-0.8.485/ml_pipelines/OpenADMET/pxr/pxr_chemprop_lfc.py +29 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/pxr_feature_sets.py +10 -8
- workbench-0.8.485/ml_pipelines/OpenADMET/pxr/pxr_lfc_feature_sets.py +31 -0
- workbench-0.8.485/ml_pipelines/OpenADMET/pxr/pxr_readout_feature_sets.py +40 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/base/inference/Dockerfile +1 -1
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/base/inference/requirements.lock +2 -2
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/base/training/Dockerfile +1 -1
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/base/training/requirements.lock +1 -1
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/ml_pipelines/Dockerfile +1 -1
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/ml_pipelines/requirements.lock +3 -3
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/pytorch_chem/inference/Dockerfile +1 -1
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/pytorch_chem/inference/requirements.lock +2 -2
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/pytorch_chem/training/Dockerfile +1 -1
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/pytorch_chem/training/requirements.lock +1 -1
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/challenges/cyp_challenge.md +132 -76
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/models/multi_task.md +14 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/chemprop/chemprop.template +1 -1
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/multi_task.py +23 -11
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench.egg-info/PKG-INFO +1 -1
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench.egg-info/SOURCES.txt +6 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench.egg-info/scm_file_list.json +6 -0
- workbench-0.8.485/src/workbench.egg-info/scm_version.json +8 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/specific/multi_task_tests.py +70 -0
- {workbench-0.8.483 → workbench-0.8.485}/uv.lock +55 -58
- workbench-0.8.483/docs/images/uq_endpoint_flow.svg +0 -83
- workbench-0.8.483/src/workbench.egg-info/scm_version.json +0 -8
- {workbench-0.8.483 → workbench-0.8.485}/.flake8 +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/.gitattributes +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/.github/dependabot.yml +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/.github/workflows/aws-tests.yml +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/.github/workflows/deploy-docs.yml +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/.github/workflows/endpoint-import-smoke.yml +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/.github/workflows/gitleaks.yml +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/.github/workflows/lockfile-drift.yml +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/.github/workflows/publish.yml +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/.github/workflows/python-lint.yml +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/.gitignore +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/.gitleaks.toml +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/.pre-commit-config.yaml +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/CONTRIBUTING.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/Dockerfile +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/LICENSE +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/Makefile +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/SECURITY.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/.gitignore +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/app.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/assets/contests/render.js +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/assets/contests/styles.css +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/assets/favicon.ico +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/assets/ml_pipelines/styles.css +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/dashboard +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/deploy.sh +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/open_source_config.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/contests/callbacks.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/contests/layout.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/contests/page.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/data_sources/callbacks.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/data_sources/layout.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/data_sources/page.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/endpoints/callbacks.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/endpoints/layout.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/endpoints/page.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/feature_sets/callbacks.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/feature_sets/layout.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/feature_sets/page.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/main/callbacks.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/main/layout.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/main/page.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/ml_pipelines/callbacks.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/ml_pipelines/layout.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/ml_pipelines/page.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/models/callbacks.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/models/layout.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/models/page.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/pages/status/page.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/requirements.in +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/static/dark.css +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/static/light.css +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/aws_account_setup.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/aws_identity_check.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/build_ml_pipeline.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_compute/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_compute/app.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_compute/cdk.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_compute/requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_compute/workbench_compute/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_compute/workbench_compute/lambdas/batch_failure/handler.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_compute/workbench_compute/lambdas/batch_trigger/handler.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_compute/workbench_compute/workbench_compute_stack.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_core/.gitignore +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_core/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_core/app.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_core/cdk.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_core/requirements-dev.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_core/requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_core/source.bat +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_core/workbench_core/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_core/workbench_core/workbench_core_stack.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_dashboard/.gitignore +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_dashboard/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_dashboard/cdk.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_dashboard/requirements-dev.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_dashboard/requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_dashboard/source.bat +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_dashboard/workbench_dashboard/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_vpc/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_vpc/app.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_vpc/cdk.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_vpc/requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_vpc/workbench_vpc/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/aws_setup/workbench_vpc/workbench_vpc/workbench_vpc_stack.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ci/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ci/endpoint_import_smoke.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ci/endpoint_smoke_requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ci/lock.sh +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ci/template_import_check.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ci/workbench_ci_config.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/abalone.csv +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/karate_graph.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/alignment_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/build_logp_logd_overlap.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/build_synthetic_multi_task.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/build_tagging_reference.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/descriptions.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/logp_to_feature_set.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/overlap_summary.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/pull_chembl_cyp_data.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/pull_common.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/pull_logd_data.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/pull_logp_data.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/pull_openadmet_data.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/pull_pubchem_cyp_data.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/pull_tox21_cyp_data.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/public_data/upload_data.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/test_data.csv +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/test_data.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/data/wine_dataset.csv +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/deploy_docker.sh +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/admin/aws_service_limits.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/admin/base_docker_push.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/admin/dashboard_docker_push.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/admin/dashboard_s3_plugins.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/admin/images/dashboard_secret_click.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/admin/images/serverless_quotas.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/admin/images/status_showing_S3_path.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/admin/pypi_release.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/admin/workbench_docker_for_lambdas.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/async_endpoint.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/compound.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/data_source.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/df_store.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/endpoint.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/feature_set.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/graph_store.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/inference_cache.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/inference_store.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/meta.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/meta_endpoint.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/model.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/monitor.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/overview.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/parameter_store.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/public_data.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/reports.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/api_classes/views.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/aws_setup/aws_setup.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/aws_setup/aws_tips_and_tricks.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/aws_setup/compute_stack.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/aws_setup/core_stack.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/aws_setup/dashboard_stack.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/aws_setup/domain_cert_setup.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/aws_setup/full_pipeline.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/aws_setup/iam_assume_role.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/aws_setup/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/aws_setup/redis_tunnel.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/aws_setup/sso_assume_role.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/aws_setup/stacks.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/3d_descriptors.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/aws_endpoint_architecture.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/chemprop_multi_task.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/chemprop_shap.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/confusion_explorer.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/feature_endpoints.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/ml_agent.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/molecular_standardization.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/pxr_weekend_experiments.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/storage/compound_etl.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/storage/compound_explorer.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/storage/eda.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/storage/feature_importances.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/storage/fun_with_endpoints.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/storage/htg.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/storage/model_monitoring.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/blogs/storage/residual_analysis.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/bosco/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/bosco/security.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/cached/cached_data_source.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/cached/cached_endpoint.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/cached/cached_feature_set.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/cached/cached_meta.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/cached/cached_model.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/cached/overview.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/chem_utils/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/ci/github_oidc_setup.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/ci/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/cloudwatch/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/comparisons/workbench_vs_databricks.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/compound_explorer/tox21.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/compound_explorer/toxicity_modeling.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/confidence/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/artifacts/artifact.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/artifacts/async_endpoint_core.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/artifacts/athena_source.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/artifacts/data_source_abstract.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/artifacts/endpoint_core.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/artifacts/feature_set_core.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/artifacts/model_core.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/artifacts/monitor_core.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/artifacts/overview.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/overview.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/pipelines/pipeline_meta.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/transforms/data_loaders_heavy.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/transforms/data_loaders_light.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/transforms/data_to_features.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/transforms/features_to_model.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/transforms/model_to_endpoint.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/transforms/overview.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/transforms/pandas_transforms.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/transforms/transform.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/views/column_subset_view.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/views/computation_view.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/views/create_view.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/views/display_view.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/views/inference_view.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/views/overview.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/core_classes/views/pandas_to_view.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/data_algorithms/dataframes/overview.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/data_algorithms/graphs/overview.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/data_algorithms/overview.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/data_algorithms/spark/overview.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/data_algorithms/sql/overview.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/enterprise/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/enterprise/private_saas.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/enterprise/project_branding.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/enterprise/themes.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/getting_started/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/glue/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/3d_descriptor_pipeline.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/3d_descriptor_pipeline_detail.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/3d_descriptor_v2_pipeline.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/agent_repl_chat.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/bedrock_prompt_path.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/big_spider.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/bosco_dashboard_model.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/bosco_egress_guarded.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/bosco_isoform_parity.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/bosco_neighborhood.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/bosco_top_residuals.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/chemprop_logd.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/chemprop_mt_expansion.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/chemprop_mt_transfer.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/chemprop_overview.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/chemprop_shap_logd.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/chemprop_shap_pipeline.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/confidence_percentile.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/conformal_calibration.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/confusion_explorer/drilldown_on_errors.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/confusion_explorer/high_confidence.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/confusion_explorer/overview.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/cyp_calibration_applied.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/default_stack_flow.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/endpoint_architecture.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/graph_representation.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/meta_endpoint_ensemble.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/meta_endpoint_feature.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/powered_aws_dark_blue.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/powered_aws_transparent.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/powered_aws_white.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/powered_aws_with_tm_grey.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/scp.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/scp_labs.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/small_spider.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/uq_conf_residual.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/uq_conformal.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/uq_pred_scatter.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/uq_v1_signals.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/uq_v1_training.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/workbench_async_stack_flow.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/workbench_concepts.png +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/images/workbench_stack_flow.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/javascripts/mathjax.js +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/lambda_layer/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/local/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/misc/faq.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/misc/general_info.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/misc/scp_consulting.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/misc/workbench_classes_concepts.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/ml_pipelines/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/model_utils/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/chemprop_models.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/cleanlab_models.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/fingerprint_models.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/hpo.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/images/chemprop_decision_tree.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/images/chemprop_desc_architecture.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/images/confidence.jpg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/images/hpo_details.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/images/hpo_overview.svg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/meta_endpoints.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/pytorch_models.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/sklearn_models.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/models/xgboost_models.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/plugins/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/presentations/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/release_notes/0_8_158.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/release_notes/0_8_339.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/release_notes/0_8_358.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/release_notes/0_8_384.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/release_notes/0_8_396.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/release_notes/0_8_398.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/release_notes/0_8_441.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/release_notes/0_8_450.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/repl/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/road_maps/0_9_0.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/road_maps/0_9_5.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/stylesheets/extra.css +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/themes/details.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/docs/themes/index.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/ag-grid/hello_world.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/chem_utils/curate_admet_dataset.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/chem_utils/tag_molecules.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/chem_utils/tautomerize_smiles.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/datasource/datasource_from_df.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/datasource/datasource_from_s3.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/datasource/datasource_query.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/datasource/datasource_stats.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/datasource/datasource_to_featureset.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/endpoint/endpoint_details.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/endpoint/endpoint_inference.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/endpoint/endpoint_metrics.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/featureset/featureset_eda.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/featureset/featureset_query.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/full_ml_pipeline.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/glue_jobs/glue_example_1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/glue_jobs/glue_example_2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/glue_jobs/glue_example_3.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/glue_jobs/glue_launcher_examples/example_1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/glue_jobs/glue_launcher_examples/example_2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/graph/aqsol_proximity_path.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/meta/meta_list_endpoints.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/meta/meta_list_models.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/meta/meta_model_summary.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/ml_flow/.gitignore +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/ml_flow/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/ml_flow/aqsol_mlflow.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/ml_flow/aqsol_workbench_holdout.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/model_utils/model_metrics.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/model_utils/model_to_endpoint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/model_utils/onboard_model.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/aqsol_example.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/chemprop.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/chemprop_bounded_loss_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/chemprop_foundation.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/chemprop_hpo.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/chemprop_logp_logd_synthetic.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/chemprop_logp_logd_tiered.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/chemprop_open_admet.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/dbscan.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/knn.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/meta_endpoint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/pytorch.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/random_forest.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/split_comparison_chemprop.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/split_comparison_pytorch.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/split_comparison_xgb.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/uq_storage/bayesian_ridge.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/uq_storage/ensemble_xgb.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/uq_storage/gaussian_process.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/uq_storage/meta_uq.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/uq_storage/ngboost.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/uq_storage/quant_xgb.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/models/xgb_model.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/monitor/monitor_setup.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/monitor/monitor_usage.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/assets/hello/render.js +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/assets/hello/styles.css +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/branding/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/branding/scp.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/components/custom_plugin.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/components/endpoint_plugin.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/components/endpoint_turbo.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/components/model_markdown.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/components/model_plugin.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/packages/my_plugin_utils/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/packages/my_plugin_utils/assets/foo.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/packages/my_plugin_utils/cool_stuff.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/pages/plugin_page_1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/pages/plugin_page_2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/pages/plugin_page_3.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/pages/plugin_page_assets.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/templates/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/views/model_plugin_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/examples/plugins/views/my_view_plugin.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/experiments/chem_info/bulk_sims.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/experiments/chem_info/knn_sims.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/experiments/confidence_roc_curve.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/experiments/coverage_probability.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/experiments/db_scan_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/experiments/log_testing.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/experiments/networkx_id.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/experiments/prediction_intervals.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/experiments/residual_analysis.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/experiments/rocauc_testing.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/experiments/scatter_zoom_issue.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/_common.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/model_scripts/molecular_utils/fingerprints.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/model_scripts/molecular_utils/mol_descriptors.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/model_scripts/molecular_utils/mol_descriptors_3d.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/model_scripts/molecular_utils/mol_descriptors_3d_v2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/model_scripts/molecular_utils/mol_standardize.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/model_scripts/requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/model_scripts/smiles_to_2d_model_script.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/model_scripts/smiles_to_2d_salt_model_script.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/model_scripts/smiles_to_3d_v1_model_script.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/model_scripts/smiles_to_3d_v2_model_script.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/model_scripts/smiles_to_fingerprints_model_script.template +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/smiles_to_2d_3d_salt_v2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/smiles_to_2d_3d_v1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/smiles_to_2d_3d_v2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/smiles_to_2d_salt_v1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/smiles_to_2d_v1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/smiles_to_3d_v1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/smiles_to_3d_v2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/feature_endpoints/smiles_to_fingerprints_v1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/glue_jobs/create_glue_workflow_with_trigger.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/glue_jobs/example_glue_job.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/lambda_layers/.gitignore +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/lambda_layers/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/lambda_layers/example_lambda/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/lambda_layers/example_lambda/handler.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/lambda_layers/example_lambda/local_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/lambda_layers/example_lambda/sample_pipelines/demo/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/lambda_layers/requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/mkdocs.yml +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/.gitignore +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/README_rx.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/caco2_efflux/caco2_efflux.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/caco2_efflux/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/caco2_papp_a_b/caco2_papp_a_b.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/caco2_papp_a_b/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_aux_features.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_chemprop_mt_aux_100.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_union_features.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_xgb_3dv2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_2d6_pharmacophore.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_aux_alignment.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_calibration_figures.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_compare.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_ensemble_submit.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_error_decomposition.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_leaderboard.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_member_diversity.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_mix_submission.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_pooling_precheck.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_recalibrate.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_ruler_power.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_seed_noise.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_submit.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_tox21_anchors.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_verify_claims.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/openadmet_validation/LICENSE +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/openadmet_validation/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/openadmet_validation/activity_validation.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/openadmet_validation/tdi_validation.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_censored_features.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt_100.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt_all.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt_aux.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt_censored.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_pytorch_3dv2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_xgb_fp.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/hlm_clint/hlm_clint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/hlm_clint/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/images/confidence.jpg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/images/open_admet_model.jpg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/inference/open_admet/rx_test_champions.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/ksol/ksol.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/ksol/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/load_data/load_data.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/load_data/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/logd/logd.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/logd/logd_chemprop_hpo.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/logd/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/mbpb/mbpb.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/mbpb/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/mgmb/mgmb.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/mgmb/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/mlm_clint/mlm_clint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/mlm_clint/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/mppb/mppb.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/mppb/mppb_chemprop_hpo.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/mppb/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_chemeleon_phase1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_hpo_phase1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_mt_hpo_phase1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_mt_phase1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_phase1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_tuned_phase1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_pytorch_hpo_phase1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_xgb_hpo_phase1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase2/activity_leaderboard_phase2.csv +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase2/pxr_chemprop_mt_phase2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase2/pxr_chemprop_phase2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/pxr_chemprop_mt_feature_sets.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/pxr_pytorch_3dv2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/support/hello_world.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/support/model_metrics.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/support/run_inference.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/OpenADMET/support/utils/compute_model_metrics.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_chemprop_hpo.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_class_1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_class_2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_feature_set.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_reg_1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_reg_2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_xgb_custom_space.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_xgb_hpo.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/abalone/abalone.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/abalone/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/pipeline_utils_check/pipeline_utils_check.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/test_data/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/test_data/test_data.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/wine_data/pipelines.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/Testing/wine_data/wine_classifier.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/pipeline_utils/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/pipeline_utils/smoke.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/plugins/models/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ml_pipelines/plugins/models/model_promotion.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/presentations/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/pyproject.toml +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/base/inference/requirements.in +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/base/training/requirements.in +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/build_deploy.sh +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/deploy_all +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/ml_pipelines/ml_pipeline_runner.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/pytorch_chem/inference/requirements.in +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/pytorch_chem/training/requirements.in +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/shared/main.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/shared/serve +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/tests/data/abalone_sm.csv +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/tests/example_model_script.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/tests/run_tests.sh +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/tests/test_inference.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/sagemaker_images/tests/test_training.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/active_logs.sh +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admet/partition_aqsol_alignment.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/async_typical_usage.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/athena_ddl_mixed_case.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/backfill_autoscaling_alarm_metadata.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/backfill_prm_endpoint_tags.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/backup_data_captures.sh +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/check_all_glue_tables.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/chemprop_timing_report.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/compact_inference_cache.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/contest_audit.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/data_capture_report.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/delete_data_captures.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/delete_old_lambda_layers.sh +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/delete_redis_keys.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/deploy_plugins.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/feature_endpoint_update_check.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/find_models_with_bridges.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/find_orphan_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/find_orphan_models.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/find_orphan_parameters.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/find_orphan_tables.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/inference_cache_concurrency_check.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/inference_capture_check.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/ladder_quotas.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/ladder_steps.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/list_datacatalog.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/migration/TAG_MIGRATION.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/migration/migrate_legacy_tags.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/populate_activity_cliffs_reference_compounds.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/populate_reference_compounds.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/pull_image_digest.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/push_chemeleon_models.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/redis_reaper.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/reference_compounds/3d.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/reference_compounds/3d_perf.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/reference_compounds/complexity_skips.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/reference_compounds/corner_cases.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/reference_compounds/standardization.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/reference_compounds_common.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/smiles_nan_investigation.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/spam_list_tags.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/storage/convert_training_views.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/storage/copy_data_sources_across_envs.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/storage/migrate_data_source_via_df.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/storage/migrate_ds_meta.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/test_3d_descriptors.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/test_3d_endpoint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/test_batch_job_failure.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/test_no_workbench_config.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/training_job_status.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/admin/verify_async_autoscaling.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/benchmark_fp_proximity.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/compare_dataframes.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/compare_model_packages.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/endpoint_timing.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/get_tags.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/llm_deploys/deepseek_deploy.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/model_cache_refresh.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/model_endpoint_sanity_check.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/monitor_event_bridge.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/onboard_endpoints.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/onboard_models.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/pubchem/pubchem_example.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/pubchem/pubchem_query.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/pubchem/pubchem_query_with_cid.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/sagemaker_pipeline_model_endpoint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/seaborn_to_plotly.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/test_feature_set_creation.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/tox21/test_tox_heuristic.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/tox21/tox21_to_df_store.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/scripts/uq_v1_baseline_metrics.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/setup.cfg +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/bosco.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/bosco/sessions.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/bosco/tokens.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/bosco/tutorial.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/bosco/using_bosco.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/compounds/cheminformatics.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/compounds/compounds.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/compounds/proximity.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/core/api_classes.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/core/code_search.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/core/exploring.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/core/introspection.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/core/publishing.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/data/data_and_features.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/data/data_cleanup.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/data/pk_data.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/data/public_data.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/general.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/models/contests.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/models/feature_endpoints.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/models/hpo.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/models/local_models.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/models/making_models.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/models/promotion.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/models/uq.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/ops/batch.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/ops/endpoints.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/ops/monitoring.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/ops/pipelines.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/ui/dashboard.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/ui/interactive_apps.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/ui/plotting.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/guides/ui/plugin_pages.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/prompts/egress.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/prompts/personalities.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/agent/tools.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/data_source_eda.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/feature_space_proximity.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/fingerprint_proximity.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/multi_task_alignment.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/projection_2d.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/proximity.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/residual_features.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/smart_aggregator.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/storage/aggregation.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/storage/feature_spider.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/storage/row_tagger.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/storage/target_gradients.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/target_landscape.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/uq_model_v0.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/uq_model_v1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/dataframe/uq_model_v2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/graph/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/graph/heavy/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/graph/light/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/graph/light/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/graph/light/laplacian_smoothness.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/graph/light/path_search.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/graph/light/proximity_graph.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/models/cleanlab_model.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/models/noise_model.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/spark/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/sql/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/sql/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/sql/column_stats.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/sql/correlations.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/sql/descriptive_stats.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/sql/outliers.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/sql/sample_rows.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/algorithms/sql/value_counts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/compound.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/data_source.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/df_store.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/endpoint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/feature_set.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/graph_store.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/inference_cache.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/inference_store.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/meta.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/meta_endpoint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/model.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/monitor.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/parameter_store.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/api/reports.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/batch/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/batch/models/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/batch/models/model_promotion.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/cached/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/cached/cached_artifact_mixin.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/cached/cached_data_source.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/cached/cached_endpoint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/cached/cached_feature_set.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/cached/cached_meta.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/cached/cached_model.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/artifact.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/artifacts/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/artifacts/async_endpoint_core.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/artifacts/athena_source.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/artifacts/aws_artifact.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/artifacts/data_capture_core.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/artifacts/data_source_abstract.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/artifacts/data_source_factory.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/artifacts/endpoint_core.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/artifacts/feature_set_core.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/artifacts/model_core.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/artifacts/monitor_core.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/aws_account_clamp.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/aws_graph_store.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/aws_meta.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/aws_secrets_manager.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/aws_session.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/boto_session.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/cache_dataframe.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/cloud_platform/azure/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/cloud_platform/cloud_meta.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/cloud_platform/gcp/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/df_store_core.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/model_types.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/parameter_store_core.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/pipelines/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/pipelines/pipeline_meta.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/heavy/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/heavy/s3_heavy_to_data_source.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/light/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/light/csv_to_data_source.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/light/json_to_data_source.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/light/s3_to_data_source_light.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/heavy/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/heavy/emr/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/heavy/glue/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/light/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/light/clean_data.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/light/data_to_data_light.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/heavy/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/heavy/chunk/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/heavy/emr/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/heavy/glue/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/light/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/light/data_to_features_light.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/light/molecular_descriptors.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/features_to_features/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/features_to_features/heavy/emr/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/features_to_features/heavy/glue/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/features_to_model/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/features_to_model/features_to_model.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/model_to_endpoint/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/model_to_endpoint/model_to_endpoint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/pandas_transforms/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/pandas_transforms/data_to_pandas.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/pandas_transforms/features_to_pandas.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/pandas_transforms/pandas_to_data.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/pandas_transforms/pandas_to_features.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/pandas_transforms/pandas_to_features_chunked.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/transforms/transform.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/views/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/views/column_subset_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/views/computation_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/views/create_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/views/display_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/views/inference_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/views/pandas_to_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/views/view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/core/views/view_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/async_inference.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/chemprop_shap_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/chemprop_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/df_store.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/fast_inference.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/feature_space_proximity.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/fingerprint_proximity.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/fingerprints.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/inference.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/meta_endpoint_dag.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/parameter_store.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/proximity.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/pytorch_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/residual_features.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/uq_harness.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/uq_model_v0.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/uq_model_v1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/uq_model_v2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/endpoints/uq_regression.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/lambda_layer/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/lambda_layer/artifact_times.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/lambda_layer/pipeline_manager.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/local/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/local/data_source.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/local/endpoint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/local/feature_set.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/local/local_artifact.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/local/meta.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/local/model.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/local/parameter_store.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/local/storage.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/chemprop/requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/network_security/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/Readme.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/bayesian_ridge.template +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/ensemble_xgb.template +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/feature_space_proximity.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/gaussian_process.template +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/ngboost.template +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/custom_script_example/custom_model_script.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/custom_script_example/requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/meta_endpoint/meta_endpoint.template +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/pytorch_model/pytorch.template +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/pytorch_model/requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/scikit_learn/requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/scikit_learn/scikit_learn.template +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/script_generation.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/xgb_model/requirements.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/model_scripts/xgb_model/xgb_model.template +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/plugin_pages/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/plugin_pages/assets/mc/render.js +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/plugin_pages/assets/mc/styles.css +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/plugin_pages/components/prediction_plot.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/plugin_pages/pages/model_comparison_page.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/plugin_pages/views/model_comparison_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/public_data.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/repl/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/repl/workbench_shell.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/bedrock_verify.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/check_double_bond_stereo.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/df_store.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/endpoint_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/ensemble_sim.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/glue_launcher.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/lambda_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/ml_pipeline_batch.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/ml_pipeline_launcher.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/ml_pipeline_sqs.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/monitor_cloud_watch.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/redis_expire.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/redis_report.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/redis_tunnel.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/show_config.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/scripts/training_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/themes/dark/base_css.url +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/themes/dark/custom.css +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/themes/dark/plotly.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/themes/light/base_css.url +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/themes/light/branding.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/themes/light/custom.css +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/themes/light/plotly.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/themes/midnight_blue/base_css.url +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/themes/midnight_blue/branding.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/themes/midnight_blue/custom.css +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/themes/midnight_blue/plotly.json +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/training/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/training/chemprop_core.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/training/chemprop_hpo.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/training/foundation_models.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/training/hpo_harness.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/training/hpo_runner.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/training/pytorch_core.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/training/pytorch_hpo.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/training/splits.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/training/training_harness.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/training/validation.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/training/xgb_core.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/training/xgb_hpo.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/aggregation_nodes.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/apps/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/apps/_serve.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/apps/pk_explorer.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/async_endpoint_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/athena_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/aws_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/batch_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/bosco_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/bulk_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/cache.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/chem_utils/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/chem_utils/fingerprints.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/chem_utils/misc.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/chem_utils/mol_descriptors.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/chem_utils/mol_descriptors_3d.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/chem_utils/mol_descriptors_3d_v2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/chem_utils/mol_standardize.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/chem_utils/mol_tagging.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/chem_utils/salts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/chem_utils/sdf.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/chem_utils/toxicity.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/chem_utils/vis.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/chemprop_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/cloudwatch_handler.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/cloudwatch_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/color_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/config_manager.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/contest_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/cow_puns.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/dashboard_metrics.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/dashboard_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/datetime_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/deprecated_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/df_to_endpoint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/distribution_stats.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/ecs_info.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/endpoint_autoscaling.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/endpoint_metrics.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/endpoint_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/ensemble_simulator.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/ensemble_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/execution_environment.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/extract_model_artifact.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/feature_endpoint_job.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/feature_prep.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/glue_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/graph_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/inference_cache_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/ipython_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/job_tracker.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/json_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/llm_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/log_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/markdown_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/meta_endpoint_dag.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/metrics_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/model_comparison.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/model_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/monitor_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/pandas_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/performance_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/pipeline_serializer.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/pipeline_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/plot_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/plots/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/plots/hpo.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/plots/neighborhood.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/plots/pk.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/plugin_manager.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/prox_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/pytorch_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/redis_cache.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/repl_color_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/repl_themes.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/repl_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/s3_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/shap_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/shapley_values.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/symbols.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/synthetic_data_generator.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/theme_manager.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/training_job_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/tree_render.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/type_abbrev.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/version_drift.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/web_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/workbench_cache.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/workbench_event_bridge.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/workbench_logging.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/workbench_sqs.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/xgboost_local_crossfold.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/utils/xgboost_model_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/component_interface.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/correlation_matrix.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/data_details_markdown.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/endpoint_metric_plots.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/molecule_tooltip.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugin_interface.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugin_unit_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/ag_table.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/confusion_explorer.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/confusion_matrix.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/confusion_triangle.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/dashboard_status.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/data_details.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/endpoint_details.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/example_plot.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/graph_plot.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/model_details.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/model_plot.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/molecule_panel.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/molecule_viewer.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/multi_task_alignment_map.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/scatter_plot.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/shap_summary_plot.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/settings_menu.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/components/violin_plots.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/page_views/contests_page_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/page_views/data_sources_page_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/page_views/endpoints_page_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/page_views/feature_sets_page_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/page_views/main_page.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/page_views/ml_pipelines_page_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/page_views/models_page_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/page_views/page_view.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/themed_dash.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/utils/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/utils/clientside_callbacks.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench/web_interface/utils/page_callbacks.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench.egg-info/dependency_links.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench.egg-info/entry_points.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench.egg-info/requires.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/src/workbench.egg-info/top_level.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_aqsol_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_aqsol_artifacts_all.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_aqsol_rt_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_basic_test_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_copy_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_empty_model_group.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_endpoints_for_timing.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_graph_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_knn_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_meta_endpoints.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_proximity_models.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_quant_regression_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_realtime_endpoint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_sagemaker_pipeline_model.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_training_adjusted_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_uq_compare_models.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/create_wine_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/delete_stress_test_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/delete_test_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/hyper_testing.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/local_artifacts/create_local_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/local_artifacts/delete_local_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/local_artifacts/publish_local_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/regression_ensemble.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/test_artifacts/stress_test_aws.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/README.md +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/agent/test_bosco_dispatch.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/agent/test_guide_api_references.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/agent/test_guide_structure.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/agent/test_run_python_log_capture.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/agent/test_web_guard.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/algorithms/dataframe/test_multi_task_alignment.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/algorithms/dataframe/test_proximity_neighbors.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/algorithms/dataframe/test_target_landscape.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/artifacts/data_source_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/artifacts/empty_model_group.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/artifacts/featureset_ingest_boundaries.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/artifacts/featureset_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/artifacts/graph_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/artifacts/meta_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/artifacts/model_metrics_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/artifacts/model_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/aws_account/aws_account_clamp_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/cached/cached_artifact_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/cached/cached_meta_api_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/cached/cached_meta_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/chem_info/test_complexity_cost_guard.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/chem_info/test_conformer_energies.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/chem_info/test_descriptors_3d_v2.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/chem_info/test_standardization_reference.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/chem_info/test_tagging_reference.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/chem_info/test_tautomerization.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/chem_info/test_vis_diff.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/confidence/test_uq_harness.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/corner_cases/end_to_end.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/df_store/df_store_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/df_store/reports_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/endpoints/endpoint_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/endpoints/inference_cache_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/endpoints/meta_endpoint_dag_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/endpoints/pytorch_utils_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/endpoints/test_async_idempotent.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/endpoints/test_async_passthrough.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/endpoints/test_async_warmup.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/endpoints/test_capture_inference_metrics.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/endpoints/test_cold_start_retry.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/endpoints/test_multi_target_remap.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/feature_endpoints/test_3d_complexity_skips.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/feature_endpoints/test_3d_corner_cases.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/feature_endpoints/test_3d_timing.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/feature_endpoints/test_smiles_to_3d_v1.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/lambda_layer/test_layer_dependencies.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/local/test_aws_parity.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/local/test_feature_endpoint_job.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/local/test_job_tracker.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/local/test_local_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/local/test_local_endpoint.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/local/test_local_model.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/local/test_local_parameter_store.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/local/test_local_prox.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/local/test_publish.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/pandas_tests/test_convert_column_types.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/pandas_tests/test_drift.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/pandas_tests/test_multi_task.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/pandas_tests/test_target_health.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/pandas_tests/test_temporal_split.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/parameter_store/param_store_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/pipelines/test_pipeline_launcher.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/pipelines/test_pipeline_manager.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/pipelines/test_pipeline_meta.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/pipelines/test_pipeline_serializer.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/plugin_tests/crashing_plugin.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/pytorch/pytorch_hello.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/requirements-dev.txt +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/specific/capital_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/specific/column_changes.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/specific/config_manager.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/specific/deletion_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/specific/feature_ingest_multiprocessing_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/specific/public_data_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/specific/shap_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/specific/tag_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/training/chemprop_hpo_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/training/conftest.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/training/hpo_harness_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/training/hpo_ray_trials.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/training/hpo_runner_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/training/instance_ladder_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/training/pytorch_core_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/training/pytorch_hpo_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/training/script_generation_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/training/search_space_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/training/splits_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/training/test_analog_holdout_split.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/training/xgb_hpo_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/transforms/data_to_data_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/transforms/data_to_features_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/transforms/features_to_model_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/transforms/model_to_endpoint_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/transforms/pandas_to_data_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/transforms/pandas_to_features_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/uq/__init__.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/uq/conftest.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/uq/fixtures.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/uq/test_backend_selection.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/uq/test_conformal_calibration.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/uq/test_multi_target_uq.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_apps_pk_explorer.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_bootstrap_metrics.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_capture_content_types.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_ensemble_simulator.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_ensemble_utils.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_execution_environment.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_hpo_importance.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_hpo_search_space.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_llm_provider.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_markdown_display.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_model_artifacts.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_model_comparison.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_placement_metrics.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_plots_hpo.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_plots_pk.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_sample_weights.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_soft_threshold_rae.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_training_utilization.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/utils/test_tree_render.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/validation/chemprop_validation_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/validation/pytorch_validation_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/validation/row_roles_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/validation/validation_split_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/validation/xgb_validation_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/views/view_tests.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/views/view_tests_complex.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/web_components/confusion_matrix_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/web_components/correlation_matrix_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/web_components/graph_plot_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/web_components/plugin_interface_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tests/web_components/scatter_plot_test.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/tox.ini +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ui_testing/assets/custom.css +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ui_testing/table_comparison.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ui_testing/theme_switching.py +0 -0
- {workbench-0.8.483 → workbench-0.8.485}/ui_testing/theme_switching_2.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: workbench
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.485
|
|
4
4
|
Summary: Workbench: A Dashboard and Python API for creating and deploying AWS SageMaker Model Pipelines
|
|
5
5
|
Author-email: SuperCowPowers LLC <support@supercowpowers.com>
|
|
6
6
|
License: MIT License
|
|
@@ -29,7 +29,7 @@ RUN --mount=type=cache,target=/root/.cache/uv \
|
|
|
29
29
|
-r /tmp/requirements.lock
|
|
30
30
|
|
|
31
31
|
# Layer 2: Workbench only (changes often, ~20 MB)
|
|
32
|
-
ARG WORKBENCH_VERSION=0.8.
|
|
32
|
+
ARG WORKBENCH_VERSION=0.8.484
|
|
33
33
|
RUN pip install --no-deps "workbench==${WORKBENCH_VERSION}"
|
|
34
34
|
|
|
35
35
|
# Copy app code and configuration (after pip installs to avoid cache invalidation)
|
{workbench-0.8.483 → workbench-0.8.485}/applications/aws_dashboard/assets/ml_pipelines/render.js
RENAMED
|
@@ -277,6 +277,24 @@
|
|
|
277
277
|
|
|
278
278
|
const SVGNS = "http://www.w3.org/2000/svg";
|
|
279
279
|
|
|
280
|
+
// Smooth spline through an edge's points: horizontal tangents at the two nodes,
|
|
281
|
+
// Catmull-Rom tangents at the dummy waypoints so long edges flow through them.
|
|
282
|
+
function edgePath(pts) {
|
|
283
|
+
const n = pts.length;
|
|
284
|
+
const tan = pts.map((p, i) => {
|
|
285
|
+
if (i === 0) return { x: pts[1].x - p.x, y: 0 };
|
|
286
|
+
if (i === n - 1) return { x: p.x - pts[i - 1].x, y: 0 };
|
|
287
|
+
return { x: (pts[i + 1].x - pts[i - 1].x) / 2, y: (pts[i + 1].y - pts[i - 1].y) / 2 };
|
|
288
|
+
});
|
|
289
|
+
let d = `M ${pts[0].x} ${pts[0].y}`;
|
|
290
|
+
for (let i = 1; i < n; i++) {
|
|
291
|
+
const p0 = pts[i - 1], p1 = pts[i], t0 = tan[i - 1], t1 = tan[i];
|
|
292
|
+
const k0 = i === 1 ? 0.5 : 1 / 3, k1 = i === n - 1 ? 0.5 : 1 / 3;
|
|
293
|
+
d += ` C ${p0.x + t0.x * k0} ${p0.y + t0.y * k0}, ${p1.x - t1.x * k1} ${p1.y - t1.y * k1}, ${p1.x} ${p1.y}`;
|
|
294
|
+
}
|
|
295
|
+
return d;
|
|
296
|
+
}
|
|
297
|
+
|
|
280
298
|
// Node box width sized to its name (monospace char width estimate), clamped
|
|
281
299
|
function nodeWidthFor(name) {
|
|
282
300
|
// +30 = 11px padding each side + 4px endcap border each side (a bit of slack so
|
|
@@ -326,13 +344,8 @@
|
|
|
326
344
|
const pts = [{ x: pa.x + pa.w, y: pa.y + nodeH / 2 }];
|
|
327
345
|
(routeByPair.get(a + ">" + b) || []).forEach((wp) => pts.push({ x: wpX(wp.rank), y: yMid(wp.y) }));
|
|
328
346
|
pts.push({ x: pb.x, y: pb.y + nodeH / 2 });
|
|
329
|
-
let d = `M ${pts[0].x} ${pts[0].y}`;
|
|
330
|
-
for (let i = 1; i < pts.length; i++) {
|
|
331
|
-
const p0 = pts[i - 1], p1 = pts[i], mx = (p0.x + p1.x) / 2;
|
|
332
|
-
d += ` C ${mx} ${p0.y}, ${mx} ${p1.y}, ${p1.x} ${p1.y}`;
|
|
333
|
-
}
|
|
334
347
|
const p = document.createElementNS(SVGNS, "path");
|
|
335
|
-
p.setAttribute("d",
|
|
348
|
+
p.setAttribute("d", edgePath(pts));
|
|
336
349
|
p.setAttribute("fill", "none");
|
|
337
350
|
p.setAttribute("stroke", "var(--mlp-edge)");
|
|
338
351
|
p.setAttribute("stroke-width", "1.4");
|
|
@@ -396,13 +409,8 @@
|
|
|
396
409
|
const pts = [pa];
|
|
397
410
|
(routeByPair.get(a + ">" + b) || []).forEach((wp) => pts.push({ x: xAt(wp.rank), y: yAt(wp.y) }));
|
|
398
411
|
pts.push(pb);
|
|
399
|
-
let d = `M ${pts[0].x} ${pts[0].y}`;
|
|
400
|
-
for (let i = 1; i < pts.length; i++) {
|
|
401
|
-
const p0 = pts[i - 1], p1 = pts[i], mx = (p0.x + p1.x) / 2;
|
|
402
|
-
d += ` C ${mx} ${p0.y}, ${mx} ${p1.y}, ${p1.x} ${p1.y}`;
|
|
403
|
-
}
|
|
404
412
|
const p = document.createElementNS(SVGNS, "path");
|
|
405
|
-
p.setAttribute("d",
|
|
413
|
+
p.setAttribute("d", edgePath(pts));
|
|
406
414
|
p.setAttribute("fill", "none");
|
|
407
415
|
p.setAttribute("stroke", "var(--mlp-edge)");
|
|
408
416
|
p.setAttribute("stroke-width", "1");
|
|
@@ -44,7 +44,7 @@ antlr4-python3-runtime==4.9.3
|
|
|
44
44
|
# via
|
|
45
45
|
# -c ci/.uv-constraints.txt
|
|
46
46
|
# omegaconf
|
|
47
|
-
anyio==4.
|
|
47
|
+
anyio==4.15.1
|
|
48
48
|
# via
|
|
49
49
|
# -c ci/.uv-constraints.txt
|
|
50
50
|
# anthropic
|
|
@@ -144,7 +144,7 @@ contourpy==1.3.3
|
|
|
144
144
|
# via
|
|
145
145
|
# -c ci/.uv-constraints.txt
|
|
146
146
|
# matplotlib
|
|
147
|
-
cryptography==
|
|
147
|
+
cryptography==50.0.1
|
|
148
148
|
# via
|
|
149
149
|
# -c ci/.uv-constraints.txt
|
|
150
150
|
# google-auth
|
|
@@ -905,7 +905,7 @@ tritonclient==2.69.0
|
|
|
905
905
|
# via
|
|
906
906
|
# -c ci/.uv-constraints.txt
|
|
907
907
|
# sagemaker-serve
|
|
908
|
-
typing-extensions==4.
|
|
908
|
+
typing-extensions==4.16.0
|
|
909
909
|
# via
|
|
910
910
|
# -c ci/.uv-constraints.txt
|
|
911
911
|
# aiohttp
|
|
@@ -12,7 +12,7 @@ print(f"Account: {aws_account}")
|
|
|
12
12
|
print(f"Region: {aws_region}")
|
|
13
13
|
|
|
14
14
|
# When you want a different docker image change this line
|
|
15
|
-
dashboard_image = "public.ecr.aws/m6i5k1r2/workbench_dashboard:
|
|
15
|
+
dashboard_image = "public.ecr.aws/m6i5k1r2/workbench_dashboard:v0_8_484_amd64"
|
|
16
16
|
|
|
17
17
|
# Workbench Configuration
|
|
18
18
|
try:
|
|
@@ -179,13 +179,14 @@ class WorkbenchDashboardStack(Stack):
|
|
|
179
179
|
|
|
180
180
|
# Build the load balancer explicitly: an ALB accepts only one subnet per AZ, and the
|
|
181
181
|
# ECS pattern offers no way to scope the LB's subnets to the ones we were given.
|
|
182
|
+
# A public LB needs public subnets (route to an IGW); the given subnets serve Redis and the tasks.
|
|
182
183
|
load_balancer = elbv2.ApplicationLoadBalancer(
|
|
183
184
|
self,
|
|
184
185
|
"WorkbenchLB",
|
|
185
186
|
vpc=cluster.vpc,
|
|
186
187
|
internet_facing=props.public,
|
|
187
188
|
security_group=lb_security_group,
|
|
188
|
-
vpc_subnets=subnet_selection,
|
|
189
|
+
vpc_subnets=ec2.SubnetSelection(subnet_type=ec2.SubnetType.PUBLIC) if props.public else subnet_selection,
|
|
189
190
|
)
|
|
190
191
|
|
|
191
192
|
# Adding LoadBalancer with Fargate Service
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# OpenADMET CYP Challenge — Working Notes
|
|
2
2
|
|
|
3
3
|
!!! tip inline end "Current entry"
|
|
4
|
-
An average of four Chemprop models over the challenge data plus public CYP potency, stock hyperparameters, plus a per-isoform
|
|
4
|
+
An average of four Chemprop models over the challenge data plus public CYP potency, stock hyperparameters, plus a per-isoform calibration. **Macro ST-RAE 0.4378** on the live half of the test set.
|
|
5
5
|
|
|
6
6
|
**Work in progress.** The [OpenADMET CYP Inhibition Blind Challenge](https://huggingface.co/spaces/openadmet/cyp-challenge) (Direct Inhibition track) is still open. The model changes between submissions, and the live leaderboard scores only half the test set. So these are just some early observations that may, or may not, translate well to the final leaderboard.
|
|
7
7
|
|
|
@@ -47,7 +47,7 @@ Four Chemprop D-MPNNs, averaged. All are SMILES-only with stock hyperparameters,
|
|
|
47
47
|
| `2d6-isoform` | 6 | every CYP2D6 readout, nothing else |
|
|
48
48
|
| `2d6-single` | 1 | CYP2D6 pIC50 alone |
|
|
49
49
|
|
|
50
|
-
Only the four scored pIC50 heads are ever submitted; the rest exist to shape the representation. The specialists carry no other isoforms, so CYP1A2, CYP2C9 and CYP3A4 average two members and CYP2D6 averages four. Predictions are averaged, then
|
|
50
|
+
Only the four scored pIC50 heads are ever submitted; the rest exist to shape the representation. The specialists carry no other isoforms, so CYP1A2, CYP2C9 and CYP3A4 average two members and CYP2D6 averages four. Predictions are averaged, then calibrated.
|
|
51
51
|
|
|
52
52
|
**Why multi-task.** The isoforms are correlated and the per-isoform data is small, 1,285–2,335 curves each. One encoder learning from all 6,525 measurements is a data-efficiency argument, not a claim that graph learning resolves activity cliffs; on activity cliffs descriptor models match or beat GNNs (van Tilborg et al.).
|
|
53
53
|
|
|
@@ -65,25 +65,27 @@ Clustered around hits is not the same as active: analogs of a potent compound ar
|
|
|
65
65
|
|
|
66
66
|
The gap is estimable before submitting anything. The PubChem qHTS panel puts CYP2D6 inactivity near 65%; a set that inactive centres around pIC50 3.7, against the 4.69 a model trained on fitted curves predicts. Solved against the blind half afterwards, the true centre is 3.107. The blind population is also *wider* on all four isoforms. Squared-error models shrink toward the mean, and a label set built from successful fits is already narrower than the population it came from.
|
|
67
67
|
|
|
68
|
-
##
|
|
68
|
+
## Calibration
|
|
69
|
+
|
|
70
|
+
Calibration here is the affine kind — shift and scale — not interval coverage.
|
|
69
71
|
|
|
70
72
|
Predictions carry two independent things. Their **order**, which is the model, and their **placement** on the axis, which is not. R² decomposes exactly:
|
|
71
73
|
|
|
72
74
|
$$R^2 = 2\rho k - k^2 - b^2$$
|
|
73
75
|
|
|
74
|
-
with ρ the Pearson correlation, `k = sd(pred)/sd(true)` the spread ratio, and `b` the mean offset in sd(true) units. Only ρ depends on the ordering; `k` and `b` come from an affine transform that touches no compound's rank. So **R² ≤ ρ²** is a hard ceiling, and a model far below its own ρ² is *mis-
|
|
76
|
+
with ρ the Pearson correlation, `k = sd(pred)/sd(true)` the spread ratio, and `b` the mean offset in sd(true) units. Only ρ depends on the ordering; `k` and `b` come from an affine transform that touches no compound's rank. So **R² ≤ ρ²** is a hard ceiling, and a model far below its own ρ² is *mis-calibrated, not weak*. The decomposition is Murphy's (1988): the `k ≠ ρ` term is conditional bias, the `b` term unconditional bias.
|
|
75
77
|
|
|
76
78
|
The optimum is **`k = ρ`, not `k = 1`**. Matching the spread of the truth is wrong: a model with ρ = 0.7 should be 70% as wide as reality, because shrinking toward the mean is the correct response to uncertainty. Raw predictions are narrower still.
|
|
77
79
|
|
|
78
|
-
So: estimate the target population's centre and spread, then
|
|
80
|
+
So: estimate the target population's centre and spread, then calibrate each isoform onto it with spread `ρ·sd`.
|
|
79
81
|
|
|
80
|
-
<img src="../../images/cyp_calibration_applied.svg" alt="Four panels, one per isoform, each overlaying raw blind-set predictions, the same predictions after
|
|
82
|
+
<img src="../../images/cyp_calibration_applied.svg" alt="Four panels, one per isoform, each overlaying raw blind-set predictions, the same predictions after calibration, and the blind population curve. CYP1A2, CYP2C9 and CYP3A4 shift and widen onto their population curves. CYP2D6 also moves down and widens but deliberately stops short, sitting above the population centre and narrower than it, because that is where the scored metric is optimised rather than R-squared." style="width: 100%; height: auto; display: block;">
|
|
81
83
|
|
|
82
84
|
CYP2D6 shows the effect at full scale: raw predictions spike at 4.5 with sd 0.49 against a population centred at 3.1 with sd 1.60. It never calls a compound a non-inhibitor, and predicts into under a third of the actual range.
|
|
83
85
|
|
|
84
|
-
|
|
86
|
+
Calibration changes the score on identical weights and an identical ordering. Spearman and Kendall come back bit-identical under an affine transform, which doubles as the integrity check: if they move, the bug is in the submission pipeline.
|
|
85
87
|
|
|
86
|
-
**The catch.** The
|
|
88
|
+
**The catch.** The calibration that maximises R² does not minimise the scored metric. Soft-threshold RAE is zero anywhere inside a compound's credible interval, and low-activity compounds carry wide intervals, so predicting high is nearly free while predicting low is punished by the actives. Calibrating CYP2D6 onto its true centre raises R² and *worsens* ST-RAE; there the two objectives point in opposite directions.
|
|
87
89
|
|
|
88
90
|
## Open Problems
|
|
89
91
|
|
|
@@ -91,7 +93,7 @@ Placement changes the score on identical weights and an identical ordering. Spea
|
|
|
91
93
|
|
|
92
94
|
**Both rulers are underpowered.** Repeated training runs of one configuration at different seeds disagree by more than candidate models do, so out-of-fold cross-validation cannot resolve the differences now being chased. The leaderboard is not much better: a Spearman's standard error is largest where the correlation is weakest, making CYP2D6 the worst-resolved isoform on both. Anything below the noise floor is treated as unmeasured rather than as a result.
|
|
93
95
|
|
|
94
|
-
**Where the ST-RAE optimum sits.** Known by sampling
|
|
96
|
+
**Where the ST-RAE optimum sits.** Known by sampling calibrations against the board, not derived. A credible-interval width model would give it directly.
|
|
95
97
|
|
|
96
98
|
## Reproducing This
|
|
97
99
|
|
|
@@ -111,7 +113,7 @@ python ml_pipelines/OpenADMET/cyp/cyp_chemprop_union.py --public-weight 0.30 #
|
|
|
111
113
|
python ml_pipelines/OpenADMET/cyp/cyp_chemprop_2d6.py --scope isoform
|
|
112
114
|
python ml_pipelines/OpenADMET/cyp/cyp_chemprop_2d6.py --scope single
|
|
113
115
|
|
|
114
|
-
# Average their predictions over the 750 blinded compounds, then
|
|
116
|
+
# Average their predictions over the 750 blinded compounds, then calibrate them
|
|
115
117
|
python ml_pipelines/OpenADMET/cyp/scripts/cyp_ensemble_submit.py
|
|
116
118
|
python ml_pipelines/OpenADMET/cyp/scripts/cyp_recalibrate.py --source outputs/<file> --strae
|
|
117
119
|
```
|
|
@@ -125,6 +127,7 @@ Submission files are checked with OpenADMET's own validator, vendored from their
|
|
|
125
127
|
- [Building the OpenADMET Data Engine](https://openadmet.github.io/Octant_CYP_blog_post/?ref=openadmet.ghost.io) — Warneford-Thomson, Simpkins, Edgar and MacDermott-Opeskin on the assay platform behind this data: Echo-MS, 1536-well miniaturisation, and why well-level records are released alongside the fitted parameters
|
|
126
128
|
- [A Weekend on the OpenADMET PXR Challenge](pxr_weekend_experiments.md) — our prior blind-challenge write-up, and where the HPO and 3D-descriptor priors come from
|
|
127
129
|
- van Tilborg et al., *Exposing the Limitations of Molecular Machine Learning with Activity Cliffs*, J. Chem. Inf. Model. 2022
|
|
130
|
+
- Murphy, *Skill Scores Based on the Mean Square Error and Their Relationships to the Correlation Coefficient*, [Mon. Weather Rev. 1988](https://journals.ametsoc.org/view/journals/mwre/116/12/1520-0493_1988_116_2417_ssbotm_2_0_co_2.xml) — the R² decomposition above, as an MSE skill score
|
|
128
131
|
|
|
129
132
|
**Data sources**
|
|
130
133
|
|
|
@@ -42,10 +42,12 @@ The left and right panels are the cases ensemble std already handles: agreement
|
|
|
42
42
|
Here's the whole path for a ChemProp model, from a batch of SMILES to the columns that land on every row.
|
|
43
43
|
|
|
44
44
|
<figure style="margin: 20px auto; text-align: center;">
|
|
45
|
-
<img src="../../images/uq_endpoint_flow.svg" alt="Deployed endpoint with UQ:
|
|
45
|
+
<img src="../../images/uq_endpoint_flow.svg" alt="Deployed endpoint with UQ: ensemble and applicability domain feed five inputs to the RF UQ model" style="width: 100%; height: auto;">
|
|
46
46
|
</figure>
|
|
47
47
|
|
|
48
|
-
The
|
|
48
|
+
The **RF UQ model takes five inputs from two sources.** The **ensemble** contributes `prediction` (the mean across folds) and `prediction_std` (the spread). The **applicability domain** contributes three more, computed from the compound's *k* nearest training neighbors by fingerprint similarity: `distance`, `target_std` and `pred_gap`.
|
|
49
|
+
|
|
50
|
+
Neither source is sufficient alone. Ensemble spread says how much the model argues with itself; the applicability domain says whether the compound sits anywhere the training data can speak to. A random forest learns how the two together map to actual error.
|
|
49
51
|
|
|
50
52
|
What comes back is 13 columns:
|
|
51
53
|
|
|
@@ -66,7 +68,7 @@ For a multi-target model every target gets its own prefixed set (`{target}_confi
|
|
|
66
68
|
|
|
67
69
|
# v1: Conformalized Residual-Estimator
|
|
68
70
|
|
|
69
|
-
v1 replaces "rank the ensemble std" with "**learn how the ensemble's signals map to actual error**, using the compound's neighborhood in chemical space." It's a small supervised model that predicts the magnitude of a prediction's error, conformalized to produce calibrated intervals. The approach is validated by the 2025 *J. Chem. Inf. Model.* study on UQ under data shift ([PMC12848971](https://pmc.ncbi.nlm.nih.gov/articles/PMC12848971/)), which found that error models built on `[prediction, ensemble variance, distance to training]` outperform standard UQ metrics across ADMET endpoints.
|
|
71
|
+
v1 replaces "rank the ensemble std" with "**learn how the ensemble's signals map to actual error**, using the compound's **applicability domain**, its neighborhood in chemical space." It's a small supervised model that predicts the magnitude of a prediction's error, conformalized to produce calibrated intervals. The approach is validated by the 2025 *J. Chem. Inf. Model.* study on UQ under data shift ([PMC12848971](https://pmc.ncbi.nlm.nih.gov/articles/PMC12848971/)), which found that error models built on `[prediction, ensemble variance, distance to training]` outperform standard UQ metrics across ADMET endpoints.
|
|
70
72
|
|
|
71
73
|
Almost all of the machinery is in the fitting, so that's what's worth walking through. Inference is the trivial half: five features, one forest, one multiply.
|
|
72
74
|
|
|
@@ -78,7 +80,7 @@ The two tracks are the part to notice. The **error model** is the forest that sh
|
|
|
78
80
|
|
|
79
81
|
## Step 1: Neighborhood Residual Features
|
|
80
82
|
|
|
81
|
-
For each compound, v1 computes five scalar features that describe its local context in the training set (via a fingerprint `Proximity` backend). The first two are the ensemble signals; the last three
|
|
83
|
+
For each compound, v1 computes five scalar features that describe its local context in the training set (via a fingerprint `Proximity` backend). The first two are the ensemble signals; the last three are the applicability-domain signals, computed from the *k* nearest training neighbors (default k=10):
|
|
82
84
|
|
|
83
85
|
<table style="width: 100%;">
|
|
84
86
|
<thead>
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 610" width="900" height="610">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="dataBox" x1="0" y1="0" x2="0" y2="1">
|
|
4
|
+
<stop offset="0%" stop-color="#5f6b7a"/>
|
|
5
|
+
<stop offset="100%" stop-color="#454f5c"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="modelBox" x1="0" y1="0" x2="0" y2="1">
|
|
8
|
+
<stop offset="0%" stop-color="#3a86ff"/>
|
|
9
|
+
<stop offset="100%" stop-color="#2a66cc"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
<linearGradient id="adBox" x1="0" y1="0" x2="0" y2="1">
|
|
12
|
+
<stop offset="0%" stop-color="#ff9f43"/>
|
|
13
|
+
<stop offset="100%" stop-color="#cc7a30"/>
|
|
14
|
+
</linearGradient>
|
|
15
|
+
<linearGradient id="uqBox" x1="0" y1="0" x2="0" y2="1">
|
|
16
|
+
<stop offset="0%" stop-color="#9b59b6"/>
|
|
17
|
+
<stop offset="100%" stop-color="#7d3f96"/>
|
|
18
|
+
</linearGradient>
|
|
19
|
+
<linearGradient id="outBox" x1="0" y1="0" x2="0" y2="1">
|
|
20
|
+
<stop offset="0%" stop-color="#00d4aa"/>
|
|
21
|
+
<stop offset="100%" stop-color="#00a080"/>
|
|
22
|
+
</linearGradient>
|
|
23
|
+
<marker id="ar" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
|
|
24
|
+
<path d="M2 1L8 5L2 9" fill="none" stroke="#8b95a3" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
|
25
|
+
</marker>
|
|
26
|
+
</defs>
|
|
27
|
+
|
|
28
|
+
<text x="450" y="34" text-anchor="middle" fill="#ccc" font-family="Helvetica, Arial" font-size="24" font-weight="bold">Deployed Endpoint with UQ</text>
|
|
29
|
+
<text x="450" y="58" text-anchor="middle" fill="#999" font-family="Helvetica, Arial" font-size="15">applicability domain and ensemble, together</text>
|
|
30
|
+
|
|
31
|
+
<rect x="340" y="82" width="220" height="54" rx="8" fill="url(#dataBox)"/>
|
|
32
|
+
<text x="450" y="106" text-anchor="middle" fill="white" font-family="Helvetica, Arial" font-size="17" font-weight="bold">SMILES batch</text>
|
|
33
|
+
<text x="450" y="126" text-anchor="middle" fill="#dde3ea" font-family="Helvetica, Arial" font-size="13">one row per compound</text>
|
|
34
|
+
|
|
35
|
+
<line x1="450" y1="136" x2="450" y2="152" stroke="#8b95a3" stroke-width="1.8"/>
|
|
36
|
+
<line x1="250" y1="152" x2="650" y2="152" stroke="#8b95a3" stroke-width="1.8"/>
|
|
37
|
+
<line x1="250" y1="152" x2="250" y2="170" stroke="#8b95a3" stroke-width="1.8" marker-end="url(#ar)"/>
|
|
38
|
+
<line x1="650" y1="152" x2="650" y2="170" stroke="#8b95a3" stroke-width="1.8" marker-end="url(#ar)"/>
|
|
39
|
+
|
|
40
|
+
<rect x="90" y="176" width="320" height="90" rx="8" fill="url(#modelBox)"/>
|
|
41
|
+
<text x="250" y="202" text-anchor="middle" fill="white" font-family="Helvetica, Arial" font-size="16" font-weight="bold">ChemProp 5-fold ensemble</text>
|
|
42
|
+
<rect x="98" y="216" width="56" height="32" rx="5" fill="#ffffff" opacity="0.18"/>
|
|
43
|
+
<text x="126" y="237" text-anchor="middle" fill="white" font-family="Helvetica, Arial" font-size="13">fold 1</text>
|
|
44
|
+
<rect x="160" y="216" width="56" height="32" rx="5" fill="#ffffff" opacity="0.18"/>
|
|
45
|
+
<text x="188" y="237" text-anchor="middle" fill="white" font-family="Helvetica, Arial" font-size="13">fold 2</text>
|
|
46
|
+
<rect x="222" y="216" width="56" height="32" rx="5" fill="#ffffff" opacity="0.18"/>
|
|
47
|
+
<text x="250" y="237" text-anchor="middle" fill="white" font-family="Helvetica, Arial" font-size="13">fold 3</text>
|
|
48
|
+
<rect x="284" y="216" width="56" height="32" rx="5" fill="#ffffff" opacity="0.18"/>
|
|
49
|
+
<text x="312" y="237" text-anchor="middle" fill="white" font-family="Helvetica, Arial" font-size="13">fold 4</text>
|
|
50
|
+
<rect x="346" y="216" width="56" height="32" rx="5" fill="#ffffff" opacity="0.18"/>
|
|
51
|
+
<text x="374" y="237" text-anchor="middle" fill="white" font-family="Helvetica, Arial" font-size="13">fold 5</text>
|
|
52
|
+
|
|
53
|
+
<rect x="490" y="176" width="320" height="90" rx="8" fill="url(#adBox)"/>
|
|
54
|
+
<text x="650" y="202" text-anchor="middle" fill="#3a2a12" font-family="Helvetica, Arial" font-size="16" font-weight="bold">Applicability Domain</text>
|
|
55
|
+
<text x="650" y="226" text-anchor="middle" fill="#4a3618" font-family="Helvetica, Arial" font-size="13">k = 10 nearest training neighbors</text>
|
|
56
|
+
<text x="650" y="248" text-anchor="middle" fill="#4a3618" font-family="Helvetica, Arial" font-size="13">by fingerprint similarity</text>
|
|
57
|
+
|
|
58
|
+
<line x1="250" y1="266" x2="250" y2="288" stroke="#8b95a3" stroke-width="1.8" marker-end="url(#ar)"/>
|
|
59
|
+
<line x1="650" y1="266" x2="650" y2="288" stroke="#8b95a3" stroke-width="1.8" marker-end="url(#ar)"/>
|
|
60
|
+
|
|
61
|
+
<rect x="130" y="294" width="640" height="136" rx="8" fill="url(#uqBox)"/>
|
|
62
|
+
<text x="450" y="324" text-anchor="middle" fill="white" font-family="Helvetica, Arial" font-size="20" font-weight="bold">RF UQ Model</text>
|
|
63
|
+
|
|
64
|
+
<text x="270" y="363" text-anchor="end" fill="#e8dcf0" font-family="Helvetica, Arial" font-size="13" font-weight="bold">Ensemble</text>
|
|
65
|
+
<rect x="286" y="344" width="170" height="28" rx="5" fill="#ffffff" opacity="0.18"/>
|
|
66
|
+
<text x="371" y="363" text-anchor="middle" fill="white" font-family="Helvetica, Arial" font-size="13">prediction</text>
|
|
67
|
+
<rect x="470" y="344" width="170" height="28" rx="5" fill="#ffffff" opacity="0.18"/>
|
|
68
|
+
<text x="555" y="363" text-anchor="middle" fill="white" font-family="Helvetica, Arial" font-size="13">prediction_std</text>
|
|
69
|
+
|
|
70
|
+
<text x="270" y="403" text-anchor="end" fill="#e8dcf0" font-family="Helvetica, Arial" font-size="13" font-weight="bold">KNN / AD</text>
|
|
71
|
+
<rect x="286" y="384" width="140" height="28" rx="5" fill="#ffffff" opacity="0.18"/>
|
|
72
|
+
<text x="356" y="403" text-anchor="middle" fill="white" font-family="Helvetica, Arial" font-size="13">distance</text>
|
|
73
|
+
<rect x="438" y="384" width="140" height="28" rx="5" fill="#ffffff" opacity="0.18"/>
|
|
74
|
+
<text x="508" y="403" text-anchor="middle" fill="white" font-family="Helvetica, Arial" font-size="13">target_std</text>
|
|
75
|
+
<rect x="590" y="384" width="140" height="28" rx="5" fill="#ffffff" opacity="0.18"/>
|
|
76
|
+
<text x="660" y="403" text-anchor="middle" fill="white" font-family="Helvetica, Arial" font-size="13">pred_gap</text>
|
|
77
|
+
|
|
78
|
+
<line x1="450" y1="430" x2="450" y2="454" stroke="#8b95a3" stroke-width="1.8" marker-end="url(#ar)"/>
|
|
79
|
+
|
|
80
|
+
<rect x="140" y="460" width="620" height="130" rx="8" fill="url(#outBox)" opacity="0.16" stroke="#00d4aa" stroke-width="1.5"/>
|
|
81
|
+
<text x="450" y="486" text-anchor="middle" fill="#00d4aa" font-family="Helvetica, Arial" font-size="17" font-weight="bold">13 columns added to every row</text>
|
|
82
|
+
|
|
83
|
+
<rect x="160" y="500" width="180" height="76" rx="6" fill="#00d4aa" opacity="0.12"/>
|
|
84
|
+
<text x="250" y="524" text-anchor="middle" fill="#ccc" font-family="Helvetica, Arial" font-size="15" font-weight="bold">confidence</text>
|
|
85
|
+
<text x="250" y="546" text-anchor="middle" fill="#9aa5b1" font-family="Helvetica, Arial" font-size="13">0 = don't trust it</text>
|
|
86
|
+
<text x="250" y="566" text-anchor="middle" fill="#9aa5b1" font-family="Helvetica, Arial" font-size="13">1 = trust it</text>
|
|
87
|
+
|
|
88
|
+
<rect x="360" y="500" width="180" height="76" rx="6" fill="#00d4aa" opacity="0.12"/>
|
|
89
|
+
<text x="450" y="524" text-anchor="middle" fill="#ccc" font-family="Helvetica, Arial" font-size="15" font-weight="bold">expected_residual</text>
|
|
90
|
+
<text x="450" y="546" text-anchor="middle" fill="#9aa5b1" font-family="Helvetica, Arial" font-size="13">predicted error size</text>
|
|
91
|
+
<text x="450" y="566" text-anchor="middle" fill="#9aa5b1" font-family="Helvetica, Arial" font-size="13">in target units</text>
|
|
92
|
+
|
|
93
|
+
<rect x="560" y="500" width="180" height="76" rx="6" fill="#00d4aa" opacity="0.12"/>
|
|
94
|
+
<text x="650" y="524" text-anchor="middle" fill="#ccc" font-family="Helvetica, Arial" font-size="15" font-weight="bold">q_025 … q_975</text>
|
|
95
|
+
<text x="650" y="546" text-anchor="middle" fill="#9aa5b1" font-family="Helvetica, Arial" font-size="13">11 interval bounds</text>
|
|
96
|
+
<text x="650" y="566" text-anchor="middle" fill="#9aa5b1" font-family="Helvetica, Arial" font-size="13">q_50 = prediction</text>
|
|
97
|
+
</svg>
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Demo: REPL + Bosco on the PXR challenge
|
|
2
|
+
|
|
3
|
+
A recorded walkthrough. The spine is the handoff — **REPL to explore, Bosco to build, REPL to
|
|
4
|
+
inspect what it built** — repeated four times, on work that is real rather than staged.
|
|
5
|
+
Edited for pace; say so on screen.
|
|
6
|
+
|
|
7
|
+
**Why PXR.** One target (`pec50`), and a held-out set with real labels: OpenADMET revealed the
|
|
8
|
+
253-compound phase-1 set, so every score is honest and nothing waits on a leaderboard. The
|
|
9
|
+
contest is closed, so nothing here is a competitive claim.
|
|
10
|
+
|
|
11
|
+
**Everything is ad-hoc.** Bosco creates the artifacts in-session. No scripts, no
|
|
12
|
+
`pipelines.json`. That is the point being demonstrated: the artifacts are addressable the
|
|
13
|
+
moment they exist, by name, from the REPL — no export step, no copy-paste, no notebook.
|
|
14
|
+
|
|
15
|
+
**Naming.** Everything built on camera takes a `-demo` suffix. `openadmet_pxr_f1` and
|
|
16
|
+
`pxr-reg-chemprop-phase1` already exist, and the latter carries the `pxr_phase1_test` capture
|
|
17
|
+
the numbers below came from.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 1. Public data to a local model — REPL → Bosco → REPL
|
|
22
|
+
|
|
23
|
+
**REPL.** Pull the data and look at it. No credentials needed for either of these:
|
|
24
|
+
|
|
25
|
+
```python
|
|
26
|
+
train = PublicData().get("comp_chem/openadmet/pxr/training/main") # 4,139
|
|
27
|
+
test = PublicData().get("comp_chem/openadmet/pxr/testing/phase1_unblinded") # 253
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Bosco.** Hand off the part that carries the traps: *"mark the split, compute 2D descriptors,
|
|
31
|
+
build a local FeatureSet and a local XGBoost model holding out the phase-1 rows."*
|
|
32
|
+
|
|
33
|
+
That one request covers `compute_descriptors`, picking a feature list that excludes
|
|
34
|
+
`molecule_name` / `smiles` / `pec50` / its error and interval columns / the `split` marker, and
|
|
35
|
+
wiring the holdout. Doing it by hand is where the mistakes live.
|
|
36
|
+
|
|
37
|
+
**REPL.** The local model is on disk and addressable by name. Inspect it, check the feature
|
|
38
|
+
list it chose, pull the out-of-fold predictions.
|
|
39
|
+
|
|
40
|
+
2D only — `compute_descriptors` is RDKit plus Mordred and is fast. The 3D blocks need conformer
|
|
41
|
+
generation and xTB, which is not a live-loop operation.
|
|
42
|
+
|
|
43
|
+
Workbench models are a 5-fold CV ensemble, so one call yields both the out-of-fold predictions
|
|
44
|
+
and the fold-averaged predictor.
|
|
45
|
+
|
|
46
|
+
## 2. Residual plots — out of fold
|
|
47
|
+
|
|
48
|
+
**REPL.** Interactive, you drive. Full cross-fold residuals set the visual baseline.
|
|
49
|
+
|
|
50
|
+
## 3. Residual plots — phase-1 held out
|
|
51
|
+
|
|
52
|
+
**REPL.** The same plot on the 253 revealed compounds. **This does not go the way the room
|
|
53
|
+
expects, and that is the point.** Measured on the existing chemprop phase-1 model:
|
|
54
|
+
|
|
55
|
+
| capture | n | MAE | R² | Pearson | Spearman | k = sd(pred)/sd(true) |
|
|
56
|
+
|---|---|---|---|---|---|---|
|
|
57
|
+
| `full_cross_fold` | 4,392 | 0.490 | **0.615** | 0.788 | 0.751 | 0.854 |
|
|
58
|
+
| `pxr_phase1_test` | 253 | **0.472** | 0.527 | 0.752 | **0.797** | **0.630** |
|
|
59
|
+
|
|
60
|
+
Held-out MAE and Spearman are *better* than cross-fold. R² is worse anyway. Let someone ask
|
|
61
|
+
why — the answer is that R² fell while the ordering improved, and the whole cause is the spread
|
|
62
|
+
ratio collapsing from 0.854 to 0.630. The model ranks the held-out set well and predicts into
|
|
63
|
+
two thirds of its real range. In the plot that is systematic slope, not scatter.
|
|
64
|
+
|
|
65
|
+
**Calibration, if you take it here.** Affine: shift and scale, no retraining, ranks untouched.
|
|
66
|
+
The optimum is `k = ρ`, not `k = 1` — a model correlating at ρ should be ρ times as wide as
|
|
67
|
+
reality, because shrinking toward the mean is the right response to uncertainty. Applied to the
|
|
68
|
+
phase-1 predictions, R² goes 0.527 → 0.565, landing on its ρ² ceiling, Spearman bit-identical.
|
|
69
|
+
|
|
70
|
+
Frame it as a deployment defect: a model predicting into two thirds of the range under-calls
|
|
71
|
+
the extremes, and MAE never shows you that. Murphy (1988) if anyone wants the reference. Never
|
|
72
|
+
mention leaderboards — this is measured against revealed labels, which is the whole reason it
|
|
73
|
+
is defensible.
|
|
74
|
+
|
|
75
|
+
## 4. Where the big residuals come from — REPL → Bosco → REPL
|
|
76
|
+
|
|
77
|
+
**REPL.** Point at the outliers. Novel chemistry, or activity cliffs?
|
|
78
|
+
|
|
79
|
+
**Bosco.** Ask it. The question already has columns attached — UQ v1 fits its error model on
|
|
80
|
+
exactly `[prediction, prediction_std, knn_distance, knn_target_std, local_pred_gap]`.
|
|
81
|
+
`knn_distance` is novel chemistry: nothing similar in training. `knn_target_std` and
|
|
82
|
+
`local_pred_gap` are the cliff signal: close neighbours that disagree, or a prediction drifted
|
|
83
|
+
from what its neighbourhood supports.
|
|
84
|
+
|
|
85
|
+
**REPL.** Look at the compounds it separated, and their neighbours.
|
|
86
|
+
|
|
87
|
+
This is the beat where Bosco is doing analysis rather than plumbing, which is a different and
|
|
88
|
+
better argument for it.
|
|
89
|
+
|
|
90
|
+
**Trap: do not plot confidence against error on `full_cross_fold`.** For a model built before
|
|
91
|
+
2026-09-01 the cross-fold `confidence` came from the error model scoring its own training rows,
|
|
92
|
+
so the correlation looks far better than it is. `pxr_phase1_test` is genuine held-out inference
|
|
93
|
+
and is safe.
|
|
94
|
+
|
|
95
|
+
## 5. The same thing as cloud artifacts — Bosco
|
|
96
|
+
|
|
97
|
+
**Bosco.** *"Now build this for real: a FeatureSet and a chemprop model, `-demo` suffix, same
|
|
98
|
+
253 rows held out, then deploy it."*
|
|
99
|
+
|
|
100
|
+
Ad-hoc, in session. The FeatureSet build is quicker than it looks — `InferenceCache` keys the
|
|
101
|
+
feature endpoint by SMILES, so the expensive 3D leg is already cached.
|
|
102
|
+
|
|
103
|
+
Chemprop training is the natural cut point. Kick it, cut, return to a finished endpoint.
|
|
104
|
+
|
|
105
|
+
Narrate over the cut: this is the artifact chain, not a notebook. DataSource → FeatureSet →
|
|
106
|
+
Model → Endpoint, each registered, each carrying its own metrics and captures.
|
|
107
|
+
|
|
108
|
+
## 6. The dashboard
|
|
109
|
+
|
|
110
|
+
Where Workbench earns its keep, and the reason the cloud half exists in this demo. The model
|
|
111
|
+
arrives as a tracked artifact with metrics, inference captures, UQ columns and plots attached —
|
|
112
|
+
shareable, and still there next week. Nothing was written to a script to get it there.
|
|
113
|
+
|
|
114
|
+
## 7. Chemprop vs local XGBoost — Bosco → REPL
|
|
115
|
+
|
|
116
|
+
**Bosco.** *"Score both on the phase-1 rows and compare."*
|
|
117
|
+
|
|
118
|
+
**REPL.** Read the table. Three things to say:
|
|
119
|
+
|
|
120
|
+
- Quote the held-out numbers, not cross-fold. The table in §3 is why.
|
|
121
|
+
- Quote Pearson or Spearman for a modelling difference. R² and MAE move with calibration, which
|
|
122
|
+
is not a model property — a badly calibrated model with better ordering is the better model,
|
|
123
|
+
and §3 is the proof.
|
|
124
|
+
- It is not a clean architecture comparison. Local XGBoost reads locally-computed 2D
|
|
125
|
+
descriptors; cloud Chemprop reads SMILES and learns its own representation. Two variables,
|
|
126
|
+
not one. Say so rather than declaring a winner.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Notes for the take
|
|
131
|
+
|
|
132
|
+
- The local half needs no credentials at all. Worth saying out loud at §1.
|
|
133
|
+
- Nothing here needs ST-RAE. The credible intervals are in `PublicData` under
|
|
134
|
+
`comp_chem/openadmet/pxr/testing/phase1_unblinded` if you want them.
|
|
135
|
+
- 253 rows is small. A Pearson difference under ~0.05 between two models on that set is not a
|
|
136
|
+
result; say so rather than reading it as one.
|
|
137
|
+
- The PXR contest is closed. No live-standing claims.
|
|
@@ -26,7 +26,7 @@ WORKBENCH_ROOT="$(cd "$SCRIPT_DIR/.." &> /dev/null && pwd)"
|
|
|
26
26
|
AWS_ACCOUNT_ID="507740646243"
|
|
27
27
|
REGION_LIST=("us-east-1" "us-west-2")
|
|
28
28
|
PYTHON_VERSION="3.12"
|
|
29
|
-
WORKBENCH_VERSION=0.8.
|
|
29
|
+
WORKBENCH_VERSION=0.8.484 # keep in lockstep with the image's ARG WORKBENCH_VERSION
|
|
30
30
|
LAMBDA_ARCH="manylinux2014_x86_64"
|
|
31
31
|
|
|
32
32
|
GREEN='\033[0;32m'
|
|
@@ -13,7 +13,7 @@ single-concentration readout is flat where the others are monotone, and the only
|
|
|
13
13
|
emax carries potency signal. Several independent reasons to think it is not like the other
|
|
14
14
|
three.
|
|
15
15
|
|
|
16
|
-
Two scopes, both with an encoder that sees CYP2D6 and nothing else:
|
|
16
|
+
Two scopes, both with an encoder that sees CYP2D6 and nothing else, `isoform` by default:
|
|
17
17
|
|
|
18
18
|
--scope single the scored target alone, 1,493 rows. Maximum isolation, minimum data.
|
|
19
19
|
--scope isoform every CYP2D6 readout we have, ~16k rows. Drops cross-isoform sharing
|
|
@@ -134,7 +134,7 @@ DEEP_BAND = 4.0
|
|
|
134
134
|
parser = argparse.ArgumentParser(description=__doc__)
|
|
135
135
|
parser.add_argument(
|
|
136
136
|
"--scope",
|
|
137
|
-
|
|
137
|
+
default="isoform",
|
|
138
138
|
choices=["single", "isoform", "pooled", "tdi"],
|
|
139
139
|
help="'single' trains on the scored target alone; 'isoform' adds every CYP2D6 readout; "
|
|
140
140
|
"'pooled' puts offset-corrected public measurements into the scored column; "
|
|
@@ -4,7 +4,8 @@ Many tasks on one shared encoder: the four scored pIC50 targets, the challenge a
|
|
|
4
4
|
auxiliaries, and the public panels' potency and efficacy readouts. Only the scored four are
|
|
5
5
|
ever submitted -- the rest exist to shape the representation.
|
|
6
6
|
|
|
7
|
-
`--public-weight` is the experiment, and it moves more than its name suggests.
|
|
7
|
+
`--public-weight` is the experiment, and it moves more than its name suggests. It defaults
|
|
8
|
+
to 0.30, so a bare launcher run rebuilds `cyp-reg-chemprop-union-p30`.
|
|
8
9
|
|
|
9
10
|
**A task's gradient share is its label count times its weight, not its share of the task
|
|
10
11
|
list.** chemprop multiplies the per-element loss by `task_weights` and reduces by summing
|
|
@@ -121,7 +122,7 @@ parser = argparse.ArgumentParser(description=__doc__)
|
|
|
121
122
|
parser.add_argument(
|
|
122
123
|
"--public-weight",
|
|
123
124
|
type=float,
|
|
124
|
-
|
|
125
|
+
default=0.30,
|
|
125
126
|
help="Per-head weight for the ChEMBL and Veith targets, as a multiple of mean(primary)",
|
|
126
127
|
)
|
|
127
128
|
parser.add_argument(
|