Skip to content

Instantly share code, notes, and snippets.

@dwhswenson
Created October 2, 2018 21:24
Show Gist options
  • Save dwhswenson/9830820dbd45aa44c362d66d8c3b7a13 to your computer and use it in GitHub Desktop.
Save dwhswenson/9830820dbd45aa44c362d66d8c3b7a13 to your computer and use it in GitHub Desktop.
Simple OPS LAMMPS example
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Analysis"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"\n",
"import openpathsampling as paths\n",
"import openpathsampling.engines.lammps\n",
"\n",
"import nglview as nv\n",
"import mdtraj as md\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"storage = paths.AnalysisStorage(\"lammps_lj_saved.nc\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Path length histogram"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11f817d90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist([len(s.active[0].trajectory) for s in storage.steps], bins=25);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Path tree"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg baseProfile=\"full\" class=\"opstree\" height=\"100%\" id=\"pathtree-0\" version=\"1.1\" viewBox=\"-80.00 -22.50 423.00 195.00\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:ev=\"http://www.w3.org/2001/xml-events\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><defs><style type=\"text/css\"><![CDATA[.opstree text, .movetree text {\n",
" alignment-baseline: central;\n",
" font-size: 10px;\n",
" text-anchor: middle;\n",
" font-family: Futura-CondensedMedium;\n",
" font-weight: lighter;\n",
" stroke: none !important;\n",
"}\n",
".opstree .block text, .movetree .block text {\n",
" alignment-baseline: central;\n",
" font-size: 8px;\n",
" text-anchor: middle;\n",
" font-family: Futura-CondensedMedium;\n",
" font-weight: lighter;\n",
" stroke: none !important;\n",
"}\n",
".opstree text.shadow {\n",
" stroke-width: 3;\n",
" stroke: white !important;\n",
"}\n",
".opstree .left.label .shift text {\n",
" text-anchor: end;\n",
"}\n",
".opstree .right.label .shift text {\n",
" text-anchor: start;\n",
"}\n",
".opstree .block text, .movetree .block text {\n",
" fill: white !important;\n",
" stroke: none !important;\n",
"}\n",
".opstree .block {\n",
" stroke: none !important;\n",
"}\n",
".opstree g.block:hover rect {\n",
" opacity: 0.5;\n",
"}\n",
".opstree .repex {\n",
" fill: green;\n",
" stroke: green;\n",
"}\n",
".opstree .extend {\n",
" fill: green;\n",
" stroke: green;\n",
"}\n",
".opstree .truncate {\n",
" fill: green;\n",
" stroke: green;\n",
"}\n",
".opstree .new {\n",
" fill: black;\n",
" stroke: black;\n",
"}\n",
".opstree .unknown {\n",
" fill: gray;\n",
" stroke: gray;\n",
"}\n",
".opstree .hop {\n",
" fill: green;\n",
" stroke: green;\n",
"}\n",
".opstree .correlation {\n",
" fill: black;\n",
" stroke: black;\n",
"}\n",
".opstree .shooting.bw {\n",
" fill: blue;\n",
" stroke: blue;\n",
"}\n",
".opstree .shooting.fw {\n",
" fill: red;\n",
" stroke: red;\n",
"}\n",
".opstree .shooting.overlap {\n",
" fill: #666;\n",
" stroke: #666;\n",
"}\n",
".opstree .reversal {\n",
" fill: gold;\n",
" stroke: gold;\n",
"}\n",
".opstree .virtual {\n",
" opacity: 0.1;\n",
" fill:gray;\n",
" stroke: none;\n",
"}\n",
".opstree line {\n",
" stroke-width: 2px;\n",
"}\n",
".opstree .label {\n",
" fill: black !important;\n",
"}\n",
".opstree .h-connector {\n",
" stroke-width: 0.1px;\n",
" stroke-dasharray: 3 3;\n",
"}\n",
".opstree .rejected {\n",
" opacity: 0.25;\n",
"}\n",
".opstree .level {\n",
" opacity: 0.25;\n",
"}\n",
".opstree .orange {\n",
" fill: orange;\n",
"}\n",
".tableline {\n",
" fill: gray;\n",
" opacity: 0.0;\n",
"}\n",
".tableline:hover {\n",
" opacity: 0.2;\n",
"}\n",
".opstree .left.label g.shift {\n",
" transform: translateX(-6px);\n",
"}\n",
".opstree .right.label g.shift {\n",
" transform: translateX(+6px);\n",
"}\n",
".opstree .infobox text {\n",
" text-anchor: start;\n",
"}\n",
".opstree .shade {\n",
" stroke: none;\n",
"}\n",
"\n",
".movetree .label .shift {\n",
" transform: translateX(-18px);\n",
"}\n",
"\n",
".movetree .label text {\n",
" text-anchor: end;\n",
"}\n",
".movetree .v-connector {\n",
" stroke: black;\n",
"}\n",
".movetree .v-hook {\n",
" stroke: black;\n",
"}\n",
".movetree .h-connector {\n",
" stroke: black;\n",
"}\n",
".movetree .ensembles .head .shift {\n",
" transform: translateY(0px) rotate(270deg) ;\n",
"}\n",
".movetree .ensembles .head text {\n",
" text-anchor: start;\n",
"}\n",
".movetree .connector.input {\n",
" fill: blue;\n",
"}\n",
".movetree .connector.output {\n",
" fill: red;\n",
"}\n",
".movetree .unknown {\n",
" fill: #aaa;\n",
" /*stroke: white;*/\n",
"}\n",
"]]></style></defs><g transform=\"scale(1.0)\"><g class=\"tree\" transform=\"translate(87,15)\"><g class=\"trajectory-label\"><g class=\"unknown left label\" transform=\"translate(0,0)\"><g class=\"shift\"><text x=\"0\" y=\"0\">+</text></g></g><g class=\"shooting left label\" transform=\"translate(42,15)\"><g class=\"shift\"><text x=\"0\" y=\"0\">B</text></g></g><g class=\"shooting left label\" transform=\"translate(41,30)\"><g class=\"shift\"><text x=\"0\" y=\"0\">B</text></g></g><g class=\"shooting right label\" transform=\"translate(174,45)\"><g class=\"shift\"><text x=\"0\" y=\"0\">F</text></g></g><g class=\"shooting right label\" transform=\"translate(194,60)\"><g class=\"shift\"><text x=\"0\" y=\"0\">F</text></g></g><g class=\"shooting right label\" transform=\"translate(201,75)\"><g class=\"shift\"><text x=\"0\" y=\"0\">F</text></g></g><g class=\"shooting right label\" transform=\"translate(187,90)\"><g class=\"shift\"><text x=\"0\" y=\"0\">F</text></g></g><g class=\"shooting left label\" transform=\"translate(-54,105)\"><g class=\"shift\"><text x=\"0\" y=\"0\">B</text></g></g><g class=\"shooting right label\" transform=\"translate(164,120)\"><g class=\"shift\"><text x=\"0\" y=\"0\">F</text></g></g><g class=\"shooting right label\" transform=\"translate(223,135)\"><g class=\"shift\"><text x=\"0\" y=\"0\">F</text></g></g><g class=\"shooting right label\" transform=\"translate(151,150)\"><g class=\"shift\"><text x=\"0\" y=\"0\">F</text></g></g></g><g class=\"shooting-hooks\"><line class=\"shooting bw connection v-connector\" x1=\"70.5\" x2=\"70.5\" y1=\"0.0\" y2=\"15.0\"/><line class=\"shooting bw connection v-connector\" x1=\"91.5\" x2=\"91.5\" y1=\"0.0\" y2=\"30.0\"/><line class=\"shooting fw connection v-connector\" x1=\"86.5\" x2=\"86.5\" y1=\"30.0\" y2=\"45.0\"/><line class=\"shooting fw connection v-connector\" x1=\"155.5\" x2=\"155.5\" y1=\"45.0\" y2=\"60.0\"/><line class=\"shooting fw connection v-connector\" x1=\"170.5\" x2=\"170.5\" y1=\"60.0\" y2=\"75.0\"/><line class=\"shooting fw connection v-connector\" x1=\"159.5\" x2=\"159.5\" y1=\"60.0\" y2=\"90.0\"/><line class=\"shooting bw connection v-connector\" x1=\"64.5\" x2=\"64.5\" y1=\"30.0\" y2=\"105.0\"/><line class=\"shooting fw connection v-connector\" x1=\"158.5\" x2=\"158.5\" y1=\"60.0\" y2=\"120.0\"/><line class=\"shooting fw connection v-connector\" x1=\"88.5\" x2=\"88.5\" y1=\"45.0\" y2=\"135.0\"/><line class=\"shooting fw connection v-connector\" x1=\"-29.5\" x2=\"-29.5\" y1=\"105.0\" y2=\"150.0\"/></g><g class=\"snapshot-blocks\"><g class=\"unknown new block\"><rect height=\"9.0\" width=\"139.0\" x=\"-0.5\" y=\"-4.5\"/><circle cx=\"138.5\" cy=\"0\" r=\"0.0\"/><text x=\"69.0\" y=\"0\"/></g><g class=\"shooting bw block\"><rect height=\"9.0\" width=\"29.0\" x=\"41.5\" y=\"10.5\"/><circle cx=\"70.5\" cy=\"15\" r=\"0.0\"/><text x=\"56.0\" y=\"15\"/></g><g class=\"shooting bw block\"><rect height=\"9.0\" width=\"51.0\" x=\"40.5\" y=\"25.5\"/><circle cx=\"91.5\" cy=\"30\" r=\"0.0\"/><text x=\"66.0\" y=\"30\"/></g><g class=\"shooting fw block\"><rect height=\"9.0\" width=\"88.0\" x=\"86.5\" y=\"40.5\"/><circle cx=\"174.5\" cy=\"45\" r=\"0.0\"/><text x=\"130.5\" y=\"45\"/></g><g class=\"shooting fw block\"><rect height=\"9.0\" width=\"39.0\" x=\"155.5\" y=\"55.5\"/><circle cx=\"194.5\" cy=\"60\" r=\"0.0\"/><text x=\"175.0\" y=\"60\"/></g><g class=\"shooting fw block\"><rect height=\"9.0\" width=\"31.0\" x=\"170.5\" y=\"70.5\"/><circle cx=\"201.5\" cy=\"75\" r=\"0.0\"/><text x=\"186.0\" y=\"75\"/></g><g class=\"shooting fw block\"><rect height=\"9.0\" width=\"28.0\" x=\"159.5\" y=\"85.5\"/><circle cx=\"187.5\" cy=\"90\" r=\"0.0\"/><text x=\"173.5\" y=\"90\"/></g><g class=\"shooting bw block\"><rect height=\"9.0\" width=\"119.0\" x=\"-54.5\" y=\"100.5\"/><circle cx=\"64.5\" cy=\"105\" r=\"0.0\"/><text x=\"5.0\" y=\"105\"/></g><g class=\"shooting fw block\"><rect height=\"9.0\" width=\"6.0\" x=\"158.5\" y=\"115.5\"/><circle cx=\"164.5\" cy=\"120\" r=\"0.0\"/><text x=\"161.5\" y=\"120\"/></g><g class=\"shooting fw block\"><rect height=\"9.0\" width=\"135.0\" x=\"88.5\" y=\"130.5\"/><circle cx=\"223.5\" cy=\"135\" r=\"0.0\"/><text x=\"156.0\" y=\"135\"/></g><g class=\"shooting fw block\"><rect height=\"9.0\" width=\"181.0\" x=\"-29.5\" y=\"145.5\"/><circle cx=\"151.5\" cy=\"150\" r=\"0.0\"/><text x=\"61.0\" y=\"150\"/></g></g></g><g class=\"legend\"><g class=\"legend-correlation\" transform=\"translate(0)\"><g class=\"head label\" transform=\"translate(0,0)\"><g class=\"shift\"><text x=\"0\" y=\"0\">cor</text></g></g><g class=\"correlation v-region\"><line x1=\"0\" x2=\"0\" y1=\"7.5\" y2=\"52.5\"/><circle cx=\"0\" cy=\"7.5\" r=\"2.24\"/><line x1=\"-6.4\" x2=\"6.4\" y1=\"7.5\" y2=\"7.5\"/><circle cx=\"0\" cy=\"52.5\" r=\"2.24\"/><line x1=\"-6.4\" x2=\"6.4\" y1=\"52.5\" y2=\"52.5\"/><text x=\"-6.4\" y=\"30.0\"/></g><g class=\"correlation v-region\"><line x1=\"0\" x2=\"0\" y1=\"52.5\" y2=\"157.5\"/><circle cx=\"0\" cy=\"52.5\" r=\"2.24\"/><line x1=\"-6.4\" x2=\"6.4\" y1=\"52.5\" y2=\"52.5\"/><circle cx=\"0\" cy=\"157.5\" r=\"2.24\"/><line x1=\"-6.4\" x2=\"6.4\" y1=\"157.5\" y2=\"157.5\"/><text x=\"-6.4\" y=\"105.0\"/></g><g class=\"correlation v-region\"><line x1=\"0\" x2=\"0\" y1=\"157.5\" y2=\"172.5\"/><circle cx=\"0\" cy=\"157.5\" r=\"2.24\"/><line x1=\"-6.4\" x2=\"6.4\" y1=\"157.5\" y2=\"157.5\"/><text x=\"-6.4\" y=\"165.0\"/></g></g><g class=\"legend-step\" transform=\"translate(-32)\"><g class=\"head label\" transform=\"translate(0,0)\"><g class=\"shift\"><text x=\"0\" y=\"0\">step</text></g></g><g class=\"label\" transform=\"translate(0,15)\"><g class=\"shift\"><text x=\"0\" y=\"0\">0</text></g></g><g class=\"label\" transform=\"translate(0,30)\"><g class=\"shift\"><text x=\"0\" y=\"0\">1</text></g></g><g class=\"label\" transform=\"translate(0,45)\"><g class=\"shift\"><text x=\"0\" y=\"0\">6</text></g></g><g class=\"label\" transform=\"translate(0,60)\"><g class=\"shift\"><text x=\"0\" y=\"0\">7</text></g></g><g class=\"label\" transform=\"translate(0,75)\"><g class=\"shift\"><text x=\"0\" y=\"0\">11</text></g></g><g class=\"label\" transform=\"translate(0,90)\"><g class=\"shift\"><text x=\"0\" y=\"0\">15</text></g></g><g class=\"label\" transform=\"translate(0,105)\"><g class=\"shift\"><text x=\"0\" y=\"0\">16</text></g></g><g class=\"label\" transform=\"translate(0,120)\"><g class=\"shift\"><text x=\"0\" y=\"0\">17</text></g></g><g class=\"label\" transform=\"translate(0,135)\"><g class=\"shift\"><text x=\"0\" y=\"0\">19</text></g></g><g class=\"label\" transform=\"translate(0,150)\"><g class=\"shift\"><text x=\"0\" y=\"0\">20</text></g></g><g class=\"label\" transform=\"translate(0,165)\"><g class=\"shift\"><text x=\"0\" y=\"0\">24</text></g></g></g></g><g class=\"hovering-blocks\"><rect class=\"tableline\" height=\"13.5\" width=\"423.0\" x=\"-80.0\" y=\"8.25\"/><rect class=\"tableline\" height=\"13.5\" width=\"423.0\" x=\"-80.0\" y=\"23.25\"/><rect class=\"tableline\" height=\"13.5\" width=\"423.0\" x=\"-80.0\" y=\"38.25\"/><rect class=\"tableline\" height=\"13.5\" width=\"423.0\" x=\"-80.0\" y=\"53.25\"/><rect class=\"tableline\" height=\"13.5\" width=\"423.0\" x=\"-80.0\" y=\"68.25\"/><rect class=\"tableline\" height=\"13.5\" width=\"423.0\" x=\"-80.0\" y=\"83.25\"/><rect class=\"tableline\" height=\"13.5\" width=\"423.0\" x=\"-80.0\" y=\"98.25\"/><rect class=\"tableline\" height=\"13.5\" width=\"423.0\" x=\"-80.0\" y=\"113.25\"/><rect class=\"tableline\" height=\"13.5\" width=\"423.0\" x=\"-80.0\" y=\"128.25\"/><rect class=\"tableline\" height=\"13.5\" width=\"423.0\" x=\"-80.0\" y=\"143.25\"/><rect class=\"tableline\" height=\"13.5\" width=\"423.0\" x=\"-80.0\" y=\"158.25\"/></g></g></svg>"
],
"text/plain": [
"<IPython.core.display.SVG object>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import SVG\n",
"import openpathsampling.visualize as ops_vis\n",
"\n",
"tree = ops_vis.PathTree(\n",
" storage.steps[:25],\n",
" ops_vis.ReplicaEvolution(replica=0)\n",
")\n",
"\n",
"tree.options.css['scale_x'] = 1\n",
"SVG(tree.svg())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Trajectory Movie"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "3a46df114b7a4c218ce3295a2ce65c5a",
"version_major": 2,
"version_minor": 0
},
"text/html": [
"<p>Failed to display Jupyter Widget of type <code>NGLWidget</code>.</p>\n",
"<p>\n",
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
" that the widgets JavaScript is still loading. If this message persists, it\n",
" likely means that the widgets JavaScript library is either not installed or\n",
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n",
" Widgets Documentation</a> for setup instructions.\n",
"</p>\n",
"<p>\n",
" If you're reading this message in another frontend (for example, a static\n",
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n",
" it may mean that your frontend doesn't currently support widgets.\n",
"</p>\n"
],
"text/plain": [
"NGLWidget(count=545)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"traj = storage.steps[900].active[0].trajectory\n",
"view = nv.show_mdtraj(traj.to_mdtraj().center_coordinates())\n",
"view.add_spacefill(\"all\", color=\"blue\")\n",
"view"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## New CV for cluster size\n",
"\n",
"Because all the snapshots are saved, I can create a new collective variable for analysis *after* the expensive simulation!"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def largest_cluster(snapshot):\n",
" import mdtraj as md\n",
" import networkx as nx\n",
" mdt = paths.Trajectory([snapshot]).to_mdtraj()\n",
" neighbors = md.compute_neighborlist(mdt, cutoff=1.4)\n",
" pairs = {frozenset({i, n})\n",
" for i, neighbs in enumerate(neighbors) \n",
" for n in neighbs}\n",
" graph = nx.Graph()\n",
" graph.add_edges_from(pairs)\n",
" largest = max(nx.connected_components(graph))\n",
" return len(largest)\n",
"\n",
"max_cluster_size = paths.FunctionCV(\"max_cluster_size\", largest_cluster)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x124e52250>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(max_cluster_size(traj));"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Path density plot\n",
"\n",
"We'll plot potential energy along the $x$-axis, and largest cluster size along the $y$-axis.\n",
"\n",
"All trajectories must go from left to right in order to connect the two states. The question is how much spread there is along the vertical axis."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"potential_energy = storage.cvs['ops_cv_pe']"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 10min 59s, sys: 5.42 s, total: 11min 5s\n",
"Wall time: 21min 1s\n"
]
}
],
"source": [
"%%time\n",
"path_density = paths.PathDensityHistogram(\n",
" cvs=[potential_energy, max_cluster_size],\n",
" left_bin_edges=(0,0),\n",
" bin_widths=(1,1)\n",
")\n",
"\n",
"path_dens_counter = path_density.histogram([s.active[0].trajectory \n",
" for s in storage.steps])"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x125026310>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plotter = paths.numerics.HistogramPlotter2D(path_density)\n",
"\n",
"plotter.plot(cmap='Blues', xlim=(-35.0, -1.0), ylim=(0.0, 16.0))\n",
"plt.xlabel(\"Energy ($\\epsilon$)\")\n",
"plt.ylabel(\"Largest cluster (particles)\")\n",
"plotter.plot_trajectory(traj, 'r', lw=0.5)\n",
"plt.savefig(\"path_density.pdf\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The plot also shows a representative trajectory, in red."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.15"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment