GSOC Project Ideas 2023

From GMOD
Jump to: navigation, search

Got an idea for GSOC 2023?'

Then please post it. You can either

  1. Add it here, by directly editing this page. Just copy, paste and update the template below. This requires that you have or create a GMOD.org login.

Projects can use a broad set of skills, technologies, and domains, such as GUIs, database integration and algorithms.

Students are also encouraged to propose their own ideas related to our projects. If you have strong computer skills and have an interest in biology or bioinformatics, you should definitely apply! Do not hesitate to propose your own project idea: some of the best applications we see are by students that go this route. As long as it is relevant to one of our projects, we will give it serious consideration. Creativity and self-motivation are great traits for open-source programmers.


Proposed project ideas for 2023

Modern Web Interface for Annotation Service

  • Brief explanation: We are developing a new application for the annotation of biological data. We are using modern technologies and are interested in using this as an opportunity to introduce novel functionality.
  • Expected results: As a result of the project the student will significantly contribute to the creation of a user-friendly web application. This developer will both design interfaces for displaying data from the Neo4j database and provide interfaces for modifying the information.
  • Project Home Page URL: https://reactome.org, https://reactome.org/ContentService/
  • Project paper reference and URL: http://www.ncbi.nlm.nih.gov/pubmed/34788843
  • Knowledge prerequisites: Angular, Mobx, Neo4j, GraphQL
  • Skill level: Medium
  • Project Time: 175 hours
  • Mentors: Deidre Beavers (beaversd@ohsu.edu)


Improved Continuous Integration for Reactome

  • Brief explanation: We are currently using Jenkins to run our release pipelines and are interested in moving the system to use Docker containers with a CI/CD-based system.
  • Expected results: As a result of the project all code will be built as it is pushed to the main branch for each GitHub repository and dependencies would be triggered to be built as well. In this way, we will know if a change in a dependency has correctly integrated into the broader code base. We will then integrate these artefacts with the release ETL (Extract Transform Load) pipelines.
  • Project Home Page URL: https://reactome.org
  • Project paper reference and URL: http://www.ncbi.nlm.nih.gov/pubmed/34788843
  • Knowledge prerequisites: Docker, Java, Git, (JenkinsX, GoCD, etc...) Kubernetes, Maven Central
  • Skill level: Medium
  • Project Time: 175 hours
  • Mentors: Adam Wright (adam.wright@oicr.on.ca)


JBrowse 2 Plugins synteny formats

  • Brief explanation: JBrowse 2 is able to visually compare multiple genomes. Adding support for new file formats for that comparison would be valuable. The goal of this project would be to add support for MSPCrunch data input, or multiple-alignment format (MAF)
  • Expected results: a new JBrowse 2 plugin that adds support for one or more of the data formats listed above
  • Project Home Page URL: JBrowse.org
  • Project chat: [1]
  • Knowledge prerequisites: JavaScript, React (optional)
  • Skill level: Medium
  • Project Time: 175 hours
  • Mentors: JBrowse development team


BLAST integration for JBrowse 2

  • Brief explanation: BLAST is a tool that helps find where particular DNA or protein sequence matches a genome. We want to make it so that when you find these matches, you can generate links to the JBrowse genome browser.
  • Expected results: documentation and methods for performing a BLAST search with SequenceServer and linking to JBrowse 2
  • Project Home Page URL: JBrowse.org
  • Project chat: [2]
  • Knowledge prerequisites: JavaScript, Typescript (optional), React (optional), general biology will also help
  • Skill level: Medium
  • Project Time: 175-350 hours
  • Mentors: JBrowse development team
  • Extra info: We have examples of this for JBrowse 1 here https://jbrowse.org/docs/faq.html#how-can-i-link-blast-results-to-jbrowse and it would be valuable to make examples and solutions for doing this in JBrowse 2. Extensions to the project could include using other search tools like Primer3 or BLAT, and searching against UCSC assemblyHubs (which have BLAT servers hosted remotely).


