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

Machine Learning for Network Layout Algorithms #152

Open
AlexanderPico opened this issue Feb 29, 2020 · 24 comments
Open

Machine Learning for Network Layout Algorithms #152

AlexanderPico opened this issue Feb 29, 2020 · 24 comments

Comments

@AlexanderPico
Copy link
Member

AlexanderPico commented Feb 29, 2020

Background

Cytoscape offers a variety of layout algorithms to be applied to a wide diversity of networks. For example, force-directed algorithms are often applied to protein-protein interaction networks; hierarchical layout algorithms are applied to ontologies and taxonomies; and there is active research in to new algorithms for biological pathways. Each of the layout algorithms has a tunable parameters that greatly affect the result. For example, the best parameters for a small, high-density network are clearly distinct from those for a large, low-density network.

Currently, Cytoscape provides a set of default values per algorithm that are the same for any given network. The optimization of the parameters is left to the individual user (via Layout -> Settings), but is often a neglected and completely unassisted activity.

This project would aim to develop a machine learning approach to provide custom default values for each user network. The approach would involve:

  1. Scripting a layout routine that increments parameters across a range of test networks. This script could be written in R or Python (per your preference), leveraging the CyREST interface and helper packages.
  2. Together with you mentors, a set of parameters would be defined to characterize networks, e.g., number of nodes, distributions of degree, etc.
  3. Together with your mentors, a set of fitness functions would be defined per layout type, e.g., what optimal spacing looks like for a wide diversity of PPI networks, etc. These functions would be used with 1 and 2 above to prepare a large training set of parameterized networks with optimized layout settings.
  4. A machine learning model would be trained, tested and validated in this dataset.
  5. A web service would be provided to return a custom set of layout parameters given a user's network.

Resources

Goal

To train an ML model to produce optimized layout parameters for a given networks. To provide this as a web service accessible to Cytoscape and other network tools.

Difficulty Level: Medium

You need to be familiar with machine learning, with demonstrated experience in either R or Python. You should also be familiar with web services. Familiarity with Cytoscape and networks is a plus.

Skills

  • R or Python (essential)
  • Machine learning principles (essential)
  • Machine learning packages (essential)
  • Layout algorithms (nice to have)
  • Cytoscape and networks (nice to have)

Public Repository

This would be developed in the Cytoscape ecosystem of tools within the http://github.org/cytoscape collection of open source repos.

Potential Mentors

Alex Pico
Dexter Pratt
Scooter Morris

Contact

Cytoscape-app-dev list

@singh-yashwant
Copy link

Hello @AlexanderPico , @dexterpratt , @scootermorris
I find this issue interesting and aligned with my skill set, is it open for gsoc 2020?
Thank you

@AlexanderPico
Copy link
Member Author

Yes. All open issues here are for GSoC 2020

@singh-yashwant
Copy link

Thanks for reply @AlexanderPico , I would like to work on this project. What would we the optimum way to start working on this issue?
Thank you

@AlexanderPico
Copy link
Member Author

A good start on this one would be Step 1: to prepare an R or Python notebook to apply one or more layouts with various parameters to a sample network. For R, see the RCy3 docs and vignettes ("Articles") here: http://cytoscape.org/RCy3/index.html

Include in your application any progress on noteboooks you have so far, your relevant background w.r.t. to the other components of the project (e.g., ML), and an outline of how you would go about tackling this project.

@bhaveshnarra
Copy link

Hi @AlexanderPico, @dexterpratt , @scootermorris .The project is really interesting and thanks for the helpful pointers. I would be submitting a proposal for this project.

@blackpanther99
Copy link

Hey @AlexanderPico , I would like to contribute to this project. Can I still do it?

@AlexanderPico
Copy link
Member Author

@blackpanther99 See https://summerofcode.withgoogle.com/ for GSoC rules and timeline.

@blackpanther99
Copy link

@AlexanderPico Thanks! I would like to submit a proposal for the issue as it is aligned with my interests. I am excited to contribute to NRNB.

@surbhi498
Copy link

Hi @AlexanderPico , I would like to contribute to this project. Can I still do it? I have a background in machine learning.

