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