diff --git a/Proposal/cyto_proposal_draft.htm b/Proposal/cyto_proposal_draft.htm deleted file mode 100644 index ebd0776..0000000 --- a/Proposal/cyto_proposal_draft.htm +++ /dev/null @@ -1,481 +0,0 @@ - - - - - - - - - - - -
- -

 

- -
- -

JavaScript JSON convertors for Cytoscape 3.0 file formats

- -
- -

 

- -

Project Idea:

- -

 

- -

The project title is: JavaScript JSON convertors for -Cytoscape 3.0 file formats.

- -

 The idea is based upon suggested Idea 19: JavaScript JSON -convertors for graph file formats, but I would like to drop the word “graph” -from it, because this project will support virtually all formats accepted by -Cytoscape 3.0 .

- -

Synopsis:

- -

 

- -

This project deals with the conversion of different graph -and other  formats used in Cytoscape 3.0 to Json used in cytoscape.js and vice -versa.

- -

Cytoscape 3.0 accepts file formats like xgmml, graphml, gml, -nnf, sif, xls, sif, csv whereas cytoscape.js currently accepts only json -representations of the data. It is not an easy task to create json -representation of a required graph by hand. This is where this project comes -in. I will develop some converters using JavaScript which will automate this generation -of json representation.  Cytoscape-web, the predecessor of Cytoscape.js -supported only sif files, but this project will support import and export to -all the formats mentioned earlier.

- -

Implementation details:

- -

 

- -

The Cytoscape 3.0 file formats that will be supported are:

- -

Xgmml, Graphml, Sif, Nnf, Gml (,Csv, Xlsx).

- -

They are arranged according to their priority and so this is -the order in which their json converters will be implemented. The last two (in -bracket) will be kept as extras, meaning that they will be implemented only if -the project is finished well before the deadline (see the timeline for details) -.

- -

- -

Now, this is how I plan to deal with each of them.

- -

