Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Cytoscape Automation services based on existing code libraries #116

Closed
bdemchak opened this issue Dec 18, 2017 · 9 comments
Closed

Comments

@bdemchak
Copy link

bdemchak commented Dec 18, 2017

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
Copy link

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

@bdemchak
Copy link
Author

bdemchak commented Jan 30, 2018 via email

@souravsingh
Copy link

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
Copy link
Author

bdemchak commented Jan 30, 2018 via email

@joe83830
Copy link

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
Copy link

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
Copy link
Author

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
Copy link

Understood.

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

@khanspers
Copy link
Contributor

Completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants