nrnb / GoogleSummerOfCode

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

Machine Learning for Network Layout Algorithms #152

Open AlexanderPico opened 4 years ago

AlexanderPico commented 4 years ago

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

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 commented 4 years ago

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

AlexanderPico commented 4 years ago

Yes. All open issues here are for GSoC 2020

singh-yashwant commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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

AlexanderPico commented 4 years ago

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

blackpanther99 commented 4 years ago

@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 commented 4 years ago

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

dA505819 commented 4 years ago

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

AlexanderPico commented 4 years ago

@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 commented 4 years ago

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

dA505819 commented 4 years ago

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

AlexanderPico commented 4 years ago

@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 commented 4 years ago

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

MaheshJethalia commented 4 years ago

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

AlexanderPico commented 1 year ago

Reopened for GSoC 2023

NehaAr commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

@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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 4 months ago

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