Added monte-carlo.asy figure (and the epsdice package it depends on).
authorW. Trevor King <wking@drexel.edu>
Mon, 15 Mar 2010 00:10:22 +0000 (20:10 -0400)
committerW. Trevor King <wking@drexel.edu>
Mon, 15 Mar 2010 00:19:39 +0000 (20:19 -0400)
Added a second pass through BibTeX to pick up any references in
the "note" field.  There don't seem to be any new inclusions after
that point.

Corrected press92 key (had been 02.  Oops :p).

Relabeled eq:model-psd.  We don't fit the post-equipartition theorem
version (eq:DHO-psd), because we're preparing to test the fit, and
we don't gain anything by plugging in a few more scaling factors.

17 files changed:
tex/Makefile
tex/src/cantilever-calib/main.bib
tex/src/cantilever-calib/overview.tex
tex/src/cantilever-calib/solve_general.tex
tex/src/cantilever/methods.tex
tex/src/figures/schematic/Makefile
tex/src/figures/schematic/monte-carlo.asy [new file with mode: 0644]
tex/src/packages.tex
tex/src/packages/Makefile
tex/src/packages/dice.eps [new file with mode: 0644]
tex/src/packages/dice.pdf [new file with mode: 0644]
tex/src/packages/epsdice.cfg [new file with mode: 0644]
tex/src/packages/epsdice.sty [new file with mode: 0644]
tex/src/root.bib
tex/src/root.tex
tex/src/sawsim/introduction.tex
tex/src/sawsim/methods.tex

index ab27c3dd6c8363178cdd654ce60abd3d496a4d9f..ea80dbf28b0245bce9e43f93c762df54ffcd9633 100644 (file)
@@ -5,6 +5,7 @@ thesis.pdf : build
        (cd ./build && $(LATEX) root)
        (cd ./build && $(LATEX) root)
        (cd ./build && bibtex root)
+       (cd ./build && bibtex root)
        (cd ./build && makeindex root.nlo -s nomencl.ist -o root.nls)
        (cd ./build && makeindex root.idx)
        (cd ./build && $(LATEX) root)
