MD Analysis安装和介绍
MD Analysis (以下简称mda) 是一款分子动力学后处理代码,具有优秀的后处理函数库,高效的处理速度,可并行的计算功能。通过mda可以读取LAMMPS的单个data、连续dump轨迹文件,做一些基本结构计算不是问题。但其对dump文件的读取仅限于id, type, x, y, z这几类。对于dump的不足,本人改动了一下源文件,支持读取dump的其他列的数据信息,需要的同学可以留言或邮件(yunai2384@163.com)。In addition, for beginner of molecular dynamics, ASE is more suggested.
一、MD Analysis 安装
普通安装
(1) 从pip:
pip install --upgrade MDAnalysis
# pip install --upgrade MDAnalysisTests # 安装测试数据
(2) 从Conda:
conda install -c conda-forge mdanalysis
# conda update mdanalysis # 升级
# conda install -c conda-forge MDAnalysisTests # 安装测试数据
从源码安装:
# git clone https://github.com/MDAnalysis/mdanalysis.git # 下载mda
git clone https://gitee.com/yunai9/mdanalysis.git # 我已备份至gitee,速度更快
cd mdanalysis/package/
pip install -r requirements.txt --upgrade
python setup.py install
二、MD Analysis使用
mda支持二十多种文件格式,包括LAMMPS (dump, data格式),xyz格式,CHARMM,Gromacs (xtc, trr格式),AMBER相关格式,DL_Poly,MOL2,NAMD相关格式。而就我所知,支持的LAMMPS的dump格式中,对除了id type x y z 之外的列并不读取。之所以还要选择mda,主要是能够直接接触底层数据,并直接进行相关处理,包括近邻相关计算,结构分析等。
LAMMPS read and write info
基本使用方法:
读取文件
import MDAnalysis as mda
from MDAnalysis.lib import NeighborSearch
u = mda.Universe('lammps.data', atom_style='id type charge x y z imx imy imz')
# 选择原子种类
Type1 = u.select_atoms("type 1")
# Type1原子总数
nType1 = Type1.atoms.n_atoms
# 所搜Type1每个原子在截断半径2 A中的其他原子
for i in range(nType1):
neAtom = ns.search(Type1.atoms[i], 2.0)
# do something else
# 读取lammps dump轨迹文件
u = mda.Universe('lammps.data', format='LAMMPSDUMP')
# 对dump文件的每一帧进行处理
for ts in u.trajectory:
# ts 中的选项和u中的选项有所区别,请注意
# do something else