nrnb / GoogleSummerOfCode

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

Getting the complexity score from SBOL files to streamline DNA synthesis using standards #241

Open Gonza10V opened 3 months ago

Gonza10V commented 3 months ago

Background

Synthetic biologists use the Design, Build, Test, Learn (DBTL) cycle to engineer biological systems. The Synthetic Biology Open Language (SBOL) was developed by the community as a standard to represent biological designs and covers the whole DBTL cycle. Although this standard is used and agreed by the community it is mostly used in its visual format and the data format has not been widely adopted, being PDF the primary format to share DNA sequences [1]. The adoption of SBOL [2] by the community can increase the reproducibility of experiments, facilitating building upon previous knowledge. To streamline the DBTL cycle and increase the adoption of SBOL we propose the development of a function in SBOL-utilities that allow researchers to easily check synthesizability by different synthesis providers.

[1] Mante, J., Myers, C.J. Advancing reuse of genetic parts: progress and remaining challenges. Nat Commun 14, 2953 (2023). https://doi.org/10.1038/s41467-023-38791-0 [2]Buecherl, Lukas, Mitchell, Thomas, Scott-Brown, James, Vaidyanathan, Prashant, Vidal, Gonzalo, Baig, Hasan, Bartley, Bryan, Beal, Jacob, Crowther, Matthew, Fontanarrosa, Pedro, Gorochowski, Thomas, Grünberg, Raik, Kulkarni, Vishwesh, McLaughlin, James, Mısırlı, Göksel, Oberortner, Ernst, Wipat, Anil and Myers, Chris. "Synthetic biology open language (SBOL) version 3.1.0" Journal of Integrative Bioinformatics, vol. 20, no. 1, 2023, pp. 20220058. https://doi.org/10.1515/jib-2022-0058

Goal

To build a function to assess the complexity score of DNA sequences in SBOL using Twist API. Develop a function that integrates the previous function with the existing IDT complexity score function to get relevant synthesizability information.

Specific Goals: A function that uses a SBOL file as input, interfaces the TWIST API, and outputs the complexity score. Contribute that function to sbol-utilities by adding propper format and tests. Develop a mediator to encapsulate functions to get complexity score for different providers (TWIST, IDT). Document the mediator and how to add complexity score calculation for other providers.

Difficulty Level: Easy/Medium/Hard

This project involves the understanding of an API, the development of Python functions and integrating them using unittest in the CI/CD workflow of sbol-utilities.

Size and Length of Project

Skills

Essential skills: Python Nice to have skills: API calls, Git, DevOps

Public Repository

https://github.com/SynBioDex/SBOL-utilities

Potential Mentors

Gonzalo Vidal (Gonzalo.vidalpena@colorado.edu) Jake Beal

vinayakjeet commented 3 months ago

Hello Mentors @Gonza10V and @Jake Beal,

I'm an undergraduate student at BITS Pilani with a strong foundation in biology, genetics, and a keen interest in biochemistry. I'm drawn to the SBOL project due to its significant role in advancing DNA synthesis. With solid skills in Python and DevOps, I'm eager to contribute effectively and expand my understanding of SBOL utilities. I'm quickly familiarizing myself with SBOL utilities and am excited to apply this knowledge to contribute to the project. I would greatly appreciate any advice on how best to contribute and any specific areas where you think my involvement could be most beneficial.

vinayakjeet commented 3 months ago

I would like to work on this project Thanks

Gonza10V commented 3 months ago

Hi @vinayakjeet thanks for your interest in the project. For now please get yourself familiar with the GitHub actions in this repository. Let me know if you have any question about the actual workflow and the project specific goals.

khanspers commented 3 months ago

@vinayakjeet : All proposals for GSoC must be submitted via the GSoC interface before the deadline (April 2, 18:00 UTC); we cannot consider proposals sent to us by other means. You can update a draft proposal in the GSoC interface up until the deadline.