GSoC 2012 - Idea 22

123 views
Skip to first unread message

Stefan Walter

unread,
Mar 30, 2012, 3:53:54 AM3/30/12
to cytoscap...@googlegroups.com
Hi everyone,

I am very interested in the GSoC 2012 IDEA 22: Cytoscape plugin for exporting networks to JSON.

Who am I? My name is Stefan Walter and I am 22 years old.
I am currently writing on my bachelor thesis at York University, Toronto.
In the end of April I am finished with my thesis and I am going back to my home country Germany (University Bonn-Rhine-Sieg of Applied Sciences).
Until I start with my master's degree in October there is much time in between.
I really want to spend this time working on Cytoscape!
I am improving my programming skills in Java since more than six years.
My recent project I work on is the open source DB Apache Derby [1].
For my thesis I implemented the sort merge join algorithm.
Besides Java my knowledge spans other languages like PHP, JavaScript or MySQL.
Important data formats such as JSON and XML are also well known to me.
I do not have any problems with familiarizing myself with complex software.

Back to the project idea.
As I have seen Cytoscape Web supports JSON as input format [2].
Is that the source of the idea to create  JSON export plugin?
In my opinion this is very usefull and I wonder why it is not implemented already.
I like the idea of exporting HTML image maps as well.
Additionally one could consider to add an XML export option?

What did I do so far?
I was able to successfully download and install Cytoscape 3 from the SVN.
I also built a simple OSGi bundle which runs proper in Cytoscape.
This is my first contact with Cytoscape.

Are there any more information or tips you would like to give me?

Regards,

Stefan


[1] http://db.apache.org/derby/
[2] http://cytoscapeweb.cytoscape.org/tutorial

Alexander Pico

unread,
Mar 30, 2012, 9:25:39 PM3/30/12
to Cytoscape-Discuss
Hi Stefan,

Sounds like you’ve got the right idea. This project is about web-ready exports, specifically targeting Cytoscape Web (via the generally useful JSON format).  HTML image maps and XML are also great ideas. This work is long overdue. There is a lot of interest in seeing this project completed and a lot of real world use cases.

Also fitting for your background, there is the possibility of a Derby connection. In conjunction with CyThesaurus, we could support more informative attribute exports by mapping aliases and annotations to the nodes on their way out.  This could be one direction for the project to grow if it’s otherwise too thin.

As you’ve started down the right path with Cytoscape 3 and your first Cytoscape App.

Refer to the “How to Apply” section of http://nrnb.org/gsoc to start preparing an application. Feel free to ask questions about aspect and expectations for the application here. We can also give feedback on submitted applications, which you can edit until April 6th.

 - Alex

Stefan Walter

unread,
Mar 31, 2012, 5:08:11 AM3/31/12
to cytoscap...@googlegroups.com
I would be happy to implement those important functions.
Especially as you share the same opinion that it is long overdue.

As I have seen Cytoscape is able to im-/export GraphML files.
However in this post [1] it is said the plugin is still under development.
On [2] it is said the last version is from November 2010.
Was further development done since then or is it still in the same stage?
So instead of defining a new XML format one should improve the XGML im/export function.

I could also imagine to add a conversion plugin.
If there is the need to have multiple files converted.
At the moment one need to import a file and export it again.
The convert plugin could provide batch conversion.
Would there be any use for it?


To convert a network to a HTML image map I think a good base is to start with an exported SVG image.
On a first guess this is the easiest way since SVG is a XML format which could be parsed to get the information/position of the nodes in the image.

I just had a look at the
the CyThesarus plugin [3].
You mentioned there is the possibility of a Derby connection.
As I have seen there is already a Derby connector available [4].
And I had a short look on the source code.
Or do I misunderstand what you are talking about?


/Stefan

[1] https://groups.google.com/forum/?fromgroups#!msg/cytoscape-discuss/0BtfUYf3cJE/NYZjvEA85QgJ
[2] http://code.google.com/p/graphmlreader/downloads/list
[3] http://wiki.cytoscape.org/CyThesaurus_Plugin
[4] http://www.bridgedb.org/wiki/GeneDatabaseLayout

Alexander Pico

unread,
Mar 31, 2012, 1:33:35 PM3/31/12
to cytoscap...@googlegroups.com
Well, XGMML is the primary format for saving Cytoscape files. They are included in the .cys files, for example. Not sure about the others; I haven't used them. 

Batch conversion might be handy. I'd focus first on use cases where there is more than one network open in the current session and exporting each or in batch. 

Right. CyThesaurus already connects to Derby. That's its main use. I just mentioned it since it's something you are familiar with, it might be mixed into the project somehow, e.g., ID unification or annotation upon export. Or dream up new derby files to generate and attach for export-related purposes. Just brainstorming here. Shouldn't distract from primary goals. 

 - Alex
--
You received this message because you are subscribed to the Google Groups "cytoscape-discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/cytoscape-discuss/-/l5oAK2LVIXkJ.
To post to this group, send email to cytoscap...@googlegroups.com.
To unsubscribe from this group, send email to cytoscape-disc...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cytoscape-discuss?hl=en.

Stefan Walter

unread,
Apr 2, 2012, 2:13:54 AM4/2/12
to cytoscap...@googlegroups.com
I'm wondering what nested networks are and how they work in Cytoscape.
I know what a nested network is according to the XGMML specification but it seems "nested networks" in Cytoscape are some kind different.
If you right click on a node and select "Add Nested Network" you can select a network that will be nested in some way.
At least the node's icon changes in style.
But how to retrieve that nested network again.
Especially I could not figure out how to determine what network is nested nor how to look at it.
Regarding to an export task: The "nested network" does not appear in the created XGMML file.

I also tried to get an understanding of how CyThesaurus works.
Unfortunately I could not find it.
I tried to follow the tutorial on [1].
However there is no menu item Plugin.
Did it change in version 3?
It does not appear under Apps neither.

I understand that batch export would be very useful since right now you have to select every network and export it individually.
I will post a first proposal tomorrow on the primary tasks: JSON export and creating HTML image maps from networks.

/Stefan

[1] http://wiki.cytoscape.org/CyThesaurus_Plugin/ID_Mapping_Examples
To post to this group, send email to cytoscape-discuss@googlegroups.com.
To unsubscribe from this group, send email to cytoscape-discuss+unsubscribe@googlegroups.com.

Christian Lopes

unread,
Apr 2, 2012, 4:05:49 PM4/2/12
to cytoscap...@googlegroups.com
Regarding nested networks, we are currently revisiting its serialization model, so things may change a little bit.

For now, you can think of a nested network as just a reference that a node has to a network.
That network can be any CyNetwork in the session:
- a CySubNetwork of the same CyRootNetwork
- a CySubNetwork of another CyRootNetwork
- another CyRootNetwork
- the same network (weird, but possible, as far as I'm concerned)

In Cytoscape 3, nested networks are not being exported to XGMML now, but that will probably change. If exported, it will be a nested graph tag under a node att tag, as described by the XGMML spec: http://www.cs.rpi.edu/research/groups/pb/punin/public_html/XGMML/draft-xgmml-20010628.html#AttE

In case the same network is referred by more than one node in the exported graph, we can use XLink--example:

(...)
<att>
  <graph id="4" label="Subnetwork">(...)</graph>
</att>
<node id="2">
  <att>
    <graph xlink:href="#4"/>
  </att>
</node>
(...)

I don't think that retrieving the nested network on the UI has been implemented yet in Cy 3, but I guess it should work just like in Cytoscape 2.x. (right click menu >> Nested Network >> Go to nested network). But of course it may change as well.

Thanks,
Christian



To view this discussion on the web visit https://groups.google.com/d/msg/cytoscape-discuss/-/r_QtycDLt8MJ.

To post to this group, send email to cytoscap...@googlegroups.com.
To unsubscribe from this group, send email to cytoscape-disc...@googlegroups.com.

Stefan Walter

unread,
Apr 2, 2012, 6:49:04 PM4/2/12
to cytoscap...@googlegroups.com
I just submitted my proposal for the tasks JSON and HTML image maps.
If you have suggestions or comments on it please let me know!
So we can clarify thing until April 6th.

Olesia Ivantsiv

unread,
Apr 2, 2012, 8:12:27 PM4/2/12
to cytoscape-discuss
Hello everyone,

My name is Olesia Ivantsiv and I'm currently a Master's student in
Biochemistry at the University of Toronto. I'm greatly interested in
GSoC idea 22 as well however I'm afraid I don't have that much of
experience as the previous poster does. I took two courses in
programming during my undergraduate studies which include Procedural
Programming in C/C++ and Object-Oriented Programming in C/C++. I
studied Methods of Object-Oriented programming which include concepts
of Functors, Smart pointers, Associative arrays on my own afterwards.

This means I don't have a lot of experience in programming and Java in
particular but I really want to get it during the GSoC program. In
order to get familiarized with things related to Cytoscape plugin
development I:
1) started with learning more about Java which is quite similar to C++
but also has its peculiarities
2) studied some Java SE libraries
3) studied Cytoscape API and plugin development tutorial
4) I have also downloaded and installed Cytoscape 3.0 from SVN.

