nrnb / GoogleSummerOfCode

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

Cytoscape Automated Testing Suite for Biomedical Visualization #233

Open jingjingbic opened 5 months ago

jingjingbic commented 5 months ago

Background

Cytoscape is an invaluable open-source tool in the field of biomedical research, offering robust data visualization capabilities, particularly for molecular networks. Its ecosystem, enriched by over 370 specialized apps available in the App Store, facilitates diverse functionalities ranging from database access to novel analysis methods. However, the recent development of Cytoscape Web, an online variant, has introduced complexities in maintaining the platform's integrity and quality across versions. As the ecosystem expands, the challenge of ensuring consistent and reliable product releases grows. Thus, the development of sophisticated testing tools becomes imperative to uphold the high standards of Cytoscape's offerings.

Goal

The primary goal of this project is to create an automated testing framework tailored for Cytoscape, with a specific focus on scientific figure preparation—a critical use case for the software. This framework will utilize a collection of Cytoscape session files and CX documents, integral in generating figures for various scientific publications. It aims to verify whether the newest versions of both Cytoscape and Cytoscape Web can accurately reproduce these figures. A key aspect of this project involves ensuring that figures produced by Cytoscape Web are consistent with those generated by the desktop version. The framework will facilitate communication with Cytoscape Desktop through the CyRest API and automate tests on Cytoscape Web using renowned frameworks like Playwright . A significant part of the testing process will involve comparing newly generated images against established 'gold standard' figures, employing image analysis tools (OpenCV, ImageMagick) and advanced language models (such as Gemini and GPT-4) to produce comprehensive test reports.

Difficulty Level: Medium

Size and Length of Project

Skills

Javascript, TypeScript, Python, Cytoscape

Public Repository

Potential Mentors

ayushkoli772 commented 5 months ago

Hello @jingjingbic,

I'm Ayush Koli, and I've thoroughly reviewed the goals of this project. I have a clear understanding of the project's expected outcomes and have outlined a basic roadmap for its completion. I have experience in working with TypeScript, JavaScript, Playwright, Python and also have knowledge about machine learning required to effectively implement this project.

However, aside from this project, I'm eager to prove myself as a valuable contributor to the NRNB. Could you please provide guidance on how I can start contributing effectively?

Thank you for your time and guidance. I look forward to being a part of the NRNB community and also contributing to the success of this project :)

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

ayushkoli772 commented 4 months ago

Hello @khanspers @jingjingbic @d2fong @coleslaw481, I'm reaching out to clarify a point regarding this project.

I wanted to confirm my understanding regarding the 'gold standard' figures. From what I gather, these are pre existing visualizations that serves as benchmark for evaluating accuracy of visualizations produced by Cytoscape Web and Cytoscape desktop version. Is this correct, or are there additional considerations we need to take into account?

Your insights and guidance on this matter would be very valuable as we move forward with the project.

Thank you for your time and consideration :)

jingjingbic commented 3 months ago

Hello @khanspers @jingjingbic @d2fong @coleslaw481, I'm reaching out to clarify a point regarding this project.

I wanted to confirm my understanding regarding the 'gold standard' figures. From what I gather, these are pre existing visualizations that serves as benchmark for evaluating accuracy of visualizations produced by Cytoscape Web and Cytoscape desktop version. Is this correct, or are there additional considerations we need to take into account?

Your insights and guidance on this matter would be very valuable as we move forward with the project.

Thank you for your time and consideration :)

You are correct. Those are existing figures or some figures that can be generated from a CX2 file using Cytoscape Desktop. We need to compare them with the figures generated from the same CX2 file using Cytoscape Web.

ayushkoli772 commented 3 months ago

Thank you @jingjingbic, for clarifying the approach. I've now gained a clear understanding of the project's scope and requirements.

To demonstrate my capability and contribute effectively to the project, I would appreciate it if you could assign me specific tasks aligned with the project's goals.

Additionally, I would like to inquire about any other communication channels or platforms where I can reach out to in the future for discussions regarding project progress and any challenges encountered.

Thank you once again for your guidance and support. I look forward to working together on this exciting project.

jingjingbic commented 3 months ago

Thank you @jingjingbic, for clarifying the approach. I've now gained a clear understanding of the project's scope and requirements.

To demonstrate my capability and contribute effectively to the project, I would appreciate it if you could assign me specific tasks aligned with the project's goals.

Additionally, I would like to inquire about any other communication channels or platforms where I can reach out to in the future for discussions regarding project progress and any challenges encountered.

Thank you once again for your guidance and support. I look forward to working together on this exciting project.

You can start with writing a small test using playwright to test a certain UI output in Cytoscape Web. This [tutorial] (https://github.com/cytoscape/cytoscape-web/wiki/Tutorial-For-Cytoscape-Web) should help you setup your dev environment.

ayushkoli772 commented 3 months ago

Thank you @jingjingbic, for clarifying the approach. I've now gained a clear understanding of the project's scope and requirements. To demonstrate my capability and contribute effectively to the project, I would appreciate it if you could assign me specific tasks aligned with the project's goals. Additionally, I would like to inquire about any other communication channels or platforms where I can reach out to in the future for discussions regarding project progress and any challenges encountered. Thank you once again for your guidance and support. I look forward to working together on this exciting project.

You can start with writing a small test using playwright to test a certain UI output in Cytoscape Web. This [tutorial] (https://github.com/cytoscape/cytoscape-web/wiki/Tutorial-For-Cytoscape-Web) should help you setup your dev environment.

Thank you for your prompt response!

I have already setup dev environment last week. Also created an issue for same, which is resolved.

About writing the test, I will create a new playwright test file and after writing test we will be able to run both existing loadNetwork and new test. Is this approach aligned with your expectations for this task? Please let me know if you have any additional instructions.

Thank you again for your time and consideration!