diff --git a/examples/NEQ_cycling_using_gufe_objects/alchemiscale-client/get_alchemiscale_results.ipynb b/examples/NEQ_cycling_using_gufe_objects/alchemiscale-client/get_alchemiscale_results.ipynb new file mode 100644 index 000000000..7734ed3f0 --- /dev/null +++ b/examples/NEQ_cycling_using_gufe_objects/alchemiscale-client/get_alchemiscale_results.ipynb @@ -0,0 +1,2541 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "c5e93dad", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "LICENSE: Could not open license file \"oe_license.txt\" in local directory\n", + "LICENSE: N.B. OE_LICENSE environment variable is not set\n", + "LICENSE: N.B. OE_DIR environment variable is not set\n", + "LICENSE: No product keys!\n", + "LICENSE: No product keys!\n", + "LICENSE: No product keys!\n", + "LICENSE: No product keys!\n" + ] + } + ], + "source": [ + "import os\n", + "import json\n", + "import openfe\n", + "import time\n", + "from collections import defaultdict\n", + "from openfe import ChemicalSystem, ProteinComponent, SolventComponent\n", + "from perses.protocols import NonEquilibriumCyclingProtocol\n", + "from gufe import AlchemicalNetwork, tokenization\n", + "from alchemiscale import AlchemiscaleClient, Scope\n", + "from tqdm import tqdm # progress bar" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "0d6712b9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "user_id = os.environ['ALCHEMISCALE_ID']\n", + "user_key = os.environ['ALCHEMISCALE_KEY']\n", + "asc = AlchemiscaleClient('https://api.alchemiscale.org', user_id, user_key)\n", + "asc.list_scopes()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "48ea8c33", + "metadata": {}, + "outputs": [], + "source": [ + "scope = Scope('choderalab', 'plbenchmarks', 'tyk2_off2_1')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8b70d0d0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ,\n", + " ,\n", + " ]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "asc.query_networks()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "611f557e", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "cdee7d8fb6fd42018f9319387a766e14", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+      ],
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "
\n",
+       "
\n" + ], + "text/plain": [ + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "network_sk_perses_prod = asc.query_networks()[-1]\n", + "network_production = asc.get_network(network_sk_perses_prod)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "0b030567", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "network_production" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "fc04afd4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Transformation-9f0165b5f2aa78ee63b0dfe3c6706b99-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-9f0165b5f2aa78ee63b0dfe3c6706b99-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-67edd5cb149e13700318019e0cd67bc0-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-67edd5cb149e13700318019e0cd67bc0-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-b818b45312e1b52f6bf4c7f6c1757608-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-b818b45312e1b52f6bf4c7f6c1757608-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-0ebd995688c627e7611f8157a41cd25d-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-0ebd995688c627e7611f8157a41cd25d-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-efc555ce63decebcc7e52f892a7dd4c0-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-efc555ce63decebcc7e52f892a7dd4c0-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-fe3e95784bc7e363fadce9660b59b125-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-fe3e95784bc7e363fadce9660b59b125-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-79cd1315d18223cd12616f41eab622e7-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-79cd1315d18223cd12616f41eab622e7-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-b8f036a1b70da3db999681fcc2ab5d62-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-b8f036a1b70da3db999681fcc2ab5d62-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-c77acd87707a7872b0016a45aa3dae6a-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-c77acd87707a7872b0016a45aa3dae6a-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-631eaa5e3e6f259508aeb3afc5dd805c-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-631eaa5e3e6f259508aeb3afc5dd805c-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-bab57e48b73731c770739d1bfb517608-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-bab57e48b73731c770739d1bfb517608-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-3304c448e3b360a835f9e16ed86898eb-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-3304c448e3b360a835f9e16ed86898eb-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-20e8d7060b866c80ed752081f80f8711-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-20e8d7060b866c80ed752081f80f8711-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-18677a68582e8c2945b6882c2d7b7cef-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-18677a68582e8c2945b6882c2d7b7cef-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-60e4018101a988b7b0202b2a78796a43-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-60e4018101a988b7b0202b2a78796a43-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-12e3f2122ac232e91497011db52ae0f4-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-12e3f2122ac232e91497011db52ae0f4-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-69a27e119f0f49001e3edf89e2aeaf9d-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-69a27e119f0f49001e3edf89e2aeaf9d-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-e1de0c75a7b5450c526b9441a03bfab1-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-e1de0c75a7b5450c526b9441a03bfab1-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-20b8148249890c1359df500ba6d07902-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-20b8148249890c1359df500ba6d07902-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-bf2c4c5ac2d3d49fdb6eb0ff531802e4-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-bf2c4c5ac2d3d49fdb6eb0ff531802e4-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-9ab1c52b1faee90226e2862a9c439648-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-9ab1c52b1faee90226e2862a9c439648-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-74212c2fabc7b53269f7d1abdd20fdb1-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      1 │\n",
+       "│ waiting                                                                                                     99 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-74212c2fabc7b53269f7d1abdd20fdb1-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 1\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 99\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-d8d48fa223cef5d42f05d61ef2f31ec9-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-d8d48fa223cef5d42f05d61ef2f31ec9-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Transformation-3ea5ee3433bb0e317dd4b1b78c919e5b-choderalab-plbenchmarks-tyk2_off2_1                                \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
+       "┃ status                                                                                                   count ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
+       "│ complete                                                                                                     0 │\n",
+       "│ running                                                                                                      0 │\n",
+       "│ waiting                                                                                                    100 │\n",
+       "│ error                                                                                                        0 │\n",
+       "│ invalid                                                                                                      0 │\n",
+       "│ deleted                                                                                                      0 │\n",
+       "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3mTransformation-3ea5ee3433bb0e317dd4b1b78c919e5b-choderalab-plbenchmarks-tyk2_off2_1 \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mstatus \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m count\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[32m \u001b[0m\u001b[32mcomplete \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m 0\u001b[0m\u001b[32m \u001b[0m│\n", + "│\u001b[38;5;172m \u001b[0m\u001b[38;5;172mrunning \u001b[0m\u001b[38;5;172m \u001b[0m│\u001b[38;5;172m \u001b[0m\u001b[38;5;172m 0\u001b[0m\u001b[38;5;172m \u001b[0m│\n", + "│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208mwaiting \u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\u001b[38;2;23;147;208m \u001b[0m\u001b[38;2;23;147;208m 100\u001b[0m\u001b[38;2;23;147;208m \u001b[0m│\n", + "│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58merror \u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\u001b[38;2;255;7;58m \u001b[0m\u001b[38;2;255;7;58m 0\u001b[0m\u001b[38;2;255;7;58m \u001b[0m│\n", + "│\u001b[38;5;201m \u001b[0m\u001b[38;5;201minvalid \u001b[0m\u001b[38;5;201m \u001b[0m│\u001b[38;5;201m \u001b[0m\u001b[38;5;201m 0\u001b[0m\u001b[38;5;201m \u001b[0m│\n", + "│\u001b[38;5;129m \u001b[0m\u001b[38;5;129mdeleted \u001b[0m\u001b[38;5;129m \u001b[0m│\u001b[38;5;129m \u001b[0m\u001b[38;5;129m 0\u001b[0m\u001b[38;5;129m \u001b[0m│\n", + "└──────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Poll transformation status\n", + "transformation_sks_list = []\n", + "for transformation in network_production.edges:\n", + " transform_sk = asc.get_scoped_key(transformation, scope)\n", + " transformation_sks_list.append(transform_sk)\n", + " asc.get_transformation_status(transform_sk)" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "1e47e379", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ,\n", + " ...]" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Cancel all tasks from network (if needd)\n", + "asc.cancel_tasks(tasks=asc.get_network_tasks(network_sk_perses_prod), network=network_sk_perses_prod)" + ] + }, + { + "cell_type": "markdown", + "id": "2483b8b5", + "metadata": {}, + "source": [ + "## If things ran succesfully\n", + "The following cells gather results and produce a binding FE estimate" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "5593a275", + "metadata": {}, + "outputs": [], + "source": [ + "# extract gathered dag results for single transformation\n", + "transformation_sk = \"Transformation-19193b855bf3b68ef4b6b0b1c52a2fbc-choderalab-neq_protocol_test-tyk2_off2_0\"\n", + "protocol_result = asc.get_transformation_results(transformation_sk)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "a328d939", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 5.9 s, sys: 72.8 ms, total: 5.97 s\n", + "Wall time: 24 s\n" + ] + } + ], + "source": [ + "%%time\n", + "# Extract another gathere results\n", + "transformation_sk = \"Transformation-6f6c58eebe4d7ce2ce0b37408aab130a-choderalab-neq_protocol_test-tyk2_off2_0\"\n", + "protocol_result = asc.get_transformation_results(transformation_sk)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d60dd4a6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "-38.61469649105796 kilocalorie/mole" + ], + "text/latex": [ + "$-38.61469649105796\\ \\frac{\\mathrm{kilocalorie}}{\\mathrm{mole}}$" + ], + "text/plain": [ + "-38.61469649105796 " + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "protocol_result.get_estimate()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "30f85993", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "0.0440638814566767 kilocalorie/mole" + ], + "text/latex": [ + "$0.0440638814566767\\ \\frac{\\mathrm{kilocalorie}}{\\mathrm{mole}}$" + ], + "text/plain": [ + "0.0440638814566767 " + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "protocol_result.get_uncertainty()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6cac91e3", + "metadata": {}, + "outputs": [], + "source": [ + "# Extract all the dag results from a transformation\n", + "protocol_result = asc.get_transformation_results(transformation_sk, return_protocoldagresults=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "97ca03ce", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Transformation(stateA=ChemicalSystem(name=, components={'ligand': SmallMoleculeComponent(name=lig_ejm_46), 'solvent': SolventComponent(name=O, Na+, Cl-)}), stateB=ChemicalSystem(name=, components={'ligand': SmallMoleculeComponent(name=lig_jmc_28), 'solvent': SolventComponent(name=O, Na+, Cl-)}), protocol=)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "transformation" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "f11f2bcb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "protocol_result" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "14c30a73", + "metadata": {}, + "outputs": [], + "source": [ + "# Extract all the results from all transformations and divide into phases\n", + "\n", + "# Helper functions\n", + "def infer_phase(system: ChemicalSystem):\n", + " \"\"\"Infers the phase (vacuum, solvent, complex) according to the \n", + " components in the given system\"\"\"\n", + " comps = system.components.values()\n", + " if any([isinstance(comp, ProteinComponent) for comp in comps]):\n", + " return \"complex\"\n", + " elif any([isinstance(comp, SolventComponent) for comp in comps]):\n", + " return \"solvent\"\n", + " else:\n", + " return \"vacuum\"\n", + "\n", + "def create_arsenic_csv(results_dict, filename=\"arsenic_calculated.csv\"):\n", + " \"\"\"Generates calculated part of arsenic csv file\"\"\"\n", + " import numpy as np\n", + " with open(filename, 'w') as arsenic_out:\n", + " arsenic_out.write(\"edge,estimate(kcal/mol), error(kcal/mol)\\n\")\n", + " for transformation_str, phase_results in results_dict.items():\n", + " complex_fe = phase_results['complex'].get_estimate()\n", + " solvent_fe = phase_results['solvent'].get_estimate()\n", + " complex_error = phase_results['complex'].get_uncertainty()\n", + " solvent_error = phase_results['solvent'].get_uncertainty()\n", + " rel_fe_estimate = complex_fe - solvent_fe\n", + " rel_fe_error = np.sqrt(complex_error**2 + solvent_error**2)\n", + " # write string to file\n", + " arsenic_out.write(f\"{transformation_str},{rel_fe_estimate:.2f}, {rel_fe_error:.2f}\\n\")\n", + " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f36c1c8f", + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "results_dict = defaultdict(dict)\n", + "for transformation in tqdm(network_production.edges):\n", + " time_start = time.perf_counter()\n", + " scope_key = asc.get_scoped_key(transformation, scope)\n", + " result = asc.get_transformation_results(scope_key)\n", + " time_stop = time.perf_counter()\n", + " print(f\"time in seconds getting transformation results: {time_stop - time_start}\")\n", + " run_phase = infer_phase(transformation.stateA)\n", + " mapping = transformation.mapping['ligand']\n", + " name_a = mapping.componentA.name\n", + " name_b = mapping.componentB.name\n", + " \n", + " # store in data dictionary\n", + " results_dict[f\"{name_a}_{name_b}\"][run_phase] = result\n", + " \n", + "# generate csv to use with arsenic\n", + "create_arsenic_csv(results_dict)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "d17e5760", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "defaultdict(dict,\n", + " {'lig_ejm_46_lig_jmc_23': {'complex': ,\n", + " 'solvent': },\n", + " 'lig_ejm_46_lig_jmc_27': {'complex': ,\n", + " 'solvent': },\n", + " 'lig_ejm_31_lig_ejm_54': {'solvent': ,\n", + " 'complex': },\n", + " 'lig_ejm_31_lig_ejm_42': {'complex': ,\n", + " 'solvent': },\n", + " 'lig_ejm_31_lig_ejm_55': {'solvent': ,\n", + " 'complex': },\n", + " 'lig_ejm_31_lig_ejm_46': {'solvent': ,\n", + " 'complex': },\n", + " 'lig_ejm_31_lig_ejm_48': {'complex': ,\n", + " 'solvent': },\n", + " 'lig_ejm_31_lig_ejm_50': {'complex': ,\n", + " 'solvent': },\n", + " 'lig_ejm_42_lig_ejm_43': {'complex': ,\n", + " 'solvent': },\n", + " 'lig_ejm_31_lig_ejm_47': {'solvent': ,\n", + " 'complex': },\n", + " 'lig_ejm_45_lig_ejm_55': {'complex': ,\n", + " 'solvent': },\n", + " 'lig_ejm_46_lig_jmc_28': {'complex': ,\n", + " 'solvent': }})" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_dict" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "7dd9f989", + "metadata": {}, + "outputs": [], + "source": [ + "create_arsenic_csv(results_dict)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "8ef9106e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create arsenic plot\n", + "# Make plots and store\n", + "from openff.arsenic import plotting, wrangle\n", + "import numpy as np\n", + "csv_path = \"tyk2_arsenic.csv\"\n", + "target = \"tyk2\"\n", + "fe = wrangle.FEMap(csv_path)\n", + "# Relative plot\n", + "plotting.plot_DDGs(fe.graph,\n", + " target_name=f'{target}',\n", + " title=f'Relative binding energies - {target}',\n", + " figsize=5,\n", + " filename='./plot_relative.png'\n", + " )\n", + "# Absolute plot, with experimental data shifted to correct mean\n", + "experimental_mean_dg = np.asarray([node[1][\"exp_DG\"] for node in fe.graph.nodes(data=True)]).mean()\n", + "plotting.plot_DGs(fe.graph,\n", + " target_name=f'{target}',\n", + " title=f'Absolute binding energies - {target}',\n", + " figsize=5,\n", + " filename='./plot_absolute.png',\n", + " shift=experimental_mean_dg,\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "a23a9550", + "metadata": {}, + "source": [ + "# Handling errors in transformations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "544fb46d", + "metadata": {}, + "outputs": [], + "source": [ + "some_transformation = transformation_sks_list[0]\n", + "failed_protocol_dag_results = asc.get_transformation_failures(some_transformation)\n", + "for failure in failed_protocol_dag_results:\n", + " for failed_unit in failure.protocol_unit_failures:\n", + " print(failed_unit.exception)\n", + " print(failed_unit.traceback)" + ] + }, + { + "cell_type": "markdown", + "id": "9bdf69ec", + "metadata": {}, + "source": [ + "# Debugging get transformations results times -- Ignore following cells" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "7fda0ac0", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 24/24 [04:43<00:00, 11.81s/it]\n" + ] + } + ], + "source": [ + "# Trying to get only the \"solvent\" transformations/tasks\n", + "for edge in tqdm(network_production.edges):\n", + " phase = infer_phase(edge.stateA)\n", + " if phase == \"solvent\":\n", + " transform_results = asc.get_transformation_results(asc.get_scoped_key(edge, scope))\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "c3268522", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Transformation(stateA=ChemicalSystem(name=, components={'ligand': SmallMoleculeComponent(name=lig_ejm_46), 'solvent': SolventComponent(name=O, Na+, Cl-)}), stateB=ChemicalSystem(name=, components={'ligand': SmallMoleculeComponent(name=lig_jmc_28), 'solvent': SolventComponent(name=O, Na+, Cl-)}), protocol=)" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "asc.get_transformation(asc.get_scoped_key(edge, scope))" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "b39127c9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Transformation(stateA=ChemicalSystem(name=, components={'ligand': SmallMoleculeComponent(name=lig_ejm_46), 'solvent': SolventComponent(name=O, Na+, Cl-)}), stateB=ChemicalSystem(name=, components={'ligand': SmallMoleculeComponent(name=lig_jmc_28), 'solvent': SolventComponent(name=O, Na+, Cl-)}), protocol=)" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "edge" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f04baacf", + "metadata": {}, + "outputs": [], + "source": [ + "# Extracting problematic edge\n", + "# we know it is lig_ejm_31_lig_ejm_54,1.20 kilocalorie / mole\n", + "for edge in network_production.edges:\n", + " state_a_ligand = edge.stateA.components[\"ligand\"]\n", + " state_b_ligand = edge.stateB.components[\"ligand\"]\n", + " if state_a_ligand.name == \"lig_ejm_31\" and state_b_ligand.name == \"lig_ejm_54\":\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d5573256", + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "Cannot construct openff.toolkit.topology.Molecule from >\nNo registered toolkits can provide the capability \"from_object\" for args \"( >,)\" and kwargs \"{'allow_undefined_stereo': True, '_cls': }\"\nAvailable toolkits are: [ToolkitWrapper around OpenEye Toolkit version 2022.2.2, ToolkitWrapper around The RDKit version 2022.09.1, ToolkitWrapper around AmberTools version 22.0, ToolkitWrapper around Built-in Toolkit version None]\n ToolkitWrapper around OpenEye Toolkit version 2022.2.2 : The OpenFF Toolkit does not currently support parsing molecules with radicals. Found 1 radical electrons on molecule [c]1[c][c]c([c][c]1)[C][N]c2[c][c]n[c][c]2.\n ToolkitWrapper around The RDKit version 2022.09.1 : Cannot create Molecule from object\n", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[6], line 5\u001b[0m\n\u001b[1;32m 3\u001b[0m ligand_a \u001b[38;5;241m=\u001b[39m state_a_ligand\u001b[38;5;241m.\u001b[39mto_openff()\n\u001b[1;32m 4\u001b[0m ligand_b \u001b[38;5;241m=\u001b[39m state_b_ligand\u001b[38;5;241m.\u001b[39mto_openff()\n\u001b[0;32m----> 5\u001b[0m mapping \u001b[38;5;241m=\u001b[39m \u001b[43matom_mapper\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_best_mapping\u001b[49m\u001b[43m(\u001b[49m\u001b[43mligand_a\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mligand_b\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 6\u001b[0m mapping\n", + "File \u001b[0;32m~/miniconda3/envs/alchemiscale-client/lib/python3.9/site-packages/perses/rjmc/atom_mapping.py:992\u001b[0m, in \u001b[0;36mAtomMapper.get_best_mapping\u001b[0;34m(self, old_mol, new_mol)\u001b[0m\n\u001b[1;32m 989\u001b[0m initial_time \u001b[38;5;241m=\u001b[39m time\u001b[38;5;241m.\u001b[39mtime()\n\u001b[1;32m 991\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mnumpy\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mnp\u001b[39;00m\n\u001b[0;32m--> 992\u001b[0m atom_mappings \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_all_mappings\u001b[49m\u001b[43m(\u001b[49m\u001b[43mold_mol\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnew_mol\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 993\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (atom_mappings \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m) \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(atom_mappings)\u001b[38;5;241m==\u001b[39m\u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 994\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[0;32m~/miniconda3/envs/alchemiscale-client/lib/python3.9/site-packages/perses/rjmc/atom_mapping.py:823\u001b[0m, in \u001b[0;36mAtomMapper.get_all_mappings\u001b[0;34m(self, old_mol, new_mol)\u001b[0m\n\u001b[1;32m 819\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 820\u001b[0m \u001b[38;5;66;03m# Generate scaffold maps\u001b[39;00m\n\u001b[1;32m 821\u001b[0m \u001b[38;5;66;03m# TODO: Why are these hard-coded?\u001b[39;00m\n\u001b[1;32m 822\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mopeneye\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m oechem\n\u001b[0;32m--> 823\u001b[0m scaffold_maps \u001b[38;5;241m=\u001b[39m \u001b[43mAtomMapper\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_all_maps\u001b[49m\u001b[43m(\u001b[49m\u001b[43mold_oescaffold\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnew_oescaffold\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 824\u001b[0m \u001b[43m \u001b[49m\u001b[43matom_expr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moechem\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mOEExprOpts_RingMember\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m|\u001b[39;49m\u001b[43m \u001b[49m\u001b[43moechem\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mOEExprOpts_IntType\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 825\u001b[0m \u001b[43m \u001b[49m\u001b[43mbond_expr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moechem\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mOEExprOpts_RingMember\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 826\u001b[0m \u001b[43m \u001b[49m\u001b[43mexternal_inttypes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 827\u001b[0m \u001b[43m \u001b[49m\u001b[43munique\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 828\u001b[0m \u001b[43m \u001b[49m\u001b[43mmatching_criterion\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmatching_criterion\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 830\u001b[0m _logger\u001b[38;5;241m.\u001b[39mdebug(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mScaffold mapping generated \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(scaffold_maps)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m maps\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 832\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(scaffold_maps) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 833\u001b[0m \u001b[38;5;66;03m# There are no scaffold maps, so attempt to generate maps between molecules using the factory parameters\u001b[39;00m\n", + "File \u001b[0;32m~/miniconda3/envs/alchemiscale-client/lib/python3.9/site-packages/perses/rjmc/atom_mapping.py:1328\u001b[0m, in \u001b[0;36mAtomMapper._get_all_maps\u001b[0;34m(old_oemol, new_oemol, external_inttypes, atom_expr, bond_expr, unique, matching_criterion)\u001b[0m\n\u001b[1;32m 1326\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m match \u001b[38;5;129;01min\u001b[39;00m matches:\n\u001b[1;32m 1327\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1328\u001b[0m atom_mapping \u001b[38;5;241m=\u001b[39m \u001b[43mAtomMapper\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_create_atom_mapping\u001b[49m\u001b[43m(\u001b[49m\u001b[43mold_oemol\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnew_oemol\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmatch\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmatching_criterion\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1329\u001b[0m atom_mappings\u001b[38;5;241m.\u001b[39madd(atom_mapping)\n\u001b[1;32m 1330\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m InvalidMappingException \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 1331\u001b[0m \u001b[38;5;66;03m# Mapping is not valid; skip it\u001b[39;00m\n", + "File \u001b[0;32m~/miniconda3/envs/alchemiscale-client/lib/python3.9/site-packages/perses/rjmc/atom_mapping.py:1425\u001b[0m, in \u001b[0;36mAtomMapper._create_atom_mapping\u001b[0;34m(old_oemol, new_oemol, match, matching_criterion)\u001b[0m\n\u001b[1;32m 1421\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[1;32m 1423\u001b[0m new_to_old_atom_map[new_index] \u001b[38;5;241m=\u001b[39m old_index\n\u001b[0;32m-> 1425\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mAtomMapping\u001b[49m\u001b[43m(\u001b[49m\u001b[43mold_oemol\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnew_oemol\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnew_to_old_atom_map\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnew_to_old_atom_map\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniconda3/envs/alchemiscale-client/lib/python3.9/site-packages/perses/rjmc/atom_mapping.py:101\u001b[0m, in \u001b[0;36mAtomMapping.__init__\u001b[0;34m(self, old_mol, new_mol, new_to_old_atom_map, old_to_new_atom_map)\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[38;5;66;03m# Store molecules\u001b[39;00m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;66;03m# TODO: Should we be allowing unspecified stereochemistry?\u001b[39;00m\n\u001b[1;32m 100\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mopenff\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtoolkit\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtopology\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Molecule\n\u001b[0;32m--> 101\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mold_mol \u001b[38;5;241m=\u001b[39m \u001b[43mMolecule\u001b[49m\u001b[43m(\u001b[49m\u001b[43mold_mol\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mallow_undefined_stereo\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 102\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnew_mol \u001b[38;5;241m=\u001b[39m Molecule(new_mol, allow_undefined_stereo\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 104\u001b[0m \u001b[38;5;66;03m# Fix atom name retrieval from OEMol objects\u001b[39;00m\n\u001b[1;32m 105\u001b[0m \u001b[38;5;66;03m# TODO: When https://github.com/openforcefield/openff-toolkit/issues/1026 is fixed, remove this\u001b[39;00m\n", + "File \u001b[0;32m~/miniconda3/envs/alchemiscale-client/lib/python3.9/site-packages/openff/toolkit/topology/molecule.py:5150\u001b[0m, in \u001b[0;36mMolecule.__init__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 5079\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 5080\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 5081\u001b[0m \u001b[38;5;124;03m Create a new Molecule object\u001b[39;00m\n\u001b[1;32m 5082\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 5148\u001b[0m \n\u001b[1;32m 5149\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m-> 5150\u001b[0m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mMolecule\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniconda3/envs/alchemiscale-client/lib/python3.9/site-packages/openff/toolkit/topology/molecule.py:1032\u001b[0m, in \u001b[0;36mFrozenMolecule.__init__\u001b[0;34m(self, other, file_format, toolkit_registry, allow_undefined_stereo)\u001b[0m\n\u001b[1;32m 1030\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m value_error \u001b[38;5;129;01min\u001b[39;00m value_errors:\n\u001b[1;32m 1031\u001b[0m msg \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;28mstr\u001b[39m(value_error)\n\u001b[0;32m-> 1032\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(msg)\n", + "\u001b[0;31mValueError\u001b[0m: Cannot construct openff.toolkit.topology.Molecule from >\nNo registered toolkits can provide the capability \"from_object\" for args \"( >,)\" and kwargs \"{'allow_undefined_stereo': True, '_cls': }\"\nAvailable toolkits are: [ToolkitWrapper around OpenEye Toolkit version 2022.2.2, ToolkitWrapper around The RDKit version 2022.09.1, ToolkitWrapper around AmberTools version 22.0, ToolkitWrapper around Built-in Toolkit version None]\n ToolkitWrapper around OpenEye Toolkit version 2022.2.2 : The OpenFF Toolkit does not currently support parsing molecules with radicals. Found 1 radical electrons on molecule [c]1[c][c]c([c][c]1)[C][N]c2[c][c]n[c][c]2.\n ToolkitWrapper around The RDKit version 2022.09.1 : Cannot create Molecule from object\n" + ] + } + ], + "source": [ + "from perses.rjmc.atom_mapping import AtomMapper\n", + "atom_mapper = AtomMapper()\n", + "ligand_a = state_a_ligand.to_openff()\n", + "ligand_b = state_b_ligand.to_openff()\n", + "mapping = atom_mapper.get_best_mapping(ligand_a, ligand_b)\n", + "mapping\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "306b6dc2", + "metadata": {}, + "outputs": [], + "source": [ + "# Pulling transformation with multiprocess\n", + "from multiprocessing import Pool, TimeoutError\n", + "import time\n", + "import os\n", + "\n", + "def get_transformation_results(transformation, scope):\n", + " transform_sk = asc.get_scoped_key(transformation, scope)\n", + " transformation_sks_list.append(transform_sk)\n", + " transf_results = asc.get_transformation_results(transform_sk)\n", + " return transf_results\n", + "\n", + "if __name__ == '__main__':\n", + " # start 4 worker processes\n", + " with Pool(processes=8) as pool:\n", + "\n", + " # print \"[0, 1, 4,..., 81]\"\n", + " print(pool.map(f, range(10)))\n", + "\n", + " # print same numbers in arbitrary order\n", + " for i in pool.imap_unordered(f, range(10)):\n", + " print(i)\n", + "\n", + " # evaluate \"f(20)\" asynchronously\n", + " res = pool.apply_async(f, (20,)) # runs in *only* one process\n", + " print(res.get(timeout=1)) # prints \"400\"\n", + "\n", + " # evaluate \"os.getpid()\" asynchronously\n", + " res = pool.apply_async(os.getpid, ()) # runs in *only* one process\n", + " print(res.get(timeout=1)) # prints the PID of that process\n", + "\n", + " # launching multiple evaluations asynchronously *may* use more processes\n", + " multiple_results = [pool.apply_async(os.getpid, ()) for i in range(4)]\n", + " print([res.get(timeout=1) for res in multiple_results])\n", + "\n", + " # make a single worker sleep for 10 seconds\n", + " res = pool.apply_async(time.sleep, (10,))\n", + " try:\n", + " print(res.get(timeout=1))\n", + " except TimeoutError:\n", + " print(\"We lacked patience and got a multiprocessing.TimeoutError\")\n", + "\n", + " print(\"For the moment, the pool remains available for more work\")\n", + "\n", + " # exiting the 'with'-block has stopped the pool\n", + " print(\"Now the pool is closed and no longer available\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}