index debadbfcf358e46f7667b72f941a4921b2867fb4..6ee65ef90c6cf50ad65659713c9730e8fc4091b1 100644 (file)
 }
 
 @Inbook{parseval,
-  crossref = "press02",
+  crossref = "press92",
   chapter = 12,
   pages = 498,
   note = "See Eq.~12.0.13",
 }
 
 @Inbook{PSD,
-  crossref = "press02",
+  crossref = "press92",
   chapter = 12,
   pages = 498,
   note = "See Eq.~12.0.14",
 }
 
 @Inbook{wiener-khinchin,
-  crossref = "press02",
+  crossref = "press92",
   chapter = 12,
   pages = 498,
   note = "See Eq.~12.0.12",
index 9024774c41eb5578673f4d48649ef3486fe56e56..c02f6e2c0ed3ccd8894f2130de1ea195e7a857ef 100644 (file)
@@ -78,11 +78,9 @@ predicted \PSD\ for a damped harmonic oscillator (\cref{eq:model-psd})
 \end{align}
 \index{Damped harmonic oscillator}
 where $G_1\equiv G_0/m^2$, $\omega_0$, and $\beta$ are used as the
-fitting parameters (see \cref{eq:model-psd}).  The variance of $x(t)$
-is then given by \cref{eq:DHO-var}
-\index{$\beta$}
-\index{$\gamma$}
-
+fitting parameters (see \cref{eq:model-psd}).%
+\index{$\beta$}\index{$\gamma$} The variance of $x(t)$ is then given
+by \cref{eq:DHO-var}
 \begin{equation}
   \avg{x(t)^2} = \frac{\pi G_1}{2\beta\omega_0^2} \;,
 \end{equation}
index 27342254ef577ebd7151d54a29bb99229e6c8543..17028ae2584d513d7dc88cda48fce6ae28dfb1b7 100644 (file)
@@ -31,6 +31,7 @@ We compute the \PSD\ by plugging \cref{eq:DHO-xmag} into \cref{eq:psd-def}
 Plugging \cref{eq:GOdef} into \cref{eq:DHO-psd-F} we have
 \begin{equation}
   \PSD(x, \omega) = \frac{G_0/m^2}{(\omega_0^2-\omega^2)^2 +\beta^2\omega^2}\;.
+     \label{eq:model-psd}
 \end{equation}
 Integrating over positive $\omega$ to find the total power per unit time yields
 \begin{align}
index 731c9ab1bc06701ae5f2caec3b73c56c8f2037ec..312b0d00363c920f856af3b8c15b06c296bdce39 100644 (file)
@@ -2,6 +2,7 @@
 
 \subparagraph*{}\label{sec:I27}
 The experiments were carried out on octomers of I27 (\cref{fig:I27}).
+\nomenclature{I27}{Immunoglobulin-like domain 27 from human Titin}\index{I27}
 I27 is a model protein that has been used in mechanical unfolding
 experiments since the first use of synthetic
 chains\citep{carrion-vazquez99b,TODO}.  It was used here because it is
index 73d1d0ccda6758763f714fe5c7c8f12ccc4d5579..0c263daa18ed9649d8ee981285a4e247b28c9a25 100644 (file)
@@ -3,7 +3,7 @@ ASYPROCESS = ../asy/asyprocess \
   --pretex='\documentclass{drexel-thesis} \input{packages}' \
   --
 
-FIGS = unfolding afm landscape-cant
+FIGS = unfolding afm landscape-cant monte-carlo
 
 all : $(FIGS:%=%_.tex)
 
diff --git a/tex/src/figures/schematic/monte-carlo.asy b/tex/src/figures/schematic/monte-carlo.asy
new file mode 100644 (file)
index 0000000..2d14fc8
--- /dev/null
@@ -0,0 +1,189 @@
+// A die roll decides which of two doors to enter.
+
+//import unicode;
+//from three access rotate;
+
+/* Copy three.asy's relevant rotate function, since including three
+ * adds an uneccessary movie15 LaTeX dependency.
+ */
+transform3 rotate(real angle, triple v)
+{
+  v=unit(v);
+  real x=v.x, y=v.y, z=v.z;
+  real s=Sin(angle), c=Cos(angle), t=1-c;
+  return new real[][] {
+    {t*x^2+c,   t*x*y-s*z, t*x*z+s*y, 0},
+      {t*x*y+s*z, t*y^2+c,   t*y*z-s*x, 0},
+        {t*x*z-s*y, t*y*z+s*x, t*z^2+c,   0},
+          {0,         0,         0,         1}};
+}
+
+struct Door {
+  pair center;
+  real angle;
+  Label L;
+  real width = 3cm;
+  real aspect_ratio = (1+sqrt(5))/2; // Golden ratio
+  real knob_ratio = 0.10;
+  triple inward = (0, 0.4, -1); // x component must be zero for current implementation.
+
+  void draw() {
+    picture p; // the door panel
+    guide g = yscale(this.aspect_ratio)*scale(this.width)*shift((-0.5,-0.5))*
+      unitsquare;
+    fill(p, g, white);
+    label(p, Label(this.L, (0,0), embed=Scale), (0,0));
+    p = shift((-this.width/2.0,0))*xscale(Cos(this.angle))*rotate(-90)*
+      slant(-unit(this.inward).y*Sin(this.angle))*
+      rotate(90)*shift((this.width/2.0,0))*
+      p; // open the door if angle > 0
+    clip(p, g);
+    fill(shift(this.center)*g); // fill the hole
+    add(p, this.center);        // add the door panel
+    draw(shift(this.center)*g); // outline the hole again
+  }
+
+  void operator init (pair center=(0,0), Label L="", real angle=0) {
+    this.center = center;
+    this.L = L;
+    this.angle = angle;
+  }
+}
+
+struct Die {
+  pair center;
+  int top;
+  int left;
+  bool righthanded = true;
+  real side = 1cm;
+  real dot_ratio = 0.2;
+  triple up = (0, 1, 0.4); // up, but tilted out of the page
+  real theta = -20;
+  pair[][] pips;
+  
+  int right() {
+    /* It is traditional to combine pairs of numbers that total seven
+     * to opposite faces; this implies that at one vertex the faces 1,
+     * 2 and 3 intersect. It leaves one other abstract design choice:
+     * the faces representing 1, 2 and 3 respectively can be placed in
+     * either clockwise or counterclockwise order about this
+     * vertex. If the 1, 2 and 3 faces run counterclockwise around
+     * their common vertex, the die is called "right handed"; if they
+     * run clockwise it is called "left handed". Standard modern
+     * Western dice are right-handed, whereas Chinese dice are often
+     * left-handed.
+     *  - http://en.wikipedia.org/wiki/Dice
+     */
+    int little_top = min(this.top, 7-this.top);
+    int little_left = min(this.left, 7-this.left);
+    int little_right = 6 - little_top - little_left;
+    bool righthanded;
+    int little_ccw[] = {little_top, little_left, little_right};
+    int i = 0;
+    little_ccw.cyclic = true;
+    while (little_ccw[i] != 1 && i < 3)  i += 1;
+    if (i == 3)  return -1;
+    if (little_ccw[i+1] == 2)      righthanded = true;
+    else                           righthanded = false;
+    if (this.top != little_top)    righthanded = !righthanded;
+    if (this.left != little_left)  righthanded = !righthanded;
+    if (righthanded == this.righthanded)  return little_right;
+    return 7-little_right;
+  }
+
+  void setup_pips() {
+    real d = 1.0/3.5;
+    this.pips = new pair[7][];
+    this.pips[0] = null;
+    this.pips[1].push((0,0));
+    this.pips[2].push((-d,d));
+    this.pips[2].push((d,-d));
+    this.pips[3] = copy(this.pips[2]);
+    this.pips[3].push((0,0));
+    this.pips[4] = copy(this.pips[2]);
+    this.pips[4].push((d,d));
+    this.pips[4].push((-d,-d));
+    this.pips[5] = copy(this.pips[4]);
+    this.pips[5].push((0,0));
+    this.pips[6] = copy(this.pips[4]);
+    this.pips[6].push((-d,0));
+    this.pips[6].push((d,0));
+  }
+
+  // z coordinate in face unitvectors will end up facing this.up
+  pair transform(pair face_coords, triple face_x, triple face_y) {
+    triple face_z = cross(unit(face_x), unit(face_y));
+    triple f_c = face_coords.x*face_x + face_coords.y*face_y +0.5*face_z;
+    triple u = cross(unit(this.up), (0,0,1));
+    if (length(u) > sqrtEpsilon) {
+      // rotate z coordinate to point along this.up
+      f_c = rotate(-aSin(length(u)), u) * f_c;
+    }
+    triple c = rotate(this.theta, this.up) * f_c;
+    return shift(this.center)*scale(this.side)*(c.x, c.y);
+  }
+
+  guide transform(guide face_coords, triple face_x, triple face_y) {
+    guide g;
+    pair p;
+    pair[] c; // for holding Bezier control points
+    for (int i=0; i < length(face_coords); ++i) {
+      p = this.transform(point(face_coords, i), face_x, face_y);
+      if (i == 0) {
+       g = g--p;
+      } else {
+       c = controlSpecifier(face_coords, i-1); // {outgoing, incoming)
+       c[0] = this.transform(c[0], face_x, face_y);
+       c[1] = this.transform(c[1], face_x, face_y);
+       g = g..controls c[0] and c[1]..p;
+      }
+    }
+    if (cyclic(face_coords)) {
+      c = controlSpecifier(face_coords, -1);
+      c[0] = this.transform(c[0], face_x, face_y);
+      c[1] = this.transform(c[1], face_x, face_y);
+      g = g..controls c[0] and c[1]..cycle;
+    }
+    return g;
+  }
+
+  void draw_pip(pair z, triple face_x, triple face_y) {
+    fill(this.transform(shift(z)*scale(this.dot_ratio/2.0)*unitcircle,
+                       face_x, face_y));
+  }
+
+  /* azimuth = 0, elevation=90  ->  facing up
+   * azimuth = 0, elevation=0   ->  facing out of the page
+   * azimuth = 90, elevation=0  ->  facing right
+   */
+  void draw_face(int number, triple face_x, triple face_y) {
+    filldraw(this.transform(shift((-0.5,-0.5))*unitsquare, face_x, face_y),
+            white);
+    for (pair z : this.pips[number])
+      this.draw_pip(z, face_x, face_y);
+  }
+
+  void draw() {
+    this.draw_face(this.top, face_x=(1,0,0), face_y=(0,1,0));
+    this.draw_face(this.left, face_x=(1,0,0), face_y=(0,0,1));
+    this.draw_face(this.right(), face_x=(0,0,-1), face_y=(0,1,0));
+  }
+
+  void operator init (pair center=(0,0), int top=1, int left=2) {
+    this.center = center;
+    this.top = top;
+    this.left = left;
+    this.setup_pips();
+  }
+}
+
+Door L = Door((-2cm,0),
+             L=minipage("\centering{\Large Unfold}\\$P=0.\bar{3}$\\(\epsdice{1}\epsdice{2})"));
+Door R = Door((2cm,0),
+             L=minipage("\centering{\Large Stay folded}\\$Q=1-P$\\(\epsdice{3}\epsdice{4}\epsdice{5}\epsdice{6})"),
+             angle=30);
+Die d = Die((-0.3cm, -2.5cm), top=3, left=5);
+
+L.draw();
+R.draw();
+d.draw();
index 22f0fe3520a25762ee4bf1d6ff0d52ac5bcd0e2d..cb2d2abbb2797ac694d3f7336e4b28e445218a19 100644 (file)
@@ -2,6 +2,8 @@
 % titles would overlap.
 \fancyfoot[RE,LO]{}
 
+%\usepackage[utf8]{inputenc} % Allow UTF-8 characters in input files
+
 \usepackage[super,sort&compress,comma]{natbib} % fancy citation extensions
 % super selects citations in superscript mode
 % sort&compress automatically sorts and compresses compound citations (\citep{a,b,...})
@@ -59,5 +61,7 @@
 
 \usepackage{asyfig}       % more fancy graphics ;).
 
+\usepackage{epsdice}      % dice-face font
+
 \usepackage{wtk_cmmds}    % common personal macros, in ~/texmf/tex/latex/
 \input{local_cmmds}
index 9bbb924d491b14a52a95d8fea3682ca8c3a55730..53ad8afa67661c184181c9e3350fed52f241e117 100644 (file)
@@ -1,12 +1,10 @@
-PACKAGES = $(shell ls *.sty) $(shell ls *.ist)
+PACKAGES = $(shell ls *.sty) $(shell ls *.ist) $(shell ls *.cfg) \
+       $(shell ls *.pdf) $(shell ls *.eps)
 TARGETS = $(PACKAGES:%=../%)
 
 all : $(TARGETS)
 
-../%.sty : %.sty
-       (cd ../ ; ln -s packages/$<)
-
-../%.ist : %.ist
+../% : %
        (cd ../ ; ln -s packages/$<)
 
 clean :
diff --git a/tex/src/packages/dice.eps b/tex/src/packages/dice.eps
new file mode 100644 (file)
index 0000000..c9ba876
--- /dev/null
@@ -0,0 +1,15 @@
+%!PS-Adobe-2.0 EPSF-1.2
+%%BoundingBox: 0 0 258 86
+/frame { /n exch def /xoffset n 1 sub 43 mul def gsave newpath
+xoffset yoffset translate 32 5 bw sub moveto 32 10 r -90 0 arc
+37 bw add 32 lineto 32 32 r 0 90 arc 10 37 bw add lineto
+10 32 r 90 180 arc 5 bw sub 10 lineto 10 10 r 180 270 arc closepath
+bw 0 eq { stroke } { fill } ifelse grestore } def
+/dot { /y exch def /x exch def /n exch def /xoffset n 1 sub 43
+mul def gsave newpath xoffset yoffset translate x 8 mul 5 add y 8 mul
+5 add 3.5 0 360 arc closepath bw setgray fill grestore } def
+2 setlinewidth 0 1 1 { /bw exch def /yoffset bw 43 mul def /r 5 bw
+add def 0 setgray 1 1 6 { frame } for 2 1 6 { dup 1 2 3 { dup dot }
+for } for 1 2 5 { 2 2 dot } for 4 1 6 { dup 1 3 dot 3 1 dot } for
+1 2 3 { 6 exch 2 dot } for } for
+%%EOF
diff --git a/tex/src/packages/dice.pdf b/tex/src/packages/dice.pdf
new file mode 100644 (file)
index 0000000..8f758ae
Binary files /dev/null and b/tex/src/packages/dice.pdf differ
diff --git a/tex/src/packages/epsdice.cfg b/tex/src/packages/epsdice.cfg
new file mode 100644 (file)
index 0000000..c4f5e36
--- /dev/null
@@ -0,0 +1 @@
+\def\dicefile{dice}
diff --git a/tex/src/packages/epsdice.sty b/tex/src/packages/epsdice.sty
new file mode 100644 (file)
index 0000000..0540f7b
--- /dev/null
@@ -0,0 +1,86 @@
+%%
+%% This is file `epsdice.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% epsdice.dtx  (with options: `package')
+%% 
+%% This is a generated file; it is part of the `epsdice' package.
+%% 
+%% Copyright (c) 2007  Thomas A. Heim
+%% 
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License (LPPL) distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt; either
+%% version 1 of the License, or any later version.
+%% 
+%%   This file is distributed in the hope that it will be useful,
+%%   but WITHOUT ANY WARRANTY; without even the implied warranty of
+%%   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+%% 
+%%   Bug reports ON UNMODIFIED VERSIONS of this package, or
+%%   suggestions for improvement and additional features
+%%   should be directed to the author (thomas.heim@unibas.ch)
+%% 
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{epsdice}[2007/02/15 by Thomas Heim (v. 2.1)]
+\RequirePackage{graphicx}
+\RequirePackage{ifthen}
+\InputIfFileExists{epsdice.cfg}{}{\def\dicefile{dice}}
+\newcounter{eps@face}
+\newcommand*\epsdice[2][white]{%
+\setcounter{eps@face}{\number #2}%
+\ifthenelse{\value{eps@face}>6}{\theeps@face\setcounter{eps@face}{0}}{}%
+\ifthenelse{\value{eps@face}<0}{\theeps@face\setcounter{eps@face}{0}}{}%
+\ifthenelse {\equal{#1}{black}} {\addtocounter{eps@face}{6}} {}%
+\eps@dice{\value{eps@face}}}
+\newcommand*\eps@dice[1]{%
+\setcounter{eps@face}{\number #1}%
+\ifcase\value{eps@face}%
+  \PackageError{EPSDICE}{%
+Argument is not a number, or its value\MessageBreak
+lies outside the allowed range for dice}{%
+Make sure the argument is either 1, 2, 3, 4, 5, or 6.\MessageBreak
+-- Just go on and I'll write whatever you typed;\MessageBreak
+   the output may not make much sense, though}%
+\or
+  \includegraphics[height=1.75ex,viewport= 3 4 38 39,%
+  clip=true]{\dicefile}%
+\or
+  \includegraphics[height=1.75ex,viewport= 46 4 81 39,%
+  clip=true]{\dicefile}%
+\or
+  \includegraphics[height=1.75ex,viewport= 89 4 124 39,%
+  clip=true]{\dicefile}%
+\or
+  \includegraphics[height=1.75ex,viewport= 132 4 167 39,%
+  clip=true]{\dicefile}%
+\or
+  \includegraphics[height=1.75ex,viewport= 175 4 210 39,%
+  clip=true]{\dicefile}%
+\or
+  \includegraphics[height=1.75ex,viewport= 218 4 253 39,%
+  clip=true]{\dicefile}%
+\or
+  \includegraphics[height=1.75ex,viewport= 3 47 38 82,%
+  clip=true]{\dicefile}%
+\or
+  \includegraphics[height=1.75ex,viewport= 46 47 81 82,%
+  clip=true]{\dicefile}%
+\or
+  \includegraphics[height=1.75ex,viewport= 89 47 124 82,%
+  clip=true]{\dicefile}%
+\or
+  \includegraphics[height=1.75ex,viewport= 132 47 167 82,%
+  clip=true]{\dicefile}%
+\or
+  \includegraphics[height=1.75ex,viewport= 175 47 210 82,%
+  clip=true]{\dicefile}%
+\or
+  \includegraphics[height=1.75ex,viewport= 218 47 253 82,%
+  clip=true]{\dicefile}%
+\fi}
+\endinput
+%%
+%% End of file `epsdice.sty'.
index f9d2413ea14b84640e37a2252e4c075404481802..47583a27ab4361b42765f817c96abd055cdedb48 100644 (file)
@@ -54,6 +54,8 @@
 @String{BPJ = "Biophys. J."}
 @String{BIOSENSE = "Biosensors and Bioelectronics"}
 @String{EMBO = "EMBO Rep."}
