Difference between revisions of "Communicating with GenomeView"
Thomas Admin (talk | contribs) |
Thomas Admin (talk | contribs) |
||
Line 2: | Line 2: | ||
==Controlling GenomeView using JavaScript (recommended)== | ==Controlling GenomeView using JavaScript (recommended)== | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | Enter the HTML ma | ||
+ | {| | ||
+ | ! 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 <code>integration:monitorJavaScript=true</code>. 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 <code>[entry]:[start position]:[end position]</code> The entry part is optional can be omitted in which case it becomes <code>[start position]:[end position]</code> | ||
+ | |- | ||
+ | | isAlive(callback) | ||
+ | | Check whether a GenomeView instance is alive. <code>callback</code> should be a javascript function that you define that will be called by the script and will have a variable <code>isAlive</code> 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 | ||
+ | |} | ||
+ | rkup here | ||
<p>Deprecated legacy instructions.</p> | <p>Deprecated legacy instructions.</p> | ||
<table> | <table> |
Revision as of 00:35, 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)
Enter the HTML ma
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 |
rkup here
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] |