GSOC Project Ideas 2023

From GMOD
Revision as of 00:18, 7 February 2023 by Colin Diesh (Talk | contribs)

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

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 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: [4]
  • 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: [5]
  • Knowledge prerequisites: JavaScript, Typescript, React (optional)
  • Skill level: Advanced
  • Project Time: 175-350 hours
  • Mentors: JBrowse development team


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.