24小时热门版块排行榜    

Znn3bq.jpeg
查看: 3845  |  回复: 12
本帖产生 1 个 模拟EPI ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zyj8119

木虫 (著名写手)

[交流] 【原创】在gromacs的gro中插入小分子 已有8人参与

在gromacs的水盒子中插入小分子一直是一个难题,今天我介绍一种编程插入方法,大家又可以看到程序的威力。可以在表面活性剂的水盒子中插入CO2,这个是原始的没有插入CO2的水盒子的gro文件,gro文件来自于杨小震的教材。
http://pic.muchong.com/file.php?id=207
在VMD中显示的图画是这样的:

FORTRAN程序是这样的:
CODE:
  integer nsurf,natom0,nco2,tatom,nch4
        real xc,yc,zc,dl,blx,bly,blz
*     blx,bly,blz are the length of simulation box in x,y,z direction, respectively.
        parameter(nsurf=36,tatom=43,natom0=9180,nch4=0,nco2=1000,
     &          blx=10,bly=10,blz=15)
        character resid(natom0)*8,atomname(natom0)*3,co2name(3)*3
        integer atomid(natom0),atomsn,molsn
        real coor(natom0,6),co2(nco2*3,3),ch4(nch4,3)
       
        open(10,file='box.gro',status='old')
        do 20 i=1,natom0
        read(10,*)resid(i),atomname(i),atomid(i),coor(i,1),coor(i,2),
     &          coor(i,3)
20    continue
      close(10)

      do 25 i=1,nco2*3
          do 26 j=1,3
          co2(i,j)=0.0
26      continue
25    continue


********************* add CO2 *************************

        do 30 i=1,nco2
50        xc=RAN2(IDUM)*blx
        yc=RAN2(IDUM)*bly
        zc=RAN2(IDUM)*blz
          do 40 j=1,natom0
          dl=sqrt((xc-coor(j,1))**2+(yc-coor(j,2))**2+(zc-coor(j,3))**2)
          if(dl.lt.0.25) goto 50
40      continue

        if(i.ge.2)then
            do 60 k=1,i-1
            kp=(k-1)*3+2
            dl=sqrt((xc-co2(kp,1))**2+(yc-co2(kp,2))**2+(zc-co2(kp,3))**2)
            if(dl.lt.0.25) goto 50
60        continue
        endif
*************** add CO2 *************************
        co2((i-1)*3+2,1)=xc
        co2((i-1)*3+2,2)=yc
        co2((i-1)*3+2,3)=zc

        co2((i-1)*3+1,1)=xc-0.115
        co2((i-1)*3+1,2)=yc
        co2((i-1)*3+1,3)=zc                      

        co2((i-1)*3+3,1)=xc+0.115
        co2((i-1)*3+3,2)=yc
        co2((i-1)*3+3,3)=zc      
30    continue


*************** add CH4 *************************

        do 62 i=1,nch4
63        xc=RAN2(IDUM)*blx
        yc=RAN2(IDUM)*bly
        zc=RAN2(IDUM)*blz
          do 64 j=1,natom0
          dl=sqrt((xc-coor(j,1))**2+(yc-coor(j,2))**2+(zc-coor(j,3))**2)
          if(dl.lt.0.25) goto 63
64      continue

            do 65 kp=1,nco2*3
            dl=sqrt((xc-co2(kp,1))**2+(yc-co2(kp,2))**2+(zc-co2(kp,3))**2)
            if(dl.lt.0.25) goto 63
65        continue


        ch4(i,1)=xc
        ch4(i,2)=yc
        ch4(i,3)=zc      
62    continue



****************** add CH4 ************************


******************OUTPUT THE NEW GRO FILE ************************

      open(70,file='system.gro',access='append')
        write(70,'(A6)')'system'
        ktotal=natom0+3*nco2+nch4
        write(70,'(I8)')ktotal
      
        do 120 i=1,nch4
        molsn=i
        atomsn=i
        write(70,666)molsn,'MET','CME',atomsn,
     &             ch4(atomsn,1), ch4(atomsn,2),ch4(atomsn,3)
