Differences between revisions 3 and 4
Revision 3 as of 2007-07-24 23:15:23
Size: 2800
Editor: nebbiolo
Comment:
Revision 4 as of 2007-07-24 23:23:17
Size: 3063
Editor: nebbiolo
Comment:
Deletions are marked like this. Additions are marked like this.
Line 25: Line 25:
The Cytoscape interface is currently WIDE open, meaning any plugin can call any public method. This causes all manner of problems and by providing the same access for scripts, we will be exacerbating the problem.
  
 * The Cytoscape interface is currently WIDE open, meaning any plugin can call any public method. This causes all manner of problems and by providing the same access for scripts, we will be exacerbating the problem.
 * '''Headless mode.''' A lot of processing and network analysis makes more sense without using the GUI. Currently Cytoscape doesn't have proper support for headless mode. See the [:HeadlessModeRFC].
 * This is also closely related to the CodeLayering RFC.

RFC Name : Scripting in Cytoscape

Editor(s): Keiichiro Ono

Status: Open for Comments

TableOfContents([2])

Proposal

Implementing scripting (Python, Ruby, Java Script, etc.) functionality for Cytoscape. Scripting languages provide an alternative interface to Cytoscape functionality. By providing scripting support we will enable more users to take advantage of Cytoscape in new ways. There are two alternative scenarios to consider:

  1. Start cytoscape normally and then load a script to execute.
  2. Run a script normally within the operating system that then starts cytoscape or uses cytoscape functionality.

Biological Questions / Use Cases

  1. Apply the same operation to a large number of networks/files. Often users want to perform the same set of operations on a large number of networks. Scripting this sort of task is an obvious solution to reducing redundant work.

Open Issues

  • The Cytoscape interface is currently WIDE open, meaning any plugin can call any public method. This causes all manner of problems and by providing the same access for scripts, we will be exacerbating the problem.
  • Headless mode. A lot of processing and network analysis makes more sense without using the GUI. Currently Cytoscape doesn't have proper support for headless mode. See the [:HeadlessModeRFC].

  • This is also closely related to the CodeLayering RFC.

Implementation Plan

Java provides support for running scripting languages from within the Java Virtual Machine using the [http://jakarta.apache.org/bsf/ Bean Scripting Framework]. Using this framework, access to the following scripting languages:

  • Javascript
  • NetRexx (an extension of the IBM REXX scripting language in Java)

  • Python
  • Tcl
  • XSLT Stylesheets
  • Groovy
  • JLog (PROLOG implemented in Java)
  • Ruby
  • JudoScript

  • ObjectScript

  • ooRexx (Open Object Rexx), using BSF4Rexx.

One possible implementation strategy would be to add the [http://jakarta.apache.org/bsf/ Bean Scripting Framework] functionality to the core and then provide plugins for each scripting language. For instance, if a user was interested in writing a Python script to perform some task in Cytoscape, the user would first load the Python scripting plugin. Then the user would be able to load and execute scripts from the (as yet undefined) scripting user interface. This would allow users to load only the scripting languages they choose and help avoid (excessive) bloat.

Comments

Scripting (last edited 2009-02-12 01:03:30 by localhost)

Funding for Cytoscape is provided by a federal grant from the U.S. National Institute of General Medical Sciences (NIGMS) of the Na tional Institutes of Health (NIH) under award number GM070743-01. Corporate funding is provided through a contract from Unilever PLC.

MoinMoin Appliance - Powered by TurnKey Linux