Maybe you can guide me in what direction to continue? I would be very
thankful for any kind of guidance.

As I don't have a lot of time left I wanted to program a very simple
sample plugin in Cytoscape which will find the node with the highest
degree in a graph in order to demonstrate my coding abilities at least
in some way (all the other simple things seem to be implemented
already).

I would also be glad to know whether the sample plugin and what I've
learned by far and still can learn before the application deadline
would be enough to be considered for this project?

Thank you,

Olesia

On Apr 2, 6:49 pm, Stefan Walter <stefan.walt...@web.de> wrote:
> I just submitted my proposal for the tasks JSON and HTML image maps.
> If you have suggestions or comments on it please let me know!
> So we can clarify thing until April 6th.
>
> Am Montag, 2. April 2012 16:05:49 UTC-4 schrieb Christian Lopes:
>
>
>
>
>
>
>
>
>
> > Regarding nested networks, we are currently revisiting its serialization
> > model, so things may change a little bit.
>
> > For now, you can think of a nested network as just a reference that a node
> > has to a network.
> > That network can be *any* CyNetwork in the session:
>
> > - a CySubNetwork of the same CyRootNetwork
> > - a CySubNetwork of another CyRootNetwork
> > - another CyRootNetwork
> > - the same network (weird, but possible, as far as I'm concerned)
>
> > In Cytoscape 3, nested networks are not being exported to XGMML now, but
> > that will probably change. If exported, it will be a nested *graph* tag
> > under a *node* *att* tag, as described by the XGMML spec:
> >http://www.cs.rpi.edu/research/groups/pb/punin/public_html/XGMML/draf...
>
> > In case the same network is referred by more than one node in the exported
> > graph, we can use XLink--example:
>
> > (...)
> > <att>
> >   <graph id="4" label="Subnetwork">(...)</graph>
> > </att>
> > <node id="2">
> >   <att>
> >     <graph xlink:href="#4"/>
> >   </att>
> > </node>
> > (...)
>
> > I don't think that retrieving the nested network on the UI has been
> > implemented yet in Cy 3, but I guess it should work just like in Cytoscape
> > 2.x. (right click menu >> Nested Network >> Go to nested network). But of
> > course it may change as well.
>
> > Thanks,
> > Christian
>
> >>> On Mar 31, 2012, at 2:08 AM, Stefan Walter <stefan.walt...@web.de>
> >>> [1]https://groups.google.com/**forum/?fromgroups#!msg/**
> >>> cytoscape-discuss/0BtfUYf3cJE/**NYZjvEA85QgJ<https://groups.google.com/forum/?fromgroups#%21msg/cytoscape-discuss/...>
> >>> [2]http://code.google.com/p/**graphmlreader/downloads/list<http://code.google.com/p/graphmlreader/downloads/list>
> >>> [3]http://wiki.cytoscape.org/**CyThesaurus_Plugin<http://wiki.cytoscape.org/CyThesaurus_Plugin>
> >>> [4]http://www.bridgedb.org/wiki/**GeneDatabaseLayout<http://www.bridgedb.org/wiki/GeneDatabaseLayout>
>
> >>> Am Freitag, 30. März 2012 21:25:39 UTC-4 schrieb Alexander Pico:
>
> >>>>  Hi Stefan,
>
> >>>> Sounds like you’ve got the right idea. This project is about web-ready
> >>>> exports, specifically targeting Cytoscape Web (via the generally useful
> >>>> JSON format).  HTML image maps and XML are also great ideas. This work is
> >>>> long overdue. There is a lot of interest in seeing this project completed
> >>>> and a lot of real world use cases.
>
> >>>> Also fitting for your background, there is the possibility of a Derby
> >>>> connection. In conjunction with CyThesaurus, we could support more
> >>>> informative attribute exports by mapping aliases and annotations to the
> >>>> nodes on their way out.  This could be one direction for the project to
> >>>> grow if it’s otherwise too thin.
>
> >>>> As you’ve started down the right path with Cytoscape 3 and your first
> >>>> Cytoscape App.
>
> >>>> Refer to the “How to Apply” section ofhttp://nrnb.org/gsocto start
> >>>> preparing an application. Feel free to ask questions about aspect and
> >>>> expectations for the application here. We can also give feedback on
> >>>> submitted applications, which you can edit until April 6th.
>
> >>>>  - Alex
>
> >>>> [2]http://cytoscapeweb.cytoscape.**org/tutorial<http://cytoscapeweb.cytoscape.org/tutorial>
>
> >>>>   --
> >>> You received this message because you are subscribed to the Google
> >>> Groups "cytoscape-discuss" group.
> >>> To view this discussion on the web visithttps://groups.google.com/d/**
> >>> msg/cytoscape-discuss/-/**l5oAK2LVIXkJ<https://groups.google.com/d/msg/cytoscape-discuss/-/l5oAK2LVIXkJ>
> >>> .
> >>> To post to this group, send email to cytoscape-discuss@**
> >>> googlegroups.com <cytoscap...@googlegroups.com>.
> >>> To unsubscribe from this group, send email to
> >>> cytoscape-discuss+unsubscribe@**googlegroups.com<cytoscape-discuss+unsubscr i...@googlegroups.com>
> >>> .
> >>> For more options, visit this group athttp://groups.google.com/**
>
> ...
>
> read more »

Stefan Walter

unread,
Apr 3, 2012, 1:51:57 AM4/3/12
to cytoscap...@googlegroups.com
I just built a first alpha Version for the JSON export.
The JSON string is printed to the standard output.
You can download the OSGi bundle here http://www.cse.yorku.ca/~cse13251/JSONExport-0.0.1-SNAPSHOT.jar

/Stefan

Max Franz

unread,
Apr 3, 2012, 1:10:05 PM4/3/12
to cytoscap...@googlegroups.com
HI Olesia,

Maybe Idea 37 is better suited to you.  It would involve writing convertors for graph file formats to and from JSON in JavaScript.  We would be able to start with SIF (a simple tab delimited format) to get you started -- and accustomed to JavaScript if you're not already -- and then we could move on to more complex XML formats.

I suggest this project because the concepts involved are in line with the kind of CS courses you've taken and the project would be self-contained; i.e. you wouldn't have to worry about Cytoscape's API for this project.

Cheers,
Max

Olesia Ivantsiv

unread,
Apr 3, 2012, 4:08:40 PM4/3/12
to cytoscape-discuss
Hi Max,

Thank you very much for your suggestion. I would like to ask a couple
of questions about the idea 37 in order to understand it completely.
As far as I understood Cytoscape Web does not support graph file
formats like GraphML, !XGMML, !SIF as its input formats however it
supports JSON as its input format. That's the reason why you want to
create a convertor from the formats mentioned above into JSON. But at
the same time I'm not very knowledgeable in these formats that's why
I'm wondering why JSON as an input format? Why not make Cytoscape Web
support all those formats but to create convertor into JSON and then
support JSON. I believe JSON format has its advantages and pluses as
you've chosen it. I tried to read about this format but I'm still not
sure whether I understand it in a proper way.

I realize that this kind of questions deals probably with very basic
things but I'm totally new to these formats. At the same time I really
want to learn about all of these things more.

Cheers,

Olesia
> ...
>
> read more »

Stefan Walter

unread,
Apr 3, 2012, 4:32:24 PM4/3/12
to cytoscap...@googlegroups.com
Cytoscape Web supports XGMML, GraphML, SIF, and JSON.
The advantange of JSON is, that the resulting file is very small.
There is (almost) no overhead compared to XML files.

Is the IDEA 37 new? Or I may have overseen it before...

/Stefan
Reply all
Reply to author
Forward
0 new messages