Difference between revisions of "Communicating with GenomeView"
Thomas Admin (talk | contribs) |
Thomas Admin (talk | contribs) |
||
Line 1: | Line 1: | ||
− | < | + | It is '''important''' that you set <code>integration:monitorJavaScript=true</code> in your configuration file. Only if you add that line to the configuration file you specify, will communication work. |
− | + | ==Controlling GenomeView using JavaScript (recommended)== | |
− | |||
− | |||
− | |||
− | |||
− | |||
We have a <a href="http://genomeview.org/jsdemo">demo page set up</a> that showcases the various aspects you may want to use when embedding GenomeView as an applet into your web platform. | We have a <a href="http://genomeview.org/jsdemo">demo page set up</a> that showcases the various aspects you may want to use when embedding GenomeView as an applet into your web platform. | ||
Line 38: | Line 33: | ||
Assuming there is a GenomeView webstart instance started, You can now use the java script methods described above to manipulate it. | Assuming there is a GenomeView webstart instance started, You can now use the java script methods described above to manipulate it. | ||
− | + | ==Controlling GenomeView using a port== | |
The java script is implemented as a local server that listens on port 2223, so you could alternatively directly control GenomeView by sending instructions to that port. | The java script is implemented as a local server that listens on port 2223, so you could alternatively directly control GenomeView by sending instructions to that port. | ||
Revision as of 00:21, 16 November 2013
It is important that you set integration:monitorJavaScript=true
in your configuration file. Only if you add that line to the configuration file you specify, will communication work.
Controlling GenomeView using JavaScript (recommended)
We have a <a href="http://genomeview.org/jsdemo">demo page set up</a> that showcases the various aspects you may want to use when embedding GenomeView as an applet into your web platform.
Supported instruction set, see the <a href="http://genomeview.org/jsdemo"> demo page</a> for examples on how to use them.
Instruction | Description |
---|---|
launchGV(url) | Launch GenomeView with the file at the specified url as configuration file. If no url is specified an empty config is loaded with integration:monitorJavaScript=true . See <a href="http://genomeview.org/jsdemo/testlaunch.html">example</a> for more details. |
loadGV(url) | Load the data at the specified url |
unloadGV() | Unload all data that is currently loaded |
sessionGV(url) | Load the GenomeView session at the specified URL |
positionGV(position) | Move the visible region to the specified location. The position is in the format [entry]:[start position]:[end position] The entry part is optional can be omitted in which case it becomes [start position]:[end position] |
isAlive(callback) | Check whether a GenomeView instance is alive. callback should be a javascript function that you define that will be called by the script and will have a variable isAlive available that you can use. See the <a href="http://genomeview.org/jsdemo/testalive.html">example </a> for more details |
setInstanceID(id) | Set the GenomeView instance ID to be used in the next functions calls to the supplied argument. This is useful to communicate with multiple GenomeView instances at once. See the <a href="http://genomeview.org/jsdemo/testlaunch.html">example</a> for more details. |
setInstructAllInstancesGV | Any commands after this function call will be send to all GenomeView instances |
Deprecated legacy instructions.
Instruction | Description |
---|---|
startGV(gv_url,gv_loc, gv_config,gv_extra,a_width,a_height ) | Start regular applet with the parameters described above |
startMiniGV(gv_url,gv_loc, gv_config,gv_extra,a_width,a_height ) | Start minimal applet with the parameters as described above. The minimal applet has no side bar and no menu |
Controlling GenomeView webstart using JavaScript
Include the GenomeView javascript file
<script type="text/javascript" src="http://genomeview.org/start/genomeview.js"></script>
In java script, set instanceID='ALL'
Assuming there is a GenomeView webstart instance started, You can now use the java script methods described above to manipulate it.
Controlling GenomeView using a port
The java script is implemented as a local server that listens on port 2223, so you could alternatively directly control GenomeView by sending instructions to that port.
The format of an instruction is GET /genomeview-ALL/[instruction]/[argument]
Some examples:
Load the C. elegans demo instance
GET /genomeview-ALL/session/http://www.broadinstitute.org/software/genomeview/demo/c_elegans/session.php
Position the current visible window to 10000-20000
GET /genomeview-ALL/position/10000:20000
Unload all data:
GET /genomeview-ALL/unload
Full working example code in Java
Socket gv = new Socket("localhost", 2223);
PrintWriter pw=new PrintWriter(gv.getOutputStream());
/*pw.println("GET /genomeview-ALL/session/http://www.broadinstitute.org/software/genomeview/demo/c_elegans/session.php");*/
//pw.println("GET /genomeview-ALL/unload");
pw.println("GET /genomeview-ALL/position/10000:20000");
pw.flush();
gv.close();
Available instructions:
Instruction | Description |
---|---|
GET /genomeview-ALL/load/[URL] | Load the data at the specified url |
GET /genomeview-ALL/unload (no argument) | Unload all data that is currently loaded |
GET /genomeview-ALL/session/[URL] | Load the GenomeView session at the specified URL |
GET /genomeview-ALL/position/[position] | Move the visible region to the specified location. The position is in the format [entry]:[start position]:[end position] The entry part is optional can be omitted in which case it becomes [start position]:[end position] |