The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
1. Introduction 2. NEB/STRING 3. ADMD 4. Numerical Experiments
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Hamilton’s principle Lagrange’s equation
{q(0)}
{q(P)}
{q(0)}
{q(P)}
Action optimization
Known two conformations
Reactants
Products
solution
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
q(0)
q(t)
Hamilton’s principle Lagrange’s equation
Complexity 3Natom (P-1)
S2
S1 S3
Saddle?
Microscopic
reversibility
Fast sine transformation {q} {a}
http://gams.nist.gov/serve.cgi/Module/SLATEC/SINT/7394/
O(P2) O(P log P)
The nature of the stationary points depends on time step.
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Phys. Rev. 159, 98 (1967)
aka Onsager-Machlup
“path quality”measure
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
The Verlet algorithm Phys. Rev. 159, 98
(1967)
Elber et al. (1996)
+
aka Onsager-Machlup
“path quality”measure
Adv. Chem. Phys. 126, 93 (2003)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
improved path quality : new object function
Phys. Rev. Lett. 87, 10832 (2001)
Fictitious T
Target energy
Phys. Rev. B 68, 064303 (2003)
Chem. Phys. Lett. 105, 9299 (1996)
Onsager-Machlup
Passerone-Parrinello
Phys. Rev. Lett. 90, 065501 (2003)
J. Chem. Phys. 120, 4672 (2004)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Q representation
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
example
C60 molecule formation process simulation
N=60, P=150, 6 fs = Time increment, 3N(P-1)=26820
Atomic unit = 0.529177 Angstrom
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
“path quality”measure
Phys. Rev. B 68, 064303 (2003)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
ADMD vs NEB
systematic barrier estimation : target E Phys. Rev. B 68, 064303 (2003)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Numerical Optimization, Nocedal and Wrights, Springer, 1999
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Numerical Optimization, Nocedal and Wrights, Springer, 1999
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Complexity 3N(P-1),
N = the number of atoms,
P = the number of steps
Typical distribution of
I : 1, 2, 3,…., N
j : 1, 2, 3,….,P-1
HP-36
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
N=504, P=2000
3N(P-1)=3022488
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Parallel ADMD start
end
j=0,1,2,…,P
Vj,{F}j
V0,{F}0 V1,{F}1 V3,{F}3 V2,{F}2 VP,{F}P …
{R}j configurations
Object function/gradient Relaxation {R}j
Converged?
No
j=0 and j=P
Yes
,…,
speedup
{Communication}/{CPU} ratio
Time consuming part
LBFGS
Energy/force
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
subroutine multiv
! Written by In-Ho Lee, KRISS, August 10 (2007)
USE action, ONLY : qq,force_ac,vofqj,np_ac,natom_ac,isequence,isymbol,iattyp,ii12
IMPLICIT NONE
include 'mpif.h'
integer n1,n2,j,jstart,jfinish
real*8, allocatable :: exqq(:,:,:),exforce(:,:,:),exvofqj(:)
integer myid,nproc,ierr,kount,iroot
!
call MPI_COMM_RANK( MPI_COMM_WORLD, myid, ierr )
call MPI_COMM_SIZE( MPI_COMM_WORLD, nproc, ierr )
if(nproc > np_ac+1) then
write(6,*) 'you have too many CPUs nproc, np+1',nproc,np_ac+1
call MPI_FINALIZE(ierr)
stop
endif
if(myid == 0)then ! -----{ PROCESS ID = 0
vofqj=0.0d0 ; force_ac=0.0d0
endif ! -----} PROCESS ID = 0
!
if(nproc == 1)then
do j=0,np_ac
call xtinker(qq(1,1,j),force_ac(1,1,j),vofqj(j),natom_ac,isequence,isymbol,iattyp,ii12)
enddo
return
endif
!
allocate(exqq(natom_ac,3,0:np_ac), exforce(natom_ac,3,0:np_ac), exvofqj(0:np_ac))
if(myid == 0)then ! -----{ PROCESS ID = 0
exqq=qq
endif ! -----} PROCESS ID = 0
iroot=0 ; kount=3*natom_ac*(np_ac+1)
call MPI_BCAST(exqq, kount,MPI_REAL8, iroot,MPI_COMM_WORLD,ierr)
n1=0 ; n2=np_ac
call equal_load(n1,n2,nproc,myid,jstart,jfinish)
!
exforce=0.0d0 ; exvofqj=0.0d0
do j=jstart,jfinish
call xtinker(exqq(1,1,j),exforce(1,1,j),exvofqj(j),natom_ac,isequence,isymbol,iattyp,ii12)
enddo
iroot=0 ; kount=3*natom_ac*(np_ac+1)
call MPI_REDUCE(exforce,force_ac,kount,MPI_DOUBLE_PRECISION,MPI_SUM,iroot,MPI_COMM_WORLD,ierr)
iroot=0 ; kount=(np_ac+1)
call MPI_REDUCE(exvofqj,vofqj,kount,MPI_DOUBLE_PRECISION,MPI_SUM,iroot,MPI_COMM_WORLD,ierr)
!
deallocate(exforce, exvofqj, exqq)
return
end
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
subroutine equal_load(n1,n2,nproc,myid,istart,ifinish)
! Written by In-Ho Lee, KRISS, September (2006)
implicit none
integer nproc,myid,istart,ifinish,n1,n2
integer iw1,iw2
iw1=(n2-n1+1)/nproc ; iw2=mod(n2-n1+1,nproc)
istart=myid*iw1+n1+min(myid,iw2)
ifinish=istart+iw1-1 ; if(iw2 > myid) ifinish=ifinish+1
! print*, n1,n2,myid,nproc,istart,ifinish
if(n2 < istart) ifinish=istart-1
return
end
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
http://en.wikipedia.org/wiki/File:Protein_backbone_PhiPsiOmega_drawing.jpg http://en.wikipedia.org/wiki/Ramachandran_plot
CNCC
NCCN
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Conformational isomerization
480 fs
N=22
JKPS 46, 601 (2005).
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Conformational isomerization
690 fs 690 fs
N=28
JKPS 46, 601 (2005).
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Hammond postulate "If two states, as for example, a transition state and an unstable intermediate, occur consecutively during a reaction process and have nearly the same energy content, their interconversion will involve only a small reorganization of the molecular structures."
G. S. Hammond
That is, along the reaction coordinate, species with similar energies also have similar structures.
activation energy: the minimum energy necessary to form an activated complex in a reaction.
The Bell–Evans–Polanyi principle states that highly exothermic chemical reactions have a low activation energy.
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Exp. analysis
• (9,0)-capsule : C114 (C42+18x4) : 0.704 nm
• (5,5)-capsule : C120 (C40+20x4) : 0.678 nm
• kBT=800 oC ~ 0.09 eV vs SW ~ 6 eV
Chem. Phys. Lett. 384, 320 (2004)
Phys. Rev. B 69, 73402 (2004)
Rep. Prog. Phys. 62, 1181 (1999)
~0.8 eV (th. & exp.)
Migration energy : inside SWCNT
6 atoms
J. Phys. Chem. 96, 3574 (1992)
exchange
A beam of 13C ions
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Science 272, 87 (1996)
autocatalysis
Chem. Phys. Lett. 351, 178 (2002)
Ea= 6.2 eV4.0 eV2.3 eV
kBT= 800 oC ~ 0.09 eV
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Microscopic reversibility
C. H. Xu, C. Z. Wang, C. T. Chan, and K. M. Ho, J. Phys.: Condens. Matter 4, 6047 (1992) Tight-binding
ADMD simulation
Appl. Phys. Lett. 88, 011913 (2006)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Dynamic pathway models
C60 precursor models Potential-energy fluctuations
Simulated annealing
J. Phys. Chem. 98, 1810 (1994)
J. Chem. Phys. 120, 4672 (2004)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
C60 formation ADMD simulation
Chain/hexagon
Tangled polycyclic I
J. Chem. Phys. 120, 4672 (2004)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
C60 activation energy, formation rate
Phys. Rev. Lett 72, 2418 (1994)
Tight-binding C. H. Xu, C. Z. Wang, C. T. Chan, and K. M. Ho, J. Phys.: Condens. Matter 4, 6047 (1992)
C-C: 3.6 eV concerted motions
J. Phys. Chem. 98, 1810 (1994)
J. Chem. Phys. 120, 4672 (2004)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
C60 fusion
nanotubes C60
Double walled fused C60
Chem. Phys. Lett. 315, 31 (1999)
~800 oC
Chem. Phys. Lett. 384, 320 (2004)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
C60 fusion ADMD simulation
C60 + C60 (5,5)-capsule
Phys. Rev. Lett. 90, 065501 (2003)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
An extra carbon atom
C60 fusion capsule (5,5) chirality
Two extra carbon atoms
catalyst
Appl. Phys. Lett. 88, 011913 (2006)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Single/double exchange
C60 + C60 + C C120 + C C60 + C60 + C + C C120 + C + C
Appl. Phys. Lett. 88, 011913 (2006)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Partial density of state
Appl. Phys. Lett. 88, 011913 (2006)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Potential energy profile along pathway
C60 + C60 + C C120 + C
C60 + C60 + C + C C120 + C + C
Appl. Phys. Lett. 88, 011913 (2006)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
J. Am. Chem. Soc. 129, 8954 (2007)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Alignment of vacancies
Phys. Rev. B 79, 174105 (2009)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012 Phys. Rev. B 74, 195409 (2006)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012 Phys. Rev. B 74, 195409 (2006)
„Y‟ junction
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012 Phys. Rev. B 74, 195409 (2006)
„T‟ junction
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Screw dislocation in Cu
New cross slip mechanism (ADMD, empirical potential model)
Lower activation energy process = Fleischer +Friedel-Escaig mechanism
Appl. Phys. Lett. 88, 201908 (2006)
The activation energy is around 2.14 eV that
is the lowest energy barrier ever reported by atomistic
simulations.
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012 Phys. Rev. B 76, 245408 (2007) Phys. Rev. B 76, 245407 (2007)
Transition-pathway models of atomic diffusion on fcc metal surfaces. I. Flat surfaces
Transition-pathway models of atomic diffusion on fcc metal surfaces. II. Stepped surfaces
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
The two most important secondary structure motifs
N=112
N=247
Chem. Phys. Lett. 412, 307 (2005)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
helix formation
Acetyl-(Ala)10-N-methyl amide Generalized Born solvation model
N=112
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
helix formation
Generalized Born solvation model J. Mol. Biol. 267, 963 (1997)
Chem. Phys. Lett. 412, 307 (2005)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
b-hairpin formation
Residues 41-56 of protein G Generalized Born solvation model
N=247
Turn forms first
Chem. Phys. Lett. 412, 307 (2005)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
b-hairpin formation
Generalized Born solvation model Nature 390, 196 (1997)
Turn forms first
At the central part : the first native H bond
Chem. Phys. Lett. 412, 307 (2005)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012 J. Comput. Chem. 31, 57 (2009)
HP-36
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
HP-36
3N(P − 1) = 3 × 596 × 1999 = 3,574,212 Amber94, GB/SA 36.28 fs
J. Comput. Chem. 31, 57 (2009)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
J. Comput. Chem. 31, 57 (2009)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Principal component analysis
Principal component analysis is used to extract a small number of the most contributing elements (principal
components) of the spatial correlation between residue pairs. M defined as Mij = (xi − )(xj − ),
where x1, x2, . . . , x3 Nα are the Cartesian coordinates of the Nα Cα
atoms. The average . . . is over all structural frames from the ADMD trajectory (i.e., P + 1 = 2001). By
diagonalizing M, 3Nα eigenvectors with their corresponding eigenvalues are obtained.
J. Comput. Chem. 31, 57 (2009)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Eigenvalues As Percentages Cumul. Percentages
----------- -------------- ------------------
0.55364246E+02 51.2632 51.2632
0.16711985E+02 15.4741 66.7372
0.10515863E+02 9.7369 76.4741
0.77891107E+01 7.2121 83.6863
0.52260976E+01 4.8390 88.5253
0.33910422E+01 3.1399 91.6651
0.17537344E+01 1.6238 93.2889
0.12711619E+01 1.1770 94.4660
0.12134945E+01 1.1236 95.5895
0.92323029E+00 0.8548 96.4444
0.64476693E+00 0.5970 97.0414
0.56307554E+00 0.5214 97.5628
0.46476060E+00 0.4303 97.9931
0.27635869E+00 0.2559 98.2490
0.26253435E+00 0.2431 98.4921
0.21947116E+00 0.2032 98.6953
0.18363801E+00 0.1700 98.8653
0.14950135E+00 0.1384 99.0038
0.13822177E+00 0.1280 99.1317
0.11565286E+00 0.1071 99.2388
0.11010055E+00 0.1019 99.3408
0.89341208E-01 0.0827 99.4235
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Principal component analysis
J. Comput. Chem. 31, 57 (2009)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Reaction coordinate(s) ADMD simulation
Reaction coordinate(s) Markov state model
free energy profile
time scale
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Predicting the weather
• very simple model (sunny-rainy model) • sunny, rainy, K=2, 2x2 matrix P • sunny sunny : rainy = 0.9 : 0.1 • rainy sunny : rainy = 0.5 : 0.5
http://en.wikipedia.org/wiki/Examples_of_Markov_chains
Markov model
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Steady state of the weather
program steady_state_test implicit none integer k real*8 pp(2,2),vec1(2),vec2(2) pp(1,1)=0.9d0 ; pp(1,2)=0.1d0 pp(2,1)=0.5d0 ; pp(2,2)=0.5d0 vec1(1)=1.d0 ; vec1(2)=0.d0 do k=1,1000 vec2=matmul(vec1,pp) vec1=vec2 end do write(6,*) vec2 stop end 0.8333333333333345 0.1666666666666669 FORTRAN STOP
In conclusion, in the long term, 83% of days are sunny.
Stationary distribution
vec2(1)*pp(1,2)-vec2(2)*pp(2,1)=0 Detailed balance
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
J. Chem. Phys. 129, 064107 (2008).
Markov State Model: example
Free energy profile and characteristic time scale
A. C. Pan and B. Roux
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Transition-count matrix
• Mij= Mij+1, state i; 0 state j; , lag time • time-consumming part : many (relatively) short MD simulations : parallel job
• Mij/(sumj Mij) Pij : finite sampling
• Posterior_distribution (P | M) ~ Likelihood(M | P) x Prior_distribution (P)
• Likelihood(M | P) ~ Pij M
ij
• Prior_distribution (P) ~ Pij b
ij-1
• Posterior_distribution (P | M) ~ Pij
ij-1, a Dirichlet distribution
• ij=bij+Mij • bij= ½ or bij= 1 or bij= 1/K, [ KxK matrices, M, P, , b]
• Dirichlet distribution, ~ Pij
ij-1
• Bayesian Inference : error analysis
W. C. Swope , J. W. Pitera, and F. Suits, J. Phys. Chem. B 108, 6571 (2004).
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Transition matrix
• If the state space is finite, the transition probability distribution can be represented by a matrix, called the transition matrix, with the ij element of P equal to Pij= Pr(Xn+1=j| Xn=i). p = pP, p: left-eigenvector, eigenvalue =1 probability of the state i : pi : sumi pi = 1
• a left-eigenvector of the transition matrix associated with the eigenvalue 1 • a right-eigenvector of the transition matrix associated with the eigenvalue 1
• single eigenvalue=1 for left-eigenvector and right-eigenvector • a time-homogenous chain: Markov chain, a stationary distribution • Perron-Frobenius theorem • other eigenvalues, |eigenvalue| < 1
• (relaxation time scale)s = - /ln(ls), largest eigenvalue of P matrix less than 1 • l1,l2,l3,l4,l5,....,lK-1,lK=1, (in ascending order), lK-1=ls
• Pij >=0
• sumj Pij =1. (stochasticity) : sum of each row is unity • pi Pij = pj Pji (detailed balance) : p = pP • sumi piPij= sumi pjPji =pj sumi Pji=pj
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
0.15 microsecond
41x41 matrix
Langevin dynamics, 300 K, 91 ps-1
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Energ
y
Reaction coordinate
Weighted-Ensemble
bins
Free energy surface
Time variations
weight(bin,time)
Transition probability : P(t)
Weighted-ensemble Brownian dynamics simulations for protein association reactions Biophysical Journal, Volume 70, Issue 1, Pages 97-110
ADMD-pathway
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Example
Potential energy profile
Population changes
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
1l2y
32 replicas/bin, 300 K, 91 ps-1
states pico-second
popula
tion
Popula
tion a
t final sta
te (
t)
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Crooks‟ fluctuation theorem
The Crooks equation is an equation in statistical mechanics that relates the work done on a system
during a non-equilibrium transformation to the free energy difference
between the final and the initial state of the transformation.
WAB, i.e. the work done on the system during the forward transformation (from A to B)
ΔF = F(B) − F(A), i.e. the Helmholtz free energy difference between the state A and B
http://incredible.egloos.com/4646410
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
ADMD + PCA
ADMD + Markov state model
(stochastic model)
ADMD + Replica-exchange molecular dynamics
(thermodynamics)
ADMD + Weighted-ensemble
(kinetics)
ADMD + Crooks‟ fluctuation theorem
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
summary
• Rare event simulations
• Minimum energy path, transition state
• NEB, string
• Action-derived molecular dynamics reaction coordinates
• PCA, MSM, REMD, weighted ensemble
• Crooks’ fluctuation theorem
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
1. Introduction 2. NEB/STRING 3. ADMD 4. Numerical Experiments
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
/home/ihlee/tutorial_string_admd/potential_plot
=============================================================
vi plot_pot.f90
pgf90 plot_pot.f90 energy?.f90
./a.out
ls -ltra
gnuplot
>set pm3d
>set palette rgbformulae 33,32,10
>splot 'fort.7' with pm3d
Remember that it is an interactive mode.
The followings are the gnuplot commands for getting a color eps file.
gnuplot> set pm3d
gnuplot> set palette rgbformulae 33,32,10
gnuplot> splot 'fort.7' with pm3d
gnuplot> set term postscript eps enhance color
Terminal type set to 'postscript'
Options are 'eps enhanced color colortext \
dashed dashlength 1.0 linewidth 1.0 defaultplex \
palfuncparam 2000,0.003 \
butt "Helvetica" 14'
gnuplot> set output "test.eps"
gnuplot> replot
gnuplot> quit
[ihlee@helix source]$ gv test.eps
=============================================================
gnuplot> set pm3d map
gnuplot> set size square
gnuplot> splot 'fort.7'
gnuplot> set palette rgbformulae 33,32,10
gnuplot> splot 'fort.7'
gnuplot> set xrange[-25: 25]
gnuplot> set yrange[-25: 25]
gnuplot> splot 'fort.7'
gnuplot> set term postscript eps enhanced color
Terminal type set to 'postscript'
Options are 'eps enhanced color colortext \
dashed dashlength 1.0 linewidth 1.0 defaultplex \
palfuncparam 2000,0.003 \
butt "Helvetica" 14'
gnuplot> set output "test1.eps"
gnuplot> replot
gnuplot> quit
[ihlee@helix potential_plot]$ gv test1.eps
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
/home/ihlee/tutorial_string_admd/string_m1/source
====================================================
make clean
make
make a2ps
gv main.ps
or evince energy.ps
ls -ltra ../*.x
====================================================
cp include.f init.f inout.f ../
cd ../
pgf90 init.f inout.f
./a.out
ls -ltra
data0 will be present. This file will be an input file for the program string1.x.
./string1.x
ls -ltra
data1 will be present.
xmgrace data0 data1
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
====================================================
cmpl= pgf90
segl= pgf90
#OPT = -fast
OPT =
FFLAGS = -c ${OPT}
LIBS =
FILES= main.o dcopy.o energy.o force.o inout.o intpol.o mvper.o mvtan.o tangent.o
/home/ihlee/tutorial_string_admd/string_m1/string1.x: $(FILES)
$(segl) -o ../string1.x $(FILES) $(LIBS)
main.o:main.f
$(cmpl) $(FFLAGS) main.f
dcopy.o:dcopy.f
$(cmpl) $(FFLAGS) dcopy.f
energy.o:energy.f
$(cmpl) $(FFLAGS) energy.f
force.o:force.f
$(cmpl) $(FFLAGS) force.f
inout.o:inout.f
$(cmpl) $(FFLAGS) inout.f
intpol.o:intpol.f
$(cmpl) $(FFLAGS) intpol.f
mvper.o:mvper.f
$(cmpl) $(FFLAGS) mvper.f
mvtan.o:mvtan.f
$(cmpl) $(FFLAGS) mvtan.f
tangent.o:tangent.f
$(cmpl) $(FFLAGS) tangent.f
clean:
rm -f *.x *.o *.mod *.M core*
touch:
touch *.f90 *.i makefile ; chmod 600 *.f90 *.i makefile ; ls -l *.f90 *.i makefile *.f
rmo:
rm -f *.o *.mod *.M core*
lsl:
ls -l *.f90 makefile *.i
a2ps:
a2ps --prologue=color -o main.ps main.f ; a2ps --prologue=color -o energy.ps energy.f ; a2ps --prologue=color -o force.ps
force.f ; a2ps --prologue=color -o inout.ps inout.f ; a2ps --prologue=color -o mvper.ps mvper.f ; a2ps --prologue=color -o
mvtan.ps mvtan.f ; a2ps --prologue=color -o tangent.ps tangent.f ; a2ps --prologue=color -o intpol.ps intpol.f
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
subroutine lbfgs_driv(theta,posi,grad,nn)
! Written by In-Ho Lee, KRISS, January 31 (2003)
implicit none
integer nn
real*8 theta,posi(nn),grad(nn)
integer n_local,m,msave
real*8, allocatable :: diag(:),w(:)
real*8 eps,xtol,gtol,t1,t2,stpmin,stpmax
integer iprint(2),iflag,icall,mp,lp,j,nwork
logical diagco
real*8, allocatable :: gmatwork(:,:)
integer itrelax
!
! The driver for LBFGS must always declare LB2 as EXTERNAL
external lb2
common /lb3/mp,lp,gtol,stpmin,stpmax
!
itrelax=1000
n_local=nn
m=5 ; msave=7 ; nwork=n_local*(2*msave+1)+2*msave
allocate(diag(n_local),w(nwork))
iprint(1)= 1 ; iprint(2)= 0
!
! We do not wish to provide the diagonal matrices Hk0, and
! therefore set DIAGCO to FALSE.
diagco= .false. ; eps= 1.0d-4 ; xtol= 1.0d-16 ; icall=0 ; iflag=0
!
!
allocate(gmatwork(nn/3,nn/3))
20 continue
call lj(posi,grad,theta,nn/3,gmatwork)
!
write(6,'(e14.7)') theta
call lbfgsac(n_local,m,posi,theta,grad,diagco,diag,iprint,eps,xtol,w,iflag)
if(iflag.le.0) go to 50
icall=icall + 1
! We allow at most 2000 evaluations of Function and Gradient
if(icall > itrelax) go to 50
go to 20
50 continue
deallocate(gmatwork)
deallocate(diag,w)
return
end
Local minimization LBFGS : function, gradient
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
implicit none
integer natoms,nn
real*8 elj
real*8, allocatable :: x(:),v(:)
real*8, allocatable :: g(:,:)
integer i
real*8 tmpx,tmpy,tmpz,obj
natoms=7
allocate(x(3*natoms),v(3*natoms))
allocate(g(natoms,natoms))
do i=1,natoms
x(3*(i-1)+1)=0.3*i
x(3*(i-1)+2)=0.3*i**2+1.
x(3*(i-1)+3)=0.d0
enddo
i=1
x(3*(i-1)+1)=-1.0d0
x(3*(i-1)+2)=0.0d0
x(3*(i-1)+3)=0.0d0
i=2
x(3*(i-1)+1)=1.0d0
x(3*(i-1)+2)=0.0d0
x(3*(i-1)+3)=0.0d0
i=3
x(3*(i-1)+1)=0.0d0
x(3*(i-1)+2)=-1.0d0
x(3*(i-1)+3)=0.0d0
i=4
x(3*(i-1)+1)=0.0d0
x(3*(i-1)+2)=1.0d0
x(3*(i-1)+3)=0.0d0
i=5
x(3*(i-1)+1)=1.0d0
x(3*(i-1)+2)=1.0d0
x(3*(i-1)+3)=0.0d0
i=6
x(3*(i-1)+1)=-1.0d0
x(3*(i-1)+2)=-1.0d0
x(3*(i-1)+3)=0.0d0
i=7
x(3*(i-1)+1)=0.0d0
x(3*(i-1)+2)=0.0d0
x(3*(i-1)+3)=0.0d0
tmpx=0.d0 ; tmpy=0.d0 ; tmpz=0.d0
do i=1,natoms
tmpx=tmpx+x(3*(i-1)+1)
tmpy=tmpy+x(3*(i-1)+2)
tmpz=tmpz+x(3*(i-1)+3)
enddo
tmpx=tmpx/float(natoms) ; tmpy=tmpy/float(natoms) ; tmpz=tmpz/float(natoms)
do i=1,natoms
x(3*(i-1)+1)=x(3*(i-1)+1)-tmpx
x(3*(i-1)+2)=x(3*(i-1)+2)-tmpy
x(3*(i-1)+3)=x(3*(i-1)+3)-tmpz
enddo
call lj(x,v,elj,natoms,g)
write(6,*) natoms
write(6,*) elj
do i=1,natoms
write(6,'(a2,2x,3f18.8)') 'Ar',x(3*(i-1)+1),x(3*(i-1)+2),x(3*(i-1)+3)
enddo
write(6,*)
do i=1,natoms
write(6,'(3f18.8)') v(3*(i-1)+1),v(3*(i-1)+2),v(3*(i-1)+3)
enddo
nn=3*natoms
call lbfgs_driv(obj,x,v,nn)
elj=obj
tmpx=0.d0 ; tmpy=0.d0 ; tmpz=0.d0
do i=1,natoms
tmpx=tmpx+x(3*(i-1)+1)
tmpy=tmpy+x(3*(i-1)+2)
tmpz=tmpz+x(3*(i-1)+3)
enddo
tmpx=tmpx/float(natoms) ; tmpy=tmpy/float(natoms) ; tmpz=tmpz/float(natoms)
do i=1,natoms
x(3*(i-1)+1)=x(3*(i-1)+1)-tmpx
x(3*(i-1)+2)=x(3*(i-1)+2)-tmpy
x(3*(i-1)+3)=x(3*(i-1)+3)-tmpz
enddo
write(6,*) natoms
write(6,*) elj
do i=1,natoms
write(6,'(a2,2x,3f18.8)') 'Ar',x(3*(i-1)+1),x(3*(i-1)+2),x(3*(i-1)+3)
enddo
write(6,*)
do i=1,natoms
write(6,'(3f18.8)') v(3*(i-1)+1),v(3*(i-1)+2),v(3*(i-1)+3)
enddo
deallocate(x,v)
deallocate(g)
stop
end
Local minimization: function, gradient
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
subroutine lj(x,v,elj,natoms,g)
! Written by In-Ho Lee, KRISS, December 22 (2011); based on Wales's GMIN programs in fortran 77.
implicit none
integer natoms
real*8 x(3*natoms),v(3*natoms),elj,g(natoms,natoms)
integer j1, j2, j3, j4
real*8 r6, dummyx, dummyy, dummyz, xmul2, dummy, dist
elj=0.0d0
do j1=1,natoms
j3=3*j1
g(j1,j1)=0.0d0
do j2=j1+1,natoms
j4=3*j2
dist=(x(j3-2)-x(j4-2))**2+(x(j3-1)-x(j4-1))**2+(x(j3)-x(j4))**2
dist=1.0d0/dist
r6=dist**3
dummy=r6*(r6-1.0d0)
elj=elj+dummy
dist=dist*r6
g(j2,j1)=-24.0d0*(2.0d0*r6-1.0d0)*dist
g(j1,j2)=g(j2,j1)
enddo
enddo
elj=elj*4.0d0
do j1=1,natoms
j3=3*j1
dummyx=0.0d0
dummyy=0.0d0
dummyz=0.0d0
do j4=1,natoms
j2=3*j4
xmul2=g(j4,j1)
dummyx=dummyx+xmul2*(x(j3-2)-x(j2-2))
dummyy=dummyy+xmul2*(x(j3-1)-x(j2-1))
dummyz=dummyz+xmul2*(x(j3) -x(j2))
enddo
v(j3-2)=dummyx
v(j3-1)=dummyy
v(j3)=dummyz
enddo
end
LJ potential : energy, gradient
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
make clean
make
cd ../work1
../string_m_lj.x
../string_m_lj.x
xmgrace fort.34
cp fort.8 test.xyz
xmakemol -f test.xyz
control --> frames --> start
control --> frames --> make anim
ls *.xpm -ltra
convert lj7.1.xpm lj7_001.jpg
convert lj7.2.xpm lj7_002.jpg
convert lj7.3.xpm lj7_003.jpg
.....
Use Windows Live Movie Maker
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
program string_driver
! Written by In-Ho Lee, KRISS, December 22 (2011); based on W. Ren's string programs in fortran 77.
USE string, ONLY : initial,final,mvtan,mvper,print_intermediate
implicit none
real*8 dt,error
integer ic
dt=0.0004d0
dt=1.0d-7
call initial(dt)
!
ic=0
100 continue
ic=ic+1
if(mod(ic,10).eq.1) then
call mvtan
endif
call mvper(dt,error)
if(mod(ic,10).eq.1) then
write(*,*) 'ic=',ic, ' error =',error
endif
if(mod(ic,1000).eq.0) then
call print_intermediate
endif
if(error.lt.1.e-6) then
goto 101
else
if(ic > 1000000)then
write(6,*) 'ic=',ic, ' error =',error
goto 101
endif
endif
goto 100
101 continue
call final
!
stop
end program string_driver
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
subroutine rmarin(ij,kl)
! This subroutine and the next function generate random numbers. See
! the comments for SA for more information. The only changes from the
! orginal code is that (1) the test to make sure that RMARIN runs first
! was taken out since SA assures that this is done (this test didn't
! compile under IBM's VS Fortran) and (2) typing ivec as integer was
! taken out since ivec isn't used. With these exceptions, all following
! lines are original.
! This is the initialization routine for the random number generator
! RANMAR()
! NOTE: The seed variables can have values between: 0
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
Simulation details
No extended atoms, no constraints on bonds &
angles
AMBER94 (http://dasher.wustl.edu/tinker)
atomistic simulation in implicit solvents
Generalized Born solvation model
TINKER 3.8
TINKER 4.2
TINKER 5.0
TINKER 6.0
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
.seq
.key
.xyz
.pdb
protein.x
newton.x
pdbxyz.x
xyzpdb.x
minimize.x
superpose.x
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
MPI/FORTRAN 90
RS/6000 SP: Practical MPI Programming An IBM Redbooks publication
Yukiya Aoyama and Jun Nakano
http://www.redbooks.ibm.com/abstracts/sg245380.html
포트란 및 MPI 레퍼런스, 인터넷
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
FORTRAN 90
Fortran 90
A Conversion Course for Fortran 77 Programmers (The University of Manchester)
The University of Liverpool
Fortran 90 course notes
두 개의 포트란 90 레퍼런스, 인터넷
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
http://incredible.egloos.com
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
The 11th KIAS Protein Folding Winter School, HIGH1 Resort, February 6-10, 2012
References • Allen and Tildesley, Computer simulation of liquids • Haile, Molecular dynamics simulation • Frenkel and Smit, Understanding molecular simulation • Landau and Binder, A guide to Monte Carlo simulations in
statistical physics • Rapaport, The art of molecular dynamics simulation • Newman and Barkema, Monte Carlo methods in statistical
physics • http://dasher.wustl.edu/tinker • http://www.ccp5.ac.uk/ • http://www.expasy.org/swissmod/course/course-index.htm