在pymol中从笛卡尔坐标绘制彩色球体
我在查找如何将以下关于珠子的信息转换成图形,这些信息包括笛卡尔坐标和能量:
23.4 54.6 12.3 -123.5 54.5 23.1 9.45 -56.7 .......
我想在pymol中绘制一个图形,里面每个原子都有一个半径为R的球体,球体的中心在它的坐标上,并且颜色是彩虹渐变的。
谢谢!
2 个回答
0
我对彩虹渐变的部分不是很明白,不过关于上面/下面的代码,我需要把它改成这样:
import pymol
from pymol.cgo import *
from pymol import (
cmd ,
)
print('########## PYMOL VERSION ##########################################')
print(' ', cmd.get_version() )
print('###################################################################')
pymol.finish_launching()
spherelist = [
[COLOR, 0.100, 1.000, 0.000,
SPHERE, 30.304, 30.407, 30.531,0.30],
[COLOR, 1.000, 0.000, 0.000,
SPHERE, 30.250, 30.250, 30.250,0.20],
]
for i in spherelist:
a = str(spherelist.index(i))
cmd.load_cgo(i, 'sphere_'+a )
在Pymol版本中,根据输出结果:
########## PYMOL VERSION ##########################################
('2.3.0',
要让单独的对象像 spheres_0
和 spheres_1
看起来像这样:
我得查看代码,才弄明白在 load_cgo
中缺少的第三个参数,这在维基上没有提到: Load CGO PyMOLWiki,不过我猜 zoom
这个参数可能在很多命令中都可以用:
cmd.load_cgo(obj , cgo_name , zoom=0)
10
你在渲染的内容和分子结构真的有关系吗?也就是说,使用PyMol的目的是什么呢?
如果你是在绘制某个分子结构,我建议你直接输出一个自定义的PDB文件,里面包含球体的坐标(你可以利用每个ATOM行的B因子字段来控制每个原子的颜色,在PyMol中显示出来)。
如果你不是在绘制分子结构,使用PyMol的CGO接口会更合适。
根据PyMol的文档:
CGO球体是通过 SPHERE命令生成的。
SPHERE, x,y,z,d
其中x,y,z是球体中心的坐标,d是球体的直径。注意,COLOR命令用于设置球体的颜色。和LINES命令一样,只有在下一个要绘制的球体颜色变化时,才需要使用COLOR命令。
一个简单的例子:
from pymol.cgo import *
from pymol import cmd
spherelist = [
COLOR, 0.100, 1.000, 0.000,
SPHERE, 30.304, 30.407, 30.531,0.30,
COLOR, 1.000, 0.000, 0.000,
SPHERE, 30.250, 30.250, 30.250,0.20,
]
cmd.load_cgo(spherelist, 'segment', 1)