ICM Web GB Work Status Report Apr 8 2015¶
- Link: ICM Web GB
- Local: ~/Sites/icmgb/
Components¶
The web interface includes three panels, each with buttons to invoke interaction/computation:
- Panel 1: embeded BioDalliance genome browser, with an overlay of brush slider to pick a genome segment range, implemented with d3.js
- Panel 2: energy graph with nuc position widgets, pure javascript interaction at client side, also implemented with d3.js
- Panel 3: Jmol view: retrieve server side data (icm.occ.xyz) and visualize using Jmol script (nuc-cores.txt).
How to use¶
- Panel 1: move the yellow slider to pick genome range, use button “zoom in” and “zoom out” to zoom the view. After zoom in, click the “send sequence to ICM” button to send sequence in slider range to server (handled by server side submit.php). After sequence is received by server, shell script run-icm.tcsh and mkBigWigs.tcsh are called to create data. Data are then retrieved and show in Panel 1 (all icm tracks such as Tilt.bw), in Panel 2 ( icm.dat as energy chart, positions.dat as nucleosome widgets), and Panel 3 (icm.occ.xyz to show in jmol applet).
- Panel 2: icm.dat is retrieved to draw the energy chart, and positions.dat is retrieved to draw the nuc widgets. If user moved nuc widgets, the button “send nuc position to ICM” can be clicked to send new positions to server (handled by fold.php). After the positions is received by server, shell script run-fold.tcsh is called to re-fold the chromatin. A new icm.occ.xyz and icm.dat will be created.
- Panel 3: click the “re run” button to run the new chromatin folding computed and saved as icm.occ.xyz
Issues need review and/or fix¶
- Somehow the Jmol.js Tom originally used conflicts with the d3.js brush slider implementation, so a new JMol package (version 13.0.18, the Java version, not the later JS versions) is used instead. To run Java applet, it’s better to add the site “http://dna.engr.latech.edu/” to Java Security site list. See this webpage for instructions.
- Tom’s run-icm.tcsh is splited into two parts: run-icm and mkBigWig. The mkBigWig accepts genome sequence chr, start, end as arguements, and create bigwig files from data in icm.par. But still, these bigwig files are not shown. It’s clear that they are added as new tracks into dalliance browser, but somehow still behaves like the starting position is not set properly.
- After run-fold.tcsh, the neoclesomes are missing (click ‘rerun’ in panel 3 to see)
- Session: No session feature implemented, data are created into a ‘./tmpdata’ folder at server side
- nuc positions sent to server is a simple array of positions as integer number, but can be configured to send as more complex data, with specific Xnuc dat for each nuc.
Client-server communication: send sequences and run-icm¶
After button “send sequences to ICM” button is clicked in Panel 1, javascript sends sequence data to server, example data sent:
{chr: "chr22", start: 30014247, end: 30015736, seq: "AATGAGCAAGGTGCTGATGCAAGGAGATGGCAGATGCATTTTGAAAAAAA…CCCATGGGTTTTAAGTAGTGCCTATGGATGGCATGGGTGCCACTACTCA"}
Data will be handled by server side script submit.php. Example output:
posting to submit.php returns:
Array
(
[0] => start of run-icm.tcsh
[1] => 1489 147 19 166 6
[2] => 109 269 587 786 1139 1311
[3] => end of run-icm.tcsh
)
tcsh mkBigWigs.tcsh chr22 30014247 30015736 2>&1
Array
(
[0] => Shear Stretch Stagger Buckle Prop-Tw Opening Shift Slide Rise Tilt Roll Twist
[1] => file name and fields Shear.in 6
[2] => file name and fields Stretch.in 6
[3] => file name and fields Stagger.in 6
[4] => file name and fields Buckle.in 6
[5] => file name and fields Prop-Tw.in 6
[6] => file name and fields Opening.in 6
[7] => file name and fields Shift.in 6
[8] => file name and fields Slide.in 6
[9] => file name and fields Rise.in 6
[10] => file name and fields Tilt.in 6
[11] => file name and fields Roll.in 6
[12] => file name and fields Twist.in 6
[13] => Buckle
[14] => Prop-Tw
[15] => Roll
[16] => Shift
[17] => Stagger
[18] => Tilt
[19] => Opening
[20] => Rise
[21] => Shear
[22] => Slide
[23] => Stretch
[24] => Twist
)
Client-server communication: send nuc positions and run-fold¶
After button “send nuc positions to ICM” is clicked in Panel 2, javascript sends nuc positions to server. Example data sent:
[109, 269, 587, 786, 1139, 1311]
Data will be handled by server side script fold.php. Example output:
posting to fold.php returns:
Array
(
[0] => 109
[1] => 269
[2] => 587
[3] => 786
[4] => 1139
[5] => 1311
)
tcsh run-fold.tcsh 109 269 587 786 1139 1311 2>&1
Array
(
[0] => start of run-fold.tcsh
[1] => equilibrium par filename:
[2] => read 16 equilib HPs from ../DAT/X0/MD-B.par
[3] => deformed par filename:
[4] => read deformed HPs: 147
[5] => sequence file name:
[6] => read 1489 values from seqin.txt
[7] => input the nucleosome start sites:
[8] => a negative value ends input
[9] => output file name:
[10] => writing to icm.par
[11] => equilibrium par filename:
[12] => read 16 equilib HPs from /home/www/htdocs/icm/prog//DAT/X0/MD-B.par
[13] => deformed par filename:
[14] => read deformed HPs: 147
[15] => force constants filename:
[16] => read Force Constant Parmameters: 16
[17] => sequence filename:
[18] => read bases: 1489
[19] => Energy output file name:
[20] => will write to E.dat
[21] => end of run-fold.tcsh
)