nrnb / GoogleSummerOfCode

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

Create Cytoscape Automation services based on existing code libraries #116

Closed bdemchak closed 5 years ago

bdemchak commented 6 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 application, all Cytoscape operations are performed manually using a mouse and keyboard. The new Cytoscape Automation feature set enables Python or R programmers to call Cytoscape to chain together a number of previously manual steps.

To date, protocols describing important biological analyses have been published in terms of mouse clicks and keyboard strikes. Cytoscape Automation has the potential of greatly improving the productivity of network biologists by automating these laborious, hard-to-repeat workflows and showing the way for network biologists to write novel, reliably repeatable workflows.

To bootstrap this revolution, we must upgrade a number of Cytoscape internal and external code bundles (called Apps) to present functional interfaces capable of supporting Cytoscape Automation calls. This involves surveying and understanding each Apps' functionality, and then formulating efficient and effective APIs for use by workflows. It also involves writing Python or R code to test the APIs.

For example, Cytoscape's Network Merge app (http://apps.cytoscape.org/apps/networkmerge) enables users to merge two networks in a number of different ways. Adding Cytoscape Automation features to this app would empower workflows written in Python or R to accomplish the same thing.

It's likely that in the process of creating Cytoscape Automation APIs, we will discover novel functionality that can be added at the same time, thereby increasing the value of Cytoscape to both manual and automated users.

Skills acquired during this project will be useful for a future in computer science, network biology or bioinformatics.

Goal

Upgrade a number of existing Cytoscape internal and external apps to support Cytoscape Automation services, and create Python- or R-based tests that demonstrate their functionality.

Technologies

Upgrading Cytoscape apps will require basic competence in Java. Writing tests and upgrading calling libraries will involve basic Python and/or R skills.

Difficulty level: 2

Demonstrated experience Java and Python and/or R coding is required. Familiarity with biology concepts, networks and graphs is a plus.

Potential mentors

Barry Demchak and Keiichiro Ono

Contact

Barry Demchak (idekerlab.bdemchak@gmail.com)

souravsingh commented 6 years ago

@bdemchak I am interested in working on the project. What work would I need to do for getting an understanding of the project?

bdemchak commented 6 years ago

Hi, Saurav –

Thanks for your interest. I apologize for the late reply … I have been on vacation until yesterday.

Are you still interested?

Here is some background material on Cytoscape Automation: https://github.com/cytoscape/cytoscape-automation/wiki

It’s a great project and means a lot to Cytoscape, which itself is a great project.

What do you think??

Can you tell us more about your experience and interests??

From: Sourav Singh [mailto:notifications@github.com] Sent: Thursday, January 18, 2018 7:36 PM To: nrnb/GoogleSummerOfCode GoogleSummerOfCode@noreply.github.com Cc: Barry Demchak idekerlab.bdemchak@gmail.com; Mention mention@noreply.github.com Subject: Re: [nrnb/GoogleSummerOfCode] Create Cytoscape Automation services based on existing code libraries (#116)

@bdemchak https://github.com/bdemchak I am interested in working on the project. What work would I need to do for getting an understanding of the project?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/nrnb/GoogleSummerOfCode/issues/116#issuecomment-358857658 , or mute the thread https://github.com/notifications/unsubscribe-auth/ADhl3o9zog7SX0o_Bv52CQLcTdxwZ22Aks5tMA29gaJpZM4RGPtg . https://github.com/notifications/beacon/ADhl3l-J4gjp3-KRIhaSKK0BEXJ5mrMUks5tMA29gaJpZM4RGPtg.gif

souravsingh commented 6 years ago

Hello, @bdemchak Thanks for the reply!

I am interested in working on the project. I wil take a look at the resource given and try to do a few experiments with the service.

I am currently a final year undergraduate student and a Software carpentry instructor and I am interested in the field of Phylogenetics, Proteomics, High-Throughput sequencing and Machine Learning.

bdemchak commented 6 years ago

Good ... sounds like a plausible fit. Please let me know if you have questions or observations.

On Tue, Jan 30, 2018 at 12:17 AM, Sourav Singh notifications@github.com wrote:

Hello, @bdemchak https://github.com/bdemchak Thanks for the reply!

I am interested in working on the project. I wil take a look at the resource given and try to do a few experiments with the service.

I am currently a final year undergraduate student and a Software carpentry instructor and I am interested in the field of Phylogenetics, Proteomics, High-Throughput sequencing and Machine Learning.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/nrnb/GoogleSummerOfCode/issues/116#issuecomment-361509847, or mute the thread https://github.com/notifications/unsubscribe-auth/ADhl3h2BdxO4WX7RyvfBgfcWet6ckxncks5tPtAXgaJpZM4RGPtg .

-- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv : Barry Demchak, PhD : National Resource for Network Biology (NRNB) : UC San Diego : Department of Medicine : Biomedical Research Facility II, Room 3A15 : http://orcid.org/0000-0001-7065-7786 : Land line: (858) 822-4756, Mobile: (858) 452-8700 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

joe83830 commented 6 years ago

Hi @bdemchak ,

My name is Joe Liao, I'm interested in exploring possibilities on this particular project. I have experience building Java JAX-RS (w/ Jersey) servers, and have experience using python (Flask server, data science, elementary unit testing). I also have experience using tools like Git, AWS, GCP, and CircleCI. Is there a chance that you could point me to the source code of Cytoscape and examples of possible areas for improvement?

A little background on myself: Currently enrolled in M.S. in Information Systems (Health Tech) at Cornell Tech, Cornell University. Used to study chemistry and have done research projects at school's biochem lab.

joe83830 commented 6 years ago

Hi, @bdemchak,

My bad, I just saw the github repo, and the wonderfully documented "Cytoscape Automation FAQ". Could you perhaps point me to an example of a possible area of improvement, and briefly talk about your expectations for the project?

Thanks!

bdemchak commented 6 years ago

Hi, Joe --

Glad to meet you.

An example of app-needing-automation would be Merge (http://apps.cytoscape.org/apps/networkmerge). Its code is here: https://github.com/cytoscape/network-merge

Most apps are created by community members and contributed to the app store. The apps we're concerned with are created by the Cytoscape core developers and are in the Cytoscape github repository. Merge is an example. There are others.

So, the trick would be to determine which core apps (and maybe a few closely related apps) are currently in the set, define their REST interface, and then upgrade and test. A set of re-executable test suites would also benefit us by allowing us to test apps that haven't had any test coverage in the past.

Does this help you understand more??

joe83830 commented 6 years ago

Understood.

I will dig deeper into the links above and the repo in general, thanks!

khanspers commented 5 years ago

Completed.