计算化学公社

标题: CHARMM里使用浮动电荷模型,蛋白质的温度很低是怎么回事? [打印本页]

作者
Author:
退休老干部    时间: 2024-10-23 20:05
标题: CHARMM里使用浮动电荷模型,蛋白质的温度很低是怎么回事?
我在CHARMM里使用浮动电荷模型,它是在extended lagrange下,把电荷当做一个自由度来处理,双nose hoover热浴分别更新电荷和原子位置,跑了2ns,取最后一帧计算蛋白质的温度发现温度为85多K,而水和整个体系的温度为300多K,我想请问一下各位大佬这是出现热溶剂冷溶质现象了吗?还是说在这种模型下是正常的?或者是我计算温度的方法有问题?
这是我计算温度的python代码(最后一帧的原子速度和质量在附件中)):
  1. vel_x = []
  2. vel_y = []
  3. vel_z = []
  4. mass = []
  5. Ek_prot = 0
  6. Ek_wat = 0
  7. Ek_tot = 0
  8. kB = 0.00198716
  9. freedom_prot = 1277
  10. freedom_wat = 36984
  11. with open("1fsv_vel_frame19999.crd") as fp:
  12.     for line in fp:
  13.         words = line.strip().split()
  14.         if (len(words) == 10):
  15.             vel_x.append(float(words[4]))
  16.             vel_y.append(float(words[5]))
  17.             vel_z.append(float(words[6]))

  18. with open("1fsv_npt.psf") as fp:
  19.     for line in fp:
  20.         value = line.strip().split()
  21.         if (len(value) == 11):
  22.             mass.append(float(value[7]))   

  23. for j in range(513):
  24.     Ek_prot += mass[j]*(vel_x[j] ** 2 + vel_y[j] ** 2 + vel_z[j] ** 2)
  25.    
  26. for j in range(513,25169):
  27.     Ek_wat += mass[j]*(vel_x[j] ** 2 + vel_y[j] ** 2 + vel_z[j] ** 2)
  28.                
  29. for j in range(25169):
  30.     Ek_tot += mass[j]*(vel_x[j] ** 2 + vel_y[j] ** 2 + vel_z[j] ** 2)
  31.    
  32. temp_prot = Ek_prot / kB / freedom_prot
  33. temp_wat = Ek_wat / kB / freedom_wat
  34. temp_tot = Ek_tot / kB / (freedom_wat + freedom_prot)
复制代码







欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3