120   continue

      co2name(1)='OAA'
        co2name(2)='CAC'
        co2name(3)='OAB'
        do 100 i=1,nco2
          do 110 j=1,3
          molsn=i+nch4
          atomsn=(i-1)*3+j+nch4
          kjishu=(i-1)*3+j
          write(70,666)molsn,'DRG',co2name(j),atomsn,
     &               co2(kjishu,1),co2(kjishu,2),co2(kjishu,3)
110     continue
100   continue


        do 80 i=1,nsurf
          do 90 j=1,tatom
          molsn=nco2+i+nch4
          atomsn=nco2*3+(i-1)*tatom+j+nch4
          kjishu=(i-1)*tatom+j
          write(70,666)molsn,'MOR',atomname(kjishu),atomsn,coor(kjishu,1),
     &                   coor(kjishu,2),coor(kjishu,3)
90      continue
80    continue
******************OUTPUT THE NEW GRO FILE ************************

666   format(I5,A3,4X,A3,I5,3F8.3)
      write(70,'(3F10.5)')blx,bly,blz
        write(70,*)''
      close(70)

       


        end


      FUNCTION RAN2(IDUM)
  
      INTEGER idum,IM1,IM2,IMM1,IA1,IA2,IQ1,IQ2,IR1,IR2,NTAB,NDIV
      REAL ran2,AM,EPS,RNMX
      PARAMETER (IM1=2147483563,IM2=2147483399,AM=1./IM1,IMM1=IM1-1,
     *IA1=40014,IA2=40692,IQ1=53668,IQ2=52774,IR1=12211,IR2=3791,
     *NTAB=32,NDIV=1+IMM1/NTAB,EPS=1.2e-7,RNMX=1.-EPS)
        INTEGER idum2,j,k,iv(NTAB),iy
      SAVE iv,iy,idum2
      DATA idum2/123456789/, iv/NTAB*0/, iy/0/
      if (idum.le.0) then
        idum=max(-idum,1)
        idum2=idum
        do 11 j=NTAB+8,1,-1
          k=idum/IQ1
          idum=IA1*(idum-k*IQ1)-k*IR1
          if (idum.lt.0) idum=idum+IM1
          if (j.le.NTAB) iv(j)=idum
11    continue
        iy=iv(1)
      endif
      k=idum/IQ1
      idum=IA1*(idum-k*IQ1)-k*IR1
      if (idum.lt.0) idum=idum+IM1
      k=idum2/IQ2
      idum2=IA2*(idum2-k*IQ2)-k*IR2
      if (idum2.lt.0) idum2=idum2+IM2
      j=1+iy/NDIV
      iy=iv(j)-idum2
      iv(j)=idum
      if(iy.lt.1)iy=iy+IMM1
      ran2=min(AM*iy,RNMX)
      return
      END      

的操作文件,然后生成新文件,gro文件变成这样的:
http://pic.muchong.com/file.php?id=208
在VMD中的显示变成:

有一部分水分子选择了VDW后,仍然还是显示细线模型,不知道是为什么?其中nsurf是表面活性剂的个数,tatom是单个的表面活性剂分子的原子个数,nCO2是要插入CO2的个数,kjishu是表示对于某种原子个数的计数,molsn是分子个数,atomsn是总体原子个数计数。

[ Last edited by zyj8119 on 2010-12-14 at 12:33 ]
回复此楼

» 收录本帖的淘帖专辑推荐

MDs-Gromacs xuexijisuan

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

» 本主题相关价值贴推荐,对您同样有帮助:

好好学习,天天向上。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

★ ★
ghcacj(金币+2):谢谢 2010-12-17 12:38:31
引用回帖:
Originally posted by zyj8119 at 2010-12-14 03:09:42:
在gromacs的水盒子中插入小分子一直是一个难题,今天我介绍一种编程插入方法,大家又可以看到程序的威力。可以在表面活性剂的水盒子中插入CO2,这个是原始的没有插入CO2的水盒子的gro文件,gro文件来自于杨小震的教 ...

