06ae3db39badf3c81ed27031e81f61b9ef3f0b01
[django_unres.git] / django_simple / todo / templates / details.html
1 {% extends "base.html" %}
2
3 {% load i18n lazysignup_tags %}
4 {% block content %}
5
6 {% if user|is_lazy_user %}
7 <ul class="list-group">
8
9 <li class="list-group-item new-task-item task-item">
10
11 <div class="col-md-2 form-group">
12 <form action="/refresh_done/" method="post">
13 {% csrf_token %}
14 <input type="submit" class="btn" value="Refresh" name="refreshbtn">
15 </form>
16 </div>
17
18 <div class="col-md-10 form-group">
19 <h5 style="text-align:right;float:right;">
20 {% if not task.done %}
21  {% if task.running > 0  %}
22   {% if task.running == 100  %}
23   postprocessing
24   {% else %}
25   running
26   {% endif %}
27  {% else %}
28   waiting in the queue to start
29  {% endif %}
30 {% endif %}
31 </h5>
32 </div>
33 </li>
34 </ul>
35 {% endif %}
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 <!--
365                         <li class="list-group-item task-item">
366                           <div class="col-md-2"> Structure overlap </div>
367                           <div class="col-md-10"> <img 
368                           src="/myfiles/download-file/{{task.jobdirname}}/unres_overlap.png"
369                           width="500"> </div>
370                         </li>
371 -->
372                         <li class="list-group-item task-item">
373                           <div class="col-md-2"> Structure overlap NGL viewer</div>
374                           <div class="col-md-10" id="viewport_min"
375                           style="width:500px;height:500px;"> 
376                           </div>
377                         </li>
378                         <li class="list-group-item task-item">
379                <div class="col-md-12">
380                <button id="toggleAllatom">Input structure on/off</button>
381                <button id="toggleSidechains2">Side-chains on/off</button>
382                </div>
383                         </li>
384                         {% endif %}
385
386                         <li class="list-group-item task-item">
387                             <div class="col-md-2"> Results </div>
388                             <div class="col-md-10">{{ task.results_text|linebreaks }}</div>
389                         </li>           
390                         
391                         {% if task.type == "md" %}
392
393                         <li class="list-group-item task-item">
394                           <div class="col-md-2"> Temperature histogram </div>
395                           <div class="col-md-10"> <img 
396                           src="/myfiles/download-file/{{task.jobdirname}}/temp_hist.png"
397                           width="500"> </div>
398                         </li>
399
400                         <li class="list-group-item task-item">
401                           <div class="col-md-2"> Potential energy </div>
402                           <div class="col-md-10"> <img 
403                           src="/myfiles/download-file/{{task.jobdirname}}/md_ene.png"
404                           width="500"> </div>
405                         </li>
406
407                             <li class="list-group-item task-item">
408                             <div class="col-md-2"> Movie </div>
409                             <div class="col-md-10"> 
410
411                             <video width="500" height="400" preload controls>
412                             <source
413                             src="/myfiles/download-file/{{task.jobdirname}}/md.ogv"
414                             type="video/ogg; codecs=theora"> </source>
415                             </video>
416                           
417                             </div>
418                             </li>
419
420 {% if task.md_mdpdb %}
421                         <li class="list-group-item task-item">
422                           <div class="col-md-2"> Trajectory NGL viewer</div>
423                           <div class="col-md-10" id="viewport_traj"
424                           style="width:500px;height:500px;"> 
425                           </div>
426                         </li>
427                         <li class="list-group-item task-item">
428                <div class="col-md-6">
429 <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
430 </div>
431 <div class="col-md-6">
432 <button id="toggleRunMDs">run/pause MD</button>  
433 <button id="toggleSidechains1">side-chains on/off</button>                        
434 </div>
435                         </li>
436
437 {% endif %}
438                             
439                         <li class="list-group-item task-item">
440                           <div class="col-md-2"> Radius of gyration based
441                           on C<sup>α</sup> coordinates </div>
442                           <div class="col-md-10"> <img 
443                           src="/myfiles/download-file/{{task.jobdirname}}/md_gyr.png"
444                           width="500"> </div>
445                         </li>
446                             
447
448                 
449                            {% if task.md_pdbref %}
450                         <li class="list-group-item task-item">
451                           <div class="col-md-2"> RMSD </div>
452                           <div class="col-md-10"> <img 
453                           src="/myfiles/download-file/{{task.jobdirname}}/md_rms.png"
454                           width="500"> </div>
455                         </li>
456
457                         <li class="list-group-item task-item">
458                           <div class="col-md-2"> fraction of native
459                           side-chain concacts </div>
460                           <div class="col-md-10"> <img 
461                           src="/myfiles/download-file/{{task.jobdirname}}/md_fracn.png"
462                           width="500"> </div>
463                         </li>
464                         
465                            {% endif %}
466
467                            {% if task.md_start == "pdbstart" %}
468                         <li class="list-group-item task-item">
469                           <div class="col-md-2"> fluctuations </div>
470                           <div class="col-md-10"> <img 
471                           src="/myfiles/download-file/{{task.jobdirname}}/fluct_plot.png"
472                           width="500"> </div>
473                         </li>
474 <!--
475                         <li class="list-group-item task-item">
476                           <div class="col-md-2"> fluctuations putty on
477                           starting structure</div>
478                           <div class="col-md-10"> 
479                           <a
480                           href="/myfiles/download-file/{{task.jobdirname}}/fluct.pse">
481                           <img 
482                           src="/myfiles/download-file/{{task.jobdirname}}/fluct.png"
483                           width="500"></a> </div>
484                         </li>
485 -->
486                         <li class="list-group-item task-item">
487                           <div class="col-md-2"> fluctuations putty on
488                           starting structure NGL viewer</div>
489                           <div class="col-md-10" id="viewport_putty"
490                           style="width:500px;height:500px;"> 
491                           </div>
492                         </li>
493
494                         
495                            {% endif %}
496
497
498
499                         {% endif %}
500                         
501                         {% if task.type == "remd" %}
502                         
503                         <li class="list-group-item task-item">
504                           <div class="col-md-2"> Energy histogram </div>
505                           <div class="col-md-10"> <img 
506                           src="/myfiles/download-file/{{task.jobdirname}}/remd_ene_hist.png"
507                           width="500"> </div>
508                         </li>
509
510                         <li class="list-group-item task-item">
511                           <div class="col-md-2"> Energy vs. temperature </div>
512                           <div class="col-md-10"> <img 
513                           src="/myfiles/download-file/{{task.jobdirname}}/remd_Tene.png"
514                           width="500"> </div>
515                         </li>
516                         
517                         <li class="list-group-item task-item">
518                           <div class="col-md-2"> Cv vs. temperature </div>
519                           <div class="col-md-10"> <img 
520                           src="/myfiles/download-file/{{task.jobdirname}}/remd_cv.png"
521                           width="500"> </div>
522                         </li>
523                         
524                            {% if task.md_pdbref %}
525
526                         <li class="list-group-item task-item">
527                           <div class="col-md-2"> Average RMSD vs. temperature </div>
528                           <div class="col-md-10"> <img 
529                           src="/myfiles/download-file/{{task.jobdirname}}/remd_rmsd.png"
530                           width="500"> </div>
531                         </li>
532
533                         <li class="list-group-item task-item">
534                           <div class="col-md-2"> potential energy vs. RMSD</div>
535                           <div class="col-md-10"> <img 
536                           src="/myfiles/download-file/{{task.jobdirname}}/remd_ene_rms.png"
537                           width="500"> </div>
538                         </li>
539
540                         <li class="list-group-item task-item">
541                           <div class="col-md-2"> RMSD vs. step*replica
542                           colored by bath temperature</div>
543                           <div class="col-md-10"> <img 
544                           src="/myfiles/download-file/{{task.jobdirname}}/remd_step_rms.png"
545                           width="500"> </div>
546                         </li>
547
548                         
549                            {% endif %} 
550                           
551                         <li class="list-group-item task-item">
552                           <div class="col-md-2"> exchanges (walk in T) </div>
553                           <div class="col-md-10"> <img 
554                           src="/myfiles/download-file/{{task.jobdirname}}/remd_ex.png"
555                           width="500"> </div>
556                         </li>
557                         
558                            {% if task.saxs_data != "" %}
559                         <li class="list-group-item task-item">
560                           <div class="col-md-2"> P(r) of input SAXS data and
561                           calculated for 5 models and the input pdb</div>
562                           <div class="col-md-10"> <img 
563                           src="/myfiles/download-file/{{task.jobdirname}}/saxs.png"
564                           width="500"> </div>
565                         </li>
566                            {% endif %}
567                         
568         <li class="list-group-item task-item">
569         <div class="col-md-4">
570         <button onclick="plusDivs(-1)">&#10094;</button> 
571         </div>
572         <div class="col-md-6">
573         select model
574         </div>
575         <div class="col-md-2">
576         <button onclick="plusDivs(1)">&#10095;</button>
577         </div>
578         </li>           
579                         
580                         <div class="model">
581 <!--                    <li class="list-group-item task-item">
582                           <div class="col-md-2"> model1 after conversion
583                           to allatom 
584                           {{ task.remd_model1|linebreaks }}
585                           </div>
586                           <div class="col-md-10"> 
587                           <a
588                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL1.pdb">
589                           <img
590                           src="/myfiles/download-file/{{task.jobdirname}}/model1.png" width="500">
591                           </a></div>
592                         </li> -->                       
593                         <li class="list-group-item task-item">
594                           <div class="col-md-2"> model1 after conversion 
595                           to allatom {{ task.remd_model1|linebreaks }}
596                           NGL viewer</div>
597                           <div class="col-md-10" id="viewport_M1"
598                           style="width:500px;height:500px;"> 
599                           </div>
600                         </li>
601                         <li class="list-group-item task-item">
602                <div class="col-md-12">
603                {% if task.md_pdbref %}
604                <button id="toggleRefM1">Reference structure on/off</button>
605                {% endif %}
606                <button id="toggleSidechainsM1">Side-chains on/off</button>
607                <a class="btn btn-default"
608                href="/myfiles/download-file/{{task.jobdirname}}/MODEL1.pdb">Download</a>               
609                </div>
610                         </li>
611                         
612                         </div>
613                         <div class="model">
614 <!--                    <li class="list-group-item task-item">
615                           <div class="col-md-2"> model2 after conversion
616                           to allatom 
617                           {{ task.remd_model2|linebreaks }}
618                           </div>
619                           <div class="col-md-10"> 
620                           <a
621                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL2.pdb">
622                           <img
623                           src="/myfiles/download-file/{{task.jobdirname}}/model2.png" width="500">
624                           </a></div>
625                         </li> -->
626                         <li class="list-group-item task-item">
627                           <div class="col-md-2"> model2 after conversion 
628                           to allatom {{ task.remd_model2|linebreaks }}
629                           NGL viewer</div>
630                           <div class="col-md-10" id="viewport_M2"
631                           style="width:500px;height:500px;"> 
632                           </div>
633                         </li>
634                         <li class="list-group-item task-item">
635                <div class="col-md-12">
636                {% if task.md_pdbref %}
637                <button id="toggleRefM2">Reference structure on/off</button>
638                {% endif %}
639                <button id="toggleSidechainsM2">Side-chains on/off</button>
640                <a class="btn btn-default"
641                href="/myfiles/download-file/{{task.jobdirname}}/MODEL2.pdb">Download</a>               
642                </div>
643                         </li>
644                         
645                         
646                         </div>
647                         <div class="model">
648 <!--                    <li class="list-group-item task-item">
649                           <div class="col-md-2"> model3 after conversion
650                           to allatom 
651                           {{ task.remd_model3|linebreaks }}
652                           </div>
653                           <div class="col-md-10"> 
654                           <a
655                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL3.pdb">
656                           <img
657                           src="/myfiles/download-file/{{task.jobdirname}}/model3.png" width="500">
658                           </a></div>
659                         </li>-->
660                         <li class="list-group-item task-item">
661                           <div class="col-md-2"> model3 after conversion 
662                           to allatom {{ task.remd_model3|linebreaks }}
663                           NGL viewer</div>
664                           <div class="col-md-10" id="viewport_M3"
665                           style="width:500px;height:500px;"> 
666                           </div>
667                         </li>
668                         <li class="list-group-item task-item">
669                <div class="col-md-12">
670                {% if task.md_pdbref %}
671                <button id="toggleRefM3">Reference structure on/off</button>
672                {% endif %}
673                <button id="toggleSidechainsM3">Side-chains on/off</button>
674                <a class="btn btn-default"
675                href="/myfiles/download-file/{{task.jobdirname}}/MODEL3.pdb">Download</a>               
676                </div>
677                         </li>
678                         
679                         </div>
680                         <div class="model">
681 <!--                    <li class="list-group-item task-item">
682                           <div class="col-md-2"> model4 after conversion
683                           to allatom 
684                           {{ task.remd_model4|linebreaks }}
685                           </div>
686                           <div class="col-md-10"> 
687                           <a
688                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL4.pdb">
689                           <img
690                           src="/myfiles/download-file/{{task.jobdirname}}/model4.png" width="500">
691                           </a></div>
692                         </li>-->
693                         <li class="list-group-item task-item">
694                           <div class="col-md-2"> model4 after conversion 
695                           to allatom {{ task.remd_model4|linebreaks }}
696                           NGL viewer</div>
697                           <div class="col-md-10" id="viewport_M4"
698                           style="width:500px;height:500px;"> 
699                           </div>
700                         </li>
701                         <li class="list-group-item task-item">
702                <div class="col-md-12">
703                {% if task.md_pdbref %}
704                <button id="toggleRefM4">Reference structure on/off</button>
705                {% endif %}
706                <button id="toggleSidechainsM4">Side-chains on/off</button>
707                <a class="btn btn-default"
708                href="/myfiles/download-file/{{task.jobdirname}}/MODEL4.pdb">Download</a>               
709                </div>
710                         </li>
711                         
712                         </div>
713                         <div class="model">
714 <!--                    <li class="list-group-item task-item">
715                           <div class="col-md-2"> model5 after conversion
716                           to allatom 
717                           {{ task.remd_model5|linebreaks }}
718                           </div>
719                           <div class="col-md-10"> 
720                           <a
721                           href="/myfiles/download-file/{{task.jobdirname}}/MODEL5.pdb">
722                           <img
723                           src="/myfiles/download-file/{{task.jobdirname}}/model5.png" width="500">
724                           </a></div>
725                         </li>-->
726                         <li class="list-group-item task-item">
727                           <div class="col-md-2"> model5 after conversion 
728                           to allatom {{ task.remd_model5|linebreaks }}
729                           NGL viewer</div>
730                           <div class="col-md-10" id="viewport_M5"
731                           style="width:500px;height:500px;"> 
732                           </div>
733                         </li>
734                         <li class="list-group-item task-item">
735                <div class="col-md-12">
736                {% if task.md_pdbref %}
737                <button id="toggleRefM5">Reference structure on/off</button>
738                {% endif %}
739                <button id="toggleSidechainsM5">Side-chains on/off</button>
740                <a class="btn btn-default"
741                href="/myfiles/download-file/{{task.jobdirname}}/MODEL5.pdb">Download</a>               
742                </div>
743                         </li>
744                         
745                         </div>
746                         {% endif %}
747
748         {% endif %}             
749
750         </ul>
751         
752 <script src="/static/jquery.min.js"></script>
753 <script src="https://unpkg.com/ngl"></script>
754
755 <script>
756 $('.majorpointslegend').click(function(){
757     $(this.parentNode).find('.hiders').toggle();
758     if($(this.parentNode).find('.majorpointslegend').text()=='Show input parameters'){
759         $(this.parentNode).find('.majorpointslegend').text('Hide input parameters');
760     }else{
761         $(this.parentNode).find('.majorpointslegend').text('Show input parameters');
762     }    
763 });
764 </script>
765
766 {% if task.type == "remd" %}
767 <script>
768 function display_model(numstr){
769
770 {% if task.md_pdbref %}
771   var stage = new NGL.Stage("viewport_M"+numstr);
772   stage.setParameters( { backgroundColor: "white",fogFar: 60, fogNear: 45 } );
773   Promise.all([
774       stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/plik1.pdb" ,{defaultRepresentation: false}) .then( function( o ){
775         o.addRepresentation( "cartoon",{ name:"ref", color:"grey"
776         })
777         o.addRepresentation( "line", {name:"refsc",visible: false,
778          sele:"not hydrogen and sidechainAttached"
779         })    
780         return o
781       }),
782       stage.loadFile(
783       "/myfiles/download-file/{{task.jobdirname}}/MODEL"+numstr+".pdb",{defaultRepresentation: false}) .then( function( o ){
784  {% if task.damino %}
785         o.addRepresentation( "licorice",{ name: "unres", color:
786                "residueindex",colorScale:["blue","cyan", "green",
787                "yellow","orange", "red"], sele:".CA"
788                        })
789         o.addRepresentation( "licorice",{ name: "unressc", visible: false, color:
790        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
791         , sele:"*" })    
792  {% else %}
793         o.addRepresentation( "cartoon",{ name: "unres", color:
794                "residueindex",colorScale:["blue","cyan", "green",
795                "yellow","orange", "red"]
796                        })
797         o.addRepresentation( "line",{ name: "unressc", visible: false, color:
798        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
799         , sele:"not hydrogen and sidechainAttached" })    
800  {% endif %}
801         return o
802       })
803   ]).then(function (ol1) {
804    ol1[ 0 ].superpose(ol1[ 1 ], false, ".CA")
805    ol1[ 0 ].autoView()
806   })             
807             var ref=true;
808             var side=false;
809             var toggleAll = document.getElementById( "toggleRefM"+numstr );
810             toggleAll.addEventListener( "click", function(){
811                         ref=! ref;                                
812                         stage.getRepresentationsByName(
813                                 "ref" ).list.forEach( function( repre ){
814                                 repre.setVisibility( !repre.visible );
815                         } );
816                 if (side) {
817                         stage.getRepresentationsByName(
818                                 "refsc" ).list.forEach( function( repre ){
819                                 repre.setVisibility( !repre.visible );
820                         } );
821                 }
822
823             } );
824      var toggleSidechains =document.getElementById("toggleSidechainsM"+numstr );
825      toggleSidechains.addEventListener( "click", function(){
826              side=!side;
827              if (ref) {
828                  stage.getRepresentationsByName(
829                         "refsc" ).list.forEach( function( repre ){
830                         repre.setVisibility( !repre.visible );
831              } );
832       }
833       stage.getRepresentationsByName("unressc").list.forEach( function( repre ){
834                         repre.setVisibility( !repre.visible );
835         } );
836
837       } );
838 {% else %}
839   var stage = new NGL.Stage("viewport_M"+numstr);
840   stage.setParameters( { backgroundColor: "white",fogFar: 60, fogNear: 45 } );
841   stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/MODEL"+numstr+".pdb",{defaultRepresentation: false}) .then( function( o ){
842  {% if task.damino %}
843         o.addRepresentation( "licorice",{ name: "unres", color:
844                "residueindex",colorScale:["blue","cyan", "green",
845                "yellow","orange", "red"],sele:".CA"
846                        });
847         o.addRepresentation( "licorice",{ name: "unressc", visible: false, color:
848        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
849         , sele:"*" });
850  {% else %}
851         o.addRepresentation( "cartoon",{ name: "unres", color:
852                "residueindex",colorScale:["blue","cyan", "green",
853                "yellow","orange", "red"]
854                        });
855         o.addRepresentation( "line",{ name: "unressc", visible: false, color:
856        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
857         , sele:"not hydrogen and sidechainAttached" });
858  {% endif %}
859         o.autoView();
860   })             
861      var toggleSidechains =document.getElementById("toggleSidechainsM"+numstr );
862      toggleSidechains.addEventListener( "click", function(){
863       stage.getRepresentationsByName("unressc").list.forEach( function( repre ){
864                         repre.setVisibility( !repre.visible );
865         } );
866
867       } );
868
869 {% endif %}
870 }
871
872
873 window.addEventListener("resize", 
874 function (event) {
875       stage.handleResize();
876 },false);
877
878
879 display_model("1")
880
881
882 var slideIndex = 1;
883 var y = document.getElementsByClassName("model");
884 var lista=[];
885 var ii;
886 for (ii = 0; ii < y.length; ii++) {
887  lista.push(0)
888 }
889 lista[0]=1;
890 showDivs(slideIndex);
891
892 function plusDivs(n) {
893   showDivs(slideIndex += n);
894 }
895
896 function showDivs(n) {
897   var i;
898   var x = document.getElementsByClassName("model");
899   if (n > x.length) {slideIndex = 1}
900   if (n < 1) {slideIndex = x.length}
901   for (i = 0; i < x.length; i++) {
902      x[i].style.display = "none";
903   }
904   x[slideIndex-1].style.display = "block";
905   
906   if (lista[slideIndex-1] == 0 && slideIndex == 2) {
907     display_model("2")  
908   }
909   
910   if (lista[slideIndex-1] == 0 && slideIndex == 3) {
911      display_model("3")  
912   }
913
914   if (lista[slideIndex-1] == 0 && slideIndex == 4) {
915      display_model("4")  
916   }
917
918   if (lista[slideIndex-1] == 0 && slideIndex == 5) {
919      display_model("5")  
920   }
921     
922   
923   if (lista[slideIndex-1] == 0) {lista[slideIndex-1]=1}
924 }
925 </script>
926 {% endif %}
927
928 {% if not task.done %}
929 <script>
930 function worker() {
931   $.ajax({
932     data:{csrfmiddlewaretoken: '{{ csrf_token }}'},
933     url: "/refresh_done/", 
934     type:"post",
935     success: function(data) {
936       document.location.reload();
937     },
938     complete: function() {
939       // Schedule the next request when the current one's complete
940       setTimeout(worker, 30000);
941     }
942   });
943 };
944 $(document).ready(function() {
945   // run the first time; all subsequent calls will take care of themselves
946   setTimeout(worker, 30000);
947 });
948 </script>
949 {% endif %} 
950         
951
952 {% if task.type == "min" %}
953 <script>
954 window.addEventListener("resize",
955      function (event) {
956      stage.handleResize();
957      },false);
958                
959 var stage = new NGL.Stage("viewport_min");
960 stage.setParameters( { backgroundColor: "white" } );
961 Promise.all([
962   stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/file_GB000.pdb" ,{defaultRepresentation: false}) .then( function( o ){
963      o.addRepresentation( "backbone",{ color:
964        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
965      })
966      o.addRepresentation( "licorice",{ color:
967        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange","red"]
968      })    
969      return o
970   }),
971       
972   stage.loadFile("/myfiles/download-file/{{task.jobdirname}}/plik.pdb",{defaultRepresentation: false}) .then( function( o ){
973      o.addRepresentation( "backbone",{ name: "allatom", color:
974        "residueindex",colorScale:["blue","cyan", "green","yellow","orange", "red"]
975      })
976      o.addRepresentation( "line",{ name: "allatomsc", color:
977        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
978        ,sele:"not hydrogen and sidechainAttached" 
979      })    
980      return o
981   })
982 ]).then(function (ol) {
983    ol[ 0 ].superpose(ol[ 1 ], false, ".CA")
984    ol[ 0 ].autoView()
985 })             
986
987 var allatom=true;
988 var side=true;
989 var toggleAll = document.getElementById( "toggleAllatom" );
990 toggleAll.addEventListener( "click", function(){
991                         allatom=! allatom;                                
992                         stage.getRepresentationsByName(
993                                 "allatom" ).list.forEach( function( repre ){
994                                 repre.setVisibility( !repre.visible );
995                         } );
996             if (side) {
997                         stage.getRepresentationsByName(
998                                 "allatomsc" ).list.forEach( function( repre ){
999                                 repre.setVisibility( !repre.visible );
1000                         } );
1001             }
1002 } );
1003 var toggleSidechains = document.getElementById("toggleSidechains2" );
1004 toggleSidechains.addEventListener( "click", function(){
1005           side=!side;
1006           if (allatom) {
1007                 stage.getRepresentationsByName(
1008                         "allatomsc" ).list.forEach( function( repre ){
1009                                 repre.setVisibility( !repre.visible );
1010                 } );
1011                                                       
1012           }
1013           stage.getRepresentationsByName("licorice").list.forEach( function( repre ){
1014                 repre.setVisibility( !repre.visible );
1015           } );
1016
1017 } );
1018 </script>
1019 {% endif %}
1020
1021 {% if task.type == "md" and task.md_start == "pdbstart" %}
1022 <script>
1023 window.addEventListener("resize",
1024      function (event) {
1025      stage.handleResize();
1026      },false);
1027
1028 var stage = new NGL.Stage("viewport_putty");
1029 stage.setParameters( { backgroundColor: "white" } );
1030
1031 var tooltip = document.createElement("div")
1032 Object.assign(tooltip.style, {
1033   display: "none",
1034   position: "fixed",
1035   zIndex: 10,
1036   pointerEvents: "none",
1037   backgroundColor: "rgba( 0, 0, 0, 0.6 )",
1038   color: "lightgrey",
1039   padding: "8px",
1040   fontFamily: "sans-serif"
1041 })
1042 document.body.appendChild(tooltip)
1043
1044 stage.loadFile("/myfiles/download-file/{{task.jobdirname}}/plik_bf.pdb", {defaultRepresentation: false}).then 
1045        (function ( o ){
1046        o.addRepresentation("tube",{ color: "bfactor" , scale: 0.25,
1047        sele: "backbone",
1048        radius:"bfactor",
1049        colorScale:["blue","cyan", "green", "yellow","orange", "red"] });
1050        o.addRepresentation("licorice",{sele:"sidechainAttached and CYS and not hydrogen"});
1051        o.autoView();
1052 })
1053
1054 // remove default hoverPick mouse action
1055 stage.mouseControls.remove("hoverPick")
1056
1057 stage.signals.hovered.add(function (pickingProxy) {
1058   if (pickingProxy && (pickingProxy.atom || pickingProxy.bond)) {
1059     var atom = pickingProxy.atom || pickingProxy.closestBondAtom
1060     var mp = pickingProxy.mouse.position
1061     var bf= atom.bfactor.toFixed(2)
1062     tooltip.innerText = atom.qualifiedName()+" Fluctuation="+ bf
1063     tooltip.style.bottom = window.innerHeight - mp.y + 3 + "px"
1064     tooltip.style.left = mp.x + 3 + "px"
1065     tooltip.style.display = "block"
1066   } else {
1067     tooltip.style.display = "none"
1068   }
1069 })
1070 </script>
1071 {% endif %}     
1072
1073 {% if task.type == "md" and task.md_mdpdb %}
1074 <script>
1075 window.addEventListener("resize",
1076      function (event) {
1077      stage.handleResize();
1078      },false);
1079
1080       var stage = new NGL.Stage("viewport_traj");
1081       stage.setParameters( { backgroundColor: "white" } );
1082       stage.setParameters( { cameraType: "orthographic" } ); 
1083       var traj;
1084       var player;
1085       stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/file_MD000.pdb", { 
1086        asTrajectory: true } ) .then( function( o ){
1087         o.setName ("unres_md");
1088         o.addRepresentation( "backbone",{ color:
1089        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
1090         });
1091         o.addRepresentation( "licorice",{ color:
1092        "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
1093         });        
1094         o.autoView();
1095         o.addTrajectory();
1096       });
1097
1098             var toggleSidechains = document.getElementById( "toggleSidechains1" );
1099             toggleSidechains.addEventListener( "click", function(){
1100                                                         stage.getRepresentationsByName( "licorice" ).list.forEach( function( repre ){
1101                                                                         repre.setVisibility( !repre.visible );
1102                                                         } );
1103             } );
1104
1105
1106       function numberWithCommas(x) {
1107                 return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
1108       }
1109       var toggleRunMDs = document.getElementById( "toggleRunMDs" );
1110       var isRunning = false;
1111       toggleRunMDs.addEventListener( "click", function(){
1112          var trajComp = stage.getComponentsByName("unres_md").list[0].trajList[0];
1113          var player = new NGL.TrajectoryPlayer(trajComp.trajectory, {timeout: 10, mode: "once"});
1114                                 if( !isRunning ){
1115                                         player.play();
1116                                         isRunning = true;
1117
1118                     trajComp.signals.frameChanged.add(function(){
1119                       var fnum=trajComp.trajectory.currentFrame;                   
1120                       clipRange.value = fnum;
1121                       clipRange_val.innerHTML = numberWithCommas(parseInt(clipRange.value*1));
1122                     });
1123
1124                                 }else{
1125                                         player.play();
1126                                         player.pause();
1127                                         isRunning = false;
1128                                 }
1129       } );      
1130       var clipRange = document.getElementById( "clipRange" );
1131       var clipRange_val = document.getElementById( "clipRange_val" );
1132       clipRange.oninput = function( e ){
1133                 var trajComp = stage.getComponentsByName("unres_md").list[0].trajList[0];
1134                 trajComp.setFrame(e.target.value)
1135                 clipRange_val.innerHTML = numberWithCommas(parseInt(e.target.value*1));
1136       };      
1137
1138 </script>
1139 {% endif %}     
1140
1141
1142 {% endblock %}