Jerkwin分享 http://blog.sciencenet.cn/u/Jerkwin

博文

新版VASP轨迹文件转换为GROMACS格式

已有 4839 次阅读 2017-9-26 15:55 |系统分类:科研笔记

  • 2017-09-26 15:47:47

vasp轨迹文件的格式经常变动, 这样导致和vmd的插件不兼容, 查看的时候只能显示一帧. 我最近使用的vasp 5.4.4输出的轨迹文件XDATCAR就存在这个问题. 为了解决这个问题, 我写了一个简单的脚本, 将XDATCAR转换为gromacs格式以便使用vmd查看. 简单来说, gromacs的gro格式是一种类似于xyz的格式, 但其中的坐标以nm为单位, 同时最后一行添加盒子矢量的信息.

x2gro.bsh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
File=XDATCAR
awk ' BEGIN {Rad2Deg=180/4*atan2(1,1)}{Tips=$0
		getline; a=$1/10; b=a; c=a;
		if(NF>=2)b=$2/10; if(NF>=3)c=$3/10
		getline; ax=$1*a; ay=$2*b; az=$3*c
		getline; bx=$1*a; by=$2*b; bz=$3*c
		getline; cx=$1*a; cy=$2*b; cz=$3*c
		Natm=0
		getline; Nelm=NF; for(i=1; i<=Nelm; i++) Sym[i]=$i
		getline; for(i=1; i<=Nelm; i++){ Numb[i]=$i; Natm=Natm+$i}
		getline; step=$NFYesCar=0; if($0~/^[::space::]*[C|c]/)YesCar=1

		print Tips " step= "step
		print Natm
		n=0
		for(i=1; i<=Nelm; i++){for(j=1; j<=Numb[i]; j++){
				getline; n++
				x=$1/10; y=$2/10; z=$3/10
				if(!YesCar){x=ax*$1+ay*$2+az*$3y=bx*$1+by*$2+bz*$3z=cx*$1+cy*$2+cz*$3}
				printf("%8s%7s%5d%8.3f%8.3f%8.3f\n", i"ELM", Sym[i], n, x, y, z)}}
		print ax, by, cz, ay, az, bx, bz, cx, cy
	}'$File  > $File.gro

◆本文地址: https://jerkwin.github.io/2017/09/26/新版VASP轨迹文件转换为GROMACS格式/, 转载请注明◆
◆评论问题: https://jerkwin.herokuapp.com/category/3/博客, 欢迎留言◆



https://blog.sciencenet.cn/blog-548663-1077843.html

上一篇:GROMACS非标准残基教程2:芋螺毒素小肽实例
下一篇:GROMACS分子动力学模拟教程:多肽-蛋白相互作用
收藏 IP: 130.184.1.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 23:09

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部