0

我正在编写解析器来解析 PyMOL 文件(生物信息学语言)。我知道双引号字符会生成一个类似"text". 但是单引号字符'不同。这是带有这个奇怪符号的 PyMOL 行的示例。

load dat/names.pdb

select test,name O4'
select test,*/O4'

select test,*/O4'+O3'
select test,(*/O4',O3')
select test,name O4'+O3'
select test,name "O4'+O3'"

select test,name O4'+Na\+
select test,(name Na\+,O4')
select test,name Na\++O4'
select test,*/Na\++O4'

select test,*/O4'+O4

select test,*/O2\*+O2

select test,*/O2\*+O2'

此报价适用于哪些语言标记?如何为这些线条着色?也许quote-char 是word-char 或分隔符char?在一个示例文件中,我看到了这种引用的用法,它是字符串标记'text'

iterate (all),resn = 'NON'

这是取自PyMOL GitHub repo的有效代码。

4

1 回答 1

0

PyMOL 与其说是一种语言,不如说是一种软件。但是,它提供了一组命令来支持某些 python 脚本。您的文件包含的是一组这样的命令。

第一个命令load dat/names.pdb加载一个 pdb 文件(一个包含 3D 坐标、名称和其他关于来自分子的原子的数据的文本文件,通常 - 但不总是 - 蛋白质)。可以在此处找到有关 pdb 文件的完整文档。

第二个和后续命令按照特定语法创建 PyMOL 选择(基本上是原子列表)。关键字name表示您要选择名称包含字符串的原子O4'(对于第一个select命令)。请注意,单引号是原子名称的一部分,而不是语言标记。通常,带有单引号字符的原子名称指出来自核酸(DNA 或 RNA)的原子。

该命令iterate (all),resn = 'NON'是一个 PyMOL 命令,用于迭代选择的所有原子;在这里,选择是(all),这意味着会话中加载的所有原子。但是语法对我来说似乎不正确。我假设您想要遍历所有属于残基的原子,NON例如,在这种情况下,您的命令应该看起来像iterate (resn NON), print name打印选择的所有原子的名称。如果要将所有原子的残基名称更改为NON,则应考虑改用 PyMOL 命令alter

于 2019-10-16T10:26:55.460 回答