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