workbench 0.8.484__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.
Files changed (1235) hide show
  1. {workbench-0.8.484 → workbench-0.8.485}/PKG-INFO +1 -1
  2. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/Dockerfile +1 -1
  3. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/requirements.lock +3 -3
  4. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_dashboard/app.py +1 -1
  5. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_dashboard/workbench_dashboard/workbench_dashboard_stack.py +2 -1
  6. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/cyp_challenge.md +13 -10
  7. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/uncertainty_quantification.md +6 -4
  8. workbench-0.8.485/docs/images/uq_endpoint_flow.svg +97 -0
  9. workbench-0.8.485/docs/presentations/pxr_repl_demo.md +137 -0
  10. {workbench-0.8.484 → workbench-0.8.485}/lambda_layers/build_deploy.sh +1 -1
  11. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_chemprop_2d6.py +2 -2
  12. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_chemprop_union.py +3 -2
  13. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_feature_sets.py +30 -30
  14. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/pipelines.json +12 -7
  15. workbench-0.8.485/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_readout_phase1.py +40 -0
  16. workbench-0.8.485/ml_pipelines/OpenADMET/pxr/phase1/pxr_tabicl_spike_phase1.py +134 -0
  17. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/pipelines.json +17 -3
  18. workbench-0.8.485/ml_pipelines/OpenADMET/pxr/pxr_chemprop_lfc.py +29 -0
  19. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/pxr_feature_sets.py +10 -8
  20. workbench-0.8.485/ml_pipelines/OpenADMET/pxr/pxr_lfc_feature_sets.py +31 -0
  21. workbench-0.8.485/ml_pipelines/OpenADMET/pxr/pxr_readout_feature_sets.py +40 -0
  22. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/base/inference/Dockerfile +1 -1
  23. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/base/inference/requirements.lock +2 -2
  24. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/base/training/Dockerfile +1 -1
  25. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/base/training/requirements.lock +1 -1
  26. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/ml_pipelines/Dockerfile +1 -1
  27. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/ml_pipelines/requirements.lock +3 -3
  28. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/pytorch_chem/inference/Dockerfile +1 -1
  29. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/pytorch_chem/inference/requirements.lock +2 -2
  30. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/pytorch_chem/training/Dockerfile +1 -1
  31. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/pytorch_chem/training/requirements.lock +1 -1
  32. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/challenges/cyp_challenge.md +132 -76
  33. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/models/multi_task.md +14 -0
  34. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/chemprop/chemprop.template +1 -1
  35. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/multi_task.py +23 -11
  36. {workbench-0.8.484 → workbench-0.8.485}/src/workbench.egg-info/PKG-INFO +1 -1
  37. {workbench-0.8.484 → workbench-0.8.485}/src/workbench.egg-info/SOURCES.txt +6 -0
  38. {workbench-0.8.484 → workbench-0.8.485}/src/workbench.egg-info/scm_file_list.json +6 -0
  39. workbench-0.8.485/src/workbench.egg-info/scm_version.json +8 -0
  40. {workbench-0.8.484 → workbench-0.8.485}/tests/specific/multi_task_tests.py +70 -0
  41. {workbench-0.8.484 → workbench-0.8.485}/uv.lock +55 -58
  42. workbench-0.8.484/docs/images/uq_endpoint_flow.svg +0 -83
  43. workbench-0.8.484/src/workbench.egg-info/scm_version.json +0 -8
  44. {workbench-0.8.484 → workbench-0.8.485}/.flake8 +0 -0
  45. {workbench-0.8.484 → workbench-0.8.485}/.gitattributes +0 -0
  46. {workbench-0.8.484 → workbench-0.8.485}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  47. {workbench-0.8.484 → workbench-0.8.485}/.github/dependabot.yml +0 -0
  48. {workbench-0.8.484 → workbench-0.8.485}/.github/workflows/aws-tests.yml +0 -0
  49. {workbench-0.8.484 → workbench-0.8.485}/.github/workflows/deploy-docs.yml +0 -0
  50. {workbench-0.8.484 → workbench-0.8.485}/.github/workflows/endpoint-import-smoke.yml +0 -0
  51. {workbench-0.8.484 → workbench-0.8.485}/.github/workflows/gitleaks.yml +0 -0
  52. {workbench-0.8.484 → workbench-0.8.485}/.github/workflows/lockfile-drift.yml +0 -0
  53. {workbench-0.8.484 → workbench-0.8.485}/.github/workflows/publish.yml +0 -0
  54. {workbench-0.8.484 → workbench-0.8.485}/.github/workflows/python-lint.yml +0 -0
  55. {workbench-0.8.484 → workbench-0.8.485}/.gitignore +0 -0
  56. {workbench-0.8.484 → workbench-0.8.485}/.gitleaks.toml +0 -0
  57. {workbench-0.8.484 → workbench-0.8.485}/.pre-commit-config.yaml +0 -0
  58. {workbench-0.8.484 → workbench-0.8.485}/CONTRIBUTING.md +0 -0
  59. {workbench-0.8.484 → workbench-0.8.485}/Dockerfile +0 -0
  60. {workbench-0.8.484 → workbench-0.8.485}/LICENSE +0 -0
  61. {workbench-0.8.484 → workbench-0.8.485}/Makefile +0 -0
  62. {workbench-0.8.484 → workbench-0.8.485}/README.md +0 -0
  63. {workbench-0.8.484 → workbench-0.8.485}/SECURITY.md +0 -0
  64. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/.gitignore +0 -0
  65. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/README.md +0 -0
  66. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/app.py +0 -0
  67. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/assets/contests/render.js +0 -0
  68. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/assets/contests/styles.css +0 -0
  69. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/assets/favicon.ico +0 -0
  70. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/assets/ml_pipelines/render.js +0 -0
  71. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/assets/ml_pipelines/styles.css +0 -0
  72. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/dashboard +0 -0
  73. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/deploy.sh +0 -0
  74. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/open_source_config.json +0 -0
  75. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/contests/callbacks.py +0 -0
  76. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/contests/layout.py +0 -0
  77. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/contests/page.py +0 -0
  78. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/data_sources/callbacks.py +0 -0
  79. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/data_sources/layout.py +0 -0
  80. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/data_sources/page.py +0 -0
  81. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/endpoints/callbacks.py +0 -0
  82. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/endpoints/layout.py +0 -0
  83. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/endpoints/page.py +0 -0
  84. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/feature_sets/callbacks.py +0 -0
  85. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/feature_sets/layout.py +0 -0
  86. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/feature_sets/page.py +0 -0
  87. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/main/callbacks.py +0 -0
  88. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/main/layout.py +0 -0
  89. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/main/page.py +0 -0
  90. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/ml_pipelines/callbacks.py +0 -0
  91. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/ml_pipelines/layout.py +0 -0
  92. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/ml_pipelines/page.py +0 -0
  93. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/models/callbacks.py +0 -0
  94. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/models/layout.py +0 -0
  95. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/models/page.py +0 -0
  96. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/pages/status/page.py +0 -0
  97. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/requirements.in +0 -0
  98. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/static/dark.css +0 -0
  99. {workbench-0.8.484 → workbench-0.8.485}/applications/aws_dashboard/static/light.css +0 -0
  100. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/aws_account_setup.py +0 -0
  101. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/aws_identity_check.py +0 -0
  102. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/build_ml_pipeline.py +0 -0
  103. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_compute/README.md +0 -0
  104. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_compute/app.py +0 -0
  105. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_compute/cdk.json +0 -0
  106. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_compute/requirements.txt +0 -0
  107. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_compute/workbench_compute/__init__.py +0 -0
  108. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_compute/workbench_compute/lambdas/batch_failure/handler.py +0 -0
  109. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_compute/workbench_compute/lambdas/batch_trigger/handler.py +0 -0
  110. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_compute/workbench_compute/workbench_compute_stack.py +0 -0
  111. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_core/.gitignore +0 -0
  112. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_core/README.md +0 -0
  113. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_core/app.py +0 -0
  114. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_core/cdk.json +0 -0
  115. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_core/requirements-dev.txt +0 -0
  116. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_core/requirements.txt +0 -0
  117. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_core/source.bat +0 -0
  118. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_core/workbench_core/__init__.py +0 -0
  119. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_core/workbench_core/workbench_core_stack.py +0 -0
  120. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_dashboard/.gitignore +0 -0
  121. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_dashboard/README.md +0 -0
  122. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_dashboard/cdk.json +0 -0
  123. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_dashboard/requirements-dev.txt +0 -0
  124. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_dashboard/requirements.txt +0 -0
  125. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_dashboard/source.bat +0 -0
  126. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_dashboard/workbench_dashboard/__init__.py +0 -0
  127. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_vpc/README.md +0 -0
  128. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_vpc/app.py +0 -0
  129. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_vpc/cdk.json +0 -0
  130. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_vpc/requirements.txt +0 -0
  131. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_vpc/workbench_vpc/__init__.py +0 -0
  132. {workbench-0.8.484 → workbench-0.8.485}/aws_setup/workbench_vpc/workbench_vpc/workbench_vpc_stack.py +0 -0
  133. {workbench-0.8.484 → workbench-0.8.485}/ci/README.md +0 -0
  134. {workbench-0.8.484 → workbench-0.8.485}/ci/endpoint_import_smoke.py +0 -0
  135. {workbench-0.8.484 → workbench-0.8.485}/ci/endpoint_smoke_requirements.txt +0 -0
  136. {workbench-0.8.484 → workbench-0.8.485}/ci/lock.sh +0 -0
  137. {workbench-0.8.484 → workbench-0.8.485}/ci/template_import_check.py +0 -0
  138. {workbench-0.8.484 → workbench-0.8.485}/ci/workbench_ci_config.json +0 -0
  139. {workbench-0.8.484 → workbench-0.8.485}/data/abalone.csv +0 -0
  140. {workbench-0.8.484 → workbench-0.8.485}/data/karate_graph.json +0 -0
  141. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/README.md +0 -0
  142. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/alignment_utils.py +0 -0
  143. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/build_logp_logd_overlap.py +0 -0
  144. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/build_synthetic_multi_task.py +0 -0
  145. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/build_tagging_reference.py +0 -0
  146. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/descriptions.json +0 -0
  147. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/logp_to_feature_set.py +0 -0
  148. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/overlap_summary.py +0 -0
  149. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/pull_chembl_cyp_data.py +0 -0
  150. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/pull_common.py +0 -0
  151. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/pull_logd_data.py +0 -0
  152. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/pull_logp_data.py +0 -0
  153. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/pull_openadmet_data.py +0 -0
  154. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/pull_pubchem_cyp_data.py +0 -0
  155. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/pull_tox21_cyp_data.py +0 -0
  156. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/requirements.txt +0 -0
  157. {workbench-0.8.484 → workbench-0.8.485}/data/public_data/upload_data.py +0 -0
  158. {workbench-0.8.484 → workbench-0.8.485}/data/test_data.csv +0 -0
  159. {workbench-0.8.484 → workbench-0.8.485}/data/test_data.json +0 -0
  160. {workbench-0.8.484 → workbench-0.8.485}/data/wine_dataset.csv +0 -0
  161. {workbench-0.8.484 → workbench-0.8.485}/deploy_docker.sh +0 -0
  162. {workbench-0.8.484 → workbench-0.8.485}/docs/admin/aws_service_limits.md +0 -0
  163. {workbench-0.8.484 → workbench-0.8.485}/docs/admin/base_docker_push.md +0 -0
  164. {workbench-0.8.484 → workbench-0.8.485}/docs/admin/dashboard_docker_push.md +0 -0
  165. {workbench-0.8.484 → workbench-0.8.485}/docs/admin/dashboard_s3_plugins.md +0 -0
  166. {workbench-0.8.484 → workbench-0.8.485}/docs/admin/images/dashboard_secret_click.png +0 -0
  167. {workbench-0.8.484 → workbench-0.8.485}/docs/admin/images/serverless_quotas.png +0 -0
  168. {workbench-0.8.484 → workbench-0.8.485}/docs/admin/images/status_showing_S3_path.png +0 -0
  169. {workbench-0.8.484 → workbench-0.8.485}/docs/admin/pypi_release.md +0 -0
  170. {workbench-0.8.484 → workbench-0.8.485}/docs/admin/workbench_docker_for_lambdas.md +0 -0
  171. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/async_endpoint.md +0 -0
  172. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/compound.md +0 -0
  173. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/data_source.md +0 -0
  174. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/df_store.md +0 -0
  175. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/endpoint.md +0 -0
  176. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/feature_set.md +0 -0
  177. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/graph_store.md +0 -0
  178. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/inference_cache.md +0 -0
  179. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/inference_store.md +0 -0
  180. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/meta.md +0 -0
  181. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/meta_endpoint.md +0 -0
  182. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/model.md +0 -0
  183. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/monitor.md +0 -0
  184. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/overview.md +0 -0
  185. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/parameter_store.md +0 -0
  186. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/public_data.md +0 -0
  187. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/reports.md +0 -0
  188. {workbench-0.8.484 → workbench-0.8.485}/docs/api_classes/views.md +0 -0
  189. {workbench-0.8.484 → workbench-0.8.485}/docs/aws_setup/aws_setup.md +0 -0
  190. {workbench-0.8.484 → workbench-0.8.485}/docs/aws_setup/aws_tips_and_tricks.md +0 -0
  191. {workbench-0.8.484 → workbench-0.8.485}/docs/aws_setup/compute_stack.md +0 -0
  192. {workbench-0.8.484 → workbench-0.8.485}/docs/aws_setup/core_stack.md +0 -0
  193. {workbench-0.8.484 → workbench-0.8.485}/docs/aws_setup/dashboard_stack.md +0 -0
  194. {workbench-0.8.484 → workbench-0.8.485}/docs/aws_setup/domain_cert_setup.md +0 -0
  195. {workbench-0.8.484 → workbench-0.8.485}/docs/aws_setup/full_pipeline.md +0 -0
  196. {workbench-0.8.484 → workbench-0.8.485}/docs/aws_setup/iam_assume_role.md +0 -0
  197. {workbench-0.8.484 → workbench-0.8.485}/docs/aws_setup/index.md +0 -0
  198. {workbench-0.8.484 → workbench-0.8.485}/docs/aws_setup/redis_tunnel.md +0 -0
  199. {workbench-0.8.484 → workbench-0.8.485}/docs/aws_setup/sso_assume_role.md +0 -0
  200. {workbench-0.8.484 → workbench-0.8.485}/docs/aws_setup/stacks.md +0 -0
  201. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/3d_descriptors.md +0 -0
  202. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/aws_endpoint_architecture.md +0 -0
  203. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/chemprop_multi_task.md +0 -0
  204. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/chemprop_shap.md +0 -0
  205. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/confusion_explorer.md +0 -0
  206. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/feature_endpoints.md +0 -0
  207. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/index.md +0 -0
  208. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/ml_agent.md +0 -0
  209. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/molecular_standardization.md +0 -0
  210. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/pxr_weekend_experiments.md +0 -0
  211. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/storage/compound_etl.md +0 -0
  212. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/storage/compound_explorer.md +0 -0
  213. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/storage/eda.md +0 -0
  214. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/storage/feature_importances.md +0 -0
  215. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/storage/fun_with_endpoints.md +0 -0
  216. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/storage/htg.md +0 -0
  217. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/storage/model_monitoring.md +0 -0
  218. {workbench-0.8.484 → workbench-0.8.485}/docs/blogs/storage/residual_analysis.md +0 -0
  219. {workbench-0.8.484 → workbench-0.8.485}/docs/bosco/index.md +0 -0
  220. {workbench-0.8.484 → workbench-0.8.485}/docs/bosco/security.md +0 -0
  221. {workbench-0.8.484 → workbench-0.8.485}/docs/cached/cached_data_source.md +0 -0
  222. {workbench-0.8.484 → workbench-0.8.485}/docs/cached/cached_endpoint.md +0 -0
  223. {workbench-0.8.484 → workbench-0.8.485}/docs/cached/cached_feature_set.md +0 -0
  224. {workbench-0.8.484 → workbench-0.8.485}/docs/cached/cached_meta.md +0 -0
  225. {workbench-0.8.484 → workbench-0.8.485}/docs/cached/cached_model.md +0 -0
  226. {workbench-0.8.484 → workbench-0.8.485}/docs/cached/overview.md +0 -0
  227. {workbench-0.8.484 → workbench-0.8.485}/docs/chem_utils/index.md +0 -0
  228. {workbench-0.8.484 → workbench-0.8.485}/docs/ci/github_oidc_setup.md +0 -0
  229. {workbench-0.8.484 → workbench-0.8.485}/docs/ci/index.md +0 -0
  230. {workbench-0.8.484 → workbench-0.8.485}/docs/cloudwatch/index.md +0 -0
  231. {workbench-0.8.484 → workbench-0.8.485}/docs/comparisons/workbench_vs_databricks.md +0 -0
  232. {workbench-0.8.484 → workbench-0.8.485}/docs/compound_explorer/tox21.md +0 -0
  233. {workbench-0.8.484 → workbench-0.8.485}/docs/compound_explorer/toxicity_modeling.md +0 -0
  234. {workbench-0.8.484 → workbench-0.8.485}/docs/confidence/index.md +0 -0
  235. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/artifacts/artifact.md +0 -0
  236. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/artifacts/async_endpoint_core.md +0 -0
  237. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/artifacts/athena_source.md +0 -0
  238. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/artifacts/data_source_abstract.md +0 -0
  239. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/artifacts/endpoint_core.md +0 -0
  240. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/artifacts/feature_set_core.md +0 -0
  241. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/artifacts/model_core.md +0 -0
  242. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/artifacts/monitor_core.md +0 -0
  243. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/artifacts/overview.md +0 -0
  244. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/overview.md +0 -0
  245. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/pipelines/pipeline_meta.md +0 -0
  246. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/transforms/data_loaders_heavy.md +0 -0
  247. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/transforms/data_loaders_light.md +0 -0
  248. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/transforms/data_to_features.md +0 -0
  249. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/transforms/features_to_model.md +0 -0
  250. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/transforms/model_to_endpoint.md +0 -0
  251. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/transforms/overview.md +0 -0
  252. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/transforms/pandas_transforms.md +0 -0
  253. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/transforms/transform.md +0 -0
  254. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/views/column_subset_view.md +0 -0
  255. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/views/computation_view.md +0 -0
  256. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/views/create_view.md +0 -0
  257. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/views/display_view.md +0 -0
  258. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/views/inference_view.md +0 -0
  259. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/views/overview.md +0 -0
  260. {workbench-0.8.484 → workbench-0.8.485}/docs/core_classes/views/pandas_to_view.md +0 -0
  261. {workbench-0.8.484 → workbench-0.8.485}/docs/data_algorithms/dataframes/overview.md +0 -0
  262. {workbench-0.8.484 → workbench-0.8.485}/docs/data_algorithms/graphs/overview.md +0 -0
  263. {workbench-0.8.484 → workbench-0.8.485}/docs/data_algorithms/overview.md +0 -0
  264. {workbench-0.8.484 → workbench-0.8.485}/docs/data_algorithms/spark/overview.md +0 -0
  265. {workbench-0.8.484 → workbench-0.8.485}/docs/data_algorithms/sql/overview.md +0 -0
  266. {workbench-0.8.484 → workbench-0.8.485}/docs/enterprise/index.md +0 -0
  267. {workbench-0.8.484 → workbench-0.8.485}/docs/enterprise/private_saas.md +0 -0
  268. {workbench-0.8.484 → workbench-0.8.485}/docs/enterprise/project_branding.md +0 -0
  269. {workbench-0.8.484 → workbench-0.8.485}/docs/enterprise/themes.md +0 -0
  270. {workbench-0.8.484 → workbench-0.8.485}/docs/getting_started/index.md +0 -0
  271. {workbench-0.8.484 → workbench-0.8.485}/docs/glue/index.md +0 -0
  272. {workbench-0.8.484 → workbench-0.8.485}/docs/images/3d_descriptor_pipeline.svg +0 -0
  273. {workbench-0.8.484 → workbench-0.8.485}/docs/images/3d_descriptor_pipeline_detail.svg +0 -0
  274. {workbench-0.8.484 → workbench-0.8.485}/docs/images/3d_descriptor_v2_pipeline.svg +0 -0
  275. {workbench-0.8.484 → workbench-0.8.485}/docs/images/agent_repl_chat.svg +0 -0
  276. {workbench-0.8.484 → workbench-0.8.485}/docs/images/bedrock_prompt_path.svg +0 -0
  277. {workbench-0.8.484 → workbench-0.8.485}/docs/images/big_spider.png +0 -0
  278. {workbench-0.8.484 → workbench-0.8.485}/docs/images/bosco_dashboard_model.png +0 -0
  279. {workbench-0.8.484 → workbench-0.8.485}/docs/images/bosco_egress_guarded.svg +0 -0
  280. {workbench-0.8.484 → workbench-0.8.485}/docs/images/bosco_isoform_parity.png +0 -0
  281. {workbench-0.8.484 → workbench-0.8.485}/docs/images/bosco_neighborhood.png +0 -0
  282. {workbench-0.8.484 → workbench-0.8.485}/docs/images/bosco_top_residuals.png +0 -0
  283. {workbench-0.8.484 → workbench-0.8.485}/docs/images/chemprop_logd.png +0 -0
  284. {workbench-0.8.484 → workbench-0.8.485}/docs/images/chemprop_mt_expansion.svg +0 -0
  285. {workbench-0.8.484 → workbench-0.8.485}/docs/images/chemprop_mt_transfer.svg +0 -0
  286. {workbench-0.8.484 → workbench-0.8.485}/docs/images/chemprop_overview.svg +0 -0
  287. {workbench-0.8.484 → workbench-0.8.485}/docs/images/chemprop_shap_logd.png +0 -0
  288. {workbench-0.8.484 → workbench-0.8.485}/docs/images/chemprop_shap_pipeline.svg +0 -0
  289. {workbench-0.8.484 → workbench-0.8.485}/docs/images/confidence_percentile.svg +0 -0
  290. {workbench-0.8.484 → workbench-0.8.485}/docs/images/conformal_calibration.svg +0 -0
  291. {workbench-0.8.484 → workbench-0.8.485}/docs/images/confusion_explorer/drilldown_on_errors.png +0 -0
  292. {workbench-0.8.484 → workbench-0.8.485}/docs/images/confusion_explorer/high_confidence.png +0 -0
  293. {workbench-0.8.484 → workbench-0.8.485}/docs/images/confusion_explorer/overview.png +0 -0
  294. {workbench-0.8.484 → workbench-0.8.485}/docs/images/cyp_calibration_applied.svg +0 -0
  295. {workbench-0.8.484 → workbench-0.8.485}/docs/images/default_stack_flow.svg +0 -0
  296. {workbench-0.8.484 → workbench-0.8.485}/docs/images/endpoint_architecture.png +0 -0
  297. {workbench-0.8.484 → workbench-0.8.485}/docs/images/graph_representation.png +0 -0
  298. {workbench-0.8.484 → workbench-0.8.485}/docs/images/meta_endpoint_ensemble.svg +0 -0
  299. {workbench-0.8.484 → workbench-0.8.485}/docs/images/meta_endpoint_feature.svg +0 -0
  300. {workbench-0.8.484 → workbench-0.8.485}/docs/images/powered_aws_dark_blue.png +0 -0
  301. {workbench-0.8.484 → workbench-0.8.485}/docs/images/powered_aws_transparent.png +0 -0
  302. {workbench-0.8.484 → workbench-0.8.485}/docs/images/powered_aws_white.png +0 -0
  303. {workbench-0.8.484 → workbench-0.8.485}/docs/images/powered_aws_with_tm_grey.png +0 -0
  304. {workbench-0.8.484 → workbench-0.8.485}/docs/images/scp.png +0 -0
  305. {workbench-0.8.484 → workbench-0.8.485}/docs/images/scp_labs.png +0 -0
  306. {workbench-0.8.484 → workbench-0.8.485}/docs/images/small_spider.png +0 -0
  307. {workbench-0.8.484 → workbench-0.8.485}/docs/images/uq_conf_residual.png +0 -0
  308. {workbench-0.8.484 → workbench-0.8.485}/docs/images/uq_conformal.svg +0 -0
  309. {workbench-0.8.484 → workbench-0.8.485}/docs/images/uq_pred_scatter.png +0 -0
  310. {workbench-0.8.484 → workbench-0.8.485}/docs/images/uq_v1_signals.svg +0 -0
  311. {workbench-0.8.484 → workbench-0.8.485}/docs/images/uq_v1_training.svg +0 -0
  312. {workbench-0.8.484 → workbench-0.8.485}/docs/images/workbench_async_stack_flow.svg +0 -0
  313. {workbench-0.8.484 → workbench-0.8.485}/docs/images/workbench_concepts.png +0 -0
  314. {workbench-0.8.484 → workbench-0.8.485}/docs/images/workbench_stack_flow.svg +0 -0
  315. {workbench-0.8.484 → workbench-0.8.485}/docs/index.md +0 -0
  316. {workbench-0.8.484 → workbench-0.8.485}/docs/javascripts/mathjax.js +0 -0
  317. {workbench-0.8.484 → workbench-0.8.485}/docs/lambda_layer/index.md +0 -0
  318. {workbench-0.8.484 → workbench-0.8.485}/docs/local/index.md +0 -0
  319. {workbench-0.8.484 → workbench-0.8.485}/docs/misc/faq.md +0 -0
  320. {workbench-0.8.484 → workbench-0.8.485}/docs/misc/general_info.md +0 -0
  321. {workbench-0.8.484 → workbench-0.8.485}/docs/misc/scp_consulting.md +0 -0
  322. {workbench-0.8.484 → workbench-0.8.485}/docs/misc/workbench_classes_concepts.md +0 -0
  323. {workbench-0.8.484 → workbench-0.8.485}/docs/ml_pipelines/index.md +0 -0
  324. {workbench-0.8.484 → workbench-0.8.485}/docs/model_utils/index.md +0 -0
  325. {workbench-0.8.484 → workbench-0.8.485}/docs/models/chemprop_models.md +0 -0
  326. {workbench-0.8.484 → workbench-0.8.485}/docs/models/cleanlab_models.md +0 -0
  327. {workbench-0.8.484 → workbench-0.8.485}/docs/models/fingerprint_models.md +0 -0
  328. {workbench-0.8.484 → workbench-0.8.485}/docs/models/hpo.md +0 -0
  329. {workbench-0.8.484 → workbench-0.8.485}/docs/models/images/chemprop_decision_tree.svg +0 -0
  330. {workbench-0.8.484 → workbench-0.8.485}/docs/models/images/chemprop_desc_architecture.svg +0 -0
  331. {workbench-0.8.484 → workbench-0.8.485}/docs/models/images/confidence.jpg +0 -0
  332. {workbench-0.8.484 → workbench-0.8.485}/docs/models/images/hpo_details.svg +0 -0
  333. {workbench-0.8.484 → workbench-0.8.485}/docs/models/images/hpo_overview.svg +0 -0
  334. {workbench-0.8.484 → workbench-0.8.485}/docs/models/index.md +0 -0
  335. {workbench-0.8.484 → workbench-0.8.485}/docs/models/meta_endpoints.md +0 -0
  336. {workbench-0.8.484 → workbench-0.8.485}/docs/models/pytorch_models.md +0 -0
  337. {workbench-0.8.484 → workbench-0.8.485}/docs/models/sklearn_models.md +0 -0
  338. {workbench-0.8.484 → workbench-0.8.485}/docs/models/xgboost_models.md +0 -0
  339. {workbench-0.8.484 → workbench-0.8.485}/docs/plugins/index.md +0 -0
  340. {workbench-0.8.484 → workbench-0.8.485}/docs/presentations/index.md +0 -0
  341. {workbench-0.8.484 → workbench-0.8.485}/docs/release_notes/0_8_158.md +0 -0
  342. {workbench-0.8.484 → workbench-0.8.485}/docs/release_notes/0_8_339.md +0 -0
  343. {workbench-0.8.484 → workbench-0.8.485}/docs/release_notes/0_8_358.md +0 -0
  344. {workbench-0.8.484 → workbench-0.8.485}/docs/release_notes/0_8_384.md +0 -0
  345. {workbench-0.8.484 → workbench-0.8.485}/docs/release_notes/0_8_396.md +0 -0
  346. {workbench-0.8.484 → workbench-0.8.485}/docs/release_notes/0_8_398.md +0 -0
  347. {workbench-0.8.484 → workbench-0.8.485}/docs/release_notes/0_8_441.md +0 -0
  348. {workbench-0.8.484 → workbench-0.8.485}/docs/release_notes/0_8_450.md +0 -0
  349. {workbench-0.8.484 → workbench-0.8.485}/docs/repl/index.md +0 -0
  350. {workbench-0.8.484 → workbench-0.8.485}/docs/road_maps/0_9_0.md +0 -0
  351. {workbench-0.8.484 → workbench-0.8.485}/docs/road_maps/0_9_5.md +0 -0
  352. {workbench-0.8.484 → workbench-0.8.485}/docs/stylesheets/extra.css +0 -0
  353. {workbench-0.8.484 → workbench-0.8.485}/docs/themes/details.md +0 -0
  354. {workbench-0.8.484 → workbench-0.8.485}/docs/themes/index.md +0 -0
  355. {workbench-0.8.484 → workbench-0.8.485}/examples/ag-grid/hello_world.py +0 -0
  356. {workbench-0.8.484 → workbench-0.8.485}/examples/chem_utils/curate_admet_dataset.py +0 -0
  357. {workbench-0.8.484 → workbench-0.8.485}/examples/chem_utils/tag_molecules.py +0 -0
  358. {workbench-0.8.484 → workbench-0.8.485}/examples/chem_utils/tautomerize_smiles.py +0 -0
  359. {workbench-0.8.484 → workbench-0.8.485}/examples/datasource/datasource_from_df.py +0 -0
  360. {workbench-0.8.484 → workbench-0.8.485}/examples/datasource/datasource_from_s3.py +0 -0
  361. {workbench-0.8.484 → workbench-0.8.485}/examples/datasource/datasource_query.py +0 -0
  362. {workbench-0.8.484 → workbench-0.8.485}/examples/datasource/datasource_stats.py +0 -0
  363. {workbench-0.8.484 → workbench-0.8.485}/examples/datasource/datasource_to_featureset.py +0 -0
  364. {workbench-0.8.484 → workbench-0.8.485}/examples/endpoint/endpoint_details.py +0 -0
  365. {workbench-0.8.484 → workbench-0.8.485}/examples/endpoint/endpoint_inference.py +0 -0
  366. {workbench-0.8.484 → workbench-0.8.485}/examples/endpoint/endpoint_metrics.py +0 -0
  367. {workbench-0.8.484 → workbench-0.8.485}/examples/featureset/featureset_eda.py +0 -0
  368. {workbench-0.8.484 → workbench-0.8.485}/examples/featureset/featureset_query.py +0 -0
  369. {workbench-0.8.484 → workbench-0.8.485}/examples/full_ml_pipeline.py +0 -0
  370. {workbench-0.8.484 → workbench-0.8.485}/examples/glue_jobs/glue_example_1.py +0 -0
  371. {workbench-0.8.484 → workbench-0.8.485}/examples/glue_jobs/glue_example_2.py +0 -0
  372. {workbench-0.8.484 → workbench-0.8.485}/examples/glue_jobs/glue_example_3.py +0 -0
  373. {workbench-0.8.484 → workbench-0.8.485}/examples/glue_jobs/glue_launcher_examples/example_1.py +0 -0
  374. {workbench-0.8.484 → workbench-0.8.485}/examples/glue_jobs/glue_launcher_examples/example_2.py +0 -0
  375. {workbench-0.8.484 → workbench-0.8.485}/examples/graph/aqsol_proximity_path.py +0 -0
  376. {workbench-0.8.484 → workbench-0.8.485}/examples/meta/meta_list_endpoints.py +0 -0
  377. {workbench-0.8.484 → workbench-0.8.485}/examples/meta/meta_list_models.py +0 -0
  378. {workbench-0.8.484 → workbench-0.8.485}/examples/meta/meta_model_summary.py +0 -0
  379. {workbench-0.8.484 → workbench-0.8.485}/examples/ml_flow/.gitignore +0 -0
  380. {workbench-0.8.484 → workbench-0.8.485}/examples/ml_flow/README.md +0 -0
  381. {workbench-0.8.484 → workbench-0.8.485}/examples/ml_flow/aqsol_mlflow.py +0 -0
  382. {workbench-0.8.484 → workbench-0.8.485}/examples/ml_flow/aqsol_workbench_holdout.py +0 -0
  383. {workbench-0.8.484 → workbench-0.8.485}/examples/model_utils/model_metrics.py +0 -0
  384. {workbench-0.8.484 → workbench-0.8.485}/examples/model_utils/model_to_endpoint.py +0 -0
  385. {workbench-0.8.484 → workbench-0.8.485}/examples/model_utils/onboard_model.py +0 -0
  386. {workbench-0.8.484 → workbench-0.8.485}/examples/models/aqsol_example.py +0 -0
  387. {workbench-0.8.484 → workbench-0.8.485}/examples/models/chemprop.py +0 -0
  388. {workbench-0.8.484 → workbench-0.8.485}/examples/models/chemprop_bounded_loss_test.py +0 -0
  389. {workbench-0.8.484 → workbench-0.8.485}/examples/models/chemprop_foundation.py +0 -0
  390. {workbench-0.8.484 → workbench-0.8.485}/examples/models/chemprop_hpo.py +0 -0
  391. {workbench-0.8.484 → workbench-0.8.485}/examples/models/chemprop_logp_logd_synthetic.py +0 -0
  392. {workbench-0.8.484 → workbench-0.8.485}/examples/models/chemprop_logp_logd_tiered.py +0 -0
  393. {workbench-0.8.484 → workbench-0.8.485}/examples/models/chemprop_open_admet.py +0 -0
  394. {workbench-0.8.484 → workbench-0.8.485}/examples/models/dbscan.py +0 -0
  395. {workbench-0.8.484 → workbench-0.8.485}/examples/models/knn.py +0 -0
  396. {workbench-0.8.484 → workbench-0.8.485}/examples/models/meta_endpoint.py +0 -0
  397. {workbench-0.8.484 → workbench-0.8.485}/examples/models/pytorch.py +0 -0
  398. {workbench-0.8.484 → workbench-0.8.485}/examples/models/random_forest.py +0 -0
  399. {workbench-0.8.484 → workbench-0.8.485}/examples/models/split_comparison_chemprop.py +0 -0
  400. {workbench-0.8.484 → workbench-0.8.485}/examples/models/split_comparison_pytorch.py +0 -0
  401. {workbench-0.8.484 → workbench-0.8.485}/examples/models/split_comparison_xgb.py +0 -0
  402. {workbench-0.8.484 → workbench-0.8.485}/examples/models/uq_storage/bayesian_ridge.py +0 -0
  403. {workbench-0.8.484 → workbench-0.8.485}/examples/models/uq_storage/ensemble_xgb.py +0 -0
  404. {workbench-0.8.484 → workbench-0.8.485}/examples/models/uq_storage/gaussian_process.py +0 -0
  405. {workbench-0.8.484 → workbench-0.8.485}/examples/models/uq_storage/meta_uq.py +0 -0
  406. {workbench-0.8.484 → workbench-0.8.485}/examples/models/uq_storage/ngboost.py +0 -0
  407. {workbench-0.8.484 → workbench-0.8.485}/examples/models/uq_storage/quant_xgb.py +0 -0
  408. {workbench-0.8.484 → workbench-0.8.485}/examples/models/xgb_model.py +0 -0
  409. {workbench-0.8.484 → workbench-0.8.485}/examples/monitor/monitor_setup.py +0 -0
  410. {workbench-0.8.484 → workbench-0.8.485}/examples/monitor/monitor_usage.py +0 -0
  411. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/README.md +0 -0
  412. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/assets/hello/render.js +0 -0
  413. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/assets/hello/styles.css +0 -0
  414. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/branding/Readme.md +0 -0
  415. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/branding/scp.json +0 -0
  416. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/components/custom_plugin.py +0 -0
  417. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/components/endpoint_plugin.py +0 -0
  418. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/components/endpoint_turbo.py +0 -0
  419. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/components/model_markdown.py +0 -0
  420. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/components/model_plugin.py +0 -0
  421. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/packages/my_plugin_utils/__init__.py +0 -0
  422. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/packages/my_plugin_utils/assets/foo.json +0 -0
  423. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/packages/my_plugin_utils/cool_stuff.py +0 -0
  424. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/pages/plugin_page_1.py +0 -0
  425. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/pages/plugin_page_2.py +0 -0
  426. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/pages/plugin_page_3.py +0 -0
  427. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/pages/plugin_page_assets.py +0 -0
  428. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/templates/Readme.md +0 -0
  429. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/views/model_plugin_view.py +0 -0
  430. {workbench-0.8.484 → workbench-0.8.485}/examples/plugins/views/my_view_plugin.py +0 -0
  431. {workbench-0.8.484 → workbench-0.8.485}/experiments/chem_info/bulk_sims.py +0 -0
  432. {workbench-0.8.484 → workbench-0.8.485}/experiments/chem_info/knn_sims.py +0 -0
  433. {workbench-0.8.484 → workbench-0.8.485}/experiments/confidence_roc_curve.py +0 -0
  434. {workbench-0.8.484 → workbench-0.8.485}/experiments/coverage_probability.py +0 -0
  435. {workbench-0.8.484 → workbench-0.8.485}/experiments/db_scan_test.py +0 -0
  436. {workbench-0.8.484 → workbench-0.8.485}/experiments/log_testing.py +0 -0
  437. {workbench-0.8.484 → workbench-0.8.485}/experiments/networkx_id.py +0 -0
  438. {workbench-0.8.484 → workbench-0.8.485}/experiments/prediction_intervals.py +0 -0
  439. {workbench-0.8.484 → workbench-0.8.485}/experiments/residual_analysis.py +0 -0
  440. {workbench-0.8.484 → workbench-0.8.485}/experiments/rocauc_testing.py +0 -0
  441. {workbench-0.8.484 → workbench-0.8.485}/experiments/scatter_zoom_issue.py +0 -0
  442. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/README.md +0 -0
  443. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/_common.py +0 -0
  444. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/model_scripts/molecular_utils/fingerprints.py +0 -0
  445. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/model_scripts/molecular_utils/mol_descriptors.py +0 -0
  446. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/model_scripts/molecular_utils/mol_descriptors_3d.py +0 -0
  447. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/model_scripts/molecular_utils/mol_descriptors_3d_v2.py +0 -0
  448. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/model_scripts/molecular_utils/mol_standardize.py +0 -0
  449. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/model_scripts/requirements.txt +0 -0
  450. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/model_scripts/smiles_to_2d_model_script.py +0 -0
  451. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/model_scripts/smiles_to_2d_salt_model_script.py +0 -0
  452. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/model_scripts/smiles_to_3d_v1_model_script.py +0 -0
  453. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/model_scripts/smiles_to_3d_v2_model_script.py +0 -0
  454. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/model_scripts/smiles_to_fingerprints_model_script.template +0 -0
  455. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/smiles_to_2d_3d_salt_v2.py +0 -0
  456. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/smiles_to_2d_3d_v1.py +0 -0
  457. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/smiles_to_2d_3d_v2.py +0 -0
  458. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/smiles_to_2d_salt_v1.py +0 -0
  459. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/smiles_to_2d_v1.py +0 -0
  460. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/smiles_to_3d_v1.py +0 -0
  461. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/smiles_to_3d_v2.py +0 -0
  462. {workbench-0.8.484 → workbench-0.8.485}/feature_endpoints/smiles_to_fingerprints_v1.py +0 -0
  463. {workbench-0.8.484 → workbench-0.8.485}/glue_jobs/create_glue_workflow_with_trigger.py +0 -0
  464. {workbench-0.8.484 → workbench-0.8.485}/glue_jobs/example_glue_job.py +0 -0
  465. {workbench-0.8.484 → workbench-0.8.485}/lambda_layers/.gitignore +0 -0
  466. {workbench-0.8.484 → workbench-0.8.485}/lambda_layers/README.md +0 -0
  467. {workbench-0.8.484 → workbench-0.8.485}/lambda_layers/example_lambda/README.md +0 -0
  468. {workbench-0.8.484 → workbench-0.8.485}/lambda_layers/example_lambda/handler.py +0 -0
  469. {workbench-0.8.484 → workbench-0.8.485}/lambda_layers/example_lambda/local_test.py +0 -0
  470. {workbench-0.8.484 → workbench-0.8.485}/lambda_layers/example_lambda/sample_pipelines/demo/pipelines.json +0 -0
  471. {workbench-0.8.484 → workbench-0.8.485}/lambda_layers/requirements.txt +0 -0
  472. {workbench-0.8.484 → workbench-0.8.485}/mkdocs.yml +0 -0
  473. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/.gitignore +0 -0
  474. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/README_rx.md +0 -0
  475. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/caco2_efflux/caco2_efflux.py +0 -0
  476. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/caco2_efflux/pipelines.json +0 -0
  477. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/caco2_papp_a_b/caco2_papp_a_b.py +0 -0
  478. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/caco2_papp_a_b/pipelines.json +0 -0
  479. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_aux_features.py +0 -0
  480. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_chemprop_mt_aux_100.py +0 -0
  481. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_union_features.py +0 -0
  482. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/cyp_xgb_3dv2.py +0 -0
  483. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/README.md +0 -0
  484. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_2d6_pharmacophore.py +0 -0
  485. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_aux_alignment.py +0 -0
  486. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_calibration_figures.py +0 -0
  487. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_compare.py +0 -0
  488. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_ensemble_submit.py +0 -0
  489. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_error_decomposition.py +0 -0
  490. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_leaderboard.py +0 -0
  491. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_member_diversity.py +0 -0
  492. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_mix_submission.py +0 -0
  493. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_pooling_precheck.py +0 -0
  494. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_recalibrate.py +0 -0
  495. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_ruler_power.py +0 -0
  496. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_seed_noise.py +0 -0
  497. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_submit.py +0 -0
  498. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_tox21_anchors.py +0 -0
  499. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/cyp_verify_claims.py +0 -0
  500. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/openadmet_validation/LICENSE +0 -0
  501. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/openadmet_validation/__init__.py +0 -0
  502. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/openadmet_validation/activity_validation.py +0 -0
  503. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/scripts/openadmet_validation/tdi_validation.py +0 -0
  504. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/README.md +0 -0
  505. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_censored_features.py +0 -0
  506. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt.py +0 -0
  507. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt_100.py +0 -0
  508. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt_all.py +0 -0
  509. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt_aux.py +0 -0
  510. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt_censored.py +0 -0
  511. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_pytorch_3dv2.py +0 -0
  512. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/cyp/storage/cyp_xgb_fp.py +0 -0
  513. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/hlm_clint/hlm_clint.py +0 -0
  514. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/hlm_clint/pipelines.json +0 -0
  515. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/images/confidence.jpg +0 -0
  516. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/images/open_admet_model.jpg +0 -0
  517. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/inference/open_admet/rx_test_champions.py +0 -0
  518. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/ksol/ksol.py +0 -0
  519. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/ksol/pipelines.json +0 -0
  520. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/load_data/load_data.py +0 -0
  521. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/load_data/pipelines.json +0 -0
  522. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/logd/logd.py +0 -0
  523. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/logd/logd_chemprop_hpo.py +0 -0
  524. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/logd/pipelines.json +0 -0
  525. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/mbpb/mbpb.py +0 -0
  526. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/mbpb/pipelines.json +0 -0
  527. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/mgmb/mgmb.py +0 -0
  528. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/mgmb/pipelines.json +0 -0
  529. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/mlm_clint/mlm_clint.py +0 -0
  530. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/mlm_clint/pipelines.json +0 -0
  531. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/mppb/mppb.py +0 -0
  532. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/mppb/mppb_chemprop_hpo.py +0 -0
  533. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/mppb/pipelines.json +0 -0
  534. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/README.md +0 -0
  535. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_chemeleon_phase1.py +0 -0
  536. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_hpo_phase1.py +0 -0
  537. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_mt_hpo_phase1.py +0 -0
  538. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_mt_phase1.py +0 -0
  539. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_phase1.py +0 -0
  540. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_tuned_phase1.py +0 -0
  541. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_pytorch_hpo_phase1.py +0 -0
  542. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase1/pxr_xgb_hpo_phase1.py +0 -0
  543. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase2/activity_leaderboard_phase2.csv +0 -0
  544. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase2/pxr_chemprop_mt_phase2.py +0 -0
  545. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/phase2/pxr_chemprop_phase2.py +0 -0
  546. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/pxr_chemprop_mt_feature_sets.py +0 -0
  547. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/pxr/pxr_pytorch_3dv2.py +0 -0
  548. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/support/hello_world.py +0 -0
  549. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/support/model_metrics.md +0 -0
  550. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/support/run_inference.py +0 -0
  551. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/OpenADMET/support/utils/compute_model_metrics.py +0 -0
  552. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_chemprop_hpo.py +0 -0
  553. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_class_1.py +0 -0
  554. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_class_2.py +0 -0
  555. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_feature_set.py +0 -0
  556. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_reg_1.py +0 -0
  557. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_reg_2.py +0 -0
  558. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_xgb_custom_space.py +0 -0
  559. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/aqsol_xgb_hpo.py +0 -0
  560. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/AqSol/pipelines.json +0 -0
  561. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/abalone/abalone.py +0 -0
  562. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/abalone/pipelines.json +0 -0
  563. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/pipeline_utils_check/pipeline_utils_check.py +0 -0
  564. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/test_data/pipelines.json +0 -0
  565. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/test_data/test_data.py +0 -0
  566. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/wine_data/pipelines.json +0 -0
  567. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/Testing/wine_data/wine_classifier.py +0 -0
  568. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/pipeline_utils/__init__.py +0 -0
  569. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/pipeline_utils/smoke.py +0 -0
  570. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/plugins/models/__init__.py +0 -0
  571. {workbench-0.8.484 → workbench-0.8.485}/ml_pipelines/plugins/models/model_promotion.py +0 -0
  572. {workbench-0.8.484 → workbench-0.8.485}/presentations/README.md +0 -0
  573. {workbench-0.8.484 → workbench-0.8.485}/pyproject.toml +0 -0
  574. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/Readme.md +0 -0
  575. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/base/inference/requirements.in +0 -0
  576. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/base/training/requirements.in +0 -0
  577. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/build_deploy.sh +0 -0
  578. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/deploy_all +0 -0
  579. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/ml_pipelines/ml_pipeline_runner.py +0 -0
  580. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/pytorch_chem/inference/requirements.in +0 -0
  581. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/pytorch_chem/training/requirements.in +0 -0
  582. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/shared/main.py +0 -0
  583. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/shared/serve +0 -0
  584. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/tests/data/abalone_sm.csv +0 -0
  585. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/tests/example_model_script.py +0 -0
  586. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/tests/run_tests.sh +0 -0
  587. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/tests/test_inference.py +0 -0
  588. {workbench-0.8.484 → workbench-0.8.485}/sagemaker_images/tests/test_training.py +0 -0
  589. {workbench-0.8.484 → workbench-0.8.485}/scripts/active_logs.sh +0 -0
  590. {workbench-0.8.484 → workbench-0.8.485}/scripts/admet/partition_aqsol_alignment.py +0 -0
  591. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/async_typical_usage.py +0 -0
  592. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/athena_ddl_mixed_case.py +0 -0
  593. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/backfill_autoscaling_alarm_metadata.py +0 -0
  594. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/backfill_prm_endpoint_tags.py +0 -0
  595. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/backup_data_captures.sh +0 -0
  596. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/check_all_glue_tables.py +0 -0
  597. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/chemprop_timing_report.py +0 -0
  598. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/compact_inference_cache.py +0 -0
  599. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/contest_audit.py +0 -0
  600. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/data_capture_report.py +0 -0
  601. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/delete_data_captures.py +0 -0
  602. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/delete_old_lambda_layers.sh +0 -0
  603. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/delete_redis_keys.py +0 -0
  604. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/deploy_plugins.py +0 -0
  605. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/feature_endpoint_update_check.py +0 -0
  606. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/find_models_with_bridges.py +0 -0
  607. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/find_orphan_artifacts.py +0 -0
  608. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/find_orphan_models.py +0 -0
  609. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/find_orphan_parameters.py +0 -0
  610. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/find_orphan_tables.py +0 -0
  611. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/inference_cache_concurrency_check.py +0 -0
  612. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/inference_capture_check.py +0 -0
  613. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/ladder_quotas.py +0 -0
  614. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/ladder_steps.py +0 -0
  615. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/list_datacatalog.py +0 -0
  616. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/migration/TAG_MIGRATION.md +0 -0
  617. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/migration/migrate_legacy_tags.py +0 -0
  618. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/populate_activity_cliffs_reference_compounds.py +0 -0
  619. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/populate_reference_compounds.py +0 -0
  620. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/pull_image_digest.py +0 -0
  621. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/push_chemeleon_models.py +0 -0
  622. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/redis_reaper.py +0 -0
  623. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/reference_compounds/3d.json +0 -0
  624. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/reference_compounds/3d_perf.json +0 -0
  625. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/reference_compounds/complexity_skips.json +0 -0
  626. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/reference_compounds/corner_cases.json +0 -0
  627. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/reference_compounds/standardization.json +0 -0
  628. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/reference_compounds_common.py +0 -0
  629. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/smiles_nan_investigation.py +0 -0
  630. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/spam_list_tags.py +0 -0
  631. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/storage/convert_training_views.py +0 -0
  632. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/storage/copy_data_sources_across_envs.py +0 -0
  633. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/storage/migrate_data_source_via_df.py +0 -0
  634. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/storage/migrate_ds_meta.py +0 -0
  635. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/test_3d_descriptors.py +0 -0
  636. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/test_3d_endpoint.py +0 -0
  637. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/test_batch_job_failure.py +0 -0
  638. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/test_no_workbench_config.py +0 -0
  639. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/training_job_status.py +0 -0
  640. {workbench-0.8.484 → workbench-0.8.485}/scripts/admin/verify_async_autoscaling.py +0 -0
  641. {workbench-0.8.484 → workbench-0.8.485}/scripts/benchmark_fp_proximity.py +0 -0
  642. {workbench-0.8.484 → workbench-0.8.485}/scripts/compare_dataframes.py +0 -0
  643. {workbench-0.8.484 → workbench-0.8.485}/scripts/compare_model_packages.py +0 -0
  644. {workbench-0.8.484 → workbench-0.8.485}/scripts/endpoint_timing.py +0 -0
  645. {workbench-0.8.484 → workbench-0.8.485}/scripts/get_tags.py +0 -0
  646. {workbench-0.8.484 → workbench-0.8.485}/scripts/llm_deploys/deepseek_deploy.py +0 -0
  647. {workbench-0.8.484 → workbench-0.8.485}/scripts/model_cache_refresh.py +0 -0
  648. {workbench-0.8.484 → workbench-0.8.485}/scripts/model_endpoint_sanity_check.py +0 -0
  649. {workbench-0.8.484 → workbench-0.8.485}/scripts/monitor_event_bridge.py +0 -0
  650. {workbench-0.8.484 → workbench-0.8.485}/scripts/onboard_endpoints.py +0 -0
  651. {workbench-0.8.484 → workbench-0.8.485}/scripts/onboard_models.py +0 -0
  652. {workbench-0.8.484 → workbench-0.8.485}/scripts/pubchem/pubchem_example.py +0 -0
  653. {workbench-0.8.484 → workbench-0.8.485}/scripts/pubchem/pubchem_query.py +0 -0
  654. {workbench-0.8.484 → workbench-0.8.485}/scripts/pubchem/pubchem_query_with_cid.py +0 -0
  655. {workbench-0.8.484 → workbench-0.8.485}/scripts/sagemaker_pipeline_model_endpoint.py +0 -0
  656. {workbench-0.8.484 → workbench-0.8.485}/scripts/seaborn_to_plotly.py +0 -0
  657. {workbench-0.8.484 → workbench-0.8.485}/scripts/test_feature_set_creation.py +0 -0
  658. {workbench-0.8.484 → workbench-0.8.485}/scripts/tox21/test_tox_heuristic.py +0 -0
  659. {workbench-0.8.484 → workbench-0.8.485}/scripts/tox21/tox21_to_df_store.py +0 -0
  660. {workbench-0.8.484 → workbench-0.8.485}/scripts/uq_v1_baseline_metrics.py +0 -0
  661. {workbench-0.8.484 → workbench-0.8.485}/setup.cfg +0 -0
  662. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/__init__.py +0 -0
  663. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/__init__.py +0 -0
  664. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/bosco.py +0 -0
  665. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/bosco/sessions.md +0 -0
  666. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/bosco/tokens.md +0 -0
  667. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/bosco/tutorial.md +0 -0
  668. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/bosco/using_bosco.md +0 -0
  669. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/compounds/cheminformatics.md +0 -0
  670. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/compounds/compounds.md +0 -0
  671. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/compounds/proximity.md +0 -0
  672. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/core/api_classes.md +0 -0
  673. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/core/code_search.md +0 -0
  674. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/core/exploring.md +0 -0
  675. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/core/introspection.md +0 -0
  676. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/core/publishing.md +0 -0
  677. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/data/data_and_features.md +0 -0
  678. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/data/data_cleanup.md +0 -0
  679. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/data/pk_data.md +0 -0
  680. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/data/public_data.md +0 -0
  681. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/general.md +0 -0
  682. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/models/contests.md +0 -0
  683. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/models/feature_endpoints.md +0 -0
  684. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/models/hpo.md +0 -0
  685. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/models/local_models.md +0 -0
  686. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/models/making_models.md +0 -0
  687. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/models/promotion.md +0 -0
  688. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/models/uq.md +0 -0
  689. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/ops/batch.md +0 -0
  690. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/ops/endpoints.md +0 -0
  691. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/ops/monitoring.md +0 -0
  692. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/ops/pipelines.md +0 -0
  693. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/ui/dashboard.md +0 -0
  694. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/ui/interactive_apps.md +0 -0
  695. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/ui/plotting.md +0 -0
  696. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/guides/ui/plugin_pages.md +0 -0
  697. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/prompts/egress.md +0 -0
  698. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/prompts/personalities.md +0 -0
  699. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/agent/tools.py +0 -0
  700. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/__init__.py +0 -0
  701. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/Readme.md +0 -0
  702. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/__init__.py +0 -0
  703. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/data_source_eda.py +0 -0
  704. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/feature_space_proximity.py +0 -0
  705. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/fingerprint_proximity.py +0 -0
  706. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/multi_task_alignment.py +0 -0
  707. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/projection_2d.py +0 -0
  708. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/proximity.py +0 -0
  709. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/residual_features.py +0 -0
  710. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/smart_aggregator.py +0 -0
  711. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/storage/aggregation.py +0 -0
  712. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/storage/feature_spider.py +0 -0
  713. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/storage/row_tagger.py +0 -0
  714. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/storage/target_gradients.py +0 -0
  715. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/target_landscape.py +0 -0
  716. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/uq_model_v0.py +0 -0
  717. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/uq_model_v1.py +0 -0
  718. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/dataframe/uq_model_v2.py +0 -0
  719. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/graph/__init__.py +0 -0
  720. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/graph/heavy/Readme.md +0 -0
  721. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/graph/light/Readme.md +0 -0
  722. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/graph/light/__init__.py +0 -0
  723. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/graph/light/laplacian_smoothness.py +0 -0
  724. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/graph/light/path_search.py +0 -0
  725. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/graph/light/proximity_graph.py +0 -0
  726. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/models/cleanlab_model.py +0 -0
  727. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/models/noise_model.py +0 -0
  728. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/spark/Readme.md +0 -0
  729. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/sql/Readme.md +0 -0
  730. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/sql/__init__.py +0 -0
  731. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/sql/column_stats.py +0 -0
  732. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/sql/correlations.py +0 -0
  733. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/sql/descriptive_stats.py +0 -0
  734. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/sql/outliers.py +0 -0
  735. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/sql/sample_rows.py +0 -0
  736. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/algorithms/sql/value_counts.py +0 -0
  737. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/__init__.py +0 -0
  738. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/compound.py +0 -0
  739. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/data_source.py +0 -0
  740. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/df_store.py +0 -0
  741. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/endpoint.py +0 -0
  742. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/feature_set.py +0 -0
  743. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/graph_store.py +0 -0
  744. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/inference_cache.py +0 -0
  745. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/inference_store.py +0 -0
  746. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/meta.py +0 -0
  747. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/meta_endpoint.py +0 -0
  748. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/model.py +0 -0
  749. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/monitor.py +0 -0
  750. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/parameter_store.py +0 -0
  751. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/api/reports.py +0 -0
  752. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/batch/__init__.py +0 -0
  753. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/batch/models/__init__.py +0 -0
  754. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/batch/models/model_promotion.py +0 -0
  755. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/cached/__init__.py +0 -0
  756. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/cached/cached_artifact_mixin.py +0 -0
  757. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/cached/cached_data_source.py +0 -0
  758. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/cached/cached_endpoint.py +0 -0
  759. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/cached/cached_feature_set.py +0 -0
  760. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/cached/cached_meta.py +0 -0
  761. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/cached/cached_model.py +0 -0
  762. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/__init__.py +0 -0
  763. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/artifact.py +0 -0
  764. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/artifacts/__init__.py +0 -0
  765. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/artifacts/async_endpoint_core.py +0 -0
  766. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/artifacts/athena_source.py +0 -0
  767. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/artifacts/aws_artifact.py +0 -0
  768. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/artifacts/data_capture_core.py +0 -0
  769. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/artifacts/data_source_abstract.py +0 -0
  770. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/artifacts/data_source_factory.py +0 -0
  771. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/artifacts/endpoint_core.py +0 -0
  772. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/artifacts/feature_set_core.py +0 -0
  773. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/artifacts/model_core.py +0 -0
  774. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/artifacts/monitor_core.py +0 -0
  775. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/README.md +0 -0
  776. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/aws_account_clamp.py +0 -0
  777. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/aws_graph_store.py +0 -0
  778. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/aws_meta.py +0 -0
  779. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/aws_secrets_manager.py +0 -0
  780. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/aws_session.py +0 -0
  781. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/boto_session.py +0 -0
  782. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/cloud_platform/aws/cache_dataframe.py +0 -0
  783. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/cloud_platform/azure/README.md +0 -0
  784. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/cloud_platform/cloud_meta.py +0 -0
  785. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/cloud_platform/gcp/README.md +0 -0
  786. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/df_store_core.py +0 -0
  787. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/model_types.py +0 -0
  788. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/parameter_store_core.py +0 -0
  789. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/pipelines/__init__.py +0 -0
  790. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/pipelines/pipeline_meta.py +0 -0
  791. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/Readme.md +0 -0
  792. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/__init__.py +0 -0
  793. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/__init__.py +0 -0
  794. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/heavy/__init__.py +0 -0
  795. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/heavy/s3_heavy_to_data_source.py +0 -0
  796. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/light/__init__.py +0 -0
  797. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/light/csv_to_data_source.py +0 -0
  798. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/light/json_to_data_source.py +0 -0
  799. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_loaders/light/s3_to_data_source_light.py +0 -0
  800. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/__init__.py +0 -0
  801. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/heavy/__init__.py +0 -0
  802. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/heavy/emr/Readme.md +0 -0
  803. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/heavy/glue/Readme.md +0 -0
  804. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/light/__init__.py +0 -0
  805. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/light/clean_data.py +0 -0
  806. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_data/light/data_to_data_light.py +0 -0
  807. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/__init__.py +0 -0
  808. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/heavy/__init__.py +0 -0
  809. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/heavy/chunk/__init__.py +0 -0
  810. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/heavy/emr/Readme.md +0 -0
  811. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/heavy/glue/Readme.md +0 -0
  812. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/light/__init__.py +0 -0
  813. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/light/data_to_features_light.py +0 -0
  814. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/data_to_features/light/molecular_descriptors.py +0 -0
  815. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/features_to_features/__init__.py +0 -0
  816. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/features_to_features/heavy/emr/Readme.md +0 -0
  817. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/features_to_features/heavy/glue/Readme.md +0 -0
  818. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/features_to_model/__init__.py +0 -0
  819. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/features_to_model/features_to_model.py +0 -0
  820. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/model_to_endpoint/__init__.py +0 -0
  821. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/model_to_endpoint/model_to_endpoint.py +0 -0
  822. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/pandas_transforms/__init__.py +0 -0
  823. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/pandas_transforms/data_to_pandas.py +0 -0
  824. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/pandas_transforms/features_to_pandas.py +0 -0
  825. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/pandas_transforms/pandas_to_data.py +0 -0
  826. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/pandas_transforms/pandas_to_features.py +0 -0
  827. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/pandas_transforms/pandas_to_features_chunked.py +0 -0
  828. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/transforms/transform.py +0 -0
  829. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/views/__init__.py +0 -0
  830. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/views/column_subset_view.py +0 -0
  831. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/views/computation_view.py +0 -0
  832. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/views/create_view.py +0 -0
  833. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/views/display_view.py +0 -0
  834. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/views/inference_view.py +0 -0
  835. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/views/pandas_to_view.py +0 -0
  836. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/views/view.py +0 -0
  837. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/core/views/view_utils.py +0 -0
  838. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/__init__.py +0 -0
  839. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/async_inference.py +0 -0
  840. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/chemprop_shap_utils.py +0 -0
  841. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/chemprop_utils.py +0 -0
  842. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/df_store.py +0 -0
  843. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/fast_inference.py +0 -0
  844. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/feature_space_proximity.py +0 -0
  845. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/fingerprint_proximity.py +0 -0
  846. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/fingerprints.py +0 -0
  847. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/inference.py +0 -0
  848. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/meta_endpoint_dag.py +0 -0
  849. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/parameter_store.py +0 -0
  850. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/proximity.py +0 -0
  851. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/pytorch_utils.py +0 -0
  852. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/residual_features.py +0 -0
  853. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/uq_harness.py +0 -0
  854. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/uq_model_v0.py +0 -0
  855. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/uq_model_v1.py +0 -0
  856. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/uq_model_v2.py +0 -0
  857. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/endpoints/uq_regression.py +0 -0
  858. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/lambda_layer/__init__.py +0 -0
  859. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/lambda_layer/artifact_times.py +0 -0
  860. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/lambda_layer/pipeline_manager.py +0 -0
  861. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/local/__init__.py +0 -0
  862. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/local/data_source.py +0 -0
  863. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/local/endpoint.py +0 -0
  864. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/local/feature_set.py +0 -0
  865. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/local/local_artifact.py +0 -0
  866. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/local/meta.py +0 -0
  867. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/local/model.py +0 -0
  868. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/local/parameter_store.py +0 -0
  869. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/local/storage.py +0 -0
  870. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/chemprop/requirements.txt +0 -0
  871. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/network_security/Readme.md +0 -0
  872. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/Readme.md +0 -0
  873. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/bayesian_ridge.template +0 -0
  874. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/ensemble_xgb.template +0 -0
  875. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/feature_space_proximity.py +0 -0
  876. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/gaussian_process.template +0 -0
  877. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/ngboost.template +0 -0
  878. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/custom_models/uq_models/requirements.txt +0 -0
  879. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/custom_script_example/custom_model_script.py +0 -0
  880. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/custom_script_example/requirements.txt +0 -0
  881. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/meta_endpoint/meta_endpoint.template +0 -0
  882. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/pytorch_model/pytorch.template +0 -0
  883. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/pytorch_model/requirements.txt +0 -0
  884. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/scikit_learn/requirements.txt +0 -0
  885. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/scikit_learn/scikit_learn.template +0 -0
  886. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/script_generation.py +0 -0
  887. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/xgb_model/requirements.txt +0 -0
  888. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/model_scripts/xgb_model/xgb_model.template +0 -0
  889. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/plugin_pages/README.md +0 -0
  890. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/plugin_pages/assets/mc/render.js +0 -0
  891. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/plugin_pages/assets/mc/styles.css +0 -0
  892. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/plugin_pages/components/prediction_plot.py +0 -0
  893. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/plugin_pages/pages/model_comparison_page.py +0 -0
  894. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/plugin_pages/views/model_comparison_view.py +0 -0
  895. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/public_data.py +0 -0
  896. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/repl/__init__.py +0 -0
  897. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/repl/workbench_shell.py +0 -0
  898. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/bedrock_verify.py +0 -0
  899. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/check_double_bond_stereo.py +0 -0
  900. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/df_store.py +0 -0
  901. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/endpoint_test.py +0 -0
  902. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/ensemble_sim.py +0 -0
  903. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/glue_launcher.py +0 -0
  904. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/lambda_test.py +0 -0
  905. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/ml_pipeline_batch.py +0 -0
  906. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/ml_pipeline_launcher.py +0 -0
  907. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/ml_pipeline_sqs.py +0 -0
  908. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/monitor_cloud_watch.py +0 -0
  909. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/redis_expire.py +0 -0
  910. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/redis_report.py +0 -0
  911. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/redis_tunnel.py +0 -0
  912. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/show_config.py +0 -0
  913. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/scripts/training_test.py +0 -0
  914. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/themes/dark/base_css.url +0 -0
  915. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/themes/dark/custom.css +0 -0
  916. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/themes/dark/plotly.json +0 -0
  917. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/themes/light/base_css.url +0 -0
  918. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/themes/light/branding.json +0 -0
  919. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/themes/light/custom.css +0 -0
  920. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/themes/light/plotly.json +0 -0
  921. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/themes/midnight_blue/base_css.url +0 -0
  922. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/themes/midnight_blue/branding.json +0 -0
  923. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/themes/midnight_blue/custom.css +0 -0
  924. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/themes/midnight_blue/plotly.json +0 -0
  925. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/training/__init__.py +0 -0
  926. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/training/chemprop_core.py +0 -0
  927. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/training/chemprop_hpo.py +0 -0
  928. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/training/foundation_models.py +0 -0
  929. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/training/hpo_harness.py +0 -0
  930. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/training/hpo_runner.py +0 -0
  931. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/training/pytorch_core.py +0 -0
  932. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/training/pytorch_hpo.py +0 -0
  933. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/training/splits.py +0 -0
  934. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/training/training_harness.py +0 -0
  935. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/training/validation.py +0 -0
  936. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/training/xgb_core.py +0 -0
  937. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/training/xgb_hpo.py +0 -0
  938. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/__init__.py +0 -0
  939. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/aggregation_nodes.py +0 -0
  940. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/apps/__init__.py +0 -0
  941. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/apps/_serve.py +0 -0
  942. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/apps/pk_explorer.py +0 -0
  943. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/async_endpoint_utils.py +0 -0
  944. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/athena_utils.py +0 -0
  945. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/aws_utils.py +0 -0
  946. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/batch_utils.py +0 -0
  947. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/bosco_utils.py +0 -0
  948. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/bulk_utils.py +0 -0
  949. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/cache.py +0 -0
  950. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/chem_utils/__init__.py +0 -0
  951. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/chem_utils/fingerprints.py +0 -0
  952. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/chem_utils/misc.py +0 -0
  953. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/chem_utils/mol_descriptors.py +0 -0
  954. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/chem_utils/mol_descriptors_3d.py +0 -0
  955. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/chem_utils/mol_descriptors_3d_v2.py +0 -0
  956. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/chem_utils/mol_standardize.py +0 -0
  957. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/chem_utils/mol_tagging.py +0 -0
  958. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/chem_utils/salts.py +0 -0
  959. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/chem_utils/sdf.py +0 -0
  960. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/chem_utils/toxicity.py +0 -0
  961. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/chem_utils/vis.py +0 -0
  962. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/chemprop_utils.py +0 -0
  963. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/cloudwatch_handler.py +0 -0
  964. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/cloudwatch_utils.py +0 -0
  965. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/color_utils.py +0 -0
  966. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/config_manager.py +0 -0
  967. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/contest_utils.py +0 -0
  968. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/cow_puns.py +0 -0
  969. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/dashboard_metrics.py +0 -0
  970. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/dashboard_utils.py +0 -0
  971. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/datetime_utils.py +0 -0
  972. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/deprecated_utils.py +0 -0
  973. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/df_to_endpoint.py +0 -0
  974. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/distribution_stats.py +0 -0
  975. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/ecs_info.py +0 -0
  976. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/endpoint_autoscaling.py +0 -0
  977. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/endpoint_metrics.py +0 -0
  978. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/endpoint_utils.py +0 -0
  979. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/ensemble_simulator.py +0 -0
  980. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/ensemble_utils.py +0 -0
  981. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/execution_environment.py +0 -0
  982. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/extract_model_artifact.py +0 -0
  983. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/feature_endpoint_job.py +0 -0
  984. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/feature_prep.py +0 -0
  985. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/glue_utils.py +0 -0
  986. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/graph_utils.py +0 -0
  987. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/inference_cache_utils.py +0 -0
  988. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/ipython_utils.py +0 -0
  989. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/job_tracker.py +0 -0
  990. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/json_utils.py +0 -0
  991. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/llm_utils.py +0 -0
  992. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/log_utils.py +0 -0
  993. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/markdown_utils.py +0 -0
  994. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/meta_endpoint_dag.py +0 -0
  995. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/metrics_utils.py +0 -0
  996. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/model_comparison.py +0 -0
  997. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/model_utils.py +0 -0
  998. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/monitor_utils.py +0 -0
  999. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/pandas_utils.py +0 -0
  1000. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/performance_utils.py +0 -0
  1001. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/pipeline_serializer.py +0 -0
  1002. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/pipeline_utils.py +0 -0
  1003. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/plot_utils.py +0 -0
  1004. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/plots/__init__.py +0 -0
  1005. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/plots/hpo.py +0 -0
  1006. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/plots/neighborhood.py +0 -0
  1007. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/plots/pk.py +0 -0
  1008. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/plugin_manager.py +0 -0
  1009. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/prox_utils.py +0 -0
  1010. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/pytorch_utils.py +0 -0
  1011. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/redis_cache.py +0 -0
  1012. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/repl_color_utils.py +0 -0
  1013. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/repl_themes.py +0 -0
  1014. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/repl_utils.py +0 -0
  1015. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/s3_utils.py +0 -0
  1016. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/shap_utils.py +0 -0
  1017. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/shapley_values.py +0 -0
  1018. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/symbols.py +0 -0
  1019. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/synthetic_data_generator.py +0 -0
  1020. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/theme_manager.py +0 -0
  1021. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/training_job_utils.py +0 -0
  1022. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/tree_render.py +0 -0
  1023. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/type_abbrev.py +0 -0
  1024. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/version_drift.py +0 -0
  1025. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/web_utils.py +0 -0
  1026. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/workbench_cache.py +0 -0
  1027. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/workbench_event_bridge.py +0 -0
  1028. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/workbench_logging.py +0 -0
  1029. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/workbench_sqs.py +0 -0
  1030. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/xgboost_local_crossfold.py +0 -0
  1031. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/utils/xgboost_model_utils.py +0 -0
  1032. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/component_interface.py +0 -0
  1033. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/correlation_matrix.py +0 -0
  1034. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/data_details_markdown.py +0 -0
  1035. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/endpoint_metric_plots.py +0 -0
  1036. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/molecule_tooltip.py +0 -0
  1037. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugin_interface.py +0 -0
  1038. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugin_unit_test.py +0 -0
  1039. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/ag_table.py +0 -0
  1040. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/confusion_explorer.py +0 -0
  1041. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/confusion_matrix.py +0 -0
  1042. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/confusion_triangle.py +0 -0
  1043. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/dashboard_status.py +0 -0
  1044. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/data_details.py +0 -0
  1045. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/endpoint_details.py +0 -0
  1046. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/example_plot.py +0 -0
  1047. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/graph_plot.py +0 -0
  1048. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/model_details.py +0 -0
  1049. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/model_plot.py +0 -0
  1050. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/molecule_panel.py +0 -0
  1051. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/molecule_viewer.py +0 -0
  1052. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/multi_task_alignment_map.py +0 -0
  1053. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/scatter_plot.py +0 -0
  1054. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/plugins/shap_summary_plot.py +0 -0
  1055. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/settings_menu.py +0 -0
  1056. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/components/violin_plots.py +0 -0
  1057. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/page_views/contests_page_view.py +0 -0
  1058. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/page_views/data_sources_page_view.py +0 -0
  1059. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/page_views/endpoints_page_view.py +0 -0
  1060. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/page_views/feature_sets_page_view.py +0 -0
  1061. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/page_views/main_page.py +0 -0
  1062. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/page_views/ml_pipelines_page_view.py +0 -0
  1063. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/page_views/models_page_view.py +0 -0
  1064. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/page_views/page_view.py +0 -0
  1065. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/themed_dash.py +0 -0
  1066. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/utils/__init__.py +0 -0
  1067. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/utils/clientside_callbacks.py +0 -0
  1068. {workbench-0.8.484 → workbench-0.8.485}/src/workbench/web_interface/utils/page_callbacks.py +0 -0
  1069. {workbench-0.8.484 → workbench-0.8.485}/src/workbench.egg-info/dependency_links.txt +0 -0
  1070. {workbench-0.8.484 → workbench-0.8.485}/src/workbench.egg-info/entry_points.txt +0 -0
  1071. {workbench-0.8.484 → workbench-0.8.485}/src/workbench.egg-info/requires.txt +0 -0
  1072. {workbench-0.8.484 → workbench-0.8.485}/src/workbench.egg-info/top_level.txt +0 -0
  1073. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_aqsol_artifacts.py +0 -0
  1074. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_aqsol_artifacts_all.py +0 -0
  1075. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_aqsol_rt_artifacts.py +0 -0
  1076. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_basic_test_artifacts.py +0 -0
  1077. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_copy_artifacts.py +0 -0
  1078. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_empty_model_group.py +0 -0
  1079. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_endpoints_for_timing.py +0 -0
  1080. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_graph_artifacts.py +0 -0
  1081. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_knn_artifacts.py +0 -0
  1082. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_meta_endpoints.py +0 -0
  1083. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_proximity_models.py +0 -0
  1084. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_quant_regression_artifacts.py +0 -0
  1085. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_realtime_endpoint.py +0 -0
  1086. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_sagemaker_pipeline_model.py +0 -0
  1087. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_training_adjusted_artifacts.py +0 -0
  1088. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_uq_compare_models.py +0 -0
  1089. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/create_wine_artifacts.py +0 -0
  1090. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/delete_stress_test_artifacts.py +0 -0
  1091. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/delete_test_artifacts.py +0 -0
  1092. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/hyper_testing.py +0 -0
  1093. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/local_artifacts/create_local_artifacts.py +0 -0
  1094. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/local_artifacts/delete_local_artifacts.py +0 -0
  1095. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/local_artifacts/publish_local_artifacts.py +0 -0
  1096. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/regression_ensemble.py +0 -0
  1097. {workbench-0.8.484 → workbench-0.8.485}/test_artifacts/stress_test_aws.py +0 -0
  1098. {workbench-0.8.484 → workbench-0.8.485}/tests/README.md +0 -0
  1099. {workbench-0.8.484 → workbench-0.8.485}/tests/agent/test_bosco_dispatch.py +0 -0
  1100. {workbench-0.8.484 → workbench-0.8.485}/tests/agent/test_guide_api_references.py +0 -0
  1101. {workbench-0.8.484 → workbench-0.8.485}/tests/agent/test_guide_structure.py +0 -0
  1102. {workbench-0.8.484 → workbench-0.8.485}/tests/agent/test_run_python_log_capture.py +0 -0
  1103. {workbench-0.8.484 → workbench-0.8.485}/tests/agent/test_web_guard.py +0 -0
  1104. {workbench-0.8.484 → workbench-0.8.485}/tests/algorithms/dataframe/test_multi_task_alignment.py +0 -0
  1105. {workbench-0.8.484 → workbench-0.8.485}/tests/algorithms/dataframe/test_proximity_neighbors.py +0 -0
  1106. {workbench-0.8.484 → workbench-0.8.485}/tests/algorithms/dataframe/test_target_landscape.py +0 -0
  1107. {workbench-0.8.484 → workbench-0.8.485}/tests/artifacts/data_source_tests.py +0 -0
  1108. {workbench-0.8.484 → workbench-0.8.485}/tests/artifacts/empty_model_group.py +0 -0
  1109. {workbench-0.8.484 → workbench-0.8.485}/tests/artifacts/featureset_ingest_boundaries.py +0 -0
  1110. {workbench-0.8.484 → workbench-0.8.485}/tests/artifacts/featureset_tests.py +0 -0
  1111. {workbench-0.8.484 → workbench-0.8.485}/tests/artifacts/graph_tests.py +0 -0
  1112. {workbench-0.8.484 → workbench-0.8.485}/tests/artifacts/meta_tests.py +0 -0
  1113. {workbench-0.8.484 → workbench-0.8.485}/tests/artifacts/model_metrics_tests.py +0 -0
  1114. {workbench-0.8.484 → workbench-0.8.485}/tests/artifacts/model_tests.py +0 -0
  1115. {workbench-0.8.484 → workbench-0.8.485}/tests/aws_account/aws_account_clamp_tests.py +0 -0
  1116. {workbench-0.8.484 → workbench-0.8.485}/tests/cached/cached_artifact_tests.py +0 -0
  1117. {workbench-0.8.484 → workbench-0.8.485}/tests/cached/cached_meta_api_tests.py +0 -0
  1118. {workbench-0.8.484 → workbench-0.8.485}/tests/cached/cached_meta_tests.py +0 -0
  1119. {workbench-0.8.484 → workbench-0.8.485}/tests/chem_info/test_complexity_cost_guard.py +0 -0
  1120. {workbench-0.8.484 → workbench-0.8.485}/tests/chem_info/test_conformer_energies.py +0 -0
  1121. {workbench-0.8.484 → workbench-0.8.485}/tests/chem_info/test_descriptors_3d_v2.py +0 -0
  1122. {workbench-0.8.484 → workbench-0.8.485}/tests/chem_info/test_standardization_reference.py +0 -0
  1123. {workbench-0.8.484 → workbench-0.8.485}/tests/chem_info/test_tagging_reference.py +0 -0
  1124. {workbench-0.8.484 → workbench-0.8.485}/tests/chem_info/test_tautomerization.py +0 -0
  1125. {workbench-0.8.484 → workbench-0.8.485}/tests/chem_info/test_vis_diff.py +0 -0
  1126. {workbench-0.8.484 → workbench-0.8.485}/tests/confidence/test_uq_harness.py +0 -0
  1127. {workbench-0.8.484 → workbench-0.8.485}/tests/corner_cases/end_to_end.py +0 -0
  1128. {workbench-0.8.484 → workbench-0.8.485}/tests/df_store/df_store_tests.py +0 -0
  1129. {workbench-0.8.484 → workbench-0.8.485}/tests/df_store/reports_tests.py +0 -0
  1130. {workbench-0.8.484 → workbench-0.8.485}/tests/endpoints/endpoint_tests.py +0 -0
  1131. {workbench-0.8.484 → workbench-0.8.485}/tests/endpoints/inference_cache_tests.py +0 -0
  1132. {workbench-0.8.484 → workbench-0.8.485}/tests/endpoints/meta_endpoint_dag_tests.py +0 -0
  1133. {workbench-0.8.484 → workbench-0.8.485}/tests/endpoints/pytorch_utils_test.py +0 -0
  1134. {workbench-0.8.484 → workbench-0.8.485}/tests/endpoints/test_async_idempotent.py +0 -0
  1135. {workbench-0.8.484 → workbench-0.8.485}/tests/endpoints/test_async_passthrough.py +0 -0
  1136. {workbench-0.8.484 → workbench-0.8.485}/tests/endpoints/test_async_warmup.py +0 -0
  1137. {workbench-0.8.484 → workbench-0.8.485}/tests/endpoints/test_capture_inference_metrics.py +0 -0
  1138. {workbench-0.8.484 → workbench-0.8.485}/tests/endpoints/test_cold_start_retry.py +0 -0
  1139. {workbench-0.8.484 → workbench-0.8.485}/tests/endpoints/test_multi_target_remap.py +0 -0
  1140. {workbench-0.8.484 → workbench-0.8.485}/tests/feature_endpoints/test_3d_complexity_skips.py +0 -0
  1141. {workbench-0.8.484 → workbench-0.8.485}/tests/feature_endpoints/test_3d_corner_cases.py +0 -0
  1142. {workbench-0.8.484 → workbench-0.8.485}/tests/feature_endpoints/test_3d_timing.py +0 -0
  1143. {workbench-0.8.484 → workbench-0.8.485}/tests/feature_endpoints/test_smiles_to_3d_v1.py +0 -0
  1144. {workbench-0.8.484 → workbench-0.8.485}/tests/lambda_layer/test_layer_dependencies.py +0 -0
  1145. {workbench-0.8.484 → workbench-0.8.485}/tests/local/test_aws_parity.py +0 -0
  1146. {workbench-0.8.484 → workbench-0.8.485}/tests/local/test_feature_endpoint_job.py +0 -0
  1147. {workbench-0.8.484 → workbench-0.8.485}/tests/local/test_job_tracker.py +0 -0
  1148. {workbench-0.8.484 → workbench-0.8.485}/tests/local/test_local_artifacts.py +0 -0
  1149. {workbench-0.8.484 → workbench-0.8.485}/tests/local/test_local_endpoint.py +0 -0
  1150. {workbench-0.8.484 → workbench-0.8.485}/tests/local/test_local_model.py +0 -0
  1151. {workbench-0.8.484 → workbench-0.8.485}/tests/local/test_local_parameter_store.py +0 -0
  1152. {workbench-0.8.484 → workbench-0.8.485}/tests/local/test_local_prox.py +0 -0
  1153. {workbench-0.8.484 → workbench-0.8.485}/tests/local/test_publish.py +0 -0
  1154. {workbench-0.8.484 → workbench-0.8.485}/tests/pandas_tests/test_convert_column_types.py +0 -0
  1155. {workbench-0.8.484 → workbench-0.8.485}/tests/pandas_tests/test_drift.py +0 -0
  1156. {workbench-0.8.484 → workbench-0.8.485}/tests/pandas_tests/test_multi_task.py +0 -0
  1157. {workbench-0.8.484 → workbench-0.8.485}/tests/pandas_tests/test_target_health.py +0 -0
  1158. {workbench-0.8.484 → workbench-0.8.485}/tests/pandas_tests/test_temporal_split.py +0 -0
  1159. {workbench-0.8.484 → workbench-0.8.485}/tests/parameter_store/param_store_tests.py +0 -0
  1160. {workbench-0.8.484 → workbench-0.8.485}/tests/pipelines/test_pipeline_launcher.py +0 -0
  1161. {workbench-0.8.484 → workbench-0.8.485}/tests/pipelines/test_pipeline_manager.py +0 -0
  1162. {workbench-0.8.484 → workbench-0.8.485}/tests/pipelines/test_pipeline_meta.py +0 -0
  1163. {workbench-0.8.484 → workbench-0.8.485}/tests/pipelines/test_pipeline_serializer.py +0 -0
  1164. {workbench-0.8.484 → workbench-0.8.485}/tests/plugin_tests/crashing_plugin.py +0 -0
  1165. {workbench-0.8.484 → workbench-0.8.485}/tests/pytorch/pytorch_hello.py +0 -0
  1166. {workbench-0.8.484 → workbench-0.8.485}/tests/requirements-dev.txt +0 -0
  1167. {workbench-0.8.484 → workbench-0.8.485}/tests/specific/capital_tests.py +0 -0
  1168. {workbench-0.8.484 → workbench-0.8.485}/tests/specific/column_changes.py +0 -0
  1169. {workbench-0.8.484 → workbench-0.8.485}/tests/specific/config_manager.py +0 -0
  1170. {workbench-0.8.484 → workbench-0.8.485}/tests/specific/deletion_tests.py +0 -0
  1171. {workbench-0.8.484 → workbench-0.8.485}/tests/specific/feature_ingest_multiprocessing_test.py +0 -0
  1172. {workbench-0.8.484 → workbench-0.8.485}/tests/specific/public_data_test.py +0 -0
  1173. {workbench-0.8.484 → workbench-0.8.485}/tests/specific/shap_tests.py +0 -0
  1174. {workbench-0.8.484 → workbench-0.8.485}/tests/specific/tag_tests.py +0 -0
  1175. {workbench-0.8.484 → workbench-0.8.485}/tests/training/chemprop_hpo_test.py +0 -0
  1176. {workbench-0.8.484 → workbench-0.8.485}/tests/training/conftest.py +0 -0
  1177. {workbench-0.8.484 → workbench-0.8.485}/tests/training/hpo_harness_test.py +0 -0
  1178. {workbench-0.8.484 → workbench-0.8.485}/tests/training/hpo_ray_trials.py +0 -0
  1179. {workbench-0.8.484 → workbench-0.8.485}/tests/training/hpo_runner_test.py +0 -0
  1180. {workbench-0.8.484 → workbench-0.8.485}/tests/training/instance_ladder_test.py +0 -0
  1181. {workbench-0.8.484 → workbench-0.8.485}/tests/training/pytorch_core_test.py +0 -0
  1182. {workbench-0.8.484 → workbench-0.8.485}/tests/training/pytorch_hpo_test.py +0 -0
  1183. {workbench-0.8.484 → workbench-0.8.485}/tests/training/script_generation_test.py +0 -0
  1184. {workbench-0.8.484 → workbench-0.8.485}/tests/training/search_space_test.py +0 -0
  1185. {workbench-0.8.484 → workbench-0.8.485}/tests/training/splits_test.py +0 -0
  1186. {workbench-0.8.484 → workbench-0.8.485}/tests/training/test_analog_holdout_split.py +0 -0
  1187. {workbench-0.8.484 → workbench-0.8.485}/tests/training/xgb_hpo_test.py +0 -0
  1188. {workbench-0.8.484 → workbench-0.8.485}/tests/transforms/data_to_data_tests.py +0 -0
  1189. {workbench-0.8.484 → workbench-0.8.485}/tests/transforms/data_to_features_tests.py +0 -0
  1190. {workbench-0.8.484 → workbench-0.8.485}/tests/transforms/features_to_model_tests.py +0 -0
  1191. {workbench-0.8.484 → workbench-0.8.485}/tests/transforms/model_to_endpoint_tests.py +0 -0
  1192. {workbench-0.8.484 → workbench-0.8.485}/tests/transforms/pandas_to_data_tests.py +0 -0
  1193. {workbench-0.8.484 → workbench-0.8.485}/tests/transforms/pandas_to_features_test.py +0 -0
  1194. {workbench-0.8.484 → workbench-0.8.485}/tests/uq/__init__.py +0 -0
  1195. {workbench-0.8.484 → workbench-0.8.485}/tests/uq/conftest.py +0 -0
  1196. {workbench-0.8.484 → workbench-0.8.485}/tests/uq/fixtures.py +0 -0
  1197. {workbench-0.8.484 → workbench-0.8.485}/tests/uq/test_backend_selection.py +0 -0
  1198. {workbench-0.8.484 → workbench-0.8.485}/tests/uq/test_conformal_calibration.py +0 -0
  1199. {workbench-0.8.484 → workbench-0.8.485}/tests/uq/test_multi_target_uq.py +0 -0
  1200. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_apps_pk_explorer.py +0 -0
  1201. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_bootstrap_metrics.py +0 -0
  1202. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_capture_content_types.py +0 -0
  1203. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_ensemble_simulator.py +0 -0
  1204. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_ensemble_utils.py +0 -0
  1205. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_execution_environment.py +0 -0
  1206. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_hpo_importance.py +0 -0
  1207. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_hpo_search_space.py +0 -0
  1208. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_llm_provider.py +0 -0
  1209. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_markdown_display.py +0 -0
  1210. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_model_artifacts.py +0 -0
  1211. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_model_comparison.py +0 -0
  1212. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_placement_metrics.py +0 -0
  1213. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_plots_hpo.py +0 -0
  1214. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_plots_pk.py +0 -0
  1215. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_sample_weights.py +0 -0
  1216. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_soft_threshold_rae.py +0 -0
  1217. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_training_utilization.py +0 -0
  1218. {workbench-0.8.484 → workbench-0.8.485}/tests/utils/test_tree_render.py +0 -0
  1219. {workbench-0.8.484 → workbench-0.8.485}/tests/validation/chemprop_validation_test.py +0 -0
  1220. {workbench-0.8.484 → workbench-0.8.485}/tests/validation/pytorch_validation_test.py +0 -0
  1221. {workbench-0.8.484 → workbench-0.8.485}/tests/validation/row_roles_test.py +0 -0
  1222. {workbench-0.8.484 → workbench-0.8.485}/tests/validation/validation_split_test.py +0 -0
  1223. {workbench-0.8.484 → workbench-0.8.485}/tests/validation/xgb_validation_test.py +0 -0
  1224. {workbench-0.8.484 → workbench-0.8.485}/tests/views/view_tests.py +0 -0
  1225. {workbench-0.8.484 → workbench-0.8.485}/tests/views/view_tests_complex.py +0 -0
  1226. {workbench-0.8.484 → workbench-0.8.485}/tests/web_components/confusion_matrix_test.py +0 -0
  1227. {workbench-0.8.484 → workbench-0.8.485}/tests/web_components/correlation_matrix_test.py +0 -0
  1228. {workbench-0.8.484 → workbench-0.8.485}/tests/web_components/graph_plot_test.py +0 -0
  1229. {workbench-0.8.484 → workbench-0.8.485}/tests/web_components/plugin_interface_test.py +0 -0
  1230. {workbench-0.8.484 → workbench-0.8.485}/tests/web_components/scatter_plot_test.py +0 -0
  1231. {workbench-0.8.484 → workbench-0.8.485}/tox.ini +0 -0
  1232. {workbench-0.8.484 → workbench-0.8.485}/ui_testing/assets/custom.css +0 -0
  1233. {workbench-0.8.484 → workbench-0.8.485}/ui_testing/table_comparison.py +0 -0
  1234. {workbench-0.8.484 → workbench-0.8.485}/ui_testing/theme_switching.py +0 -0
  1235. {workbench-0.8.484 → 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.484
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.483
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)
@@ -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.13.0
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==48.0.1
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.15.0
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:v0_8_458_amd64"
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 placement correction. **Macro ST-RAE 0.4378** on the live half of the test set.
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 placed.
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
- ## Placement
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-placed, not weak*.
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 place each isoform there with spread `ρ·sd`.
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 placement, 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;">
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
- Placement 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.
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 placement 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. Placing CYP2D6 on its true centre raises R² and *worsens* ST-RAE; there the two objectives point in opposite directions.
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 placements against the board, not derived. A credible-interval width model would give it directly.
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 place them
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: SMILES in, 13 UQ columns out" style="width: 100%; height: auto;">
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 ensemble runs first and produces two numbers per compound: `prediction` (the mean across folds) and `prediction_std` (the spread). Those two, plus the compound's SMILES, are everything the UQ model receives.
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 come from the *k* nearest training neighbors (default k=10):
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.483 # keep in lockstep with the image's ARG WORKBENCH_VERSION
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
- required=True,
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
- required=True,
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(
@@ -13,10 +13,12 @@ variant so a model can be compared across 3D sets with nothing else moving:
13
13
  `_std`.
14
14
  - openadmet_cyp_tdi_<v> TDI track. 6,145 compounds, `cyp3a4_is_tdi` and
15
15
  `cyp2d6_is_tdi` as binary targets.
16
- Set `BUILD` to the variants this run should produce. A variant costs one xTB pass
17
- over the 6,145 TDI compounds — the regression set is a strict subset of them, and
18
- the InferenceCache is SMILES-keyed and S3-persisted, so both tracks and any rerun
19
- draw from that one pass.
16
+ Each run builds one FeatureSet, selected by the pipeline mode `<track>_<variant>`
17
+ (`inhibition_f1`, `inhibition_f2`, `tdi_f1`, `tdi_f2`), so each job in pipelines.json
18
+ declares exactly its own public input, feature endpoint, and output. A variant costs
19
+ one xTB pass over the 6,145 TDI compounds — the regression set is a strict subset of
20
+ them, and the InferenceCache is SMILES-keyed and S3-persisted, so both tracks and any
21
+ rerun draw from that one pass.
20
22
 
21
23
  Target names keep the challenge's own naming, snake_cased. That is not cosmetic:
22
24
  `scripts/cyp_compare.py` finds the credible interval by appending `_ci_lower` to the
@@ -27,12 +29,13 @@ they are NOT features. Every model script must pass an explicit `feature_list` -
27
29
  an auto-generated one includes them, and a model handed the bounds that bracket
28
30
  its own label scores near-perfectly and is worth nothing.
29
31
 
30
- Run once before the model scripts: python cyp_feature_sets.py
32
+ Run before the model scripts: ml_pipeline_launcher cyp_feature_sets
31
33
  """
32
34
 
33
35
  import pandas as pd
34
36
  from workbench.api import DataSource, Endpoint, PublicData
35
37
  from workbench.api.inference_cache import InferenceCache
38
+ from workbench.core.pipelines.pipeline_meta import PipelineMeta
36
39
  from workbench.utils.multi_task import validate_multi_task_data
37
40
 
38
41
  # Variant suffix -> the (Meta)Endpoint that produces its 2D+3D features. v1 is the
@@ -42,9 +45,6 @@ FEATURE_VARIANTS = {
42
45
  "f2": "smiles-to-2d-3d-v2", # v2 3D (curated, xTB)
43
46
  }
44
47
 
45
- # Variants this run builds. Each is a multi-hour pass, so build them one at a time.
46
- BUILD = ["f2"]
47
-
48
48
  ISOFORMS = ["cyp3a4", "cyp2c9", "cyp2d6", "cyp1a2"]
49
49
  TARGETS = [f"{iso}_pic50_direct_inhibition" for iso in ISOFORMS]
50
50
 
@@ -59,39 +59,39 @@ def build_feature_set(fs_name: str, feature_endpoint: str, df: pd.DataFrame, tag
59
59
  print(f"Built '{fs_name}': {len(df)} rows, {n_feat} 2D+3D features; cache holds {cached.cache_size():,} SMILES")
60
60
 
61
61
 
62
- # --- Regression track: four sparse pIC50 targets with credible intervals -------------
63
-
64
- # Already one row per compound with NaN where an isoform has no fitted curve, which is
65
- # the multi-task shape -- no combining needed.
66
- inhibition = PublicData().get("comp_chem/openadmet/cyp/training/inhibition")
67
- validate_multi_task_data(inhibition, TARGETS, id_column="molecule_name")
62
+ # Mode "<track>_<variant>" selects the one FeatureSet this run builds
63
+ track, variant = PipelineMeta().mode.split("_")
68
64
 
69
- for variant in BUILD:
65
+ if track == "inhibition":
66
+ # Regression track: four sparse pIC50 targets with credible intervals. Already one
67
+ # row per compound with NaN where an isoform has no fitted curve, which is the
68
+ # multi-task shape -- no combining needed.
69
+ inhibition = PublicData().get("comp_chem/openadmet/cyp/training/inhibition")
70
+ validate_multi_task_data(inhibition, TARGETS, id_column="molecule_name")
70
71
  build_feature_set(
71
72
  f"openadmet_cyp_{variant}",
72
73
  FEATURE_VARIANTS[variant],
73
74
  inhibition,
74
75
  tags=["openadmet_cyp", "multi_task", "activity"],
75
76
  )
76
-
77
- coverage = ", ".join(f"{t.split('_')[0]}={inhibition[t].notna().sum()}" for t in TARGETS)
78
- print(f"Regression targets: {coverage}")
79
-
80
- # --- TDI track: binary labels for the two scored isoforms ----------------------------
81
-
82
- # Labels only. `is_tdi` is derived from the shift between the direct and TDI arms, so
83
- # carrying either arm's pIC50 alongside the label would hand the model the answer.
84
- tdi = PublicData().get("comp_chem/openadmet/cyp/training/tdi")
85
- tdi = tdi[["molecule_name", "smiles", "cyp3a4_is_tdi", "cyp2d6_is_tdi"]].copy()
86
-
87
- for variant in BUILD:
77
+ coverage = ", ".join(f"{t.split('_')[0]}={inhibition[t].notna().sum()}" for t in TARGETS)
78
+ print(f"Regression targets: {coverage}")
79
+
80
+ elif track == "tdi":
81
+ # TDI track: binary labels for the two scored isoforms. Labels only. `is_tdi` is
82
+ # derived from the shift between the direct and TDI arms, so carrying either arm's
83
+ # pIC50 alongside the label would hand the model the answer.
84
+ tdi = PublicData().get("comp_chem/openadmet/cyp/training/tdi")
85
+ tdi_targets = ["cyp3a4_is_tdi", "cyp2d6_is_tdi"]
86
+ tdi = tdi[["molecule_name", "smiles"] + tdi_targets].copy()
88
87
  build_feature_set(
89
88
  f"openadmet_cyp_tdi_{variant}",
90
89
  FEATURE_VARIANTS[variant],
91
90
  tdi,
92
91
  tags=["openadmet_cyp", "tdi", "classification"],
93
92
  )
93
+ positives = ", ".join(f"{c.split('_')[0]}={int(tdi[c].sum())}/{int(tdi[c].notna().sum())}" for c in tdi_targets)
94
+ print(f"TDI positives: {positives}")
94
95
 
95
- tdi_targets = ["cyp3a4_is_tdi", "cyp2d6_is_tdi"]
96
- positives = ", ".join(f"{c.split('_')[0]}={int(tdi[c].sum())}/{int(tdi[c].notna().sum())}" for c in tdi_targets)
97
- print(f"TDI positives: {positives}")
96
+ else:
97
+ raise ValueError(f"Unknown track {track!r} in mode {PipelineMeta().mode!r}")
@@ -1,13 +1,18 @@
1
1
  {
2
2
  "pipelines": {
3
3
  "openadmet_cyp": [
4
- {"script": "cyp_feature_sets.py",
5
- "inputs": ["public:comp_chem/openadmet/cyp/training/inhibition",
6
- "public:comp_chem/openadmet/cyp/training/tdi",
7
- "endpoint:smiles-to-2d-3d-v1",
8
- "endpoint:smiles-to-2d-3d-v2"],
9
- "outputs": ["fs:openadmet_cyp_f1", "fs:openadmet_cyp_tdi_f1",
10
- "fs:openadmet_cyp_f2", "fs:openadmet_cyp_tdi_f2"]},
4
+ {"script": "cyp_feature_sets.py", "mode": "inhibition_f1",
5
+ "inputs": ["public:comp_chem/openadmet/cyp/training/inhibition", "endpoint:smiles-to-2d-3d-v1"],
6
+ "outputs": ["fs:openadmet_cyp_f1"]},
7
+ {"script": "cyp_feature_sets.py", "mode": "inhibition_f2",
8
+ "inputs": ["public:comp_chem/openadmet/cyp/training/inhibition", "endpoint:smiles-to-2d-3d-v2"],
9
+ "outputs": ["fs:openadmet_cyp_f2"]},
10
+ {"script": "cyp_feature_sets.py", "mode": "tdi_f1",
11
+ "inputs": ["public:comp_chem/openadmet/cyp/training/tdi", "endpoint:smiles-to-2d-3d-v1"],
12
+ "outputs": ["fs:openadmet_cyp_tdi_f1"]},
13
+ {"script": "cyp_feature_sets.py", "mode": "tdi_f2",
14
+ "inputs": ["public:comp_chem/openadmet/cyp/training/tdi", "endpoint:smiles-to-2d-3d-v2"],
15
+ "outputs": ["fs:openadmet_cyp_tdi_f2"]},
11
16
  {"script": "cyp_aux_features.py",
12
17
  "inputs": ["fs:openadmet_cyp_f1",
13
18
  "public:comp_chem/openadmet/cyp/training/single_concentration"],