forked from chemlove/gmx_template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
view_nucl.py
94 lines (89 loc) · 4.07 KB
/
view_nucl.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import os
import urllib.request
import json
import nglview as nv
import MDAnalysis as mda
def view_nucl(*args,gui=False,chconv={},selection='all',color=False):
ch_conv={'A':'A','B':'B','C':'C','D':'D','E':'E','F':'F','G':'G','H':'H','I':'I','J':'J'}
ch_conv.update(chconv)
if(isinstance(args[0],mda.Universe)):
nuclMD=args[0]
else:
nuclMD=mda.Universe(*args)
#prot = nuclMD.select_atoms("protein")
sel=nuclMD.select_atoms(selection)
show=nv.show_mdanalysis(sel,gui=gui)
if(color==False):
color={'A':0x020AED,'B':"green",'C':0xE0F705,'D':0xCE0000,'DNA':"grey"}
show.representations = [
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['A']), "color": color['A'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['B']), "color": color['B'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['C']), "color": color['C'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['D']), "color": color['D'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['E']), "color": color['A'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s "%(ch_conv['F']), "color": color['B'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['G']), "color": color['C'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s "%(ch_conv['H']), "color": color['D'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": "nucleic", "color": color['DNA'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "base", "params": {
"sele": "nucleic", "color": color['DNA'],
}},
]
show.camera = 'orthographic'
return show
def nucl_repr(view,chconv={},selection='all',component=0,color=False):
ch_conv={'A':'A','B':'B','C':'C','D':'D','E':'E','F':'F','G':'G','H':'H','I':'I','J':'J'}
ch_conv.update(chconv)
if(color==False):
color={'A':0x020AED,'B':"green",'C':0xE0F705,'D':0xCE0000,'DNA':"grey"}
view.set_representations([
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['A']), "color": color['A'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['B']), "color": color['B'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['C']), "color": color['C'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['D']), "color": color['D'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['E']), "color": color['A'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['F']), "color": color['B'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['G']), "color": color['C'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": ":%s"%(ch_conv['H']), "color": color['D'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "cartoon", "params": {
"sele": "nucleic", "color": color['DNA'],"aspectRatio":2, "radius":1.5,"radiusSegments":1,"capped":1
}},
{"type": "base", "params": {
"sele": "nucleic", "color": color['DNA'],
}},
],component=component)
view.camera = 'orthographic'