{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Gromos Trajectory Examples\n", "\n", "## Example file for the evaluation of GROMOS trajectory files in pygromos" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "854ec9af74954e70812a1da4b48e861a", "version_major": 2, "version_minor": 0 }, "text/plain": [] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#specific imports from pygromos for trc and tre file support\n", "import pygromos.files.trajectory.trc as traj_trc\n", "import pygromos.files.trajectory.tre as traj_tre\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1) TRC" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1) TRC import" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# import the trajectory file into a Trc class\n", "trc = traj_trc.Trc(traj_path='../example_files/Traj_files/b_emin_vacuum_1.trc',\n", " in_cnf='../example_files/Traj_files/b_emin_vacuum.cnf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The TRC class bridges the GROMOS TRC file based strucutres and mdtraj.Trajectories.\n", "\n", "One can read in TRCs and use them just like mdtraj.Trajectories. One can than write them out both as .h5 as well as GROMOS .trc/trc.gz files.\n", "\n", "If you have a function that's generally useful, please contact the developers to possibly add it to the pygromos code to help other people :)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['TITLE',\n", " 'atom_slice',\n", " 'center_coordinates',\n", " 'distances',\n", " 'generate_TITLE_entry',\n", " 'generate_entry_for_frame',\n", " 'get_dummy_cnf',\n", " 'image_molecules',\n", " 'join',\n", " 'load',\n", " 'make_molecules_whole',\n", " 'n_atoms',\n", " 'n_chains',\n", " 'n_frames',\n", " 'n_residues',\n", " 'openmm_boxes',\n", " 'openmm_positions',\n", " 'parse_trc_efficiently',\n", " 'path',\n", " 'recreate_view',\n", " 'remove_solvent',\n", " 'restrict_atoms',\n", " 'rmsd',\n", " 'save',\n", " 'save_amberrst7',\n", " 'save_binpos',\n", " 'save_dcd',\n", " 'save_dtr',\n", " 'save_gro',\n", " 'save_gsd',\n", " 'save_hdf5',\n", " 'save_lammpstrj',\n", " 'save_lh5',\n", " 'save_mdcrd',\n", " 'save_netcdf',\n", " 'save_netcdfrst',\n", " 'save_pdb',\n", " 'save_tng',\n", " 'save_trr',\n", " 'save_xtc',\n", " 'save_xyz',\n", " 'slice',\n", " 'smooth',\n", " 'stack',\n", " 'step',\n", " 'superpose',\n", " 'time',\n", " 'timestep',\n", " 'to_cnf',\n", " 'top',\n", " 'topology',\n", " 'unitcell_angles',\n", " 'unitcell_lengths',\n", " 'unitcell_vectors',\n", " 'unitcell_volumes',\n", " 'view',\n", " 'write',\n", " 'write_trc',\n", " 'xyz']" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[x for x in dir(trc) if not x.startswith(\"_\")]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2) TRC file handling" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Save as .h5" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'./traj.h5'" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "trc.save('./traj.h5') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Save as trc" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "trc.save('./traj.trc.gz')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### export last frame as cnf" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "TITLE\n", "THIS IS THE FRAME AT TIMESTEP: 4.0 OF THE TRAJECTORY WITH TITLE: MD++steepest descent energy minimization of the peptide in vacuum>>> Generated with PyGromosTools (riniker group) <<<position trajectoryEND\n", "POSITION\n", "# \t \n", " 1 VAL H1 0 0.858298182 1.499708533 1.397253275\n", " 1 VAL H2 1 0.953678370 1.440333724 1.515184283\n", " 1 VAL N 2 0.913451612 1.421260476 1.425633550\n", " 1 VAL H3 3 0.855719924 1.339777827 1.431015491\n", " 1 VAL CA 4 1.022031069 1.399157882 1.329032302\n", " 1 VAL CB 5 0.952420831 1.374197721 1.195075631\n", " 1 VAL CG1 6 0.913190961 1.499370813 1.116295457\n", " 1 VAL CG2 7 1.026286483 1.267775059 1.113663197\n", " 1 VAL C 8 1.119535685 1.516167402 1.343593240\n", " 1 VAL O 9 1.121832848 1.571724653 1.453307033\n", " 2 TYR N 10 1.202524424 1.547034740 1.244336247\n", " 2 TYR H 11 1.207148552 1.490973473 1.161649466\n", " 2 TYR CA 12 1.303517222 1.653589725 1.236642957\n", " 2 TYR CB 13 1.247369647 1.791285038 1.200619698\n", " 2 TYR CG 14 1.197796106 1.877276540 1.317051053\n", " 2 TYR CD1 15 1.071256876 1.857888699 1.371185541\n", " 2 TYR HD1 16 0.993085802 1.811082721 1.311375499\n", " 2 TYR CD2 17 1.288784027 1.961568475 1.379797101\n", " 2 TYR HD2 18 1.383159995 1.985753894 1.330927134\n", " 2 TYR CE1 19 1.040328622 1.914669991 1.494227052\n", " 2 TYR HE1 20 0.939020157 1.905765176 1.533425450\n", " 2 TYR CE2 21 1.257037044 2.019920826 1.501881838\n", " 2 TYR HE2 22 1.325480461 2.093687534 1.543774128\n", " 2 TYR CZ 23 1.134425282 1.992075920 1.561123490\n", " 2 TYR OH 24 1.123193622 2.005527496 1.695985913\n", " 2 TYR HH 25 1.175849319 2.085860014 1.723783255\n", " 2 TYR C 26 1.418586850 1.648926616 1.337371469\n", " 2 TYR O 27 1.523679972 1.595995188 1.301521301\n", " 3 ARG N 28 1.396972656 1.675651789 1.465864182\n", " 3 ARG H 29 1.309179425 1.712227583 1.496792197\n", " 3 ARG CA 30 1.504508853 1.665650368 1.565602183\n", " 3 ARG CB 31 1.486977339 1.767935872 1.678033829\n", " 3 ARG CG 32 1.373603702 1.738026977 1.776329041\n", " 3 ARG CD 33 1.415657640 1.794736385 1.912081718\n", " 3 ARG NE 34 1.386569738 1.698562503 2.019374609\n", " 3 ARG HE 35 1.292315245 1.701340795 2.052666664\n", " 3 ARG CZ 36 1.472650051 1.610763788 2.072641850\n", " 3 ARG NH1 37 1.596361995 1.592568755 2.024506330\n", " 3 ARG HH11 38 1.661001921 1.530819535 2.069304466\n", " 3 ARG HH12 39 1.621459961 1.630685449 1.935536146\n", " 3 ARG NH2 40 1.436868072 1.541736007 2.181771994\n", " 3 ARG HH21 41 1.500163198 1.475605249 2.222011805\n", " 3 ARG HH22 42 1.348556042 1.557563543 2.225923061\n", " 3 ARG C 43 1.542207122 1.526291847 1.616297126\n", " 3 ARG O 44 1.574849486 1.506344676 1.733203053\n", " 4 LYSH N 45 1.538578033 1.431676269 1.522896171\n", " 4 LYSH H 46 1.539155364 1.463887453 1.428223729\n", " 4 LYSH CA 47 1.564581990 1.287459135 1.534663439\n", " 4 LYSH CB 48 1.482068777 1.220921040 1.644995928\n", " 4 LYSH CG 49 1.553891420 1.094621658 1.692990303\n", " 4 LYSH CD 50 1.455659389 0.988943756 1.743898392\n", " 4 LYSH CE 51 1.532733679 0.865419090 1.790902019\n", " 4 LYSH NZ 52 1.442433715 0.751384020 1.812048912\n", " 4 LYSH HZ1 53 1.408901930 0.719389319 1.723440170\n", " 4 LYSH HZ2 54 1.364803195 0.780083120 1.868170381\n", " 4 LYSH HZ3 55 1.491788745 0.677637756 1.858152866\n", " 4 LYSH C 56 1.540888786 1.215819478 1.401547551\n", " 4 LYSH O 57 1.445617437 1.139712334 1.385369897\n", " 5 GLN N 58 1.620790362 1.257511973 1.303739190\n", " 5 GLN H 59 1.691180825 1.327280164 1.317106128\n", " 5 GLN CA 60 1.639090419 1.212603927 1.164958239\n", " 5 GLN CB 61 1.516473532 1.236391783 1.076570988\n", " 5 GLN CG 62 1.487887502 1.382966638 1.043351531\n", " 5 GLN CD 63 1.366745234 1.400402308 0.951538980\n", " 5 GLN OE1 64 1.254561663 1.426969886 0.994376242\n", " 5 GLN NE2 65 1.389542460 1.397161841 0.820551813\n", " 5 GLN HE21 66 1.312573314 1.408466220 0.757729173\n", " 5 GLN HE22 67 1.483796239 1.384176731 0.789786577\n", " 5 GLN C 68 1.759001017 1.293522954 1.115122199\n", " 5 GLN O1 69 1.792673707 1.280218840 0.995480478\n", " 5 GLN O2 70 1.810874224 1.373489738 1.196003079\n", "END\n", "GENBOX\n", " 0\n", " 0.000000000 0.000000000 0.000000000\n", " 0.000000000 0.000000000 0.000000000\n", " 0.000000000 0.000000000 0.000000000\n", " 0.000000000 0.000000000 0.000000000\n", "END" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "trc[-1].to_cnf(base_cnf='../example_files/Traj_files/b_emin_vacuum.cnf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Get selection of trajectories" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "9" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "trc[::10].n_frames" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Save out selection" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "trc[::10].save('9_frames.trc')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.3) TRC Calculate\n", "#### RMSD" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# Calculate the rmsd to the initial frame (0th frame).\n", "# Alternatively a different trajectory can be provide as argument to the rmsd function.\n", "# The accepted arguments are integer or single trajectory frame.\n", "rmsd = trc.rmsd(0)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>rmsd</th>\n", " </tr>\n", " <tr>\n", " <th>time</th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0.00</th>\n", " <td>0.000000</td>\n", " </tr>\n", " <tr>\n", " <th>0.05</th>\n", " <td>0.013725</td>\n", " </tr>\n", " <tr>\n", " <th>0.10</th>\n", " <td>0.022836</td>\n", " </tr>\n", " <tr>\n", " <th>0.15</th>\n", " <td>0.030384</td>\n", " </tr>\n", " <tr>\n", " <th>0.20</th>\n", " <td>0.036549</td>\n", " </tr>\n", " <tr>\n", " <th>...</th>\n", " <td>...</td>\n", " </tr>\n", " <tr>\n", " <th>3.80</th>\n", " <td>0.177028</td>\n", " </tr>\n", " <tr>\n", " <th>3.85</th>\n", " <td>0.177924</td>\n", " </tr>\n", " <tr>\n", " <th>3.90</th>\n", " <td>0.178814</td>\n", " </tr>\n", " <tr>\n", " <th>3.95</th>\n", " <td>0.179699</td>\n", " </tr>\n", " <tr>\n", " <th>4.00</th>\n", " <td>0.180578</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "<p>81 rows × 1 columns</p>\n", "</div>" ], "text/plain": [ " rmsd\n", "time \n", "0.00 0.000000\n", "0.05 0.013725\n", "0.10 0.022836\n", "0.15 0.030384\n", "0.20 0.036549\n", "... ...\n", "3.80 0.177028\n", "3.85 0.177924\n", "3.90 0.178814\n", "3.95 0.179699\n", "4.00 0.180578\n", "\n", "[81 rows x 1 columns]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Which returns the rmsd for every time frame to the initial frame.\n", "# It can be seen how the rmsd slowly gets larger as the simulations get farther away from the initial setup.\n", "rmsd" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "rmsd 0.121639\n", "dtype: float32" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# The mean over all frames can be easily taken with the pandas function mean()\n", "rmsd.mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.4) TRC Visualization\n", "#### Create Visualization:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "13f73da546ca4e9780ad10293eef8b2d", "version_major": 2, "version_minor": 0 }, "text/plain": [ "NGLWidget(max_frame=80)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "view = trc.view\n", "view" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Do some changes and see how the visualization changes\n", "To jump to a certain frame, use the slider in the widget or select frames with the following cell:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "trc.view.frame = 70" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### let's find hydrogenbonds" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "trc.view.add_contact(hydrogenBond=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### add surface" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "trc.view.add_surface(color=\"lightgrey\",opacity=0.3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### remove surface" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "trc.view.remove_surface()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### add transperent cartoon" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "trc.view.add_representation(\"cartoon\",selection=\"protein\",color='lightblue',opacity=0.3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### show distance between atom pair" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "trc.view.add_distance(atom_pair=[[10,16]], label_color=\"black\",color=\"darkgrey\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### once you are happy with the result render and download image" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "trc.view.download_image('first_protein.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Go crazy and make a movie to show off" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "### uncomment this for fast installation of NOT provided package\n", "# import sys\n", "# !{sys.executable} -m pip install moviepy\n", "\n", "import moviepy.editor as mpy\n", "from IPython import display\n", "from time import sleep\n", "import tqdm\n", "import os\n", "\n", "# Setup frames\n", "frames = len(trc.step)\n", "template = '0image{}.png'\n", "download_dir = os.getcwd()\n", "imagefiles = [download_dir + template.format(str(i)) for i in range(0, frames, 1)]\n", "\n", "# render frames\n", "for frame in tqdm.tqdm(range(0, frames)):\n", " trc.view.frame = frame\n", " sleep(0.2) # depending on the speed of the computer this might need to be increased\n", " trc.view.download_image(filename=template.format(frame))\n", " sleep(1) # depending on the speed of the computer this might need to be increased\n", "\n", "# set frames per second and generate object\n", "frame_per_second = 8\n", "im = mpy.ImageSequenceClip(imagefiles, fps=frame_per_second)\n", "im.write_gif('protein.gif', fps=frame_per_second)\n", "\n", "# show movie\n", "display.HTML(\"<img src='protein.gif'></img>\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2) TRE" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.1) Tre import and structure" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/bschroed/Documents/projects/PyGromosTools/pygromos/files/trajectory/_general_trajectory.py:296: PerformanceWarning: \n", "your performance may suffer as PyTables will pickle object types that it cannot\n", "map directly to c-types [inferred_type->mixed,key->block2_values] [items->Index(['totals', 'baths', 'bonded', 'nonbonded', 'special', 'eds', 'mass',\n", " 'temperature', 'volume', 'pressure'],\n", " dtype='object')]\n", "\n", " self.database.to_hdf(\n" ] } ], "source": [ "# import the trajectory file into a Tre class\n", "from pygromos.files.trajectory.tre_field_libs.ene_fields import gromos_2015_tre_block_names_table\n", "\n", "tre = traj_tre.Tre(input_value=\"../example_files/Traj_files/test_CHE_H2O_bilayer.tre\", _ene_ana_names=gromos_2015_tre_block_names_table)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>step</th>\n", " <th>time</th>\n", " <th>totals</th>\n", " <th>baths</th>\n", " <th>bonded</th>\n", " <th>nonbonded</th>\n", " <th>special</th>\n", " <th>eds</th>\n", " <th>mass</th>\n", " <th>temperature</th>\n", " <th>volume</th>\n", " <th>pressure</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>0</td>\n", " <td>0.0</td>\n", " <td>[-408806.2436, 393521.852, -802328.0956, 13840...</td>\n", " <td>[[99739.83003, 29519.49412, 70220.33591], [293...</td>\n", " <td>[[0.0, 49931.35526, 0.0, 88472.52195, 0.0]]</td>\n", " <td>[[984602.6158, -1925334.589, 0.0, 0.0]]</td>\n", " <td>[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,...</td>\n", " <td>[0.0]</td>\n", " <td>[1277287.736]</td>\n", " <td>[[296.2008302, 350.6569429, 278.0450574, 1.000...</td>\n", " <td>[2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463...</td>\n", " <td>[29.98293036, 94773.2037, 131128.599, 30.37611...</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>1000</td>\n", " <td>2.0</td>\n", " <td>[-411576.4224, 392980.7347, -804557.157, 13955...</td>\n", " <td>[[99960.45845, 29481.77196, 70478.6865], [2930...</td>\n", " <td>[[0.0, 50409.38587, 0.0, 89141.04865, 0.0]]</td>\n", " <td>[[988489.6284, -1932597.22, 0.0, 0.0]]</td>\n", " <td>[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,...</td>\n", " <td>[0.0]</td>\n", " <td>[1277287.736]</td>\n", " <td>[[296.8560381, 350.2088478, 279.0680247, 1.000...</td>\n", " <td>[2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463...</td>\n", " <td>[32.10481199, 92112.53213, 131040.7862, 26.183...</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>2000</td>\n", " <td>4.0</td>\n", " <td>[-409167.9172, 392370.1191, -801538.0363, 1389...</td>\n", " <td>[[100096.9564, 29163.29693, 70933.65948], [292...</td>\n", " <td>[[0.0, 50155.81989, 0.0, 88764.59053, 0.0]]</td>\n", " <td>[[983688.8106, -1924147.257, 0.0, 0.0]]</td>\n", " <td>[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,...</td>\n", " <td>[0.0]</td>\n", " <td>[1277287.736]</td>\n", " <td>[[297.2614008, 346.4257383, 280.8695397, 0.999...</td>\n", " <td>[2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463...</td>\n", " <td>[28.23515616, 96520.43393, 130756.5894, 30.172...</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>3000</td>\n", " <td>6.0</td>\n", " <td>[-408468.813, 392911.3266, -801380.1396, 13890...</td>\n", " <td>[[100572.3051, 29097.77284, 71474.53225], [292...</td>\n", " <td>[[0.0, 50205.91055, 0.0, 88694.38663, 0.0]]</td>\n", " <td>[[984891.3076, -1925171.744, 0.0, 0.0]]</td>\n", " <td>[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,...</td>\n", " <td>[0.0]</td>\n", " <td>[1277287.736]</td>\n", " <td>[[298.6730603, 345.647389, 283.0111843, 1.0000...</td>\n", " <td>[2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463...</td>\n", " <td>[28.79320593, 96009.21744, 130922.0286, 24.551...</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>4000</td>\n", " <td>8.0</td>\n", " <td>[-409322.7261, 391652.3813, -800975.1074, 1398...</td>\n", " <td>[[100279.2719, 28656.33854, 71622.93335], [291...</td>\n", " <td>[[0.0, 50608.00218, 0.0, 89216.65927, 0.0]]</td>\n", " <td>[[980597.3587, -1921397.128, 0.0, 0.0]]</td>\n", " <td>[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,...</td>\n", " <td>[0.0]</td>\n", " <td>[1277287.736]</td>\n", " <td>[[297.8028294, 340.4036676, 283.5987946, 0.999...</td>\n", " <td>[2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463...</td>\n", " <td>[24.7954137, 100472.9563, 130538.2987, 27.3050...</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", " <td>5000</td>\n", " <td>10.0</td>\n", " <td>[-409060.5321, 391503.6168, -800564.1489, 1401...</td>\n", " <td>[[99621.54627, 28465.00254, 71156.54373], [291...</td>\n", " <td>[[0.0, 50668.20147, 0.0, 89507.19113, 0.0]]</td>\n", " <td>[[980518.6316, -1921258.173, 0.0, 0.0]]</td>\n", " <td>[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,...</td>\n", " <td>[0.0]</td>\n", " <td>[1277287.736]</td>\n", " <td>[[295.8495588, 338.1308206, 281.7520741, 1.000...</td>\n", " <td>[2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463...</td>\n", " <td>[24.44895665, 100856.1354, 130501.386, 20.8121...</td>\n", " </tr>\n", " <tr>\n", " <th>6</th>\n", " <td>6000</td>\n", " <td>12.0</td>\n", " <td>[-407724.5301, 393376.3395, -801100.8696, 1399...</td>\n", " <td>[[100618.1056, 29001.93804, 71616.16754], [292...</td>\n", " <td>[[0.0, 50612.96859, 0.0, 89338.70979, 0.0]]</td>\n", " <td>[[980975.7104, -1922028.258, 0.0, 0.0]]</td>\n", " <td>[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,...</td>\n", " <td>[0.0]</td>\n", " <td>[1277287.736]</td>\n", " <td>[[298.8090756, 344.5089841, 283.5720046, 0.999...</td>\n", " <td>[2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463...</td>\n", " <td>[24.88400774, 100946.7969, 131119.5628, 21.646...</td>\n", " </tr>\n", " <tr>\n", " <th>7</th>\n", " <td>7000</td>\n", " <td>14.0</td>\n", " <td>[-406045.9433, 393472.141, -799518.0842, 14009...</td>\n", " <td>[[101200.4734, 29288.55636, 71911.91706], [292...</td>\n", " <td>[[0.0, 50652.38951, 0.0, 89438.21007, 0.0]]</td>\n", " <td>[[979207.7071, -1918816.391, 0.0, 0.0]]</td>\n", " <td>[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,...</td>\n", " <td>[0.0]</td>\n", " <td>[1277287.736]</td>\n", " <td>[[300.5385535, 347.9136733, 284.743057, 1.0000...</td>\n", " <td>[2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463...</td>\n", " <td>[22.9661595, 103318.3573, 131165.6623, 27.4988...</td>\n", " </tr>\n", " <tr>\n", " <th>8</th>\n", " <td>8000</td>\n", " <td>16.0</td>\n", " <td>[-408499.0398, 391678.3093, -800177.3491, 1397...</td>\n", " <td>[[100402.1573, 28648.71805, 71753.43928], [291...</td>\n", " <td>[[0.0, 50465.54724, 0.0, 89294.44028, 0.0]]</td>\n", " <td>[[977305.7837, -1917243.12, 0.0, 0.0]]</td>\n", " <td>[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,...</td>\n", " <td>[0.0]</td>\n", " <td>[1277287.736]</td>\n", " <td>[[298.1677666, 340.3131452, 284.115547, 0.9999...</td>\n", " <td>[2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463...</td>\n", " <td>[19.87564957, 106444.6562, 130544.6054, 14.226...</td>\n", " </tr>\n", " <tr>\n", " <th>9</th>\n", " <td>9000</td>\n", " <td>18.0</td>\n", " <td>[-406991.4101, 392482.0724, -799473.4824, 1399...</td>\n", " <td>[[100192.0289, 28084.21204, 72107.81681], [292...</td>\n", " <td>[[0.0, 50693.74147, 0.0, 89209.25341, 0.0]]</td>\n", " <td>[[976722.0947, -1916098.572, 0.0, 0.0]]</td>\n", " <td>[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,...</td>\n", " <td>[0.0]</td>\n", " <td>[1277287.736]</td>\n", " <td>[[297.5437407, 333.6074763, 285.5187434, 1.000...</td>\n", " <td>[2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463...</td>\n", " <td>[18.24226614, 108700.5608, 130819.9731, 21.832...</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " step time totals \\\n", "0 0 0.0 [-408806.2436, 393521.852, -802328.0956, 13840... \n", "1 1000 2.0 [-411576.4224, 392980.7347, -804557.157, 13955... \n", "2 2000 4.0 [-409167.9172, 392370.1191, -801538.0363, 1389... \n", "3 3000 6.0 [-408468.813, 392911.3266, -801380.1396, 13890... \n", "4 4000 8.0 [-409322.7261, 391652.3813, -800975.1074, 1398... \n", "5 5000 10.0 [-409060.5321, 391503.6168, -800564.1489, 1401... \n", "6 6000 12.0 [-407724.5301, 393376.3395, -801100.8696, 1399... \n", "7 7000 14.0 [-406045.9433, 393472.141, -799518.0842, 14009... \n", "8 8000 16.0 [-408499.0398, 391678.3093, -800177.3491, 1397... \n", "9 9000 18.0 [-406991.4101, 392482.0724, -799473.4824, 1399... \n", "\n", " baths \\\n", "0 [[99739.83003, 29519.49412, 70220.33591], [293... \n", "1 [[99960.45845, 29481.77196, 70478.6865], [2930... \n", "2 [[100096.9564, 29163.29693, 70933.65948], [292... \n", "3 [[100572.3051, 29097.77284, 71474.53225], [292... \n", "4 [[100279.2719, 28656.33854, 71622.93335], [291... \n", "5 [[99621.54627, 28465.00254, 71156.54373], [291... \n", "6 [[100618.1056, 29001.93804, 71616.16754], [292... \n", "7 [[101200.4734, 29288.55636, 71911.91706], [292... \n", "8 [[100402.1573, 28648.71805, 71753.43928], [291... \n", "9 [[100192.0289, 28084.21204, 72107.81681], [292... \n", "\n", " bonded \\\n", "0 [[0.0, 49931.35526, 0.0, 88472.52195, 0.0]] \n", "1 [[0.0, 50409.38587, 0.0, 89141.04865, 0.0]] \n", "2 [[0.0, 50155.81989, 0.0, 88764.59053, 0.0]] \n", "3 [[0.0, 50205.91055, 0.0, 88694.38663, 0.0]] \n", "4 [[0.0, 50608.00218, 0.0, 89216.65927, 0.0]] \n", "5 [[0.0, 50668.20147, 0.0, 89507.19113, 0.0]] \n", "6 [[0.0, 50612.96859, 0.0, 89338.70979, 0.0]] \n", "7 [[0.0, 50652.38951, 0.0, 89438.21007, 0.0]] \n", "8 [[0.0, 50465.54724, 0.0, 89294.44028, 0.0]] \n", "9 [[0.0, 50693.74147, 0.0, 89209.25341, 0.0]] \n", "\n", " nonbonded \\\n", "0 [[984602.6158, -1925334.589, 0.0, 0.0]] \n", "1 [[988489.6284, -1932597.22, 0.0, 0.0]] \n", "2 [[983688.8106, -1924147.257, 0.0, 0.0]] \n", "3 [[984891.3076, -1925171.744, 0.0, 0.0]] \n", "4 [[980597.3587, -1921397.128, 0.0, 0.0]] \n", "5 [[980518.6316, -1921258.173, 0.0, 0.0]] \n", "6 [[980975.7104, -1922028.258, 0.0, 0.0]] \n", "7 [[979207.7071, -1918816.391, 0.0, 0.0]] \n", "8 [[977305.7837, -1917243.12, 0.0, 0.0]] \n", "9 [[976722.0947, -1916098.572, 0.0, 0.0]] \n", "\n", " special eds mass \\\n", "0 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,... [0.0] [1277287.736] \n", "1 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,... [0.0] [1277287.736] \n", "2 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,... [0.0] [1277287.736] \n", "3 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,... [0.0] [1277287.736] \n", "4 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,... [0.0] [1277287.736] \n", "5 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,... [0.0] [1277287.736] \n", "6 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,... [0.0] [1277287.736] \n", "7 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,... [0.0] [1277287.736] \n", "8 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,... [0.0] [1277287.736] \n", "9 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,... [0.0] [1277287.736] \n", "\n", " temperature \\\n", "0 [[296.2008302, 350.6569429, 278.0450574, 1.000... \n", "1 [[296.8560381, 350.2088478, 279.0680247, 1.000... \n", "2 [[297.2614008, 346.4257383, 280.8695397, 0.999... \n", "3 [[298.6730603, 345.647389, 283.0111843, 1.0000... \n", "4 [[297.8028294, 340.4036676, 283.5987946, 0.999... \n", "5 [[295.8495588, 338.1308206, 281.7520741, 1.000... \n", "6 [[298.8090756, 344.5089841, 283.5720046, 0.999... \n", "7 [[300.5385535, 347.9136733, 284.743057, 1.0000... \n", "8 [[298.1677666, 340.3131452, 284.115547, 0.9999... \n", "9 [[297.5437407, 333.6074763, 285.5187434, 1.000... \n", "\n", " volume \\\n", "0 [2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463... \n", "1 [2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463... \n", "2 [2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463... \n", "3 [2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463... \n", "4 [2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463... \n", "5 [2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463... \n", "6 [2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463... \n", "7 [2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463... \n", "8 [2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463... \n", "9 [2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463... \n", "\n", " pressure \n", "0 [29.98293036, 94773.2037, 131128.599, 30.37611... \n", "1 [32.10481199, 92112.53213, 131040.7862, 26.183... \n", "2 [28.23515616, 96520.43393, 130756.5894, 30.172... \n", "3 [28.79320593, 96009.21744, 130922.0286, 24.551... \n", "4 [24.7954137, 100472.9563, 130538.2987, 27.3050... \n", "5 [24.44895665, 100856.1354, 130501.386, 20.8121... \n", "6 [24.88400774, 100946.7969, 131119.5628, 21.646... \n", "7 [22.9661595, 103318.3573, 131165.6623, 27.4988... \n", "8 [19.87564957, 106444.6562, 130544.6054, 14.226... \n", "9 [18.24226614, 108700.5608, 130819.9731, 21.832... " ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tre.database" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['ENEVERSION',\n", " 'TITLE',\n", " 'add_traj',\n", " 'database',\n", " 'get_Hvap',\n", " 'get_baths',\n", " 'get_bondedContributions',\n", " 'get_density',\n", " 'get_eds',\n", " 'get_mass',\n", " 'get_nonbondedContributions',\n", " 'get_precalclam',\n", " 'get_specialContributions',\n", " 'get_temperature',\n", " 'get_temperature_Info',\n", " 'get_time_step',\n", " 'get_totals',\n", " 'get_totangle',\n", " 'get_totbonded',\n", " 'get_totcov',\n", " 'get_totcrf',\n", " 'get_totdihedral',\n", " 'get_totene',\n", " 'get_totkin',\n", " 'get_totlj',\n", " 'get_totnonbonded',\n", " 'get_totpot',\n", " 'path',\n", " 'step',\n", " 'time',\n", " 'tre_block_name_table',\n", " 'write']" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[x for x in dir(tre) if not x.startswith(\"_\")]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tre files contain all energy related data (like split up energy terms, temperature, pressure, .....). In PyGromos they generally share the same block structure as other files, but all the data inside the specific timesteps is stored efficiently inside a pandas DataFrame, here called tre.database . This database offers manipulation with all pandas functions. Alternatively many common functions are provided inside the Tre class. \n", "\n", "This class should in principle replace further usage of the gromos++ ene_ana function, since all these operation can be done efficiently on the pandas DataFrame. \n", "\n", "We are currently working on adding more common functions to the Tre class. If you find a useful function please contact the developers so the function can be added for general usage :)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.2) Common Tre functions" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "874.6072007296449" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calculate the average density over all timesteps\n", "tre.get_density().mean()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "bath1 297.770285\n", "bath2 297.713431\n", "dtype: float64" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calculate the mean temperature over all frames for all baths in the system. In this example two baths with slightly different temperatures.\n", "tre.get_temperature().mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tables and lists inside the database are stored in numpy arrays. For example the two temperatures from the previous example are stored in a numpy array of size 2 since it has two temperature baths" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Specific values inside a tre file can also be directly accessed with numpy and pandas syntax" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "step 2000\n", "time 4.0\n", "totals [-409167.9172, 392370.1191, -801538.0363, 1389...\n", "baths [[100096.9564, 29163.29693, 70933.65948], [292...\n", "bonded [[0.0, 50155.81989, 0.0, 88764.59053, 0.0]]\n", "nonbonded [[983688.8106, -1924147.257, 0.0, 0.0]]\n", "special [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,...\n", "eds [0.0]\n", "mass [1277287.736]\n", "temperature [[297.2614008, 346.4257383, 280.8695397, 0.999...\n", "volume [2425.07286, 8.463596169, 0.0, 0.0, 0.0, 8.463...\n", "pressure [28.23515616, 96520.43393, 130756.5894, 30.172...\n", "Name: 2, dtype: object" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tre.database.iloc[2]" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 984602.6158\n", "1 988489.6284\n", "2 983688.8106\n", "3 984891.3076\n", "4 980597.3587\n", "5 980518.6316\n", "6 980975.7104\n", "7 979207.7071\n", "8 977305.7837\n", "9 976722.0947\n", "Name: nonbonded, dtype: float64" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# select the first nonbonded energy value for the first force group over all time frames\n", "tre.database[\"nonbonded\"].apply(lambda x: x[0][0])" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>totene</th>\n", " <th>totkin</th>\n", " <th>totpot</th>\n", " <th>totcov</th>\n", " <th>totbond</th>\n", " <th>totangle</th>\n", " <th>totimproper</th>\n", " <th>totdihedral</th>\n", " <th>totcrossdihedral</th>\n", " <th>totnonbonded</th>\n", " <th>...</th>\n", " <th>totjval</th>\n", " <th>totxray</th>\n", " <th>totle</th>\n", " <th>totorder</th>\n", " <th>totsymm</th>\n", " <th>eds_vr,entropy</th>\n", " <th>totqm</th>\n", " <th>totbsleus</th>\n", " <th>totrdc</th>\n", " <th>wip1</th>\n", " </tr>\n", " <tr>\n", " <th>time</th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0.0</th>\n", " <td>-408806.2436</td>\n", " <td>393521.8520</td>\n", " <td>-802328.0956</td>\n", " <td>138403.8772</td>\n", " <td>0.0</td>\n", " <td>49931.35526</td>\n", " <td>0.0</td>\n", " <td>88472.52195</td>\n", " <td>0.0</td>\n", " <td>-940731.9728</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>2.0</th>\n", " <td>-411576.4224</td>\n", " <td>392980.7347</td>\n", " <td>-804557.1570</td>\n", " <td>139550.4345</td>\n", " <td>0.0</td>\n", " <td>50409.38587</td>\n", " <td>0.0</td>\n", " <td>89141.04865</td>\n", " <td>0.0</td>\n", " <td>-944107.5915</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>4.0</th>\n", " <td>-409167.9172</td>\n", " <td>392370.1191</td>\n", " <td>-801538.0363</td>\n", " <td>138920.4104</td>\n", " <td>0.0</td>\n", " <td>50155.81989</td>\n", " <td>0.0</td>\n", " <td>88764.59053</td>\n", " <td>0.0</td>\n", " <td>-940458.4467</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>6.0</th>\n", " <td>-408468.8130</td>\n", " <td>392911.3266</td>\n", " <td>-801380.1396</td>\n", " <td>138900.2972</td>\n", " <td>0.0</td>\n", " <td>50205.91055</td>\n", " <td>0.0</td>\n", " <td>88694.38663</td>\n", " <td>0.0</td>\n", " <td>-940280.4368</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>8.0</th>\n", " <td>-409322.7261</td>\n", " <td>391652.3813</td>\n", " <td>-800975.1074</td>\n", " <td>139824.6615</td>\n", " <td>0.0</td>\n", " <td>50608.00218</td>\n", " <td>0.0</td>\n", " <td>89216.65927</td>\n", " <td>0.0</td>\n", " <td>-940799.7689</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>10.0</th>\n", " <td>-409060.5321</td>\n", " <td>391503.6168</td>\n", " <td>-800564.1489</td>\n", " <td>140175.3926</td>\n", " <td>0.0</td>\n", " <td>50668.20147</td>\n", " <td>0.0</td>\n", " <td>89507.19113</td>\n", " <td>0.0</td>\n", " <td>-940739.5415</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>12.0</th>\n", " <td>-407724.5301</td>\n", " <td>393376.3395</td>\n", " <td>-801100.8696</td>\n", " <td>139951.6784</td>\n", " <td>0.0</td>\n", " <td>50612.96859</td>\n", " <td>0.0</td>\n", " <td>89338.70979</td>\n", " <td>0.0</td>\n", " <td>-941052.5480</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>14.0</th>\n", " <td>-406045.9433</td>\n", " <td>393472.1410</td>\n", " <td>-799518.0842</td>\n", " <td>140090.5996</td>\n", " <td>0.0</td>\n", " <td>50652.38951</td>\n", " <td>0.0</td>\n", " <td>89438.21007</td>\n", " <td>0.0</td>\n", " <td>-939608.6838</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>16.0</th>\n", " <td>-408499.0398</td>\n", " <td>391678.3093</td>\n", " <td>-800177.3491</td>\n", " <td>139759.9875</td>\n", " <td>0.0</td>\n", " <td>50465.54724</td>\n", " <td>0.0</td>\n", " <td>89294.44028</td>\n", " <td>0.0</td>\n", " <td>-939937.3367</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>18.0</th>\n", " <td>-406991.4101</td>\n", " <td>392482.0724</td>\n", " <td>-799473.4824</td>\n", " <td>139902.9949</td>\n", " <td>0.0</td>\n", " <td>50693.74147</td>\n", " <td>0.0</td>\n", " <td>89209.25341</td>\n", " <td>0.0</td>\n", " <td>-939376.4773</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "<p>10 rows × 38 columns</p>\n", "</div>" ], "text/plain": [ " totene totkin totpot totcov totbond \\\n", "time \n", "0.0 -408806.2436 393521.8520 -802328.0956 138403.8772 0.0 \n", "2.0 -411576.4224 392980.7347 -804557.1570 139550.4345 0.0 \n", "4.0 -409167.9172 392370.1191 -801538.0363 138920.4104 0.0 \n", "6.0 -408468.8130 392911.3266 -801380.1396 138900.2972 0.0 \n", "8.0 -409322.7261 391652.3813 -800975.1074 139824.6615 0.0 \n", "10.0 -409060.5321 391503.6168 -800564.1489 140175.3926 0.0 \n", "12.0 -407724.5301 393376.3395 -801100.8696 139951.6784 0.0 \n", "14.0 -406045.9433 393472.1410 -799518.0842 140090.5996 0.0 \n", "16.0 -408499.0398 391678.3093 -800177.3491 139759.9875 0.0 \n", "18.0 -406991.4101 392482.0724 -799473.4824 139902.9949 0.0 \n", "\n", " totangle totimproper totdihedral totcrossdihedral totnonbonded \\\n", "time \n", "0.0 49931.35526 0.0 88472.52195 0.0 -940731.9728 \n", "2.0 50409.38587 0.0 89141.04865 0.0 -944107.5915 \n", "4.0 50155.81989 0.0 88764.59053 0.0 -940458.4467 \n", "6.0 50205.91055 0.0 88694.38663 0.0 -940280.4368 \n", "8.0 50608.00218 0.0 89216.65927 0.0 -940799.7689 \n", "10.0 50668.20147 0.0 89507.19113 0.0 -940739.5415 \n", "12.0 50612.96859 0.0 89338.70979 0.0 -941052.5480 \n", "14.0 50652.38951 0.0 89438.21007 0.0 -939608.6838 \n", "16.0 50465.54724 0.0 89294.44028 0.0 -939937.3367 \n", "18.0 50693.74147 0.0 89209.25341 0.0 -939376.4773 \n", "\n", " ... totjval totxray totle totorder totsymm eds_vr,entropy totqm \\\n", "time ... \n", "0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "2.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "4.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "6.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "8.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "10.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "12.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "14.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "16.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "18.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "\n", " totbsleus totrdc wip1 \n", "time \n", "0.0 0.0 0.0 0.0 \n", "2.0 0.0 0.0 0.0 \n", "4.0 0.0 0.0 0.0 \n", "6.0 0.0 0.0 0.0 \n", "8.0 0.0 0.0 0.0 \n", "10.0 0.0 0.0 0.0 \n", "12.0 0.0 0.0 0.0 \n", "14.0 0.0 0.0 0.0 \n", "16.0 0.0 0.0 0.0 \n", "18.0 0.0 0.0 0.0 \n", "\n", "[10 rows x 38 columns]" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tre.get_totals()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### $\\lambda$-Sampling & TREs" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/bschroed/Documents/projects/PyGromosTools/pygromos/files/trajectory/_general_trajectory.py:296: PerformanceWarning: \n", "your performance may suffer as PyTables will pickle object types that it cannot\n", "map directly to c-types [inferred_type->mixed,key->block2_values] [items->Index(['totals', 'baths', 'bonded', 'nonbonded', 'special', 'eds',\n", " 'precalclam', 'mass', 'temperature', 'volume', 'pressure'],\n", " dtype='object')]\n", "\n", " self.database.to_hdf(\n" ] }, { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>nr_lambdas</th>\n", " <th>A_e_lj_1</th>\n", " <th>B_e_lj_1</th>\n", " <th>A_e_crf_1</th>\n", " <th>B_e_crf_1</th>\n", " <th>AB_kinetic_1</th>\n", " <th>AB_bond_1</th>\n", " <th>AB_angle_1</th>\n", " <th>AB_improper_1</th>\n", " <th>AB_disres_1</th>\n", " <th>...</th>\n", " <th>B_e_crf_2</th>\n", " <th>AB_kinetic_2</th>\n", " <th>AB_bond_2</th>\n", " <th>AB_angle_2</th>\n", " <th>AB_improper_2</th>\n", " <th>AB_disres_2</th>\n", " <th>AB_dihres_2</th>\n", " <th>AB_disfld_2</th>\n", " <th>A_dihedral</th>\n", " <th>B_dihedral</th>\n", " </tr>\n", " <tr>\n", " <th>time</th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0.0</th>\n", " <td>2.0</td>\n", " <td>-4.469426</td>\n", " <td>-53.669555</td>\n", " <td>-79.373179</td>\n", " <td>-52.887373</td>\n", " <td>36.091797</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>...</td>\n", " <td>-122.394320</td>\n", " <td>36.091797</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>1.0</th>\n", " <td>2.0</td>\n", " <td>-55.493090</td>\n", " <td>-58.228689</td>\n", " <td>-86.711496</td>\n", " <td>-52.410062</td>\n", " <td>44.886645</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>...</td>\n", " <td>-122.457590</td>\n", " <td>44.886645</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>2.0</th>\n", " <td>2.0</td>\n", " <td>-3.935587</td>\n", " <td>-54.492379</td>\n", " <td>-79.515189</td>\n", " <td>-54.142546</td>\n", " <td>46.199981</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>...</td>\n", " <td>-139.035309</td>\n", " <td>46.199981</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>3.0</th>\n", " <td>2.0</td>\n", " <td>-44.047130</td>\n", " <td>-54.945185</td>\n", " <td>-83.150923</td>\n", " <td>-53.673066</td>\n", " <td>41.268221</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>...</td>\n", " <td>-130.358158</td>\n", " <td>41.268221</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>4.0</th>\n", " <td>2.0</td>\n", " <td>-23.340313</td>\n", " <td>-52.961388</td>\n", " <td>-75.743516</td>\n", " <td>-53.920133</td>\n", " <td>36.680211</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>...</td>\n", " <td>-134.272063</td>\n", " <td>36.680211</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>...</th>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " </tr>\n", " <tr>\n", " <th>495.0</th>\n", " <td>2.0</td>\n", " <td>39.941549</td>\n", " <td>-64.577818</td>\n", " <td>-71.993096</td>\n", " <td>-53.485889</td>\n", " <td>35.829309</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>...</td>\n", " <td>-130.534976</td>\n", " <td>35.829309</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>496.0</th>\n", " <td>2.0</td>\n", " <td>-8.487283</td>\n", " <td>-54.840254</td>\n", " <td>-73.625420</td>\n", " <td>-54.112768</td>\n", " <td>33.260161</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>...</td>\n", " <td>-117.262832</td>\n", " <td>33.260161</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>497.0</th>\n", " <td>2.0</td>\n", " <td>29.934914</td>\n", " <td>-54.557127</td>\n", " <td>-76.326046</td>\n", " <td>-51.811587</td>\n", " <td>41.735086</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>...</td>\n", " <td>-104.326673</td>\n", " <td>41.735086</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>498.0</th>\n", " <td>2.0</td>\n", " <td>-35.691879</td>\n", " <td>-60.330236</td>\n", " <td>-77.859153</td>\n", " <td>-54.295433</td>\n", " <td>44.944847</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>...</td>\n", " <td>-123.231158</td>\n", " <td>44.944847</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>499.0</th>\n", " <td>2.0</td>\n", " <td>21.308545</td>\n", " <td>-58.470225</td>\n", " <td>-72.376205</td>\n", " <td>-53.554977</td>\n", " <td>41.740483</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>...</td>\n", " <td>-125.539239</td>\n", " <td>41.740483</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "<p>500 rows × 25 columns</p>\n", "</div>" ], "text/plain": [ " nr_lambdas A_e_lj_1 B_e_lj_1 A_e_crf_1 B_e_crf_1 AB_kinetic_1 \\\n", "time \n", "0.0 2.0 -4.469426 -53.669555 -79.373179 -52.887373 36.091797 \n", "1.0 2.0 -55.493090 -58.228689 -86.711496 -52.410062 44.886645 \n", "2.0 2.0 -3.935587 -54.492379 -79.515189 -54.142546 46.199981 \n", "3.0 2.0 -44.047130 -54.945185 -83.150923 -53.673066 41.268221 \n", "4.0 2.0 -23.340313 -52.961388 -75.743516 -53.920133 36.680211 \n", "... ... ... ... ... ... ... \n", "495.0 2.0 39.941549 -64.577818 -71.993096 -53.485889 35.829309 \n", "496.0 2.0 -8.487283 -54.840254 -73.625420 -54.112768 33.260161 \n", "497.0 2.0 29.934914 -54.557127 -76.326046 -51.811587 41.735086 \n", "498.0 2.0 -35.691879 -60.330236 -77.859153 -54.295433 44.944847 \n", "499.0 2.0 21.308545 -58.470225 -72.376205 -53.554977 41.740483 \n", "\n", " AB_bond_1 AB_angle_1 AB_improper_1 AB_disres_1 ... B_e_crf_2 \\\n", "time ... \n", "0.0 0.0 0.0 0.0 0.0 ... -122.394320 \n", "1.0 0.0 0.0 0.0 0.0 ... -122.457590 \n", "2.0 0.0 0.0 0.0 0.0 ... -139.035309 \n", "3.0 0.0 0.0 0.0 0.0 ... -130.358158 \n", "4.0 0.0 0.0 0.0 0.0 ... -134.272063 \n", "... ... ... ... ... ... ... \n", "495.0 0.0 0.0 0.0 0.0 ... -130.534976 \n", "496.0 0.0 0.0 0.0 0.0 ... -117.262832 \n", "497.0 0.0 0.0 0.0 0.0 ... -104.326673 \n", "498.0 0.0 0.0 0.0 0.0 ... -123.231158 \n", "499.0 0.0 0.0 0.0 0.0 ... -125.539239 \n", "\n", " AB_kinetic_2 AB_bond_2 AB_angle_2 AB_improper_2 AB_disres_2 \\\n", "time \n", "0.0 36.091797 0.0 0.0 0.0 0.0 \n", "1.0 44.886645 0.0 0.0 0.0 0.0 \n", "2.0 46.199981 0.0 0.0 0.0 0.0 \n", "3.0 41.268221 0.0 0.0 0.0 0.0 \n", "4.0 36.680211 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... ... \n", "495.0 35.829309 0.0 0.0 0.0 0.0 \n", "496.0 33.260161 0.0 0.0 0.0 0.0 \n", "497.0 41.735086 0.0 0.0 0.0 0.0 \n", "498.0 44.944847 0.0 0.0 0.0 0.0 \n", "499.0 41.740483 0.0 0.0 0.0 0.0 \n", "\n", " AB_dihres_2 AB_disfld_2 A_dihedral B_dihedral \n", "time \n", "0.0 0.0 0.0 0.0 0.0 \n", "1.0 0.0 0.0 0.0 0.0 \n", "2.0 0.0 0.0 0.0 0.0 \n", "3.0 0.0 0.0 0.0 0.0 \n", "4.0 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... \n", "495.0 0.0 0.0 0.0 0.0 \n", "496.0 0.0 0.0 0.0 0.0 \n", "497.0 0.0 0.0 0.0 0.0 \n", "498.0 0.0 0.0 0.0 0.0 \n", "499.0 0.0 0.0 0.0 0.0 \n", "\n", "[500 rows x 25 columns]" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# import the trajectory file into a Tre class\n", "tre = traj_tre.Tre(input_value=\"../example_files/Traj_files/RAFE_TI_l0_5.tre\")\n", "tre.get_precalclam()" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "### EDS in TREs" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/bschroed/Documents/projects/PyGromosTools/pygromos/files/trajectory/_general_trajectory.py:296: PerformanceWarning: \n", "your performance may suffer as PyTables will pickle object types that it cannot\n", "map directly to c-types [inferred_type->mixed,key->block2_values] [items->Index(['totals', 'baths', 'bonded', 'nonbonded', 'special', 'eds',\n", " 'precalclam', 'mass', 'temperature', 'volume', 'pressure'],\n", " dtype='object')]\n", "\n", " self.database.to_hdf(\n" ] }, { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>numstates</th>\n", " <th>total_1</th>\n", " <th>nonbonded_1</th>\n", " <th>special_1</th>\n", " <th>offset_1</th>\n", " <th>total_2</th>\n", " <th>nonbonded_2</th>\n", " <th>special_2</th>\n", " <th>offset_2</th>\n", " <th>total_3</th>\n", " <th>...</th>\n", " <th>special_7</th>\n", " <th>offset_7</th>\n", " <th>total_8</th>\n", " <th>nonbonded_8</th>\n", " <th>special_8</th>\n", " <th>offset_8</th>\n", " <th>total_9</th>\n", " <th>nonbonded_9</th>\n", " <th>special_9</th>\n", " <th>offset_9</th>\n", " </tr>\n", " <tr>\n", " <th>time</th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0.00</th>\n", " <td>9.0</td>\n", " <td>-304.241276</td>\n", " <td>-304.241276</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-309.738568</td>\n", " <td>-309.738568</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-286.397004</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-306.757290</td>\n", " <td>-306.757290</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>1.661115e+05</td>\n", " <td>1.661115e+05</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>0.04</th>\n", " <td>9.0</td>\n", " <td>-327.432243</td>\n", " <td>-327.432243</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-343.990987</td>\n", " <td>-343.990987</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-330.156886</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-337.505471</td>\n", " <td>-337.505471</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>2.114028e+05</td>\n", " <td>2.114028e+05</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>0.08</th>\n", " <td>9.0</td>\n", " <td>-342.969913</td>\n", " <td>-342.969913</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-348.338017</td>\n", " <td>-348.338017</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-342.678812</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-343.085575</td>\n", " <td>-343.085575</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>2.335587e+05</td>\n", " <td>2.335587e+05</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>0.12</th>\n", " <td>9.0</td>\n", " <td>-307.787722</td>\n", " <td>-307.787722</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-320.642022</td>\n", " <td>-320.642022</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-275.892803</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-287.546356</td>\n", " <td>-287.546356</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>1.263949e+05</td>\n", " <td>1.263949e+05</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>0.16</th>\n", " <td>9.0</td>\n", " <td>-325.101329</td>\n", " <td>-325.101329</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-333.832261</td>\n", " <td>-333.832261</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-309.882401</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-328.133697</td>\n", " <td>-328.133697</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>3.637117e+05</td>\n", " <td>3.637117e+05</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>0.20</th>\n", " <td>9.0</td>\n", " <td>-341.014069</td>\n", " <td>-341.014069</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-338.126642</td>\n", " <td>-338.126642</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-319.108916</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-331.591241</td>\n", " <td>-331.591241</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>3.426647e+06</td>\n", " <td>3.426647e+06</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>0.24</th>\n", " <td>9.0</td>\n", " <td>-332.591891</td>\n", " <td>-332.591891</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-313.860613</td>\n", " <td>-313.860613</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-270.145527</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-295.307547</td>\n", " <td>-295.307547</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>6.720166e+05</td>\n", " <td>6.720166e+05</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>0.28</th>\n", " <td>9.0</td>\n", " <td>-384.741762</td>\n", " <td>-384.741762</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-379.723111</td>\n", " <td>-379.723111</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-340.573094</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-363.097220</td>\n", " <td>-363.097220</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>6.147874e+04</td>\n", " <td>6.147874e+04</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>0.32</th>\n", " <td>9.0</td>\n", " <td>-341.408526</td>\n", " <td>-341.408526</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-352.793311</td>\n", " <td>-352.793311</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-268.495614</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-327.075935</td>\n", " <td>-327.075935</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>2.863084e+04</td>\n", " <td>2.863084e+04</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>0.36</th>\n", " <td>9.0</td>\n", " <td>-336.573404</td>\n", " <td>-336.573404</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-340.350887</td>\n", " <td>-340.350887</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-238.003947</td>\n", " <td>...</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>-325.957742</td>\n", " <td>-325.957742</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " <td>3.048352e+04</td>\n", " <td>3.048352e+04</td>\n", " <td>0.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "<p>10 rows × 37 columns</p>\n", "</div>" ], "text/plain": [ " numstates total_1 nonbonded_1 special_1 offset_1 total_2 \\\n", "time \n", "0.00 9.0 -304.241276 -304.241276 0.0 0.0 -309.738568 \n", "0.04 9.0 -327.432243 -327.432243 0.0 0.0 -343.990987 \n", "0.08 9.0 -342.969913 -342.969913 0.0 0.0 -348.338017 \n", "0.12 9.0 -307.787722 -307.787722 0.0 0.0 -320.642022 \n", "0.16 9.0 -325.101329 -325.101329 0.0 0.0 -333.832261 \n", "0.20 9.0 -341.014069 -341.014069 0.0 0.0 -338.126642 \n", "0.24 9.0 -332.591891 -332.591891 0.0 0.0 -313.860613 \n", "0.28 9.0 -384.741762 -384.741762 0.0 0.0 -379.723111 \n", "0.32 9.0 -341.408526 -341.408526 0.0 0.0 -352.793311 \n", "0.36 9.0 -336.573404 -336.573404 0.0 0.0 -340.350887 \n", "\n", " nonbonded_2 special_2 offset_2 total_3 ... special_7 offset_7 \\\n", "time ... \n", "0.00 -309.738568 0.0 0.0 -286.397004 ... 0.0 0.0 \n", "0.04 -343.990987 0.0 0.0 -330.156886 ... 0.0 0.0 \n", "0.08 -348.338017 0.0 0.0 -342.678812 ... 0.0 0.0 \n", "0.12 -320.642022 0.0 0.0 -275.892803 ... 0.0 0.0 \n", "0.16 -333.832261 0.0 0.0 -309.882401 ... 0.0 0.0 \n", "0.20 -338.126642 0.0 0.0 -319.108916 ... 0.0 0.0 \n", "0.24 -313.860613 0.0 0.0 -270.145527 ... 0.0 0.0 \n", "0.28 -379.723111 0.0 0.0 -340.573094 ... 0.0 0.0 \n", "0.32 -352.793311 0.0 0.0 -268.495614 ... 0.0 0.0 \n", "0.36 -340.350887 0.0 0.0 -238.003947 ... 0.0 0.0 \n", "\n", " total_8 nonbonded_8 special_8 offset_8 total_9 \\\n", "time \n", "0.00 -306.757290 -306.757290 0.0 0.0 1.661115e+05 \n", "0.04 -337.505471 -337.505471 0.0 0.0 2.114028e+05 \n", "0.08 -343.085575 -343.085575 0.0 0.0 2.335587e+05 \n", "0.12 -287.546356 -287.546356 0.0 0.0 1.263949e+05 \n", "0.16 -328.133697 -328.133697 0.0 0.0 3.637117e+05 \n", "0.20 -331.591241 -331.591241 0.0 0.0 3.426647e+06 \n", "0.24 -295.307547 -295.307547 0.0 0.0 6.720166e+05 \n", "0.28 -363.097220 -363.097220 0.0 0.0 6.147874e+04 \n", "0.32 -327.075935 -327.075935 0.0 0.0 2.863084e+04 \n", "0.36 -325.957742 -325.957742 0.0 0.0 3.048352e+04 \n", "\n", " nonbonded_9 special_9 offset_9 \n", "time \n", "0.00 1.661115e+05 0.0 0.0 \n", "0.04 2.114028e+05 0.0 0.0 \n", "0.08 2.335587e+05 0.0 0.0 \n", "0.12 1.263949e+05 0.0 0.0 \n", "0.16 3.637117e+05 0.0 0.0 \n", "0.20 3.426647e+06 0.0 0.0 \n", "0.24 6.720166e+05 0.0 0.0 \n", "0.28 6.147874e+04 0.0 0.0 \n", "0.32 2.863084e+04 0.0 0.0 \n", "0.36 3.048352e+04 0.0 0.0 \n", "\n", "[10 rows x 37 columns]" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# import the trajectory file into a Tre class\n", "tre = traj_tre.Tre(input_value=\"../example_files/Traj_files/RAFE_eds.tre\")\n", "tre.get_eds()" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## Concatenate and Copy multiple Trajectories" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Trajectories offer a wide range of additional file manipulations. Trajectory classes can be copied (deep) and added to each other to concatenate multiple small simulation pieces into one large trajectory. " ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "tre_copy = traj_tre.Tre(input_value=tre)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(10, 13)" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tre_copy.database.shape" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/bschroed/Documents/projects/PyGromosTools/pygromos/files/trajectory/_general_trajectory.py:180: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n", " new_traj.database = self.database.append(new_data, ignore_index=True)\n" ] } ], "source": [ "tre_combined = tre + tre_copy" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(20, 13)" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tre_combined.database.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the new combined trajectory we have one long trajectory made from the two smaller ones. The length is one element shorter, since normally the last element of the first trajectory and the first element of the second trajectory is the same element. This can be controlled via the option \"skip_new_0=True\" in the add_traj() function which is the core of the \"+\" operator for trajectories. In the following line the default behavior can be seen as a smooth numbering in the TIMESTEPs." ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 0.00\n", "1 0.04\n", "2 0.08\n", "3 0.12\n", "4 0.16\n", "5 0.20\n", "6 0.24\n", "7 0.28\n", "8 0.32\n", "9 0.36\n", "10 0.00\n", "11 0.04\n", "12 0.08\n", "13 0.12\n", "14 0.16\n", "15 0.20\n", "16 0.24\n", "17 0.28\n", "18 0.32\n", "19 0.36\n", "Name: time, dtype: float64" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tre_combined.database.time" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "20 10\n" ] } ], "source": [ "print(len(tre_combined.database), len(tre.database))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.9.10" } }, "nbformat": 4, "nbformat_minor": 4 }