1 {% extends "base.html" %}
3 {% load i18n lazysignup_tags %}
6 {% if user|is_lazy_user %}
7 <ul class="list-group">
9 <li class="list-group-item new-task-item task-item">
11 <div class="col-md-2 form-group">
12 <form action="/refresh_done/" method="post">
14 <input type="submit" class="btn" value="Refresh" name="refreshbtn">
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 %}
28 waiting in the queue to start
37 <h3> Task <b>{{ task.name }}</b></h3>
38 Created {{ task.created_date }}
39 <ul class="list-group">
41 <li class="list-group-item task-item">
42 <div class="col-md-4"> done ?</div>
43 <div class="col-md-8">
45 <span class="fa fa-check-square-o"></span>
47 {% if task.running > 0 %}
48 <span class="fa fa-spinner
52 <span class="fa fa-square-o"></span>
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" >
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>
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>
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>
79 <li class="list-group-item task-item">
80 <div class="col-md-4"> secondary structure
82 <div class="col-md-8 monospace">{{ task.md_2d}}</div>
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>
92 {% if task.type == "min" %}
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
184 {% if task.md_lang == "berendsen" %}
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>
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>
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>
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>
212 {% if task.type == "remd" %}
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>
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>
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>
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>
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>
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>
239 <li class="list-group-item task-item">
240 <div class="col-md-6"> respa </div>
241 <div class="col-md-6">{{ task.md_respa}}</div>
243 <li class="list-group-item task-item">
244 <div class="col-md-6"> nstep </div>
245 <div class="col-md-6">{{ task.md_nstep}}</div>
247 <li class="list-group-item task-item">
248 <div class="col-md-6"> ntwe </div>
249 <div class="col-md-6">{{ task.md_ntwe}}</div>
251 <li class="list-group-item task-item">
252 <div class="col-md-6"> nstex </div>
253 <div class="col-md-6">{{ task.remd_nstex}}</div>
255 <li class="list-group-item task-item">
256 <div class="col-md-6"> ntwx </div>
257 <div class="col-md-6">{{ task.md_ntwx}}</div>
259 <li class="list-group-item task-item">
260 <div class="col-md-6"> dt </div>
261 <div class="col-md-6">{{ task.md_dt}}</div>
263 <li class="list-group-item task-item">
264 <div class="col-md-6"> thermostat </div>
265 <div class="col-md-6">{{ task.md_lang}}</div>
268 {% if task.md_lang == "berendsen" %}
270 <li class="list-group-item task-item">
271 <div class="col-md-6"> tau </div>
272 <div class="col-md-6">{{ task.md_tau}}</div>
277 <li class="list-group-item task-item">
278 <div class="col-md-6"> scal_fric </div>
279 <div class="col-md-6">{{ task.md_scal_fric}}</div>
284 <li class="list-group-item task-item">
285 <div class="col-md-6"> RESPA </div>
286 <div class="col-md-6">{{ task.md_respa}}</div>
289 <li class="list-group-item task-item">
290 <div class="col-md-6"> temperatures </div>
291 <div class="col-md-6">{{ task.remd_multi_t}}</div>
293 <li class="list-group-item task-item">
294 <div class="col-md-6"> multiplex </div>
295 <div class="col-md-6">{{ task.remd_multi_m}}</div>
297 <li class="list-group-item task-item">
298 <div class="col-md-6"> temperature for clustering</div>
299 <div class="col-md-6">{{ task.remd_cluter_temp}}</div>
301 {% if task.saxs_data != "" %}
302 <li class="list-group-item task-item">
303 <div class="col-md-6"> wsaxs </div>
304 <div class="col-md-6">{{ task.wsaxs }}</div>
306 <li class="list-group-item task-item">
307 <div class="col-md-6"> scal_rad (saxs) </div>
308 <div class="col-md-6">{{ task.scal_rad }}</div>
310 <li class="list-group-item task-item">
311 <div class="col-md-6"> saxs distribution </div>
312 <div class="col-md-6"><pre> {{ task.saxs_data }}</pre></div>
318 <li class="list-group-item task-item">
319 <div class="col-md-6"> Box X Y Z</div>
320 <div class="col-md-2">{{ task.boxx}}</div>
321 <div class="col-md-2">{{ task.boxy}}</div>
322 <div class="col-md-2">{{ task.boxz}}</div>
329 <li class="list-group-item task-item">
330 <div class="col-md-4"> Directory </div>
331 <div class="col-md-8">
332 <a href="/myfiles/list/{{task.jobdirname}}/">
333 {{ task.jobdirname }}
341 {% if task.type == "min" %}
343 <li class="list-group-item task-item">
344 <div class="col-md-2"> Etot </div>
345 <div class="col-md-10">{{ task.etot }}</div>
348 <li class="list-group-item task-item">
349 <div class="col-md-2"> UNRES model </div>
350 <div class="col-md-10">
352 href="/myfiles/download-file/{{task.jobdirname}}/unres.pse">
354 src="/myfiles/download-file/{{task.jobdirname}}/unres.png"
355 width="500"></a> </div>
359 <li class="list-group-item task-item">
360 <div class="col-md-2"> Structure overlap </div>
361 <div class="col-md-10"> <img
362 src="/myfiles/download-file/{{task.jobdirname}}/unres_overlap.png"
366 <li class="list-group-item task-item">
367 <div class="col-md-2"> Structure overlap NGL viewer</div>
368 <div class="col-md-10" id="viewport_min"
369 style="width:500px;height:500px;">
372 <li class="list-group-item task-item">
373 <div class="col-md-12">
374 <button id="toggleAllatom">Input structure on/off</button>
375 <button id="toggleSidechains2">Side-chains on/off</button>
380 <li class="list-group-item task-item">
381 <div class="col-md-2"> Results </div>
382 <div class="col-md-10">{{ task.results_text|linebreaks }}</div>
385 {% if task.type == "md" %}
387 <li class="list-group-item task-item">
388 <div class="col-md-2"> Temperature histogram </div>
389 <div class="col-md-10"> <img
390 src="/myfiles/download-file/{{task.jobdirname}}/temp_hist.png"
394 <li class="list-group-item task-item">
395 <div class="col-md-2"> Potential energy </div>
396 <div class="col-md-10"> <img
397 src="/myfiles/download-file/{{task.jobdirname}}/md_ene.png"
401 <li class="list-group-item task-item">
402 <div class="col-md-2"> Movie </div>
403 <div class="col-md-10">
405 <video width="500" height="400" preload controls>
407 src="/myfiles/download-file/{{task.jobdirname}}/md.ogv"
408 type="video/ogg; codecs=theora"> </source>
414 {% if task.md_mdpdb %}
415 <li class="list-group-item task-item">
416 <div class="col-md-2"> Trajectory NGL viewer</div>
417 <div class="col-md-10" id="viewport_traj"
418 style="width:500px;height:500px;">
421 <li class="list-group-item task-item">
422 <div class="col-md-6">
423 <input id="clipRange" type="range" value=0 min=0 max= {% widthratio task.md_nstep task.md_ntwx 1 %} step=1 ></input><span id="clipRange_val">0</span> frame
425 <div class="col-md-6">
426 <button id="toggleRunMDs">run/pause MD</button>
427 <button id="toggleSidechains1">side-chains on/off</button>
433 <li class="list-group-item task-item">
434 <div class="col-md-2"> Radius of gyration based
435 on C<sup>α</sup> coordinates </div>
436 <div class="col-md-10"> <img
437 src="/myfiles/download-file/{{task.jobdirname}}/md_gyr.png"
443 {% if task.md_pdbref %}
444 <li class="list-group-item task-item">
445 <div class="col-md-2"> RMSD </div>
446 <div class="col-md-10"> <img
447 src="/myfiles/download-file/{{task.jobdirname}}/md_rms.png"
451 <li class="list-group-item task-item">
452 <div class="col-md-2"> fraction of native
453 side-chain concacts </div>
454 <div class="col-md-10"> <img
455 src="/myfiles/download-file/{{task.jobdirname}}/md_fracn.png"
461 {% if task.md_start == "pdbstart" %}
462 <li class="list-group-item task-item">
463 <div class="col-md-2"> fluctuations </div>
464 <div class="col-md-10"> <img
465 src="/myfiles/download-file/{{task.jobdirname}}/fluct_plot.png"
469 <li class="list-group-item task-item">
470 <div class="col-md-2"> fluctuations putty on
471 starting structure</div>
472 <div class="col-md-10">
474 href="/myfiles/download-file/{{task.jobdirname}}/fluct.pse">
476 src="/myfiles/download-file/{{task.jobdirname}}/fluct.png"
477 width="500"></a> </div>
480 <li class="list-group-item task-item">
481 <div class="col-md-2"> fluctuations putty on
482 starting structure NGL viewer</div>
483 <div class="col-md-10" id="viewport_putty"
484 style="width:500px;height:500px;">
495 {% if task.type == "remd" %}
497 <li class="list-group-item task-item">
498 <div class="col-md-2"> Energy histogram </div>
499 <div class="col-md-10"> <img
500 src="/myfiles/download-file/{{task.jobdirname}}/remd_ene_hist.png"
504 <li class="list-group-item task-item">
505 <div class="col-md-2"> Energy vs. temperature </div>
506 <div class="col-md-10"> <img
507 src="/myfiles/download-file/{{task.jobdirname}}/remd_Tene.png"
511 <li class="list-group-item task-item">
512 <div class="col-md-2"> Cv vs. temperature </div>
513 <div class="col-md-10"> <img
514 src="/myfiles/download-file/{{task.jobdirname}}/remd_cv.png"
518 {% if task.md_pdbref %}
520 <li class="list-group-item task-item">
521 <div class="col-md-2"> Average RMSD vs. temperature </div>
522 <div class="col-md-10"> <img
523 src="/myfiles/download-file/{{task.jobdirname}}/remd_rmsd.png"
527 <li class="list-group-item task-item">
528 <div class="col-md-2"> potential energy vs. RMSD</div>
529 <div class="col-md-10"> <img
530 src="/myfiles/download-file/{{task.jobdirname}}/remd_ene_rms.png"
534 <li class="list-group-item task-item">
535 <div class="col-md-2"> RMSD vs. step*replica
536 colored by bath temperature</div>
537 <div class="col-md-10"> <img
538 src="/myfiles/download-file/{{task.jobdirname}}/remd_step_rms.png"
545 <li class="list-group-item task-item">
546 <div class="col-md-2"> exchanges (walk in T) </div>
547 <div class="col-md-10"> <img
548 src="/myfiles/download-file/{{task.jobdirname}}/remd_ex.png"
552 {% if task.saxs_data != "" %}
553 <li class="list-group-item task-item">
554 <div class="col-md-2"> P(r) of input SAXS data and
555 calculated for 5 models and the input pdb</div>
556 <div class="col-md-10"> <img
557 src="/myfiles/download-file/{{task.jobdirname}}/saxs.png"
562 <li class="list-group-item task-item">
563 <div class="col-md-4">
564 <button onclick="plusDivs(-1)">❮</button>
566 <div class="col-md-6">
569 <div class="col-md-2">
570 <button onclick="plusDivs(1)">❯</button>
575 <li class="list-group-item task-item">
576 <div class="col-md-2"> model1 after conversion
578 {{ task.remd_model1|linebreaks }}
580 <div class="col-md-10">
582 href="/myfiles/download-file/{{task.jobdirname}}/MODEL1.pdb">
584 src="/myfiles/download-file/{{task.jobdirname}}/model1.png" width="500">
589 <li class="list-group-item task-item">
590 <div class="col-md-2"> model2 after conversion
592 {{ task.remd_model2|linebreaks }}
594 <div class="col-md-10">
596 href="/myfiles/download-file/{{task.jobdirname}}/MODEL2.pdb">
598 src="/myfiles/download-file/{{task.jobdirname}}/model2.png" width="500">
603 <li class="list-group-item task-item">
604 <div class="col-md-2"> model3 after conversion
606 {{ task.remd_model3|linebreaks }}
608 <div class="col-md-10">
610 href="/myfiles/download-file/{{task.jobdirname}}/MODEL3.pdb">
612 src="/myfiles/download-file/{{task.jobdirname}}/model3.png" width="500">
617 <li class="list-group-item task-item">
618 <div class="col-md-2"> model4 after conversion
620 {{ task.remd_model4|linebreaks }}
622 <div class="col-md-10">
624 href="/myfiles/download-file/{{task.jobdirname}}/MODEL4.pdb">
626 src="/myfiles/download-file/{{task.jobdirname}}/model4.png" width="500">
631 <li class="list-group-item task-item">
632 <div class="col-md-2"> model5 after conversion
634 {{ task.remd_model5|linebreaks }}
636 <div class="col-md-10">
638 href="/myfiles/download-file/{{task.jobdirname}}/MODEL5.pdb">
640 src="/myfiles/download-file/{{task.jobdirname}}/model5.png" width="500">
650 <script src="/static/jquery.min.js"></script>
653 $('.majorpointslegend').click(function(){
654 $(this.parentNode).find('.hiders').toggle();
655 if($(this.parentNode).find('.majorpointslegend').text()=='Show input parameters'){
656 $(this.parentNode).find('.majorpointslegend').text('Hide input parameters');
658 $(this.parentNode).find('.majorpointslegend').text('Show input parameters');
663 {% if task.type == "remd" %}
666 showDivs(slideIndex);
668 function plusDivs(n) {
669 showDivs(slideIndex += n);
672 function showDivs(n) {
674 var x = document.getElementsByClassName("model");
675 if (n > x.length) {slideIndex = 1}
676 if (n < 1) {slideIndex = x.length}
677 for (i = 0; i < x.length; i++) {
678 x[i].style.display = "none";
680 x[slideIndex-1].style.display = "block";
685 {% if not task.done %}
689 data:{csrfmiddlewaretoken: '{{ csrf_token }}'},
690 url: "/refresh_done/",
692 success: function(data) {
693 document.location.reload();
695 complete: function() {
696 // Schedule the next request when the current one's complete
697 setTimeout(worker, 30000);
701 $(document).ready(function() {
702 // run the first time; all subsequent calls will take care of themselves
703 setTimeout(worker, 30000);
708 <script src="https://unpkg.com/ngl"></script>
709 {% if task.type == "min" %}
711 window.addEventListener("resize",
713 stage.handleResize();
716 var stage = new NGL.Stage("viewport_min");
717 stage.setParameters( { backgroundColor: "white" } );
719 stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/file_GB000.pdb" ,{defaultRepresentation: false}) .then( function( o ){
720 o.addRepresentation( "backbone",{ color:
721 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
723 o.addRepresentation( "licorice",{ color:
724 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange","red"]
729 stage.loadFile("/myfiles/download-file/{{task.jobdirname}}/plik.pdb",{defaultRepresentation: false}) .then( function( o ){
730 o.addRepresentation( "backbone",{ name: "allatom", color:
731 "residueindex",colorScale:["blue","cyan", "green","yellow","orange", "red"]
733 o.addRepresentation( "line",{ name: "allatomsc", color:
734 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
735 ,sele:"not hydrogen and sidechainAttached"
739 ]).then(function (ol) {
740 ol[ 0 ].superpose(ol[ 1 ], false, ".CA")
746 var toggleAll = document.getElementById( "toggleAllatom" );
747 toggleAll.addEventListener( "click", function(){
749 stage.getRepresentationsByName(
750 "allatom" ).list.forEach( function( repre ){
751 repre.setVisibility( !repre.visible );
754 stage.getRepresentationsByName(
755 "allatomsc" ).list.forEach( function( repre ){
756 repre.setVisibility( !repre.visible );
760 var toggleSidechains = document.getElementById("toggleSidechains2" );
761 toggleSidechains.addEventListener( "click", function(){
764 stage.getRepresentationsByName(
765 "allatomsc" ).list.forEach( function( repre ){
766 repre.setVisibility( !repre.visible );
770 stage.getRepresentationsByName("licorice").list.forEach( function( repre ){
771 repre.setVisibility( !repre.visible );
778 {% if task.type == "md" and task.md_start == "pdbstart" %}
780 window.addEventListener("resize",
782 stage.handleResize();
785 var stage = new NGL.Stage("viewport_putty");
786 stage.setParameters( { backgroundColor: "white" } );
788 var tooltip = document.createElement("div")
789 Object.assign(tooltip.style, {
793 pointerEvents: "none",
794 backgroundColor: "rgba( 0, 0, 0, 0.6 )",
797 fontFamily: "sans-serif"
799 document.body.appendChild(tooltip)
801 stage.loadFile("/myfiles/download-file/{{task.jobdirname}}/plik_bf.pdb", {defaultRepresentation: false}).then
803 o.addRepresentation("tube",{ color: "bfactor" , scale: 0.25,
806 colorScale:["blue","cyan", "green", "yellow","orange", "red"] });
807 o.addRepresentation("licorice",{sele:"sidechainAttached and CYS and not hydrogen"});
811 // remove default hoverPick mouse action
812 stage.mouseControls.remove("hoverPick")
814 stage.signals.hovered.add(function (pickingProxy) {
815 if (pickingProxy && (pickingProxy.atom || pickingProxy.bond)) {
816 var atom = pickingProxy.atom || pickingProxy.closestBondAtom
817 var mp = pickingProxy.mouse.position
818 var bf= atom.bfactor.toFixed(2)
819 tooltip.innerText = atom.qualifiedName()+" Fluctuation="+ bf
820 tooltip.style.bottom = window.innerHeight - mp.y + 3 + "px"
821 tooltip.style.left = mp.x + 3 + "px"
822 tooltip.style.display = "block"
824 tooltip.style.display = "none"
830 {% if task.type == "md" and task.md_mdpdb %}
832 window.addEventListener("resize",
834 stage.handleResize();
837 var stage = new NGL.Stage("viewport_traj");
838 stage.setParameters( { backgroundColor: "white" } );
839 stage.setParameters( { cameraType: "orthographic" } );
842 stage.loadFile( "/myfiles/download-file/{{task.jobdirname}}/file_MD000.pdb", {
843 asTrajectory: true } ) .then( function( o ){
844 o.setName ("unres_md");
845 o.addRepresentation( "backbone",{ color:
846 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
848 o.addRepresentation( "licorice",{ color:
849 "residueindex",colorScale:["blue","cyan", "green", "yellow","orange", "red"]
855 var toggleSidechains = document.getElementById( "toggleSidechains1" );
856 toggleSidechains.addEventListener( "click", function(){
857 stage.getRepresentationsByName( "licorice" ).list.forEach( function( repre ){
858 repre.setVisibility( !repre.visible );
863 function numberWithCommas(x) {
864 return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
866 var toggleRunMDs = document.getElementById( "toggleRunMDs" );
867 var isRunning = false;
868 toggleRunMDs.addEventListener( "click", function(){
869 var trajComp = stage.getComponentsByName("unres_md").list[0].trajList[0];
870 var player = new NGL.TrajectoryPlayer(trajComp.trajectory, {timeout: 10, mode: "once"});
875 trajComp.signals.frameChanged.add(function(){
876 var fnum=trajComp.trajectory.currentFrame;
877 clipRange.value = fnum;
878 clipRange_val.innerHTML = numberWithCommas(parseInt(clipRange.value*1));
887 var clipRange = document.getElementById( "clipRange" );
888 var clipRange_val = document.getElementById( "clipRange_val" );
889 clipRange.oninput = function( e ){
890 var trajComp = stage.getComponentsByName("unres_md").list[0].trajList[0];
891 trajComp.setFrame(e.target.value)
892 clipRange_val.innerHTML = numberWithCommas(parseInt(e.target.value*1));