In reference 1, they calculated pKa of blocked Aspartic acid and Histidine, here I am doing the same thing, the purpose is to find out if the pKa is different from residue in protein. Follwing is an example of aspartic acid(positive amino acids:ARG HIS LYS does not need add_h.inp, negative ones ASP GLU need, TYR does not need to add H).
To prepare mono amino acid,
charmm name=asp < build_amino.inp(outputs:data/asp.crd|pdb|psf )
add H:
charmm in=asp <add_h.inp(outputs:data/asp_h.crd|pdb|psf)
Run a constant pH simulation with implicit solvent:
mpirun -np 4 charmm in=asp <hphmd.inp(1ns, around 7 minutes. outputs:data/aspartic.ph3.7.dcd|ene|rst|lamb)(set struct =data/@in if ARG HIS LYS TYR)
Calculate unprotonated fraction (S) by CptSX.pl:
CptSX.pl asp.ph3.7.lamb 10000 50000 3.7(outputs:*.sx)
CptSX.pl asp.ph3.7.lamb 1 1000 3.7(outputs:*.sx)
Calculate pKa values by fitting to Henderson-Hasselbalch (HH) equation by cptpKa.pl:
cptpKa.pl asp asp.ph3.7.lamb-10000-50000.sx(outputs:*.pka)
cptpKa.pl asp asp.ph3.7.lamb-1-1000.sx(outputs:*.pka)
cat asp.ph3.7.lamb-10000-50000.pka
1 3.56 1.0
Following are pKa's for other residues:
run1 | run2 | run3 | run4 | run5 | run6 | mean(std) | |
---|---|---|---|---|---|---|---|
ARG | 12.55 | 12.68 | 12.76 | 12.47 | 12.76 | 12.53 | |
HSD | 6.55 | 7.00 | 7.19 | 7.19 | 7.12 | 6.83 | |
LYS | 10.88 | 10.61 | 10.77 | 10.88 | 10.67 | 10.67 | |
GLU(GLUP2) | 3.53 | 4.01 | 3.97 | 4.11 | 4.09 | 3.97 | |
ASP(ASPP2) | 2.58 | 2.01 | 2.58 | 3.88 | 2.58 | 2.32 | |
TYR | 10.07 | 9.98 | 10.10 | 9.98 | 9.92 | 10.15 |
Let's run replica exchange pH simulation:
mpirun -np 14 charmm <hphmd_phrex_gb.inp
outputs:data/asp.ph*.rst/dcd/ene/lamb_IREP, asp.phrex.log/out_IREP.
The *.out_IREP files are output from each replica, the *.log_IREP files contain the information about exchange attempts (ACCEPT or REJECT), and the energy of each replica.
Now we calculate S for each replica:
CptSX.pl asp.ph1(2,3,4,5).lamb_0(1,2,3,4) 5 1000 1(2,3,4,5)
or
for i in $(seq 1 14); do j=`expr $i-1|bc`; CptSX.pl asp.ph$i.lamb_$j 5 1000 $j; done
Then calculate pKa:
cptpKa.pl asp asp.ph1.lamb_0-10000-50000.sx asp.ph2.lamb_1-10000-50000.sx asp.ph3.lamb_2-10000-50000.sx asp.ph4.lamb_3-10000-50000.sx asp.ph5.lamb_4-10000-50000.sx
or
string=
for i in $(ls *.sx); do string+=" $i"; done
cptpKa.pl asp $string
cat asp.pka
1 4.19 0.89 1.00
Following are pKa's for other residues:
RUN1 | RUN2 | RUN3 | RUN4 | RUN5 | RUN6 | MEAN(STD) | |
---|---|---|---|---|---|---|---|
ARG | 13.56 | 13.53 | 13.55 | 13.56 | 13.54 | 13.58 | |
HSD | 6.83 | 6.90 | 6.91 | 6.92 | 6.79 | 6.93 | |
LYS | 10.60 | 10.80 | 10.73 | 10.65 | 10.66 | 10.69 | |
ASP2 | 2.95 | 2.77 | 3.00 | 3.10 | 2.45 | 2.92 | |
GLU2 | 3.66 | 3.69 | 3.56 | 3.67 | 3.63 | 3.66 | |
TYR | 10.12 | 10.06 | 10.03 | 9.99 | 9.99 | 10.03 |
Now let's try explicit solvent model,
charmm in=asp <solvate.inp(outputs:aspartic_h_solvated.pdb/psf/crd/str)
Add ions to the system,
charmm in=asp conc=0.100 <add_ions_hphmd.inp(outputs:asp_h_ions.pdb/crd/str/prm)
Now we combine the structures,edit minimize.inp, and mark off "join SOLV CLA renumber", since the system only has SOD.
charmm in=asp < minimize.inp (outputs:asp_h.solv.ion.min.psf/pdb/crd/pbc.)
The system should looks like this:
Let's run replica exchange pH simulation on this system:
We still use the same hphmd_phrex.inp, but we need to use periodic boundary condition and turn on Image, add hybrid to gbsw. Don't forget to change struct=data/@in_h.solv.ion.min
mpirun -np 14 charmm < hphmd_phrex_ex.inp (pH from 1 to 14, 1.0ns)
pKa=3.61,the titration curve is:
Following are the pKa's of 6 titratable residues from 1ns 14 replica exchange simulation
residue | run1 | run2 | run3 | run4 | run5 | run6 | mean(rms) |
---|---|---|---|---|---|---|---|
ARG | 13.42 | 13.46 | 13.55 | 13.26 | 13.28 | 13.18 | |
ASP2 | 3.69 | 3.54 | 3.67 | 3.61 | 3.46 | 3.81 | |
GLU2 | 3.87 | 3.89 | 3.87 | 3.87 | 3.79 | 3.84 | |
HSD | 6.78 | 6.87 | 6.99 | 6.95 | 6.89 | 6.83 | |
LYS | 10.51 | 10.49 | 10.61 | 10.47 | 10.50 | 10.55 | |
TYR | 10.00 | 10.05 | 10.10 | 9.97 | 10.13 | 10.08 |
Dimer Aminoacids
Following are the results from dimers of amino acids.
edit built_amino.inp, "read sequ @resname 2"(change from 1 to 2)
run1 | run2 | run3 | run4 | run5 | run6 | mean | |
---|---|---|---|---|---|---|---|
ARG | 12.73_12.68 | 12.68_12.68 | 12.68_12.68 | 12.65_12.68 | 12.68_12.70 | 12.65_12.68 | |
HSD | 5.93_6.66 | 5.95_6.83 | 6.37_6.69 | 6.37_6.69 | 6.41_6.63 | 6.41_6.63 | |
LYS | 1079_10.65 | 11.40_10.71 | 10.81_10.59 | 10.81_10.59 | 10.79_10.71 | 10.69_10.54 | |
GLU | 4.03_4.01 | 4.28_4.07 | 4.15_3.90 | 4.28_4.07 | 3.97_4.19 | 4.28_4.07 | |
TYR | 9.98_9.92 | 10.17_9.87 | 10.12_10.00 | 10.17_9.87 | 9.92_10.03 | 10.17_9.87 |
Following are the results from dimers of 14 replica GB
run1 | run2 | run3 | run4 | run5 | run6 | mean | |
---|---|---|---|---|---|---|---|
ARG | 13.67_13.56 | 13.80_13.56 | 13.51_13.76 | 13.52_13.52 | 13.56_13.53 | 13.69_13.55 | |
ASP | 3.50_3.18 | 3.31_3.10 | 3.28_2.97 | 3.30_3.20 | 3.33_3.33 | 3.65_3.17 | |
GLU | 3.69_3.69 | 3.66_3.65 | 3.61_3.70 | 3.63_3.64 | 3.66_3.67 | 3.72_3.59 | |
HSD | 6.37_6.74 | 6.45_6.67 | 6.37_6.66 | 6.33_6.74 | 6.38_6.69 | 6.35_6.72 | |
LYS | 12.93_12.55 | 12.05_12.04 | 11.98_11.59 | 11.98_12.08 | 12.30_11.97 | 12.08_12.92 | |
TYR | 10.04_9.92 | 10.00_9.98 | 9.94_9.89 | 10.05_9.87 | 9.99_10.00 | 9.98_10.03 |
Dimer explicit:
run1 | run2 | run3 | run4 | run5 | run6 | mean | |
---|---|---|---|---|---|---|---|
ARG | 13.54_13.29 | 13.51_13.39 | 13.28_13.37 | 13.60_13.29 | 13.38_13.51 | ||
ASP | 3.68_3.82 | 3.67_3.76 | 3.70_3.92 | 3.43_3.86 | 3.73_3.83 | ||
GLU | 3.86_3.94 | 3.90_3.90 | 3.80_3.92 | 3.76_3.98 | 3.91_3.87 | ||
HSD | 6.27_6.93 | 6.29_6.69 | 6.36_6.79 | 6.35_6.86 | 6.33_6.68 | ||
LYS | 10.48_10.48 | 10.46_10.51 | 10.46_10.54 | 10.50_10.45 | 10.47_10.49 | ||
TYR | 9.97_9.96 | 9.99_9.93 | 10.07_9.94 | 9.95_9.93 | 10.05_10.00 |
For Tyrosine, add following to phmd.in:
TYR 10.1 A B 2.0 (A and B need to be trained)
CZ 0.11 0.40
OH -0.54 -0.40
HH 0.43 0.00 1.0 0.0
For ARG, add following to phmd.in
ARG 12.1 0.0 0.0 0.0
CD 0.20 0.00
HD1 0.09 0.09
HD2 0.09 0.09
NE -0.70 -0.70
HE 0.44 0.43
CZ 0.64 0.40
NH1 -0.80 -0.62
HH11 0.46 0.31
HH12 0.46 0.00 1.0 0.0
NH2 -0.80 -0.62
HH21 0.46 0.31
HH22 0.46 0.31
To find parameter A and B, set A=0, B=0,2.0->0.0. run:
charmm < hphmd_derive.inp
outputs: *.lamb under data/
gnuplot--> stats "*.lamb" using 3
TYR (second column is A=0,B=0,2.0.not too much different)
0.2 7.7521 7.74
0.3 10.8119 10.8124
0.4 13.0275 12.9593
0.5 14.2578 14.2270
0.6 14.5236 14.5245
0.7854 12.7851 12.7876
0.9 10.7390 10.6879
1.0 8.7023 8.6971
1.1 6.5819 6.5819
1.2 4.7294 4.7294
1.3 3.1584 3.1584
1.4 1.8290 1.8290
A= -7.76075 B=1.32243
ARG
0.2 76.3238
0.3 107.2953
0.4 130.2527
0.5 144.2557
0.6 148.9769
0.7854 136.3344
0.9 118.4906
1.0 99.6261
1.1 74.9732
1.2 59.9357
1.3 41.7497
1.4 25.2668
A=-65.8466 B=1.53207
LYS
0.2 43.1129
0.3 58.6399
0.4 67.2173
0.5 68.9941
0.6 63.5223
0.7854 40.6659
0.9 22.8726
1.0 8.8289
1.1 -3.3910
1.2 -10.4622
1.3 -12.7697
1.4 -10.5828
A=-76.1272 B=0.767769
References:
1)Toward the accurate first-principles prediction of ionization equilibria in proteins. Jana Khandogin,Brooks III 2006.