{ "cells": [ { "cell_type": "markdown", "id": "7a703c5f", "metadata": {}, "source": [ "# Notebook03: POPC/POPE mixture\n", "\n", "In this notebook, we will show you how to reconstruct hydrogens, calculate the order parameters and produce output trajectories on a POPC/POPE (50:50) mixture. Again, this example is based on the Berger united-atom force field.\n", "\n", "Before going on, we advise you to get started with [Notebook01](Notebook_01_buildH_calc_OP.ipynb) if you are not familiar with basic features of **buildH** and Jupyter notebooks (e.g. do you know what `!` means in a Jupyter cell?). \n", "\n", "## Checking buildH activation\n", "\n", "As explained in [Notebook01](Notebook_01_buildH_calc_OP.ipynb), you should have activated **buildH** before launching this notebook, thus you should obtain the following when invoking `buildH` in a Unix terminal:" ] }, { "cell_type": "code", "execution_count": 1, "id": "9fe5a816", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "usage: buildH [-h] [-v] -c COORD [-t TRAJ] -l LIPID\n", " [-lt LIPID_TOPOLOGY [LIPID_TOPOLOGY ...]] -d DEFOP\n", " [-opx OPDBXTC] [-o OUT] [-b BEGIN] [-e END] [-igch3]\n", "buildH: error: the following arguments are required: -c/--coord, -l/--lipid, -d/--defop\n", "\u001b[0m" ] } ], "source": [ "!buildH" ] }, { "cell_type": "markdown", "id": "808ca76e", "metadata": {}, "source": [ "If you see this, you can go on. If not, please go to `Notebook01` and see the explanations there on how to activate **buildH**.\n", "\n", "## Downloading the example files\n", "\n", "The example shown in this Notebook are taken from a POPC/POPE (50:50) trajectory of 256 lipids taken from the [NMRlipidsIVb project](http://nmrlipids.blogspot.com/2021/03/nmrlipids-ivb-toward-submission-of.html). The initial source files can be found on [Zenodo](https://zenodo.org/record/1402449). For the purpose of learning, we simplified the trajectory and extracted only 25 frames (0-25 ns, one frame / ns). The starting gro file and the trajectory of 25 frames can be directly downloaded from the **buildH** repo in the directory https://github.com/patrickfuchs/buildH/tree/master/docs/Berger_POPCPOPE_test_case. Here we'll download them with `wget` (recall to download all files in raw format):" ] }, { "cell_type": "code", "execution_count": 2, "id": "0dd9c85a", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--2021-07-07 15:12:13-- https://raw.githubusercontent.com/patrickfuchs/buildH/master/docs/Berger_POPCPOPE_test_case/start.gro\n", "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.108.133, ...\n", "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 2097099 (2.0M) [text/plain]\n", "Saving to: ‘start.gro’\n", "\n", "start.gro 100%[===================>] 2.00M --.-KB/s in 0.06s \n", "\n", "2021-07-07 15:12:13 (32.2 MB/s) - ‘start.gro’ saved [2097099/2097099]\n", "\n" ] } ], "source": [ "!wget https://raw.githubusercontent.com/patrickfuchs/buildH/master/docs/Berger_POPCPOPE_test_case/start.gro" ] }, { "cell_type": "code", "execution_count": 3, "id": "28b93568", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--2021-07-07 15:12:28-- https://github.com/patrickfuchs/buildH/raw/master/docs/Berger_POPCPOPE_test_case/md_0_25ns_dt1000.xtc\n", "Resolving github.com (github.com)... 140.82.121.4\n", "Connecting to github.com (github.com)|140.82.121.4|:443... connected.\n", "HTTP request sent, awaiting response... 302 Found\n", "Location: https://raw.githubusercontent.com/patrickfuchs/buildH/master/docs/Berger_POPCPOPE_test_case/md_0_25ns_dt1000.xtc [following]\n", "--2021-07-07 15:12:29-- https://raw.githubusercontent.com/patrickfuchs/buildH/master/docs/Berger_POPCPOPE_test_case/md_0_25ns_dt1000.xtc\n", "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.109.133, 185.199.110.133, 185.199.111.133, ...\n", "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.109.133|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 4458540 (4.3M) [application/octet-stream]\n", "Saving to: ‘md_0_25ns_dt1000.xtc’\n", "\n", "md_0_25ns_dt1000.xt 100%[===================>] 4.25M --.-KB/s in 0.08s \n", "\n", "2021-07-07 15:12:29 (56.1 MB/s) - ‘md_0_25ns_dt1000.xtc’ saved [4458540/4458540]\n", "\n" ] } ], "source": [ "!wget https://github.com/patrickfuchs/buildH/raw/master/docs/Berger_POPCPOPE_test_case/md_0_25ns_dt1000.xtc" ] }, { "cell_type": "code", "execution_count": 4, "id": "87e085c4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "data\n", "img\n", "md_0_25ns_dt1000.xtc\n", "Notebook_01_buildH_calc_OP.ipynb\n", "Notebook_02_buildH_calc_OP_outputwH.ipynb\n", "Notebook_03_mixture_POPC_POPE.ipynb\n", "Notebook_04_library.ipynb\n", "Notebook_05_mixture_POPC_cholesterol.ipynb\n", "start.gro\n" ] } ], "source": [ "!ls" ] }, { "cell_type": "markdown", "id": "e3919d24", "metadata": {}, "source": [ "We also need the two def files corresponding to POPC and POPE. They can be downloaded from the **buildH** repo in the directory https://github.com/patrickfuchs/buildH/tree/master/def_files (again remember to use raw files):" ] }, { "cell_type": "code", "execution_count": 5, "id": "d4f09307", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--2021-07-07 15:12:52-- https://raw.githubusercontent.com/patrickfuchs/buildH/master/def_files/Berger_POPC.def\n", "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.111.133, 185.199.108.133, 185.199.109.133, ...\n", "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.111.133|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 2135 (2.1K) [text/plain]\n", "Saving to: ‘Berger_POPC.def’\n", "\n", "Berger_POPC.def 100%[===================>] 2.08K --.-KB/s in 0.001s \n", "\n", "2021-07-07 15:12:53 (2.00 MB/s) - ‘Berger_POPC.def’ saved [2135/2135]\n", "\n" ] } ], "source": [ "!wget https://raw.githubusercontent.com/patrickfuchs/buildH/master/def_files/Berger_POPC.def" ] }, { "cell_type": "code", "execution_count": 6, "id": "f8fe0ee4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--2021-07-07 15:12:56-- https://raw.githubusercontent.com/patrickfuchs/buildH/master/def_files/Berger_POPE.def\n", "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.108.133, ...\n", "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 1937 (1.9K) [text/plain]\n", "Saving to: ‘Berger_POPE.def’\n", "\n", "Berger_POPE.def 100%[===================>] 1.89K --.-KB/s in 0.001s \n", "\n", "2021-07-07 15:12:56 (1.98 MB/s) - ‘Berger_POPE.def’ saved [1937/1937]\n", "\n" ] } ], "source": [ "!wget https://raw.githubusercontent.com/patrickfuchs/buildH/master/def_files/Berger_POPE.def" ] }, { "cell_type": "code", "execution_count": 7, "id": "cb8a936b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Berger_POPC.def\t\t\t Notebook_02_buildH_calc_OP_outputwH.ipynb\n", "Berger_POPE.def\t\t\t Notebook_03_mixture_POPC_POPE.ipynb\n", "data\t\t\t\t Notebook_04_library.ipynb\n", "img\t\t\t\t Notebook_05_mixture_POPC_cholesterol.ipynb\n", "md_0_25ns_dt1000.xtc\t\t start.gro\n", "Notebook_01_buildH_calc_OP.ipynb\n" ] } ], "source": [ "!ls" ] }, { "cell_type": "markdown", "id": "91b6ec3d", "metadata": {}, "source": [ "Recall, the def files present on the **buildH** `def_files` directory contain all the possible (apolar) H that can be reconstructed on each lipids. The polar hydrogens are already present (e.g. the different N-H of the ethanolamine in POPE), thus they do not need to be reconstructed. **buildH** will let them as is, like all other non apolar H atoms.\n", "\n", "## Dealing with POPC\n", "\n", "When we have a mixture of lipids, **buildH** cannot reconstruct hydrogens on all lipids at the same time. So we start with H reconstruction and OP calculation on POPC (we'll focus on POPE later). Since Berger POPC is a supported lipid, we can launch easily **buildH** with the classical flags: `-c` for reading the initial pdb or gro file, `-t` for reading the trajectory, `-l` for specifying the type of lipid, `-d` for specifying the def file, `-o` for the output file with order parameters, and last `-opx` for the output trajectory with hydrogens (recall not to put any extension, they'll be added automatically by **buildH**). Importantly, when we want to output a trajectory with newly reconstructed hydrogens (option `-opx`), *all possible H to reconstruct need to be present in the def file*. This is fine since this is the case for all lipids in the [def file directory](https://github.com/patrickfuchs/buildH/tree/master/def_files) of the **buildH** repository." ] }, { "cell_type": "code", "execution_count": 8, "id": "79174caf", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Constructing the system...\n", "System has 46600 atoms\n", "Writing new pdb with hydrogens.\n", "Writing trajectory with hydrogens in xtc file.\n", "Dealing with frame 0 at 0.0 ps.\n", "Dealing with frame 1 at 1000.0 ps.\n", "Dealing with frame 2 at 2000.0 ps.\n", "Dealing with frame 3 at 3000.0 ps.\n", "Dealing with frame 4 at 4000.0 ps.\n", "Dealing with frame 5 at 5000.0 ps.\n", "Dealing with frame 6 at 6000.0 ps.\n", "Dealing with frame 7 at 7000.0 ps.\n", "Dealing with frame 8 at 8000.0 ps.\n", "Dealing with frame 9 at 9000.0 ps.\n", "Dealing with frame 10 at 10000.0 ps.\n", "Dealing with frame 11 at 11000.0 ps.\n", "Dealing with frame 12 at 12000.0 ps.\n", "Dealing with frame 13 at 13000.0 ps.\n", "Dealing with frame 14 at 14000.0 ps.\n", "Dealing with frame 15 at 15000.0 ps.\n", "Dealing with frame 16 at 16000.0 ps.\n", "Dealing with frame 17 at 17000.0 ps.\n", "Dealing with frame 18 at 18000.0 ps.\n", "Dealing with frame 19 at 19000.0 ps.\n", "Dealing with frame 20 at 20000.0 ps.\n", "Dealing with frame 21 at 21000.0 ps.\n", "Dealing with frame 22 at 22000.0 ps.\n", "Dealing with frame 23 at 23000.0 ps.\n", "Dealing with frame 24 at 24000.0 ps.\n", "Dealing with frame 25 at 25000.0 ps.\n", "Results written to OP_POPC.dat\n", "\u001b[0m" ] } ], "source": [ "!buildH -c start.gro -l Berger_POPC -t md_0_25ns_dt1000.xtc -d Berger_POPC.def -o OP_POPC.dat -opx traj_POPC_wH" ] }, { "cell_type": "code", "execution_count": 9, "id": "c459ebcd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Berger_POPC.def\n", "Berger_POPE.def\n", "data\n", "img\n", "md_0_25ns_dt1000.xtc\n", "Notebook_01_buildH_calc_OP.ipynb\n", "Notebook_02_buildH_calc_OP_outputwH.ipynb\n", "Notebook_03_mixture_POPC_POPE.ipynb\n", "Notebook_04_library.ipynb\n", "Notebook_05_mixture_POPC_cholesterol.ipynb\n", "OP_POPC.dat\n", "start.gro\n", "traj_POPC_wH.pdb\n", "traj_POPC_wH.xtc\n" ] } ], "source": [ "!ls" ] }, { "cell_type": "markdown", "id": "f11f0273", "metadata": {}, "source": [ "The order parameters of POPC lipids have been written to the file `OP_POPC.dat`" ] }, { "cell_type": "code", "execution_count": 10, "id": "69396299", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# OP_name resname atom1 atom2 OP_mean OP_stddev OP_stem\n", "#--------------------------------------------------------------------\n", "gamma1_1 POPC C1 H11 -0.00343 0.12015 0.01062\n", "gamma1_2 POPC C1 H12 0.00752 0.09808 0.00867\n", "gamma1_3 POPC C1 H13 -0.00614 0.08702 0.00769\n", "gamma2_1 POPC C2 H21 -0.00397 0.11983 0.01059\n", "gamma2_2 POPC C2 H22 -0.00703 0.09226 0.00816\n", "gamma2_3 POPC C2 H23 -0.00952 0.10068 0.00890\n", "gamma3_1 POPC C3 H31 0.00060 0.12174 0.01076\n", "gamma3_2 POPC C3 H32 -0.00474 0.09119 0.00806\n" ] } ], "source": [ "!head OP_POPC.dat" ] }, { "cell_type": "markdown", "id": "d9194ef3", "metadata": {}, "source": [ "A pdb `traj_POPC_wH.pdb` and an xtc `traj_POPC_wH.xtc` file have been produced with hydrogens on POPC only. So let's check whether the POPC have hydrogens and not POPE:" ] }, { "cell_type": "code", "execution_count": 11, "id": "f70f9cc9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ATOM 1 C1 POPC 1 89.160 7.570 22.770 1.00 0.00 C\n", "ATOM 2 H11 POPC 1 88.713 8.530 23.029 1.00 0.00 H\n", "ATOM 3 H12 POPC 1 88.372 6.843 22.577 1.00 0.00 H\n", "ATOM 4 H13 POPC 1 89.775 7.684 21.878 1.00 0.00 H\n", "ATOM 5 C2 POPC 1 89.200 7.090 25.120 1.00 0.00 C\n", "ATOM 6 H21 POPC 1 88.733 8.065 25.257 1.00 0.00 H\n", "ATOM 7 H22 POPC 1 89.845 6.873 25.971 1.00 0.00 H\n", "ATOM 8 H23 POPC 1 88.428 6.324 25.045 1.00 0.00 H\n", "ATOM 9 C3 POPC 1 91.030 8.130 24.080 1.00 0.00 C\n", "ATOM 10 H31 POPC 1 90.552 9.093 24.258 1.00 0.00 H\n", "ATOM 11 H32 POPC 1 91.651 8.192 23.186 1.00 0.00 H\n", "ATOM 12 H33 POPC 1 91.651 7.869 24.937 1.00 0.00 H\n", "ATOM 13 N4 POPC 1 90.000 7.100 23.890 1.00 0.00 N\n", "ATOM 14 C5 POPC 1 90.660 5.800 23.650 1.00 0.00 C\n", "ATOM 15 H51 POPC 1 91.220 5.539 24.548 1.00 0.00 H\n", "ATOM 16 H52 POPC 1 91.350 5.924 22.815 1.00 0.00 H\n", "ATOM 17 C6 POPC 1 89.730 4.630 23.320 1.00 0.00 C\n", "ATOM 18 H61 POPC 1 89.359 4.775 22.305 1.00 0.00 H\n", "ATOM 19 H62 POPC 1 88.895 4.660 24.020 1.00 0.00 H\n", "ATOM 20 O7 POPC 1 90.310 3.330 23.390 1.00 0.00 O\n", "grep: write error: Broken pipe\n" ] } ], "source": [ "!grep POPC traj_POPC_wH.pdb | head -20" ] }, { "cell_type": "code", "execution_count": 12, "id": "049bbfae", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ATOM 17153 H1 POPE 129 82.600 -2.110 24.640 1.00 0.00 H\n", "ATOM 17154 H2 POPE 129 82.290 -1.570 23.100 1.00 0.00 H\n", "ATOM 17155 H3 POPE 129 83.140 -0.610 24.130 1.00 0.00 H\n", "ATOM 17156 N4 POPE 129 82.400 -1.300 24.070 1.00 0.00 N\n", "ATOM 17157 C5 POPE 129 81.140 -0.680 24.510 1.00 0.00 C\n", "ATOM 17158 C6 POPE 129 80.830 0.480 23.550 1.00 0.00 C\n", "ATOM 17159 O7 POPE 129 81.880 1.450 23.530 1.00 0.00 O\n", "ATOM 17160 P8 POPE 129 81.420 2.670 22.580 1.00 0.00 P\n", "ATOM 17161 O9 POPE 129 82.620 3.440 22.200 1.00 0.00 O\n", "ATOM 17162 O10 POPE 129 80.420 2.190 21.610 1.00 0.00 O\n", "ATOM 17163 O11 POPE 129 80.600 3.490 23.700 1.00 0.00 O\n", "ATOM 17164 C12 POPE 129 81.550 4.230 24.480 1.00 0.00 C\n", "ATOM 17165 C13 POPE 129 80.830 5.150 25.470 1.00 0.00 C\n", "ATOM 17166 O14 POPE 129 81.780 5.780 26.340 1.00 0.00 O\n", "ATOM 17167 C15 POPE 129 82.000 7.120 26.230 1.00 0.00 C\n", "ATOM 17168 O16 POPE 129 81.490 7.750 25.300 1.00 0.00 O\n", "ATOM 17169 C17 POPE 129 83.030 7.710 27.190 1.00 0.00 C\n", "ATOM 17170 C18 POPE 129 82.420 8.040 28.550 1.00 0.00 C\n", "ATOM 17171 C19 POPE 129 81.550 9.300 28.470 1.00 0.00 C\n", "ATOM 17172 C20 POPE 129 80.810 9.530 29.790 1.00 0.00 C\n", "grep: write error: Broken pipe\n" ] } ], "source": [ "!grep POPE traj_POPC_wH.pdb | head -20" ] }, { "cell_type": "markdown", "id": "046dfef0", "metadata": {}, "source": [ "Yeah that is fine! POPC have all hydrogens reconstructed, while POPE do not (we can only see the polar hydrogens which are natively present in a united-atom structure)." ] }, { "cell_type": "markdown", "id": "b52fadb7", "metadata": {}, "source": [ "## Dealing with POPE\n", "\n", "Now that POPC have all hydrogens, we can restart from that pdb file to reconstruct the hydrogens of POPE. Thus we can use the flags `-c` with the pdb file we just generated `traj_POPC_wH.pdb` (Hs on POPC but not POPE). The `-t` will be used with the same trajectory with H on POPC (but not POPE!) `traj_POPC_wH.xtc`. We output order parameters for POPE with `-o`. Last, `-opx` will produce a file with hydrogens on POPE." ] }, { "cell_type": "code", "execution_count": 13, "id": "713f658d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Constructing the system...\n", "System has 57096 atoms\n", "Writing new pdb with hydrogens.\n", "Writing trajectory with hydrogens in xtc file.\n", "Dealing with frame 0 at 0.0 ps.\n", "Dealing with frame 1 at 0.0 ps.\n", "Dealing with frame 2 at 0.0 ps.\n", "Dealing with frame 3 at 0.0 ps.\n", "Dealing with frame 4 at 0.0 ps.\n", "Dealing with frame 5 at 0.0 ps.\n", "Dealing with frame 6 at 0.0 ps.\n", "Dealing with frame 7 at 0.0 ps.\n", "Dealing with frame 8 at 0.0 ps.\n", "Dealing with frame 9 at 0.0 ps.\n", "Dealing with frame 10 at 0.0 ps.\n", "Dealing with frame 11 at 0.0 ps.\n", "Dealing with frame 12 at 0.0 ps.\n", "Dealing with frame 13 at 0.0 ps.\n", "Dealing with frame 14 at 0.0 ps.\n", "Dealing with frame 15 at 0.0 ps.\n", "Dealing with frame 16 at 0.0 ps.\n", "Dealing with frame 17 at 0.0 ps.\n", "Dealing with frame 18 at 0.0 ps.\n", "Dealing with frame 19 at 0.0 ps.\n", "Dealing with frame 20 at 0.0 ps.\n", "Dealing with frame 21 at 0.0 ps.\n", "Dealing with frame 22 at 0.0 ps.\n", "Dealing with frame 23 at 0.0 ps.\n", "Dealing with frame 24 at 0.0 ps.\n", "Dealing with frame 25 at 0.0 ps.\n", "Results written to OP_POPE.dat\n", "\u001b[0m" ] } ], "source": [ "!buildH -c traj_POPC_wH.pdb -l Berger_POPE -t traj_POPC_wH.xtc -d Berger_POPE.def -o OP_POPE.dat -opx traj_POPCPOPE_wH" ] }, { "cell_type": "code", "execution_count": 14, "id": "c4f03dc7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Berger_POPC.def\n", "Berger_POPE.def\n", "data\n", "img\n", "md_0_25ns_dt1000.xtc\n", "Notebook_01_buildH_calc_OP.ipynb\n", "Notebook_02_buildH_calc_OP_outputwH.ipynb\n", "Notebook_03_mixture_POPC_POPE.ipynb\n", "Notebook_04_library.ipynb\n", "Notebook_05_mixture_POPC_cholesterol.ipynb\n", "OP_POPC.dat\n", "OP_POPE.dat\n", "start.gro\n", "traj_POPCPOPE_wH.pdb\n", "traj_POPCPOPE_wH.xtc\n", "traj_POPC_wH.pdb\n", "traj_POPC_wH.xtc\n" ] } ], "source": [ "!ls" ] }, { "cell_type": "markdown", "id": "0c606845", "metadata": {}, "source": [ "Great, we can now look at the order parameters of POPE:" ] }, { "cell_type": "code", "execution_count": 15, "id": "837ea0fb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# OP_name resname atom1 atom2 OP_mean OP_stddev OP_stem\n", "#--------------------------------------------------------------------\n", "beta1 POPE C5 H51 0.18091 0.44608 0.03943\n", "beta2 POPE C5 H52 -0.04410 0.44630 0.03945\n", "alpha1 POPE C6 H61 0.08958 0.45722 0.04041\n", "alpha2 POPE C6 H62 0.19382 0.46467 0.04107\n", "g3_1 POPE C12 H121 -0.27276 0.26619 0.02353\n", "g3_2 POPE C12 H122 -0.18926 0.29892 0.02642\n", "g2_1 POPE C13 H131 -0.15531 0.32935 0.02911\n", "g1_1 POPE C32 H321 0.12967 0.45277 0.04002\n" ] } ], "source": [ "!head OP_POPE.dat" ] }, { "cell_type": "markdown", "id": "6b7d076c", "metadata": {}, "source": [ "And check whether POPC **and** POPE have all hydrogens reconstructed:" ] }, { "cell_type": "code", "execution_count": 16, "id": "73fc7da5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ATOM 17153 H1 POPE 129 82.600 -2.110 24.640 1.00 0.00 H\n", "ATOM 17154 H2 POPE 129 82.290 -1.570 23.100 1.00 0.00 H\n", "ATOM 17155 H3 POPE 129 83.140 -0.610 24.130 1.00 0.00 H\n", "ATOM 17156 N4 POPE 129 82.400 -1.300 24.070 1.00 0.00 N\n", "ATOM 17157 C5 POPE 129 81.140 -0.680 24.510 1.00 0.00 C\n", "ATOM 17158 H51 POPE 129 81.247 -0.302 25.527 1.00 0.00 H\n", "ATOM 17159 H52 POPE 129 80.334 -1.414 24.478 1.00 0.00 H\n", "ATOM 17160 C6 POPE 129 80.830 0.480 23.550 1.00 0.00 C\n", "ATOM 17161 H61 POPE 129 79.908 0.965 23.870 1.00 0.00 H\n", "ATOM 17162 H62 POPE 129 80.700 0.080 22.544 1.00 0.00 H\n", "ATOM 17163 O7 POPE 129 81.880 1.450 23.530 1.00 0.00 O\n", "ATOM 17164 P8 POPE 129 81.420 2.670 22.580 1.00 0.00 P\n", "ATOM 17165 O9 POPE 129 82.620 3.440 22.200 1.00 0.00 O\n", "ATOM 17166 O10 POPE 129 80.420 2.190 21.610 1.00 0.00 O\n", "ATOM 17167 O11 POPE 129 80.600 3.490 23.700 1.00 0.00 O\n", "ATOM 17168 C12 POPE 129 81.550 4.230 24.480 1.00 0.00 C\n", "ATOM 17169 H121 POPE 129 82.169 4.833 23.815 1.00 0.00 H\n", "ATOM 17170 H122 POPE 129 82.181 3.534 25.032 1.00 0.00 H\n", "ATOM 17171 C13 POPE 129 80.830 5.150 25.470 1.00 0.00 C\n", "ATOM 17172 H131 POPE 129 80.311 5.977 24.987 1.00 0.00 H\n", "grep: write error: Broken pipe\n" ] } ], "source": [ "!grep POPE traj_POPCPOPE_wH.pdb | head -20" ] }, { "cell_type": "code", "execution_count": 17, "id": "d0ac2551", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ATOM 1 C1 POPC 1 89.160 7.570 22.770 1.00 0.00 C\n", "ATOM 2 H11 POPC 1 88.710 8.530 23.030 1.00 0.00 H\n", "ATOM 3 H12 POPC 1 88.370 6.840 22.580 1.00 0.00 H\n", "ATOM 4 H13 POPC 1 89.780 7.680 21.880 1.00 0.00 H\n", "ATOM 5 C2 POPC 1 89.200 7.090 25.120 1.00 0.00 C\n", "ATOM 6 H21 POPC 1 88.730 8.060 25.260 1.00 0.00 H\n", "ATOM 7 H22 POPC 1 89.850 6.870 25.970 1.00 0.00 H\n", "ATOM 8 H23 POPC 1 88.430 6.320 25.050 1.00 0.00 H\n", "ATOM 9 C3 POPC 1 91.030 8.130 24.080 1.00 0.00 C\n", "ATOM 10 H31 POPC 1 90.550 9.090 24.260 1.00 0.00 H\n", "ATOM 11 H32 POPC 1 91.650 8.190 23.190 1.00 0.00 H\n", "ATOM 12 H33 POPC 1 91.650 7.870 24.940 1.00 0.00 H\n", "ATOM 13 N4 POPC 1 90.000 7.100 23.890 1.00 0.00 N\n", "ATOM 14 C5 POPC 1 90.660 5.800 23.650 1.00 0.00 C\n", "ATOM 15 H51 POPC 1 91.220 5.540 24.550 1.00 0.00 H\n", "ATOM 16 H52 POPC 1 91.350 5.920 22.820 1.00 0.00 H\n", "ATOM 17 C6 POPC 1 89.730 4.630 23.320 1.00 0.00 C\n", "ATOM 18 H61 POPC 1 89.360 4.780 22.310 1.00 0.00 H\n", "ATOM 19 H62 POPC 1 88.900 4.660 24.020 1.00 0.00 H\n", "ATOM 20 O7 POPC 1 90.310 3.330 23.390 1.00 0.00 O\n", "grep: write error: Broken pipe\n" ] } ], "source": [ "!grep POPC traj_POPCPOPE_wH.pdb | head -20" ] }, { "cell_type": "markdown", "id": "16a5a4c4", "metadata": {}, "source": [ "## Conclusion\n", "\n", "In this notebook, we showed you how to use **buildH** on a mixture of POPC/POPE lipids. **buildH** has to be launched for each lipid separately. If a trajectory with all hydrogens on all lipids is wanted, one has to produce intermediate trajectories at each step. In the figure below is shown the two step process (image rendered with [VMD](https://www.ks.uiuc.edu/Research/vmd/)).\n", "\n", "![H reconstruction on a POPC/POPE mixture with buildH](img/addH_POPC_POPE.png)" ] } ], "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.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }