NGL viewer min md no login
[django_unres.git] / django_simple / todo / templates / details1.html
1 {% extends "base.html" %}
2
3 {% load i18n lazysignup_tags %}
4 {% block content %}
5
6 {% if task.owner|is_lazy_user %}
7
8 <ul class="list-group">
9
10 <li class="list-group-item new-task-item task-item">
11
12 <div class="col-md-2 form-group">
13 <form action="/refresh_done1/{{task.id}}/" method="post">
14 {% csrf_token %}
15 <input type="submit" class="btn" value="Refresh" name="refreshbtn">
16 </form>
17 </div>
18
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  %}
24   postprocessing
25   {% else %}
26   running
27   {% endif %}
28  {% else %}
29   waiting in the queue to start
30  {% endif %}
31 {% endif %}
32 </h5>
33 </div>
34 </li>
35 </ul>
36
37 <h3> Task <b>{{ task.name }}</b></h3>
38 Created {{ task.created_date  }}
39         <ul class="list-group">
40
41                         <li class="list-group-item task-item">
42                                 <div class="col-md-4"> done ?</div>
43                                 <div class="col-md-8">
44                                         {% if task.done %}
45                                                 <span class="fa fa-check-square-o"></span>
46                                         {% else %}
47                                           {% if task.running > 0  %}
48                                                 <span class="fa fa-spinner
49                                                 fa-spin"></span>
50                                                 {{ task.running }}%
51                                           {% else %}
52                                                 <span class="fa fa-square-o"></span>
53                                           {% endif %}
54                                         {% endif %}
55
56                                 </div>
57                         </li>   
58 <div>
59     <fieldset class="majorpoints">
60     <legend class="majorpointslegend"
61     style="background-color:#d3d3d3;cursor: pointer;">Show input parameters</legend>
62     <div class="hiders" style="display:none" >
63
64                         <li class="list-group-item task-item">
65                             <div class="col-md-6"> type </div>
66                             <div class="col-md-6">{{ task.type }}</div>
67                         </li>           
68          
69                         <li class="list-group-item task-item">
70                             <div class="col-md-6"> force field </div>
71                             <div class="col-md-6">{{ task.unres_ff }}</div>
72                         </li>           
73
74                         <li class="list-group-item task-item">
75                             <div class="col-md-4"> sequence </div>
76                             <div class="col-md-8 monospace">{{ task.md_seq}}</div>
77                         </li>           
78
79                         <li class="list-group-item task-item">
80                             <div class="col-md-4"> secondary structure
81                             restraints </div>
82                             <div class="col-md-8 monospace">{{ task.md_2d}}</div>
83                         </li>           
84
85
86                         <li class="list-group-item task-item">
87                             <div class="col-md-6"> SSBOND </div>
88                             <div class="col-md-6">{{ task.ssbond}}</div>
89                         </li>           
90
91                         
92         {% if task.type == "min" %}
93
94
95                         <li class="list-group-item task-item">
96                             <div class="col-md-6"> algorithm</div>
97                             <div class="col-md-6">{{ task.min_choice }}</div>
98                         </li>           
99                         <li class="list-group-item task-item">
100                             <div class="col-md-6"> overlap</div>
101                             <div class="col-md-6">{{ task.min_overlap }}</div>
102                         </li>           
103                         <li class="list-group-item task-item">
104                             <div class="col-md-6"> searchsc</div>
105                             <div class="col-md-6">{{ task.min_searchsc }}</div>
106                         </li>           
107                         <li class="list-group-item task-item">
108                             <div class="col-md-6"> maxmin</div>
109                             <div class="col-md-6">{{ task.min_maxmin }}</div>
110                         </li>           
111                         <li class="list-group-item task-item">
112                             <div class="col-md-6"> maxfun</div>
113                             <div class="col-md-6">{{ task.min_maxfun }}</div>
114                         </li>           
115                         <li class="list-group-item task-item">
116                             <div class="col-md-6"> pdbout</div>
117                             <div class="col-md-6">{{ task.min_pdbout }}</div>
118                         </li>           
119                         <li class="list-group-item task-item">
120                             <div class="col-md-6"> input pdb </div>
121                             <div class="col-md-6">{{ task.myfile1 }}</div>
122                         </li>           
123                         <li class="list-group-item task-item">
124                             <div class="col-md-6"> pdb code</div>
125                             <div class="col-md-6">{{ task.pdbcode }}</div>
126                         </li>           
127                         <li class="list-group-item task-item">
128                             <div class="col-md-6"> unres_pdb</div>
129                             <div class="col-md-6">{{ task.min_unres_pdb }}</div>
130                         </li>           
131                         
132         {% endif %}
133         {% if task.type == "md" %}
134                         <li class="list-group-item task-item">
135                             <div class="col-md-6"> starting </div>
136                             <div class="col-md-6">{{ task.md_start}}</div>
137                         </li>           
138                         
139                         <li class="list-group-item task-item">
140                             <div class="col-md-6"> input pdb </div>
141                             <div class="col-md-6">{{ task.myfile1 }}</div>
142                         </li>           
143                         <li class="list-group-item task-item">
144                             <div class="col-md-6"> pdb code</div>
145                             <div class="col-md-6">{{ task.pdbcode }}</div>
146                         </li>           
147                         <li class="list-group-item task-item">
148                             <div class="col-md-6"> seed </div>
149                             <div class="col-md-6">{{ task.md_seed}}</div>
150                         </li>           
151                         <li class="list-group-item task-item">
152                             <div class="col-md-6"> pdbref </div>
153                             <div class="col-md-6">{{ task.md_pdbref}}</div>
154                         </li>           
155                         <li class="list-group-item task-item">
156                             <div class="col-md-6"> respa </div>
157                             <div class="col-md-6">{{ task.md_respa}}</div>
158                         </li>           
159                         <li class="list-group-item task-item">
160                             <div class="col-md-6"> temperature </div>
161                             <div class="col-md-6">{{ task.md_temp}}</div>
162                         </li>           
163                         <li class="list-group-item task-item">
164                             <div class="col-md-6"> nstep </div>
165                             <div class="col-md-6">{{ task.md_nstep}}</div>
166                         </li>           
167                         <li class="list-group-item task-item">
168                             <div class="col-md-6"> ntwe </div>
169                             <div class="col-md-6">{{ task.md_ntwe}}</div>
170                         </li>           
171                         <li class="list-group-item task-item">
172                             <div class="col-md-6"> ntwx </div>
173                             <div class="col-md-6">{{ task.md_ntwx}}</div>
174                         </li>           
175                         <li class="list-group-item task-item">
176                             <div class="col-md-6"> dt </div>
177                             <div class="col-md-6">{{ task.md_dt}}</div>
178                         </li>           
179                         <li class="list-group-item task-item">
180                             <div class="col-md-6"> thermostat </div>
181                             <div class="col-md-6">{{ task.md_lang}}</div>
182                         </li>           
183                         
184                         {% if task.md_lang == "berendsen" %}
185                         
186                         <li class="list-group-item task-item">
187                             <div class="col-md-6"> tau </div>
188                             <div class="col-md-6">{{ task.md_tau}}</div>
189                         </li>           
190                         
191                         {% else %}
192                         
193                         <li class="list-group-item task-item">
194                             <div class="col-md-6"> scal_fric </div>
195                             <div class="col-md-6">{{ task.md_scal_fric}}</div>
196                         </li>   
197                         
198                         {% endif %}
199                                 
200                         <li class="list-group-item task-item">
201                             <div class="col-md-6"> mdpdb </div>
202                             <div class="col-md-6">{{ task.md_mdpdb}}</div>
203                         </li>           
204                         <li class="list-group-item task-item">
205                             <div class="col-md-6"> RESPA </div>
206                             <div class="col-md-6">{{ task.md_respa}}</div>
207                         </li>           
208                         
209                         
210         {% endif %}
211
212         {% if task.type == "remd" %}
213
214                         <li class="list-group-item task-item">
215                             <div class="col-md-6"> nrep </div>
216                             <div class="col-md-6">{{ task.remd_nrep}}</div>
217                         </li>           
218                         <li class="list-group-item task-item">
219                             <div class="col-md-6"> starting </div>
220                             <div class="col-md-6">{{ task.md_start}}</div>
221                         </li>           
222                         
223                         <li class="list-group-item task-item">
224                             <div class="col-md-6"> input pdb </div>
225                             <div class="col-md-6">{{ task.myfile1 }}</div>
226                         </li>           
227                         <li class="list-group-item task-item">
228                             <div class="col-md-6"> pdb code</div>
229                             <div class="col-md-6">{{ task.pdbcode }}</div>
230                         </li>           
231                         <li class="list-group-item task-item">
232                             <div class="col-md-6"> seed </div>
233                             <div class="col-md-6">{{ task.md_seed}}</div>
234                         </li>           
235                         <li class="list-group-item task-item">
236                             <div class="col-md-6"> pdbref </div>
237                             <div class="col-md-6">{{ task.md_pdbref}}</div>
238                         </li>           
239                         <li class="list-group-item task-item">
240                             <div class="col-md-6"> respa </div>
241                             <div class="col-md-6">{{ task.md_respa}}</div>
242                         </li>           
243                         <li class="list-group-item task-item">
244                             <div class="col-md-6"> nstep </div>
245                             <div class="col-md-6">{{ task.md_nstep}}</div>
246                         </li>           
247                         <li class="list-group-item task-item">
248                             <div class="col-md-6"> ntwe </div>
249                             <div class="col-md-6">{{ task.md_ntwe}}</div>
250                         </li>           
251                         <li class="list-group-item task-item">
252                             <div class="col-md-6"> nstex </div>
253                             <div class="col-md-6">{{ task.remd_nstex}}</div>
254                         </li>           
255                         <li class="list-group-item task-item">
256                             <div class="col-md-6"> ntwx </div>
257                             <div class="col-md-6">{{ task.md_ntwx}}</div>
258                         </li>                                   
259                         <li class="list-group-item task-item">
260                             <div class="col-md-6"> dt </div>
261                             <div class="col-md-6">{{ task.md_dt}}</div>
262                         </li>           
263                         <li class="list-group-item task-item">
264                             <div class="col-md-6"> thermostat </div>
265                             <div class="col-md-6">{{ task.md_lang}}</div>
266                         </li>           
267                         
268                         {% if task.md_lang == "berendsen" %}
269                         
270                         <li class="list-group-item task-item">
271                             <div class="col-md-6"> tau </div>
272                             <div class="col-md-6">{{ task.md_tau}}</div>
273                         </li>           
274                         
275                         {% else %}
276                         
277                         <li class="list-group-item task-item">
278                             <div class="col-md-6"> scal_fric </div>
279                             <div class="col-md-6">{{ task.md_scal_fric}}</div>
280                         </li>   
281                         
282                         {% endif %}
283
284                         <li class="list-group-item task-item">
285                             <div class="col-md-6"> RESPA </div>
286                             <div class="col-md-6">{{ task.md_respa}}</div>
287                         </li>           
288                                 
289                         <li class="list-group-item task-item">
290                             <div class="col-md-6"> temperatures </div>
291                             <div class="col-md-6">{{ task.remd_multi_t}}</div>
292                         </li>           
293                         <li class="list-group-item task-item">
294                             <div class="col-md-6"> multiplex </div>
295                             <div class="col-md-6">{{ task.remd_multi_m}}</div>
296                         </li>           
297                         <li class="list-group-item task-item">
298                             <div class="col-md-6"> temperature for clustering</div>
299                             <div class="col-md-6">{{ task.remd_cluter_temp}}</div>
300                         </li>           
301                         {% if task.saxs_data != "" %}                   
302                         <li class="list-group-item task-item">
303                             <div class="col-md-6"> wsaxs </div>
304                             <div class="col-md-6">{{ task.wsaxs }}</div>
305                         </li>           
306                         <li class="list-group-item task-item">
307                             <div class="col-md-6"> scal_rad (saxs) </div>
308                             <div class="col-md-6">{{ task.scal_rad }}</div>
309                         </li>           
310                         <li class="list-group-item task-item">
311                             <div class="col-md-6"> saxs distribution </div>
312                             <div class="col-md-6"><pre> {{ task.saxs_data }}</pre></div>
313                         </li>           
314                         {% endif %}
315
316         {% endif %}
317
318                         <li class="list-group-item task-item">
319                             <div class="col-md-6"> Box X Y Z</div>
320                             <div class="col-md-2">{{ task.boxx}}</div>
321                             <div class="col-md-2">{{ task.boxy}}</div>                      
322                             <div class="col-md-2">{{ task.boxz}}</div>                      
323                         </li>           
324
325 </div>
326 </div>
327         <p>
328         <h3> Results </h3>
329                         <li class="list-group-item task-item">
330                             <div class="col-md-4"> Directory </div>
331                             <div class="col-md-8">
332                             <a href="/myfiles/list/{{task.jobdirname}}/">
333                             {{ task.jobdirname }}
334                             </a>
335                             </div>
336                         </li>           
337
338
339         {% if task.done %}
340                         
341                         {% if task.type == "min" %}
342                         
343                         <li class="list-group-item task-item">
344                             <div class="col-md-2"> Etot </div>
345                             <div class="col-md-10">{{ task.etot }}</div>
346                         </li>           
347                         
348                         <li class="list-group-item task-item">
349                           <div class="col-md-2"> UNRES model </div>
350                           <div class="col-md-10"> 
351                           <a
352                            href="/myfiles/download-file/{{task.jobdirname}}/unres.pse">
353                           <img 
354                           src="/myfiles/download-file/{{task.jobdirname}}/unres.png"
355                           width="500"></a> </div>
356                         </li>
357
358 <!--
359                         <li class="list-group-item task-item">
360                           <div class="col-md-2"> Structure overlap </div>
361                           <div class="col-md-10"> <img 
362                           src="/myfiles/download-file/{{task.jobdirname}}/unres_overlap.png"
363                           width="500"> </div>
364                         </li>
365 -->
366                         <li class="list-group-item task-item">
367                           <div class="col-md-2"> Structure overlap NGL viewer</div>
368                           <div class="col-md-10" id="viewport_min"
369                           style="width:500px;height:500px;"> 
370                           </div>
371                         </li>
372                         <li class="list-group-item task-item">
373                <div class="col-md-12">
374                <button id="toggleAllatom">Input structure on/off</button>
375                <button id="toggleSidechains2">Side-chains on/off</button>
376                </div>
377                         </li>
378                         {% endif %}
379
380                         <li class="list-group-item task-item">
381                             <div class="col-md-2"> Results </div>
382                             <div class="col-md-10">{{ task.results_text|linebreaks }}</div>
383                         </li>           
384                         
385                         {% if task.type == "md" %}
386
387                         <li class="list-group-item task-item">
388                           <div class="col-md-2"> Temperature histogram </div>
389                           <div class="col-md-10"> <img 
390                           src="/myfiles/download-file/{{task.jobdirname}}/temp_hist.png"
391                           width="500"> </div>
392                         </li>
393
394                         <li class="list-group-item task-item">
395                           <div class="col-md-2"> Potential energy </div>
396                           <div class="col-md-10"> <img 
397                           src="/myfiles/download-file/{{task.jobdirname}}/md_ene.png"
398                           width="500"> </div>
399                         </li>
400
401                             <li class="list-group-item task-item">
402                             <div class="col-md-2"> Movie </div>
403                             <div class="col-md-10"> 
404
405                             <video width="500" height="400" preload controls>
406                             <source
407                             src="/myfiles/download-file/{{task.jobdirname}}/md.ogv"
408                             type="video/ogg; codecs=theora"> </source>
409                             </video>
410                           
411                             </div>
412                             </li>
413
414 {% if task.md_mdpdb %}
415                         <li class="list-group-item task-item">
416                           <div class="col-md-2"> Trajectory NGL viewer</div>
417                           <div class="col-md-10" id="viewport_traj"
418                           style="width:500px;height:500px;"> 
419                           </div>
420                         </li>
421                         <li class="list-group-item task-item">
422                <div class="col-md-6">
423 <input id="clipRange" type="range" value=0 min=0 max= {% widthratio task.md_nstep task.md_ntwx 1 %} step=1 ></input><span id="clipRange_val">0</span> frame
424 </div>
425 <div class="col-md-6">
426 <button id="toggleRunMDs">run/pause MD</button>  
427 <button id="toggleSidechains1">side-chains on/off</button>                        
428 </div>
429                         </li>
430
431 {% endif %}
432                             
433                         <li class="list-group-item task-item">
434                           <div class="col-md-2"> Radius of gyration based
435                           on C<sup>α</sup> coordinates </div>
436                           <div class="col-md-10"> <img 
437                           src="/myfiles/download-file/{{task.jobdirname}}/md_gyr.png"
438                           width="500"> </div>
439                         </li>
440                             
441
442                 
443                            {% if task.md_pdbref %}
444                         <li class="list-group-item task-item">
445                           <div class="col-md-2"> RMSD </div>
446                           <div class="col-md-10"> <img 
447                           src="/myfiles/download-file/{{task.jobdirname}}/md_rms.png"
448                           width="500"> </div>
449                         </li>
450
451                         <li class="list-group-item task-item">
452                           <div class="col-md-2"> fraction of native
453                           side-chain concacts </div>
454                           <div class="col-md-10"> <img 
455                           src="/myfiles/download-file/{{task.jobdirname}}/md_fracn.png"
456                           width="500"> </div>
457                         </li>
458                         
459                            {% endif %}
460
461                            {% if task.md_start == "pdbstart" %}
462                         <li class="list-group-item task-item">
463                           <div class="col-md-2"> fluctuations </div>
464                           <div class="col-md-10"> <img 
465                           src="/myfiles/download-file/{{task.jobdirname}}/fluct_plot.png"
466                           width="500"> </div>
467                         </li>
468 <!--
469                         <li class="list-group-item task-item">
470                           <div class="col-md-2"> fluctuations putty on
471                           starting structure</div>
472                           <div class="col-md-10"> 
473                           <a
474                           href="/myfiles/download-file/{{task.jobdirname}}/fluct.pse">
475                           <img 
476                           src="/myfiles/download-file/{{task.jobdirname}}/fluct.png"
477                           width="500"></a> </div>
478                         </li>
479 -->
480                         <li class="list-group-item task-item">
481                           <div class="col-md-2"> fluctuations putty on
482                           starting structure NGL viewer</div>
483                           <div class="col-md-10" id="viewport_putty"
484                           style="width:500px;height:500px;"> 
485                           </div>
486                         </li>
487
488                         
489                            {% endif %}
490
491
492
493                         {% endif %}
494                         
495                         {% if task.type == "remd" %}
496                         
497                         <li class="list-group-item task-item">
498                           <div class="col-md-2"> Energy histogram </div>
499                           <div class="col-md-10"> <img 
500                           src="/myfiles/download-file/{{task.jobdirname}}/remd_ene_hist.png"
501                           width="500"> </div>
502                         </li>
503
504                         <li class="list-group-item task-item">
505                           <div class="col-md-2"> Energy vs. temperature </div>
506                           <div class="col-md-10"> <img 
507                           src="/myfiles/download-file/{{task.jobdirname}}/remd_Tene.png"
508                           width="500"> </div>
509                         </li>
510                         
511                         <li class="list-group-item task-item">
512                           <div class="col-md-2"> Cv vs. temperature </div>
513                           <div class="col-md-10"> <img 
514                           src="/myfiles/download-file/{{task.jobdirname}}/remd_cv.png"
515                           width="500"> </div>
516                         </li>
517                         
518                            {% if task.md_pdbref %}
519
520                         <li class="list-group-item task-item">
521                           <div class="col-md-2"> Average RMSD vs. temperature </div>
522                           <div class="col-md-10"> <img 
523                           src="/myfiles/download-file/{{task.jobdirname}}/remd_rmsd.png"
524                           width="500"> </div>
525                         </li>
526
527                         <li class="list-group-item task-item">
528                           <div class="col-md-2"> potential energy vs. RMSD</div>
529                           <div class="col-md-10"> <img 
530                           src="/myfiles/download-file/{{task.jobdirname}}/remd_ene_rms.png"
531                           width="500"> </div>
532                         </li>
533
534                         <li class="list-group-item task-item">
535                           <div class="col-md-2"> RMSD vs. step*replica
536                           colored by bath temperature</div>
537                           <div class="col-md-10"> <img 
538                           src="/myfiles/download-file/{{task.jobdirname}}/remd_step_rms.png"
539                           width="500"> </div>
540                         </li>
541
542                         
543                            {% endif %} 
544                           
545                         <li class="list-group-item task-item">
546                           <div class="col-md-2"> exchanges (walk in T) </div>
547                           <div class="col-md-10"> <img 
548                           src="/myfiles/download-file/{{task.jobdirname}}/remd_ex.png"
549                           width="500"> </div>
550                         </li>
551                         
552                            {% if task.saxs_data != "" %}
553                         <li class="list-group-item task-item">
554                           <div class="col-md-2"> P(r) of input SAXS data and
555                           calculated for 5 models and the input pdb</div>
556                           <div class="col-md-10"> <img 
557                           src="/myfiles/download-file/{{task.jobdirname}}/saxs.png"
558                           width="500"> </div>
559                         </li>
560                            {% endif %}
561                         
562         <li class="list-group-item task-item">
563         <div class="col-md-4">
564         <button onclick="plusDivs(-1)">&#10094;</button> 
565         </div>
566         <div class="col-md-6">
567         select model
568         </div>
569         <div class="col-md-2">
570         <button onclick="plusDivs(1)">&#10095;</button>
571         </div>
572         </li>           
573                         
574                         <div class="model">
575                         <li class="list-group-item task-item">
576                           <div class="col-md-2"> model1 after conversion
577                           to allatom 
578                           {{ task.remd_model1|linebreaks }}
579                           </div>
580                           <div class="col-md-10"> 
581                           <a
582                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL1.pdb">
583                           <img
584                           src="/myfiles/download-file/{{task.jobdirname}}/model1.png" width="500">
585                           </a></div>
586                         </li>
587                         </div>
588                         <div class="model">
589                         <li class="list-group-item task-item">
590                           <div class="col-md-2"> model2 after conversion
591                           to allatom 
592                           {{ task.remd_model2|linebreaks }}
593                           </div>
594                           <div class="col-md-10"> 
595                           <a
596                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL2.pdb">
597                           <img
598                           src="/myfiles/download-file/{{task.jobdirname}}/model2.png" width="500">
599                           </a></div>
600                         </li>
601                         </div>
602                         <div class="model">
603                         <li class="list-group-item task-item">
604                           <div class="col-md-2"> model3 after conversion
605                           to allatom 
606                           {{ task.remd_model3|linebreaks }}
607                           </div>
608                           <div class="col-md-10"> 
609                           <a
610                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL3.pdb">
611                           <img
612                           src="/myfiles/download-file/{{task.jobdirname}}/model3.png" width="500">
613                           </a></div>
614                         </li>
615                         </div>
616                         <div class="model">
617                         <li class="list-group-item task-item">
618                           <div class="col-md-2"> model4 after conversion
619                           to allatom 
620                           {{ task.remd_model4|linebreaks }}
621                           </div>
622                           <div class="col-md-10"> 
623                           <a
624                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL4.pdb">
625                           <img
626                           src="/myfiles/download-file/{{task.jobdirname}}/model4.png" width="500">
627                           </a></div>
628                         </li>
629                         </div>
630                         <div class="model">
631                         <li class="list-group-item task-item">
632                           <div class="col-md-2"> model5 after conversion
633                           to allatom 
634                           {{ task.remd_model5|linebreaks }}
635                           </div>
636                           <div class="col-md-10"> 
637                           <a
638                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL5.pdb">
639                           <img
640                           src="/myfiles/download-file/{{task.jobdirname}}/model5.png" width="500">
641                           </a></div>
642                         </li>
643                         </div>
644                         {% endif %}
645
646         {% endif %}             
647
648         </ul>
649 {% else %}
650 <h2>
651 Regular user cannot use this link.
652 </h2>
653 {% endif %}
654         
655 <script src="/static/jquery.min.js"></script>
656
657 <script>
658 $('.majorpointslegend').click(function(){
659     $(this.parentNode).find('.hiders').toggle();
660     if($(this.parentNode).find('.majorpointslegend').text()=='Show input parameters'){
661         $(this.parentNode).find('.majorpointslegend').text('Hide input parameters');
662     }else{
663         $(this.parentNode).find('.majorpointslegend').text('Show input parameters');
664     }    
665 });
666 </script>
667
668 {% if task.type == "remd" %}
669 <script>
670 var slideIndex = 1;
671 showDivs(slideIndex);
672
673 function plusDivs(n) {
674   showDivs(slideIndex += n);
675 }
676
677 function showDivs(n) {
678   var i;
679   var x = document.getElementsByClassName("model");
680   if (n > x.length) {slideIndex = 1}
681   if (n < 1) {slideIndex = x.length}
682   for (i = 0; i < x.length; i++) {
683      x[i].style.display = "none";
684   }
685   x[slideIndex-1].style.display = "block";
686 }
687 </script>
688 {% endif %}
689
690 {% if not task.done %}
691 <script>
692 function worker() {
693   $.ajax({
694     data:{csrfmiddlewaretoken: '{{ csrf_token }}'},
695     url: "/refresh_done1/{{task.id}}/", 
696     type:"post",
697     success: function(data) {
698       document.location.reload();
699     },
700     complete: function() {
701       // Schedule the next request when the current one's complete
702       setTimeout(worker, 30000);
703     }
704   });
705 };
706 $(document).ready(function() {
707   // run the first time; all subsequent calls will take care of themselves
708   setTimeout(worker, 30000);
709 });
710 </script>
711 {% endif %} 
712         
713 <script src="https://unpkg.com/ngl"></script>
714 {% if task.type == "min" %}
715 <script>
716 window.addEventListener("resize",
717      function (event) {
718      stage.handleResize();
719      },false);
720                
721 var stage = new NGL.Stage("viewport_min");
722 stage.setParameters( { backgroundColor: "white" } );
723 Promise.all([
724   stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/file_GB000.pdb" ,{defaultRepresentation: false}) .then( function( o ){
725      o.addRepresentation( "backbone",{ color:
726        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
727      })
728      o.addRepresentation( "licorice",{ color:
729        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange","red"]
730      })    
731      return o
732   }),
733       
734   stage.loadFile("/myfiles/download-file/{{task.jobdirname}}/plik.pdb",{defaultRepresentation: false}) .then( function( o ){
735      o.addRepresentation( "backbone",{ name: "allatom", color:
736        "residueindex",colorScale:["blue","cyan", "green","yellow","orange", "red"]
737      })
738      o.addRepresentation( "line",{ name: "allatomsc", color:
739        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
740        ,sele:"not hydrogen and sidechainAttached" 
741      })    
742      return o
743   })
744 ]).then(function (ol) {
745    ol[ 0 ].superpose(ol[ 1 ], false, ".CA")
746    ol[ 0 ].autoView()
747 })             
748
749 var allatom=true;
750 var side=true;
751 var toggleAll = document.getElementById( "toggleAllatom" );
752 toggleAll.addEventListener( "click", function(){
753                         allatom=! allatom;                                
754                         stage.getRepresentationsByName(
755                                 "allatom" ).list.forEach( function( repre ){
756                                 repre.setVisibility( !repre.visible );
757                         } );
758             if (side) {
759                         stage.getRepresentationsByName(
760                                 "allatomsc" ).list.forEach( function( repre ){
761                                 repre.setVisibility( !repre.visible );
762                         } );
763             }
764 } );
765 var toggleSidechains = document.getElementById("toggleSidechains2" );
766 toggleSidechains.addEventListener( "click", function(){
767           side=!side;
768           if (allatom) {
769                 stage.getRepresentationsByName(
770                         "allatomsc" ).list.forEach( function( repre ){
771                                 repre.setVisibility( !repre.visible );
772                 } );
773                                                       
774           }
775           stage.getRepresentationsByName("licorice").list.forEach( function( repre ){
776                 repre.setVisibility( !repre.visible );
777           } );
778
779 } );
780 </script>
781 {% endif %}
782
783 {% if task.type == "md" and task.md_start == "pdbstart" %}
784 <script>
785 window.addEventListener("resize",
786      function (event) {
787      stage.handleResize();
788      },false);
789
790 var stage = new NGL.Stage("viewport_putty");
791 stage.setParameters( { backgroundColor: "white" } );
792
793 var tooltip = document.createElement("div")
794 Object.assign(tooltip.style, {
795   display: "none",
796   position: "fixed",
797   zIndex: 10,
798   pointerEvents: "none",
799   backgroundColor: "rgba( 0, 0, 0, 0.6 )",
800   color: "lightgrey",
801   padding: "8px",
802   fontFamily: "sans-serif"
803 })
804 document.body.appendChild(tooltip)
805
806 stage.loadFile("/myfiles/download-file/{{task.jobdirname}}/plik_bf.pdb", {defaultRepresentation: false}).then 
807        (function ( o ){
808        o.addRepresentation("tube",{ color: "bfactor" , scale: 0.25,
809        sele: "backbone",
810        radius:"bfactor",
811        colorScale:["blue","cyan", "green", "yellow","orange", "red"] });
812        o.addRepresentation("licorice",{sele:"sidechainAttached and CYS and not hydrogen"});
813        o.autoView();
814 })
815
816 // remove default hoverPick mouse action
817 stage.mouseControls.remove("hoverPick")
818
819 stage.signals.hovered.add(function (pickingProxy) {
820   if (pickingProxy && (pickingProxy.atom || pickingProxy.bond)) {
821     var atom = pickingProxy.atom || pickingProxy.closestBondAtom
822     var mp = pickingProxy.mouse.position
823     var bf= atom.bfactor.toFixed(2)
824     tooltip.innerText = atom.qualifiedName()+" Fluctuation="+ bf
825     tooltip.style.bottom = window.innerHeight - mp.y + 3 + "px"
826     tooltip.style.left = mp.x + 3 + "px"
827     tooltip.style.display = "block"
828   } else {
829     tooltip.style.display = "none"
830   }
831 })
832 </script>
833 {% endif %}     
834
835 {% if task.type == "md" and task.md_mdpdb %}
836 <script>
837 window.addEventListener("resize",
838      function (event) {
839      stage.handleResize();
840      },false);
841
842       var stage = new NGL.Stage("viewport_traj");
843       stage.setParameters( { backgroundColor: "white" } );
844       stage.setParameters( { cameraType: "orthographic" } ); 
845       var traj;
846       var player;
847       stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/file_MD000.pdb", { 
848        asTrajectory: true } ) .then( function( o ){
849         o.setName ("unres_md");
850         o.addRepresentation( "backbone",{ color:
851        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
852         });
853         o.addRepresentation( "licorice",{ color:
854        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
855         });        
856         o.autoView();
857         o.addTrajectory();
858       });
859
860             var toggleSidechains = document.getElementById( "toggleSidechains1" );
861             toggleSidechains.addEventListener( "click", function(){
862                                                         stage.getRepresentationsByName( "licorice" ).list.forEach( function( repre ){
863                                                                         repre.setVisibility( !repre.visible );
864                                                         } );
865             } );
866
867
868       function numberWithCommas(x) {
869                 return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
870       }
871       var toggleRunMDs = document.getElementById( "toggleRunMDs" );
872       var isRunning = false;
873       toggleRunMDs.addEventListener( "click", function(){
874          var trajComp = stage.getComponentsByName("unres_md").list[0].trajList[0];
875          var player = new NGL.TrajectoryPlayer(trajComp.trajectory, {timeout: 10, mode: "once"});
876                                 if( !isRunning ){
877                                         player.play();
878                                         isRunning = true;
879
880                     trajComp.signals.frameChanged.add(function(){
881                       var fnum=trajComp.trajectory.currentFrame;                   
882                       clipRange.value = fnum;
883                       clipRange_val.innerHTML = numberWithCommas(parseInt(clipRange.value*1));
884                     });
885
886                                 }else{
887                                         player.play();
888                                         player.pause();
889                                         isRunning = false;
890                                 }
891       } );      
892       var clipRange = document.getElementById( "clipRange" );
893       var clipRange_val = document.getElementById( "clipRange_val" );
894       clipRange.oninput = function( e ){
895                 var trajComp = stage.getComponentsByName("unres_md").list[0].trajList[0];
896                 trajComp.setFrame(e.target.value)
897                 clipRange_val.innerHTML = numberWithCommas(parseInt(e.target.value*1));
898       };      
899
900 </script>
901 {% endif %}     
902
903
904 {% endblock %}