@dA505819
Copy link

@AlexanderPico @dexterpratt @scootermorris I have submitted the draft proposal. Please have a review on it.
Regards,

@AlexanderPico
Copy link
Member Author

AlexanderPico commented Mar 31, 2020

@dA505819 Dhruv, thanks for the proposal and sorry for the delayed feedback. Overall it looks complete and could be submitted (don't miss the deadline set by Google). However, if you have time to add more detail (or descriptions of areas needing more detail), I would recommend two areas: (1) Layout algorithms and their parameters. Pick at least one (e.g., force-directed) and describe its goal, its appraoch and a few of the key parameters that we want to determine default values for; and (2) Machine Learning in R. You mention that R is a good fit for ML, but you don't provide any mention of a particular package and how it works.

Also, neither the link to your "personal website" nor "blog" worked. Can you double-check those and update them?

And do you have any samples of R code that you've written before? Can you link to a notebook where you demonstrate some basic usage of RCy3 for example?

@dA505819
Copy link

dA505819 commented Mar 31, 2020

@AlexanderPico Sure! I will abide by your recommendations.
Sorry! I have mistakenly had a typo in links. I have updated them.

@dA505819
Copy link

dA505819 commented May 4, 2020

@AlexanderPico At last, the project didn't get selected for the program. ):
Will continue to become active open source contributor in the organisation.

@AlexanderPico
Copy link
Member Author

@dA505819 The competition was very steep this year. None of my projects were selected. Thanks again for your application and committment to open source!

@dA505819
Copy link

dA505819 commented May 4, 2020

@AlexanderPico All right! Look forward to continue contributing in cytoscape and the organisation.

@MaheshJethalia
Copy link

@AlexanderPico Hey I want to contribute in Cytoscape. I have some experience in GANs.

@AlexanderPico
Copy link
Member Author

Reopened for GSoC 2023

@AlexanderPico AlexanderPico reopened this Jan 7, 2023
@NehaAr
Copy link

NehaAr commented Jan 15, 2023

Hi @AlexanderPico i would like to contribute to cytoscope and looking forward for gsoc 2023 . I am working on predictive modelling for gynaecological cancers and cytoscope is one of the tools i use for my work. I am a machine learning student and helping in upgrading cytoscope would be a great project for me

@NehaAr
Copy link

NehaAr commented Jan 15, 2023

We could try to use Bayesian networks or physics based neutral networks for traing parameters , as then we would need to train the model based on relation between nodes and edges

@khanspers
Copy link
Contributor

@NehaAr: Thank you for your interest. We are still in the process of applying as a mentoring organization; mentoring organizations will be announced on Feb 22. Check back after that date for more information.

@khanspers
Copy link
Contributor

NRNB has been accepted as a mentoring organization for GSoC 2023! Contributor applications open on March 20. Here are some useful links:

GSoC contributor guide
NRNB project proposal template
Eligibility requirements
Full program timeline

@Paulooh007
Copy link

Paulooh007 commented Mar 8, 2023

Hi @AlexanderPico @khanspers ,
I'm Paul, a 4th year engineering student from Nigeria. I'm profitient in Machine Learning and Deep learning using pytorch and tensorflow and also building backend applications using Flask.
I find this project interesting because it aligns with my skill set, and would love to contribute.

I'll go ahead to download Cytoscape to try out layouts and see how to write python scripts with it.

@bhanushri123
Copy link

Hi @AlexanderPico
I am Bhanushri a sophomore at Indian Institute Of technology Mandi, I am currently pursuing my Btech in Engineering Physics. I am proficient in Machine Learning , Deep learning .
I find this project interesting and would love to contribute.
Could you please give me more info regarding this.
I am attaching my resume here pls contact the given email.

(Resume)
Bhanu_Resume.pdf

@khanspers
Copy link
Contributor

khanspers commented Feb 22, 2024

NRNB has been accepted as a mentoring organization for GSoC 2024. The contributor application period is March 18 – April 2. Here are some useful links:

GSoC contributor guide
NRNB project proposal template
Eligibility requirements
Full program timeline

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