JBrowse 2 Multi-way synteny visualization

  • Brief explanation: JBrowse 2 can currently visually compare two genomes at a time, but comparing more than two genomes would be valuable. The goal of this project is to write new JBrowse 2 code to support multi-way genome comparisons.
  • Expected results: a new method to compare more than two genomes at a time
  • Project Home Page URL: JBrowse.org
  • Project chat: [3]
  • Knowledge prerequisites: JavaScript, Typescript, React (optional)
  • Skill level: Advanced
  • Project Time: 350 hours
  • Mentors: JBrowse development team


JBrowse 2 integration test suite

  • Brief explanation: The JBrowse 2 family of products is a large codebase that has many moving parts. There is a need for higher-level integration tests that test interoperation between various APIs, most importantly JBrowse 2's support for OAuth and related authentication, and also the JBrowse REST API.
  • Expected results: an expanded integration test suite
  • Project Home Page URL: JBrowse.org
  • Project chat: [4]
  • Knowledge prerequisites: JavaScript, Typescript
  • Skill level: Medium
  • Project Time: 175 hours
  • Mentors: JBrowse development team


JBrowse 2 performance optimization

  • Brief explanation: JBrowse 2 can visualize large genomic datasets in the browser, and it is important to keep the program fast in the face of these large datasets. Students interested in this program can apply to add improved data structures, improved algorithms, or apply low level approaches like WebAssembly to improve JBrowse performance on a topic of interest. See issues tagged "performance" https://github.com/GMOD/jbrowse-components/issues?q=is%3Aissue+is%3Aopen+label%3Aperformance for a intro to possible topics.
  • Expected results: documented optimizations to the codebase
  • Project Home Page URL: JBrowse.org
  • Project chat: [5]
  • Knowledge prerequisites: JavaScript, Typescript, React, Chrome or Firefox performance tools, WebAssembly/Rust (optional)
  • Skill level: Advanced
  • Project Time: 350 hours
  • Mentors: JBrowse development team


JBrowse 2 configuration editor UI improvements

  • Brief explanation: JBrowse 2 has a complex configuration editor UI. An interested student could try to improve the user interface for our configuration editor, and propose a new design, and implement it if they are experienced with programming.
  • Expected results: designs and optionally improvements to the configuration editor UI
  • Project Home Page URL: JBrowse.org
  • Project chat: [6]
  • Knowledge prerequisites: JavaScript, Typescript, React (optional)
  • Skill level: Advanced
  • Project Time: 175-350 hours
  • Mentors: JBrowse development team


JBrowse 2 plugin to accommodate colour-blindness on desktop

  • Brief explanation: Presently, JBrowse 2 comes available with several default colour schemes or can be 'configured' to adapt to a colour scheme that a user or administrator defines; this must be manually defined however. It would be convenient for independent users or adoptees to be able to one-click install a simple plugin that provides them with several variants of themes for JBrowse 2 that accommodate common forms of colour blindness (e.g. green-blind, red-blind, blue-weak, etc.). Such a plugin must operate on JBrowse desktop, where it would be most profoundly useful.
  • Expected results: A new JBrowse 2 plugin that leverages the existing paradigm for JBrowse 2 'themes' to provide users with a selection of themes that recolour important features to accommodate typical forms of colour deficiencies.
  • Project Home Page URL: https://jbrowse.org/jb2/
  • Project chat: https://gitter.im/GMOD/jbrowse2
  • Knowledge prerequisites: JavaScript, Typescript, React
  • Skill level: Basic
  • Project Time: 175 hours
  • Mentors: JBrowse development team
  • Extended work on this project could improve accessibility in other ways also

Project template

Template: Project Idea Name (Project Name/Lab Name)

  • Brief explanation: Brief description of the idea, including any relevant links, etc.
  • Expected results: describe the outcome of the project idea.
  • Project Home Page URL: if there is one.
  • Project paper reference and URL: Is there a paper about the project this effort will be a part of?
  • Knowledge prerequisites: programming language(s) to be used, plus any other particular computer science skills needed.
  • Skill level: Basic, Medium or Advanced.
  • Project Time: 175 hours or 350 hours
  • Mentors: name + contact details of the lead mentor, name + contact details of 1 or 2 backup mentors.