Skip to content

Commit cdf3707

Browse files
authored
Merge pull request #13 from RosettaCommons/fix_colors
Fix pymol color palette by removing reliance on pymolrc
2 parents 952546b + d36dbe0 commit cdf3707

File tree

5 files changed

+17
-6
lines changed

5 files changed

+17
-6
lines changed

rf_diffusion/dev/analyze.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
REPO_DIR = os.path.dirname(PKG_DIR)
2222

2323
from rf_diffusion.dev.pymol import cmd
24+
from rf_diffusion.dev.pymol import mass_paper_rainbow_sel
2425

2526
import rf_diffusion.estimate_likelihood as el
2627
from rf_diffusion.inference import utils
@@ -1189,7 +1190,7 @@ def show_paper_pocket(row, des=True, ligand=False):
11891190
#cmd.align(des.name, af2_scaffold.name)
11901191
cmd.align(f'{des.motif_sele()} and name ca', f'{native.motif_sele()} and name ca')
11911192
cmd.show('cartoon', f'{des.name}')
1192-
cmd.do(f'mass_paper_rainbow_sel {des.name}')
1193+
mass_paper_rainbow_sel(des.name)
11931194

11941195
# AF2 sidechains
11951196
cmd.show('licorice', f'({af2.motif_sele()}) and not (name o)')
@@ -1268,7 +1269,7 @@ def show_paper_pocket_af2(row, b=None, des=True, ligand=False, traj_types=None,
12681269
if has_motif:
12691270
cmd.align(f'{des.motif_sele()} and name ca', f'{native.motif_sele()} and name ca')
12701271
cmd.show('cartoon', f'{des.name}')
1271-
cmd.do(f'mass_paper_rainbow_sel {des.name}')
1272+
mass_paper_rainbow_sel(des.name)
12721273

12731274
if show_af2 and has_motif:
12741275
# AF2 sidechains

rf_diffusion/dev/paper_vis.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from rf_diffusion.dev import show_bench
1010
from rf_diffusion.dev import analyze
1111
from rf_diffusion.dev import pymol_atom_colors
12+
from rf_diffusion.dev.pymol import mass_paper_rainbow_sel
1213

1314
cmd = analyze.cmd
1415

@@ -80,7 +81,7 @@ def make_transparent_rainbow(
8081
diffused_transparency = 0.45):
8182
cmd.set('cartoon_transparency', diffused_transparency)
8283
cmd.set('stick_transparency', diffused_transparency, e['sidechains_diffused'])
83-
cmd.do(f'mass_paper_rainbow {e["protein"]}')
84+
mass_paper_rainbow_sel(f'{e["protein"]}')
8485

8586
def show_backbone_cartoon(e):
8687
cmd.show_as('cartoon', f"({e['protein']}) and not (({e['sidechains_motif']}) or ({e['sidechains_diffused']}))")

rf_diffusion/dev/pymol.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def __call__(self, *args, **kw):
2424
raise Exception(f"cmd.{self.name}('{','.join(all_args)})'") from e
2525

2626
def get_cmd(pymol_url='http://localhost:9123'):
27-
cmd = xmlrpclib.ServerProxy(pymol_url)
27+
cmd = xmlrpclib.ServerProxy(pymol_url, allow_none=True)
2828
if not ('ipd' in pymol_url or 'localhost' in pymol_url):
2929
make_network_cmd(cmd)
3030
return cmd
@@ -41,7 +41,14 @@ def init(pymol_url='http://localhost:9123', init_colors=False):
4141

4242
if init_colors:
4343
set_colors()
44+
cmd.set('sphere_scale', 0.3)
4445

46+
def mass_paper_rainbow_sel(name):
47+
"""
48+
Colors the given selection with a pastel gradient according to residue index.
49+
"""
50+
cmd.spectrum("count", "paper_navaho paper_melon paper_pink paper_purple paper_lightblue paper_blue paper_darkblue", name, None, None, 0, 1)
51+
4552
def set_colors():
4653
"""
4754
Creates extra colors in pymol

rf_diffusion/dev/show_bench.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from rf_diffusion.dev import show_tip_pa
1818
from rf_diffusion.dev import analyze
1919
from rf_diffusion.parsers import parse_pdb_lines_target
20+
from rf_diffusion.dev.pymol import mass_paper_rainbow_sel
2021

2122
logger = logging.getLogger(__name__)
2223

@@ -458,7 +459,7 @@ def format_ppi(all_entities):
458459
continue
459460
e.selectors['target'] = "chain B and not hetatm"
460461
cmd.color('paper_teal', e['target'])
461-
cmd.do(f"mass_paper_rainbow_sel ({e.NOT('target')} and not hetatm)")
462+
mass_paper_rainbow_sel(f"({e.NOT('target')} and not hetatm)")
462463

463464
def pseudoatom(
464465
cmd,

rf_diffusion/dev/show_tip_row.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import functools
66

77
from rf_diffusion.dev import analyze
8+
from rf_diffusion.dev.pymol import mass_paper_rainbow_sel
89
cmd = analyze.cmd
910

1011
class PymolPalette:
@@ -176,7 +177,7 @@ def color_selectors(selectors, carbon=True, verbose=False, des_color=None, hetat
176177
print(f'{color} --> {sel}')
177178
if des_color and j==0:
178179
if des_color == 'rainbow':
179-
cmd.do(f'mass_paper_rainbow_sel {sel}')
180+
mass_paper_rainbow_sel(sel)
180181
else:
181182
cmd.color(des_color, sel)
182183
else:

0 commit comments

Comments
 (0)