Daniel Abel's Google Summer of Code 2008 project proposal (draft)
As my google summer of code project, I propose to merge two features that have been on the cytoscape whishlist for a long time, and for which I already have working implementations in a fork of an older version of cytoscape. These were not yet merged into core cytoscape because some aspects involve changes to large parts of the codebase. In addition, they also involve some (but pretty small) API changes, so seem more appropriate for the upcomming cytoscape 3.0 than for previous point-releases.
1) implement edge directionality.
Currently cytoscape handles all edges as directed. Even though the libraries cytoscape uses (giny, etc.) can handle undirected edges, this fact is hidden by the gui. Due to this limitation, users can only handle directed edges.
I propose to implement undirected edges as 'first-class citizens' i.e. on equal footing with directed edges. I have a working implementation of this for cytoscape 2.4, so the work I am proposing to do as part of my google summer of code project is not to implement this feature, but to port an already working implementation to the current development version of cytoscape,version 3.0, and to merge it into the core cytoscape codebase.
see: UndirectedEdges and [http://groups.google.com/group/cytoscape-discuss/browse_frm/thread/b76566844557012/f917a183ecb3b57c?lnk=gst&q=Daniel+Abel#f917a183ecb3b57c thread on cytoscape-discuss]
Because core cytoscape libraries already handle undirected edges, and because I already have a working implementation, this part of my proposed summer project should be reasonably simple, taking 2 weeks at most.
2) Implement local attributes
This is a long-standing cytoscape whishlist item. (see LocalAttributes and [:Network_specific_node_and_edge_attributes:])
Apparently the current plan by cytoscape core developers is to implement local attributes using the planned 'attribute namespaces' AttributeNamespaces) however, 'attribute namespaces' and 'local attributes' feature are semantically different and trying to implement local attributes with attribute namespaces would not be a real improvement over currently used work-arounds. (for details, see [http://groups.google.com/group/cytoscape-discuss/browse_frm/thread/a780ee4b9422ca58/3283e4e50128bc11?lnk=gst&q=Daniel+Abel#3283e4e50128bc11 post on cytoscape-discuss])
I have a working implementation for local attributes (not using 'attribute namespaces') that I maintain as forked version of cytoscape 2.4. As the second part of my google summer of code project, I plan to merge this to cytoscape 3.0.
see also: [http://groups.google.com/group/cytoscape-discuss/browse_frm/thread/badfc47a12feb4bb/273a4c519ef1b8f7?lnk=gst&q=Daniel+Abel#273a4c519ef1b8f7 thread on cytoscape-discuss where I submitted a previous patch for cytoscape 2.4 implementing local attributes]
For both of these, I would create patches for cytoscape 3.0, so that these features can be seamlessly integrated into core cytoscape part of the upcomming 3.0 release.
About myself:
I am currently a graduate student in Tamas Vicsek's group, working on complex networks. My homepage is at http://angel.elte.hu/~abeld/ where my [http://angel.elte.hu/~abeld/CV-and-publication-list/cv_en.pdf academic CV] and my [http://angel.elte.hu/~abeld/CV-and-publication-list/publications.html publication list] are available.
As part of my research-related work, I have adapted cytoscape for our uses. This included creating some plugins, but also fixing some bugs and adding some features to core cytoscape code. Because some of these additions involved changes to large parts of cytoscape, with the possibilities of introducing further bugs (especially for use-cases which are different from ours), most of these changes were not yet merged upstream, into the public cytoscape. During my summer of code project, I would like to clean-up these features, and integrate them into the public cytoscape codebase.
I have contributed to the cytoscape wiki (using the username DanielAbel, see [http://cytoscape.org/cgi-bin/moin.cgi/DanielAbel?action=fullsearch&context=180&value=DanielAbel&fullsearch=Text list of my contributions]) and reported >20 bugs (using the username 'Abel Daniel', see [http://cbio.mskcc.org/cytoscape/bugs/search.php?project_id=5&reporter_id=151&sticky_issues=off&sortby=last_updated&dir=DESC&hide_status_id=-2 list of bugs reported by me]) in the cytoscape bugtracker, and offered suggested fixes, patches to several of these.
Using the abli@freemail.hu email, I have been an active participant on cytoscape-discuss.
On a more general note, I have been an active contributor to open-source projects:
contributing bug-reports to various projects, from debian ([http://bugs.debian.org/cgi-bin/pkgreport.cgi?which=submitter&data=abli%40freemail.hu&archive=yes&version=&dist=unstable list of bugs]) to gtk/pygtk ([http://bugzilla.gnome.org/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&long_desc_type=substring&long_desc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=NEEDINFO&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailreporter1=1&emailtype1=substring&email1=abli%40freemail.hu&emailassigned_to2=1&emailreporter2=1&emailqa_contact2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= list of bugs])
and being an active participant on mailling lists, for example on python tutor ([http://search.gmane.org/?query=abli%40freemail.hu&group=gmane.comp.python.tutor list of threads]) and elsewhere.
I have experience programming in java, python, c/c++ and using version-control systems like subversion.