1.       -Xgmml: This is the top priority format and hence will be dealt with -first. Xml parsers available in native javascript and jquery will be used for -parsing the xgmml file. Then some JavaScript code (using looping and if needed, -regular expressions) will deal with the parsed xml file to convert them -correctly into javascript variables and objects. Finally, they can be used to -generate its json representation. (Maybe, take some inspiration from this -library in Gremlin (written in java): https://github.com/tinkerpop/blueprints/wiki/GraphSON-Reader-and-Writer-Library -)

- -

This required some separate -functions which can:

- -

·         -convert parsed xml to jS variables and objects

- -

·         -create xml from given jS variables and objects

- -

·         -save given jS variables and objects as json

- -

·         -convert json into given jS variables and objects

- -

 

- -

2.       Graphml:  -Graphml is also a xml-based format, so the implementation process is same as -that of the previous one. Only the code will be different to take care of the -syntax difference of these formats.

- -

 

- -

Before  I move on to the other ones, here -is a small chart for reference:

- -

 

- -

- -

3.       Sif -and Nnf: Very simple jS code needs to be written to take care of these file -formats. There is already a python-based implementation of these converters -(written by me) available at https://github.com/bendtherules/GSOC_13/tree/master/nnf_and_sif_to_json_py - . Nnf files will be stripped off its network information and treated just -like a Sif file (Possible problem with multi-network files ??)

- -

4.       GML:  -A custom-made parser needs to be built based on regular expressions (native js -or possibly using xregexp library http://xregexp.com/ -). The rest of the plan is the same as that of xgmml, only this new parser will -be used.

- -

Few words on the extras:

- -

These extras will be done only if there is ample time left -after the completion of the whole project, so there is no way that they will -harm the main project. I am aware that new GSOC applicants like me tend to -propose a lot more than they can actually complete, so I have tried not to fall -in that trap. But these extras are here, because I plan to do them in the -future, within or after GSOC.  Also, as a side note, in future, I wish to -release this codes as a separate jS library for converting customized-xml -formats into json (I hope my mentoring org will allow this).

- -

5.       Csv:  -Use any well-documented csv parser and rest is the same.

- -

6.       Xlsx: -This is the most challenging part. I wouldn’t have tried this if there was no -cross-browser external library to read and write xlsx format. But thankfully -and quite surprisingly, there is one called Xlsx.js https://github.com/stephen-hardy/xlsx.js -. I am not much sure if I can pull off this part, but I am still including this -in the proposal mostly for my inspiration than anything else. Also, I know that -the Cytoscape project originally supported .xls, but I think its best kept to -Microsoft Excel for converting .xls into .xlsx .

- -

 

- -

Timeline:

- -

 

- -

1.       -Before June 17 :

- -

o    Learn -more about:

- -

o       Jquery, -xregexp, csv-parser, json, xlsx.js and the graph formats.

- -

o    Set up -development environment

- -

2.       -June 17 – July 6 (18 days): Implement xgmml converter

- -

o    June 17 – -June 29 (12 days): Implement xgmml parser

- -

o    July 30 – -July 5 (6 days): Rest of the converter

- -

3.       -July 5 – July 7 (3 days): Test converter with different xgmml -files.

- -

4.       -July 8 – July 25 (18 days): Implement graphml converter

- -

o     July 8 – -July 19 (12 days): Implement graphml parser

- -

o    July 20 – -July 25 (6 days): Rest of the converter

- -

5.       - July 26 – July 28 (3 days): Test graphml converter

- -

6.       -July 29 (Mid-term evaluation):  Deliver fully-implemented xgmml -and graphml parser.

- -

7.       -July 30: Take a day off from coding and analyze what went right -and wrong in the first-term. (How about a blog post? :D)

- -

8.       -July 31 – August 2 (3 days): Implement and test Sif and Nnf -converter.

- -

9.       -August 3 – August 20 (18 days): Implement Gml converter (First 12 -days for the parser).

- -

10.    -August 21 – August 23 (3 days): Test Gml converter

- -

11.    -August 24 – August 27 (4 days):  Put all the converters together -and test them (Packaging).

- -

12.    -August 28 – September 3 (10 days): Prepare documentation and add -inline comments in the code.

- -

13.    -September 4 – September 16 (13 days): Buffer time (If everything -is working, work on the extras)

- -

(Feedback will be obtained for all the converters from the -community and they will be of more importance than the extras)

- -

Possible hurdles:

- -

 

- -

1.       -Json handler in Cytoscape.js might not be able to handle objects -within the “data” section. If so, request the developer or send a patch to the -core project so that it is supported.

- -

2.       -Make sure the regular-expression based Gml parser is not buggy.

- -

3.       -The input graph formats might not be well-formed (if manually -created). (Maybe, add a xml-checker and discard non well-formed files. Such a -checker might not be possible in case of non-xml based formats. )

- -

What can I bring to the team?

- -

 

- -

ü  -Yes, I am committed in working hard for this GSOC project this -summer.  I do not have any other commitment during the summer other than my -college internals for the next session which should be held near the end of -August or the start of September. I am not yet sure about the date, but I will -ask for a one-week break during that time. I hope it won’t be much of a -problem.

- -

ü  -Being my first GSOC project, I am also super-excited about it, -can’t wait to have a fruitful summer this year.

- -

ü  -I wish to learn some more about the core Cytoscape project but as -I am not a Java developer, I wish to linger with the Cytoscape.js project.

- -
- - - - diff --git a/Proposal/cyto_proposal_draft.html b/Proposal/cyto_proposal_draft.html new file mode 100644 index 0000000..5a9008f --- /dev/null +++ b/Proposal/cyto_proposal_draft.html @@ -0,0 +1,2132 @@ + + + + + + + + + + + + + + + + + + + +
+ +

 

+ +
+ +

JavaScript JSON convertors for Cytoscape 3.0 file formats

+ +
+ +

 

+ +

Project Idea:

+ +

 

+ +

The project title is: JavaScript JSON convertors for +Cytoscape 3.0 file formats.

+ +

 The idea is based +upon suggested Idea 19: JavaScript JSON convertors for graph file formats, but +I would like to drop the word “graph” from it, because this project will +support virtually all formats accepted by Cytoscape 3.0 .

+ +

Synopsis:

+ +

 

+ +

This project deals with the conversion of different graph +and other  formats +used in Cytoscape 3.0 to Json used in cytoscape.js and vice versa.

+ +

Cytoscape 3.0 accepts file formats like xgmml, graphml, gml, +nnf, sif, xls, sif, csv whereas cytoscape.js currently accepts only json +representations of the data. It is not an easy task to create json +representation of a required graph by hand. This is where this project comes +in. I will develop some converters using JavaScript which will automate this generation +of json representation.  Cytoscape-web, +the predecessor of Cytoscape.js supported only sif files, but this project will +support import and export to all the formats mentioned earlier.

+ +

Implementation details:

+ +

 

+ +

The Cytoscape 3.0 file formats that will be supported are:

+ +

Xgmml, Graphml, Sif, Nnf, Gml (,Csv, +Xlsx).

+ +

They are arranged according to their priority and so this is +the order in which their json converters will be implemented. The last two (in +bracket) will be kept as extras, meaning that they will be implemented only if +the project is finished well before the deadline (see the timeline for details) .

+ +

+ +

Now, this is how I plan to deal with each of them.

+ +

1.       +Xgmml: This is the top priority format and hence +will be dealt with first. Xml parsers available in native javascript +and jquery will be used for parsing the xgmml file. +Then some JavaScript code (using looping and if needed, regular expressions) +will deal with the parsed xml file to convert them correctly into javascript variables and objects. Finally, they can be used +to generate its json representation. (Maybe, take some inspiration from this +library in Gremlin (written in java): https://github.com/tinkerpop/blueprints/wiki/GraphSON-Reader-and-Writer-Library +)

+ +

This required some separate +functions which can:

+ +

·         +convert parsed xml to jS +variables and objects

+ +

·         +create xml from given jS +variables and objects

+ +

·         +save given jS +variables and objects as json

+ +

·         +convert json into given jS +variables and objects

+ +

 

+ +

2.       +Graphml:  +Graphml is also a xml-based format, so the +implementation process is same as that of the previous one. Only the code will +be different to take care of the syntax difference of these formats.

+ +

 

+ +

Before  I move on to the other ones, here is a +small chart for reference:

+ +

 

+ +

+ +

3.       +Sif and Nnf: Very simple jS +code needs to be written to take care of these file formats. There is already a +python-based implementation of these converters (written by me) available at https://github.com/bendtherules/GSOC_13/tree/master/nnf_and_sif_to_json_py + . Nnf files will be stripped off its +network information and treated just like a Sif file (Possible problem with +multi-network files ??)

+ +

4.       +GML:  A +custom-made parser needs to be built based on regular expressions (native js or possibly using xregexp +library http://xregexp.com/ ). The rest of +the plan is the same as that of xgmml, only this new +parser will be used.

+ +

Few words on the extras:

+ +

These extras will be done only if there is ample time left +after the completion of the whole project, so there is no way that they will +harm the main project. I am aware that new GSOC applicants like me tend to +propose a lot more than they can actually complete, so I have tried not to fall +in that trap. But these extras are here, because I plan to do them in the +future, within or after GSOC.  Also, as a +side note, in future, I wish to release this codes as a separate jS library for converting customized-xml formats into json +(I hope my mentoring org will allow this).

+ +

5.       +Csv:  Use +any well-documented csv parser and rest is the same.

+ +

6.       +Xlsx: This is the most challenging part. I +wouldn’t have tried this if there was no cross-browser external library to read +and write xlsx format. But thankfully and quite surprisingly, there is one +called Xlsx.js https://github.com/stephen-hardy/xlsx.js +. I am not much sure if I can pull off this part, but I am still including this +in the proposal mostly for my inspiration than anything else. Also, I know that +the Cytoscape project originally supported .xls, but I think its best kept to +Microsoft Excel for converting .xls into .xlsx .

+ +

 

+ +

Timeline:

+ +

 

+ +

1.       Before +June 17 :

+ +

o    Learn +more about:

+ +

o       Jquery, xregexp, csv-parser, json, xlsx.js and the graph formats.

+ +

o    Set +up development environment

+ +

2.       June +17 – July 6 (18 days): Implement xgmml converter

+ +

o    June +17 – June 29 (12 days): Implement xgmml parser

+ +

o    July +30 – July 5 (6 days): Rest of the converter

+ +

3.       July +5 – July 7 (3 days): Test converter with different xgmml files.

+ +

4.       July +8 – July 25 (18 days): Implement graphml converter

+ +

o     July 8 – July 19 (12 days): Implement graphml +parser

+ +

o    July +20 – July 25 (6 days): Rest of the converter

+ +

5.        July 26 – July 28 (3 days): Test graphml converter

+ +

6.       July +29 (Mid-term evaluation):  Deliver +fully-implemented xgmml and graphml parser.

+ +

7.       July +30: Take a day off from coding and analyze what went right and wrong in the +first-term. (How about a blog post? :D)

+ +

8.       July +31 – August 2 (3 days): Implement and test Sif and Nnf converter.

+ +

9.       August +3 – August 20 (18 days): Implement Gml converter (First 12 days for the +parser).

+ +

10.    August +21 – August 23 (3 days): Test Gml converter

+ +

11.    August +24 – August 27 (4 days):  Put all the converters +together and test them (Packaging).

+ +

12.    August +28 – September 3 (10 days): Prepare documentation and add inline comments in +the code.

+ +

13.    September +4 – September 16 (13 days): Buffer time (If everything is working, work on the +extras)

+ +

(Feedback will be obtained for all the converters from the +community and they will be of more importance than the extras)

+ +

Possible hurdles:

+ +

 

+ +

1.       Json +handler in Cytoscape.js might not be able to handle objects within the “data” +section. If so, request the developer or send a patch to the core project so +that it is supported.

+ +

2.       Make +sure the regular-expression based Gml parser is not buggy.

+ +

3.       The +input graph formats might not be well-formed (if manually created). (Maybe, add +a xml-checker and discard non well-formed files. Such +a checker might not be possible in case of non-xml based formats. )

+ +

What can I bring to the team?

+ +

 

+ +

ü  +Yes, I am committed in working hard for this +GSOC project this summer.  I do not have +any other commitment during the summer other than my college internals for the +next session which should be held near the end of August or the start of +September. I am not yet sure about the date, but I will ask for a one-week +break during that time. I hope it won’t be much of a problem.

+ +

ü  +Being my first GSOC project, I am also +super-excited about it, can’t wait to have a fruitful summer this year.

+ +

ü  +I wish to learn some more about the core +Cytoscape project but as I am not a Java developer, I +wish to linger with the Cytoscape.js project.

+ +
+ + + + diff --git a/Proposal/cyto_proposal_draft_files/colorschememapping.xml b/Proposal/cyto_proposal_draft_files/colorschememapping.xml new file mode 100644 index 0000000..6a0069c --- /dev/null +++ b/Proposal/cyto_proposal_draft_files/colorschememapping.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Proposal/cyto_proposal_draft_files/filelist.xml b/Proposal/cyto_proposal_draft_files/filelist.xml new file mode 100644 index 0000000..b5c14de --- /dev/null +++ b/Proposal/cyto_proposal_draft_files/filelist.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Proposal/cyto_proposal_draft_files/image001.png b/Proposal/cyto_proposal_draft_files/image001.png index 845e725..528fd5f 100644 Binary files a/Proposal/cyto_proposal_draft_files/image001.png and b/Proposal/cyto_proposal_draft_files/image001.png differ diff --git a/Proposal/cyto_proposal_draft_files/image002.png b/Proposal/cyto_proposal_draft_files/image002.png new file mode 100644 index 0000000..845e725 Binary files /dev/null and b/Proposal/cyto_proposal_draft_files/image002.png differ diff --git a/Proposal/cyto_proposal_draft_files/image003.png b/Proposal/cyto_proposal_draft_files/image003.png new file mode 100644 index 0000000..b2d9260 Binary files /dev/null and b/Proposal/cyto_proposal_draft_files/image003.png differ diff --git a/Proposal/cyto_proposal_draft_files/image002.jpg b/Proposal/cyto_proposal_draft_files/image004.jpg similarity index 100% rename from Proposal/cyto_proposal_draft_files/image002.jpg rename to Proposal/cyto_proposal_draft_files/image004.jpg diff --git a/Proposal/cyto_proposal_draft_files/themedata.thmx b/Proposal/cyto_proposal_draft_files/themedata.thmx new file mode 100644 index 0000000..c2dd8c1 Binary files /dev/null and b/Proposal/cyto_proposal_draft_files/themedata.thmx differ diff --git a/Proposal/~$to_proposal_draft.html b/Proposal/~$to_proposal_draft.html new file mode 100644 index 0000000..1ef1f43 Binary files /dev/null and b/Proposal/~$to_proposal_draft.html differ