Google Summer of Code 2007
"Google Summer of Code is a program that offers student developers stipends to write code for various open source projects. Google works with a several open source, free software and technology-related groups to identify and fund several projects over a three month-period. Historically, the program has brought together over 1,000 students with over 100 open source projects to create hundreds of thousands of lines of code."
get more open source code created and released for the benefit of all
inspire young developers to begin participating in open source development
help open source projects identify and bring in new developers/committers
provide students in Computer Science and related fields the opportunity to do work related to their academic pursuits during the summer (think 'flip bits, not burgers')
give students more exposure to real-world software development scenarios (e.g., distributed development, software licensing questions, mailing list etiquette
[http://code.google.com/summerofcode.html Find out more]
What is Cytoscape?
Cytoscape is an open-source bioinformatics software platform for visualizing molecular interaction networks and integrating these interactions with gene expression profiles and other data that is in use by thousands of biological scientists around the world. Cytoscape's software core provides basic functionality to layout and query the network; to visually integrate the network with the user's data; and to link the network to databases of functional annotations. The core is extensible through a straightforward plug-in architecture, allowing rapid development of additional computational analyses and features.
Overview of Ideas
As we are prototyping new features and functions for Cytoscape, we are exploring a number of more general areas ideal for Google Summer of Code students. If you have solid CS skills and have interests in the biological domain, then you should apply.
IDEA: Cytoscape Anywhere
We want to enable people to use Cytoscape from within their Web browsers. On this project, you will develop a server-side component and a thin client that uses built-in Web browser capabilities, such as the [http://en.wikipedia.org/wiki/AJAX AJAX] technology that underlies Google Maps, to provide a subset of Cytoscape functionality for viewing, editing, and analyzing networks.
IDEA: Non-biological Applications
Cytoscape's architecture isolates the core network layout and query functionality from any biological semantics. Cytoscape can support a diversity of network visualization/analysis applications outside of the molecular biology domain. We are seeking proposals for Cytoscape applications in non-biological domains. Example applications include -- but are not limited to -- telecommunications network monitoring/management, social networks, software visualization(static connection of modules, classes; dynamic connection of processes; etc.), ecological networks.
IDEA: Visualizing multiple data points/types per node (or edge)
Biological networks are frequently associated with data that come from a diversity of sources -- e.g. gene expression via microarrays, protein abundance via mass spectrometry, chromosomal abberations via comparative genomic hybridization, genetic polymorphisms. A number of approaches have been developed for overlaying data from multiple sources on network nodes and edges, for example mapping multiple gene expression measurements onto a 'striped' node color overlay. We are seeking proposals for Cytoscape plugins that implement novel, alternative ways of visualizing multiple data measurements on network nodes and edges.
IDEA: Cytoscape workspace sharing/publishing
Cytoscape users are currently able to save their session in a single file for later use or to pass to their colleagues. We are seeking proposals to create a novel system for saving an interactive Cytoscape project to the web. You could imagine that a biologist in Boston could share their new molecular interaction network on the web and their collaborator in Paris could immediately interact with it. This would support more sharing and collaboration in biology.
IDEA: New network visualizations
Cytoscape has a core set of basic graph (network) layout algorithms, from both proprietary and open source libraries. Biologists clearly need more advanced layout algorithms that consider biological information when performing the layout. We seek proposals to write new Cytoscape layout algorithms that make use of biological attribute data loaded into a Cytoscape network. For instance, a layout could organize nodes with different attributes in concentric rings, with each ring representing one type of node, or nodes with different degree. Lots of cool ideas are showcased at http://www.visualcomplexity.com/
IDEA: Automate workflow using scripting
Cytoscape has many powerful analysis functions, however they are only accessible via the graphical user interface. This is good for the average biologist, but computer savvy power users would like to be able to work faster and automate common tasks. We seek proposals to build a scripting system into Cytoscape, perhaps using scripting languages that support the new [http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/ scripting system for Java 1.6].
IDEA: Advanced Editing Features and Tools
Cytoscape has a simple network editor with a limited set of features. This is sufficient to support most network analysis and visualization tasks. Additional tools and features would be useful, however, in supporting tasks like preparation of figures for publication or presentation. Examples of such features are grid support, clipboard management, keyboard accelerators, scripting/'macros', and other features/tools that one might expect in products like Adobe Illustrator and Microsoft PowerPoint. We seek proposals for enhancing Cytoscape's network editing environment with novel features and tools.
IDEA: Cellular-level Visualization
- zooming from cell to molecular!
IDEA: Animating the Temporal Dimension
IDEA: Model Timecourse Data
- w.r.t. Transcriptional networks
IDEA: Matrix view of networks
IDEA: Scripting language to facilitate layout or editing
- e.g., A transports B
IDEA: Data cleaning
If you want to apply
We would like to know who you are and how you think. Incorporate the following into your application:
- Your interests w.r.t. programming
- The background behind your interests
- Your ideas for a project (or expand from one above)
- Refer to and link to other projects or products that illustrate your ideas
- What can you bring to the team?
For more background information see:
[http://cytoscape.org Cytoscape Website]: Our open source network visualization tool.
If you are selected
You will be working with an active team of software developers that also speak biology. You will work on intellectually stimulating and challenging tasks as part of a very collegial and supportive community of software developers.
You will be gaining experience in a rapidly evolving field on the intersection of computer and biological sciences. You will learn a lot about information visualization, user interface programming, and human-computer interaction techniques. You will gain experience in the emerging and dynamic field of network visualization and analysis.
You will work on applications that help to improve the practice of medicine and the quality of life. You will make a difference.