Files changed (1) hide show
  1. app.py +29 -1
app.py CHANGED
@@ -50,8 +50,36 @@ def molecule(input_pdb):
50
  let element = $("#container");
51
  let config = { backgroundColor: "white" };
52
  let viewer = $3Dmol.createViewer(element, config);
 
 
 
 
 
 
 
 
 
 
 
 
53
  viewer.addModel(pdb, "pdb");
54
- viewer.getModel(0).setStyle({}, { cartoon: { colorscheme: {"prop":"resi","gradient":"roygb", "min": 26, "max": 250} } });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  viewer.zoomTo();
56
  viewer.render();
57
  viewer.zoom(1.2, 2000);
 
50
  let element = $("#container");
51
  let config = { backgroundColor: "white" };
52
  let viewer = $3Dmol.createViewer(element, config);
53
+ let colorAlpha = function (atom) {
54
+ if (atom.b < 50) {
55
+ return "OrangeRed";
56
+ } else if (atom.b < 70) {
57
+ return "Gold";
58
+ } else if (atom.b < 90) {
59
+ return "MediumTurquoise";
60
+ } else {
61
+ return "Blue";
62
+ }
63
+ };
64
+
65
  viewer.addModel(pdb, "pdb");
66
+ // set plddt coloring
67
+ viewer.getModel(0).setStyle({cartoon: { colorfunc: colorAlpha }});
68
+ // display pLDDT tooltips when hovering over atoms
69
+ viewer.getModel(0).setHoverable({}, true,
70
+ function (atom, viewer, event, container) {
71
+ if (!atom.label) {
72
+ atom.label = viewer.addLabel(atom.resn + atom.resi + " pLDDT=" + atom.b, { position: atom, backgroundColor: "mintcream", fontColor: "black" });
73
+ }
74
+ },
75
+ function (atom, viewer) {
76
+ if (atom.label) {
77
+ viewer.removeLabel(atom.label);
78
+ delete atom.label;
79
+ }
80
+ }
81
+ );
82
+ }
83
  viewer.zoomTo();
84
  viewer.render();
85
  viewer.zoom(1.2, 2000);