trajectory NGLview corrections
[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                                             {% if task.type == "md" or task.type == "remd" %}
47                                               <form action="restart/"
48                                                 method="get"
49                                                 style="text-align;float:right;">
50                                                 {% csrf_token %}
51                                                  <input type="submit" 
52                                                  class="btn btn-default" 
53                                                  value="Restart"
54                                                  name="restartbtn">
55                                                  </button>
56                                               </form>
57                                             {% endif %}  
58                                         {% else %}
59                                           {% if task.running > 0  %}
60                                                 <span class="fa fa-spinner
61                                                 fa-spin"></span>
62                                                 {{ task.running }}%
63                                           {% else %}
64                                                 <span class="fa fa-square-o"></span>
65                                           {% endif %}
66                                         {% endif %}
67
68                                 </div>
69                         </li>   
70 <div>
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" >
75
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>
79                         </li>           
80          
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>
84                         </li>           
85
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>
89                         </li>           
90
91                         <li class="list-group-item task-item">
92                             <div class="col-md-4"> secondary structure
93                             restraints </div>
94                             <div class="col-md-8 monospace">{{ task.md_2d}}</div>
95                         </li>           
96
97
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>
101                         </li>           
102
103                         
104         {% if task.type == "min" %}
105
106
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>
110                         </li>           
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>
114                         </li>           
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>
118                         </li>           
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>
122                         </li>           
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>
126                         </li>           
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>
130                         </li>           
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>
134                         </li>           
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>
138                         </li>           
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>
142                         </li>           
143                         
144         {% endif %}
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>
149                         </li>           
150                         
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>
154                         </li>           
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>
158                         </li>           
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>
162                         </li>           
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>
166                         </li>           
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>
170                         </li>           
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>
174                         </li>           
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>
178                         </li>           
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>
182                         </li>           
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>
186                         </li>           
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>
190                         </li>           
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>
194                         </li>           
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>
198                         </li>           
199                         
200                         {% if task.md_lang == "berendsen" %}
201                         
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>
205                         </li>           
206                         
207                         {% else %}
208                         
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>
212                         </li>   
213                         
214                         {% endif %}
215                                 
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>
219                         </li>           
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>
223                         </li>           
224                         
225                         
226         {% endif %}
227
228         {% if task.type == "remd" %}
229
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>
233                         </li>           
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>
237                         </li>           
238                         
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>
242                         </li>           
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>
246                         </li>           
247                         <li class="list-group-item task-item">
248                             <div class="col-md-6"> seed </div>
249                             <div class="col-md-6">{{ task.md_seed}}</div>
250                         </li>           
251                         <li class="list-group-item task-item">
252                             <div class="col-md-6"> pdbref </div>
253                             <div class="col-md-6">{{ task.md_pdbref}}</div>
254                         </li>           
255                         {% if task.md_start == "pdbstart" %}
256                         <li class="list-group-item task-item">
257                             <div class="col-md-6"> preminim maxfun </div>
258                             <div class="col-md-6">{{ task.min_maxfun }}</div>
259                         </li>           
260                         {% endif %}
261                         <li class="list-group-item task-item">
262                             <div class="col-md-6"> respa </div>
263                             <div class="col-md-6">{{ task.md_respa}}</div>
264                         </li>           
265                         <li class="list-group-item task-item">
266                             <div class="col-md-6"> nstep </div>
267                             <div class="col-md-6">{{ task.md_nstep}}</div>
268                         </li>           
269                         <li class="list-group-item task-item">
270                             <div class="col-md-6"> total steps (with restarts) </div>
271                             <div class="col-md-6">{{ task.md_total_steps}}</div>
272                         </li>           
273                         <li class="list-group-item task-item">
274                             <div class="col-md-6"> ntwe </div>
275                             <div class="col-md-6">{{ task.md_ntwe}}</div>
276                         </li>           
277                         <li class="list-group-item task-item">
278                             <div class="col-md-6"> nstex </div>
279                             <div class="col-md-6">{{ task.remd_nstex}}</div>
280                         </li>           
281                         <li class="list-group-item task-item">
282                             <div class="col-md-6"> ntwx </div>
283                             <div class="col-md-6">{{ task.md_ntwx}}</div>
284                         </li>                                   
285                         <li class="list-group-item task-item">
286                             <div class="col-md-6"> dt </div>
287                             <div class="col-md-6">{{ task.md_dt}}</div>
288                         </li>           
289                         <li class="list-group-item task-item">
290                             <div class="col-md-6"> thermostat </div>
291                             <div class="col-md-6">{{ task.md_lang}}</div>
292                         </li>           
293                         
294                         {% if task.md_lang == "berendsen" %}
295                         
296                         <li class="list-group-item task-item">
297                             <div class="col-md-6"> tau </div>
298                             <div class="col-md-6">{{ task.md_tau}}</div>
299                         </li>           
300                         
301                         {% else %}
302                         
303                         <li class="list-group-item task-item">
304                             <div class="col-md-6"> scal_fric </div>
305                             <div class="col-md-6">{{ task.md_scal_fric}}</div>
306                         </li>   
307                         
308                         {% endif %}
309
310                         <li class="list-group-item task-item">
311                             <div class="col-md-6"> RESPA </div>
312                             <div class="col-md-6">{{ task.md_respa}}</div>
313                         </li>           
314                                 
315                         <li class="list-group-item task-item">
316                             <div class="col-md-6"> temperatures </div>
317                             <div class="col-md-6">{{ task.remd_multi_t}}</div>
318                         </li>           
319                         <li class="list-group-item task-item">
320                             <div class="col-md-6"> multiplex </div>
321                             <div class="col-md-6">{{ task.remd_multi_m}}</div>
322                         </li>           
323                         <li class="list-group-item task-item">
324                             <div class="col-md-6"> temperature for clustering</div>
325                             <div class="col-md-6">{{ task.remd_cluter_temp}}</div>
326                         </li>           
327                         {% if task.saxs_data != "" %}                   
328                         <li class="list-group-item task-item">
329                             <div class="col-md-6"> wsaxs </div>
330                             <div class="col-md-6">{{ task.wsaxs }}</div>
331                         </li>           
332                         <li class="list-group-item task-item">
333                             <div class="col-md-6"> scal_rad (saxs) </div>
334                             <div class="col-md-6">{{ task.scal_rad }}</div>
335                         </li>           
336                         <li class="list-group-item task-item">
337                             <div class="col-md-6"> saxs distribution </div>
338                             <div class="col-md-6"><pre> {{ task.saxs_data }}</pre></div>
339                         </li>           
340                         {% endif %}
341
342         {% endif %}
343
344                         <li class="list-group-item task-item">
345                             <div class="col-md-6"> Box X Y Z</div>
346                             <div class="col-md-2">{{ task.boxx}}</div>
347                             <div class="col-md-2">{{ task.boxy}}</div>                      
348                             <div class="col-md-2">{{ task.boxz}}</div>                      
349                         </li>           
350
351 </div>
352 </div>
353         <p>
354         <h3> Results </h3>
355                         <li class="list-group-item task-item">
356                             <div class="col-md-4"> Directory </div>
357                             <div class="col-md-8">
358                             <a href="/myfiles/list/{{task.jobdirname}}/">
359                             {{ task.jobdirname }}
360                             </a>
361                             </div>
362                         </li>           
363
364
365         {% if task.done %}
366                         
367                         {% if task.type == "min" %}
368                         
369                         <li class="list-group-item task-item">
370                             <div class="col-md-2"> Etot </div>
371                             <div class="col-md-10">{{ task.etot }}</div>
372                         </li>           
373 <!--                    
374                         <li class="list-group-item task-item">
375                           <div class="col-md-2"> UNRES model </div>
376                           <div class="col-md-10"> 
377                           <a
378                            href="/myfiles/download-file/{{task.jobdirname}}/unres.pse">
379                           <img 
380                           src="/myfiles/download-file/{{task.jobdirname}}/unres.png"
381                           width="500"></a> </div>
382                         </li>
383 -->
384                         <li class="list-group-item task-item">
385                           <div class="col-md-2"> UNRES model NGL viewer</div>
386                           <div class="col-md-10" id="viewport_unres"
387                           style="width:500px;height:500px;"> 
388                           </div>
389                         </li>
390
391
392 <!--
393                         <li class="list-group-item task-item">
394                           <div class="col-md-2"> Structure overlap </div>
395                           <div class="col-md-10"> <img 
396                           src="/myfiles/download-file/{{task.jobdirname}}/unres_overlap.png"
397                           width="500"> </div>
398                         </li>
399 -->
400                         <li class="list-group-item task-item">
401                           <div class="col-md-2"> Structure overlap NGL viewer</div>
402                           <div class="col-md-10" id="viewport_min"
403                           style="width:500px;height:500px;"> 
404                           </div>
405                         </li>
406                         <li class="list-group-item task-item">
407                <div class="col-md-12">
408                <button id="toggleAllatom">Input structure on/off</button>
409                <button id="toggleSidechains2">Side-chains on/off</button>
410                </div>
411                         </li>
412                         {% endif %}
413
414                         <li class="list-group-item task-item">
415                             <div class="col-md-2"> Results </div>
416                             <div class="col-md-10">{{ task.results_text|linebreaks }}</div>
417                         </li>           
418                         
419                         {% if task.type == "md" %}
420
421                         <li class="list-group-item task-item">
422                           <div class="col-md-2"> Temperature histogram </div>
423                           <div class="col-md-10"> <img 
424                           src="/myfiles/download-file/{{task.jobdirname}}/temp_hist.png"
425                           width="500"> </div>
426                         </li>
427
428                         <li class="list-group-item task-item">
429                           <div class="col-md-2"> Potential energy </div>
430                           <div class="col-md-10"> <img 
431                           src="/myfiles/download-file/{{task.jobdirname}}/md_ene.png"
432                           width="500"> </div>
433                         </li>
434
435                             <li class="list-group-item task-item">
436                             <div class="col-md-2"> Movie </div>
437                             <div class="col-md-10"> 
438
439                             <video width="500" height="400"
440                             preload="auto" controls="controls">
441                             <source
442                             src="/myfiles/download-file/{{task.jobdirname}}/md.ogv"
443                             type="video/ogg; codecs=theora"> </source>
444                             </video>
445                           
446                             </div>
447                             </li>
448
449 {% if task.md_mdpdb %}
450                         <li class="list-group-item task-item">
451                           <div class="col-md-2"> Trajectory NGL viewer</div>
452                           <div class="col-md-10" id="viewport_traj"
453                           style="width:500px;height:500px;"> 
454                           </div>
455                         </li>
456                         <li class="list-group-item task-item">
457                <div class="col-md-6">
458 <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
459 </div>
460 <div class="col-md-6">
461 <button id="toggleRunMDs">run/pause MD</button>  
462 <button id="toggleSidechains1">side-chains on/off</button>                        
463 </div>
464                         </li>
465
466 {% endif %}
467                             
468                         <li class="list-group-item task-item">
469                           <div class="col-md-2"> Radius of gyration based
470                           on C<sup>α</sup> coordinates </div>
471                           <div class="col-md-10"> <img 
472                           src="/myfiles/download-file/{{task.jobdirname}}/md_gyr.png"
473                           width="500"> </div>
474                         </li>
475                             
476
477                 
478                            {% if task.md_pdbref %}
479                         <li class="list-group-item task-item">
480                           <div class="col-md-2"> RMSD </div>
481                           <div class="col-md-10"> <img 
482                           src="/myfiles/download-file/{{task.jobdirname}}/md_rms.png"
483                           width="500"> </div>
484                         </li>
485
486                         <li class="list-group-item task-item">
487                           <div class="col-md-2"> fraction of native
488                           side-chain concacts </div>
489                           <div class="col-md-10"> <img 
490                           src="/myfiles/download-file/{{task.jobdirname}}/md_fracn.png"
491                           width="500"> </div>
492                         </li>
493                         
494                            {% endif %}
495
496                            {% if task.md_start == "pdbstart" %}
497                         <li class="list-group-item task-item">
498                           <div class="col-md-2"> fluctuations </div>
499                           <div class="col-md-10"> <img 
500                           src="/myfiles/download-file/{{task.jobdirname}}/fluct_plot.png"
501                           width="500"> </div>
502                         </li>
503 <!--
504                         <li class="list-group-item task-item">
505                           <div class="col-md-2"> fluctuations putty on
506                           starting structure</div>
507                           <div class="col-md-10"> 
508                           <a
509                           href="/myfiles/download-file/{{task.jobdirname}}/fluct.pse">
510                           <img 
511                           src="/myfiles/download-file/{{task.jobdirname}}/fluct.png"
512                           width="500"></a> </div>
513                         </li>
514 -->
515                         <li class="list-group-item task-item">
516                           <div class="col-md-2"> fluctuations putty on
517                           starting structure NGL viewer</div>
518                           <div class="col-md-10" id="viewport_putty"
519                           style="width:500px;height:500px;"> 
520                           </div>
521                         </li>
522
523                         
524                            {% endif %}
525
526
527
528                         {% endif %}
529                         
530                         {% if task.type == "remd" %}
531                         
532                         <li class="list-group-item task-item">
533                           <div class="col-md-2"> Energy histogram </div>
534                           <div class="col-md-10"> <img 
535                           src="/myfiles/download-file/{{task.jobdirname}}/remd_ene_hist.png"
536                           width="500"> </div>
537                         </li>
538
539                         <li class="list-group-item task-item">
540                           <div class="col-md-2"> Energy vs. temperature </div>
541                           <div class="col-md-10"> <img 
542                           src="/myfiles/download-file/{{task.jobdirname}}/remd_Tene.png"
543                           width="500"> </div>
544                         </li>
545                         
546                         <li class="list-group-item task-item">
547                           <div class="col-md-2"> Cv vs. temperature </div>
548                           <div class="col-md-10"> <img 
549                           src="/myfiles/download-file/{{task.jobdirname}}/remd_cv.png"
550                           width="500"> </div>
551                         </li>
552                         
553                            {% if task.md_pdbref %}
554
555                         <li class="list-group-item task-item">
556                           <div class="col-md-2"> Average RMSD vs. temperature </div>
557                           <div class="col-md-10"> <img 
558                           src="/myfiles/download-file/{{task.jobdirname}}/remd_rmsd.png"
559                           width="500"> </div>
560                         </li>
561
562                         <li class="list-group-item task-item">
563                           <div class="col-md-2"> potential energy vs. RMSD</div>
564                           <div class="col-md-10"> <img 
565                           src="/myfiles/download-file/{{task.jobdirname}}/remd_ene_rms.png"
566                           width="500"> </div>
567                         </li>
568
569                         <li class="list-group-item task-item">
570                           <div class="col-md-2"> RMSD vs. step*replica
571                           colored by bath temperature</div>
572                           <div class="col-md-10"> <img 
573                           src="/myfiles/download-file/{{task.jobdirname}}/remd_step_rms.png"
574                           width="500"> </div>
575                         </li>
576
577                         
578                            {% endif %} 
579                           
580                         <li class="list-group-item task-item">
581                           <div class="col-md-2"> exchanges (walk in T) </div>
582                           <div class="col-md-10"> <img 
583                           src="/myfiles/download-file/{{task.jobdirname}}/remd_ex.png"
584                           width="500"> </div>
585                         </li>
586                         
587                            {% if task.saxs_data != "" %}
588                         <li class="list-group-item task-item">
589                           <div class="col-md-2"> P(r) of input SAXS data and
590                           calculated for 5 models and the input pdb</div>
591                           <div class="col-md-10"> <img 
592                           src="/myfiles/download-file/{{task.jobdirname}}/saxs.png"
593                           width="500"> </div>
594                         </li>
595                            {% endif %}
596                         
597         <li class="list-group-item task-item">
598         <div class="col-md-4">
599         <button onclick="plusDivs(-1)">&#10094;</button> 
600         </div>
601         <div class="col-md-6">
602         select model
603         </div>
604         <div class="col-md-2">
605         <button onclick="plusDivs(1)">&#10095;</button>
606         </div>
607         </li>           
608                         
609                         <div class="model">
610 <!--                    <li class="list-group-item task-item">
611                           <div class="col-md-2"> model1 after conversion
612                           to allatom 
613                           {{ task.remd_model1|linebreaks }}
614                           </div>
615                           <div class="col-md-10"> 
616                           <a
617                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL1.pdb">
618                           <img
619                           src="/myfiles/download-file/{{task.jobdirname}}/model1.png" width="500">
620                           </a></div>
621                         </li> -->                       
622                         <li class="list-group-item task-item">
623                           <div class="col-md-2"> model1 
624                           {% if not task.damino %}
625                           after conversion to allatom 
626                           {% endif %}
627                           {{ task.remd_model1|linebreaks }}
628                           NGL viewer</div>
629                           <div class="col-md-10" id="viewport_M1"
630                           style="width:500px;height:500px;"> 
631                           </div>
632                         </li>
633                         <li class="list-group-item task-item">
634                <div class="col-md-12">
635                {% if task.md_pdbref %}
636                <button id="toggleRefM1">Reference structure on/off</button>
637                {% endif %}
638                <button id="toggleSidechainsM1">Side-chains on/off</button>
639                <a class="btn btn-default"
640                href="/myfiles/download-file/{{task.jobdirname}}/MODEL1.pdb">Download</a>               
641                </div>
642                         </li>
643                         
644                         </div>
645                         <div class="model">
646 <!--                    <li class="list-group-item task-item">
647                           <div class="col-md-2"> model2 after conversion
648                           to allatom 
649                           {{ task.remd_model2|linebreaks }}
650                           </div>
651                           <div class="col-md-10"> 
652                           <a
653                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL2.pdb">
654                           <img
655                           src="/myfiles/download-file/{{task.jobdirname}}/model2.png" width="500">
656                           </a></div>
657                         </li> -->
658                         <li class="list-group-item task-item">
659                           <div class="col-md-2"> model2 
660                           {% if not task.damino %}
661                           after conversion to allatom
662                           {% endif %}
663                           {{ task.remd_model2|linebreaks }}
664                           NGL viewer</div>
665                           <div class="col-md-10" id="viewport_M2"
666                           style="width:500px;height:500px;"> 
667                           </div>
668                         </li>
669                         <li class="list-group-item task-item">
670                <div class="col-md-12">
671                {% if task.md_pdbref %}
672                <button id="toggleRefM2">Reference structure on/off</button>
673                {% endif %}
674                <button id="toggleSidechainsM2">Side-chains on/off</button>
675                <a class="btn btn-default"
676                href="/myfiles/download-file/{{task.jobdirname}}/MODEL2.pdb">Download</a>               
677                </div>
678                         </li>
679                         
680                         
681                         </div>
682                         <div class="model">
683 <!--                    <li class="list-group-item task-item">
684                           <div class="col-md-2"> model3 after conversion
685                           to allatom 
686                           {{ task.remd_model3|linebreaks }}
687                           </div>
688                           <div class="col-md-10"> 
689                           <a
690                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL3.pdb">
691                           <img
692                           src="/myfiles/download-file/{{task.jobdirname}}/model3.png" width="500">
693                           </a></div>
694                         </li>-->
695                         <li class="list-group-item task-item">
696                           <div class="col-md-2"> model3 
697                           {% if not task.damino %}
698                           after conversion to allatom
699                           {% endif %}
700                           {{ task.remd_model3|linebreaks }}
701                           NGL viewer</div>
702                           <div class="col-md-10" id="viewport_M3"
703                           style="width:500px;height:500px;"> 
704                           </div>
705                         </li>
706                         <li class="list-group-item task-item">
707                <div class="col-md-12">
708                {% if task.md_pdbref %}
709                <button id="toggleRefM3">Reference structure on/off</button>
710                {% endif %}
711                <button id="toggleSidechainsM3">Side-chains on/off</button>
712                <a class="btn btn-default"
713                href="/myfiles/download-file/{{task.jobdirname}}/MODEL3.pdb">Download</a>               
714                </div>
715                         </li>
716                         
717                         </div>
718                         <div class="model">
719 <!--                    <li class="list-group-item task-item">
720                           <div class="col-md-2"> model4 after conversion
721                           to allatom 
722                           {{ task.remd_model4|linebreaks }}
723                           </div>
724                           <div class="col-md-10"> 
725                           <a
726                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL4.pdb">
727                           <img
728                           src="/myfiles/download-file/{{task.jobdirname}}/model4.png" width="500">
729                           </a></div>
730                         </li>-->
731                         <li class="list-group-item task-item">
732                           <div class="col-md-2"> model4 
733                           {% if not task.damino %}
734                           after conversion to allatom
735                           {% endif %}
736                           {{ task.remd_model4|linebreaks }}
737                           NGL viewer</div>
738                           <div class="col-md-10" id="viewport_M4"
739                           style="width:500px;height:500px;"> 
740                           </div>
741                         </li>
742                         <li class="list-group-item task-item">
743                <div class="col-md-12">
744                {% if task.md_pdbref %}
745                <button id="toggleRefM4">Reference structure on/off</button>
746                {% endif %}
747                <button id="toggleSidechainsM4">Side-chains on/off</button>
748                <a class="btn btn-default"
749                href="/myfiles/download-file/{{task.jobdirname}}/MODEL4.pdb">Download</a>               
750                </div>
751                         </li>
752                         
753                         </div>
754                         <div class="model">
755 <!--                    <li class="list-group-item task-item">
756                           <div class="col-md-2"> model5 after conversion
757                           to allatom 
758                           {{ task.remd_model5|linebreaks }}
759                           </div>
760                           <div class="col-md-10"> 
761                           <a
762                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL5.pdb">
763                           <img
764                           src="/myfiles/download-file/{{task.jobdirname}}/model5.png" width="500">
765                           </a></div>
766                         </li>-->
767                         <li class="list-group-item task-item">
768                           <div class="col-md-2"> model5 
769                           {% if not task.damino %}
770                           after conversion to allatom 
771                           {% endif %}
772                           {{ task.remd_model5|linebreaks }}
773                           NGL viewer</div>
774                           <div class="col-md-10" id="viewport_M5"
775                           style="width:500px;height:500px;"> 
776                           </div>
777                         </li>
778                         <li class="list-group-item task-item">
779                <div class="col-md-12">
780                {% if task.md_pdbref %}
781                <button id="toggleRefM5">Reference structure on/off</button>
782                {% endif %}
783                <button id="toggleSidechainsM5">Side-chains on/off</button>
784                <a class="btn btn-default"
785                href="/myfiles/download-file/{{task.jobdirname}}/MODEL5.pdb">Download</a>               
786                </div>
787                         </li>
788                         
789                         </div>
790                         {% endif %}
791
792         {% endif %}             
793
794         </ul>
795 {% else %}
796 <h2>
797 Regular user cannot use this link.
798 </h2>
799 {% endif %}
800         
801 <script src="/static/jquery.min.js"></script>
802 <script src="https://unpkg.com/ngl"></script>
803
804 <script>
805 $('.majorpointslegend').click(function(){
806     $(this.parentNode).find('.hiders').toggle();
807     if($(this.parentNode).find('.majorpointslegend').text()=='Show input parameters'){
808         $(this.parentNode).find('.majorpointslegend').text('Hide input parameters');
809     }else{
810         $(this.parentNode).find('.majorpointslegend').text('Show input parameters');
811     }    
812 });
813 </script>
814
815 {% if task.type == "remd" %}
816 <script>
817 function display_model(numstr){
818
819 {% if task.md_pdbref %}
820   var stage = new NGL.Stage("viewport_M"+numstr);
821   stage.setParameters( { backgroundColor: "white",fogFar: 60, fogNear: 45 } );
822   Promise.all([
823       stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/plik1.pdb" ,{defaultRepresentation: false}) .then( function( o ){
824         o.addRepresentation( "cartoon",{ name:"ref", color:"grey"
825         })
826         o.addRepresentation( "line", {name:"refsc",visible: false,
827          sele:"not hydrogen and sidechainAttached"
828         })    
829         return o
830       }),
831       stage.loadFile(
832       "/myfiles/download-file/{{task.jobdirname}}/MODEL"+numstr+".pdb",{defaultRepresentation: false}) .then( function( o ){
833  {% if task.damino %}
834         o.addRepresentation( "licorice",{ name: "unres", color:
835                "residueindex",colorScale:["blue","cyan", "green",
836                "yellow","orange", "red"], sele:".CA"
837                        })
838         o.addRepresentation( "licorice",{ name: "unressc", visible: false, color:
839        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
840         , sele:"*" })    
841  {% else %}
842         o.addRepresentation( "cartoon",{ name: "unres", color:
843                "residueindex",colorScale:["blue","cyan", "green",
844                "yellow","orange", "red"]
845                        })
846         o.addRepresentation( "line",{ name: "unressc", visible: false, color:
847        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
848         , sele:"not hydrogen and sidechainAttached" })    
849  {% endif %}
850         return o
851       })
852   ]).then(function (ol1) {
853    ol1[ 1 ].superpose(ol1[ 0 ], false, ".CA")
854    ol1[ 0 ].autoView()
855   })             
856             var ref=true;
857             var side=false;
858             var toggleAll = document.getElementById( "toggleRefM"+numstr );
859             toggleAll.addEventListener( "click", function(){
860                         ref=! ref;                                
861                         stage.getRepresentationsByName(
862                                 "ref" ).list.forEach( function( repre ){
863                                 repre.setVisibility( !repre.visible );
864                         } );
865                 if (side) {
866                         stage.getRepresentationsByName(
867                                 "refsc" ).list.forEach( function( repre ){
868                                 repre.setVisibility( !repre.visible );
869                         } );
870                 }
871
872             } );
873      var toggleSidechains =document.getElementById("toggleSidechainsM"+numstr );
874      toggleSidechains.addEventListener( "click", function(){
875              side=!side;
876              if (ref) {
877                  stage.getRepresentationsByName(
878                         "refsc" ).list.forEach( function( repre ){
879                         repre.setVisibility( !repre.visible );
880              } );
881       }
882       stage.getRepresentationsByName("unressc").list.forEach( function( repre ){
883                         repre.setVisibility( !repre.visible );
884         } );
885
886       } );
887 {% else %}
888   var stage = new NGL.Stage("viewport_M"+numstr);
889   stage.setParameters( { backgroundColor: "white",fogFar: 60, fogNear: 45 } );
890   stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/MODEL"+numstr+".pdb",{defaultRepresentation: false}) .then( function( o ){
891  {% if task.damino %}
892         o.addRepresentation( "licorice",{ name: "unres", color:
893                "residueindex",colorScale:["blue","cyan", "green",
894                "yellow","orange", "red"],sele:".CA"
895                        });
896         o.addRepresentation( "licorice",{ name: "unressc", visible: false, color:
897        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
898         , sele:"*" });
899  {% else %}
900         o.addRepresentation( "cartoon",{ name: "unres", color:
901                "residueindex",colorScale:["blue","cyan", "green",
902                "yellow","orange", "red"]
903                        });
904         o.addRepresentation( "line",{ name: "unressc", visible: false, color:
905        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
906         , sele:"not hydrogen and sidechainAttached" });
907  {% endif %}
908         o.autoView();
909   })             
910      var toggleSidechains =document.getElementById("toggleSidechainsM"+numstr );
911      toggleSidechains.addEventListener( "click", function(){
912       stage.getRepresentationsByName("unressc").list.forEach( function( repre ){
913                         repre.setVisibility( !repre.visible );
914         } );
915
916       } );
917
918 {% endif %}
919 }
920
921
922 window.addEventListener("resize", 
923 function (event) {
924       stage.handleResize();
925 },false);
926
927
928 display_model("1")
929
930
931 var slideIndex = 1;
932 var y = document.getElementsByClassName("model");
933 var lista=[];
934 var ii;
935 for (ii = 0; ii < y.length; ii++) {
936  lista.push(0)
937 }
938 lista[0]=1;
939 showDivs(slideIndex);
940
941 function plusDivs(n) {
942   showDivs(slideIndex += n);
943 }
944
945 function showDivs(n) {
946   var i;
947   var x = document.getElementsByClassName("model");
948   if (n > x.length) {slideIndex = 1}
949   if (n < 1) {slideIndex = x.length}
950   for (i = 0; i < x.length; i++) {
951      x[i].style.display = "none";
952   }
953   x[slideIndex-1].style.display = "block";
954   
955   if (lista[slideIndex-1] == 0 && slideIndex == 2) {
956     display_model("2")  
957   }
958   
959   if (lista[slideIndex-1] == 0 && slideIndex == 3) {
960      display_model("3")  
961   }
962
963   if (lista[slideIndex-1] == 0 && slideIndex == 4) {
964      display_model("4")  
965   }
966
967   if (lista[slideIndex-1] == 0 && slideIndex == 5) {
968      display_model("5")  
969   }
970     
971   
972   if (lista[slideIndex-1] == 0) {lista[slideIndex-1]=1}
973 }
974 </script>
975 {% endif %}
976
977 {% if not task.done %}
978 <script>
979 function worker() {
980   $.ajax({
981     data:{csrfmiddlewaretoken: '{{ csrf_token }}'},
982     url: "/refresh_done1/{{task.id}}/", 
983     type:"post",
984     success: function(data) {
985       document.location.reload();
986     },
987     complete: function() {
988       // Schedule the next request when the current one's complete
989       setTimeout(worker, 30000);
990     }
991   });
992 };
993 $(document).ready(function() {
994   // run the first time; all subsequent calls will take care of themselves
995   setTimeout(worker, 30000);
996 });
997 </script>
998 {% endif %} 
999         
1000
1001 {% if task.type == "min" %}
1002 <script>
1003 window.addEventListener("resize",
1004      function (event) {
1005      stage.handleResize();
1006      },false);
1007                
1008 var stage_unres = new NGL.Stage("viewport_unres");
1009 stage_unres.setParameters( { backgroundColor: "white" } );
1010 /**
1011 [color_Red, color_Green, color_Blue, ellipsoid_width, ellipsoid_length ]
1012 */
1013 var resdb = {   'CYS': [1.000, 1.000, 0.000, 1.33741, 2.96868],
1014                 'MET': [0.000, 1.000, 0.000, 1.36694, 3.08863],
1015                 'PHE': [0.000, 0.392, 0.000, 1.48323, 3.04238],
1016                 'ILE': [0.000, 1.000, 0.000, 1.44098, 3.17389],
1017                 'LEU': [0.000, 1.000, 0.000, 1.51054, 2.52078],
1018                 'VAL': [0.000, 1.000, 0.000, 1.42072, 2.68924],
1019                 'TRP': [0.000, 0.392, 0.000, 1.23867, 3.47403],
1020                 'TYR': [0.596, 0.984, 0.596, 1.23060, 3.35434],
1021                 'ALA': [0.000, 1.000, 0.000, 1.23266, 1.72686],
1022                 'GLY': [1.000, 1.000, 1.000, 1.24626, 1.11383],
1023                 'THR': [1.000, 0.000, 1.000, 1.28674, 2.59210],
1024                 'SER': [1.000, 0.000, 1.000, 1.22820, 1.68800],
1025                 'GLN': [1.000, 0.000, 1.000, 1.24239, 2.22201],
1026                 'ASN': [1.000, 0.000, 1.000, 1.24447, 2.24946],
1027                 'GLU': [1.000, 0.000, 0.000, 1.25448, 2.05551],
1028                 'ASP': [1.000, 0.000, 0.000, 1.25417, 1.77556],
1029                 'HIS': [1.000, 0.000, 1.000, 1.21103, 3.02627],
1030                 'ARG': [0.000, 0.000, 1.000, 1.13573, 3.25143],
1031                 'LYS': [0.000, 0.000, 1.000, 1.22604, 4.50054],
1032                 'PRO': [0.000, 1.000, 1.000, 1.35131, 2.20525]
1033                         };
1034 stage_unres.loadFile("/myfiles/download-file/{{task.jobdirname}}/file_GB000.pdb", {defaultRepresentation: false}).then
1035        (function ( o ){
1036        var shape = new NGL.Shape("shape")
1037        var chain = ""
1038        o.addRepresentation("licorice");
1039        o.structure.eachAtom(function(atom){
1040          if (atom.atomname == "CA" && atom.chainname == chain) {
1041           px=CAx+(atom.x-CAx)/2;
1042           py=CAy+(atom.y-CAy)/2;
1043           pz=CAz+(atom.z-CAz)/2;
1044           shape.addSphere([px,py,pz],[0.643, 0.933, 0.960],0.6,"p");
1045          }
1046          if (atom.atomname == "CA") {
1047          chain= atom.chainname
1048          CAx= atom.x;
1049          CAy= atom.y
1050          CAz= atom.z
1051          }
1052          if (atom.atomname == "CB") {
1053           mx = (atom.x-CAx);
1054           my = (atom.y-CAy);
1055           mz = (atom.z-CAz);
1056           norm=Math.sqrt(mx*mx+my*my+mz*mz);
1057           res=atom.resname;
1058           var longaxis=resdb[res][4]
1059           var shortaxis=resdb[res][3]
1060           mx = mx /norm*longaxis;
1061           my = my /norm*longaxis;
1062           mz = mz /norm*longaxis;
1063           resn=res+atom.resno
1064           shape.addEllipsoid([ atom.x, atom.y, atom.z ], 
1065               [ resdb[res][0], resdb[res][1], resdb[res][2]], 
1066               shortaxis, [ mx, my, mz ], [ 0, shortaxis, 0 ],resn);
1067          }
1068        });
1069        var shapeComp = stage_unres.addComponentFromObject(shape)
1070        shapeComp.addRepresentation("buffer")
1071        o.autoView();
1072 });
1073
1074
1075
1076 var stage = new NGL.Stage("viewport_min");
1077 stage.setParameters( { backgroundColor: "white" } );
1078 Promise.all([
1079   stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/file_GB000.pdb" ,{defaultRepresentation: false}) .then( function( o ){
1080      o.addRepresentation( "backbone",{ color:
1081        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
1082      })
1083      o.addRepresentation( "licorice",{ color:
1084        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange","red"]
1085      })    
1086      return o
1087   }),
1088       
1089   stage.loadFile("/myfiles/download-file/{{task.jobdirname}}/plik.pdb",{defaultRepresentation: false}) .then( function( o ){
1090      o.addRepresentation( "backbone",{ name: "allatom", color:
1091        "residueindex",colorScale:["blue","cyan", "green","yellow","orange", "red"]
1092      })
1093      o.addRepresentation( "line",{ name: "allatomsc", color:
1094        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
1095        ,sele:"not hydrogen and sidechainAttached" 
1096      })    
1097      return o
1098   })
1099 ]).then(function (ol) {
1100    ol[ 0 ].superpose(ol[ 1 ], false, ".CA")
1101    ol[ 0 ].autoView()
1102 })             
1103
1104 var allatom=true;
1105 var side=true;
1106 var toggleAll = document.getElementById( "toggleAllatom" );
1107 toggleAll.addEventListener( "click", function(){
1108                         allatom=! allatom;                                
1109                         stage.getRepresentationsByName(
1110                                 "allatom" ).list.forEach( function( repre ){
1111                                 repre.setVisibility( !repre.visible );
1112                         } );
1113             if (side) {
1114                         stage.getRepresentationsByName(
1115                                 "allatomsc" ).list.forEach( function( repre ){
1116                                 repre.setVisibility( !repre.visible );
1117                         } );
1118             }
1119 } );
1120 var toggleSidechains = document.getElementById("toggleSidechains2" );
1121 toggleSidechains.addEventListener( "click", function(){
1122           side=!side;
1123           if (allatom) {
1124                 stage.getRepresentationsByName(
1125                         "allatomsc" ).list.forEach( function( repre ){
1126                                 repre.setVisibility( !repre.visible );
1127                 } );
1128                                                       
1129           }
1130           stage.getRepresentationsByName("licorice").list.forEach( function( repre ){
1131                 repre.setVisibility( !repre.visible );
1132           } );
1133
1134 } );
1135 </script>
1136 {% endif %}
1137
1138 {% if task.type == "md" and task.md_start == "pdbstart" %}
1139 <script>
1140 window.addEventListener("resize",
1141      function (event) {
1142      stage.handleResize();
1143      },false);
1144
1145 var stage = new NGL.Stage("viewport_putty");
1146 stage.setParameters( { backgroundColor: "white" } );
1147
1148 var tooltip = document.createElement("div")
1149 Object.assign(tooltip.style, {
1150   display: "none",
1151   position: "fixed",
1152   zIndex: 10,
1153   pointerEvents: "none",
1154   backgroundColor: "rgba( 0, 0, 0, 0.6 )",
1155   color: "lightgrey",
1156   padding: "8px",
1157   fontFamily: "sans-serif"
1158 })
1159 document.body.appendChild(tooltip)
1160
1161 stage.loadFile("/myfiles/download-file/{{task.jobdirname}}/plik_bf.pdb", {defaultRepresentation: false}).then 
1162        (function ( o ){
1163        o.addRepresentation("tube",{ color: "bfactor" , scale: 0.25,
1164        sele: "backbone",
1165        radius:"bfactor",
1166        colorScale:["blue","cyan", "green", "yellow","orange", "red"] });
1167        o.addRepresentation("licorice",{sele:"sidechainAttached and CYS and not hydrogen"});
1168        o.autoView();
1169 })
1170
1171 // remove default hoverPick mouse action
1172 stage.mouseControls.remove("hoverPick")
1173
1174 stage.signals.hovered.add(function (pickingProxy) {
1175   if (pickingProxy && (pickingProxy.atom || pickingProxy.bond)) {
1176     var atom = pickingProxy.atom || pickingProxy.closestBondAtom
1177     var mp = pickingProxy.mouse.position
1178     var bf= atom.bfactor.toFixed(2)
1179     tooltip.innerText = atom.qualifiedName()+" Fluctuation="+ bf
1180     tooltip.style.bottom = window.innerHeight - mp.y + 3 + "px"
1181     tooltip.style.left = mp.x + 3 + "px"
1182     tooltip.style.display = "block"
1183   } else {
1184     tooltip.style.display = "none"
1185   }
1186 })
1187 </script>
1188 {% endif %}     
1189
1190 {% if task.type == "md" and task.md_mdpdb %}
1191 <script>
1192 window.addEventListener("resize",
1193      function (event) {
1194      stage.handleResize();
1195      },false);
1196
1197       var stage = new NGL.Stage("viewport_traj");
1198       stage.setParameters( { backgroundColor: "white" } );
1199       stage.setParameters( { cameraType: "orthographic" } ); 
1200       var traj;
1201       var player;
1202       stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/file_MD000.pdb", { 
1203        asTrajectory: true } ) .then( function( o ){
1204         o.setName ("unres_md");
1205         o.addRepresentation( "backbone",{ color:
1206        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
1207         });
1208         o.addRepresentation( "licorice",{ color:
1209        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
1210         });        
1211         o.setPosition([0, 0, 100]);
1212         o.autoView();
1213         o.addTrajectory();
1214       });
1215
1216             var toggleSidechains = document.getElementById( "toggleSidechains1" );
1217             toggleSidechains.addEventListener( "click", function(){
1218                                                         stage.getRepresentationsByName( "licorice" ).list.forEach( function( repre ){
1219                                                                         repre.setVisibility( !repre.visible );
1220                                                         } );
1221             } );
1222
1223
1224       function numberWithCommas(x) {
1225                 return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
1226       }
1227       var toggleRunMDs = document.getElementById( "toggleRunMDs" );
1228       var isRunning = false;
1229       toggleRunMDs.addEventListener( "click", function(){
1230          var trajComp = stage.getComponentsByName("unres_md").list[0].trajList[0];
1231          var player = new NGL.TrajectoryPlayer(trajComp.trajectory, {timeout: 10, mode: "once"});
1232                                 if( !isRunning ){
1233                                         player.play();
1234                                         isRunning = true;
1235
1236                     trajComp.signals.frameChanged.add(function(){
1237                       var fnum=trajComp.trajectory.currentFrame+1;                   
1238                       clipRange.value = fnum;
1239                       clipRange_val.innerHTML = numberWithCommas(parseInt(clipRange.value*1));
1240                     });
1241
1242                                 }else{
1243                                         player.play();
1244                                         player.pause();
1245                                         isRunning = false;
1246                                 }
1247       } );      
1248       var clipRange = document.getElementById( "clipRange" );
1249       var clipRange_val = document.getElementById( "clipRange_val" );
1250       clipRange.oninput = function( e ){
1251                 var trajComp = stage.getComponentsByName("unres_md").list[0].trajList[0];
1252                 trajComp.setFrame(e.target.value-1)
1253                 clipRange_val.innerHTML = numberWithCommas(parseInt(e.target.value*1));
1254       };      
1255
1256 </script>
1257 {% endif %}     
1258
1259
1260 {% endblock %}