PyMOL 命令行完全指南(终极完整版)
PyMOL 是一个功能强大的分子可视化软件,其命令行界面提供了对软件的精细控制。本指南旨在全面收录 PyMOL 的所有命令和使用方法,包括命令行启动选项、脚本编写、颜色系统等。
信息主要来源于官方 PyMOLWiki,经过详细整理和补充。
目录
命令行启动选项 (Command Line Options) PyMOL 脚本编写 (Script Writing) 颜色系统 (Color System) 选择原子 (Selection) 原子选择语法 (Selection Syntax) 显示与表示 (Display & Representation) 颜色 (Coloring) 透明度 (Transparency) 视图与相机 (Viewing & Camera) 文件输入/输出 (File I/O) 图片/动画导出 (Image/Movie Export) 结构对齐与叠合 (Structural Alignment) 测量与分析 (Measurement & Analysis) 分子编辑与构建 (Molecular Editing) 对象操作 (Object Control) 坐标变换 (Coordinate Transformation) 表面与体积 (Surface & Volume) 动画与状态 (Animation & States) 设置 (Settings) 内置工具/向导 (Built-in Tools/Wizards) 迭代与批处理 (Iteration & Batch Processing) Python API - cmd 模块命令 (Python API Commands) 其他命令 (Miscellaneous) 常见使用场景速查 (Quick Reference for Common Tasks)
1. 命令行启动选项 (Command Line Options)
PyMOL 可以通过各种命令行参数启动,这些参数控制其行为和加载的内容。
基本启动命令
命令 功能描述 示例 pymol
启动 PyMOL GUI pymol
pymol -c
启动命令行模式(无GUI) pymol -c
pymol -q
安静模式启动 pymol -q
pymol -e
启动后立即执行命令 pymol -e "fetch 1crn"
pymol -d "<commands>"
启动时执行指定命令 pymol -d "fetch 1crn; show cartoon"
pymol -r script.py
运行Python脚本 pymol -r myscript.py
pymol -l script.pml
加载PyMOL脚本 pymol -l commands.pml
pymol -u
无GUI启动(用于脚本) pymol -u script.pml
pymol -k
保持会话打开 pymol -k
文件加载选项
命令 功能描述 示例 pymol file.pdb
启动并加载PDB文件 pymol protein.pdb
pymol file1.pdb file2.pdb
启动并加载多个文件 pymol prot1.pdb prot2.pdb
pymol *.pdb
加载目录下所有PDB文件 pymol structures/*.pdb
pymol -M file.pdb
以多模型模式加载 pymol -M trajectory.pdb
高级启动选项
命令 功能描述 示例 pymol -p
启用PowerMate支持 pymol -p
pymol -i
启用内部反馈 pymol -i
pymol -s
启用安全模式 pymol -s
pymol -F
全屏模式启动 pymol -F
pymol -W <width>
设置窗口宽度 pymol -W 800
pymol -H <height>
设置窗口高度 pymol -H 600
pymol -x
启用实验性功能 pymol -x
pymol -2
使用OpenGL2.0 pymol -2
批处理模式示例
pymol -c -d "fetch 1crn; show cartoon; color red; png output.png; quit"
pymol -u -d "run batch_script.py"
for pdb in *.pdb; do pymol -c -d "load $pdb ; show cartoon; png ${pdb% .pdb} .png; quit"
done
echo "fetch 1crn; show cartoon; png test.png; quit" | pymol -c
2. PyMOL 脚本编写 (Script Writing)
PyMOL 支持两种主要的脚本格式:PyMOL 脚本文件(.pml)和 Python 脚本(.py)。
2.1 PyMOL 脚本文件 (.pml)
PyMOL 脚本文件使用 PyMOL 的原生命令语法。
基本语法规则
# 这是注释
# 命令可以一行一个
fetch 1crn
show cartoon
color red# 也可以用分号分隔多个命令
fetch 1crn; show cartoon; color red# 使用反斜杠续行
show sticks, \resn TRP or resn PHE \or resn TYR# 变量不直接支持,但可以使用Python嵌入
python
stored.my_color = "red"
python end
color $stored.my_color
入门示例 1:基本蛋白质可视化
# basic_visualization.pml
# 基本蛋白质可视化脚本# 加载蛋白质结构
fetch 1crn
# 或者: load protein.pdb# 设置基本显示
hide everything
show cartoon
color cyan, all# 显示配体(如果有)
select ligand, organic
show sticks, ligand
color yellow, ligand# 显示重要残基
select important, resi 10+20+30
show sticks, important
color red, important# 调整视图
center
zoom
orient# 设置漂亮的渲染
set ray_shadow, on
set ambient, 0.2
set direct, 0.8# 保存图像
png beautiful_protein.png, width=1200, height=800, dpi=300
入门示例 2:多结构比较
# structure_comparison.pml
# 多结构比较脚本# 加载两个结构
fetch 1crn, async=0
fetch 1ctf, async=0# 重命名对象
set_name 1crn, structure1
set_name 1ctf, structure2# 对齐结构
align structure2, structure1# 设置显示
hide everything# 结构1显示为卡通,蓝色
show cartoon, structure1
color blue, structure1# 结构2显示为卡通,红色,半透明
show cartoon, structure2
color red, structure2
set cartoon_transparency, 0.5, structure2# 显示对齐区域
select aligned, structure1 and (byres (structure1 within 3.5 of structure2))
show sticks, aligned
color yellow, aligned# 计算并显示RMSD
rms_cur structure2, structure1# 保存结果
save comparison.pse
png comparison.png
入门示例 3:循环处理多个文件
# batch_process.pml
# 批处理多个结构文件python
import os
import glob# 获取所有pdb文件
pdb_files = glob.glob("*.pdb")for pdb_file in pdb_files:# 获取文件名(不含扩展名)base_name = os.path.splitext(pdb_file)[0]# 加载结构cmd.load(pdb_file, base_name)# 设置显示cmd.hide("everything", base_name)cmd.show("cartoon", base_name)cmd.color("cyan", base_name)# 如果有配体,高亮显示cmd.select("ligand", f"{base_name} and organic")if cmd.count_atoms("ligand") > 0:cmd.show("sticks", "ligand")cmd.color("yellow", "ligand")# 调整视图cmd.center(base_name)cmd.orient(base_name)# 保存图像cmd.png(f"{base_name}_processed.png", width=800, height=600)# 删除对象以节省内存cmd.delete(base_name)cmd.delete("ligand")python end
2.2 Python 脚本 (.py)
Python 脚本提供了更强大的编程能力。
基本Python脚本结构
import pymol
from pymol import cmd, stored
pymol. finish_launching( [ 'pymol' , '-q' ] ) def main ( ) : cmd. fetch( "1crn" ) cmd. show( "cartoon" ) cmd. color( "red" ) cmd. png( "output.png" ) if __name__ == "__main__" : main( )
入门示例 4:高级蛋白质分析脚本
import pymol
from pymol import cmd, stored
import numpy as npdef analyze_protein ( pdb_id) : """分析蛋白质结构的函数""" cmd. fetch( pdb_id) chains = cmd. get_chains( pdb_id) print ( f"蛋白质 { pdb_id} 有 { len ( chains) } 条链: { ', ' . join( chains) } " ) for chain in chains: residues = cmd. count_atoms( f" { pdb_id} and chain { chain} and name CA" ) print ( f"链 { chain} : { residues} 个残基" ) cmd. select( "ligands" , f" { pdb_id} and organic" ) if cmd. count_atoms( "ligands" ) > 0 : print ( "发现配体:" ) stored. ligand_names = [ ] cmd. iterate( "ligands" , "stored.ligand_names.append(resn)" ) unique_ligands = list ( set ( stored. ligand_names) ) print ( f"配体类型: { ', ' . join( unique_ligands) } " ) stored. b_factors = [ ] cmd. iterate_state( 1 , f" { pdb_id} and name CA" , "stored.b_factors.append(b)" ) if stored. b_factors: mean_b = np. mean( stored. b_factors) std_b = np. std( stored. b_factors) print ( f"平均B-factor: { mean_b: .2f } ± { std_b: .2f } " ) visualize_structure( pdb_id) return { 'chains' : chains, 'mean_b_factor' : mean_b if stored. b_factors else None , 'ligands' : unique_ligands if cmd. count_atoms( "ligands" ) > 0 else [ ] } def visualize_structure ( obj_name) : """生成结构的可视化""" cmd. hide( "everything" , obj_name) cmd. show( "cartoon" , obj_name) cmd. spectrum( "b" , "blue_white_red" , f" { obj_name} and polymer" , minimum= 10 , maximum= 50 ) if cmd. count_atoms( f" { obj_name} and organic" ) > 0 : cmd. show( "sticks" , f" { obj_name} and organic" ) cmd. color( "yellow" , f" { obj_name} and organic" ) if cmd. count_atoms( f" { obj_name} and metals" ) > 0 : cmd. show( "spheres" , f" { obj_name} and metals" ) cmd. color( "orange" , f" { obj_name} and metals" ) cmd. center( obj_name) cmd. orient( obj_name) cmd. set ( "ray_shadow" , "on" ) cmd. set ( "ambient" , 0.2 ) cmd. set ( "direct" , 0.8 ) cmd. png( f" { obj_name} _analysis.png" , width= 1200 , height= 800 , dpi= 300 ) def batch_analyze ( pdb_list) : """批量分析多个蛋白质""" results = { } for pdb_id in pdb_list: print ( f"\n分析 { pdb_id} ..." ) try : results[ pdb_id] = analyze_protein( pdb_id) cmd. delete( pdb_id) except Exception as e: print ( f"分析 { pdb_id} 时出错: { e} " ) results[ pdb_id] = None return results
if __name__ == "__main__" : result = analyze_protein( "1crn" ) pdb_list = [ "1crn" , "1ctf" , "2hhb" ] batch_results = batch_analyze( pdb_list) print ( "\n=== 分析总结 ===" ) for pdb_id, data in batch_results. items( ) : if data: print ( f" { pdb_id} : { len ( data[ 'chains' ] ) } 条链, { len ( data[ 'ligands' ] ) } 种配体" )
入门示例 5:创建自定义函数
from pymol import cmddef color_by_chain ( ) : """为每条链分配不同颜色""" colors = [ 'red' , 'green' , 'blue' , 'yellow' , 'magenta' , 'cyan' , 'orange' , 'purple' ] objects = cmd. get_object_list( '(all)' ) for obj in objects: chains = cmd. get_chains( obj) for i, chain in enumerate ( chains) : color = colors[ i % len ( colors) ] cmd. color( color, f" { obj} and chain { chain} " ) def show_binding_site ( ligand_selection, distance= 5.0 ) : """显示配体结合位点""" site_name = "binding_site" cmd. select( site_name, f"byres ( { ligand_selection} around { distance} ) and polymer" ) cmd. show( "sticks" , site_name) cmd. color( "green" , site_name) cmd. show( "sticks" , ligand_selection) cmd. color( "yellow" , ligand_selection) return site_namedef make_publication_figure ( ) : """制作发表级质量的图像""" cmd. set ( "ray_shadow" , "on" ) cmd. set ( "ambient" , 0.15 ) cmd. set ( "direct" , 0.8 ) cmd. set ( "reflect" , 0.8 ) cmd. set ( "specular" , 1 ) cmd. set ( "shininess" , 10 ) cmd. set ( "specular_intensity" , 0.5 ) cmd. set ( "antialias" , 2 ) cmd. set ( "depth_cue" , 1 ) cmd. set ( "fog_start" , 0.4 ) print ( "已设置发表级质量参数" ) def save_session_script ( filename= "session_recreation.pml" ) : """保存重现当前会话的脚本""" with open ( filename, 'w' ) as f: f. write( "# 自动生成的会话重现脚本\n\n" ) objects = cmd. get_object_list( '(all)' ) for obj in objects: f. write( f"# 加载对象 { obj} \n" ) f. write( f"load { obj} .pdb, { obj} \n\n" ) view = cmd. get_view( ) f. write( "# 设置视图\n" ) f. write( f"set_view { view} \n\n" ) f. write( "# 可以在此添加其他设置...\n" ) print ( f"会话重现脚本已保存到 { filename} " )
cmd. extend( "color_by_chain" , color_by_chain)
cmd. extend( "show_binding_site" , show_binding_site)
cmd. extend( "make_publication_figure" , make_publication_figure)
cmd. extend( "save_session_script" , save_session_script)
"""
在PyMOL中使用:
color_by_chain
show_binding_site ligand, 4.0
make_publication_figure
save_session_script my_session.pml
"""
脚本调试技巧
stored. debug_info = [ ]
cmd. iterate( "all" , "stored.debug_info.append((resi, resn, name))" )
print ( f"找到 { len ( stored. debug_info) } 个原子" )
def debug_selection ( selection) : count = cmd. count_atoms( selection) if count == 0 : print ( f"警告: 选择 ' { selection} ' 没有找到原子" ) else : print ( f"选择 ' { selection} ' 包含 { count} 个原子" ) return count
try : cmd. align( "mobile" , "target" )
except pymol. CmdException as e: print ( f"对齐失败: { e} " ) cmd. super ( "mobile" , "target" )
def step_by_step_demo ( ) : input ( "按回车键加载结构..." ) cmd. fetch( "1crn" ) input ( "按回车键显示卡通..." ) cmd. show( "cartoon" ) input ( "按回车键着色..." ) cmd. color( "red" ) print ( "演示完成!" )
3. 颜色系统 (Color System)
PyMOL 拥有丰富的颜色系统,包括预定义颜色、RGB 值、颜色方案等。
3.1 预定义颜色
颜色名 英文名 RGB值 示例 red
红色 [1.0, 0.0, 0.0] color red, chain A
green
绿色 [0.0, 1.0, 0.0] color green, chain B
blue
蓝色 [0.0, 0.0, 1.0] color blue, chain C
yellow
黄色 [1.0, 1.0, 0.0] color yellow, ligand
magenta
品红色 [1.0, 0.0, 1.0] color magenta, metals
cyan
青色 [0.0, 1.0, 1.0] color cyan, polymer
white
白色 [1.0, 1.0, 1.0] color white, all
black
黑色 [0.0, 0.0, 0.0] color black, carbon
orange
橙色 [1.0, 0.5, 0.0] color orange, active_site
purple
紫色 [0.5, 0.0, 0.5] color purple, secondary
gray
或 grey
灰色 [0.5, 0.5, 0.5] color gray, background
brown
棕色 [0.65, 0.32, 0.17] color brown, hydrophobic
pink
粉色 [1.0, 0.75, 0.8] color pink, highlight
lime
酸橙色 [0.5, 1.0, 0.0] color lime, new_feature
violet
紫罗兰色 [0.9, 0.0, 0.9] color violet, special
3.2 扩展颜色调色板
颜色名 描述 RGB值 用途 slate
石板色 [0.5, 0.5, 0.9] 蛋白质主链 hotpink
热粉色 [1.0, 0.0, 0.5] 突出显示 firebrick
火砖色 [0.7, 0.13, 0.13] 螺旋结构 chocolate
巧克力色 [0.82, 0.41, 0.12] 疏水区域 salmon
鲑鱼色 [0.98, 0.5, 0.45] 柔和高亮 limegreen
酸橙绿 [0.2, 0.8, 0.2] 活性位点 splitpea
豌豆绿 [0.52, 0.75, 0.0] 环路区域 raspberry
树莓色 [0.7, 0.3, 0.4] 配体 sand
沙色 [0.72, 0.55, 0.3] 中性区域 smudge
污迹色 [0.55, 0.7, 0.4] 表面着色 teal
蓝绿色 [0.0, 0.5, 0.5] 水分子 lightteal
浅蓝绿 [0.4, 0.7, 0.7] 溶剂区域 darksalmon
深鲑鱼色 [0.91, 0.59, 0.48] 温和对比 warmpink
暖粉色 [0.85, 0.2, 0.5] 结合位点 limon
柠檬色 [0.75, 1.0, 0.25] 明亮区域 skyblue
天蓝色 [0.5, 0.8, 1.0] 水通道 purpleblue
紫蓝色 [0.5, 0.0, 1.0] 核酸
3.3 按原子类型的默认颜色
元素 颜色名 RGB值 描述 C
(碳)green
[0.0, 1.0, 0.0] 碳原子 N
(氮)blue
[0.0, 0.0, 1.0] 氮原子 O
(氧)red
[1.0, 0.0, 0.0] 氧原子 H
(氢)white
[1.0, 1.0, 1.0] 氢原子 S
(硫)yellow
[1.0, 1.0, 0.0] 硫原子 P
(磷)orange
[1.0, 0.5, 0.0] 磷原子 F
(氟)lightgreen
[0.7, 1.0, 0.7] 氟原子 Cl
(氯)green
[0.0, 1.0, 0.0] 氯原子 Br
(溴)brown
[0.65, 0.32, 0.17] 溴原子 I
(碘)purple
[0.5, 0.0, 0.5] 碘原子 Fe
(铁)orange
[1.0, 0.5, 0.0] 铁原子 Ca
(钙)green
[0.0, 1.0, 0.0] 钙离子 Mg
(镁)forestgreen
[0.13, 0.54, 0.13] 镁离子 Zn
(锌)blue
[0.0, 0.0, 1.0] 锌离子
3.4 颜色方案和渐变
颜色方案 描述 使用场景 示例 rainbow
彩虹色谱 序列着色 spectrum count, rainbow, polymer
red_white_blue
红白蓝渐变 双极数据 spectrum b, red_white_blue
blue_white_red
蓝白红渐变 双极数据(相反) spectrum b, blue_white_red
red_yellow_green
红黄绿渐变 热图着色 spectrum q, red_yellow_green
blue_yellow_red
蓝黄红渐变 温度图 spectrum temp, blue_yellow_red
green_red
绿红渐变 简单双色 spectrum data, green_red
blue_red
蓝红渐变 简单双色 spectrum values, blue_red
cyan_magenta
青品红渐变 高对比度 spectrum score, cyan_magenta
yellow_cyan_white
黄青白渐变 软渐变 spectrum field, yellow_cyan_white
purple_white_green
紫白绿渐变 生物学数据 spectrum bio, purple_white_green
3.5 自定义颜色
# 定义自定义颜色
set_color my_red = [0.8, 0.1, 0.1]
set_color my_blue = [0.1, 0.1, 0.8]
set_color my_green = [0.1, 0.8, 0.1]# 使用自定义颜色
color my_red, chain A
color my_blue, chain B# 定义渐变色
set_color light_red = [1.0, 0.7, 0.7]
set_color medium_red = [1.0, 0.3, 0.3]
set_color dark_red = [0.7, 0.0, 0.0]# 创建自定义颜色方案
ramp_new my_gradient, protein, [light_red, medium_red, dark_red]
3.6 颜色实用函数
# 按原子类型着色
util.cba all # Color By Atom type
util.cbac all # Color By Atom type (Carbon)
util.cbag all # Color By Atom type (Gray background)
util.cbaw all # Color By Atom type (White background)
util.cbas all # Color By Atom type (Slate background)# 按链着色
util.cbc all # Color By Chain
util.color_chains all # 随机链着色# 按二级结构着色
util.cbss all # Color By Secondary Structure# 按残基类型着色
util.cbr all # Color By Residue type# 深色主题
util.color_deep all
3.7 颜色使用技巧和最佳实践
科学发表的颜色选择
# 色盲友好的颜色组合
set_color cb_red = [0.8, 0.4, 0.0] # 橙红色
set_color cb_blue = [0.0, 0.6, 0.8] # 天蓝色
set_color cb_green = [0.0, 0.6, 0.4] # 蓝绿色
set_color cb_yellow = [0.9, 0.6, 0.0] # 黄色
set_color cb_purple = [0.8, 0.4, 0.8] # 紫色
set_color cb_pink = [0.8, 0.6, 0.7] # 粉色# 高对比度组合(黑白打印友好)
set_color print_black = [0.0, 0.0, 0.0]
set_color print_darkgray = [0.3, 0.3, 0.3]
set_color print_gray = [0.6, 0.6, 0.6]
set_color print_lightgray = [0.8, 0.8, 0.8]# 专业的蛋白质着色方案
color slate, polymer and ss h # 螺旋 - 石板色
color wheat, polymer and ss s # 折叠 - 小麦色
color salmon, polymer and ss l # 环 - 鲑鱼色
按功能区域着色示例
# 活性位点分析着色
select active_site, resi 52+83+119+159+185
select substrate_binding, resi 45+46+47+120+121
select allosteric_site, resi 200+201+202+250+251color red, active_site # 活性位点 - 红色
color orange, substrate_binding # 底物结合 - 橙色
color blue, allosteric_site # 异构位点 - 蓝色
color gray90, polymer and not (active_site or substrate_binding or allosteric_site)
动态颜色变化
# 创建动态颜色变化
python
import math
for i in range(1, 101):# 计算颜色强度intensity = (math.sin(i * 0.1) + 1) / 2red_val = intensityblue_val = 1 - intensity# 定义颜色cmd.set_color(f"dynamic_{i}", [red_val, 0.5, blue_val])# 应用到特定帧cmd.mdo(i, f"color dynamic_{i}, chain A")
python end
4. 选择原子 (Selection)
命令 功能描述 示例 select
创建一个新的原子选择集 select ligand, resn HEM
select_list
通过原子索引列表创建选择 select_list mysel, [1,5,10,15]
deselect
取消当前高亮的选择 deselect
delete
删除一个已命名的选择集或对象 delete ligand
pop
删除选择并将其原子合并到前一个选择集 select chain A; select resi 10; pop
push
将当前选择集压入栈中 push current_selection
load_selection
从文件中加载选择集 load_selection mysel.txt, mymol
save_selection
将选择集保存到文件 save_selection selection.txt, (resi 10-20)
indicate
高亮显示选择的原子 indicate (resn LIG)
5. 原子选择语法 (Selection Syntax)
选择语法是 PyMOL 的核心,它允许你精确地定位到分子中的任何部分。
基本选择
语法 描述 示例 all
选择所有原子 color red, all
none
不选择任何原子 show sticks, none
(sele)
括号内的选择表达式 show spheres, (chain A and resn LIG)
visible
选择当前可见的原子 select visible_atoms, visible
present
选择当前存在的原子(未被删除) count_atoms present
enabled
选择启用对象中的原子 select enabled_atoms, enabled
按属性选择
语法 描述 示例 name <atom names>
按原子名称选择 select CAs, name CA
elem <symbols>
按元素符号选择 select sulfurs, elem S
resn <residue names>
按残基名称选择 select waters, resn HOH
resi <residue identifiers>
按残基编号选择 select r10, resi 10
resi <start>-<end>
选择一个范围的残基 select loop, resi 10-20
chain <chain identifiers>
按链标识符选择 select chainA, chain A
segi <segment identifiers>
按Segment标识符选择 select seg1, segi A1
alt <alternate identifiers>
按备用位置标识符选择 select altA, alt A
state <state number>
按状态号选择 select state1, state 1
分子类型选择
语法 描述 示例 polymer
选择聚合物(蛋白质、核酸) hide nonbonded, polymer
organic
选择有机分子部分 show sticks, organic
inorganic
选择无机分子部分 show spheres, inorganic
solvent
选择溶剂分子 hide solvent
hetatm
选择杂原子(非标准残基) show spheres, hetatm
hydrogens
或 hydro
选择氢原子 hide hydro
metals
选择金属原子 show spheres, metals
donor
选择氢键给体 color blue, donor
acceptor
选择氢键受体 color red, acceptor
空间选择
语法 描述 示例 (sele) around <dist>
选择在指定距离内的原子 select pocket, (resn LIG) around 3.5
(sele) expand <dist>
将选择扩展指定的距离 select shell, expand 5
(sele) within <dist> of (sele2)
选择距离第二个选择指定距离内的原子 select nearby, within 4 of ligand
(sele) beyond <dist> of (sele2)
选择距离第二个选择指定距离外的原子 select far, beyond 10 of center
(sele) near_to <dist>
选择距离小于指定值的原子对 select contacts, (chain A near_to 4 of chain B)
byres (sele)
扩展选择到整个残基 select near_res, byres (ligand around 4)
bymolecule (sele)
扩展选择到整个分子 select full_mol, bymolecule (resn LIG)
byobject (sele)
或 byobj (sele)
扩展选择到整个对象 select obj_with_lig, byobj (resn LIG)
bychain (sele)
扩展选择到整条链 select whole_chain, bychain (resi 100)
bysegi (sele)
扩展选择到整个片段 select whole_seg, bysegi (chain A)
结构选择
语法 描述 示例 ss h
或 ss H
选择螺旋二级结构 color red, ss h
ss s
或 ss S
选择β折叠二级结构 color blue, ss s
ss l
或 ss L
选择环/转角结构 color green, ss l
ss ""
选择未定义的二级结构 color gray, ss ""
backbone
或 bb
选择主链原子 show cartoon, backbone
sidechain
或 sc
选择侧链原子 show sticks, sidechain
6. 显示与表示 (Display & Representation)
命令 功能描述 示例 show
以某种表示形式显示选择 show cartoon, protein
hide
隐藏某种表示形式 hide lines, all
as
show
的别名as cartoon, chain A
preset
应用预设的显示样式 preset.pretty(selection="all")
cartoon
设置卡通表示的类型 cartoon tube, all
set_bond
设置键的显示属性 set_bond stick_radius, 0.2, all
rebuild
重建对象的表示 rebuild
表示类型
表示类型 描述 示例 lines
线状表示 show lines, organic
sticks
棍状表示 show sticks, resn TRP
spheres
球状(CPK)表示 show spheres, hetatm
surface
分子表面 show surface, all
mesh
网格表面 show mesh, all
dots
点状表面 show dots, all
cartoon
卡通表示 show cartoon, polymer
ribbon
带状表示 show ribbon, all
nonbonded
非键合表示(点) show nonbonded, (elem Cl)
nb_spheres
非键合球状表示 show nb_spheres, ions
ellipsoids
椭球表示(各向异性) show ellipsoids, all
labels
标签显示 show labels, name CA
7. 颜色 (Coloring)
命令 功能描述 示例 color
为选择的原子上色 color red, resn HEM
spectrum
按属性进行彩虹色谱着色 spectrum b, blue_white_red, minimum=10, maximum=50
spectrum_states
跨状态进行光谱着色 spectrum_states, 1, 10
color_deep
深色主题着色 color_deep
rainbow
彩虹着色(按残基) rainbow chain A
ramp_new
创建颜色渐变对象 ramp_new my_ramp, protein, [blue, white, red]
bg_color
设置背景颜色 bg_color white
set_color
定义新颜色 set_color my_blue = [0.1, 0.2, 0.8]
实用着色函数
命令 功能描述 示例 util.cbag
按链着色并灰化其余部分 util.cbag
util.cbc
按链着色 util.cbc (all)
util.cbac
按链和原子着色 util.cbac
util.cba
按原子着色 util.cba all
util.cbaw
按原子着色(白色背景) util.cbaw
util.cbas
按原子着色(灰色背景) util.cbas
util.color_chains
为每条链随机着色 util.color_chains
util.color_deep
深色主题 util.color_deep
util.cnc
按核酸链着色 util.cnc
8. 透明度 (Transparency)
命令 功能描述 示例 set transparency
设置全局透明度 set transparency, 0.5, all
set surface_transparency
设置表面透明度 set surface_transparency, 0.2, (all)
set cartoon_transparency
设置卡通表示透明度 set cartoon_transparency, 0.8, (chain A)
set stick_transparency
设置棍状表示透明度 set stick_transparency, 0.3
set sphere_transparency
设置球状表示透明度 set sphere_transparency, 0.4
set mesh_transparency
设置网格透明度 set mesh_transparency, 0.6
set ribbon_transparency
设置带状表示透明度 set ribbon_transparency, 0.7
9. 视图与相机 (Viewing & Camera)
命令 功能描述 示例 zoom
缩放到指定的选择 zoom (resi 10-20)
center
将视图中心置于指定选择 center (resn LIG)
orient
旋转平移使选择最大化充满屏幕 orient (polymer)
clip
移动前/后剪裁平面 clip near, 5
move
移动相机 move x, 5
turn
旋转相机 turn x, 45
rotate
围绕轴旋转 rotate x, 90
translate
平移对象 translate [1,0,0], object
rock
启动/停止摇滚动画 rock
reset
重置视图 reset
get_view
获取当前视图矩阵 get_view
set_view
设置视图矩阵 set_view (...)
scene
存储或恢复场景 scene F1, store
viewport
设置视口大小 viewport 800, 600
full_screen
切换全屏模式 full_screen
10. 文件输入/输出 (File I/O)
命令 功能描述 示例 load
加载各种格式的文件 load protein.pdb
fetch
从在线数据库下载并加载文件 fetch 1crn
save
保存分子、map、session等 save my_protein.pdb, (chain A)
load_traj
加载轨迹文件 load_traj traj.dcd, prot.pdb
load_ccp4
加载CCP4密度图 load_ccp4 map.ccp4
load_cgo
加载计算机图形对象 load_cgo objects.cgo
load_callback
加载回调对象 load_callback cb.py
load_coords
加载坐标数据 load_coords coords.txt, format=xyz
split_states
将多状态对象分割成独立对象 split_states myobj
export_coords
导出坐标 export_coords coords.txt, (name CA)
文件格式支持
格式 描述 示例 .pdb
Protein Data Bank格式 load protein.pdb
.pdb.gz
压缩的PDB文件 load protein.pdb.gz
.cif
mmCIF格式 load structure.cif
.mol2
Tripos MOL2格式 load ligand.mol2
.sdf
Structure Data File格式 load compounds.sdf
.mol
MDL Molfile格式 load molecule.mol
.xyz
XYZ坐标格式 load coords.xyz
.ccp4
CCP4密度图格式 load_ccp4 density.map
.dcd
CHARMM轨迹格式 load_traj traj.dcd, ref.pdb
.trr/.xtc
GROMACS轨迹格式 load_traj traj.xtc, ref.gro
11. 图片/动画导出 (Image/Movie Export)
命令 功能描述 示例 png
保存当前视图为PNG图片 png my_image.png
ray
使用光线追踪引擎渲染图像 ray 1200, 800
draw
使用OpenGL渲染图像 draw 800, 600
copy_image
复制图像到剪贴板 copy_image
mpng
保存多帧PNG序列 mpng movie_frames
mclear
清空电影内存 mclear
mset
设置多状态对象的行为 mset 1 -50
mdo
为特定帧设置命令 mdo 10: color red, chain A
frame
设置当前帧 frame 10
mplay
播放动画 mplay
mstop
停止动画 mstop
rewind
倒回到第一帧 rewind
forward
前进到最后一帧 forward
movie.produce
生成动画文件 movie.produce movie.mpg
movie.add_state_loop
添加状态循环 movie.add_state_loop 1, 30
movie.add_state_sweep
添加状态扫描 movie.add_state_sweep 1, 30, 1
movie.add_nutate
添加章动动画 movie.add_nutate 30, 15
movie.add_roll
添加滚动动画 movie.add_roll 30, 1, 360
movie.add_rock
添加摇摆动画 movie.add_rock 30, 30
12. 结构对齐与叠合 (Structural Alignment)
命令 功能描述 示例 align
序列对齐后结构叠合 align mobile_protein, target_protein
super
结构叠合(更强大) super mobile, target, cycles=5
cealign
CE结构对齐算法 cealign mobile, target
tmalign
TM-score结构对齐 tmalign mobile, target
pair_fit
对指定原子对进行拟合 pair_fit (mobile and name CA), (target and name CA)
fit
简单的RMS拟合 fit mobile, target
rms
计算RMS偏差 rms mobile, target
rms_cur
计算当前RMS偏差 rms_cur mobile, target
intra_fit
对象内状态间拟合 intra_fit protein, 1
intra_rms
计算对象内状态间RMS intra_rms protein, 1
intra_rms_cur
计算当前对象内状态间RMS intra_rms_cur protein, 1
alignto
将多个对象对齐到一个目标 alignto target
extra_fit
全局对齐多个结构 extra_fit
高级对齐选项
命令 功能描述 示例 align
(with options)带参数的对齐 align mobile, target, cycles=0, transform=0
super
(with options)带参数的结构叠合 super mobile, target, cutoff=2.0, cycles=5
cealign
(with options)CE对齐带参数 cealign mobile, target, transform=1, object=aln
13. 测量与分析 (Measurement & Analysis)
命令 功能描述 示例 distance
创建距离测量对象 distance d1, (resi 10 and name CA), (resi 50 and name CA)
angle
创建角度测量对象 angle a1, (resi 10/CA), (resi 10/C), (resi 11/N)
dihedral
创建二面角测量对象 dihedral t1, (pk1), (pk2), (pk3), (pk4)
get_distance
获取两原子间距离 get_distance (resi 10 and name CA), (resi 20 and name CA)
get_angle
获取三原子间角度 get_angle (pk1), (pk2), (pk3)
get_dihedral
获取四原子间二面角 get_dihedral (pk1), (pk2), (pk3), (pk4)
find_pairs
寻找原子对 find_pairs (chain A), (chain B), cutoff=4.0
get_area
计算溶剂可及表面积 get_area (all)
get_volume
计算体积 get_volume (all)
count_atoms
计算选择中的原子数量 count_atoms (resn HOH)
count_states
计算对象中的状态数 count_states protein
get_model
获取模型坐标 get_model (name CA and resi 10)
get_coords
获取坐标数组 get_coords (name CA)
get_extent
获取选择的空间范围 get_extent (all)
centerofmass
计算质心 centerofmass (chain A)
get_chains
获取链标识符列表 get_chains protein
get_phipsi
获取phi/psi角度 get_phipsi (chain A)
phi_psi
显示phi/psi角度图 phi_psi (chain A)
高级分析
命令 功能描述 示例 contact
生成接触图 contact contact_obj, (chain A), (chain B), 4.0
get_raw_distances
获取原始距离矩阵 get_raw_distances (name CA), (name CA), 2.0, 20.0
get_symmetry
获取晶体对称信息 get_symmetry protein
get_object_list
获取对象列表 get_object_list
get_names
获取名称列表 get_names objects
identify
识别原子 identify (pk1)
index
获取原子索引 index (name CA)
14. 分子编辑与构建 (Molecular Editing)
命令 功能描述 示例 edit
进入编辑模式 edit (resi 10 and name CA)
bond
创建化学键 bond (resi 10 and name SG), (resi 20 and name SG)
unbond
删除化学键 unbond (resi 10 and name SG), (resi 20 and name SG)
remove
删除原子或选择 remove hydro
h_add
添加氢原子 h_add
h_fix
修复氢原子 h_fix (resn LIG)
h_fill
填充氢原子 h_fill
attach
附着原子或基团 attach H, 1, 1
replace
替换原子 replace (resi 10 and name CB), C, 4
fuse
融合环结构 fuse (resi 10), (resi 11), mode=1
undo
撤销上次编辑 undo
redo
重做编辑 redo
protect
保护原子不被编辑 protect (chain A)
deprotect
取消保护 deprotect (chain A)
fix_chemistry
修复化学结构 fix_chemistry (resn LIG)
分子构建
命令 功能描述 示例 fragment
加载分子片段 fragment ala
pseudoatom
创建伪原子 pseudoatom center, (chain A)
copy
复制选择 copy new_obj, (chain A)
symexp
扩展对称相关分子 symexp sym, protein, (protein), 5.0
create
基于选择创建新对象 create ligand_obj, (resn LIG)
extract
提取选择到新对象 extract new_chain, chain B
结构修改
命令 功能描述 示例 alter
修改原子属性 alter (resi 10), resn="ALA"
alter_state
修改坐标 alter_state 1, (resi 10), x=x+5.0
sort
排序原子 sort protein
update
更新坐标 update protein, coords
invert
翻转立体中心 invert
sculpt_activate
激活雕刻模式 sculpt_activate protein
sculpt_deactivate
停用雕刻模式 sculpt_deactivate
sculpt_iterate
执行雕刻迭代 sculpt_iterate protein, cycles=100
clean
清理结构 clean (resn LIG)
15. 对象操作 (Object Control)
命令 功能描述 示例 create
基于选择创建新分子对象 create ligand_obj, (resn LIG and chain A)
extract
create
的别名extract new_chain, chain B
delete
删除对象或选择 delete my_protein
rename
重命名对象或选择 rename my_protein, protein_1
set_name
改变对象名称 set_name old_name, new_name
group
将多个对象分组 group complex, protein, ligand
ungroup
解散组 ungroup complex
order
改变对象在列表中的顺序 order *, yes
enable
启用对象 enable ligand
disable
禁用对象 disable ligand
toggle
切换对象启用状态 toggle ligand
isolate
隔离显示选择的对象 isolate chain A
copy
复制对象 copy protein_copy, protein
move
移动对象 move x, 5, protein
matrix_copy
复制变换矩阵 matrix_copy source, target
matrix_reset
重置变换矩阵 matrix_reset protein
对象状态管理
命令 功能描述 示例 create
(multi-state)创建多状态对象 create traj, (protein), 1, 100
load_traj
加载轨迹为多状态对象 load_traj trajectory.dcd, protein.pdb
split_states
分割多状态对象 split_states trajectory
join_states
合并状态到对象 join_states combined, obj1, obj2
get_object_state
获取对象状态信息 get_object_state protein
16. 坐标变换 (Coordinate Transformation)
命令 功能描述 示例 translate
平移对象 translate [1,0,0], protein
rotate
旋转对象 rotate x, 90, protein
transform_object
应用4x4变换矩阵 transform_object protein, matrix
transform_selection
对选择应用变换 transform_selection (chain A), matrix
matrix_copy
复制变换矩阵 matrix_copy source_obj, target_obj
matrix_reset
重置对象变换矩阵 matrix_reset protein
origin
设置旋转中心 origin (resn LIG)
reset_origin
重置旋转中心 reset_origin
坐标操作
命令 功能描述 示例 alter_state
修改特定状态的坐标 alter_state 1, (chain A), x=x+10
get_coords
获取坐标数组 coords = get_coords("name CA")
load_coords
加载坐标到对象 load_coords coords_array, selection
push_undo
推送到撤销栈 push_undo protein, 1
17. 表面与体积 (Surface & Volume)
命令 功能描述 示例 surface
显示分子表面 show surface, protein
dots
显示点状表面 show dots, protein
mesh
显示网格表面 show mesh, protein
isosurface
创建等值面 isosurface surf1, map_obj, 1.0
isodot
创建等值点表面 isodot dots1, map_obj, 1.0
isomesh
创建等值网格 isomesh mesh1, map_obj, 1.0
gradient
计算密度图梯度 gradient grad_map, density_map
get_area
计算表面积 get_area (protein)
get_volume
计算体积 get_volume (protein)
密度图操作
命令 功能描述 示例 load_ccp4
加载CCP4密度图 load_ccp4 density.map
map_new
创建新的密度图 map_new mymap, protein
map_set
设置密度图属性 map_set mymap, 1, 1.0
map_double
加倍密度图分辨率 map_double mymap
map_halve
减半密度图分辨率 map_halve mymap
map_trim
修剪密度图 map_trim mymap, protein, 2.0
volume
创建体积对象 volume vol1, density_map
volume_color
设置体积颜色 volume_color vol1, blue_white_red
表面属性
命令 功能描述 示例 set surface_quality
设置表面质量 set surface_quality, 2
set surface_type
设置表面类型 set surface_type, 1
set surface_mode
设置表面模式 set surface_mode, 3
set mesh_quality
设置网格质量 set mesh_quality, 2
set mesh_radius
设置网格半径 set mesh_radius, 1.4
18. 动画与状态 (Animation & States)
命令 功能描述 示例 frame
设置当前帧 frame 10
get_frame
获取当前帧号 get_frame
count_frames
计算总帧数 count_frames
mset
设置电影 mset 1 x100
mclear
清空电影 mclear
mdo
电影帧命令 mdo 10: color red, chain A
mplay
播放动画 mplay
mstop
停止播放 mstop
mpng
保存电影帧为PNG mpng movie_
mmatrix
保存变换矩阵动画 mmatrix
rewind
回到第一帧 rewind
forward
前进到最后一帧 forward
middle
跳到中间帧 middle
ending
跳到结束帧 ending
backward
向后播放 backward
状态操作
命令 功能描述 示例 set_frame
设置特定状态的帧 set_frame 1, 10
get_state
获取当前状态 get_state
count_states
计算状态数 count_states protein
create
(state)创建特定状态的对象 create snapshot, protein, state=5
动画制作
命令 功能描述 示例 movie.add_state_loop
添加状态循环 movie.add_state_loop 1, 50, 1
movie.add_state_sweep
添加状态扫描 movie.add_state_sweep 1, 50, 1, 1
movie.add_nutate
添加章动 movie.add_nutate 60, 15
movie.add_roll
添加滚动 movie.add_roll 60, 1, 360
movie.add_rock
添加摆动 movie.add_rock 60, 30
movie.add_scene_loop
添加场景循环 movie.add_scene_loop scenes, 30
19. 设置 (Settings)
PyMOL 有数百个可配置参数,控制着软件的各个方面。这里按功能分类列出所有重要的设置项。
19.1 设置命令语法
命令 功能描述 示例 set <key>, <value>
设置全局参数 set cartoon_fancy_helices, 1
set <key>, <value>, <selection>
为特定选择设置参数 set sphere_scale, 2.0, (resn LIG)
get <key>
获取设置的值 get surface_quality
unset <key>
重置为默认值 unset cartoon_fancy_helices
get_setting_legacy <key>
获取传统格式设置 get_setting_legacy stick_radius
19.2 显示与表示设置 (Display & Representation)
基本显示控制
设置项 默认值 功能描述 示例 auto_show_lines
1 自动显示线条表示 set auto_show_lines, 0
auto_show_spheres
1 自动显示球体表示 set auto_show_spheres, 0
auto_show_nonbonded
1 自动显示非键合表示 set auto_show_nonbonded, 0
auto_hide_selections
1 自动隐藏选择 set auto_hide_selections, 0
auto_zoom
1 加载时自动缩放 set auto_zoom, 0
auto_overlay
-1 自动叠加模式 set auto_overlay, 0
线条设置 (Lines)
设置项 默认值 功能描述 示例 line_width
1.0 线条宽度 set line_width, 2.0
line_smooth
1 线条平滑 set line_smooth, 0
line_radius
0.0 线条半径(圆柱形线条) set line_radius, 0.05
dash_width
4.0 虚线线条宽度 set dash_width, 2.0
dash_gap
0.15 虚线间隙 set dash_gap, 0.1
dash_length
0.35 虚线长度 set dash_length, 0.5
dash_round_ends
1 虚线圆形端点 set dash_round_ends, 0
棍状表示设置 (Sticks)
设置项 默认值 功能描述 示例 stick_radius
0.25 棍状表示半径 set stick_radius, 0.1
stick_h_scale
1.0 氢原子棍状缩放 set stick_h_scale, 0.5
stick_quality
8 棍状表示质量 set stick_quality, 16
stick_overlap
0.2 棍状重叠距离 set stick_overlap, 0.0
stick_nub
0.7 棍状末端长度 set stick_nub, 0.5
stick_valence_scale
1.25 价键棍状缩放 set stick_valence_scale, 1.5
stick_transparency
0.0 棍状透明度 set stick_transparency, 0.3
stick_ball
0 球棍模式 set stick_ball, 1
stick_ball_ratio
1.9 球棍比例 set stick_ball_ratio, 2.5
stick_fixed_radius
0.0 固定半径模式 set stick_fixed_radius, 0.15
球体设置 (Spheres)
设置项 默认值 功能描述 示例 sphere_radius
1.0 球体半径缩放 set sphere_radius, 0.5
sphere_scale
1.0 球体整体缩放 set sphere_scale, 2.0
sphere_quality
1 球体质量 set sphere_quality, 2
sphere_transparency
0.0 球体透明度 set sphere_transparency, 0.4
sphere_point_max_size
10.0 点状球体最大尺寸 set sphere_point_max_size, 20
sphere_point_size
1.0 点状球体尺寸 set sphere_point_size, 2.0
sphere_mode
0 球体模式 set sphere_mode, 1
sphere_solvent
1 溶剂球体显示 set sphere_solvent, 0
卡通设置 (Cartoon)
设置项 默认值 功能描述 示例 cartoon_sampling
7 卡通采样精度 set cartoon_sampling, 14
cartoon_loop_radius
0.2 环区半径 set cartoon_loop_radius, 0.3
cartoon_tube_radius
0.3 管状半径 set cartoon_tube_radius, 0.5
cartoon_flat_sheets
1 平面折叠 set cartoon_flat_sheets, 0
cartoon_smooth_loops
1 平滑环区 set cartoon_smooth_loops, 0
cartoon_dumbbell_length
1.6 哑铃长度 set cartoon_dumbbell_length, 2.0
cartoon_dumbbell_width
0.16 哑铃宽度 set cartoon_dumbbell_width, 0.2
cartoon_dumbbell_radius
0.02 哑铃半径 set cartoon_dumbbell_radius, 0.05
cartoon_fancy_helices
0 精美螺旋 set cartoon_fancy_helices, 1
cartoon_fancy_sheets
0 精美折叠 set cartoon_fancy_sheets, 1
cartoon_helix_radius
2.3 螺旋半径 set cartoon_helix_radius, 3.0
cartoon_oval_length
1.2 椭圆长度 set cartoon_oval_length, 1.5
cartoon_oval_width
0.24 椭圆宽度 set cartoon_oval_width, 0.3
cartoon_oval_quality
10 椭圆质量 set cartoon_oval_quality, 15
cartoon_rect_length
1.4 矩形长度 set cartoon_rect_length, 1.8
cartoon_rect_width
0.3 矩形宽度 set cartoon_rect_width, 0.4
cartoon_ring_mode
0 环模式 set cartoon_ring_mode, 3
cartoon_ring_width
0.22 环宽度 set cartoon_ring_width, 0.3
cartoon_ring_color
-1 环颜色 set cartoon_ring_color, 1
cartoon_ring_finder
2 环识别器 set cartoon_ring_finder, 1
cartoon_ring_transparency
0.0 环透明度 set cartoon_ring_transparency, 0.5
cartoon_transparency
0.0 卡通透明度 set cartoon_transparency, 0.2
cartoon_side_chain_helper
0 侧链辅助 set cartoon_side_chain_helper, 1
cartoon_nucleic_acid_mode
0 核酸模式 set cartoon_nucleic_acid_mode, 1
cartoon_ladder_mode
1 梯子模式 set cartoon_ladder_mode, 0
cartoon_ladder_radius
0.25 梯子半径 set cartoon_ladder_radius, 0.3
cartoon_ladder_color
-1 梯子颜色 set cartoon_ladder_color, 1
cartoon_highlight_color
-1 高亮颜色 set cartoon_highlight_color, 1
cartoon_putty_radius
1.0 putty半径 set cartoon_putty_radius, 2.0
cartoon_putty_quality
10 putty质量 set cartoon_putty_quality, 15
cartoon_putty_range
5.0 putty范围 set cartoon_putty_range, 10.0
cartoon_putty_scale_min
1.0 putty最小缩放 set cartoon_putty_scale_min, 0.5
cartoon_putty_scale_max
2.0 putty最大缩放 set cartoon_putty_scale_max, 3.0
cartoon_putty_scale_power
1.0 putty缩放幂次 set cartoon_putty_scale_power, 2.0
cartoon_trace_atoms
0 追踪原子 set cartoon_trace_atoms, 1
cartoon_tube_cap
2 管状端帽 set cartoon_tube_cap, 1
cartoon_loop_cap
2 环端帽 set cartoon_loop_cap, 1
cartoon_discrete_colors
0 离散颜色 set cartoon_discrete_colors, 1
带状设置 (Ribbon)
设置项 默认值 功能描述 示例 ribbon_width
3.0 带状宽度 set ribbon_width, 4.0
ribbon_radius
0.0 带状半径 set ribbon_radius, 0.1
ribbon_power
2.0 带状幂次 set ribbon_power, 1.5
ribbon_power_b
0.5 带状B因子幂次 set ribbon_power_b, 1.0
ribbon_sampling
1 带状采样 set ribbon_sampling, 2
ribbon_smooth
1 带状平滑 set ribbon_smooth, 0
ribbon_side_chain_helper
0 带状侧链辅助 set ribbon_side_chain_helper, 1
ribbon_transparency
0.0 带状透明度 set ribbon_transparency, 0.3
ribbon_trace_atoms
0 带状追踪原子 set ribbon_trace_atoms, 1
ribbon_nucleic_acid_mode
0 带状核酸模式 set ribbon_nucleic_acid_mode, 1
表面设置 (Surface)
设置项 默认值 功能描述 示例 surface_quality
1 表面质量 set surface_quality, 2
surface_proximity
1 表面临近度 set surface_proximity, 0
surface_type
0 表面类型 set surface_type, 1
surface_mode
0 表面模式 set surface_mode, 3
surface_carve_cutoff
4.5 表面雕刻截止 set surface_carve_cutoff, 3.0
surface_carve_selection
1 表面雕刻选择 set surface_carve_selection, 0
surface_carve_state
0 表面雕刻状态 set surface_carve_state, 1
surface_carve_normal_cutoff
0.0 表面雕刻法线截止 set surface_carve_normal_cutoff, -0.1
surface_clear_cutoff
0.0 表面清除截止 set surface_clear_cutoff, 1.8
surface_trim_cutoff
1.8 表面修剪截止 set surface_trim_cutoff, 2.5
surface_trim_factor
1.0 表面修剪因子 set surface_trim_factor, 1.5
surface_circumscribe
0 表面外接 set surface_circumscribe, 1
surface_residue_cutoff
2.5 表面残基截止 set surface_residue_cutoff, 3.0
surface_use_shader
0 使用着色器 set surface_use_shader, 1
surface_color
-1 表面颜色 set surface_color, 1
surface_ramp_above_mode
1 表面渐变上模式 set surface_ramp_above_mode, 2
surface_transparency
0.0 表面透明度 set surface_transparency, 0.5
surface_negative_visible
1 负表面可见 set surface_negative_visible, 0
surface_negative_color
-1 负表面颜色 set surface_negative_color, 1
surface_cavity_mode
0 表面腔模式 set surface_cavity_mode, 1
surface_cavity_radius
10.0 表面腔半径 set surface_cavity_radius, 15.0
surface_cavity_cutoff
3.0 表面腔截止 set surface_cavity_cutoff, 4.0
surface_solvent
1 表面溶剂 set surface_solvent, 0
solvent_radius
1.4 溶剂半径 set solvent_radius, 1.2
网格设置 (Mesh)
设置项 默认值 功能描述 示例 mesh_quality
2 网格质量 set mesh_quality, 1
mesh_width
1.0 网格线宽 set mesh_width, 2.0
mesh_radius
0.02 网格半径 set mesh_radius, 0.05
mesh_color
-1 网格颜色 set mesh_color, 1
mesh_skip
0 网格跳过 set mesh_skip, 1
mesh_transparency
0.0 网格透明度 set mesh_transparency, 0.3
mesh_negative_visible
1 负网格可见 set mesh_negative_visible, 0
mesh_negative_color
-1 负网格颜色 set mesh_negative_color, 1
mesh_mode
0 网格模式 set mesh_mode, 1
mesh_carve_cutoff
4.5 网格雕刻截止 set mesh_carve_cutoff, 3.0
mesh_carve_selection
1 网格雕刻选择 set mesh_carve_selection, 0
mesh_carve_state
0 网格雕刻状态 set mesh_carve_state, 1
点状设置 (Dots)
设置项 默认值 功能描述 示例 dot_radius
0.0 点半径 set dot_radius, 0.1
dot_density
2 点密度 set dot_density, 4
dot_mode
0 点模式 set dot_mode, 1
dot_solvent
1 点溶剂 set dot_solvent, 0
dot_color
-1 点颜色 set dot_color, 1
dot_hydrogens
1 点氢原子 set dot_hydrogens, 0
dot_lighting
1 点光照 set dot_lighting, 0
dot_normals
1 点法线 set dot_normals, 0
标签设置 (Labels)
设置项 默认值 功能描述 示例 label_font_id
5 标签字体ID set label_font_id, 7
label_size
14 标签大小 set label_size, 20
label_position
[0,0,0] 标签位置 set label_position, [2,2,2]
label_color
-1 标签颜色 set label_color, 1
label_outline_color
1 标签轮廓颜色 set label_outline_color, 0
label_shadow_mode
0 标签阴影模式 set label_shadow_mode, 1
label_distance_digits
1 距离标签小数位 set label_distance_digits, 2
label_angle_digits
1 角度标签小数位 set label_angle_digits, 2
label_dihedral_digits
1 二面角标签小数位 set label_dihedral_digits, 2
label_connector
1 标签连接器 set label_connector, 0
label_connector_width
3.0 连接器宽度 set label_connector_width, 5.0
label_connector_color
-1 连接器颜色 set label_connector_color, 1
label_connector_mode
0 连接器模式 set label_connector_mode, 1
label_placement_mode
0 标签放置模式 set label_placement_mode, 1
label_multiline_spacing
1.0 多行间距 set label_multiline_spacing, 1.5
label_screen_point
0.15 屏幕点大小 set label_screen_point, 0.2
19.3 渲染与光照设置 (Rendering & Lighting)
光线追踪设置 (Ray Tracing)
设置项 默认值 功能描述 示例 ray_trace_mode
0 光线追踪模式 set ray_trace_mode, 1
ray_texture
0 光线纹理 set ray_texture, 2
ray_texture_settings
0 纹理设置 set ray_texture_settings, 1
ray_improvements
1 光线改进 set ray_improvements, 0
ray_default_renderer
0 默认渲染器 set ray_default_renderer, 1
ray_max_passes
1 最大通道数 set ray_max_passes, 4
ray_transparency_threshold
0.0 透明度阈值 set ray_transparency_threshold, 0.05
ray_transparency_oblique
1.0 斜透明度 set ray_transparency_oblique, 0.8
ray_transparency_oblique_power
5.0 斜透明度幂次 set ray_transparency_oblique_power, 3.0
ray_transparency_contrast
1.0 透明度对比 set ray_transparency_contrast, 1.5
ray_transparency_shadows
1 透明度阴影 set ray_transparency_shadows, 0
ray_transparency_specular
0.4 透明度镜面 set ray_transparency_specular, 0.6
ray_legacy_lighting
0 传统光照 set ray_legacy_lighting, 1
ray_orthoscopic
0 正交投影 set ray_orthoscopic, 1
ray_pixel_scale
1.0 像素缩放 set ray_pixel_scale, 2.0
ray_blend_colors
1 混合颜色 set ray_blend_colors, 0
ray_color_ramps
1 颜色渐变 set ray_color_ramps, 0
ray_hint_camera
1 相机提示 set ray_hint_camera, 0
ray_hint_shadow
1 阴影提示 set ray_hint_shadow, 0
ray_clip_shadows
1 剪裁阴影 set ray_clip_shadows, 0
ray_opaque_background
1 不透明背景 set ray_opaque_background, 0
光照设置 (Lighting)
设置项 默认值 功能描述 示例 ambient
0.1 环境光 set ambient, 0.2
direct
0.45 直射光 set direct, 0.8
reflect
0.45 反射光 set reflect, 0.6
light
[-0.4, -0.4, -1] 光源位置 set light, [-0.2, -0.2, -1]
light2
[0.3, -0.3, 1] 第二光源 set light2, [0.5, -0.5, 1]
light3
[0.3, 0.4, 0.2] 第三光源 set light3, [0.2, 0.3, 0.5]
light_count
2 光源数量 set light_count, 3
shininess
55 光泽度 set shininess, 100
specular
1.0 镜面反射强度 set specular, 0.8
specular_intensity
0.5 镜面反射亮度 set specular_intensity, 0.7
power
1.0 功率 set power, 1.2
spec_power
1.0 镜面功率 set spec_power, 0.8
spec_direct
0.0 直射镜面 set spec_direct, 0.2
spec_direct_power
1.0 直射镜面功率 set spec_direct_power, 0.8
spec_count
1 镜面计数 set spec_count, 2
two_sided_lighting
0 双面光照 set two_sided_lighting, 1
阴影设置 (Shadows)
设置项 默认值 功能描述 示例 ray_shadow
1 光线阴影 set ray_shadow, 0
ray_shadow_decay_factor
0.1 阴影衰减因子 set ray_shadow_decay_factor, 0.2
ray_shadow_decay_range
2.0 阴影衰减范围 set ray_shadow_decay_range, 3.0
ray_shadow_fudge
0.1 阴影模糊 set ray_shadow_fudge, 0.05
深度与雾效设置 (Depth & Fog)
设置项 默认值 功能描述 示例 depth_cue
1 深度提示 set depth_cue, 0
fog
1 雾效开关 set fog, 0
fog_start
0.4 雾效开始距离 set fog_start, 0.3
19.4 颜色与材质设置 (Color & Material)
基本颜色设置
设置项 默认值 功能描述 示例 bg_rgb
[0,0,0] 背景RGB set bg_rgb, [1,1,1]
bg_rgb_top
[0,0,0] 背景顶部RGB set bg_rgb_top, [0.5,0.5,1]
bg_rgb_bottom
[0,0,0] 背景底部RGB set bg_rgb_bottom, [0,0,0.5]
bg_gradient
0 背景渐变 set bg_gradient, 1
颜色混合
设置项 默认值 功能描述 示例 cartoon_color
-1 卡通颜色 set cartoon_color, 1
ribbon_color
-1 带状颜色 set ribbon_color, 1
line_color
-1 线条颜色 set line_color, 1
nonbonded_color
-1 非键合颜色 set nonbonded_color, 1
19.5 透明度设置 (Transparency)
设置项 默认值 功能描述 示例 transparency
0.0 全局透明度 set transparency, 0.3
transparency_mode
0 透明度模式 set transparency_mode, 2
transparency_global_sort
0 全局透明度排序 set transparency_global_sort, 1
transparency_picking_mode
0 透明度选择模式 set transparency_picking_mode, 1
19.6 几何与测量设置 (Geometry & Measurements)
距离测量
设置项 默认值 功能描述 示例 dash_color
-1 虚线颜色 set dash_color, 1
angle_color
-1 角度颜色 set angle_color, 1
dihedral_color
-1 二面角颜色 set dihedral_color, 1
distance_exclusion
1.5 距离排除 set distance_exclusion, 2.0
angle_size
1.0 角度大小 set angle_size, 1.5
angle_label_position
5.0 角度标签位置 set angle_label_position, 3.0
dihedral_size
0.3 二面角大小 set dihedral_size, 0.5
dihedral_label_position
5.0 二面角标签位置 set dihedral_label_position, 3.0
键合几何
设置项 默认值 功能描述 示例 valence
1 显示价键 set valence, 0
valence_mode
0 价键模式 set valence_mode, 1
valence_size
0.06 价键大小 set valence_size, 0.1
half_bonds
0 半键显示 set half_bonds, 1
all_states
0 所有状态 set all_states, 1
static_singletons
1 静态单原子 set static_singletons, 0
19.7 性能与质量设置 (Performance & Quality)
渲染质量
设置项 默认值 功能描述 示例 antialias
0 抗锯齿 set antialias, 2
multisample
0 多重采样 set multisample, 1
max_triangles
50000 最大三角形数 set max_triangles, 100000
max_ups
100 最大更新数 set max_ups, 50
min_mesh_spacing
0.6 最小网格间距 set min_mesh_spacing, 0.3
mesh_grid_max
80 网格最大值 set mesh_grid_max, 160
缓存设置
设置项 默认值 功能描述 示例 cache_memory
100 缓存内存(MB) set cache_memory, 200
cache_frames
0 缓存帧 set cache_frames, 1
defer_builds_mode
0 延迟构建模式 set defer_builds_mode, 3
defer_updates
0 延迟更新 set defer_updates, 1
suspend_updates
0 暂停更新 set suspend_updates, 1
draw_mode
0 绘制模式 set draw_mode, -2
max_threads
1 最大线程数 set max_threads, 4
19.8 交互与界面设置 (Interaction & Interface)
鼠标控制
设置项 默认值 功能描述 示例 mouse_limit
1000 鼠标限制 set mouse_limit, 2000
mouse_scale
1.0 鼠标缩放 set mouse_scale, 0.5
mouse_restart_movie_delay
2.0 鼠标重启电影延迟 set mouse_restart_movie_delay, 1.0
mouse_selection_mode
0 鼠标选择模式 set mouse_selection_mode, 1
mouse_z_scale
1.0 鼠标Z轴缩放 set mouse_z_scale, 0.5
选择设置
设置项 默认值 功能描述 示例 active_selections
1 活跃选择 set active_selections, 0
auto_indicate_flags
0 自动指示标志 set auto_indicate_flags, 1
auto_number_selections
0 自动编号选择 set auto_number_selections, 1
auto_classify_atoms
1 自动分类原子 set auto_classify_atoms, 0
auto_remove_hydrogens
1 自动移除氢 set auto_remove_hydrogens, 0
视图控制
设置项 默认值 功能描述 示例 auto_copy_images
0 自动复制图像 set auto_copy_images, 1
auto_dss
1 自动二级结构 set auto_dss, 0
auto_defer_builds
1 自动延迟构建 set auto_defer_builds, 0
auto_sculpt
0 自动雕刻 set auto_sculpt, 1
sculpting
0 雕刻模式 set sculpting, 1
sculpt_vdw_scale
1.0 雕刻vdW缩放 set sculpt_vdw_scale, 0.8
sculpt_vdw_scale14
1.0 雕刻vdW 1-4缩放 set sculpt_vdw_scale14, 0.5
sculpt_vdw_weight
1.0 雕刻vdW权重 set sculpt_vdw_weight, 0.5
sculpt_vdw_weight14
1.0 雕刻vdW 1-4权重 set sculpt_vdw_weight14, 0.1
19.9 动画与电影设置 (Animation & Movie)
设置项 默认值 功能描述 示例 movie_fps
24.0 电影帧率 set movie_fps, 30.0
movie_delay
40 电影延迟(ms) set movie_delay, 20
movie_loop
1 电影循环 set movie_loop, 0
movie_rock
1 电影摇摆 set movie_rock, 0
movie_quality
80 电影质量 set movie_quality, 100
movie_animate_by_frame
1 按帧动画 set movie_animate_by_frame, 0
movie_panel
1 电影面板 set movie_panel, 0
movie_panel_row_height
20 面板行高 set movie_panel_row_height, 25
movie_auto_store
0 自动存储 set movie_auto_store, 1
movie_auto_interpolate
1 自动插值 set movie_auto_interpolate, 0
sweep_mode
0 扫描模式 set sweep_mode, 1
sweep_phase
0.0 扫描相位 set sweep_phase, 180.0
sweep_speed
1.0 扫描速度 set sweep_speed, 2.0
rock
0 摇摆 set rock, 1
19.10 文件I/O设置 (File I/O Settings)
设置项 默认值 功能描述 示例 pdb_honor_model_number
1 遵循PDB模型号 set pdb_honor_model_number, 0
pdb_insertions_go_first
0 PDB插入优先 set pdb_insertions_go_first, 1
pdb_hetatm_guess_valences
1 HETATM猜测价态 set pdb_hetatm_guess_valences, 0
pdb_use_ter_records
1 使用TER记录 set pdb_use_ter_records, 0
pdb_literal_names
0 PDB文字名称 set pdb_literal_names, 1
pdb_conect_all
0 PDB连接所有 set pdb_conect_all, 1
pdb_truncate_residue_name
0 截断残基名 set pdb_truncate_residue_name, 1
pdb_echo_tags
0 回显PDB标签 set pdb_echo_tags, 1
cif_keepinmemory
0 CIF保持内存 set cif_keepinmemory, 1
cif_use_auth
1 CIF使用认证 set cif_use_auth, 0
fetch_path
“” 获取路径 set fetch_path, "/tmp/pymol"
fetch_host
“files.rcsb.org” 获取主机 set fetch_host, "www.ebi.ac.uk"
19.11 调试与日志设置 (Debug & Logging)
设置项 默认值 功能描述 示例 logging
0 日志记录 set logging, 1
log_box_selections
0 记录框选择 set log_box_selections, 1
log_conformations
0 记录构象 set log_conformations, 1
robust_logs
0 强健日志 set robust_logs, 1
dump_floats
1 转储浮点数 set dump_floats, 3
dump_binary
0 转储二进制 set dump_binary, 1
debug_pick
0 调试选择 set debug_pick, 1
verbose
1 详细模式 set verbose, 0
feedback
“enable” 反馈模式 feedback disable, all, warnings
19.12 立体显示设置 (Stereo Display)
设置项 默认值 功能描述 示例 stereo
0 立体模式 set stereo, 1
stereo_angle
23.0 立体角度 set stereo_angle, 30.0
stereo_shift
0.23 立体偏移 set stereo_shift, 0.3
stereo_double_pump_mono
0 双泵单色 set stereo_double_pump_mono, 1
stereo_mode
0 立体模式 set stereo_mode, 1
19.13 编辑器设置 (Editor Settings)
设置项 默认值 功能描述 示例 editor_label_fragments
1 编辑器标签片段 set editor_label_fragments, 0
editor_auto_dihedral
1 编辑器自动二面角 set editor_auto_dihedral, 0
editor_auto_measure
1 编辑器自动测量 set editor_auto_measure, 0
editor_auto_origin
1 编辑器自动原点 set editor_auto_origin, 0
19.14 高级渲染设置 (Advanced Rendering)
设置项 默认值 功能描述 示例 field_of_view
20.0 视野角度 set field_of_view, 30.0
reflect_power
1.0 反射功率 set reflect_power, 2.0
chromadepth
0 色深度 set chromadepth, 1
cone_quality
10 圆锥质量 set cone_quality, 20
cylinder_shader
1 圆柱着色器 set cylinder_shader, 0
default_2fofc_map_rep
“mesh” 默认2fofc图表示 set default_2fofc_map_rep, "surface"
default_fofc_map_rep
“mesh” 默认fofc图表示 set default_fofc_map_rep, "dots"
19.15 设置使用技巧
批量设置模板
# 高质量发表图像设置
python
settings_hq = {'ray_shadow': 'on','ambient': 0.1,'direct': 0.8,'reflect': 0.5,'specular': 1,'shininess': 10,'antialias': 2,'cartoon_fancy_helices': 1,'cartoon_fancy_sheets': 1,'surface_quality': 2
}for key, value in settings_hq.items():cmd.set(key, value)
python end# 快速预览设置
python
settings_fast = {'cartoon_sampling': 1,'surface_quality': 0,'mesh_quality': 1,'ray_shadow': 'off','antialias': 0
}for key, value in settings_fast.items():cmd.set(key, value)
python end
设置配置文件
def save_settings ( filename) : """保存当前PyMOL设置到文件""" import pymolsettings = { } important_settings = [ 'ambient' , 'direct' , 'reflect' , 'specular' , 'shininess' , 'ray_shadow' , 'antialias' , 'surface_quality' , 'cartoon_fancy_helices' , 'cartoon_fancy_sheets' , 'stick_radius' , 'sphere_scale' , 'label_size' ] for setting in important_settings: try : settings[ setting] = cmd. get( setting) except : pass with open ( filename, 'w' ) as f: for key, value in settings. items( ) : f. write( f"set { key} , { value} \n" ) def load_settings ( filename) : """从文件加载PyMOL设置""" with open ( filename, 'r' ) as f: for line in f: line = line. strip( ) if line and not line. startswith( '#' ) : cmd. do( line)
cmd. extend( "save_settings" , save_settings)
cmd. extend( "load_settings" , load_settings)
20. 内置工具/向导 (Built-in Tools/Wizards)
PyMOL 提供了许多向导来简化复杂操作。
向导命令
命令 功能描述 示例 wizard
启动指定向导 wizard measurement
wizard measurement
启动测量向导 wizard measurement
wizard mutagenesis
启动突变向导 wizard mutagenesis
wizard sculpting
启动雕刻向导 wizard sculpting
wizard density
启动密度拟合向导 wizard density
wizard demo
启动演示向导 wizard demo
wizard label
启动标签向导 wizard label
wizard undo
撤销向导 wizard undo
预设样式
命令 功能描述 示例 preset.simple
简单预设 preset.simple("protein")
preset.pretty
美观预设 preset.pretty("all")
preset.publication
发表质量预设 preset.publication("all")
preset.default
默认预设 preset.default("all")
preset.technical
技术预设 preset.technical("all")
preset.ligand_sites
配体结合位点预设 preset.ligand_sites("protein")
preset.ball_and_stick
球棍模型预设 preset.ball_and_stick("organic")
实用工具函数
函数 功能描述 示例 util.mass_align
批量对齐 util.mass_align("name CA")
util.chainbow
彩虹链着色 util.chainbow("all")
util.ray_shadows
设置阴影 util.ray_shadows("medium")
util.performance
性能优化 util.performance(100)
util.protein_vacuum_esp
真空静电势 util.protein_vacuum_esp("protein")
21. 迭代与批处理 (Iteration & Batch Processing)
命令 功能描述 示例 iterate
对选择中的原子执行Python表达式 iterate (name CA), print(f"{resn}-{resi}")
iterate_state
对特定状态执行迭代 iterate_state 1, (name CA), stored.coords.append([x,y,z])
alter
修改原子属性 alter (resi 10), resn="ALA"
alter_state
修改特定状态的属性 alter_state 1, (chain A), x=x+10
for_each
对每个对象执行命令 for_each obj in cmd.get_object_list(): cmd.color("red", obj)
存储变量
变量 描述 示例 stored
全局存储对象 stored.coords = []
stored.list
存储列表 iterate (name CA), stored.list.append(resi)
stored.sum
存储数值 stored.sum = 0
批处理示例
操作 示例 获取所有CA坐标 stored.coords=[]; iterate (name CA), stored.coords.append([x,y,z])
统计残基数量 stored.residues=[]; iterate (name CA), stored.residues.append(resi); print(len(set(stored.residues)))
计算平均B-factor stored.b=[]; iterate all, stored.b.append(b); print(sum(stored.b)/len(stored.b))
22. Python API - cmd 模块命令 (Python API Commands)
PyMOL 的 Python API 通过 cmd
模块提供了所有命令行功能的编程接口。以下是完整的 cmd.
开头的命令列表:
22.1 文件操作 (File Operations)
命令 功能描述 参数示例 Python示例 cmd.load()
加载分子文件 filename, object, state, format, finish, discrete, quiet, multiplex, zoom, partial, mimic
cmd.load("protein.pdb", "my_protein")
cmd.fetch()
从数据库获取结构 code, name, state, finish, discrete, multiplex, zoom, type, async, path, file, quiet
cmd.fetch("1crn", "crambin")
cmd.save()
保存文件 filename, selection, state, format, ref_object, ref_state, quiet
cmd.save("output.pdb", "chain A")
cmd.load_traj()
加载轨迹文件 filename, object, state, format, interval, average, start, stop, max, selection, image, shift, plugin_arg, quiet
cmd.load_traj("traj.dcd", "protein")
cmd.load_ccp4()
加载CCP4密度图 filename, object, state, quiet, zoom
cmd.load_ccp4("density.map", "my_map")
cmd.load_coords()
加载坐标数据 coords, selection, state
cmd.load_coords(coord_array, "protein")
cmd.export_coords()
导出坐标 filename, selection, state, format
cmd.export_coords("coords.txt", "name CA")
cmd.load_png()
加载PNG图像 filename, quiet
cmd.load_png("image.png")
22.2 对象操作 (Object Operations)
命令 功能描述 参数示例 Python示例 cmd.create()
创建新对象 name, selection, source_state, target_state, discrete, zoom, quiet, singletons, copy_properties, extract
cmd.create("ligand", "resn LIG")
cmd.delete()
删除对象或选择 name
cmd.delete("unwanted_object")
cmd.copy()
复制对象 target, source, source_state, target_state, zoom, quiet
cmd.copy("protein_copy", "protein")
cmd.rename()
重命名对象 old_name, new_name
cmd.rename("old_name", "new_name")
cmd.set_name()
设置对象名称 old_name, new_name
cmd.set_name("temp", "final")
cmd.group()
创建对象组 name, members, action
cmd.group("complex", "protein ligand")
cmd.ungroup()
解散组 name, quiet
cmd.ungroup("complex")
cmd.enable()
启用对象 name, parents
cmd.enable("protein")
cmd.disable()
禁用对象 name, parents
cmd.disable("protein")
cmd.split_states()
分割多状态对象 object, prefix, first, last, quiet
cmd.split_states("trajectory")
cmd.join_states()
合并状态 target, source, first, last, quiet
cmd.join_states("combined", "traj1 traj2")
22.3 选择操作 (Selection Operations)
命令 功能描述 参数示例 Python示例 cmd.select()
创建选择 name, selection, enable, quiet, merge, state, domain
cmd.select("active_site", "resi 52+83+119")
cmd.select_list()
通过列表选择 name, selection, object, state, mode
cmd.select_list("my_atoms", [1,5,10,15])
cmd.deselect()
取消选择 cmd.deselect()
cmd.indicate()
指示选择 selection
cmd.indicate("ligand")
cmd.pop()
弹出选择 type, exact
cmd.pop()
cmd.push()
推入选择 cmd.push()
22.4 显示与表示 (Display & Representation)
命令 功能描述 参数示例 Python示例 cmd.show()
显示表示 representation, selection, quiet
cmd.show("cartoon", "polymer")
cmd.hide()
隐藏表示 representation, selection, quiet
cmd.hide("lines", "all")
cmd.show_as()
显示为指定表示 representation, selection, quiet
cmd.show_as("sticks", "organic")
cmd.cartoon()
设置卡通类型 type, selection
cmd.cartoon("tube", "chain A")
cmd.set_bond()
设置键属性 key, value, selection, state, updates, log, quiet
cmd.set_bond("stick_radius", 0.2, "all")
cmd.rebuild()
重建表示 selection, representation
cmd.rebuild("all", "cartoon")
22.5 颜色操作 (Color Operations)
命令 功能描述 参数示例 Python示例 cmd.color()
着色 color, selection, quiet, flags
cmd.color("red", "chain A")
cmd.set_color()
定义颜色 name, color, mode
cmd.set_color("my_blue", [0,0,1])
cmd.get_color_tuple()
获取颜色元组 color, mode
cmd.get_color_tuple("red")
cmd.spectrum()
光谱着色 expression, palette, selection, minimum, maximum, byres, quiet
cmd.spectrum("b", "blue_red", "polymer")
cmd.rainbow()
彩虹着色 selection, mode
cmd.rainbow("chain A")
cmd.bg_color()
设置背景色 color
cmd.bg_color("white")
cmd.ramp_new()
创建颜色渐变 name, obj_name, range, color, state, selection, beyond, within, sigma, zero, quiet
cmd.ramp_new("my_ramp", "protein", [0,50], "blue_red")
22.6 测量命令 (Measurement Commands)
命令 功能描述 参数示例 Python示例 cmd.distance()
创建距离对象 name, selection1, selection2, cutoff, mode, zoom, width, length, gap, label, quiet, reset, state, state1, state2
cmd.distance("d1", "resi 10/CA", "resi 20/CA")
cmd.angle()
创建角度对象 name, selection1, selection2, selection3, mode, zoom, width, length, gap, label, quiet, reset, state
cmd.angle("a1", "pk1", "pk2", "pk3")
cmd.dihedral()
创建二面角对象 name, selection1, selection2, selection3, selection4, mode, zoom, width, length, gap, label, quiet, reset, state
cmd.dihedral("d1", "pk1", "pk2", "pk3", "pk4")
cmd.get_distance()
获取距离 selection1, selection2, state1, state2
cmd.get_distance("resi 10/CA", "resi 20/CA")
cmd.get_angle()
获取角度 selection1, selection2, selection3, state1, state2
cmd.get_angle("pk1", "pk2", "pk3")
cmd.get_dihedral()
获取二面角 selection1, selection2, selection3, selection4, state1, state2
cmd.get_dihedral("pk1", "pk2", "pk3", "pk4")
cmd.get_area()
计算表面积 selection, state, load_b
cmd.get_area("protein")
cmd.get_volume()
计算体积 selection, state
cmd.get_volume("protein")
22.7 结构对齐 (Structural Alignment)
命令 功能描述 参数示例 Python示例 cmd.align()
序列对齐结构叠合 mobile, target, cutoff, cycles, gap, extend, max_gap, object, matrix, mobile_state, target_state, quiet, max_skip, transform, reset
cmd.align("mobile", "target")
cmd.super()
结构叠合 mobile, target, cutoff, cycles, gap, extend, max_gap, object, matrix, mobile_state, target_state, quiet, max_skip, transform, reset
cmd.super("mobile", "target", cycles=5)
cmd.cealign()
CE算法对齐 mobile, target, d0, d1, window, gap_max, transform, object
cmd.cealign("mobile", "target")
cmd.fit()
拟合结构 mobile, target, mobile_state, target_state, quiet, matchmaker, cutoff, cycles, object
cmd.fit("mobile", "target")
cmd.rms()
计算RMS mobile, target, mobile_state, target_state, quiet, matchmaker, cutoff, cycles, object
cmd.rms("mobile", "target")
cmd.rms_cur()
计算当前RMS mobile, target, mobile_state, target_state, matchmaker, cutoff, cycles, quiet
cmd.rms_cur("mobile", "target")
cmd.pair_fit()
原子对拟合 selection1, selection2, selection3, selection4, ...
cmd.pair_fit("mobile//CA", "target//CA")
22.8 视图控制 (View Control)
命令 功能描述 参数示例 Python示例 cmd.zoom()
缩放视图 selection, buffer, state, complete, animate, quiet
cmd.zoom("chain A", 5.0)
cmd.center()
居中视图 selection, state, origin, animate, quiet
cmd.center("ligand")
cmd.orient()
定向视图 selection, state, animate, quiet
cmd.orient("polymer")
cmd.turn()
旋转视图 axis, angle
cmd.turn("x", 90)
cmd.move()
移动视图 axis, distance
cmd.move("z", 10)
cmd.rotate()
旋转对象 axis, angle, selection, state, camera, object, origin
cmd.rotate("y", 45, "protein")
cmd.translate()
平移对象 vector, selection, state, camera, object
cmd.translate([1,0,0], "protein")
cmd.get_view()
获取视图矩阵 output, quiet
view = cmd.get_view()
cmd.set_view()
设置视图矩阵 view, quiet, animate, hand
cmd.set_view(view)
cmd.reset()
重置视图 object
cmd.reset()
cmd.clip()
设置剪裁平面 mode, distance, selection, state
cmd.clip("near", 5)
22.9 图像与动画 (Image & Animation)
命令 功能描述 参数示例 Python示例 cmd.png()
保存PNG图像 filename, width, height, dpi, ray, quiet, prior, format
cmd.png("image.png", 1200, 800)
cmd.ray()
光线追踪渲染 width, height, angle, shift, clip, quiet, async, antialias
cmd.ray(1200, 800)
cmd.draw()
OpenGL渲染 width, height, antialias, quiet
cmd.draw(800, 600)
cmd.frame()
设置帧号 frame, quiet
cmd.frame(10)
cmd.mset()
设置电影 specification, quiet
cmd.mset("1 x100")
cmd.mdo()
电影帧命令 frame, command
cmd.mdo(10, "color red, chain A")
cmd.mpng()
保存电影帧 prefix, first, last, preserve, modal, mode, quiet, width, height, antialias
cmd.mpng("movie_")
cmd.mplay()
播放动画 quiet
cmd.mplay()
cmd.mstop()
停止动画 quiet
cmd.mstop()
cmd.mclear()
清空电影 quiet
cmd.mclear()
22.10 分析与信息 (Analysis & Information)
命令 功能描述 参数示例 Python示例 cmd.count_atoms()
计算原子数 selection, quiet
cmd.count_atoms("protein")
cmd.count_states()
计算状态数 selection, quiet
cmd.count_states("protein")
cmd.get_model()
获取模型对象 selection, state, ref_object, ref_state
model = cmd.get_model("name CA")
cmd.get_coords()
获取坐标数组 selection, state, quiet
coords = cmd.get_coords("name CA")
cmd.get_extent()
获取空间范围 selection, state
extent = cmd.get_extent("all")
cmd.get_object_list()
获取对象列表 selection
objects = cmd.get_object_list()
cmd.get_names()
获取名称列表 type, enabled_only, selection
names = cmd.get_names("objects")
cmd.get_chains()
获取链列表 selection, state
chains = cmd.get_chains("protein")
cmd.get_phipsi()
获取phi/psi角 selection, state
angles = cmd.get_phipsi("chain A")
cmd.identify()
识别原子 selection, mode
cmd.identify("pk1")
cmd.index()
获取原子索引 selection, state
indices = cmd.index("name CA")
22.11 设置与配置 (Settings & Configuration)
命令 功能描述 参数示例 Python示例 cmd.set()
设置参数 key, value, selection, state, updates, log, quiet
cmd.set("cartoon_fancy_helices", 1)
cmd.get()
获取设置值 key, selection, state
value = cmd.get("surface_quality")
cmd.unset()
重置设置 key, selection, state, updates, log, quiet
cmd.unset("cartoon_fancy_helices")
cmd.get_setting_legacy()
获取传统设置 key, object, state
cmd.get_setting_legacy("stick_radius")
cmd.set_bond()
设置键属性 key, value, selection, state, updates, log, quiet
cmd.set_bond("stick_radius", 0.2, "all")
22.12 编辑操作 (Editing Operations)
命令 功能描述 参数示例 Python示例 cmd.alter()
修改原子属性 selection, expression, read_only, space, state, quiet
cmd.alter("resi 10", "resn='ALA'")
cmd.alter_state()
修改坐标 state, selection, expression, read_only, space, quiet
cmd.alter_state(1, "chain A", "x=x+10")
cmd.iterate()
遍历原子 selection, expression, read_only, space, state, quiet
cmd.iterate("name CA", "print(resn, resi)")
cmd.iterate_state()
遍历状态 state, selection, expression, read_only, space, quiet
cmd.iterate_state(1, "name CA", "stored.coords.append([x,y,z])")
cmd.remove()
删除原子 selection, quiet
cmd.remove("hydro")
cmd.bond()
创建键 selection1, selection2, order, mode, quiet
cmd.bond("resi 10/SG", "resi 20/SG")
cmd.unbond()
删除键 selection1, selection2, quiet
cmd.unbond("resi 10/SG", "resi 20/SG")
cmd.h_add()
添加氢 selection, state, legacy, quiet
cmd.h_add("polymer")
22.13 表面操作 (Surface Operations)
命令 功能描述 参数示例 Python示例 cmd.isosurface()
创建等值面 name, map, level, selection, buffer, state, carve, source_state, quiet
cmd.isosurface("surf1", "map1", 1.0)
cmd.isomesh()
创建等值网格 name, map, level, selection, buffer, state, carve, source_state, quiet
cmd.isomesh("mesh1", "map1", 1.0)
cmd.isodot()
创建等值点 name, map, level, selection, buffer, state, carve, source_state, quiet
cmd.isodot("dots1", "map1", 1.0)
cmd.volume()
创建体积对象 name, map, ramp, selection, buffer, state, carve, source_state, quiet
cmd.volume("vol1", "map1")
22.14 实用工具 (Utilities)
命令 功能描述 参数示例 Python示例 cmd.quit()
退出PyMOL code
cmd.quit()
cmd.reinitialize()
重新初始化 what
cmd.reinitialize()
cmd.refresh()
刷新显示 cmd.refresh()
cmd.sync()
同步显示 timeout, poll
cmd.sync()
cmd.do()
执行命令 command, echo, flush
cmd.do("show cartoon")
cmd.extend()
扩展命令 name, function
cmd.extend("mycommand", my_function)
cmd.alias()
创建别名 name, command
cmd.alias("cc", "color cyan")
cmd.print_help()
打印帮助 command
cmd.print_help("align")
23. 其他命令 (Miscellaneous)
系统命令
命令 功能描述 示例 quit
退出PyMOL quit
reinitialize
重新初始化PyMOL reinitialize
cls
清空命令历史窗口 cls
refresh
刷新显示 refresh
sync
同步显示 sync
feedback
设置反馈级别 feedback enable, all, actions
cache
缓存控制 cache enable
信息与帮助
命令 功能描述 示例 help
获取命令帮助 help select
apropos
搜索帮助主题 apropos alignment
print
打印信息 print("Hello PyMOL")
show_as
显示对象表示类型 show_as cartoon, protein
get_version
获取PyMOL版本 get_version
system
执行系统命令 system ls
别名与宏
命令 功能描述 示例 alias
创建命令别名 alias bigsphere set sphere_scale, 2
extend
扩展命令 cmd.extend("mycommand", my_function)
do
执行命令字符串 do("show cartoon")
@ <file>
执行脚本文件 @myscript.pml
run <file>
运行Python脚本 run myscript.py
会话管理
命令 功能描述 示例 save <file>.pse
保存会话 save my_session.pse
load <file>.pse
加载会话 load my_session.pse
log_open
打开日志 log_open commands.log
log_close
关闭日志 log_close
log
记录命令 log color red, all
高级功能
命令 功能描述 示例 cgo
计算机图形对象 cmd.load_cgo(cgo_data, "my_cgo")
callback
回调对象 cmd.load_callback(callback_obj, "my_callback")
button
鼠标按键映射 button +, None, +, (resn LIG)
python
执行Python代码 python exec("import math")
sync
同步多个PyMOL实例 sync
24. 常见使用场景速查 (Quick Reference for Common Tasks)
24.1 基础操作
任务 命令组合 说明 快速加载并可视化蛋白质 fetch 1crn; hide lines; show cartoon; color cyan
获取结构,隐藏线条,显示卡通,着色 加载本地PDB文件 load protein.pdb; center; zoom
加载文件并调整视图 显示配体结合位点 select ligand, organic; select site, byres (ligand around 5); show sticks, site or ligand; color yellow, ligand; color green, site
选择配体和结合位点,显示棍状模型 按链着色 hide lines; show cartoon; util.cbc
隐藏线条,显示卡通,按链着色 制作发表质量图像 set ray_shadow, on; set ambient, 0.2; set direct, 0.8; ray 1200, 800; png high_quality.png
设置光影参数并高分辨率渲染
24.2 结构分析
任务 命令组合 说明 结构对齐比较 align mobile, target; rms_cur mobile, target
对齐结构并计算RMSD 多结构叠合 super prot1, prot2; super prot3, prot2; color red, prot1; color blue, prot2; color green, prot3
将多个结构叠合到参考结构上 测量距离和角度 distance d1, (resi 10/CA), (resi 20/CA); angle a1, (resi 10/CA), (resi 10/C), (resi 11/N)
创建距离和角度测量对象 氢键分析 select donors, (elem n,o and (neighbor hydro)); select acceptors, (elem o or (elem n and not (neighbor hydro))); distance hbonds, donors, acceptors, 3.5
寻找并显示氢键 表面疏水性分析 show surface; spectrum b, blue_white_red; set surface_color, blue, (name c*); set surface_color, red, (elem n+o)
显示表面并按疏水性着色
24.3 蛋白质可视化
任务 命令组合 说明 二级结构着色 color red, ss h; color yellow, ss s; color green, ss l
螺旋红色,折叠黄色,环绿色 显示活性位点 select active, resi 52+83+119; show sticks, active; color red, active; show surface, protein; set transparency, 0.5
突出显示活性位点残基 疏水核心可视化 select hydrophobic, resn ala+ile+leu+met+phe+trp+tyr+val; color orange, hydrophobic; show sticks, hydrophobic
选择并显示疏水残基 表面静电势 show surface; ramp_new e_lvl, protein, [-10, 0, 10]; set surface_color, e_lvl
创建静电势表面着色 蛋白质域分离 select domain1, resi 1-100; select domain2, resi 101-200; color blue, domain1; color red, domain2
按结构域着色
24.4 配体分析
任务 命令组合 说明 配体结合位点分析 select ligand, organic; select pocket, byres (ligand around 4); show surface, pocket; color yellow, ligand; show sticks, pocket or ligand
显示配体及其结合口袋 药物结合模式 select drug, resn LIG; select contacts, (byres (drug around 4)) and polymer; show sticks, drug or contacts; color magenta, drug; util.cbag contacts
分析药物-蛋白质相互作用 金属配位 select metal, metals; select coordinated, (byres (metal around 3)) and polymer; show sticks, coordinated; show spheres, metal; distance coord, metal, coordinated, 3.0
显示金属配位环境
24.5 动画制作
任务 命令组合 说明 简单旋转动画 mset 1 x60; util.mrock
创建60帧的摇摆动画 结构变化动画 mset 1 x30; mdo 1: load conf1.pdb; mdo 30: load conf2.pdb; movie.add_state_sweep(1,30)
展示构象变化 多状态轨迹动画 load_traj trajectory.dcd, protein.pdb; mset 1 -100; mplay
播放分子动力学轨迹
24.6 数据导出
任务 命令组合 说明 批量生成图像 python for obj in cmd.get_object_list(): cmd.orient(obj); cmd.png(f"{obj}.png") python end
为每个对象生成图像 导出坐标数据 save_selection site.txt, (ligand around 5); export_coords coords.txt, (name CA)
保存选择和坐标数据 生成电影文件 mset 1 x120; util.mrock; mpng movie_; movie.produce movie.mp4
制作MP4动画文件
24.7 高级分析
任务 命令组合 说明 蛋白质表面分析 show surface; get_area protein; ramp_new hydro, protein, [1.9, 0, -1.9], [red, white, blue]
计算表面积并按疏水性着色 构象集合分析 alignto reference; rms_cur conf1, reference; rms_cur conf2, reference
对齐多个构象并计算偏差 接触图生成 contact contacts, (chain A), (chain B), 4.0; show dots, contacts
生成链间接触图 B因子分析 spectrum b, blue_white_red, polymer, minimum=10, maximum=50; show cartoon; set cartoon_putty, 1
按B因子着色并设置putty模式
24.8 批处理脚本模板
基本结构分析脚本
# 批量分析多个PDB文件
python
pdb_codes = ["1crn", "2hhb", "3rub"]
for code in pdb_codes:cmd.fetch(code)cmd.hide("everything", code)cmd.show("cartoon", code)cmd.color("cyan", code)cmd.orient(code)cmd.png(f"{code}_cartoon.png")chains = cmd.get_chains(code)print(f"{code} has chains: {', '.join(chains)}")cmd.delete(code)
python end
配体结合位点分析
# 自动化配体分析
load complex.pdb
select ligand, organic
if cmd.count_atoms("ligand") > 0:select pocket, byres (ligand around 5) and polymershow sticks, ligand or pocketcolor yellow, ligandcolor green, pocketdistance hbonds, (ligand and acceptor), (pocket and donor), 3.5distance hbonds2, (ligand and donor), (pocket and acceptor), 3.5center ligandzoom ligand, 10png ligand_binding_site.png
endif
多结构比较脚本
# 比较多个同源结构
python
structures = ["1abc", "2def", "3ghi"]
reference = structures[0]
cmd.fetch(reference)
cmd.color("blue", reference)for i, struct in enumerate(structures[1:], 1):cmd.fetch(struct)result = cmd.align(struct, reference)rmsd = result[0]print(f"{struct} vs {reference}: RMSD = {rmsd:.2f} Å")colors = ["red", "green", "yellow", "orange"]cmd.color(colors[i-1], struct)cmd.hide("everything")
cmd.show("cartoon", "all")
cmd.orient("all")
cmd.png("structure_comparison.png")
python end
电子密度拟合分析
# 密度图拟合质量分析
python
def analyze_density_fit(obj_name, map_name, threshold=1.0):"""分析结构与电子密度的拟合质量"""# 创建不同sigma水平的等值面for sigma in [1.0, 2.0, 3.0]:mesh_name = f"mesh_{sigma}sigma"cmd.isomesh(mesh_name, map_name, sigma)cmd.color("blue", mesh_name)cmd.set("mesh_width", 0.5, mesh_name)# 检查原子周围的密度cmd.select("low_density", f"({obj_name}) and not (({obj_name}) within 1.5 of {map_name})")if cmd.count_atoms("low_density") > 0:cmd.show("spheres", "low_density")cmd.color("red", "low_density")print(f"发现 {cmd.count_atoms('low_density')} 个低密度原子")return cmd.count_atoms("low_density")# 使用示例
load_ccp4 2fofc.map
load structure.pdb
analyze_density_fit("structure", "2fofc", 1.0)
python end
24.9 常用设置组合
用途 设置命令 说明 高质量渲染 set ray_shadow, on; set ambient, 0.1; set direct, 0.8; set reflect, 0.5; set specular, 1; set shininess, 10
专业级光影效果 快速预览 set ray_shadow, off; set ambient, 0.4; set direct, 0.6; set cartoon_sampling, 1
加快渲染速度 色盲友好 set_color cb_red, [0.8,0.4,0]; set_color cb_blue, [0,0.6,0.8]; set_color cb_green, [0,0.6,0.4]
色盲可辨的颜色 黑色背景优化 bg_color black; set ray_opaque_background, off; set ambient, 0.3; set direct, 0.7
适合深色背景 白色背景优化 bg_color white; set ray_opaque_background, on; set ambient, 0.2; set direct, 0.8
适合浅色背景 立体显示 set stereo, 1; set stereo_angle, 23; set stereo_shift, 0.23
立体3D显示 透明度优化 set transparency_mode, 2; set two_sided_lighting, on
更好的透明效果 动画流畅度 set movie_fps, 30; set cache_frames, on; set movie_quality, 100
高质量动画设置
24.10 错误处理与调试
常见错误及解决方案
错误情况 可能原因 解决方案 SelectionError: Invalid selection
选择语法错误 检查选择语法,使用 count_atoms
验证 CmdException: Unable to open file
文件路径错误 检查文件路径和权限 图像渲染失败 内存不足或设置错误 降低分辨率,检查渲染设置 对齐失败 结构差异太大 尝试使用 super
或手动选择对齐区域 颜色不显示 对象被禁用或隐藏 使用 enable
和 show
命令
调试脚本模板
def debug_selection ( selection_string) : """调试选择字符串""" try : count = cmd. count_atoms( selection_string) if count == 0 : print ( f"WARNING: Selection ' { selection_string} ' is empty" ) else : print ( f"Selection ' { selection_string} ' contains { count} atoms" ) return countexcept Exception as e: print ( f"ERROR in selection ' { selection_string} ': { e} " ) return 0 def safe_load ( filename, object_name= None ) : """安全加载文件""" try : if object_name: cmd. load( filename, object_name) else : cmd. load( filename) print ( f"Successfully loaded { filename} " ) return True except Exception as e: print ( f"Failed to load { filename} : { e} " ) return False def check_object_exists ( obj_name) : """检查对象是否存在""" objects = cmd. get_object_list( ) if obj_name in objects: print ( f"Object ' { obj_name} ' exists" ) return True else : print ( f"Object ' { obj_name} ' not found. Available objects: { objects} " ) return False
if check_object_exists( "protein" ) : debug_selection( "chain A" ) debug_selection( "resn LIG" )
24.11 性能优化技巧
优化目标 方法 命令示例 加快加载速度 禁用自动缩放和完成 set auto_zoom, off; set auto_show_lines, off
减少内存使用 及时删除不需要的对象 delete unused_object; reinitialize orphans
提高渲染速度 降低表面质量 set surface_quality, 0; set cartoon_sampling, 1
优化大分子显示 使用简化表示 show cartoon; hide lines; set cartoon_smooth_loops, off
批处理优化 禁用GUI更新 set defer_builds_mode, 3; set defer_updates, 1
24.12 自定义函数库
结构分析函数
def analyze_structure ( obj_name) : """全面分析蛋白质结构""" if not cmd. count_atoms( obj_name) : print ( f"Object { obj_name} not found!" ) return None chains = cmd. get_chains( obj_name) total_atoms = cmd. count_atoms( obj_name) total_residues = cmd. count_atoms( f" { obj_name} and name CA" ) helices = cmd. count_atoms( f" { obj_name} and ss h and name CA" ) sheets = cmd. count_atoms( f" { obj_name} and ss s and name CA" ) loops = cmd. count_atoms( f" { obj_name} and ss l and name CA" ) cmd. select( "ligands_temp" , f" { obj_name} and organic" ) ligand_count = cmd. count_atoms( "ligands_temp" ) cmd. delete( "ligands_temp" ) metal_count = cmd. count_atoms( f" { obj_name} and metals" ) report = { 'chains' : len ( chains) , 'chain_ids' : chains, 'total_atoms' : total_atoms, 'total_residues' : total_residues, 'helices' : helices, 'sheets' : sheets, 'loops' : loops, 'ligands' : ligand_count, 'metals' : metal_count} print ( f"\n=== Structure Analysis: { obj_name} ===" ) print ( f"Chains: { report[ 'chains' ] } ( { ', ' . join( chains) } )" ) print ( f"Total atoms: { report[ 'total_atoms' ] } " ) print ( f"Total residues: { report[ 'total_residues' ] } " ) print ( f"Secondary structure: { helices} H + { sheets} E + { loops} L" ) print ( f"Ligands: { report[ 'ligands' ] } atoms" ) print ( f"Metal ions: { report[ 'metals' ] } atoms" ) return reportdef compare_structures ( obj1, obj2) : """比较两个结构""" align_result = cmd. align( obj1, obj2) rmsd = align_result[ 0 ] aligned_atoms = align_result[ 1 ] info1 = analyze_structure( obj1) info2 = analyze_structure( obj2) print ( f"\n=== Structure Comparison ===" ) print ( f"RMSD: { rmsd: .2f } Å ( { aligned_atoms} atoms aligned)" ) print ( f"Residue difference: { abs ( info1[ 'total_residues' ] - info2[ 'total_residues' ] ) } " ) print ( f"Chain difference: { abs ( info1[ 'chains' ] - info2[ 'chains' ] ) } " ) return { 'rmsd' : rmsd, 'aligned_atoms' : aligned_atoms, 'structures' : [ info1, info2] }
cmd. extend( "analyze_structure" , analyze_structure)
cmd. extend( "compare_structures" , compare_structures)
可视化增强函数
def publication_ready ( obj_name, view_type= "cartoon" ) : """制作发表级质量的可视化""" cmd. hide( "everything" , obj_name) cmd. show( view_type, obj_name) cmd. set ( "ray_shadow" , "on" ) cmd. set ( "ambient" , 0.1 ) cmd. set ( "direct" , 0.8 ) cmd. set ( "reflect" , 0.6 ) cmd. set ( "specular" , 1 ) cmd. set ( "shininess" , 10 ) cmd. set ( "antialias" , 2 ) if view_type == "cartoon" : cmd. set ( "cartoon_fancy_helices" , 1 ) cmd. set ( "cartoon_fancy_sheets" , 1 ) cmd. set ( "cartoon_side_chain_helper" , 1 ) cmd. set ( "surface_quality" , 2 ) cmd. set ( "mesh_quality" , 2 ) print ( f"Applied publication settings to { obj_name} " ) def highlight_binding_site ( protein, ligand, distance= 5.0 ) : """突出显示结合位点""" site_name = f" { ligand} _binding_site" cmd. select( site_name, f"byres ( { ligand} around { distance} ) and { protein} " ) cmd. hide( "everything" ) cmd. show( "cartoon" , protein) cmd. show( "sticks" , f" { site_name} or { ligand} " ) cmd. color( "cyan" , protein) cmd. color( "yellow" , ligand) cmd. color( "green" , site_name) cmd. center( ligand) cmd. zoom( ligand, 8 ) print ( f"Highlighted binding site for { ligand} " ) return site_namedef rainbow_by_chain ( obj_name) : """按链进行彩虹着色""" chains = cmd. get_chains( obj_name) colors = [ 'red' , 'orange' , 'yellow' , 'green' , 'cyan' , 'blue' , 'purple' , 'magenta' ] for i, chain in enumerate ( chains) : color = colors[ i % len ( colors) ] cmd. color( color, f" { obj_name} and chain { chain} " ) print ( f"Chain { chain} : { color} " )
cmd. extend( "publication_ready" , publication_ready)
cmd. extend( "highlight_binding_site" , highlight_binding_site)
cmd. extend( "rainbow_by_chain" , rainbow_by_chain)
24.13 常用选择器快速参考
选择器类型 语法 示例 说明 残基范围 resi start-end
resi 10-20
选择残基10到20 多个残基 resi id1+id2+id3
resi 10+15+20
选择特定残基 原子名称 name atom1+atom2
name CA+CB+CG
选择特定原子 元素类型 elem symbol
elem N+O
选择氮和氧原子 距离选择 sele around dist
ligand around 5
5Å范围内的原子 残基扩展 byres (selection)
byres (ligand around 4)
扩展到完整残基 链扩展 bychain (selection)
bychain (resi 100)
扩展到整条链 二级结构 ss type
ss h+s
螺旋和折叠 组合选择 (sel1) and (sel2)
(chain A) and (ss h)
逻辑组合 排除选择 sele and not (excl)
polymer and not hydro
排除氢原子的聚合物
24.14 配置文件模板
PyMOL 启动配置 (.pymolrc)
cmd. set ( "depth_cue" , 0 )
cmd. set ( "ray_shadow" , 1 )
cmd. set ( "ambient" , 0.2 )
cmd. set ( "direct" , 0.8 )
cmd. bg_color( "white" )
cmd. set ( "ray_opaque_background" , 1 )
cmd. set ( "cartoon_fancy_helices" , 1 )
cmd. set ( "cartoon_fancy_sheets" , 1 )
cmd. set ( "cartoon_side_chain_helper" , 1 )
cmd. set ( "max_threads" , 4 )
cmd. set ( "cache_frames" , 1 )
cmd. alias( "cc" , "color cyan" )
cmd. alias( "cs" , "color salmon" )
cmd. alias( "hc" , "hide cartoon" )
cmd. alias( "sc" , "show cartoon" )
cmd. alias( "hl" , "hide lines" )
cmd. alias( "sl" , "show lines" )
cmd. alias( "hs" , "hide sticks" )
cmd. alias( "ss" , "show sticks" )
def quick_protein ( ) : """快速蛋白质显示""" cmd. hide( "everything" ) cmd. show( "cartoon" ) cmd. color( "cyan" ) cmd. orient( ) def quick_ligand ( ) : """快速配体显示""" cmd. select( "ligand" , "organic" ) cmd. show( "sticks" , "ligand" ) cmd. color( "yellow" , "ligand" ) cmd. center( "ligand" ) cmd. extend( "qp" , quick_protein)
cmd. extend( "ql" , quick_ligand) print ( "Personal PyMOL configuration loaded successfully!" )
24.15 故障排除指南
问题类型 症状 可能原因 解决方案 加载失败 文件无法打开 路径错误、权限问题 检查文件路径,确认文件存在和可读 显示异常 结构不可见 对象被禁用、表示被隐藏 enable object_name; show cartoon
颜色问题 颜色不变化 选择为空、颜色已被覆盖 用 count_atoms
检查选择 对齐失败 无法对齐结构 结构差异太大、选择不当 尝试 super
命令或手动选择 内存不足 PyMOL 崩溃或卡顿 结构太大、设置不当 简化显示、清理不需要的对象 渲染问题 图像质量差 设置不当、分辨率太低 调整光线追踪设置,提高分辨率 脚本错误 Python 语法错误 代码错误、缩进问题 检查语法,使用 try-except
选择错误 选择语法无效 语法错误、对象不存在 检查选择语法,确认对象存在
24.16 资源和进阶学习
官方资源
PyMOL Wiki : https://pymolwiki.org/PyMOL 官方文档 : https://pymol.org/documentation/PyMOL 命令参考 : https://pymolwiki.org/index.php/Category:Commands
学习教程
PyMOL 基础教程 : 从安装到基本操作高级可视化技巧 : 复杂场景制作脚本编程指南 : Python API 深入学习结构生物学应用 : 实际研究案例
扩展工具
ChimeraX : 另一个强大的分子可视化软件VMD : 分子动力学可视化专用Avogadro : 分子编辑和建模Open3DALIGN : 结构对齐工具
文件格式支持
PDB/mmCIF : 蛋白质结构MOL2/SDF : 小分子化合物CCP4/MTZ : 电子密度图DCD/XTC : 分子动力学轨迹PSE : PyMOL 会话文件
结语
本指南涵盖了 PyMOL 的核心功能和高级应用,从基本的命令行操作到复杂的 Python 脚本编程。PyMOL 作为结构生物学研究的重要工具,其强大的功能需要通过实践来掌握。
建议学习路径:
基础操作 : 掌握文件加载、显示控制、视图操作选择语法 : 熟练使用各种选择器进行精确操作可视化技巧 : 学习着色、表示、场景设置脚本编程 : 掌握 Python API 进行自动化操作高级应用 : 结合具体研究需求进行深入应用
记住,最好的学习方法是在实际项目中应用这些命令和技巧。随着经验的积累,你将能够创造出专业级的分子可视化作品。