我正在编写解析器来解析PyMOL文件(生物信息学的语言)。
我知道双引号char会生成类似"text"
的字符串。但是单引号char '
是不同的。这是带有这个奇怪符号的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是单词char,还是分隔符char?在一个示例文件中,我看到了quote的这种用法,它是字符串标记'text'
:
iterate (all),resn = 'NON'
这是来自PyMOL GitHub repo的有效代码。
答案 0 :(得分:0)
PyMOL不仅仅是语言,还是软件。但是,它提供了一组命令来支持某些python脚本。您的文件包含的是一组此类命令。
第一个命令load dat/names.pdb
加载一个pdb文件(一个文本文件,包含3D坐标,名称和有关分子中原子原子的其他数据,通常是(但不总是)一种蛋白质)。可以在here中找到有关pdb文件的完整文档。
第二个及后续命令在specific syntax之后创建一个PyMOL选择(基本上是原子列表)。关键字name
表示您要选择名称包含字符串O4'
的原子(对于第一个select
命令)。请注意,单引号是原子名称的一部分,而不是语言标记。通常,带有单引号字符的原子名称会指出核酸(DNA或RNA)中的原子。
命令iterate (all),resn = 'NON'
是一个PyMOL命令,用于对选择的所有原子进行iterate;在这里,选择为(all)
,这意味着会话中加载的所有原子。但是语法对我来说似乎不正确。我假设您要遍历属于名为NON
的残基的所有原子,在这种情况下,您的命令应看起来像iterate (resn NON), print name
来打印所选内容的所有原子的名称。如果要将所有原子的残基名称更改为NON
,则应考虑使用PyMOL命令alter
。