CRytoscape: an early release
3
0
Entering edit mode
Paul Shannon ★ 1.1k
@paul-shannon-578
Last seen 9.6 years ago
Building upon some exemplary work by Jan Bot (the CytoscapeRPC plugin) and Duncan Lang (XMLRPC package) we now have a good start on controlling Cytoscape 2.7 from R. Much remains to be done. Once this version gets some mileage on it, I will convert its current procedural style into proper S4 classes, and submit the package to Bioconductor. The biggest deficit in the package that I am aware of occurs in sending large graphs from R to Cytoscape take longer than it should. Some tuning of XMLRPC may be needed to fix this. All the code (the Cytoscape plugin, the XMLRPC package (with some of my own modifications) and the new CRytoscape package) can be found here: http://db.systemsbiology.net:8080/cytoscape/gaggle/test/cy2rpc/publi c/index.html Lots of documentation is provided, as well as a test script which demonstrates how to use the package. Suggestions, complaints, rants and bug reports are all welcome. - Paul
convert convert • 1.6k views
ADD COMMENT
0
Entering edit mode
@michael-lawrence-3846
Last seen 2.4 years ago
United States
Hi Paul, This is cool stuff. I'm wondering why you went with the XML-RPC approach as opposed to direct embedding via e.g. SJava? I guess it's a pure R solution, without worrying about technical complications from the R-Java bridge. Do you envision running Cytoscape and R in two separate processes? I could see a two-tiered interface, with simple commands depending only on the RPC interface, while more control could be gained through direct embedding via the JNI, if the user wanted to deal with the complications. Michael On Thu, Jul 15, 2010 at 7:33 PM, Paul Shannon <pshannon@systemsbiology.org>wrote: > Building upon some exemplary work by Jan Bot (the CytoscapeRPC plugin) and > Duncan Lang (XMLRPC package) we now have a good start on controlling > Cytoscape 2.7 from R. > > Much remains to be done. Once this version gets some mileage on it, I will > convert its current procedural style into proper S4 classes, and submit the > package to Bioconductor. > > The biggest deficit in the package that I am aware of occurs in sending > large graphs from R to Cytoscape take longer than it should. Some tuning of > XMLRPC may be needed to fix this. > > All the code (the Cytoscape plugin, the XMLRPC package (with some of my own > modifications) and the new CRytoscape package) can be found here: > > > http://db.systemsbiology.net:8080/cytoscape/gaggle/test/cy2rpc/publi c/index.html > > Lots of documentation is provided, as well as a test script which > demonstrates how to use the package. > > Suggestions, complaints, rants and bug reports are all welcome. > > - Paul > > _______________________________________________ > Bioconductor mailing list > Bioconductor@stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: > http://news.gmane.org/gmane.science.biology.informatics.conductor > [[alternative HTML version deleted]]
ADD COMMENT
0
Entering edit mode
Hi Michael, Thanks for your comments. In an earlier version of a bridge between Cytoscape & R I used an approach much like you suggest: I used RJava and RMI. Two problems kept cropping up. First, linux users (and sometimes others) often reported a lot of fuss installing RJava; perhaps SJava would have been better. Second, though RMI allowed Cytoscape & R to run loosely coupled, the connection was fragile, and both programs had to be restarted if the connection was lost. With XML-RPC, we seem to have the best of both worlds: control of Cytoscape as if it and R were running in-process; robustness when the connection gets lost, or if either program is shut down. I admit to a bias towards loose coupling. Tying two complicated programs tightly together scares me a bit. That said, your suggestion of a two-tiered interface is intriguing. Could your elaborate on "more control could be gained through direct embedding"? What kinds of control are you thinking of? I would be glad to consider this. Thanks! - Paul On Jul 16, 2010, at 5:02 AM, Michael Lawrence wrote: > Hi Paul, > > This is cool stuff. I'm wondering why you went with the XML-RPC approach as opposed to direct embedding via e.g. SJava? I guess it's a pure R solution, without worrying about technical complications from the R-Java bridge. Do you envision running Cytoscape and R in two separate processes? > > I could see a two-tiered interface, with simple commands depending only on the RPC interface, while more control could be gained through direct embedding via the JNI, if the user wanted to deal with the complications. > > Michael > > On Thu, Jul 15, 2010 at 7:33 PM, Paul Shannon <pshannon at="" systemsbiology.org=""> wrote: > Building upon some exemplary work by Jan Bot (the CytoscapeRPC plugin) and Duncan Lang (XMLRPC package) we now have a good start on controlling Cytoscape 2.7 from R. > > Much remains to be done. Once this version gets some mileage on it, I will convert its current procedural style into proper S4 classes, and submit the package to Bioconductor. > > The biggest deficit in the package that I am aware of occurs in sending large graphs from R to Cytoscape take longer than it should. Some tuning of XMLRPC may be needed to fix this. > > All the code (the Cytoscape plugin, the XMLRPC package (with some of my own modifications) and the new CRytoscape package) can be found here: > > http://db.systemsbiology.net:8080/cytoscape/gaggle/test/cy2rpc/publ ic/index.html > > Lots of documentation is provided, as well as a test script which demonstrates how to use the package. > > Suggestions, complaints, rants and bug reports are all welcome. > > - Paul > > _______________________________________________ > Bioconductor mailing list > Bioconductor at stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor >
ADD REPLY
0
Entering edit mode
On Fri, Jul 16, 2010 at 7:43 AM, Paul Shannon <pshannon@systemsbiology.org>wrote: > Hi Michael, > > Thanks for your comments. > > In an earlier version of a bridge between Cytoscape & R I used an approach > much like you suggest: I used RJava and RMI. Two problems kept cropping > up. First, linux users (and sometimes others) often reported a lot of fuss > installing RJava; perhaps SJava would have been better. Second, though RMI > allowed Cytoscape & R to run loosely coupled, the connection was fragile, > and both programs had to be restarted if the connection was lost. > > With XML-RPC, we seem to have the best of both worlds: control of > Cytoscape as if it and R were running in-process; robustness when the > connection gets lost, or if either program is shut down. I admit to a bias > towards loose coupling. Tying two complicated programs tightly together > scares me a bit. > > That said, your suggestion of a two-tiered interface is intriguing. Could > your elaborate on "more control could be gained through direct embedding"? > What kinds of control are you thinking of? I would be glad to consider > this. > > I guess it's just that in my workflows I rarely need R and Cytoscape running in a separate process. I'll usually have R running and then want to fire up a visualization. Or have the external application embed R to generate some statistics. Direct embedding means to simply call the main() function of Cytoscape from R. Then just call the Cytoscape Java API. I made an unreleased package that used this to load a network from an R graph object and configure the visual mapping in Cytoscape. My assumption is that Cytoscape has a sufficiently stable API that minimizes concerns with coupling. Might be good to have an abstraction on the R side, so that other network programs could be integrated transparently. Like what was done for genome browsers with rtracklayer. Michael > Thanks! > > - Paul > > > On Jul 16, 2010, at 5:02 AM, Michael Lawrence wrote: > > > Hi Paul, > > > > This is cool stuff. I'm wondering why you went with the XML-RPC approach > as opposed to direct embedding via e.g. SJava? I guess it's a pure R > solution, without worrying about technical complications from the R-Java > bridge. Do you envision running Cytoscape and R in two separate processes? > > > > I could see a two-tiered interface, with simple commands depending only > on the RPC interface, while more control could be gained through direct > embedding via the JNI, if the user wanted to deal with the complications. > > > > Michael > > > > On Thu, Jul 15, 2010 at 7:33 PM, Paul Shannon < > pshannon@systemsbiology.org> wrote: > > Building upon some exemplary work by Jan Bot (the CytoscapeRPC plugin) > and Duncan Lang (XMLRPC package) we now have a good start on controlling > Cytoscape 2.7 from R. > > > > Much remains to be done. Once this version gets some mileage on it, I > will convert its current procedural style into proper S4 classes, and submit > the package to Bioconductor. > > > > The biggest deficit in the package that I am aware of occurs in sending > large graphs from R to Cytoscape take longer than it should. Some tuning of > XMLRPC may be needed to fix this. > > > > All the code (the Cytoscape plugin, the XMLRPC package (with some of my > own modifications) and the new CRytoscape package) can be found here: > > > > > http://db.systemsbiology.net:8080/cytoscape/gaggle/test/cy2rpc/publi c/index.html > > > > Lots of documentation is provided, as well as a test script which > demonstrates how to use the package. > > > > Suggestions, complaints, rants and bug reports are all welcome. > > > > - Paul > > > > _______________________________________________ > > Bioconductor mailing list > > Bioconductor@stat.math.ethz.ch > > https://stat.ethz.ch/mailman/listinfo/bioconductor > > Search the archives: > http://news.gmane.org/gmane.science.biology.informatics.conductor > > > > [[alternative HTML version deleted]]
ADD REPLY
0
Entering edit mode
Hi, for us one of the main concerns was that we wanted to be able to access Cytoscape from different programming languages, that is why we chose XML-RPC for our plug-in. I guess you'll have to give that up when implementing your solution. Jan On 07/16/2010 07:24 PM, Michael Lawrence wrote: > > > On Fri, Jul 16, 2010 at 7:43 AM, Paul Shannon > <pshannon@systemsbiology.org <mailto:pshannon@systemsbiology.org="">> wrote: > > Hi Michael, > > Thanks for your comments. > > In an earlier version of a bridge between Cytoscape & R I used an > approach much like you suggest: I used RJava and RMI. Two > problems kept cropping up. First, linux users (and sometimes > others) often reported a lot of fuss installing RJava; perhaps > SJava would have been better. Second, though RMI allowed > Cytoscape & R to run loosely coupled, the connection was fragile, > and both programs had to be restarted if the connection was lost. > > With XML-RPC, we seem to have the best of both worlds: control of > Cytoscape as if it and R were running in-process; robustness when > the connection gets lost, or if either program is shut down. I > admit to a bias towards loose coupling. Tying two complicated > programs tightly together scares me a bit. > > That said, your suggestion of a two-tiered interface is > intriguing. Could your elaborate on "more control could be gained > through direct embedding"? What kinds of control are you thinking > of? I would be glad to consider this. > > > I guess it's just that in my workflows I rarely need R and Cytoscape > running in a separate process. I'll usually have R running and then > want to fire up a visualization. Or have the external application > embed R to generate some statistics. Direct embedding means to simply > call the main() function of Cytoscape from R. Then just call the > Cytoscape Java API. I made an unreleased package that used this to > load a network from an R graph object and configure the visual mapping > in Cytoscape. > > My assumption is that Cytoscape has a sufficiently stable API that > minimizes concerns with coupling. Might be good to have an abstraction > on the R side, so that other network programs could be integrated > transparently. Like what was done for genome browsers with rtracklayer. > > Michael > > > > Thanks! > > - Paul > > > On Jul 16, 2010, at 5:02 AM, Michael Lawrence wrote: > > > Hi Paul, > > > > This is cool stuff. I'm wondering why you went with the XML- RPC > approach as opposed to direct embedding via e.g. SJava? I guess > it's a pure R solution, without worrying about technical > complications from the R-Java bridge. Do you envision running > Cytoscape and R in two separate processes? > > > > I could see a two-tiered interface, with simple commands > depending only on the RPC interface, while more control could be > gained through direct embedding via the JNI, if the user wanted to > deal with the complications. > > > > Michael > > > > On Thu, Jul 15, 2010 at 7:33 PM, Paul Shannon > <pshannon@systemsbiology.org <mailto:pshannon@systemsbiology.org="">> > wrote: > > Building upon some exemplary work by Jan Bot (the CytoscapeRPC > plugin) and Duncan Lang (XMLRPC package) we now have a good start > on controlling Cytoscape 2.7 from R. > > > > Much remains to be done. Once this version gets some mileage on > it, I will convert its current procedural style into proper S4 > classes, and submit the package to Bioconductor. > > > > The biggest deficit in the package that I am aware of occurs in > sending large graphs from R to Cytoscape take longer than it > should. Some tuning of XMLRPC may be needed to fix this. > > > > All the code (the Cytoscape plugin, the XMLRPC package (with > some of my own modifications) and the new CRytoscape package) can > be found here: > > > > > http://db.systemsbiology.net:8080/cytoscape/gaggle/test/cy2rpc/ public/index.html > > > > Lots of documentation is provided, as well as a test script > which demonstrates how to use the package. > > > > Suggestions, complaints, rants and bug reports are all welcome. > > > > - Paul > > > > _______________________________________________ > > Bioconductor mailing list > > Bioconductor@stat.math.ethz.ch > <mailto:bioconductor@stat.math.ethz.ch> > > https://stat.ethz.ch/mailman/listinfo/bioconductor > > Search the archives: > http://news.gmane.org/gmane.science.biology.informatics.conductor > > > > [[alternative HTML version deleted]]
ADD REPLY
0
Entering edit mode
@michael-lawrence-3846
Last seen 2.4 years ago
United States
Sure, that makes perfect sense. Socket-based IPC is commonly used for controlling applications from other environments, for reasons of simplicity. Every language has access to sockets. Then again, all popular languages have JNI-based bridges to Java. I once wrote a R <-> Java bridge based on SOAP, but was disappointed with its performance in highly interactive applications. It all depends on the use case, I guess. Michael On Fri, Jul 16, 2010 at 1:01 PM, Jan Bot <j.j.bot@tudelft.nl> wrote: > > Hi, > > for us one of the main concerns was that we wanted to be able to access > Cytoscape from different programming languages, that is why we chose XML-RPC > for our plug-in. I guess you'll have to give that up when implementing your > solution. > > Jan > > > On 07/16/2010 07:24 PM, Michael Lawrence wrote: > > > > On Fri, Jul 16, 2010 at 7:43 AM, Paul Shannon <pshannon@systemsbiology.org> > wrote: > >> Hi Michael, >> >> Thanks for your comments. >> >> In an earlier version of a bridge between Cytoscape & R I used an approach >> much like you suggest: I used RJava and RMI. Two problems kept cropping >> up. First, linux users (and sometimes others) often reported a lot of fuss >> installing RJava; perhaps SJava would have been better. Second, though RMI >> allowed Cytoscape & R to run loosely coupled, the connection was fragile, >> and both programs had to be restarted if the connection was lost. >> >> With XML-RPC, we seem to have the best of both worlds: control of >> Cytoscape as if it and R were running in-process; robustness when the >> connection gets lost, or if either program is shut down. I admit to a bias >> towards loose coupling. Tying two complicated programs tightly together >> scares me a bit. >> >> That said, your suggestion of a two-tiered interface is intriguing. Could >> your elaborate on "more control could be gained through direct embedding"? >> What kinds of control are you thinking of? I would be glad to consider >> this. >> >> > I guess it's just that in my workflows I rarely need R and Cytoscape > running in a separate process. I'll usually have R running and then want to > fire up a visualization. Or have the external application embed R to > generate some statistics. Direct embedding means to simply call the main() > function of Cytoscape from R. Then just call the Cytoscape Java API. I made > an unreleased package that used this to load a network from an R graph > object and configure the visual mapping in Cytoscape. > > My assumption is that Cytoscape has a sufficiently stable API that > minimizes concerns with coupling. Might be good to have an abstraction on > the R side, so that other network programs could be integrated > transparently. Like what was done for genome browsers with rtracklayer. > > Michael > > > >> Thanks! >> >> - Paul >> >> >> On Jul 16, 2010, at 5:02 AM, Michael Lawrence wrote: >> >> > Hi Paul, >> > >> > This is cool stuff. I'm wondering why you went with the XML-RPC approach >> as opposed to direct embedding via e.g. SJava? I guess it's a pure R >> solution, without worrying about technical complications from the R-Java >> bridge. Do you envision running Cytoscape and R in two separate processes? >> > >> > I could see a two-tiered interface, with simple commands depending only >> on the RPC interface, while more control could be gained through direct >> embedding via the JNI, if the user wanted to deal with the complications. >> > >> > Michael >> > >> > On Thu, Jul 15, 2010 at 7:33 PM, Paul Shannon < >> pshannon@systemsbiology.org> wrote: >> > Building upon some exemplary work by Jan Bot (the CytoscapeRPC plugin) >> and Duncan Lang (XMLRPC package) we now have a good start on controlling >> Cytoscape 2.7 from R. >> > >> > Much remains to be done. Once this version gets some mileage on it, I >> will convert its current procedural style into proper S4 classes, and submit >> the package to Bioconductor. >> > >> > The biggest deficit in the package that I am aware of occurs in sending >> large graphs from R to Cytoscape take longer than it should. Some tuning of >> XMLRPC may be needed to fix this. >> > >> > All the code (the Cytoscape plugin, the XMLRPC package (with some of my >> own modifications) and the new CRytoscape package) can be found here: >> > >> > >> http://db.systemsbiology.net:8080/cytoscape/gaggle/test/cy2rpc/publ ic/index.html >> > >> > Lots of documentation is provided, as well as a test script which >> demonstrates how to use the package. >> > >> > Suggestions, complaints, rants and bug reports are all welcome. >> > >> > - Paul >> > >> > _______________________________________________ >> > Bioconductor mailing list >> > Bioconductor@stat.math.ethz.ch >> > https://stat.ethz.ch/mailman/listinfo/bioconductor >> > Search the archives: >> http://news.gmane.org/gmane.science.biology.informatics.conductor >> > >> >> > > [[alternative HTML version deleted]]
ADD COMMENT
0
Entering edit mode
@jdelasherasedacuk-1189
Last seen 8.7 years ago
United Kingdom
> Suggestions, complaints, rants and bug reports are all welcome. > > - Paul Hi Paul, as a user of R/BIoC for some time and newbie user of Cytoscape, I like what I see at first glance (will try properly when I have some time). Thanks for developing this tool! My first comment however is... about the name. Are you sure you want to call it CRytoscape? For searching purposes wouldn't it be better to preserve the word "cytoscape" intact? Maybe call it RCytoscape or something along those lines? Just my opinion. "CRytoscape" hurts my eyes ;-) but I'll wear sunglasses if that's the final name and it allows me to work better. Again, thank you for your efforts. regards, Jose -- Dr. Jose I. de las Heras Email: J.delasHeras at ed.ac.uk The Wellcome Trust Centre for Cell Biology Phone: +44 (0)131 6507095 Institute for Cell & Molecular Biology Fax: +44 (0)131 6507360 Swann Building, Mayfield Road University of Edinburgh Edinburgh EH9 3JR UK ********************************************* Alternative email: nach.mcnach at gmail.com ********************************************* -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.
ADD COMMENT
0
Entering edit mode
Hi Jose, RCytoscape -- that does go down better. Thanks for the nudge. Please send along any other suggestions or requests that come to mind. - Paul On Jul 21, 2010, at 3:04 AM, J.delasHeras at ed.ac.uk wrote: > >> Suggestions, complaints, rants and bug reports are all welcome. >> >> - Paul > > Hi Paul, > > as a user of R/BIoC for some time and newbie user of Cytoscape, I like what I see at first glance (will try properly when I have some time). Thanks for developing this tool! > > My first comment however is... about the name. > Are you sure you want to call it CRytoscape? > For searching purposes wouldn't it be better to preserve the word "cytoscape" intact? Maybe call it RCytoscape or something along those lines? > Just my opinion. "CRytoscape" hurts my eyes ;-) but I'll wear sunglasses if that's the final name and it allows me to work better. > > Again, thank you for your efforts. > > regards, > > Jose > > -- > Dr. Jose I. de las Heras Email: J.delasHeras at ed.ac.uk > The Wellcome Trust Centre for Cell Biology Phone: +44 (0)131 6507095 > Institute for Cell & Molecular Biology Fax: +44 (0)131 6507360 > Swann Building, Mayfield Road > University of Edinburgh > Edinburgh EH9 3JR > UK > ********************************************* > Alternative email: nach.mcnach at gmail.com > ********************************************* > > -- > The University of Edinburgh is a charitable body, registered in > Scotland, with registration number SC005336. > >
ADD REPLY
0
Entering edit mode
On Wed, Jul 21, 2010 at 9:16 AM, Paul Shannon <pshannon at="" systemsbiology.org=""> wrote: > Hi Jose, > > RCytoscape -- that does go down better. ?Thanks for the nudge. Or, what about cytoscRape ... :-) -- Steve Lianoglou Graduate Student: Computational Systems Biology ?| Memorial Sloan-Kettering Cancer Center ?| Weill Medical College of Cornell University Contact Info: http://cbio.mskcc.org/~lianos/contact
ADD REPLY

Login before adding your answer.

Traffic: 783 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6