+@String{IJBMM = "Int. J. of Bio. Macromol."}
+%@String{IJBMM = "International Journal of Biological Macromolecules"}
 @String{JCS = "J. Cell Sci."}
 %String{JCS = "Journal of Cell Science"}
 @String{JCP = "The Journal of Chemical Physics"}
 @String{RKapon = "Kapon, Ruti"}
 @String{MKarplus = "Karplus, Martin"}
 @String{FKienberger = "Kienberger, Ferry"}
+@String{WKing = "King, William Trevor"}
 @String{DKlimov = "Klimov, Dmitri K."}
 @String{AKrammer = "Krammer, Andre"}
 @String{MKulke = "Kulke, Michael"}
 @String{RStark = "Stark, R. W."}
 @String{CStroh = "Stroh, Cordula"}
 @String{TStrunz = "Strunz, Torsten"}
+@String{MSu = "Su, Meihong"}
 @String{ASzabo = "Szabo, Attila"}
 @String{DTalaga = "Talaga, David S."}
 @String{JTang = "Tang, Jianyong"}
   note =         "Good discussion of the effect of correlation time on
                  calibration. Excellent detail on power spectrum
                  derivation and thermal noise for extremely overdamped
-                 oscillators in Appendix A (references \citet{reif65}).
+                 oscillators in Appendix A (references \citet{rief65}).
                  References work on deconvolving thermal noise from
                  other noise\citep{cowan98}",
 }
 
