|
1
|
|
|
""" |
|
2
|
|
|
See the PyMOL Sessions processed with this code here <https://github.com/mmagnus/PyMOL4Spliceosome> |
|
3
|
|
|
""" |
|
4
|
|
|
from pymol import cmd |
|
5
|
|
|
from rna_tools.tools.PyMOL4RNA import code_for_color_spl |
|
6
|
|
|
from rna_tools.tools.PyMOL4RNA import code_for_spl |
|
7
|
|
|
|
|
8
|
|
|
try: |
|
9
|
|
|
from pymol import cmd |
|
10
|
|
|
except ImportError: |
|
11
|
|
|
print("PyMOL Python lib is missing") |
|
12
|
|
|
# sys.exit(0) |
|
13
|
|
|
|
|
14
|
|
|
def spl_help(): |
|
15
|
|
|
print(""" |
|
16
|
|
|
PyMOL4Spliceosome |
|
17
|
|
|
----------------------- |
|
18
|
|
|
extract all (ea) - show |
|
19
|
|
|
colors - list all colors |
|
20
|
|
|
|
|
21
|
|
|
spl hprp8 |
|
22
|
|
|
spl prp8 |
|
23
|
|
|
spl yprp8 - "color skyblue, PRP8_* and resi 885-1251" |
|
24
|
|
|
spl hprp28 |
|
25
|
|
|
|
|
26
|
|
|
spl chains |
|
27
|
|
|
color blue, chain 5 |
|
28
|
|
|
color red, chain 6 |
|
29
|
|
|
color forest, chain 2 |
|
30
|
|
|
|
|
31
|
|
|
set cartoon_ring_mode to 3 ... |
|
32
|
|
|
|
|
33
|
|
|
""") |
|
34
|
|
|
spl_help() |
|
35
|
|
|
|
|
36
|
|
|
print(""" |
|
37
|
|
|
spl g2 # coloring for 6chr g2 introns |
|
38
|
|
|
""") |
|
39
|
|
|
|
|
40
|
|
|
cmd.set('transparency', 0.25) |
|
41
|
|
|
cmd.set('cartoon_ring_mode', 3) |
|
42
|
|
|
# colors taken from https://github.com/maxewilkinson/Spliceosome-PyMOL-sessions |
|
43
|
|
|
cmd.set_color('lightgreen', [144, 238, 144]) |
|
44
|
|
|
cmd.set_color('darkgreen', [0, 100, 0]) |
|
45
|
|
|
cmd.set_color('darkseagreen', [143, 188, 143]) |
|
46
|
|
|
cmd.set_color('greenyellow', [173, 255, 47]) |
|
47
|
|
|
cmd.set_color('coral', [255, 127, 80]) |
|
48
|
|
|
cmd.set_color('darkorange', [255, 140, 0]) |
|
49
|
|
|
cmd.set_color('gold', [255, 215, 0]) |
|
50
|
|
|
cmd.set_color('lemonchiffon', [255,250,205]) |
|
51
|
|
|
cmd.set_color('moccasin', [255,228,181]) |
|
52
|
|
|
cmd.set_color('skyblue', [135,206,235]) |
|
53
|
|
|
cmd.set_color('lightyellow', [255,255,224]) |
|
54
|
|
|
cmd.set_color('powderblue', [176,224,230]) |
|
55
|
|
|
cmd.set_color('royalblue', [65,105,225]) |
|
56
|
|
|
cmd.set_color('cornflowerblue', [100,149,237]) |
|
57
|
|
|
cmd.set_color('steelblue', [70,130,180]) |
|
58
|
|
|
cmd.set_color('lightsteelblue', [176,196,222]) |
|
59
|
|
|
cmd.set_color('violetBlue', [40, 0, 120]) |
|
60
|
|
|
cmd.set_color('mediumpurple', [147,112,219]) |
|
61
|
|
|
cmd.set_color('lavenderblush', [255,240,245]) |
|
62
|
|
|
cmd.set_color('lavender', [230,230,250]) |
|
63
|
|
|
cmd.set_color('thistle', [216,191,216]) |
|
64
|
|
|
|
|
65
|
|
|
|
|
66
|
|
|
|
|
67
|
|
|
def color_by_text(txt): |
|
68
|
|
|
"""Helper function used for color-coding based on residue indexes ranges.""" |
|
69
|
|
|
for t in txt.strip().split('\n'): |
|
70
|
|
|
print(t) |
|
71
|
|
|
color, resi = t.replace('color ', '').split(',') |
|
72
|
|
|
print((color, resi)) |
|
73
|
|
|
cmd.color(color.strip(), resi.strip()) |
|
74
|
|
|
|
|
75
|
|
|
def spl(arg=''): |
|
76
|
|
|
""" |
|
77
|
|
|
action='', name='' |
|
78
|
|
|
""" |
|
79
|
|
|
#reload() |
|
80
|
|
|
print(arg) |
|
81
|
|
|
if ' ' in arg: |
|
82
|
|
|
action, name = arg.split() |
|
83
|
|
|
name = name.lower() |
|
84
|
|
|
else: |
|
85
|
|
|
action = arg |
|
86
|
|
|
name = '' |
|
87
|
|
|
#import pandas as pd |
|
88
|
|
|
#df = pd.read_excel("/home/magnus/Desktop/pyMoL_colors-EMX.xlsx") |
|
89
|
|
|
if not action or action == 'help': |
|
90
|
|
|
spl_help() |
|
91
|
|
|
cmd.do('color red, chain A') |
|
92
|
|
|
cmd.do('color forest, chain B') |
|
93
|
|
|
cmd.do('color grey, chain C') |
|
94
|
|
|
cmd.do('color grey, chain D') |
|
95
|
|
|
|
|
96
|
|
|
cmd.do('color grey, chain I') |
|
97
|
|
|
cmd.do('color grey, chain J') |
|
98
|
|
|
|
|
99
|
|
|
cmd.do('color purple, chain D and resi 4') |
|
100
|
|
|
cmd.do('color purple, resn MG') |
|
101
|
|
|
# exon |
|
102
|
|
|
cmd.do('color yellow, chain G') |
|
103
|
|
|
cmd.do('color yellow, chain E') |
|
104
|
|
|
|
|
105
|
|
|
cmd.do('color blue, chain H') |
|
106
|
|
|
cmd.do('color blue, chain U') |
|
107
|
|
|
|
|
108
|
|
|
cmd.show("spheres", "inorganic") |
|
109
|
|
|
cmd.set('sphere_scale', '1', '(all)') |
|
110
|
|
|
#cmd.set('sphere_scale', '1', '(all)') |
|
111
|
|
|
cmd.color("yellow", "inorganic") |
|
112
|
|
|
|
|
113
|
|
|
elif arg == 'g22': |
|
114
|
|
|
print('g22') |
|
115
|
|
|
t = """ |
|
116
|
|
|
color gray, resi 1-600; |
|
117
|
|
|
color red, resi 550-586; |
|
118
|
|
|
color pink, resi 587-630; |
|
119
|
|
|
color brown, resi 507-549; |
|
120
|
|
|
color marine, resi 350-424; |
|
121
|
|
|
color yellow, resi 425-507; |
|
122
|
|
|
color forest, resi 1-26; |
|
123
|
|
|
color forest, resi 327-350; |
|
124
|
|
|
color yellow, chain B; |
|
125
|
|
|
""" |
|
126
|
|
|
color_by_text(t) |
|
127
|
|
|
|
|
128
|
|
|
elif arg == 'g21': |
|
129
|
|
|
print('g21') |
|
130
|
|
|
t = """ |
|
131
|
|
|
color gray, resi 1-600; |
|
132
|
|
|
color red, resi 300-400 |
|
133
|
|
|
color marine, resi 288-289; |
|
134
|
|
|
""" |
|
135
|
|
|
color_by_text(t) |
|
136
|
|
|
|
|
137
|
|
|
elif action == 'color' or arg=='c': |
|
138
|
|
|
code_for_color_spl.spl_color() |
|
139
|
|
|
elif arg == 'extract all' or arg == 'ea' or arg == 'e': |
|
140
|
|
|
code_for_spl.spl_extract() |
|
141
|
|
|
elif arg == 'cc': # colorchains |
|
142
|
|
|
cmd.do('color blue, chain 5') |
|
143
|
|
|
cmd.do('color red, chain 6') |
|
144
|
|
|
cmd.do('color forest, chain 2') |
|
145
|
|
|
|
|
146
|
|
|
cmd.do('color red, chain V') |
|
147
|
|
|
cmd.do('color forest, chain Z') |
|
148
|
|
|
|
|
149
|
|
|
elif arg == 'ab': # colorchains |
|
150
|
|
|
cmd.do('color red, chain B') |
|
151
|
|
|
cmd.do('color forest, chain A') |
|
152
|
|
|
cmd.do('color grey, chain C') |
|
153
|
|
|
cmd.do('color grey, chain D') |
|
154
|
|
|
cmd.do('color purple, chain D and resi 4') |
|
155
|
|
|
cmd.do('color purple, resn MG') |
|
156
|
|
|
|
|
157
|
|
|
elif arg == 'trim': |
|
158
|
|
|
cmd.do(""" remove chain 5; |
|
159
|
|
|
remove chain 2 and resi 1-19; |
|
160
|
|
|
remove chain 2 and resi 50-200; |
|
161
|
|
|
remove chain 6 and resi 87-200; |
|
162
|
|
|
remove chain 6 and resi 1-40; |
|
163
|
|
|
remove chain P and resi 45-200; |
|
164
|
|
|
""") |
|
165
|
|
|
|
|
166
|
|
|
elif arg == 'trim2': # keep super small |
|
167
|
|
|
cmd.do(""" remove chain 5; |
|
168
|
|
|
remove chain 2 and resi 1-19; |
|
169
|
|
|
remove chain 2 and resi 30-200; |
|
170
|
|
|
|
|
171
|
|
|
remove chain 6 and resi 87-200; |
|
172
|
|
|
remove chain 6 and resi 1-50; |
|
173
|
|
|
|
|
174
|
|
|
remove chain P and resi 45-200; |
|
175
|
|
|
|
|
176
|
|
|
remove chain I; |
|
177
|
|
|
remove chain E; |
|
178
|
|
|
""") |
|
179
|
|
|
|
|
180
|
|
|
elif arg == 't5': |
|
181
|
|
|
cmd.set('transparency', 0.5) |
|
182
|
|
|
elif arg == 't1': |
|
183
|
|
|
cmd.set('transparency', 1) |
|
184
|
|
|
elif arg.startswith('hprp28'): |
|
185
|
|
|
print(""" |
|
186
|
|
|
purple, resi 240-361 # RecA1 |
|
187
|
|
|
blue, resi 361-631 # RecA1 |
|
188
|
|
|
orange, resi 631-811 # RecA2 |
|
189
|
|
|
""") |
|
190
|
|
|
cmd.do("color purple, PRP28_h* and resi 240-361") # RecA1 |
|
191
|
|
|
cmd.do("color blue, PRP28_h* and resi 361-631") # RecA1 |
|
192
|
|
|
cmd.do("color orange, PRP28_h* and resi 631-811") # RecA2 |
|
193
|
|
|
elif arg.startswith('hprp8'): |
|
194
|
|
|
print(""" |
|
195
|
|
|
|
|
196
|
|
|
RT finger/palm, skyblue, 812-1303 |
|
197
|
|
|
Thumb/X, cyan, 1257-1375 |
|
198
|
|
|
linker smudge, 1304-1577 |
|
199
|
|
|
Endonuclease yellow, 1581-1752 |
|
200
|
|
|
RNaseH-like wheat, 1767-2020 |
|
201
|
|
|
JAB salmon, 2103-2234 |
|
202
|
|
|
|
|
203
|
|
|
""") |
|
204
|
|
|
cmd.do("color yellow, PRP8_h* and resi 1581-1752") # rt |
|
205
|
|
|
cmd.do("color wheat, PRP8_h* and resi 1767-2020") # rh |
|
206
|
|
|
cmd.do("color salmon, PRP8_h* and resi 2103-2234") # jab |
|
207
|
|
|
cmd.do("color smudge, PRP8_h* and resi 1304-1577") # linker |
|
208
|
|
|
cmd.do("color skyblue, PRP8_h* and resi 812-1303") # rt |
|
209
|
|
|
elif arg.startswith('prp8'): |
|
210
|
|
|
print( |
|
211
|
|
|
""" |
|
212
|
|
|
select Prp8N, Prp8 and resi 1-870 |
|
213
|
|
|
select Prp8Large, Prp8 and resi 871-1827 |
|
214
|
|
|
select Prp8RH, Prp8 and resi 1828-2106 |
|
215
|
|
|
select Prp8RT, Prp8 and resi 871-1375 |
|
216
|
|
|
select Prp8linker, Prp8 and resi 1376-1652 |
|
217
|
|
|
select Prp8EN, Prp8 and resi 1653-1824 |
|
218
|
|
|
select Prp8afinger, Prp8 and resi 1583-1610 |
|
219
|
|
|
""") |
|
220
|
|
|
cmd.do("color skyblue, PRP8_y* and resi 885-1251") # rt |
|
221
|
|
|
cmd.do("color cyan, PRP8_y* and resi 1257-1375") # thumb/x |
|
222
|
|
|
cmd.do("color smudge, PRP8_y* and resi 1376-1649") # linker |
|
223
|
|
|
cmd.do("color wheat, PRP8_y* and resi 1840-2090") # rh |
|
224
|
|
|
cmd.do("color salmon, PRP8_y* and resi 2150-2395") # jab |
|
225
|
|
|
cmd.do("color yellow, PRP8_y* and resi 1650-1840") # endo |
|
226
|
|
|
elif arg.startswith('yprp8'): |
|
227
|
|
|
print( |
|
228
|
|
|
""" |
|
229
|
|
|
select Prp8N, Prp8 and resi 1-870 |
|
230
|
|
|
select Prp8Large, Prp8 and resi 871-1827 |
|
231
|
|
|
select Prp8RH, Prp8 and resi 1828-2106 |
|
232
|
|
|
select Prp8RT, Prp8 and resi 871-1375 |
|
233
|
|
|
select Prp8linker, Prp8 and resi 1376-1652 |
|
234
|
|
|
select Prp8EN, Prp8 and resi 1653-1824 |
|
235
|
|
|
select Prp8afinger, Prp8 and resi 1583-1610 |
|
236
|
|
|
""") |
|
237
|
|
|
cmd.do("color skyblue, PRP8_* and resi 885-1251") # rt |
|
238
|
|
|
cmd.do("color cyan, PRP8_* and resi 1257-1375") # thumb/x |
|
239
|
|
|
cmd.do("color smudge, PRP8_* and resi 1376-1649") # linker |
|
240
|
|
|
cmd.do("color wheat, PRP8_* and resi 1840-2090") # rh |
|
241
|
|
|
cmd.do("color salmon, PRP8_* and resi 2150-2395") # jab |
|
242
|
|
|
cmd.do("color yellow, PRP8_* and resi 1650-1840") # endo |
|
243
|
|
|
elif arg.startswith(''): |
|
244
|
|
|
if 'hjab' in arg.lower(): |
|
245
|
|
|
cmd.select('PRP8_h* and resi 2103-2234') |
|
246
|
|
|
if 'hlinker' in arg.lower(): |
|
247
|
|
|
cmd.select('PRP8_h* and resi 1304-1577') |
|
248
|
|
|
if 'hrt' in arg.lower(): |
|
249
|
|
|
cmd.select('PRP8_h* and resi 812-1303') |
|
250
|
|
|
if 'hrh' in arg.lower(): |
|
251
|
|
|
cmd.select('PRP8_h* and resi 1767-2020') |
|
252
|
|
|
if 'he' in arg.lower(): |
|
253
|
|
|
cmd.select('PRP8_h* and resi 1581-1752') |
|
254
|
|
|
elif arg == 'align' or arg=='a': |
|
255
|
|
|
cmd.do(""" |
|
256
|
|
|
align /5gm6//6, /5lj3//V; |
|
257
|
|
|
align /5mps//6, /5lj3//V; |
|
258
|
|
|
align /6exn//6, /5lj3//V; |
|
259
|
|
|
align /5y88//D, /5lj3//V; |
|
260
|
|
|
align /5ylz//D, /5lj3//V; |
|
261
|
|
|
""") |
|
262
|
|
|
else: |
|
263
|
|
|
spl_help() |
|
264
|
|
|
|
|
265
|
|
|
cmd.extend('spl', spl) |
|
266
|
|
|
|
|
267
|
|
|
def g2(): |
|
268
|
|
|
txt = """color gray, all; |
|
269
|
|
|
color yellow, chain B; |
|
270
|
|
|
color red, resi 788-824; |
|
271
|
|
|
color yellow, resi 828-866; |
|
272
|
|
|
color forest, resi 476-490; |
|
273
|
|
|
""" |
|
274
|
|
|
color_by_text(txt) |
|
275
|
|
|
cmd.color('pink', 'resi 120') |
|
276
|
|
|
cmd.color('pink', 'resi 2') |
|
277
|
|
|
|
|
278
|
|
|
def __spl_color(): |
|
279
|
|
|
for m in mapping: |
|
|
|
|
|
|
280
|
|
|
protein = m[0] |
|
281
|
|
|
chain = m[1] |
|
282
|
|
|
color = m[2] |
|
283
|
|
|
print('\_' + ' '.join([protein, chain, color])) |
|
284
|
|
|
cmd.do('color ' + color + ', chain ' + chain) |
|
285
|
|
|
# cmd.do('color firebrick, chain V') # U6 |
|
286
|
|
|
|
|
287
|
|
|
def _spl_color(): |
|
288
|
|
|
"""Color spl RNAs (for only color spl RNA and use 4-color code for residues see `spl2`) |
|
289
|
|
|
""" |
|
290
|
|
|
AllObj = cmd.get_names("all") |
|
291
|
|
|
for name in AllObj: |
|
292
|
|
|
if 'Exon' in name or 'exon' in name: |
|
293
|
|
|
cmd.color('yellow', name) |
|
294
|
|
|
if 'Intron' in name or 'intron' in name or '5splicing-site' in name: |
|
295
|
|
|
cmd.color('gray40', name) |
|
296
|
|
|
if '3exon-intron' in name.lower(): |
|
297
|
|
|
cmd.color('gray20', name) |
|
298
|
|
|
if name.startswith("U2_snRNA"): |
|
299
|
|
|
cmd.color('forest', name) |
|
300
|
|
|
if name.startswith("U5_snRNA"): |
|
301
|
|
|
cmd.color('blue', name) |
|
302
|
|
|
if name.startswith("U4_snRNA"): |
|
303
|
|
|
cmd.color('orange', name) |
|
304
|
|
|
if name.startswith("U6_snRNA"): |
|
305
|
|
|
cmd.color('red', name) |
|
306
|
|
|
|
|
307
|
|
|
cmd.do('color gray') |
|
308
|
|
|
|
|
309
|
|
|
# trisnrp |
|
310
|
|
|
cmd.do('color orange, chain V') # conflict |
|
311
|
|
|
cmd.do('color red, chain W') |
|
312
|
|
|
cmd.do('color blue, chain U') |
|
313
|
|
|
# |
|
314
|
|
|
cmd.do('color blue, chain 5') |
|
315
|
|
|
cmd.do('color forest, chain 2') |
|
316
|
|
|
cmd.do('color red, chain 6') |
|
317
|
|
|
cmd.do('color orange, chain 4') |
|
318
|
|
|
cmd.do('color yellow, chain Y') |
|
319
|
|
|
# shi |
|
320
|
|
|
cmd.do('color blue, chain D') # u5 |
|
321
|
|
|
cmd.do('color forest, chain L') # u2 |
|
322
|
|
|
cmd.do('color red, chain E') # u6 |
|
323
|
|
|
cmd.do('color yellow, chain M') |
|
324
|
|
|
cmd.do('color yellow, chain N') |
|
325
|
|
|
# afte branch |
|
326
|
|
|
cmd.do('color blue, chain U') # u5 |
|
327
|
|
|
cmd.do('color forest, chain Z') # u2 |
|
328
|
|
|
cmd.do('color red, chain V') # u6 |
|
329
|
|
|
cmd.do('color yellow, chain E') |
|
330
|
|
|
cmd.do('color black, chain I') |
|
331
|
|
|
# 5WSG |
|
332
|
|
|
# Cryo-EM structure of the Catalytic Step II spliceosome (C* complex) at 4.0 angstrom resolution |
|
333
|
|
|
cmd.do('color blue, chain D') # u5 |
|
334
|
|
|
#cmd.do('color forest, chain L') # u2 |
|
335
|
|
|
cmd.do('color yellow, chain B') |
|
336
|
|
|
cmd.do('color yellow, chain b') |
|
337
|
|
|
cmd.do('color black, chain N') |
|
338
|
|
|
cmd.do('color black, chain M') |
|
339
|
|
|
|
|
340
|
|
|
cmd.do('color black, chain 3') # orange |
|
341
|
|
|
cmd.do('color black, chain E') # yellow |
|
342
|
|
|
cmd.do('color black, chain i') |
|
343
|
|
|
cmd.do('color black, chain e') |
|
344
|
|
|
|
|
345
|
|
|
cmd.do('color black, chain e') |
|
346
|
|
|
|
|
347
|
|
|
cmd.do('color dirtyviolet, chain L') # bud31 |
|
348
|
|
|
cmd.do('color rasberry, chain L') # CERF1 |
|
349
|
|
|
|
|
350
|
|
|
cmd.do('color skyblue, chain A') # PRP8 |
|
351
|
|
|
cmd.do('color grey60, chain B') # BRR2 |
|
352
|
|
|
cmd.do('color dirtyiolet, chain L') # BUD31 |
|
353
|
|
|
cmd.do('color rasberry, chain O') # CEF1 |
|
354
|
|
|
cmd.do('color rasberry, chain S') # CLF1 |
|
355
|
|
|
cmd.do('color dirtyviolet, chain P') # CWC15 |
|
356
|
|
|
cmd.do('color lightteal, chain D') # CWC16/YJU2 |
|
357
|
|
|
cmd.do('color ruby, chain M') # CWC2 |
|
358
|
|
|
cmd.do('color violetpurple, chain R') # CWC21 |
|
359
|
|
|
cmd.do('color bluewhite, chain H') # CWC22 |
|
360
|
|
|
cmd.do('color deepteal, chain F') # CWC25 |
|
361
|
|
|
cmd.do('color black, chain I') # Intron |
|
362
|
|
|
cmd.do('color dirtyviolet, chain G') # ISY1 |
|
363
|
|
|
cmd.do('color palegreen, chain W') # LEA1 |
|
364
|
|
|
cmd.do('color palegreen, chain Y') # Msl1 |
|
365
|
|
|
cmd.do('color lightpink, chain K') # PRP45 |
|
366
|
|
|
cmd.do('color smudge, chain Q') # Prp16 |
|
367
|
|
|
cmd.do('color grey70, chain t') # Prp19 |
|
368
|
|
|
cmd.do('color lightblue, chain J') # PRP46 |
|
369
|
|
|
cmd.do('color chocolate, chain N') # SLT11/ECM2 |
|
370
|
|
|
cmd.do('color grey70, chain s') # Snt309 |
|
371
|
|
|
cmd.do('color slate, chain C') # SNU114 |
|
372
|
|
|
cmd.do('color brightorange, chain T') # SYF1 |
|
373
|
|
|
cmd.do('color forest, chain Z') # U2 |
|
374
|
|
|
cmd.do('color density, chain U') # U5 |
|
375
|
|
|
cmd.do('color deepblue, chain b') # U5_Sm |
|
376
|
|
|
|
|
377
|
|
|
cmd.do('bg gray') |
|
378
|
|
|
# cmd.do('remove (polymer.protein)') |
|
379
|
|
|
|
|
380
|
|
|
cmd.set("cartoon_tube_radius", 1.0) |
|
381
|
|
|
ino() |
|
|
|
|
|
|
382
|
|
|
|
|
383
|
|
|
def spl2(): |
|
384
|
|
|
"""Color spl RNAs and use 4-color code for residues (for only color spl RNA see `spl`) |
|
385
|
|
|
""" |
|
386
|
|
|
|
|
387
|
|
|
AllObj = cmd.get_names("all") |
|
388
|
|
|
for name in AllObj: |
|
389
|
|
|
if 'Exon' in name or 'exon' in name: |
|
390
|
|
|
cmd.color('yellow', name) |
|
391
|
|
|
if 'Intron' in name or 'intron' in name or '5splicing-site' in name: |
|
392
|
|
|
cmd.color('gray40', name) |
|
393
|
|
|
if '3exon-intron' in name.lower(): |
|
394
|
|
|
cmd.color('gray20', name) |
|
395
|
|
|
if name.startswith("U2_snRNA"): |
|
396
|
|
|
cmd.color('forest', name) |
|
397
|
|
|
if name.startswith("U5_snRNA"): |
|
398
|
|
|
cmd.color('blue', name) |
|
399
|
|
|
if name.startswith("U4_snRNA"): |
|
400
|
|
|
cmd.color('orange', name) |
|
401
|
|
|
if name.startswith("U6_snRNA"): |
|
402
|
|
|
cmd.color('red', name) |
|
403
|
|
|
|
|
404
|
|
|
cmd.do('color gray') |
|
405
|
|
|
|
|
406
|
|
|
# trisnrp |
|
407
|
|
|
cmd.do('color orange, chain V') # conflict |
|
408
|
|
|
cmd.do('color red, chain W') |
|
409
|
|
|
cmd.do('color blue, chain U') |
|
410
|
|
|
# |
|
411
|
|
|
cmd.do('color blue, chain 5') |
|
412
|
|
|
cmd.do('color forest, chain 2') |
|
413
|
|
|
cmd.do('color red, chain 6') |
|
414
|
|
|
cmd.do('color orange, chain 4') |
|
415
|
|
|
cmd.do('color yellow, chain Y') |
|
416
|
|
|
# shi |
|
417
|
|
|
cmd.do('color blue, chain D') # u5 |
|
418
|
|
|
cmd.do('color forest, chain L') # u2 |
|
419
|
|
|
cmd.do('color red, chain E') # u6 |
|
420
|
|
|
cmd.do('color yellow, chain M') |
|
421
|
|
|
cmd.do('color yellow, chain N') |
|
422
|
|
|
# afte branch |
|
423
|
|
|
cmd.do('color blue, chain U') # u5 |
|
424
|
|
|
cmd.do('color forest, chain Z') # u2 |
|
425
|
|
|
cmd.do('color red, chain V') # u6 |
|
426
|
|
|
cmd.do('color yellow, chain E') |
|
427
|
|
|
cmd.do('color black, chain I') |
|
428
|
|
|
# 5WSG |
|
429
|
|
|
# Cryo-EM structure of the Catalytic Step II spliceosome (C* complex) at 4.0 angstrom resolution |
|
430
|
|
|
cmd.do('color blue, chain D') # u5 |
|
431
|
|
|
#cmd.do('color forest, chain L') # u2 |
|
432
|
|
|
cmd.do('color yellow, chain B') |
|
433
|
|
|
cmd.do('color yellow, chain b') |
|
434
|
|
|
cmd.do('color black, chain N') |
|
435
|
|
|
cmd.do('color black, chain M') |
|
436
|
|
|
|
|
437
|
|
|
cmd.do('color black, chain 3') # orange |
|
438
|
|
|
cmd.do('color black, chain E') # yellow |
|
439
|
|
|
cmd.do('color black, chain i') |
|
440
|
|
|
cmd.do('color black, chain e') |
|
441
|
|
|
|
|
442
|
|
|
cmd.do('bg gray') |
|
443
|
|
|
cmd.do('remove (polymer.protein)') |
|
444
|
|
|
|
|
445
|
|
|
cmd.color("red",'resn rG+G and name n1+c6+o6+c5+c4+n7+c8+n9+n3+c2+n1+n2') |
|
446
|
|
|
cmd.color("forest",'resn rC+C and name n1+c2+o2+n3+c4+n4+c5+c6') |
|
447
|
|
|
cmd.color("orange",'resn rA+A and name n1+c6+n6+c5+n7+c8+n9+c4+n3+c2') |
|
448
|
|
|
cmd.color("blue",'resn rU+U and name n3+c4+o4+c5+c6+n1+c2+o2') |
|
449
|
|
|
cmd.set("cartoon_tube_radius", 1.0) |
|
450
|
|
|
ino() |
|
|
|
|
|
|
451
|
|
|
|
|
452
|
|
|
|
|
453
|
|
|
def x(): |
|
454
|
|
|
spl_extract() |
|
|
|
|
|
|
455
|
|
|
spl_color() |
|
|
|
|
|
|
456
|
|
|
cmd.extend("x", x) |
|
457
|
|
|
|
|
458
|
|
|
def _spli(): |
|
459
|
|
|
""" |
|
460
|
|
|
# this trick is taken from Rhiju's Das code |
|
461
|
|
|
color red,resn rG+G and name n1+c6+o6+c5+c4+n7+c8+n9+n3+c2+n1+n2 |
|
462
|
|
|
color forest,resn rC+C and name n1+c2+o2+n3+c4+n4+c5+c6 |
|
463
|
|
|
color orange, resn rA+A and name n1+c6+n6+c5+n7+c8+n9+c4+n3+c2 |
|
464
|
|
|
color blue, resn rU+U and name n3+c4+o4+c5+c6+n1+c2+o2 |
|
465
|
|
|
|
|
466
|
|
|
# |
|
467
|
|
|
#cmd.color("yellow", "*intron*") |
|
468
|
|
|
#cmd.color("yellow", "*exon*") |
|
469
|
|
|
|
|
470
|
|
|
#cmd.show("spheres", "inorganic") |
|
471
|
|
|
#cmd.color("yellow", "inorganic") |
|
472
|
|
|
""" |
|
473
|
|
|
cmd.color("orange", "U4_snRNA*") |
|
474
|
|
|
cmd.color("red", "U6_snRNA*") |
|
475
|
|
|
cmd.color("blue", "U5_snRNA*") |
|
476
|
|
|
cmd.color("green", "U2_snRNA*") |
|
477
|
|
|
cmd.color("red",'resn rG+G and name n1+c6+o6+c5+c4+n7+c8+n9+n3+c2+n1+n2') |
|
478
|
|
|
cmd.color("forest",'resn rC+C and name n1+c2+o2+n3+c4+n4+c5+c6') |
|
479
|
|
|
cmd.color("orange",'resn rA+A and name n1+c6+n6+c5+n7+c8+n9+c4+n3+c2') |
|
480
|
|
|
cmd.color("blue",'resn rU+U and name n3+c4+o4+c5+c6+n1+c2+o2') |
|
481
|
|
|
|
|
482
|
|
|
try: |
|
483
|
|
|
from pymol import cmd |
|
484
|
|
|
except ImportError: |
|
485
|
|
|
print("PyMOL Python lib is missing") |
|
486
|
|
|
else: |
|
487
|
|
|
|
|
488
|
|
|
#cmd.extend("spl", spl) |
|
489
|
|
|
cmd.extend("spl2", spl2) |
|
490
|
|
|
|
|
491
|
|
|
|