colorramping.py (pymol-v1.8.6.0.tar.bz2) | : | colorramping.py (pymol-v2.1.0.tar.bz2) | ||
---|---|---|---|---|
''' | ''' | |||
Volume color ramp utilities | Volume color ramp utilities | |||
''' | ''' | |||
from __future__ import print_function | from __future__ import print_function | |||
import sys | import sys | |||
cmd = sys.modules["pymol.cmd"] | cmd = sys.modules["pymol.cmd"] | |||
_volume_windows = {} | _volume_windows = {} | |||
_volume_windows_qt = {} | ||||
def peak(v, c, a=0.2, d=0.2): | def peak(v, c, a=0.2, d=0.2): | |||
return [v - d, c, 0., v, c, a, v + d, c, 0.] | return [v - d, c, 0., v, c, a, v + d, c, 0.] | |||
namedramps = { | namedramps = { | |||
'2fofc': [ | '2fofc': [ | |||
1., "blue", .0, | 1., "blue", .0, | |||
1., "blue", .2, | 1., "blue", .2, | |||
1.4, "blue", .0, | 1.4, "blue", .0, | |||
], | ], | |||
skipping to change at line 79 | skipping to change at line 80 | |||
volume_ramp_new pink1sigma, \\ | volume_ramp_new pink1sigma, \\ | |||
0.9 violet 0.0 \\ | 0.9 violet 0.0 \\ | |||
1.0 magenta 0.3 \\ | 1.0 magenta 0.3 \\ | |||
1.5 pink 0.0 | 1.5 pink 0.0 | |||
SEE ALSO | SEE ALSO | |||
volume, volume_color | volume, volume_color | |||
''' | ''' | |||
if cmd.is_string(ramp): | from .checking import is_string | |||
if is_string(ramp): | ||||
ramp = ramp.split() | ramp = ramp.split() | |||
namedramps[name] = ramp | namedramps[name] = ramp | |||
def get_volume_color(name, quiet=1, _self=cmd): | def get_volume_color(name, quiet=1, _self=cmd): | |||
''' | ''' | |||
DESCRIPTION | DESCRIPTION | |||
Get the volume color ramp of a volume object. | Get the volume color ramp of a volume object. | |||
''' | ''' | |||
quiet = int(quiet) | quiet = int(quiet) | |||
skipping to change at line 161 | skipping to change at line 163 | |||
else: | else: | |||
import tkinter as Tkinter | import tkinter as Tkinter | |||
try: | try: | |||
panel = _volume_windows[name].panel | panel = _volume_windows[name].panel | |||
panel.set_flat(ramplist) | panel.set_flat(ramplist) | |||
except (LookupError, Tkinter.TclError): | except (LookupError, Tkinter.TclError): | |||
pass | pass | |||
app = gui.get_pmgapp() | app = gui.get_pmgapp() | |||
app.execute(func) | app.execute(func) | |||
if _guiupdate and name in _volume_windows_qt: | ||||
from pymol import gui | ||||
app = gui.get_pmgapp() | ||||
@app.execute | ||||
def _(): | ||||
try: | ||||
panel = _volume_windows_qt[name] | ||||
panel.widget().editor.setColors(ramplist) | ||||
except LookupError: | ||||
pass | ||||
return r | return r | |||
def volume_panel(name, quiet=1, _self=cmd): | def volume_panel(name, quiet=1, _self=cmd, _noqt=0): | |||
''' | ''' | |||
DESCRIPTION | DESCRIPTION | |||
Open an interactive volume ramp panel | Open an interactive volume ramp panel | |||
ARGUMENTS | ARGUMENTS | |||
name = str: name of volume object | name = str: name of volume object | |||
''' | ''' | |||
from pymol import gui | from pymol import gui | |||
qt_window = not int(_noqt) and gui.get_qtwindow() | ||||
app = gui.get_pmgapp() | ||||
if qt_window: | ||||
from pmg_qt import volume as volume_qt | ||||
@app.execute | ||||
def _(): | ||||
try: | ||||
panel = _volume_windows_qt[name] | ||||
except LookupError: | ||||
panel = volume_qt.VolumePanel(qt_window, name, _self=_self) | ||||
_volume_windows_qt[name] = panel | ||||
panel.show() | ||||
panel.raise_() | ||||
return | ||||
# Tk fallback | ||||
from pmg_tk import volume | from pmg_tk import volume | |||
if sys.version_info[0] == 2: | if sys.version_info[0] == 2: | |||
import Tkinter | import Tkinter | |||
else: | else: | |||
import tkinter as Tkinter | import tkinter as Tkinter | |||
app = gui.get_pmgapp() | ||||
def func(): | def func(): | |||
try: | try: | |||
window = _volume_windows[name] | window = _volume_windows[name] | |||
window.lift() | window.lift() | |||
except (LookupError, Tkinter.TclError): | except (LookupError, Tkinter.TclError): | |||
window = Tkinter.Toplevel(app.root) | window = Tkinter.Toplevel(app.root) | |||
window.title('Volume Panel for "%s"' % name) | window.title('Volume Panel for "%s"' % name) | |||
window.panel = volume.VolumePanel(window, name, _self=cmd) | window.panel = volume.VolumePanel(window, name, _self=_self) | |||
window.panel.pack() | window.panel.pack() | |||
_volume_windows[name] = window | _volume_windows[name] = window | |||
app.execute(func) | app.execute(func) | |||
### utility functions | ### utility functions | |||
def ramp_to_colors(ramp, vmin=None, vmax=None, ncolors=360): | def ramp_to_colors(ramp, vmin=None, vmax=None, ncolors=360): | |||
''' | ''' | |||
Get the interpolated color array for the given ramp and data range | Get the interpolated color array for the given ramp and data range | |||
''' | ''' | |||
End of changes. 7 change blocks. | ||||
4 lines changed or deleted | 36 lines changed or added |