-@Book{press02,
+@Book{press92,
   title =        "Numerical Recipies in {C}: The Art of Scientific
                  Computing",
   author =       "W. Press and S. Teukolsky and W. Vetterling and B.
@@ -7702,10 +7706,62 @@ url = "http://www.sciencedirect.com/science/article/B6WBK-4F5M7K3-3C/2/c94b612e0
   journal = RMP,
   volume = 80,
   number = 2,
-  pages = {633--730},
+  pages = "633--730",
   numpages = 97,
   year = 2008,
   month = jun,
   doi = "10.1103/RevModPhys.80.633",
   publisher = APS,
 }
+
+@article{king10,
+author = WKing #" and "# MSu #" and "# GYang,
+title = "{M}onte {C}arlo simulation of mechanical unfolding of
+                  proteins based on a simple two-state model",
+journal = IJBMM,
+volume = 46,
+number = 2,
+pages = "159--166",
+year = 2010,
+issn = "0141-8130",
+keywords = "Atomic force microscopy",
+keywords = "Mechanical unfolding",
+keywords = "Monte Carlo simulation",
+keywords = "Worm-like chain",
+keywords = "Single molecule methods",
+abstract = "Single molecule methods are becoming routine biophysical
+  techniques for studying biological macromolecules. In mechanical
+  unfolding of proteins, an externally applied force is used to induce
+  the unfolding of individual protein molecules. Such experiments have
+  revealed novel information that has significantly enhanced our
+  understanding of the function and folding mechanisms of several
+  types of proteins. To obtain information on the unfolding kinetics
+  and the free energy landscape of the protein molecule from
+  mechanical unfolding data, a Monte Carlo simulation based on a
+  simple two-state kinetic model is often used. In this paper, we
+  provide a detailed description of the procedure to perform such
+  simulations and discuss the approximations and assumptions
+  involved. We show that the appearance of the force versus extension
+  curves from mechanical unfolding of proteins is affected by a
+  variety of experimental parameters, such as the length of the
+  protein polymer and the force constant of the cantilever. We also
+  analyze the errors associated with different methods of data pooling
+  and present a quantitative measure of how well the simulation
+  results fit experimental data. These findings will be helpful in
+  experimental design, artifact identification, and data analysis for
+  single molecule studies of various proteins using the mechanical
+  unfolding method.",
+doi = "DOI: 10.1016/j.ijbiomac.2009.12.001",
+url = "http://www.sciencedirect.com/science/article/B6T7J-4XWMND2-1/2/7ef768562b4157fc201d450553e5de5e",
+}
+
+@Article {metropolis87,
+  author = "Nicholas Metropolis",
+  title = "The Beginning of the Monte Carlo Method",
+  journal = "Los Alamos Science",
+  volume = 15,
+  pages = "125--130",
+  year = 1987,
+  publisher = "Los Alamos National Laboratory",
+  url = "http://library.lanl.gov/cgi-bin/getfile?15-12.pdf",
+}
index 80c7665419bd77ac0d77d1008a7d49b968989611..97cdcb2b1b3072ef6573ea6bedb1feaf15211a13 100644 (file)
 ]{drexel-thesis}
 % See drexel-thesis.pdf for more options.
 
