首发于 模拟小窝
Atomselect命令介绍

Atomselect命令介绍

【注:该命令是VMD采用TCL语言进行编程操作的最基础命令,一定要多多测试,熟练使用】同时注意和mol modselect(基本上无法改变坐标本身,而是改变显示成像)的区别


该命令包含了获得和处理分子(载入文件)中原子的信息的主要操作。使用该命令一般分两步:第一步是通过该命令的功能,通过关键词等信息,选择到要操作的原子,同时赋给某个变量;第二步,是通过变量和内置命令操作选择好的原子。

例子:【1. Set sel [atomselect topall] 2. $sel num 】

如果直接执行 atomselect top all进行选择的话,会默认分配一个选择id=atomselect0,上面命令sel存储的就是atomselect0这个标签,其实它是一个函数名.

一、该命令直接跟的几个参数有list, keywords, macromdelmacro

a) atomselect list : 返回没有被删除的选择操作列表,比如atomselect0,atomselect1, atomselect2等。

b) atomselect keywords显示所有可以选择的关键字(就是我们之前讲VMD选择方法介绍的内容部分,包含3种类型和函数;见下表),当你忘记时,可以用这个命令查询下关键词。

c) 语法:atomselect macro [macro_name] [sel_method]

1. atomselect macro 显示所有macro(macro其实指的是singlewords部分;singlewords指的就是那些charged、acidic之类的整体。)

2. atomselect macro lipid 显示lipid的定义(=resname DLPE DMPC DPPCGPC LPPC PALM PC PGCL POPC POPE)
3.atomselect macro abc {resname ALA and hydrogen} 定义一个新的macro,如果已经有定义了,则覆盖;(设好的macro在graphicsrepresentations-selection-singlewords里面也会出现; mol modselect就可以使用了)

4. atomselect delmacro abc 删除abc 这个macro

二、下面讲这个命令的最主要的应用

语法: atomselect <mol_id> <selection_methods> [frameframe_number] (<>表示必要参数,[]表示可选参数)

例:atomselect 3 "resid 25" frame last 选择3号分子(第三次导入的轨迹或坐标)最后一帧的resid25。分子可以是数字或者top,所选内容就是普通的selection,用双引号或者{}括住,帧号可以是数字(表示第几帧)、first、last、now。选择之后,会出现比如atomselect0,然后可以运行如下操作了:

对于刚刚的选择操作,可以跟下面几个命令进行信息的获得和处理(其实上面操作是个TCL过程,就像字符串操作,string后面可以跟很多子命令)

set sel atomselect0
$sel num 显示所选的内容有多少原子
$sel list 显示所选的内容的原子的编号
$sel text 显示所选内容表示的意义
$sel molid 显示所选内容的分子编号
$sel frame 显示所选内容的所在帧。

$sel frame x设置选择的帧为x
$sel delete 删除atomselect0函数。注: sel变量并没删除,需要用unset,注意VMD命令和TCL语言的命令是不同的
$sel global 将atomselect0移入全局命名空间
$sel get mass 得到atomselect0所选范围的质量,还可以是{xy z}得坐标,{x}仅x坐标。get后面可以接任何属性,和mol的属性类似。【原子选择方法部分介绍的属性】

$sel get structure 可以得到结构中每个残基所处的二级结构
$sel getbonds 得到成键列表
$sel setbonds <bondlists> 按照成键列表成键,比如{{2 5} {4 6}}
$sel move 4x4 matrix 根据矩阵移动
$sel moveby {1 1 6} 把所选原子向1,1,6向量方向和距离上移动
$sel lmoveby offset_list: move each atom by an offset given in the list.
$sel moveto { 3 6 5} 把所选内容移动到3,6,5位置
$sel moveto position_list: move each atom to a point given by theappropriate list element
$sel writepdb a.pdb 把目前所选原子写到当前文件夹(vmd所在文件夹)的a.pdb中

大家要习惯结合TCL语言进行命令是使用。

Mol new ab.pdb

Mol addfile ab.dcd

Set sel [atomselect top “resname CA”]

$sel get name

$set list

$set get text

$set get {x y z}

foreach resid [$sel get resid] resname [$sel get resname] {

puts “$resid, $resname”

}

$sel moveby {1 0 0}所以被选中的原子x方向平移一个单位

$sel move [trans x 90] 绕x轴旋转90度

$sel moveto {0 0 0} 把所选原子移动到原点



试着理解如下操作:

get sidechain [atomselect top “sidechain residue 10”]

set CA [atomselect top “name CA and residue 10”]

set CAcoord [lindex {$CA get {x y z} 0} ]

set CB [atomselect top “name CB and residue 10”]

set CBcoord [lindex {$CB get {x y z} 0} ]

$sidechain move [trans bond $CAcoord $CBcoord 10 deg] 绕CA-CB 这个bond转动10度

编辑于 2016-12-09 16:04

文章被以下专栏收录