在Amber14手册可以参考: 28.2.3. Atom Mask Selection Syntax
首先, 在命令行使用时要使用字符串形式"mask", 在配置文件可以没有.
:,@和*是保留字符,要注意!- 支持通配符
*(任意个任意字符),?(单个任意字符).貌似还支持=(和*一样) - 可以使用范围匹配符
- - 可以使用
,作为分隔各成分 - 可以使用逻辑操作符
&,|和! - 对于使用名字, 大小写敏感!
选取残基
主要使用:,后面可以是编号或者残基名
:{residue numlist}e.g.[:1-10],[:1,3,5],[:1-3,5,7-9]:{residue namelist}e.g.[:LYS],[:ARG,ALA,GLY]
选取原子
主要使用@,后面可以是原子编号或者原子名. 如果要使用原子类型(就是力场类型一类的), 可以使用@%类型名; 如果要使用元素,使用@/元素名.
@{atom numlist}e.g.[@12,17],[@54-85],[@12,54-85,90]@{atom namelist}e.g.[@CA],[@CA,C,O,N,H]@%{atom type name}e.g.[@%CT]@/{atom_element_name}e.g.[@/N]:{residue numlist | namelist}@{atom namelist | numlist}复合原子表达式,相当于and操作的残基和原子条件均满足. e.g.:ARG@CA
基于距离选取
主要使用<:, >:, <@, >@四种, :@跟距离. :选取的是原子, @选取的是残基. 整体表达式: <mask><distance op><distance>
:11-17<@2.4是选取11-17号残基邻近2.4A内的残基.
对于MD结果ptraj处理时, 可能会用到一种特殊方法, 就是设置reference, 此时会以reference为准则评价每个frame:
reference mol.rst7
trajin mol.rst7
strip !(:4<:3.0)
实例
@CA,C,O,N,H所有主链backbone原子!@CA,C,O,N,H所有非主链backbone原子 (注意可能包含水,离子,配体,蛋白残基侧链).:5,10@CA残基5和10的CA原子:*&!@H=所有残基的非氢原子:1-500@O&!(:WAT|:LYS,ARG)1-500号残基的非WAT,LYS,ARG的主链氧原子.