-\includeonly{%
+%\includeonly{%
 %  cantilever/main,%
 %  temperature/main%
-  cantilever-calib/main
-}
+%  cantilever-calib/main
+%}
 
 \author{William Trevor King}
 \title{Temperature and cantilever dependent protein unfolding}
index 2652dbbcd74fb118226d8ea1176932e7954bc194..25e3a0abae5dbf99884eafbabbf2b5bd0b2d52f0 100644 (file)
@@ -24,15 +24,18 @@ the pulling direction.  The Monte Carlo simulation method has been
 used since the first report of mechanical unfolding experiments using
 the AFM%
 \citep{rief97a,rief97b,rief98,carrion-vazquez99b,best02,zinober02,jollymore09},
-however, a comprehensive discussion of the simulation procedures and
-the intricacies involved has not been reported.  In this paper, we
-provide a detailed description of the simulation procedure, including
-the theories, approximations, and assumptions involved.  We also
-explain the procedure for extracting kinetic properties of the protein
-from experimental data and introduce a quantitative measure of fit
-quality between simulation and experimental results.  In addition, the
-effects of various experimental parameters on force curve appearance
-are demonstrated, and the errors associated with different methods of
-data pooling are discussed.  We believe that these results will be
-useful in future experimental design, artifact identification, and
-data analysis for single molecule mechanical unfolding experiments.
+but these previous implementations are neither fully described nor
+publicly available.
+
+To fill this gap, I developed the \sawsim\ simulation
+program\citep{king10}.  In this chapter, I provide a detailed
+description of the simulation procedure, including the theories,
+approximations, and assumptions involved.  I also explain the
+procedure for extracting kinetic properties of the protein from
+experimental data and introduce a quantitative measure of fit quality
+between simulation and experimental results.  In addition, the effects
+of various experimental parameters on force curve appearance are
+demonstrated, and the errors associated with different methods of data
+pooling are discussed.  These results should be useful in future
+experimental design, artifact identification, and data analysis for
+single molecule mechanical unfolding experiments.
index 1637027b325d692553d150aea2b5c24e667a3b85..69d90820f7c690a891d08fd8b6e405154f79c708 100644 (file)
@@ -171,19 +171,34 @@ group of $N_f$ identical domains to unfold in a given time step is
 \begin{equation}
   P = 1 - (1-P_1)^{N_f} \approx N_fP_1 \;,  \label{eq:sawsim:prob-n}
 \end{equation}
-where the approximation is valid when $N_fP_1 \ll 1$.  To determine if
-an unfolding event occurs in a particular time step, the probability
-calculated using \cref{eq:sawsim:prob-n} is compared with a randomly
-generated number uniformly distributed between $0$ and $1$.  If $P$
-is bigger than the random number, a domain unfolds, changing the
-population of each tension state, and a new balance between the
-polymer and the cantilever is determined.  If no unfolding event
-occurs the pulling continues and the unfolding probability is
-calculated again in the next step at a higher force.  When all the
-molecules in the polymer have unfolded, the pulling continues until a
-pre-determined force level is reached, where the polymer is assumed to
-detach from one of the tethering surfaces.  The cantilever deflection
-becomes zero after this point.
+where the approximation is valid when $N_fP_1 \ll 1$.
+
+\begin{figure}
+  \asyfig{figures/schematic/monte-carlo}
+  \caption{Once the unfolding probability has been caculated, we need
+    to determine whether or not a domain should unfold.  We do this by
+    generating a random number, and comparing that number to the
+    unfolding probability $P$.  The random number determines which of
+    the possible paths we should follow for the current simulation.
+    Such ``statistical sampling'' is the hallmark of the Monte Carlo
+    approach\citep{metropolis87}.  This cartoon translates the idea
+    into the more familiar doors (possible paths) and dice (random
+    numbers).%
+    \label{fig:monte-carlo}}
+\end{figure}
+
+To determine if an unfolding event occurs in a particular time step,
+the probability calculated using \cref{eq:sawsim:prob-n} is compared
+with a randomly generated number uniformly distributed between $0$ and
+$1$ (\cref{fig:monte-carlo}).  If $P$ is bigger than the random
+number, a domain unfolds, changing the population of each tension
+state, and a new balance between the polymer and the cantilever is
+determined.  If no unfolding event occurs the pulling continues and
+the unfolding probability is calculated again in the next step at a
+higher force.  When all the molecules in the polymer have unfolded,
+the pulling continues until a pre-determined force level is reached,
+where the polymer is assumed to detach from one of the tethering
+surfaces.  The cantilever deflection becomes zero after this point.
 
 % address unfolding models
 Although the Bell model (\cref{eq:sawsim:bell}) is the most widely used