1 {% extends "base.html" %}
3 {% load i18n lazysignup_tags %}
6 {% if task.owner|is_lazy_user %}
8 <ul class="list-group">
10 <li class="list-group-item new-task-item task-item">
12 <div class="col-md-2 form-group">
13 <form action="/refresh_done1/{{task.id}}/" method="post">
15 <input type="submit" class="btn" value="Refresh" name="refreshbtn">
19 <div class="col-md-10 form-group">
20 <h5 style="text-align:right;float:right;">
21 {% if not task.done %}
22 {% if task.running > 0 %}
23 {% if task.running == 100 %}
29 waiting in the queue to start
37 <h3> Task <b>{{ task.name }}</b></h3>
38 Created {{ task.created_date }}
39 <ul class="list-group">
41 <li class="list-group-item task-item">
42 <div class="col-md-4"> done ?</div>
43 <div class="col-md-8">
45 <span class="fa fa-check-square-o"></span>
46 {% if task.type == "md" or task.type == "remd" %}
47 <form action="restart/"
49 style="text-align;float:right;">
52 class="btn btn-default"
59 {% if task.running > 0 %}
60 <span class="fa fa-spinner
64 <span class="fa fa-square-o"></span>
71 <fieldset class="majorpoints">
72 <legend class="majorpointslegend"
73 style="background-color:#d3d3d3;cursor: pointer;">Show input parameters</legend>
74 <div class="hiders" style="display:none" >
76 <li class="list-group-item task-item">
77 <div class="col-md-6"> type </div>
78 <div class="col-md-6">{{ task.type }}</div>
81 <li class="list-group-item task-item">
82 <div class="col-md-6"> force field </div>
83 <div class="col-md-6">{{ task.unres_ff }}</div>
86 <li class="list-group-item task-item">
87 <div class="col-md-4"> sequence </div>
88 <div class="col-md-8 monospace">{{ task.md_seq}}</div>
91 <li class="list-group-item task-item">
92 <div class="col-md-4"> secondary structure
94 <div class="col-md-8 monospace">{{ task.md_2d}}</div>
98 <li class="list-group-item task-item">
99 <div class="col-md-6"> SSBOND </div>
100 <div class="col-md-6">{{ task.ssbond}}</div>
104 {% if task.type == "min" %}
107 <li class="list-group-item task-item">
108 <div class="col-md-6"> algorithm</div>
109 <div class="col-md-6">{{ task.min_choice }}</div>
111 <li class="list-group-item task-item">
112 <div class="col-md-6"> overlap</div>
113 <div class="col-md-6">{{ task.min_overlap }}</div>
115 <li class="list-group-item task-item">
116 <div class="col-md-6"> searchsc</div>
117 <div class="col-md-6">{{ task.min_searchsc }}</div>
119 <li class="list-group-item task-item">
120 <div class="col-md-6"> maxmin</div>
121 <div class="col-md-6">{{ task.min_maxmin }}</div>
123 <li class="list-group-item task-item">
124 <div class="col-md-6"> maxfun</div>
125 <div class="col-md-6">{{ task.min_maxfun }}</div>
127 <li class="list-group-item task-item">
128 <div class="col-md-6"> pdbout</div>
129 <div class="col-md-6">{{ task.min_pdbout }}</div>
131 <li class="list-group-item task-item">
132 <div class="col-md-6"> input pdb </div>
133 <div class="col-md-6">{{ task.myfile1 }}</div>
135 <li class="list-group-item task-item">
136 <div class="col-md-6"> pdb code</div>
137 <div class="col-md-6">{{ task.pdbcode }}</div>
139 <li class="list-group-item task-item">
140 <div class="col-md-6"> unres_pdb</div>
141 <div class="col-md-6">{{ task.min_unres_pdb }}</div>
145 {% if task.type == "md" %}
146 <li class="list-group-item task-item">
147 <div class="col-md-6"> starting </div>
148 <div class="col-md-6">{{ task.md_start}}</div>
151 <li class="list-group-item task-item">
152 <div class="col-md-6"> input pdb </div>
153 <div class="col-md-6">{{ task.myfile1 }}</div>
155 <li class="list-group-item task-item">
156 <div class="col-md-6"> pdb code</div>
157 <div class="col-md-6">{{ task.pdbcode }}</div>
159 <li class="list-group-item task-item">
160 <div class="col-md-6"> seed </div>
161 <div class="col-md-6">{{ task.md_seed}}</div>
163 <li class="list-group-item task-item">
164 <div class="col-md-6"> pdbref </div>
165 <div class="col-md-6">{{ task.md_pdbref}}</div>
167 <li class="list-group-item task-item">
168 <div class="col-md-6"> respa </div>
169 <div class="col-md-6">{{ task.md_respa}}</div>
171 <li class="list-group-item task-item">
172 <div class="col-md-6"> temperature </div>
173 <div class="col-md-6">{{ task.md_temp}}</div>
175 <li class="list-group-item task-item">
176 <div class="col-md-6"> nstep </div>
177 <div class="col-md-6">{{ task.md_nstep}}</div>
179 <li class="list-group-item task-item">
180 <div class="col-md-6"> total steps (with restarts) </div>
181 <div class="col-md-6">{{ task.md_total_steps}}</div>
183 <li class="list-group-item task-item">
184 <div class="col-md-6"> ntwe </div>
185 <div class="col-md-6">{{ task.md_ntwe}}</div>
187 <li class="list-group-item task-item">
188 <div class="col-md-6"> ntwx </div>
189 <div class="col-md-6">{{ task.md_ntwx}}</div>
191 <li class="list-group-item task-item">
192 <div class="col-md-6"> dt </div>
193 <div class="col-md-6">{{ task.md_dt}}</div>
195 <li class="list-group-item task-item">
196 <div class="col-md-6"> thermostat </div>
197 <div class="col-md-6">{{ task.md_lang}}</div>
200 {% if task.md_lang == "berendsen" %}
202 <li class="list-group-item task-item">
203 <div class="col-md-6"> tau </div>
204 <div class="col-md-6">{{ task.md_tau}}</div>
209 <li class="list-group-item task-item">
210 <div class="col-md-6"> scal_fric </div>
211 <div class="col-md-6">{{ task.md_scal_fric}}</div>
216 <li class="list-group-item task-item">
217 <div class="col-md-6"> mdpdb </div>
218 <div class="col-md-6">{{ task.md_mdpdb}}</div>
220 <li class="list-group-item task-item">
221 <div class="col-md-6"> RESPA </div>
222 <div class="col-md-6">{{ task.md_respa}}</div>
228 {% if task.type == "remd" or task.type == "dock" %}
230 <li class="list-group-item task-item">
231 <div class="col-md-6"> nrep </div>
232 <div class="col-md-6">{{ task.remd_nrep}}</div>
234 <li class="list-group-item task-item">
235 <div class="col-md-6"> starting </div>
236 <div class="col-md-6">{{ task.md_start}}</div>
239 <li class="list-group-item task-item">
240 <div class="col-md-6"> input pdb </div>
241 <div class="col-md-6">{{ task.myfile1 }}</div>
243 <li class="list-group-item task-item">
244 <div class="col-md-6"> pdb code</div>
245 <div class="col-md-6">{{ task.pdbcode }}</div>
247 {% if task.type == "dock" %}
248 <li class="list-group-item task-item">
249 <div class="col-md-6"> input pdb2 </div>
250 <div class="col-md-6">{{ task.myfile2 }}</div>
252 <li class="list-group-item task-item">
253 <div class="col-md-6"> pdb code2</div>
254 <div class="col-md-6">{{ task.pdbcode2 }}</div>
256 <li class="list-group-item task-item">
257 <div class="col-md-6"> dock_peptide</div>
258 <div class="col-md-6">{{ task.dock_peptide }}</div>
262 <li class="list-group-item task-item">
263 <div class="col-md-6"> seed </div>
264 <div class="col-md-6">{{ task.md_seed}}</div>
266 <li class="list-group-item task-item">
267 <div class="col-md-6"> pdbref </div>
268 <div class="col-md-6">{{ task.md_pdbref}}</div>
270 {% if task.md_start == "pdbstart" %}
271 <li class="list-group-item task-item">
272 <div class="col-md-6"> preminim maxfun </div>
273 <div class="col-md-6">{{ task.min_maxfun }}</div>
276 <li class="list-group-item task-item">
277 <div class="col-md-6"> respa </div>
278 <div class="col-md-6">{{ task.md_respa}}</div>
280 <li class="list-group-item task-item">
281 <div class="col-md-6"> nstep </div>
282 <div class="col-md-6">{{ task.md_nstep}}</div>
284 <li class="list-group-item task-item">
285 <div class="col-md-6"> total steps (with restarts) </div>
286 <div class="col-md-6">{{ task.md_total_steps}}</div>
288 <li class="list-group-item task-item">
289 <div class="col-md-6"> ntwe </div>
290 <div class="col-md-6">{{ task.md_ntwe}}</div>
292 <li class="list-group-item task-item">
293 <div class="col-md-6"> nstex </div>
294 <div class="col-md-6">{{ task.remd_nstex}}</div>
296 <li class="list-group-item task-item">
297 <div class="col-md-6"> ntwx </div>
298 <div class="col-md-6">{{ task.md_ntwx}}</div>
300 <li class="list-group-item task-item">
301 <div class="col-md-6"> dt </div>
302 <div class="col-md-6">{{ task.md_dt}}</div>
304 <li class="list-group-item task-item">
305 <div class="col-md-6"> thermostat </div>
306 <div class="col-md-6">{{ task.md_lang}}</div>
309 {% if task.md_lang == "berendsen" %}
311 <li class="list-group-item task-item">
312 <div class="col-md-6"> tau </div>
313 <div class="col-md-6">{{ task.md_tau}}</div>
318 <li class="list-group-item task-item">
319 <div class="col-md-6"> scal_fric </div>
320 <div class="col-md-6">{{ task.md_scal_fric}}</div>
325 <li class="list-group-item task-item">
326 <div class="col-md-6"> RESPA </div>
327 <div class="col-md-6">{{ task.md_respa}}</div>
330 <li class="list-group-item task-item">
331 <div class="col-md-6"> temperatures </div>
332 <div class="col-md-6">{{ task.remd_multi_t}}</div>
334 <li class="list-group-item task-item">
335 <div class="col-md-6"> multiplex </div>
336 <div class="col-md-6">{{ task.remd_multi_m}}</div>
338 <li class="list-group-item task-item">
339 <div class="col-md-6"> temperature for clustering</div>
340 <div class="col-md-6">{{ task.remd_cluter_temp}}</div>
342 {% if task.saxs_data != "" %}
343 <li class="list-group-item task-item">
344 <div class="col-md-6"> wsaxs </div>
345 <div class="col-md-6">{{ task.wsaxs }}</div>
347 <li class="list-group-item task-item">
348 <div class="col-md-6"> scal_rad (saxs) </div>
349 <div class="col-md-6">{{ task.scal_rad }}</div>
351 <li class="list-group-item task-item">
352 <div class="col-md-6"> saxs distribution </div>
353 <div class="col-md-6"><pre> {{ task.saxs_data }}</pre></div>
359 <li class="list-group-item task-item">
360 <div class="col-md-6"> Box X Y Z</div>
361 <div class="col-md-2">{{ task.boxx}}</div>
362 <div class="col-md-2">{{ task.boxy}}</div>
363 <div class="col-md-2">{{ task.boxz}}</div>
370 <li class="list-group-item task-item">
371 <div class="col-md-4"> Directory </div>
372 <div class="col-md-8">
373 <a href="/myfiles/list/{{task.jobdirname}}/">
374 {{ task.jobdirname }}
378 <a class="btn btn-default"
379 href="/{{task.id}}/all.zip">
388 {% if task.type == "min" %}
390 <li class="list-group-item task-item">
391 <div class="col-md-2"> Etot </div>
392 <div class="col-md-10">{{ task.etot }}</div>
395 <li class="list-group-item task-item">
396 <div class="col-md-2"> UNRES model </div>
397 <div class="col-md-10">
399 href="/myfiles/download-file/{{task.jobdirname}}/unres.pse">
401 src="/myfiles/download-file/{{task.jobdirname}}/unres.png"
402 width="500"></a> </div>
405 <li class="list-group-item task-item">
406 <div class="col-md-2"> UNRES model NGL viewer</div>
407 <div class="col-md-10" id="viewport_unres"
408 style="width:500px;height:500px;">
414 <li class="list-group-item task-item">
415 <div class="col-md-2"> Structure overlap </div>
416 <div class="col-md-10"> <img
417 src="/myfiles/download-file/{{task.jobdirname}}/unres_overlap.png"
421 <li class="list-group-item task-item">
422 <div class="col-md-2"> Structure overlap NGL viewer</div>
423 <div class="col-md-10" id="viewport_min"
424 style="width:500px;height:500px;">
427 <li class="list-group-item task-item">
428 <div class="col-md-12">
429 <button id="toggleAllatom">Input structure on/off</button>
430 <button id="toggleSidechains2">Side-chains on/off</button>
435 <li class="list-group-item task-item">
436 <div class="col-md-2"> Results </div>
437 <div class="col-md-10">{{ task.results_text|linebreaks }}</div>
440 {% if task.type == "md" %}
442 <li class="list-group-item task-item">
443 <div class="col-md-2"> Temperature histogram </div>
444 <div class="col-md-10"> <img
445 src="/myfiles/download-file/{{task.jobdirname}}/temp_hist.png"
449 <li class="list-group-item task-item">
450 <div class="col-md-2"> Potential energy </div>
451 <div class="col-md-10"> <img
452 src="/myfiles/download-file/{{task.jobdirname}}/md_ene.png"
456 <li class="list-group-item task-item">
457 <div class="col-md-2"> Movie </div>
458 <div class="col-md-10">
460 <video width="500" height="400"
461 preload="auto" controls="controls">
463 src="/myfiles/download-file/{{task.jobdirname}}/md.ogv"
464 type="video/ogg; codecs=theora"> </source>
470 {% if task.md_mdpdb %}
471 <li class="list-group-item task-item">
472 <div class="col-md-2"> Trajectory NGL viewer</div>
473 <div class="col-md-10" id="viewport_traj"
474 style="width:500px;height:500px;">
477 <li class="list-group-item task-item">
478 <div class="col-md-6">
479 <input id="clipRange" type="range" value=1 min=1 max= {% widthratio task.md_total_steps task.md_ntwx 1 %} step=1 ></input><span id="clipRange_val">1</span> frame
481 <div class="col-md-6">
482 <button id="toggleRunMDs">run/pause MD</button>
483 <button id="toggleSidechains1">side-chains on/off</button>
489 <li class="list-group-item task-item">
490 <div class="col-md-2"> Radius of gyration based
491 on C<sup>α</sup> coordinates </div>
492 <div class="col-md-10"> <img
493 src="/myfiles/download-file/{{task.jobdirname}}/md_gyr.png"
499 {% if task.md_pdbref %}
500 <li class="list-group-item task-item">
501 <div class="col-md-2"> C<sup>α</sup> RMSD </div>
502 <div class="col-md-10"> <img
503 src="/myfiles/download-file/{{task.jobdirname}}/md_rms.png"
507 <li class="list-group-item task-item">
508 <div class="col-md-2"> fraction of native
509 side-chain concacts </div>
510 <div class="col-md-10"> <img
511 src="/myfiles/download-file/{{task.jobdirname}}/md_fracn.png"
517 {% if task.md_start == "pdbstart" %}
518 <li class="list-group-item task-item">
519 <div class="col-md-2"> fluctuations </div>
520 <div class="col-md-10"> <img
521 src="/myfiles/download-file/{{task.jobdirname}}/fluct_plot.png"
525 <li class="list-group-item task-item">
526 <div class="col-md-2"> fluctuations putty on
527 starting structure</div>
528 <div class="col-md-10">
530 href="/myfiles/download-file/{{task.jobdirname}}/fluct.pse">
532 src="/myfiles/download-file/{{task.jobdirname}}/fluct.png"
533 width="500"></a> </div>
536 <li class="list-group-item task-item">
537 <div class="col-md-2"> fluctuations putty on
538 starting structure NGL viewer</div>
539 <div class="col-md-10" id="viewport_putty"
540 style="width:500px;height:500px;">
551 {% if task.type == "remd" or task.type == "dock" %}
553 <li class="list-group-item task-item">
554 <div class="col-md-2"> Energy histogram </div>
555 <div class="col-md-10"> <img
556 src="/myfiles/download-file/{{task.jobdirname}}/remd_ene_hist.png"
560 <li class="list-group-item task-item">
561 <div class="col-md-2"> Energy vs. temperature </div>
562 <div class="col-md-10"> <img
563 src="/myfiles/download-file/{{task.jobdirname}}/remd_Tene.png"
567 <li class="list-group-item task-item">
568 <div class="col-md-2"> Cv vs. temperature </div>
569 <div class="col-md-10"> <img
570 src="/myfiles/download-file/{{task.jobdirname}}/remd_cv.png"
574 {% if task.md_pdbref %}
576 <li class="list-group-item task-item">
577 <div class="col-md-2"> Average C<sup>α</sup> RMSD vs. temperature </div>
578 <div class="col-md-10"> <img
579 src="/myfiles/download-file/{{task.jobdirname}}/remd_rmsd.png"
583 <li class="list-group-item task-item">
584 <div class="col-md-2"> potential energy vs.
585 C<sup>α</sup> RMSD</div>
586 <div class="col-md-10"> <img
587 src="/myfiles/download-file/{{task.jobdirname}}/remd_ene_rms.png"
591 <li class="list-group-item task-item">
592 <div class="col-md-2"> C<sup>α</sup> RMSD vs. step*replica
593 colored by bath temperature</div>
594 <div class="col-md-10"> <img
595 src="/myfiles/download-file/{{task.jobdirname}}/remd_step_rms.png"
602 <li class="list-group-item task-item">
603 <div class="col-md-2"> exchanges (walk in T) </div>
604 <div class="col-md-10"> <img
605 src="/myfiles/download-file/{{task.jobdirname}}/remd_ex.png"
609 {% if task.saxs_data != "" %}
610 <li class="list-group-item task-item">
611 <div class="col-md-2"> P(r) of input SAXS data and
612 calculated for 5 models and the input pdb</div>
613 <div class="col-md-10"> <img
614 src="/myfiles/download-file/{{task.jobdirname}}/saxs.png"
619 <li class="list-group-item task-item">
620 <div class="col-md-4">
621 <button onclick="plusDivs(-1)">❮</button>
623 <div class="col-md-6">
626 <div class="col-md-2">
627 <button onclick="plusDivs(1)">❯</button>
632 <!-- <li class="list-group-item task-item">
633 <div class="col-md-2"> model1 after conversion
635 {{ task.remd_model1|linebreaks }}
637 <div class="col-md-10">
639 href="/myfiles/download-file/{{task.jobdirname}}/MODEL1.pdb">
641 src="/myfiles/download-file/{{task.jobdirname}}/model1.png" width="500">
644 <li class="list-group-item task-item">
645 <div class="col-md-2"> model1
646 {% if not task.damino %}
647 after conversion to allatom
649 {{ task.remd_model1|linebreaks }}
651 <div class="col-md-10" id="viewport_M1"
652 style="width:500px;height:500px;">
655 <li class="list-group-item task-item">
656 <div class="col-md-12">
657 {% if task.md_pdbref %}
658 <button id="toggleRefM1">Reference structure on/off</button>
660 <button id="toggleSidechainsM1">Side-chains on/off</button>
661 <a class="btn btn-default"
662 href="/myfiles/download-file/{{task.jobdirname}}/MODEL1.pdb">Download</a>
668 <!-- <li class="list-group-item task-item">
669 <div class="col-md-2"> model2 after conversion
671 {{ task.remd_model2|linebreaks }}
673 <div class="col-md-10">
675 href="/myfiles/download-file/{{task.jobdirname}}/MODEL2.pdb">
677 src="/myfiles/download-file/{{task.jobdirname}}/model2.png" width="500">
680 <li class="list-group-item task-item">
681 <div class="col-md-2"> model2
682 {% if not task.damino %}
683 after conversion to allatom
685 {{ task.remd_model2|linebreaks }}
687 <div class="col-md-10" id="viewport_M2"
688 style="width:500px;height:500px;">
691 <li class="list-group-item task-item">
692 <div class="col-md-12">
693 {% if task.md_pdbref %}
694 <button id="toggleRefM2">Reference structure on/off</button>
696 <button id="toggleSidechainsM2">Side-chains on/off</button>
697 <a class="btn btn-default"
698 href="/myfiles/download-file/{{task.jobdirname}}/MODEL2.pdb">Download</a>
705 <!-- <li class="list-group-item task-item">
706 <div class="col-md-2"> model3 after conversion
708 {{ task.remd_model3|linebreaks }}
710 <div class="col-md-10">
712 href="/myfiles/download-file/{{task.jobdirname}}/MODEL3.pdb">
714 src="/myfiles/download-file/{{task.jobdirname}}/model3.png" width="500">
717 <li class="list-group-item task-item">
718 <div class="col-md-2"> model3
719 {% if not task.damino %}
720 after conversion to allatom
722 {{ task.remd_model3|linebreaks }}
724 <div class="col-md-10" id="viewport_M3"
725 style="width:500px;height:500px;">
728 <li class="list-group-item task-item">
729 <div class="col-md-12">
730 {% if task.md_pdbref %}
731 <button id="toggleRefM3">Reference structure on/off</button>
733 <button id="toggleSidechainsM3">Side-chains on/off</button>
734 <a class="btn btn-default"
735 href="/myfiles/download-file/{{task.jobdirname}}/MODEL3.pdb">Download</a>
741 <!-- <li class="list-group-item task-item">
742 <div class="col-md-2"> model4 after conversion
744 {{ task.remd_model4|linebreaks }}
746 <div class="col-md-10">
748 href="/myfiles/download-file/{{task.jobdirname}}/MODEL4.pdb">
750 src="/myfiles/download-file/{{task.jobdirname}}/model4.png" width="500">
753 <li class="list-group-item task-item">
754 <div class="col-md-2"> model4
755 {% if not task.damino %}
756 after conversion to allatom
758 {{ task.remd_model4|linebreaks }}
760 <div class="col-md-10" id="viewport_M4"
761 style="width:500px;height:500px;">
764 <li class="list-group-item task-item">
765 <div class="col-md-12">
766 {% if task.md_pdbref %}
767 <button id="toggleRefM4">Reference structure on/off</button>
769 <button id="toggleSidechainsM4">Side-chains on/off</button>
770 <a class="btn btn-default"
771 href="/myfiles/download-file/{{task.jobdirname}}/MODEL4.pdb">Download</a>
777 <!-- <li class="list-group-item task-item">
778 <div class="col-md-2"> model5 after conversion
780 {{ task.remd_model5|linebreaks }}
782 <div class="col-md-10">
784 href="/myfiles/download-file/{{task.jobdirname}}/MODEL5.pdb">
786 src="/myfiles/download-file/{{task.jobdirname}}/model5.png" width="500">
789 <li class="list-group-item task-item">
790 <div class="col-md-2"> model5
791 {% if not task.damino %}
792 after conversion to allatom
794 {{ task.remd_model5|linebreaks }}
796 <div class="col-md-10" id="viewport_M5"
797 style="width:500px;height:500px;">
800 <li class="list-group-item task-item">
801 <div class="col-md-12">
802 {% if task.md_pdbref %}
803 <button id="toggleRefM5">Reference structure on/off</button>
805 <button id="toggleSidechainsM5">Side-chains on/off</button>
806 <a class="btn btn-default"
807 href="/myfiles/download-file/{{task.jobdirname}}/MODEL5.pdb">Download</a>
819 Regular user cannot use this link.
823 <script src="/static/jquery.min.js"></script>
824 <script src="https://unpkg.com/ngl"></script>
827 $('.majorpointslegend').click(function(){
828 $(this.parentNode).find('.hiders').toggle();
829 if($(this.parentNode).find('.majorpointslegend').text()=='Show input parameters'){
830 $(this.parentNode).find('.majorpointslegend').text('Hide input parameters');
832 $(this.parentNode).find('.majorpointslegend').text('Show input parameters');
837 {% if task.type == "remd" or task.type == "dock" %}
839 function display_model(numstr){
841 {% if task.md_pdbref %}
842 var stage = new NGL.Stage("viewport_M"+numstr);
843 stage.setParameters( { backgroundColor: "white",fogFar: 60, fogNear: 45 } );
845 stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/plik1.pdb" ,{defaultRepresentation: false}) .then( function( o ){
846 o.addRepresentation( "cartoon",{ name:"ref", color:"grey"
848 o.addRepresentation( "line", {name:"refsc",visible: false,
849 sele:"not hydrogen and sidechainAttached"
854 "/myfiles/download-file/{{task.jobdirname}}/MODEL"+numstr+".pdb",{defaultRepresentation: false}) .then( function( o ){
856 o.addRepresentation( "licorice",{ name: "unres", color:
857 "residueindex",colorScale:["blue","cyan", "green",
858 "yellow","orange", "red"], sele:".CA"
860 o.addRepresentation( "licorice",{ name: "unressc", visible: false, color:
861 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
864 o.addRepresentation( "cartoon",{ name: "unres", color:
865 "residueindex",colorScale:["blue","cyan", "green",
866 "yellow","orange", "red"]
868 o.addRepresentation( "line",{ name: "unressc", visible: false, color:
869 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
870 , sele:"not hydrogen and sidechainAttached" })
874 ]).then(function (ol1) {
875 ol1[ 1 ].superpose(ol1[ 0 ], false, ".CA")
880 var toggleAll = document.getElementById( "toggleRefM"+numstr );
881 toggleAll.addEventListener( "click", function(){
883 stage.getRepresentationsByName(
884 "ref" ).list.forEach( function( repre ){
885 repre.setVisibility( !repre.visible );
888 stage.getRepresentationsByName(
889 "refsc" ).list.forEach( function( repre ){
890 repre.setVisibility( !repre.visible );
895 var toggleSidechains =document.getElementById("toggleSidechainsM"+numstr );
896 toggleSidechains.addEventListener( "click", function(){
899 stage.getRepresentationsByName(
900 "refsc" ).list.forEach( function( repre ){
901 repre.setVisibility( !repre.visible );
904 stage.getRepresentationsByName("unressc").list.forEach( function( repre ){
905 repre.setVisibility( !repre.visible );
910 var stage = new NGL.Stage("viewport_M"+numstr);
911 stage.setParameters( { backgroundColor: "white",fogFar: 60, fogNear: 45 } );
912 stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/MODEL"+numstr+".pdb",{defaultRepresentation: false}) .then( function( o ){
914 o.addRepresentation( "licorice",{ name: "unres", color:
915 "residueindex",colorScale:["blue","cyan", "green",
916 "yellow","orange", "red"],sele:".CA"
918 o.addRepresentation( "licorice",{ name: "unressc", visible: false, color:
919 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
922 o.addRepresentation( "cartoon",{ name: "unres", color:
923 "residueindex",colorScale:["blue","cyan", "green",
924 "yellow","orange", "red"]
926 o.addRepresentation( "line",{ name: "unressc", visible: false, color:
927 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
928 , sele:"not hydrogen and sidechainAttached" });
932 var toggleSidechains =document.getElementById("toggleSidechainsM"+numstr );
933 toggleSidechains.addEventListener( "click", function(){
934 stage.getRepresentationsByName("unressc").list.forEach( function( repre ){
935 repre.setVisibility( !repre.visible );
944 window.addEventListener("resize",
946 stage.handleResize();
954 var y = document.getElementsByClassName("model");
957 for (ii = 0; ii < y.length; ii++) {
961 showDivs(slideIndex);
963 function plusDivs(n) {
964 showDivs(slideIndex += n);
967 function showDivs(n) {
969 var x = document.getElementsByClassName("model");
970 if (n > x.length) {slideIndex = 1}
971 if (n < 1) {slideIndex = x.length}
972 for (i = 0; i < x.length; i++) {
973 x[i].style.display = "none";
975 x[slideIndex-1].style.display = "block";
977 if (lista[slideIndex-1] == 0 && slideIndex == 2) {
981 if (lista[slideIndex-1] == 0 && slideIndex == 3) {
985 if (lista[slideIndex-1] == 0 && slideIndex == 4) {
989 if (lista[slideIndex-1] == 0 && slideIndex == 5) {
994 if (lista[slideIndex-1] == 0) {lista[slideIndex-1]=1}
999 {% if not task.done %}
1003 data:{csrfmiddlewaretoken: '{{ csrf_token }}'},
1004 url: "/refresh_done1/{{task.id}}/",
1006 success: function(data) {
1007 document.location.reload();
1009 complete: function() {
1010 // Schedule the next request when the current one's complete
1011 setTimeout(worker, 30000);
1015 $(document).ready(function() {
1016 // run the first time; all subsequent calls will take care of themselves
1017 setTimeout(worker, 30000);
1023 {% if task.type == "min" %}
1025 window.addEventListener("resize",
1027 stage.handleResize();
1030 var stage_unres = new NGL.Stage("viewport_unres");
1031 stage_unres.setParameters( { backgroundColor: "white" } );
1033 [color_Red, color_Green, color_Blue, ellipsoid_width, ellipsoid_length ]
1035 var resdb = { 'CYS': [1.000, 1.000, 0.000, 1.33741, 2.96868],
1036 'MET': [0.000, 1.000, 0.000, 1.36694, 3.08863],
1037 'PHE': [0.000, 0.392, 0.000, 1.48323, 3.04238],
1038 'ILE': [0.000, 1.000, 0.000, 1.44098, 3.17389],
1039 'LEU': [0.000, 1.000, 0.000, 1.51054, 2.52078],
1040 'VAL': [0.000, 1.000, 0.000, 1.42072, 2.68924],
1041 'TRP': [0.000, 0.392, 0.000, 1.23867, 3.47403],
1042 'TYR': [0.596, 0.984, 0.596, 1.23060, 3.35434],
1043 'ALA': [0.000, 1.000, 0.000, 1.23266, 1.72686],
1044 'GLY': [1.000, 1.000, 1.000, 1.24626, 1.11383],
1045 'THR': [1.000, 0.000, 1.000, 1.28674, 2.59210],
1046 'SER': [1.000, 0.000, 1.000, 1.22820, 1.68800],
1047 'GLN': [1.000, 0.000, 1.000, 1.24239, 2.22201],
1048 'ASN': [1.000, 0.000, 1.000, 1.24447, 2.24946],
1049 'GLU': [1.000, 0.000, 0.000, 1.25448, 2.05551],
1050 'ASP': [1.000, 0.000, 0.000, 1.25417, 1.77556],
1051 'HIS': [1.000, 0.000, 1.000, 1.21103, 3.02627],
1052 'ARG': [0.000, 0.000, 1.000, 1.13573, 3.25143],
1053 'LYS': [0.000, 0.000, 1.000, 1.22604, 4.50054],
1054 'PRO': [0.000, 1.000, 1.000, 1.35131, 2.20525]
1056 stage_unres.loadFile("/myfiles/download-file/{{task.jobdirname}}/file_GB000.pdb", {defaultRepresentation: false}).then
1058 var shape = new NGL.Shape("shape")
1060 o.addRepresentation("licorice");
1061 o.structure.eachAtom(function(atom){
1062 if (atom.atomname == "CA" && atom.chainname == chain) {
1063 px=CAx+(atom.x-CAx)/2;
1064 py=CAy+(atom.y-CAy)/2;
1065 pz=CAz+(atom.z-CAz)/2;
1066 shape.addSphere([px,py,pz],[0.643, 0.933, 0.960],0.6,"p");
1068 if (atom.atomname == "CA") {
1069 chain= atom.chainname
1074 if (atom.atomname == "CB") {
1078 norm=Math.sqrt(mx*mx+my*my+mz*mz);
1080 var longaxis=resdb[res][4]
1081 var shortaxis=resdb[res][3]
1082 mx = mx /norm*longaxis;
1083 my = my /norm*longaxis;
1084 mz = mz /norm*longaxis;
1086 shape.addEllipsoid([ atom.x, atom.y, atom.z ],
1087 [ resdb[res][0], resdb[res][1], resdb[res][2]],
1088 shortaxis, [ mx, my, mz ], [ 0, shortaxis, 0 ],resn);
1091 var shapeComp = stage_unres.addComponentFromObject(shape)
1092 shapeComp.addRepresentation("buffer")
1098 var stage = new NGL.Stage("viewport_min");
1099 stage.setParameters( { backgroundColor: "white" } );
1101 stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/file_GB000.pdb" ,{defaultRepresentation: false}) .then( function( o ){
1102 o.addRepresentation( "backbone",{ color:
1103 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
1105 o.addRepresentation( "licorice",{ color:
1106 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange","red"]
1111 stage.loadFile("/myfiles/download-file/{{task.jobdirname}}/plik.pdb",{defaultRepresentation: false}) .then( function( o ){
1112 o.addRepresentation( "backbone",{ name: "allatom", color:
1113 "residueindex",colorScale:["blue","cyan", "green","yellow","orange", "red"]
1115 o.addRepresentation( "line",{ name: "allatomsc", color:
1116 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
1117 ,sele:"not hydrogen and sidechainAttached"
1121 ]).then(function (ol) {
1122 ol[ 0 ].superpose(ol[ 1 ], false, ".CA")
1128 var toggleAll = document.getElementById( "toggleAllatom" );
1129 toggleAll.addEventListener( "click", function(){
1131 stage.getRepresentationsByName(
1132 "allatom" ).list.forEach( function( repre ){
1133 repre.setVisibility( !repre.visible );
1136 stage.getRepresentationsByName(
1137 "allatomsc" ).list.forEach( function( repre ){
1138 repre.setVisibility( !repre.visible );
1142 var toggleSidechains = document.getElementById("toggleSidechains2" );
1143 toggleSidechains.addEventListener( "click", function(){
1146 stage.getRepresentationsByName(
1147 "allatomsc" ).list.forEach( function( repre ){
1148 repre.setVisibility( !repre.visible );
1152 stage.getRepresentationsByName("licorice").list.forEach( function( repre ){
1153 repre.setVisibility( !repre.visible );
1160 {% if task.type == "md" and task.md_start == "pdbstart" %}
1162 window.addEventListener("resize",
1164 stage.handleResize();
1167 var stage = new NGL.Stage("viewport_putty");
1168 stage.setParameters( { backgroundColor: "white" } );
1170 var tooltip = document.createElement("div")
1171 Object.assign(tooltip.style, {
1175 pointerEvents: "none",
1176 backgroundColor: "rgba( 0, 0, 0, 0.6 )",
1179 fontFamily: "sans-serif"
1181 document.body.appendChild(tooltip)
1183 stage.loadFile("/myfiles/download-file/{{task.jobdirname}}/plik_bf.pdb", {defaultRepresentation: false}).then
1185 o.addRepresentation("tube",{ color: "bfactor" , scale: 0.25,
1188 colorScale:["blue","cyan", "green", "yellow","orange", "red"] });
1189 o.addRepresentation("licorice",{sele:"sidechainAttached and CYS and not hydrogen"});
1193 // remove default hoverPick mouse action
1194 stage.mouseControls.remove("hoverPick")
1196 stage.signals.hovered.add(function (pickingProxy) {
1197 if (pickingProxy && (pickingProxy.atom || pickingProxy.bond)) {
1198 var atom = pickingProxy.atom || pickingProxy.closestBondAtom
1199 var mp = pickingProxy.mouse.position
1200 var bf= atom.bfactor.toFixed(2)
1201 tooltip.innerText = atom.qualifiedName()+" Fluctuation="+ bf
1202 tooltip.style.bottom = window.innerHeight - mp.y + 3 + "px"
1203 tooltip.style.left = mp.x + 3 + "px"
1204 tooltip.style.display = "block"
1206 tooltip.style.display = "none"
1212 {% if task.type == "md" and task.md_mdpdb %}
1214 window.addEventListener("resize",
1216 stage.handleResize();
1219 var stage = new NGL.Stage("viewport_traj");
1220 stage.setParameters( { backgroundColor: "white" } );
1221 stage.setParameters( { cameraType: "orthographic" } );
1224 stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/file_MD000.pdb", {
1225 asTrajectory: true } ) .then( function( o ){
1226 o.setName ("unres_md");
1227 o.addRepresentation( "backbone",{ color:
1228 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
1230 o.addRepresentation( "licorice",{ color:
1231 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
1233 o.setPosition([0, 0, 100]);
1238 var toggleSidechains = document.getElementById( "toggleSidechains1" );
1239 toggleSidechains.addEventListener( "click", function(){
1240 stage.getRepresentationsByName( "licorice" ).list.forEach( function( repre ){
1241 repre.setVisibility( !repre.visible );
1246 function numberWithCommas(x) {
1247 return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
1249 var toggleRunMDs = document.getElementById( "toggleRunMDs" );
1250 var isRunning = false;
1251 toggleRunMDs.addEventListener( "click", function(){
1252 var trajComp = stage.getComponentsByName("unres_md").list[0].trajList[0];
1253 var player = new NGL.TrajectoryPlayer(trajComp.trajectory, {timeout: 10, mode: "once"});
1258 trajComp.signals.frameChanged.add(function(){
1259 var fnum=trajComp.trajectory.currentFrame+1;
1260 clipRange.value = fnum;
1261 clipRange_val.innerHTML = numberWithCommas(parseInt(clipRange.value*1));
1270 var clipRange = document.getElementById( "clipRange" );
1271 var clipRange_val = document.getElementById( "clipRange_val" );
1272 clipRange.oninput = function( e ){
1273 var trajComp = stage.getComponentsByName("unres_md").list[0].trajList[0];
1274 trajComp.setFrame(e.target.value-1)
1275 clipRange_val.innerHTML = numberWithCommas(parseInt(e.target.value*1));