nrnb / GoogleSummerOfCode

Main documentation site for NRNB GSoC project ideas and resources
119 stars 40 forks source link

Simple Enrichment Tool for Cytoscape #165

Closed AlexanderPico closed 3 years ago

AlexanderPico commented 3 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 it is capable of integrating observational data from numerous sources.

Currently, when users are working with a network of connected genes or proteins, they have to use external web tools to perform simple enrichment analyses, e.g., using g:Profiler. However, g:Profiler provides a web service interface, so it would be relatively simple to provide access to this same service from within Cytoscape. More advanced tools for enrichment already exist as Cytoscape apps, such as BiNGO and ClueGO. The goal here would be to keep it simple and produce an app that could eventually be included in the core distrubtion of Cytoscape.

Goal

Produce a simple Cytoscape app that provided access to the g:Profiler enrichment service. Any network or selection of nodes in Cytoscape could be used as the input gene set, which would then be sent to g:Profiler for analysis. The returned results would be saved as a CyTable and displayed in the Results Panel or as a Table Panel tab.

Difficulty Level 2

Familiarity with web service APIs and good Java programming skills are required.

Skills

Essential skills: Java, Web services Nice to have skills: Cytoscape, Enrichment analysis

Public Repository

A new, open source repo would be started here: https://github.com/cytoscape/

Potential Mentors

Rukmini-Meda commented 3 years ago

Hello, I would like to explore this issue more. I am Rukmini, a computer science undergrad from IIIT Sri City. I have worked using Django REST before and familiar with basics of webservices. I have basic knowledge of Java. Can you list a few resources that might be useful so that I can work on this issue?

AlexanderPico commented 3 years ago

I'd recommend looking into g:Profiler's API and Cytoscape App development.

ighosh98 commented 3 years ago

Hi! I would like to work on this project. I am a final year Computer Science undergrad from BITS Pilani with a minor in Biological Sciences. I have experience working with Java and building web services using Spring. Are there any particular resources I should read up for understanding enrichment analysis?

dexterpratt commented 3 years ago

Hi Indraneel,

gprofiler is a very nice web tool for this and its REST service would be a candidate for the basis of the proposed Cytoscape tool https://biit.cs.ut.ee/gprofiler/

Here is an article by a set of Cytoscape developers on pathway gene set analysis. Not exactly the workflow we have in mind, but covers a lot of the same ground: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6607905/

The Wikipedia page is a nice overview of enrichment analysis tools: https://en.wikipedia.org/wiki/Gene_set_enrichment_analysis

The most commonly used set of gene signatures to power enrichment analysis is the Gene Ontology (GO). Here is their page on the subject: http://geneontology.org/docs/go-enrichment-analysis/

Dexter

On Wed, Jan 13, 2021 at 7:50 PM Indraneel Ghosh notifications@github.com wrote:

Hi! I would like to work on this project. I am a final year Computer Science undergrad from BITS Pilani with a minor in Biological Sciences. I have experience working with Java and building web services using Spring. Are there any particular resources I should read up for understanding enrichment analysis?

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/nrnb/GoogleSummerOfCode/issues/165#issuecomment-759907627, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIOVLG5ADTP5KC7DSE7HBLSZZSYFANCNFSM4VALQQ2A .

ighosh98 commented 3 years ago

@dexterpratt I went through the resources you had attached. I wanted to understand what should the UI design of the app be like. Should the app UI design be similar to the BiNGO and ClueGO apps?

AlexanderPico commented 3 years ago

BiNGO and ClueGO are great apps. We definitely don't want to reproduce them and all their functionality. There will be use cases where those are still recommended over our "simple enrichment tool" we are proposing here.

The goal here is to have as little UI as possible in fact. Imagine having Cytoscape open and you've imported a network. Without clicking anything, I'd like our app to perform enrichment on that network and provide a simple summary report (e.g., top filtered results) in a new Table Panel tab. Maybe there are a few settings to be tweaked as preferences, but a simple enrichment analysis should require much more than that.

khanspers commented 3 years ago

This is an active GSoC 2021 project. The issue will be closed for the duration of GSoC since it is no longer available to other students.