nrnb / GoogleSummerOfCode

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

Develop new features for Cytoscape App - cyPlot #197

Closed yihangx closed 1 year ago

yihangx commented 2 years ago

Background

cyPlot (written in Java) is a Cytoscape App, and it provides the ability to plot data through GUI or CyCommands/REST. cyPlot uses plotly.js (https://github.com/plotly/plotly.js/) to achieve plot related functions. cyPlot also customizes plotly.js and PlotlyEditor to suit the needs of CyPlot. It currently support plots include heatmaps, violin plots, volcano plots, dot plots, line graphs, and scatter plots.

Goal

Develop new features for an existing Cytoscape App - cyPlot (https://apps.cytoscape.org/apps/cyplot)

Difficulty Level: Medium

Customize plotly.js for the cyPlot App may have some difficulty.

Size and Length of Project

Skills

Essential skills: Java and JavaScript Nice to have skills: React

Public Repository

https://github.com/RBVI/CyPlot/tree/Develop

Potential Mentors

Scooter Morris Alex Pico Yihang Xin

Kartikkp07 commented 2 years ago

Hi @yihangx , I am Kartik Kumar Pawar, a CSE sophomore at BITS PILANI. I have good experience using python for about 6 years.I am also adept in JAVA with knowledge of OOPS and basic design patterns,I have also worked with both SQL and NoSQL database systems.I am familiar with javascript and have worked with React and nodeJS as well. I am really excited to know more about this project and contribute to it, with the aim of becoming a GSOC 22 contributor as well. I kindly request you to guide me for the same so I can start as soon as possible.

AlexanderPico commented 2 years ago

@Kartikkp07 Thanks for your interest. I'd recommend starting with the github repo link for CyPlot above. Can you build the app? Can you run the app in Cytoscape? Can you make a small, trivial edit to the code and then rebuild and run?

Then review the list of goals and brainstorm on how you'd implement those. Ask specific questions about the code or goals.

AlexanderPico commented 2 years ago

And if anyone is new to developing Java extensions, here is a good "ladder" for Cytoscape app development in particular: https://github.com/cytoscape/cytoscape/wiki//Cytoscape-App-Ladder

Yash-g17 commented 2 years ago

Hi @AlexanderPico I am Yash Gupta , a third year undergraduate. I am looking forward to contribute to this project for GSOC '22 . I have been doing projects in HTML , CSS and Javascript for about two years now and I've been coding in JAVA for about 4 years now . Really excited to work on this project as a part of GSOC '22. Is there any task or a criteria under which we'd be selected ?

AlexanderPico commented 2 years ago

The best applicants are those that invest time into understanding the project (via the links above) and demonstrate their understanding by sharing their design and implementation ideas (in the application) and asking detailed questions when they get stuck (before the application).

Yash-g17 commented 2 years ago

@AlexanderPico I have gone through the Cytoscape App Development ladder . I tried building the CyPlot app but the server for downloading the resources(dependencies) has been down for quite a long time now. image

Kartikkp07 commented 2 years ago

@AlexanderPico I went through the links and documentation provided on how to setup cytoscape,build and run apps ,etc. The build using the pom.xml file provided in the cyPlot files has been successful after making a few system changes,but when I use these cyPlot tools, I am getting some errors:

Screenshot 2022-02-20 at 4 05 05 PM

I kindly request you to help me resolve the same.

AlexanderPico commented 2 years ago

@yihangx Can you build the CyPlot app without errors. Do you have suggestions for @Kartikkp07 ?

AdamStuart commented 2 years ago

@yihangx https://github.com/yihangx Can you build the CyPlot app without errors. Do you have suggestions for @Kartikkp07 https://github.com/Kartikkp07 ?

As I read this, the build is now working, but there is a run time exception thrown. I don’t remember much about it, but the volcano plot is inserting a ghost event to draw bounds on the mirror side of the axis. Sounds like a lack of range checking.

Adam (the original author)

Kartikkp07 commented 2 years ago

I did some exploring and then I figured out there was some issue with the tables.As of now I have visualised as well as analysed the network created from galFiltered.csv provided in the sampleData of the Cytoscape app.However when I try to use any of the Cyplot tools to display a plot using certain columns from the node table it is now showing just a blank CyBrowser window (not throwing run time exception this time).

I felt that there must have been some other needs for the data present so I just tried to use the default tools of Plot Scatter and Plot Histogram by selecting the columns to be used for the plot ,but unfortunately this also resulted in just a blank display.

Is there some additional requirement to plot them? (because the documentation had mentioned that this should give the plot as required)

khanspers commented 2 years ago

NRNB has officially been accepted as a mentoring organization for GSoC 2022! Here are some useful links:

Kartikkp07 commented 2 years ago

Hi,I just wanted to know if this project is still active and being considered as one of the potential projects for GSOC'22.

AlexanderPico commented 2 years ago

@Kartikkp07 Sorry for the confusion. There are two different plotting apps for Cytoscape at the moment. Ignore the "Plot Scatter" and "Plot Histogram" options. CyPlot is accessed from the Tools menu.

Kartikkp07 commented 2 years ago

I had tried both,but both didn't seem to work.

AlexanderPico commented 2 years ago

Can you list the steps you are doing? Provide details about exactly what you are clicking on and which column you are choosing, etc. Information about your OS and Java version would also be relevant.

Kartikkp07 commented 2 years ago

It seems like it was unable to plot when I just imported the .csv file and specifically selected the source and target column.However I used a different way and its working perfectly fine now,I am successfully able to plot using the Cyplot under the Tools option.

Kartikkp07 commented 2 years ago

I was just observing the other projects and was curious to know if we can start discussing the details for drafting the proposals like setting the milestones ,etc.

AlexanderPico commented 2 years ago

Yes, we are here to give feedback on draft proposals.

Yash-g17 commented 2 years ago

It seems like it was unable to plot when I just imported the .csv file and specifically selected the source and target column.However I used a different way and its working perfectly fine now,I am successfully able to plot using the Cyplot under the Tools option.

Hello Kartik , Can you please tell me how were you able to plot the table using cyplot in the tools menu

Kartikkp07 commented 2 years ago

import .csv file using the following steps: file->import->table from file ,and then just use cyplot to plot

Kartikkp07 commented 2 years ago

Yes, we are here to give feedback on draft proposals.

Hi,I have mailed you the draft proposal through my college email id:f20200054@pilani.bits-pilani.ac.in.I kindly request you to review the same and suggest the required changes along with further tips to proceed on with this project.

khanspers commented 2 years ago

A reminder that the application period opens on Monday April 4. Proposals to NRNB must be submitted on the official GSoC Site (https://summerofcode.withgoogle.com/) before April 19, 18:00 UTC to be considered, and contributors are encouraged to submit proposals in draft format early, so that mentors can give feedback directly at the GSoC site.

Kartikkp07 commented 2 years ago

@AlexanderPico @scootermorris I was working through the codebase and was able to create the functions to convert the data to logarithmic values for implementing log scale,and to first test it out I decided to change the volcano plot of having negative log to simple positive log along with the required heading changes when displaying the graph in the CyBrowser and was successfully able to achieve it.

Screenshot 2022-04-01 at 3 02 31 PM Screenshot 2022-04-05 at 3 48 27 AM

In addition to this I was also able to add another plot type of Histogram under the Cyplot tools just for visibility as of now,but it is yet to be implemented.

Screenshot 2022-04-05 at 3 56 39 AM

Besides this I had a doubt regarding the fourth goal of implementing log scale.

Do we have to create an additional plot type of "logarithmic scatter plot" and so on or just change either the x or y axis or both of the current scatter plot to log of their current respective values (like it has been done int the volcano plot)?

scootermorris commented 2 years ago

This is a great start! Make sure to include this in your proposal write-up along with details on how you intend to polish, document and make these production-ready. In general, I think that the idea is to modify the UI to support things like log and log/log axes rather than a completely different plot type.

Kartikkp07 commented 2 years ago

Thanks for the clarification ,had a totally different interpretation of the goal. I will make sure to include this in my proposal as well.

Kartikkp07 commented 2 years ago

Hi I was further updating my proposal and wanted to know the specific changes in UI expected to be completed in this project,besides the one discussed above.

Kartikkp07 commented 2 years ago

Also I was a bit confused and was unable to find the code which involves linear regression,could you please help me with the same.

scootermorris commented 2 years ago

Hi there, There is no code that computes the linear regression, that's one of the features we hope you can add.

AlexanderPico commented 2 years ago

IMPORTANT REMINDER: GSoC 2022 is for new “beginners” to open source.

Applicants are expected to review eligibility requirements prior to applying. We can not accept applications from contributors with prior open source development experience. From the GSoC FAQ https://developers.google.com/open-source/gsoc/faq:

Can someone already participating in open source be a GSoC Contributor?

The goal of GSoC is to bring new contributors into open source organizations. GSoC can also help beginner contributors learn the ins and outs of open source while being mentored by experienced community members. GSoC is for new and beginner contributors to open source, it is not for experienced contributors to open source.

Kartikkp07 commented 2 years ago

@scootermorris for the prior contributions do I only mention if I have sent any pull requests or is it okay to list the changes I have made on my system such as those mentioned above along with a few comment corrections in the code?

khanspers commented 1 year ago

Closing in preparation for GSoC 2023.

AlexanderPico commented 1 year ago

Reopened for GSoC 2023

AnshumanGoel commented 1 year ago

Can I work on this project for GSOC 2023. Also can you tell me how to get started on this project? Thank you.

TensaCoder commented 1 year ago

Hi @AlexanderPico, I'm Herschel Menezes, a CSE Junior from Mumbai. I am very keen on learning on contributing with the organisation. I'm proficient in Python and JavaScript. I am quite familiar SQL and NoSQL databases. I have worked with React and Node.js in the past. I also have some basic knowledge of Java.

Could you please guide me as I'm new here. Highly obliged, Thank you.

LuciferTyagi commented 1 year ago

Hi @AlexanderPico I am Yagyansh Tyagi, a CSE-AI 2nd year student at ABESIT. I have good experience using python for about 3 years. I am also skillful in JAVA with knowledge of OOPS, Overloading & Overriding, I have also worked with database systems. I am familiar with javascript and have worked with nodeJS as well. I am really excited to know more about this project and contribute to it, intending to become a GSOC 23 contributor as well. I kindly request you to guide me for the same so I can start as soon as possible.

maximew7878 commented 1 year ago

I want to work on this issue please assign me this issue.

AlexanderPico commented 1 year ago

@maximew7878

I want to work on this issue please assign me this issue.

We don't assign issues here. These are project ideas for you to base your applications upon. https://summerofcode.withgoogle.com/how-it-works

Ayush0202 commented 1 year ago

Hi @AlexanderPico , I am Ayush Kumar Gupta. I am currently in my prefinal year at Delhi Technological Univerisity. I came across this project and would like to know more and help build it. I have good experience working with Web Technologies. I have worked with JavaScript and React in the past as well. Though I have never worked on Java before, I have been doing Data Structures and Algorithms in C++, so I think I would be able to learn it simultaneously. Looking forward to hearing back from you. Thanks! Regards.

khanspers commented 1 year ago

@Ayush0202 : 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

Deepanshu-Choudhary commented 1 year ago

Hi @khanspers, My name is Deepanshu Choudhary and I'm a sophomore at BITS-Pilani. I have good experience with Java, JSP, Servlets, MySQL, DHTML and Node.js. I am eager to learn new things and more about open-source projects. I am interested in this project and looking forward for contributing to it. Please guide me, How do I start? Thank you

Rohitrky2021 commented 1 year ago

Can I work on this project for GSOC 2023. Also can you tell me how to get started on this project? As i have done Advance Java

Thank you.

Deepanshu-Choudhary commented 1 year ago

Is this project open for 2023 Gsoc?

RaminGahramanzada commented 1 year ago

Hello, My name is Ramin Gahramanzada, and I am interested in joining the cyPlot project to contribute to its development. I am reaching out to you to learn more about the project.

I aim to add new features and update the user interface of cyPlot. Specifically, I plan to work on adding histogram functionality, simplifying linear regression, and implementing logarithmic scaling for scatter plots, line plots, and histograms.

I possess the necessary skills for the project, including Java and JavaScript. I would appreciate any guidance or support you could offer to help me get started.

Thank you for your time and consideration. I look forward to the opportunity to contribute to cyPlot.

Best regards, Ramin Gahramanzada @AlexanderPico @yihangx @scootermorris

Kartikkp07 commented 1 year ago

Hi everyone,I am really glad that my proposal for this project got accepted under GSOC'23, looking forward to working together!!! Thank you for all your guidance and support up till now @AlexanderPico @khanspers @scootermorris @yihangx @AdamStuart!

AlexanderPico commented 1 year ago

Congrats! Your application was excellent. Looking forward to working with you too.

khanspers commented 1 year ago

Congrats @Kartikkp07!

khanspers commented 1 year ago

This project is an active GSoC 2023 project. Closing this issue because it is no longer available for other contributors/students.