详细内容

atomselect

时间:2025-04-26     作者:邱新龙翻译【转载】   来自:vmd手册   阅读

原子选择是获取分子中原子信息的主要方法。它分为两个步骤。

第一步是在给定选择文本、分子id和可选框架号的情况下创建一个选择。这是由一个名为atomselect的函数完成的,该函数返回新原子选择的名称。

第二步是使用创建的选择来访问关于选择中的原子的信息。


atomselect keywords

keywords:返回原子选择文本中所有可识别关键字的列表。

image.png

atomselect keywords name 对关键词name进行解释


vmd > atomselect keywords name

expected integer but got "keywords"Not valid molecule id keywords in atomselect's 'molId'


atomselect macro

macro:singlewords的内容

image.png

atomselect macro at 对关键词at进行解释

vmd > atomselect macro at

resname ADE A THY T


macro name selection: 

从现有的原子选择中创建一个新的单字原子选择。

名称必须是一个以非数字字符开头的单词,并且不包含空格或特殊字符。选择可以是任何有效的原子选择,甚至可以包含其他宏。应该确保宏不包含自己,无论是直接包含还是通过其他宏链包含。如果VMD检测到这种情况,它将中止对原子选择的求值。

如果没有给出选择,则返回给定名称的宏。

如果没有指定名称,则返回所有宏名称的列表。

如果给定名称的宏已经存在,旧的选择将被替换为新的选择。没有定义为宏的单个单词,如蛋白质和水,不能用宏命令重新定义。


atomselect delmacro name

delmacro name:删除name对应的宏。不能删除未定义为宏的单个单词。


atomselect <molid> <selection text> [frame <n>] 

创建一个新的原子选择并返回其名称。返回的名称可以用作Tcl进程,以便访问原子选择。选择文本与图形窗口中使用的语言相同。它用来选择原子的一个给定子集。一旦做出选择,就不能更改文本。选择中的一些术语依赖于在轨迹中变化的数据(到目前为止,只有关键字“x”、“y”和“z”可以随时间变化)。对于这些,可选的“帧值”用于确定使用哪个特定的帧。帧号可以是一个非负整数,单词now(当前帧),单词first(第0帧)和last(最后一帧)。


一些例子是:

vmd> atomselect top "name CA"

atomselect0

vmd> atomselect 3 "resid 25" frame last

atomselect1

vmd> atomselect top "within 5 of resname LYR" frame 23

atomselect2


*top是指的顶层分子,并不是对应的 molid


atomselect(n)

这个是第二步,已经赋值后的操作,如atomselect0 num,其中0是指的atomselect前面赋值的序号

  • num:返回所选原子的个数。

  • list:返回选择中原子索引的列表(BTW,这与get index相同)。

  • text:返回用于创建此选区的文本。

  • molid:返回用于创建该选区的分子id。

  • frame:返回与这个选择相关联的动画帧。结果将是now、last或与帧对应的整数。当帧是现在时,原子选择将使用当前帧中的原子坐标作为其相关分子。如果帧是最后一个,则原子选择将始终使用最后一帧。如果帧是一个特定的整数,则选择将始终使用该帧的坐标,即使当前动画帧发生了变化。注意,如果指定了一个不存在的帧,原子坐标将引用最后一个帧。

  • frame frame:设置选择的帧。Frame应该是now、last或一个整数。

  • delete:删除该对象(删除该功能)。

  • global:将对象移动到全局命名空间。在Tcl进程中创建的未设置为全局的Atom选择将在该进程退出时删除。

  • upllevel level:将对象移动到命名空间堆栈中的新级别。与Tcl函数的工作原理相同。

  • get attribute_list:给定一个属性或一个属性列表,返回属性值。如果只给出一个属性,则返回相应属性值的列表。如果给出一个属性列表,则返回一个子列表;每个子列表将包含相应属性的值。

  • set attribute_list values_lists:使用值列表中给出的值来设置属性列表中的属性。如果只有一个属性,那么值列表可以是单个值,也可以是值列表,每个选择的原子对应一个值。如果有多个属性,则值列表必须是子列表的列表;子列表的数量必须等于所选原子的数量,每个子列表中的项的数量必须等于属性的数量。

  • get attribute_list:给定一个属性或一个属性列表,返回属性值。如果只给出一个属性,则返回相应属性值的列表。如果给出一个属性列表,则返回一个子列表;每个子列表将包含相应属性的值。

  • set attribute_list values_lists:使用值列表中给出的值来设置属性列表中的属性。如果只有一个属性,那么值列表可以是单个值,也可以是值列表,每个选择的原子对应一个值。如果有多个属性,则值列表必须是子列表的列表;子列表的数量必须等于所选原子的数量,每个子列表中的项的数量必须等于属性的数量。



image.png


set sel [atomselect top all]

set mass [$sel get mass]

set xyz [$sel get {x y z}]

$sel set beta 0

$sel set beta $mass 

$sel set {occupancy mass beta} $xyz


set表示对sel进行赋值,赋值的内容是[]内的内容,atomselect top all是对atomselect的操作

[$sel get mass]表示从$sel中获取mass的属性,这个sel前面已经设置了变量

类似

$sel 类似于前面的atomselect1,设置beta的数值为0

复制mass到beta

occupancy设为x,mass设为y,beta设为z


使用非数值设置整数或浮点关键字是错误的。如果将浮点值传递给整型关键字,它们将被转换为整数,反之亦然。

set命令立即更新所选分子的所有表示形式。如果速度是一个问题,在设置值之前删除分子的所有表示。

atomselect0 get mass 得到atomselect0所选范围的质量,还可以是{x y z}得坐标,{x}仅x坐标。get后面可以接任何属性

atomselect0 get structure 可以得到结构中每个残基所处的二级结构


上一篇axes下一篇animate
最新评论
请先登录才能进行回复登录
技术支持: CLOUD | 管理登录
seo seo