我以前的程序是没有考虑水的,对于水分子的问题,可以不予考虑,可以在加完小分子后,直接加水。
好好学习,天天向上。
5楼2010-12-14 12:31:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

zyj8119

木虫 (著名写手)

引用回帖:
Originally posted by zyj8119 at 2010-12-14 03:09:42:
在gromacs的水盒子中插入小分子一直是一个难题,今天我介绍一种编程插入方法,大家又可以看到程序的威力。可以在表面活性剂的水盒子中插入CO2,这个是原始的没有插入CO2的水盒子的gro文件,gro文件来自于杨小震的教 ...

大家在不同的物质的盒子中都可以尝试这种办法。
好好学习,天天向上。
2楼2010-12-14 03:11:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

楼主是老杨的学生?
3楼2010-12-14 08:06:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

引用回帖:
Originally posted by yalefield at 2010-12-14 08:06:57:
楼主是老杨的学生?

不是,只是拿以前的程序去做一下新的GRO文件。
好好学习,天天向上。
4楼2010-12-14 12:23:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 国自然面上和省基金B类撒花 +6 花田半亩~白 2026-04-21 6/300 2026-04-22 10:55 by 3126142009
[考研] 0854求调剂 +24 门路摸摸 2026-04-15 28/1400 2026-04-22 09:54 by Sy199704!
[论文投稿] 急需审稿人!!! +3 陆小果画大饼 2026-04-21 3/150 2026-04-21 23:54 by jzy_123456
[考博] 申博/考博 +4 啃面包的小书虫 2026-04-17 8/400 2026-04-21 16:26 by 啃面包的小书虫
[考研] 一志愿A区211,22408 321求调剂 +7 随心所欲☆ 2026-04-15 8/400 2026-04-21 08:22 by Equinoxhua
[考研] 295分求调剂 +6 ?要上岸? 2026-04-17 6/300 2026-04-21 08:18 by Equinoxhua
[考研] 一志愿中科大材料与化工,353分还有调剂学校吗 +11 否极泰来2026 2026-04-15 13/650 2026-04-20 22:31 by Equinoxhua
[考研] 085600材料与化工调剂 5+3 孜孜不倦2002 2026-04-19 6/300 2026-04-20 21:25 by babero
[论文投稿] 期刊推荐 +3 材料研究生 2026-04-15 5/250 2026-04-20 16:02 by 豆豆7758
[论文投稿] 有没有接收比较快的sci期刊呀,最好在一个月之内的,研三孩子求毕业 20+4 之护着 2026-04-16 7/350 2026-04-20 15:45 by 豆豆7758
[考研] 337求调剂 +3 jyz04 2026-04-18 3/150 2026-04-20 12:24 by 研可安
[考博] 申博 +3 Xyyx. 2026-04-18 3/150 2026-04-20 10:44 by YuY66
[考研] 294求调剂 +8 淡然654321 2026-04-17 9/450 2026-04-19 19:51 by Equinoxhua
[考研] 304求调剂 +8 castLight 2026-04-16 8/400 2026-04-19 17:14 by 中豫男
[考研] 求调剂 +10 小聂爱学习 2026-04-16 12/600 2026-04-19 16:51 by 中豫男
[考研] 300求调剂 +12 橙a777 2026-04-15 12/600 2026-04-18 23:51 by 路病情
[考研] 接受任何调剂 +6 也就是栗子 2026-04-17 7/350 2026-04-18 17:20 by 涵竹刘
[考研] 收到复试调剂但是去不了 +8 小蜗牛* 2026-04-16 8/400 2026-04-18 11:15 by zixin2025
[考研] 260求调剂 +4 Zyt1314520.. 2026-04-17 5/250 2026-04-18 08:28 by babysonlkd
[考研] 急需调剂 +9 绝不放弃22 2026-04-15 10/500 2026-04-18 08:09 by chixmc
信息提示
请填处理意见