From 98b95a20641c987aff46cb6036c908bba03df97e Mon Sep 17 00:00:00 2001 From: Dominique Sydow Date: Wed, 28 Dec 2022 23:01:48 +0000 Subject: [PATCH 1/5] Create new branch! From aab586ca1e03d41ec78d72bf5628d97054880b0c Mon Sep 17 00:00:00 2001 From: dominiquesydow Date: Thu, 29 Dec 2022 23:01:32 +0000 Subject: [PATCH 2/5] T019: Remove simtk from docstrings [skip ci] --- .../talktorials/T019_md_simulation/talktorial.ipynb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/teachopencadd/talktorials/T019_md_simulation/talktorial.ipynb b/teachopencadd/talktorials/T019_md_simulation/talktorial.ipynb index aa7be162..5c76f2ae 100644 --- a/teachopencadd/talktorials/T019_md_simulation/talktorial.ipynb +++ b/teachopencadd/talktorials/T019_md_simulation/talktorial.ipynb @@ -698,7 +698,7 @@ "\n", " Returns\n", " -------\n", - " omm_molecule: simtk.openmm.app.Modeller\n", + " omm_molecule: openmm.app.Modeller\n", " OpenMM modeller object holding the molecule of interest.\n", " \"\"\"\n", " # convert RDKit to OpenFF\n", @@ -768,14 +768,14 @@ " ----------\n", " protein: pdbfixer.pdbfixer.PDBFixer\n", " Protein to merge.\n", - " ligand: simtk.openmm.app.Modeller\n", + " ligand: openmm.app.Modeller\n", " Ligand to merge.\n", "\n", " Returns\n", " -------\n", - " complex_topology: simtk.openmm.app.topology.Topology\n", + " complex_topology: openmm.app.topology.Topology\n", " The merged topology.\n", - " complex_positions: simtk.unit.quantity.Quantity\n", + " complex_positions: openmm.unit.quantity.Quantity\n", " The merged positions.\n", " \"\"\"\n", " # combine topologies\n", @@ -866,7 +866,7 @@ "\n", " Returns\n", " -------\n", - " forcefield: simtk.openmm.app.Forcefield\n", + " forcefield: openmm.app.Forcefield\n", " Forcefield with registered small molecule.\n", " \"\"\"\n", " forcefield = app.ForceField(protein_ff, solvent_ff)\n", From 6fa544bfc9f1acccb8a24d9c35fb1c00fa25e229 Mon Sep 17 00:00:00 2001 From: dominiquesydow Date: Fri, 30 Dec 2022 21:33:31 +0000 Subject: [PATCH 3/5] CI: Run only T019 (tmp) --- .github/workflows/ci.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1392a3e4..11ebda6e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -82,11 +82,13 @@ jobs: # Temporarily ignored notebooks PYTEST_IGNORE_T008="--ignore=teachopencadd/talktorials/T008_query_pdb/talktorial.ipynb" - if [ "$RUNNER_OS" != "Windows" ]; then - pytest $PYTEST_ARGS teachopencadd/talktorials/ $PYTEST_IGNORE_T008 - else - pytest $PYTEST_ARGS teachopencadd/talktorials/ $PYTEST_IGNORE_T008 $PYTEST_IGNORE_T019 - fi + pytest $PYTEST_ARGS teachopencadd/talktorials/T019_md_simulation/talktorial.ipynb + + # if [ "$RUNNER_OS" != "Windows" ]; then + # pytest $PYTEST_ARGS teachopencadd/talktorials/ $PYTEST_IGNORE_T008 + # else + # pytest $PYTEST_ARGS teachopencadd/talktorials/ $PYTEST_IGNORE_T008 $PYTEST_IGNORE_T019 + # fi format: name: Black From c6bf5b5ef57edf9125cc49e9d43ae00c57537468 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Backenk=C3=B6hler?= Date: Mon, 22 May 2023 12:31:25 +0200 Subject: [PATCH 4/5] T019: incorporate Davids fix in #308 --- .../T019_md_simulation/talktorial.ipynb | 207 ++++++++++++++---- 1 file changed, 162 insertions(+), 45 deletions(-) diff --git a/teachopencadd/talktorials/T019_md_simulation/talktorial.ipynb b/teachopencadd/talktorials/T019_md_simulation/talktorial.ipynb index 5c76f2ae..d820a9db 100644 --- a/teachopencadd/talktorials/T019_md_simulation/talktorial.ipynb +++ b/teachopencadd/talktorials/T019_md_simulation/talktorial.ipynb @@ -346,7 +346,106 @@ "name": "stdout", "output_type": "stream", "text": [ - "Collecting package metadata (current_repodata.json): ...working... ^C\n" + " Package Version Build Channel Size\n", + "──────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Install:\n", + "──────────────────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "\u001b[32m + ambertools \u001b[00m 22.0 py39h464e725_3 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[32m + arpack \u001b[00m 3.7.0 hdefa2d7_2 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[32m + cached-property \u001b[00m 1.5.2 hd8ed1ab_1 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + cached_property \u001b[00m 1.5.2 pyha770c72_1 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + cython \u001b[00m 0.29.34 py39h227be39_0 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[32m + flatbuffers \u001b[00m 22.12.06 hcb278e6_2 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[32m + giflib \u001b[00m 5.2.1 h0b41bf4_3 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[32m + keras \u001b[00m 2.11.0 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + libaec \u001b[00m 1.0.6 hcb278e6_1 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[32m + libgomp \u001b[00m 12.2.0 h65d4601_19 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[32m + netcdf-fortran \u001b[00m 4.6.0 nompi_he1eeb6f_102 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[32m + openff-amber-ff-ports \u001b[00m 0.0.3 pyh6c4a22f_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + openff-forcefields \u001b[00m 2023.05.1 pyh1a96a4e_1 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + openff-interchange \u001b[00m 0.3.4 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + openff-interchange-base\u001b[00m 0.3.4 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + openff-models \u001b[00m 0.0.5 pyh1a96a4e_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + openff-toolkit \u001b[00m 0.13.0 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + openff-toolkit-base \u001b[00m 0.13.0 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + openff-units \u001b[00m 0.2.0 pyh1a96a4e_1 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + openff-utilities \u001b[00m 0.1.8 pyh1a96a4e_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + openmmforcefields \u001b[00m 0.11.2 pyhd8ed1ab_1 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + packmol \u001b[00m 20.010 h86c2bf4_0 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[32m + panedr \u001b[00m 0.7.1 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + parmed \u001b[00m 3.4.4 py39h227be39_0 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[32m + pbr \u001b[00m 5.11.1 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + perl \u001b[00m 5.32.1 2_h7f98852_perl5 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[32m + pint \u001b[00m 0.21 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + pydantic \u001b[00m 1.10.7 py39h72bdee0_0 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[32m + pyedr \u001b[00m 0.7.1 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + python-constraint \u001b[00m 1.4.0 py_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + smirnoff99frosst \u001b[00m 1.1.0 pyh44b312d_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + tensorboard-plugin-wit \u001b[00m 1.8.1 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + tinydb \u001b[00m 4.7.1 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + validators \u001b[00m 0.20.0 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + xmltodict \u001b[00m 0.13.0 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[32m + xorg-libxt \u001b[00m 1.2.1 h7f98852_2 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\n", + " Change:\n", + "──────────────────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "\u001b[31m - libnetcdf \u001b[00m 4.8.1 h8322cc2_2 installed \n", + "\u001b[32m + libnetcdf \u001b[00m 4.8.1 nompi_h261ec11_106 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\n", + " Upgrade:\n", + "──────────────────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "\u001b[31m - h5py \u001b[00m 2.10.0 nompi_py39h98ba4bc_106 installed \n", + "\u001b[32m + h5py \u001b[00m 3.7.0 nompi_py39h817c9c5_102 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[31m - hdf4 \u001b[00m 4.2.13 h10796ff_1005 installed \n", + "\u001b[32m + hdf4 \u001b[00m 4.2.15 h9772cbc_5 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[31m - hdf5 \u001b[00m 1.10.6 h3ffc7dd_1 installed \n", + "\u001b[32m + hdf5 \u001b[00m 1.12.2 nompi_h4df4325_101 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[31m - netcdf4 \u001b[00m 1.5.7 nompi_py39hd2e3950_101 installed \n", + "\u001b[32m + netcdf4 \u001b[00m 1.6.2 nompi_py39hfaa66c4_100 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[31m - pytables \u001b[00m 3.6.1 py39hf6dc253_3 installed \n", + "\u001b[32m + pytables \u001b[00m 3.7.0 py39h6a7961f_3 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[31m - tensorflow \u001b[00m 2.4.1 mkl_py39h4683426_0 installed \n", + "\u001b[32m + tensorflow \u001b[00m 2.11.0 cpu_py39h4655687_0 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[31m - tensorflow-base \u001b[00m 2.4.1 mkl_py39h43e0292_0 installed \n", + "\u001b[32m + tensorflow-base \u001b[00m 2.11.0 cpu_py39h9b4020c_0 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[31m - tensorflow-estimator \u001b[00m 2.6.0 py39he80948d_0 installed \n", + "\u001b[32m + tensorflow-estimator \u001b[00m 2.11.0 cpu_py39hf050123_0 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\n", + " Downgrade:\n", + "──────────────────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "\u001b[31m - google-auth-oauthlib \u001b[00m 1.0.0 pyhd8ed1ab_0 installed \n", + "\u001b[32m + google-auth-oauthlib \u001b[00m 0.4.6 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[31m - grpcio \u001b[00m 1.54.2 py39h227be39_2 installed \n", + "\u001b[32m + grpcio \u001b[00m 1.51.1 py39he859823_1 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[31m - libabseil \u001b[00m 20230125.2 cxx17_h59595ed_2 installed \n", + "\u001b[32m + libabseil \u001b[00m 20220623.0 cxx17_h05df665_6 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[31m - libgrpc \u001b[00m 1.54.2 hb20ce57_2 installed \n", + "\u001b[32m + libgrpc \u001b[00m 1.51.1 h4fad500_1 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[31m - re2 \u001b[00m 2023.03.02 h8c504da_0 installed \n", + "\u001b[32m + re2 \u001b[00m 2023.02.01 hcb278e6_0 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\u001b[31m - tensorboard \u001b[00m 2.13.0 pyhd8ed1ab_0 installed \n", + "\u001b[32m + tensorboard \u001b[00m 2.11.2 pyhd8ed1ab_0 conda-forge/noarch \u001b[32m Cached\u001b[00m\n", + "\u001b[31m - tensorboard-data-server\u001b[00m 0.7.0 py39h079d5ae_0 installed \n", + "\u001b[32m + tensorboard-data-server\u001b[00m 0.6.1 py39h3ccb8fc_4 conda-forge/linux-64\u001b[32m Cached\u001b[00m\n", + "\n", + " Summary:\n", + "\n", + " Install: 36 packages\n", + " Change: 1 packages\n", + " Upgrade: 8 packages\n", + " Downgrade: 7 packages\n", + "\n", + " Total download: 0 B\n", + "\n", + "──────────────────────────────────────────────────────────────────────────────────────────────────\n", + "\n", + "Preparing transaction: ...working... done\n", + "Verifying transaction: ...working... done\n", + "Executing transaction: ...working... done\n" ] } ], @@ -369,7 +468,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -377,15 +476,7 @@ "id": "3g6vsWucLgng", "outputId": "daef1613-b0bf-4929-d5ed-8c3137151645" }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Warning: Unable to load toolkit 'OpenEye Toolkit'. The Open Force Field Toolkit does not require the OpenEye Toolkits, and can use RDKit/AmberTools instead. However, if you have a valid license for the OpenEye Toolkits, consider installing them for faster performance and additional file format support: https://docs.eyesopen.com/toolkits/python/quickstart-python/linuxosx.html OpenEye offers free Toolkit licenses for academics: https://www.eyesopen.com/academic-licensing\n" - ] - } - ], + "outputs": [], "source": [ "import copy\n", "from pathlib import Path\n", @@ -407,7 +498,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": { "id": "w5g1k527SexH" }, @@ -431,7 +522,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": { "id": "Ecabaj2Y9kte" }, @@ -445,7 +536,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -477,7 +568,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": { "id": "pA9Vct0iNRhl" }, @@ -534,11 +625,19 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": { "id": "bxuyg-oxOtvn" }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.\n" + ] + } + ], "source": [ "# prepare protein and build only missing non-terminal residues\n", "prepared_protein = prepare_protein(pdb_path, ignore_missing_residues=False)" @@ -565,7 +664,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": { "id": "si7ARKHoabal" }, @@ -608,6 +707,8 @@ "\n", " # protonate ligand\n", " prepared_ligand = Chem.rdmolops.AddHs(prepared_ligand, addCoords=True)\n", + " prepared_ligand = Chem.MolFromMolBlock(Chem.MolToMolBlock(prepared_ligand))\n", + "\n", "\n", " # 2D depiction\n", " if depict:\n", @@ -636,7 +737,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -649,9 +750,17 @@ ] }, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[12:25:08] WARNING: More than one matching pattern found - picking one\n", + "\n" + ] + }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "" ] @@ -678,7 +787,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 13, "metadata": { "id": "UwehzZrhpDnD" }, @@ -734,7 +843,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "metadata": { "id": "I77OHmv47vEN" }, @@ -754,7 +863,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "metadata": { "id": "8gJMRq8fZYOU" }, @@ -798,7 +907,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "metadata": { "id": "ZXmeeV0ZPOho" }, @@ -809,6 +918,14 @@ "text": [ "Complex topology has 5561 atoms.\n" ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "~/.miniconda3/envs/teachopencadd/lib/python3.9/site-packages/openmm/unit/quantity.py:750: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " self._value[key] = value / self.unit\n" + ] } ], "source": [ @@ -843,7 +960,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 17, "metadata": { "id": "EFHKhU6v1k-h" }, @@ -882,7 +999,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 18, "metadata": { "id": "5is-oVrO2Fjy" }, @@ -913,7 +1030,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 19, "metadata": { "id": "c4LEvWMI8ash" }, @@ -935,7 +1052,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 20, "metadata": { "id": "n52Cmkr4dpI-" }, @@ -961,7 +1078,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 21, "metadata": { "id": "EgkE1EUGLgqP" }, @@ -990,7 +1107,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 22, "metadata": { "id": "E8t-0ZxFLgqh" }, @@ -1038,7 +1155,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 23, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1052,16 +1169,16 @@ "output_type": "stream", "text": [ "#\"Progress (%)\"\t\"Step\"\t\"Potential Energy (kJ/mole)\"\t\"Temperature (K)\"\t\"Speed (ns/day)\"\t\"Time Remaining\"\n", - "10.0%\t1\t-1085122.1956623252\t281.57555973236634\t0\t--\n", - "20.0%\t2\t-1070348.3185324278\t251.86738680841447\t1.51\t0:00\n", - "30.0%\t3\t-1051899.4079542693\t215.95448730486487\t1.51\t0:00\n", - "40.0%\t4\t-1033753.5592805085\t182.06520085988276\t1.48\t0:00\n", - "50.0%\t5\t-1026351.1473173589\t165.6299124745822\t1.43\t0:00\n", - "60.0%\t6\t-1017240.5016878737\t149.69813923088134\t1.41\t0:00\n", - "70.0%\t7\t-1014291.7984991225\t144.3436806459813\t1.39\t0:00\n", - "80.0%\t8\t-1017552.7975024059\t150.2086758025887\t1.38\t0:00\n", - "90.0%\t9\t-1020024.4422430506\t156.51873909177607\t1.37\t0:00\n", - "100.0%\t10\t-1025531.1720662565\t166.89370373584623\t1.37\t0:00\n" + "10.0%\t1\t-992629.2532507611\t280.59188983053207\t0\t--\n", + "20.0%\t2\t-978514.3140385933\t250.1140053691449\t1.88\t0:00\n", + "30.0%\t3\t-961427.9816461714\t214.09328454071326\t1.92\t0:00\n", + "40.0%\t4\t-944609.5657245225\t180.29949178380076\t1.9\t0:00\n", + "50.0%\t5\t-938426.3768274506\t165.17778679274846\t1.89\t0:00\n", + "60.0%\t6\t-930096.1319021038\t149.4126629808844\t1.89\t0:00\n", + "70.0%\t7\t-926924.8985479049\t143.336941762251\t1.9\t0:00\n", + "80.0%\t8\t-930284.4123182578\t149.77757492192208\t1.91\t0:00\n", + "90.0%\t9\t-932318.9156875424\t155.78884925604478\t1.9\t0:00\n", + "100.0%\t10\t-937770.7580560565\t167.02287919129623\t1.9\t0:00\n" ] } ], @@ -1072,7 +1189,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -1081,7 +1198,7 @@ "True" ] }, - "execution_count": 25, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1105,7 +1222,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 25, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1198,7 +1315,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.9.16" }, "widgets": { "application/vnd.jupyter.widget-state+json": { From 4ec048e4a00981b4395db9c7544e9cd2f218c083 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Backenk=C3=B6hler?= Date: Mon, 22 May 2023 12:34:48 +0200 Subject: [PATCH 5/5] CI: reactivate test for all notebooks --- .github/workflows/ci.yml | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 173495db..57f6b58d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -75,21 +75,7 @@ jobs: shell: bash -l {0} run: | PYTEST_ARGS="--nbval-lax --current-env --dist loadscope --numprocesses 2" - - # Ignore T019 under Windows, see https://github.com/volkamerlab/teachopencadd/issues/313 - PYTEST_IGNORE_T019="--ignore=teachopencadd/talktorials/T019_md_simulation/talktorial.ipynb" - - # Temporarily ignored notebooks, see https://github.com/volkamerlab/teachopencadd/issues/303 - PYTEST_IGNORE_T008="--ignore=teachopencadd/talktorials/T008_query_pdb/talktorial.ipynb" - - pytest $PYTEST_ARGS teachopencadd/talktorials/T019_md_simulation/talktorial.ipynb - - # if [ "$RUNNER_OS" != "Windows" ]; then - # # Temporarily ignore T019 - # pytest $PYTEST_ARGS teachopencadd/talktorials/ $PYTEST_IGNORE_T008 $PYTEST_IGNORE_T019 - # else - # pytest $PYTEST_ARGS teachopencadd/talktorials/ $PYTEST_IGNORE_T008 $PYTEST_IGNORE_T019 - # fi + pytest $PYTEST_ARGS teachopencadd/talktorials/ format: name: Black