Skip to content

Commit efc2dc2

Browse files
committed
update to figure 2 (#136)
1 parent a0fbd04 commit efc2dc2

File tree

3 files changed

+26
-36
lines changed

3 files changed

+26
-36
lines changed

manuscript/figures/figure_2.pdf

21.5 KB
Binary file not shown.

manuscript/manuscript.tex

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -282,8 +282,8 @@ \subsection{Feature selection}
282282
\includegraphics{figure_2}
283283
\caption{Example analysis of the conformational dynamics of a pentapeptide backbone: (a)~The Trp-Leu-Ala-Leu-Leu pentapeptide in licorice representation~\cite{vmd}.
284284
(b)~The VAMP-2 score indicates which of the tested featurizations contains the highest kinetic variance.
285-
(c)~The sample density projected onto the first two time-lagged independent components (ICs) at lag time $\tau=0.5$~ns shows multiple density maxima and
286-
(d)~the time series of the first two ICs of the first trajectory.}
285+
(c)~The sample free energy projected onto the first two time-lagged independent components (ICs) at lag time $\tau=0.5$~ns shows multiple minima and
286+
(d)~the time series of the first two ICs of the first trajectory show rare jumps.}
287287
\label{fig:io-to-tica}
288288
\end{figure}
289289

@@ -299,7 +299,7 @@ \subsection{Feature selection}
299299
\label{fig:its-and-ck}
300300
\end{figure}
301301

302-
In Markov state modeling our objective is to model the slow dynamics of a molecular process.
302+
In Markov state modeling, our objective is to model the slow dynamics of a molecular process.
303303
In order to approximate the slow dynamics in a statistically efficient manner,
304304
a lower dimensional representation of our simulation data is necessary.
305305
However, the features (e.g. torsion angles, distances or contacts) which best represent the slow dynamical modes of a given molecular system are unknown a priori~\cite{NoeClementiReview}.
@@ -330,8 +330,8 @@ \subsection{Dimensionality reduction}
330330
TICA is a special case of the variational principle~\cite{noe-vac,nueske-vamk} and is designed to find a projection preserving the long-timescale dynamics in the dataset.
331331
Here, performing TICA on the backbone torsions at lag time~$0.5$~ns yields a four dimensional subspace using a~$95\%$ kinetic variance cutoff
332332
(note that we perform a $\cos/\sin$-transformation of the torsions before TICA in order to preserve their periodicity).
333-
The sample density projected onto the first two independent components (ICs) exhibits several maxima (Fig.~\ref{fig:io-to-tica}c).
334-
Discrete jumps between the maxima can be observed by visualizing the transformation of the first trajectory into these ICs (Fig.~\ref{fig:io-to-tica}d).
333+
The sample free energy projected onto the first two independent components (ICs) exhibits several minima (Fig.~\ref{fig:io-to-tica}c).
334+
Discrete jumps between the minima can be observed by visualizing the transformation of the first trajectory into these ICs (Fig.~\ref{fig:io-to-tica}d).
335335
We thus assume that our TICA-transformed backbone torsion features describe one or more metastable processes.
336336

337337
\subsection{Discretization}

notebooks/00-pentapeptide-showcase.ipynb

Lines changed: 21 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,47 +1396,37 @@
13961396
"ax_mol.set_axis_off()\n",
13971397
"ax_mol.imshow(plt.imread('static/pentapeptide-structure.png'))\n",
13981398
"\n",
1399-
"ax_feat_label = fig.add_subplot(gs[2000:3150, 180:1800])\n",
1400-
"ax_feat_upper = fig.add_subplot(gs[2000:2720, 400:1800])\n",
1401-
"ax_feat_lower = fig.add_subplot(gs[2790:3150, 400:1800])\n",
1402-
"for ax in (ax_feat_upper, ax_feat_lower):\n",
1403-
" ax.bar(\n",
1404-
" vamp_bars_plot['labels'],\n",
1405-
" vamp_bars_plot['scores'],\n",
1406-
" yerr=vamp_bars_plot['errors'],\n",
1407-
" color=['C0', 'C1', 'C2'])\n",
1408-
"for key in ('top', 'bottom', 'left', 'right'):\n",
1409-
" ax_feat_label.spines[key].set_visible(False)\n",
1410-
"ax_feat_label.set_ylabel('VAMP2 score')\n",
1411-
"ax_feat_label.set_xticks([])\n",
1412-
"ax_feat_label.set_yticks([])\n",
1413-
"ax_feat_upper.set_title(r'lag time $\\tau$ = {:.1f} ns'.format(vamp_bars_plot['lag'] * 0.1))\n",
1414-
"ax_feat_upper.spines['bottom'].set_visible(False)\n",
1415-
"ax_feat_upper.set_xticks([])\n",
1416-
"ax_feat_upper.set_ylim(2.85, 3.65)\n",
1417-
"ax_feat_lower.spines['top'].set_visible(False)\n",
1418-
"ax_feat_lower.tick_params(axis='x', labelrotation=20)\n",
1419-
"ax_feat_lower.set_ylim(0.0, 0.4)\n",
1420-
"\n",
1421-
"ax_density = fig.add_subplot(gs[2000:3150, 2200:3350])\n",
1422-
"_, _, misc = pyemma.plots.plot_density(\n",
1399+
"ax_feat = fig.add_subplot(gs[2000:3150, 400:1800])\n",
1400+
"ax_feat.bar(\n",
1401+
" vamp_bars_plot['labels'],\n",
1402+
" vamp_bars_plot['scores'],\n",
1403+
" yerr=vamp_bars_plot['errors'],\n",
1404+
" color=['C0', 'C1', 'C2'])\n",
1405+
"ax_feat.set_ylabel('VAMP2 score')\n",
1406+
"ax_feat.set_title(r'lag time $\\tau$ = {:.1f} ns'.format(vamp_bars_plot['lag'] * 0.1))\n",
1407+
"ax_feat.set_ylim(2.75, 3.65)\n",
1408+
"ax_feat.tick_params(axis='x', labelrotation=20)\n",
1409+
"\n",
1410+
"ax_sample_free_energy = fig.add_subplot(gs[2000:3150, 2200:3350])\n",
1411+
"_, _, misc = pyemma.plots.plot_free_energy(\n",
14231412
" *tica_concatenated.T[:2],\n",
1424-
" ax=ax_density,\n",
1413+
" ax=ax_sample_free_energy,\n",
14251414
" cax=fig.add_subplot(gs[1900:1950, 2200:3350]),\n",
14261415
" cbar_orientation='horizontal',\n",
1427-
" logscale=True)\n",
1428-
"misc['cbar'].set_ticks(LogLocator(base=10.0))\n",
1416+
" legacy=False)\n",
1417+
"misc['cbar'].set_label('sample free energy / kT')\n",
1418+
"misc['cbar'].set_ticks(np.arange(9))\n",
14291419
"misc['cbar'].ax.xaxis.set_ticks_position('top')\n",
14301420
"misc['cbar'].ax.xaxis.set_label_position('top')\n",
1431-
"ax_density.set_xlabel('IC 1')\n",
1432-
"ax_density.set_ylabel('IC 2')\n",
1421+
"ax_sample_free_energy.set_xlabel('IC 1')\n",
1422+
"ax_sample_free_energy.set_ylabel('IC 2')\n",
14331423
"\n",
14341424
"x = 0.1 * np.arange(tica_output[0].shape[0])\n",
14351425
"ax_tic1 = fig.add_subplot(gs[3650:4000, 400:3350])\n",
14361426
"ax_tic2 = fig.add_subplot(gs[4000:4350, 400:3350])\n",
14371427
"\n",
1438-
"ax_tic1.plot(x, tica_output[0][:, 0])\n",
1439-
"ax_tic2.plot(x, tica_output[0][:, 1])\n",
1428+
"ax_tic1.plot(x, tica_output[0][:, 0], linewidth=0.25)\n",
1429+
"ax_tic2.plot(x, tica_output[0][:, 1], linewidth=0.25)\n",
14401430
"ax_tic1.set_ylabel('IC 1')\n",
14411431
"ax_tic2.set_ylabel('IC 2')\n",
14421432
"ax_tic2.set_xlabel('time / ns')\n",

0 commit comments

Comments
 (0)