📄 printenergies.cc
字号:
/* printEnergies.cc */#include <math.h>#ifdef sgi #include <stdlib.h> #include <stdio.h> #include <string.h> #include "printEnergies.h"#else extern "C" { #include <stdlib.h> #include <stdio.h> #include <string.h> #include "printEnergies.h" }#endifextern FILE *logFile;#define print1000(x) pr(logFile, ((fabs((x)) >= 0.001) && ((fabs(x)) <= 1000.)) ? "%+7.2f" : "%+11.2e" , (x));void printEnergies( float einter, float eintra, float torsFreeEnergy, char *prefixString ){ float deltaG = 0.0; float Ki = 1.0; float edocked=0.0; // float RJ = 8.31441; // in J/K/mol, Gas Constant, Atkins Phys.Chem., 2/e float Rcal = 1.9871917; // in cal/K/mol, Gas Constant, RJ/4.184 float TK = 298.15; // Room temperature, in K edocked = einter + eintra; // Binding and Inhibition are opposite directions, so lose the minus-sign: deltaG = R*T*lnKi // => deltaG/(R*T) = lnKi // => Ki = exp(deltaG/(R*T)) deltaG = einter + torsFreeEnergy; Ki = exp((deltaG*1000.)/(Rcal*TK)); pr( logFile, "%sEstimated Free Energy of Binding = ", prefixString); print1000(deltaG); pr( logFile, " kcal/mol [=(1)+(3)]\n"); pr( logFile, "%sEstimated Inhibition Constant, Ki = ", prefixString); print1000(Ki); pr( logFile, " [Temperature = %.2f K]\n", TK); pr( logFile, "%s\n", prefixString); pr( logFile, "%sFinal Docked Energy = ", prefixString); print1000(edocked); pr( logFile, " kcal/mol [=(1)+(2)]\n"); pr( logFile, "%s\n", prefixString); pr( logFile, "%s(1) Final Intermolecular Energy = ", prefixString); print1000(einter); pr( logFile, " kcal/mol\n"); pr( logFile, "%s(2) Final Internal Energy of Ligand = ", prefixString); print1000(eintra); pr( logFile, " kcal/mol\n"); pr( logFile, "%s(3) Torsional Free Energy = ", prefixString); print1000(torsFreeEnergy); pr( logFile, " kcal/mol\n"); pr( logFile, "%s\n", prefixString);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -