nrnb / GoogleSummerOfCode

Main documentation site for NRNB GSoC project ideas and resources
114 stars 38 forks source link

Finish and deliver a GPU-based rendering engine for Cytoscape #51

Closed bdemchak closed 7 years ago

bdemchak commented 8 years ago

Background

Cytoscape is a highly popular open source bioinformatics software platform for visualizing, analyzing, and publishing graphs or networks representing molecular interactions, gene expression, other biological data. As a desktop platform, Cytoscape is one of the most successful open source projects in biology, and its Java-based graph rendering engine is highly tuned.

However, a GPU-based renderer (via OpenGL) has been prototyped and found to deliver far better performance. While it is mostly complete, a number of features must be tuned or finished, including context menu support, camera controls, positioning edges on node boundaries, and bent edges. Additionally, the renderer must be prepared for use by the greater Cytoscape user base, which includes diverse GPU hardware.

Goal

Tune and finish a new GPU-based Cytoscape graph renderer and assist in delivering it to the Cytoscape user community

Technologies

Cytoscape itself is Java/Swing-based, and the GPU-based render is OpenGL-based. Implementing context menus and interfacing with Cytoscape requires Java, while improving the render requires a basic knowledge of OpenGL -- the better the OpenGL skills, the more possibilities for excellent rendering. Like the Java code, the OpenGL code must be robust across a wide variety of reasonably current GPUs.

Difficulty level: 3

Deep experience with GPU-based rendering via OpenGL is required. Familiarity with network rendering is a plus.

Potential mentors

Barry Demchak, Scooter Morris and Keiichiro Ono Alex Williams

Contact

Barry Demchak (idekerlab.bdemchak@gmail.com) Alex Williams (alex.williams@gladstone.ucsf.edu)

neetopia commented 8 years ago

Hi, I'm quite interested in this project, and I have some experience in GPU and opengl, but I haven't used Cytoscape before. Can I get some more information about this project, like some similar products, so that I can have a clearer idea about what to write in proposal?

khanspers commented 8 years ago

@roaringacw: The deadline for applications is coming up fast (Friday noon PST). Please contact the mentor directly for more information and guidance: idekerlab.bdemchak@gmail.com

bdemchak commented 8 years ago

Hi, Gongtu65 –

I’m probably your best source for information on this. Can you meet with me tomorrow (Thursday 3/24)? Where are you physically??

Also, can you provide more information about your GPU and openGL experience? I’d be glad to talk with you further.

From: gongtu65 [mailto:notifications@github.com] Sent: Tuesday, March 22, 2016 10:21 PM To: nrnb/GoogleSummerOfCode Cc: Barry Demchak Subject: Re: [GoogleSummerOfCode] Finish and deliver a GPU-based rendering engine for Cytoscape (#51)

Hi, I'm quite interested in this project, and I have some experience in GPU and opengl, but I haven't used Cytoscape before. Can I get some more information about this project, like some similar products, so that I can have a clearer idea about what to write in proposal?

— You are receiving this because you were assigned. Reply to this email directly or view it on GitHub https://github.com/nrnb/GoogleSummerOfCode/issues/51#issuecomment-200185935 https://github.com/notifications/beacon/ADhl3l40OoQJEnnCZCYUk7Ni4m-QnYn7ks5pwM3AgaJpZM4HRDBT.gif

neetopia commented 8 years ago

I'm physically in San Diego now, and for the openGL experience, I took a computer graphics course during my undergraduate study, and did some simple openGL rendering experiments like simulating a solar system.

bdemchak commented 8 years ago

Hi, Gongtu65 --

I'm not so sure about this. This project is fairly complex and requires proficiency in OpenGL and the ability to quickly pick up Cytoscape/Java. If I were an OpenGL expert, I would be in a position to mentor you on this. But I'm not, and so I'm concerned that you would not be able to take charge of this project independently.

There are two days for you to survey the Cytoscape GPU architecture and code, and then create a proposal. I can help review and refine your proposal, but it needs to originate with you.

I'm happy to give you access to the code and architecture documents we have if you'd like to study them yourself to see whether you can understand them and make a proposal.

Would you like to proceed?

On Wed, Mar 23, 2016 at 4:49 PM, gongtu65 notifications@github.com wrote:

I'm physically in San Diego now, and for the openGL experience, I took a computer graphics course during my undergraduate study, and did some simple openGL rendering experiments like simulating a solar system.

— You are receiving this because you were assigned. Reply to this email directly or view it on GitHub https://github.com/nrnb/GoogleSummerOfCode/issues/51#issuecomment-200586042

vvvvvvvvvvvvvvvvvvvvvvvvvvvv : Barry Demchak, PhD : UC San Diego, Department of Medicine : https://sosa.ucsd.edu/confluence/display/~bdemchak/Home : (858) 452-8700 vvvvvvvvvvvvvvvvvvvvvvvvvvvv

neetopia commented 8 years ago

Well, it seems pretty hard, but maybe you can give me access to code and documents first, I'll try to understand them. My email is roaringacw@gmail.com

bdemchak commented 8 years ago

Great ... here is the relevant project material

https://github.com/cytoscape/zugzwang

Places to start: moredetails.pdf and abstract-arch.pdf

This fits into the much Cytoscape larger code base, which is at https://github.com/cytoscape/cytoscape. Going into the Cytoscape core, though, is a pretty big topic.

Feel free to ask questions ...

On Wed, Mar 23, 2016 at 9:18 PM, gongtu65 notifications@github.com wrote:

Well, it seems pretty hard, but maybe you can give me access to code and documents first, I'll try to understand them. My email is roaringacw@gmail.com

— You are receiving this because you were assigned. Reply to this email directly or view it on GitHub https://github.com/nrnb/GoogleSummerOfCode/issues/51#issuecomment-200657370

vvvvvvvvvvvvvvvvvvvvvvvvvvvv : Barry Demchak, PhD : UC San Diego, Department of Medicine : https://sosa.ucsd.edu/confluence/display/~bdemchak/Home : (858) 452-8700 vvvvvvvvvvvvvvvvvvvvvvvvvvvv

matthiaskoenig commented 7 years ago

Is anybody working on this project? Is there some timeline to implement this?

I am looking for a high-performance rendering engine for Cytoscape to be able to work with large networks and show many details. Some solution which is implemented using OpenGL. Zugzwang was the only thing I found in this direction. Are there any alternative faster renderer for Cytoscape right now?

khanspers commented 7 years ago

GSoC 2017 selected project