Na
rmsd:
/home/databank/ydn/DRAK2/MD3/Mg/system2/check/RMSD/
/home/databank/ydn/DRAK2/MD/Re/noMg/check/RMSD/
- show sticks, resn MOL
- select ion_test, inorganic
- show spheres, ion_test
- set sphere_scale, 0.5, ion_test
- label sele, "Na 302"
- set float_labels,1
Step 0:准备干燥轨迹
- # 建索引文件(蛋白+配体+Na+)gmx_mpi make_ndx -f ../../md.gro -o protein_na_lig.ndx# 输入:1|13|14 → q# 提取干燥轨迹gmx_mpi trjconv \ -f ../../md.xtc \ -s ../../md.tpr \ -n protein_na_lig.ndx \ -o dry-na.xtc \ -pbc mol -ur compact# 选择:18 (Protein_MOL_Na+)
Step 1:建native_na.prmtop
bash
- # 从complex.prmtop去掉水cpptraj << 'EOF'parm ../../../parameters/complex.prmtopparmstrip :WATparmwrite out native_na.prmtopquitEOF
Step 2:对齐轨迹
- cpptraj << 'EOF'parm native_na.prmtoptrajin dry-na.xtcautoimagerms first :1-291@CAtrajout dry-na-align.xtcrunquitEOF
- cpptraj << 'EOF'
- parm native_na.prmtop
- trajin dry-na.xtc
- autoimage
- rms first :1-291@CA
- trajout dry-na-align.xtc
- run
- quit
- EOF
Step 3:抽帧检查
- cpptraj << EOF
- parm native_na.prmtop
- trajin dry-na-align.xtc 1 10000000000 1000
- trajout check.pdb
- run
- quit
- EOF
Step 4:找最近Na+
bash
- # 计算所有Na+到配体距离(300-500ns)cpptraj << 'EOF'parm native_na.prmtoptrajin dry-na-align.xtc 150001 250001 1000distance na293 :293 :292 out dist_na.datdistance na294 :294 :292 out dist_na.datdistance na295 :295 :292 out dist_na.datdistance na296 :296 :292 out dist_na.datdistance na297 :297 :292 out dist_na.datdistance na298 :298 :292 out dist_na.datdistance na299 :299 :292 out dist_na.datdistance na300 :300 :292 out dist_na.datdistance na301 :301 :292 out dist_na.datdistance na302 :302 :292 out dist_na.datdistance na303 :303 :292 out dist_na.datdistance na304 :304 :292 out dist_na.datdistance na305 :305 :292 out dist_na.datdistance na306 :306 :292 out dist_na.datdistance na307 :307 :292 out dist_na.datdistance na308 :308 :292 out dist_na.datdistance na309 :309 :292 out dist_na.datdistance na310 :310 :292 out dist_na.datdistance na311 :311 :292 out dist_na.datrunquitEOF# 排序awk 'NR==1{next} {for(i=2;i<=NF;i++) sum[i]+=$i; count++} \ END{for(i=2;i<=NF;i++) printf "Na%d\t%.2f Å\n", i+291, sum[i]/count}' \ dist_na.dat | sort -k2 -n | head -5
Step 5:建prmtop(以Na302为例)
bash
- mkdir na302# native(蛋白+Na302+配体)cpptraj << 'EOF'parm ../../../parameters/complex.prmtopparmstrip :WATparmstrip :293-301,303-311parminfoparmwrite out na302/native_na302.prmtopquitEOF# pro两步法(蛋白+Na302)cpptraj << 'EOF'parm ../../../parameters/complex.prmtopparmstrip :WATparmstrip :MOLparmstrip :293-301parmwrite out na302/pro_na302_temp.prmtopquitEOFcpptraj << 'EOF'parm na302/pro_na302_temp.prmtopparmstrip :Na+&!:292parminfoparmwrite out na302/pro_na302.prmtopquitEOFrm na302/pro_na302_temp.prmtop# 验证 native = pro + lig# 4672 + 127 = 4799 ✅
Step 6:提取Na302轨迹
bash
- cpptraj << 'EOF'parm native_na.prmtoptrajin dry-na-align.xtcstrip :293-301,303-311trajout na302/dry-na302-align.xtcrunquitEOF# 抽帧检查cpptraj << 'EOF'parm na302/native_na302.prmtoptrajin na302/dry-na302-align.xtc 1 10000000000 1000trajout na302/check_na302.pdbrunquitEOF
Step 7:跑MMGBSA
bash
- cd ../MMGBSA-NA/mkdir na302cp /path/to/igb5_300-500ns.in na302/cd na302nohup mpirun -np 20 MMPBSA.py.MPI \ -i igb5_300-500ns.in \ -o final_na302.dat \ -cp ../../RMSD-NA/na302/native_na302.prmtop \ -rp ../../RMSD-NA/na302/pro_na302.prmtop \ -lp ../../../../parameters/lig.prmtop \ -y ../../RMSD-NA/na302/dry-na302-align.xtc \ -eo mmgbsa_na302.csv > mmpbsa_na302.log 2>&1 &echo "PID: $!"# 查看结果grep "DELTA TOTAL" final_na302.dat
注意事项
- :292 → 配体MOL编号(根据实际确认):293-311 → 19个Na+编号(根据实际确认)两步法建pro → 因cpptraj strip后残基重新编号cp=rp+lp → 原子数必须匹配否则MMGBSA报错300-500ns → 对应帧150001-250001(每2ps一帧)native_na.prmtop → 所有md共用(同一parameters)
