{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 28868, "status": "ok", "timestamp": 1715679311815, "user": { "displayName": "Yevgeni Mamasakhlisov", "userId": "06438787448544879581" }, "user_tz": -240 }, "id": "GR24N5HCGTsU", "outputId": "08edd7ec-1177-45bc-b7f3-127f408e91f3", "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting MDAnalysis\n", " Downloading MDAnalysis-2.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.1/10.1 MB\u001b[0m \u001b[31m38.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: numpy<2.0,>=1.22.3 in /usr/local/lib/python3.10/dist-packages (from MDAnalysis) (1.25.2)\n", "Collecting GridDataFormats>=0.4.0 (from MDAnalysis)\n", " Downloading GridDataFormats-1.0.2-py3-none-any.whl (2.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.1/2.1 MB\u001b[0m \u001b[31m51.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting mmtf-python>=1.0.0 (from MDAnalysis)\n", " Downloading mmtf_python-1.1.3-py2.py3-none-any.whl (25 kB)\n", "Requirement already satisfied: joblib>=0.12 in /usr/local/lib/python3.10/dist-packages (from MDAnalysis) (1.4.2)\n", "Requirement already satisfied: scipy>=1.5.0 in /usr/local/lib/python3.10/dist-packages (from MDAnalysis) (1.11.4)\n", "Requirement already satisfied: matplotlib>=1.5.1 in /usr/local/lib/python3.10/dist-packages (from MDAnalysis) (3.7.1)\n", "Requirement already satisfied: tqdm>=4.43.0 in /usr/local/lib/python3.10/dist-packages (from MDAnalysis) (4.66.4)\n", "Requirement already satisfied: threadpoolctl in /usr/local/lib/python3.10/dist-packages (from MDAnalysis) (3.5.0)\n", "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from MDAnalysis) (24.0)\n", "Collecting fasteners (from MDAnalysis)\n", " Downloading fasteners-0.19-py3-none-any.whl (18 kB)\n", "Collecting mda-xdrlib (from MDAnalysis)\n", " Downloading mda_xdrlib-0.2.0-py3-none-any.whl (14 kB)\n", "Collecting mrcfile (from GridDataFormats>=0.4.0->MDAnalysis)\n", " Downloading mrcfile-1.5.0-py2.py3-none-any.whl (44 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m44.1/44.1 kB\u001b[0m \u001b[31m3.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=1.5.1->MDAnalysis) (1.2.1)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=1.5.1->MDAnalysis) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=1.5.1->MDAnalysis) (4.51.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=1.5.1->MDAnalysis) (1.4.5)\n", "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=1.5.1->MDAnalysis) (9.4.0)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=1.5.1->MDAnalysis) (3.1.2)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=1.5.1->MDAnalysis) (2.8.2)\n", "Requirement already satisfied: msgpack>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from mmtf-python>=1.0.0->MDAnalysis) (1.0.8)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib>=1.5.1->MDAnalysis) (1.16.0)\n", "Installing collected packages: mrcfile, mmtf-python, mda-xdrlib, fasteners, GridDataFormats, MDAnalysis\n", "Successfully installed GridDataFormats-1.0.2 MDAnalysis-2.7.0 fasteners-0.19 mda-xdrlib-0.2.0 mmtf-python-1.1.3 mrcfile-1.5.0\n" ] } ], "source": [ "!pip install MDAnalysis" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 32892, "status": "ok", "timestamp": 1715679721635, "user": { "displayName": "Yevgeni Mamasakhlisov", "userId": "06438787448544879581" }, "user_tz": -240 }, "id": "RQvc2gcpoDDv", "outputId": "57aad2b5-f5a0-4291-b0d4-cf9caa96f277" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mounted at /content/drive\n" ] } ], "source": [ "from google.colab import drive\n", "\n", "drive.mount(\"/content/drive\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 1934, "status": "ok", "timestamp": 1715680351112, "user": { "displayName": "Yevgeni Mamasakhlisov", "userId": "06438787448544879581" }, "user_tz": -240 }, "id": "n0uBRM6mGo2M", "outputId": "f7833b00-ea18-4112-b0dd-054968ba5a6f" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING:MDAnalysis.coordinates.AMBER:netCDF4 is not available. Writing AMBER ncdf files will be slow.\n" ] } ], "source": [ "import MDAnalysis as mda\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from tqdm.notebook import tqdm\n", "\n", "from sklearn.decomposition import PCA\n", "from sklearn.manifold import TSNE\n", "from sklearn.cluster import KMeans\n", "from sklearn.mixture import GaussianMixture" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 79736, "status": "ok", "timestamp": 1715680454745, "user": { "displayName": "Yevgeni Mamasakhlisov", "userId": "06438787448544879581" }, "user_tz": -240 }, "id": "6pr6s4nEGTsV", "outputId": "5961cf71-1f94-4bc7-bfe8-0406abe418a5", "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.10/dist-packages/MDAnalysis/coordinates/XDR.py:240: UserWarning: Reload offsets from trajectory\n", " ctime or size or n_atoms did not match\n", " warnings.warn(\"Reload offsets from trajectory\\n \"\n" ] } ], "source": [ "u = mda.Universe(\n", " \"/content/drive/MyDrive/jj/simul/step5_1.tpr\",\n", " \"/content/drive/MyDrive/jj/simul/centered.xtc\",\n", ")\n", "ag = u.select_atoms(\"name CA\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 49, "referenced_widgets": [ "3efcab294b2048f7a0d645315820c9e8", "8b42f2ef86064459bc19ad2071e8cb04", "1f1a34ed5a6e421e88a274a7d15344f4", "5e6a8b07fa974917b1cc25d18fb83915", "643db3cc1e74453f937694c7982466ec", "58eb516a64124e9d955496710feaeded", "64e2d12ba59c40ff949d75857f7d5d7c", "01ec01c324ca49669bcda4b6c814b467", "da31b3a93ef94239a0024d4503a877eb", "741b307aa2fe4baaae05088e58251474", "e523538cca3943718824bd44f94effac" ] }, "executionInfo": { "elapsed": 115456, "status": "ok", "timestamp": 1715680592259, "user": { "displayName": "Yevgeni Mamasakhlisov", "userId": "06438787448544879581" }, "user_tz": -240 }, "id": "52QE_RwhGTsW", "outputId": "20eefc0a-449e-44dd-b254-b066fde98dcf" }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3efcab294b2048f7a0d645315820c9e8", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/10001 [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ca_poss = []\n", "for ts in tqdm(u.trajectory):\n", " ca_poss.append(ag.positions)\n", "\n", "ca_poss = np.array(ca_poss)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 327, "status": "ok", "timestamp": 1715680597696, "user": { "displayName": "Yevgeni Mamasakhlisov", "userId": "06438787448544879581" }, "user_tz": -240 }, "id": "__NxpNBKk5Qp", "outputId": "0d8865e4-54d8-4ed4-e088-229f94e040e4" }, "outputs": [ { "data": { "text/plain": [ "(10001, 549, 3)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ca_poss.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "5iJQAlzyMKgf" }, "outputs": [], "source": [ "rgyr = []\n", "time = []\n", "protein = u.select_atoms(\"protein\") ##protein\n", "for ts in u.trajectory:\n", " time.append(u.trajectory.time)\n", " rgyr.append(protein.radius_of_gyration())" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 237 }, "executionInfo": { "elapsed": 863, "status": "ok", "timestamp": 1715680748250, "user": { "displayName": "Yevgeni Mamasakhlisov", "userId": "06438787448544879581" }, "user_tz": -240 }, "id": "3fQb4h6LOZAs", "outputId": "d4e61281-ad68-4ec3-f742-eda589f4ffed" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "summary": "{\n \"name\": \"rgyr_df\",\n \"rows\": 10001,\n \"fields\": [\n {\n \"column\": \"Time (ps)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 28871.843550421232,\n \"min\": 0.0,\n \"max\": 100000.0,\n \"num_unique_values\": 10001,\n \"samples\": [\n 62520.0,\n 46840.0,\n 17310.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Radius of gyration (A)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.33624106916702573,\n \"min\": 21.477474863924222,\n \"max\": 23.366610939946217,\n \"num_unique_values\": 10001,\n \"samples\": [\n 22.844051659293516,\n 22.79562856334044,\n 22.337530653600336\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}", "type": "dataframe", "variable_name": "rgyr_df" }, "text/html": [ "\n", "
\n", " | Radius of gyration (A) | \n", "
---|---|
Time (ps) | \n", "\n", " |
0.0 | \n", "21.477475 | \n", "
10.0 | \n", "21.546591 | \n", "
20.0 | \n", "21.546411 | \n", "
30.0 | \n", "21.540754 | \n", "
40.0 | \n", "21.546202 | \n", "