nrnb / GoogleSummerOfCode

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

Beautiful rendering of complex genetic designs in Python with DNAplotlib and the Synthetic Biology Open Language (SBOL) #74

Closed chofski closed 6 years ago

chofski commented 7 years ago

Background

DNAplotlib is a Python library that enables highly customizable visualization of genetic circuits for synthetic biology. DNAplotlib is capable of rendering both nucleotide-level representations in addition to high-level schematics of genetic systems. The former, "traced-based" visualization method allows synthetic biologists to overlay experimental data like RNA-seq read depths onto a genetic design. The latter includes standard-compliant schematics based on SBOL Visual. Publication quality vector-based output is produced by using matplotlib as a canvas, and all aspects of the rendering process can be easily customized or replaced by the user. For more information about the library and many examples of figures produced, see our recent publication (http://pubs.acs.org/doi/abs/10.1021/acssynbio.6b00252) or visit the development website at http://dnaplotlib.org/.

dnaplotlib_gsoc_2017

The Synthetic Biology Open Language (SBOL) is an open standard for representing genetic designs through a standardized vocabulary of schematic glyphs (SBOL Visual) as well as a standardized RDF/XML data exchange format (SBOL Data). The standard was developed to support design-build-test workflows for synthetic biology. Recently, version 2 of the standard was released, enabling representation of modular and hierarchical biosystems and communication with cloud-based, bioparts repositories (http://pubs.acs.org/doi/abs/10.1021/acssynbio.5b00215). Libraries that allow reading/writing of files in SBOL format are available in Python, Javascript, C++, and Java.

Keywords: Synthetic Biology, Python, Visualization, matplotlib, SBOL, SBOL Visual, RDF/XML.

Goal

At present, DNAplotlib requires that genetic designs are generated through code or provided in simple GTF formatted files that are unable to describe complex design features. The Synthetic Biology Open Language supports many advanced capabilities that go beyond what is currently possible in DNAplotlib. We want to harness the powerful features of SBOL version 2 to enable complex visual representations of modular and hierarchical genetic designs. This will enable DNAplotlib to be interoperable with the growing community of BioCAD tools currently being developed.

To make this possible, there are two areas that a GSoC project could focus on. The first is to integrate DNAplotlib with the pySBOL library (https://github.com/SynBioDex/pysbol2) in order to support reading and writing of genetic designs as SBOL2 files. This requires mapping DNAplotlib's internal representation of a genetic circuit onto the standard SBOL data model.

The second area is to implement advancements to the underlying rendering pipeline to support the significant new features we have planned. This will include many diverse and fun problems such as: (i) encoding thematic styling information by leveraging SBOL's built-in support for user-defined annotations; (ii) enabling the visualization of genetic designs consisting of modules split across many physical pieces of DNA and allow them to be rendered at user specified locations; and (iii) developing new functionality to enable the interactive exploration of hierarchical designs. These are only a few of the possible directions and this aspect of the project can be tailored to suit a students interests.

To aid with development, there is the option to connect with the International Genetic Engineered Machines (iGEM) competition that will run simultaneously during the same summer period. iGEM will include student teams from all over the globe working on synthetic biology projects. They will need to visualization many different types of genetic circuit and so this would offer a perfect opportunity to test out new features and broaden the impact of this work.

Area 1: Integration of SBOL2 support

Area 2: Next-generation rendering pipeline

Difficulty Level: 2

Students need not have any experience with biology, but it would help to be proficient in Python with some experience using matplotlib. Students will have some flexibility in choosing which aspects of the project they want to work on. Students will be required to familiarize themselves with core aspects of the SBOL specification (http://sbolstandard.org/downloads/specifications/specification-data-model-2-1-0/).

Public Repository

https://github.com/VoigtLab/dnaplotlib

Potential Mentors

  1. Thomas Gorochowski, University of Bristol, UK (thomas.gorochowski@bristol.ac.uk)
  2. Bryan Bartley, University of Washington, USA (bartleyba@sbolstandard.org)

Contact

For further information please contact Thomas Gorochowski (thomas.gorochowski@bristol.ac.uk) of the Biocompute Lab at the University of Bristol.

neerajkr commented 7 years ago

Hello,

I have good prior experience in Python but i have not worked on SBOL. I am interested in doing this project.

chofski commented 7 years ago

Hi, sounds good. If you'd like to talk about your potential application, just let me or Bryan know.

neerajkr commented 7 years ago

Hi, Thanks very much for your response. Yes, i am a GSOC'17 aspirant. Is there any qualification task ? I would like to contribute.

chofski commented 7 years ago

There isn't a qualifying task as such, but we would like to speak with you about your potential application first. I think there is still quite a bit of time before it opens up, so maybe worth thinking about the aspects you are most interested in implementing and how you might be able to do this? We can then Skype to discuss more.

neerajkr commented 7 years ago

Thank you very much for your response. I am thinking on this project and would love to discuss with you on skype. A little bit about me. I am a fourth year undergraduate student at Indian Institute Of Technology, Kanpur, India. In case you would like to know more about my work, my CV is at: https://goo.gl/p47F7b

chofski commented 7 years ago

If you contact myself and Bryan by e-mail we can sort out a time to Skype (may have to be twice due to the time difference). Looking forward to speaking soon!

ramit29 commented 7 years ago

Hi, I'm a pre-final year student at SVCE-Anna University. I'm the student team leader of my colleges iGEM team this year. We'll be using the SBOL standard to represent our genetic circuits(through dnaplotlib). I can code in python and have a good understanding of synthetic biology. I would like to be a part of this project.

chofski commented 7 years ago

Hi Ramit, great and welcome aboard! Happy to have people helping with development. Sorting out the direction for version 2 will likely happen early in the summer and I'll keep you in the loop.

Dyex719 commented 6 years ago

Hi! Is this project still available? I would like to try to work on it in a few weeks' time.

chofski commented 6 years ago

Hi @Dyex719, yes this is still available and many things to do.

Dyex719 commented 6 years ago

Awesome. I'll get on it as soon as I get the time.

meow1729 commented 6 years ago

Please Guide through how to pursue through this project and what are the prerequisite knowledge areas. The project looks interesting.

khanspers commented 6 years ago

Hi @aradhyamakkar97 and @Dyex719, Thanks for your interest. Outside of GSoC, we run our own mentoring program, NRNB Academy. You can find more information about it here: http://nrnb.org/gsoc.html. If you are interested in participating in a mentoring program with the NRNB for this or another project on our list, please complete the Admissions Form. Thanks!

Dyex719 commented 6 years ago

@khanspers @chofski Thanks! I applied!

chofski commented 6 years ago

Applications should be made at: http://nrnb.org/gsoc.html#apply-tab

swkang73 commented 6 years ago

Hi my name is Sunwoo Kang, and I'm studying biomedical computation at Stanford University. Is the team still available to join for GSoC this year? I'm proficient in python, java, c++, and c to the level of writing complex programs, and would love to learn SBOL.

chofski commented 6 years ago

@swkang73 Hi! Yes, this project actually does not yet have any applications and it would be great to incorporate closer SBOL2 links. The deadline for applications is looming, so you'll need to be quick. Feel free to e-mail myself and Bryan Bartley (details in proposal) if you need any advice.

ghost commented 6 years ago

Dear Sunwoo,

I would be happy to work with you. Thanks,

Vishwesh

From: Sunwoo Kang notifications@github.com Reply-To: nrnb/GoogleSummerOfCode reply@reply.github.com Date: Sunday, 25 March 2018 at 21:01 To: nrnb/GoogleSummerOfCode GoogleSummerOfCode@noreply.github.com Cc: "Kulkarni, Vishwesh" V.Kulkarni@warwick.ac.uk, Assign assign@noreply.github.com Subject: Re: [nrnb/GoogleSummerOfCode] Beautiful rendering of complex genetic designs in Python with DNAplotlib and the Synthetic Biology Open Language (SBOL) (#74)

Hi my name is Sunwoo Kang, and I'm studying biomedical computation at Stanford University. Is the team still available to join for GSoC this year? I'm proficient in python, java, c++, and c to the level of writing complex programs, and would love to learn SBOL.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHubhttps://github.com/nrnb/GoogleSummerOfCode/issues/74#issuecomment-375998816, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AY-_SUA6SGy7LLb8jxamGJvhLBJMvBYfks5th_eZgaJpZM4Lj3rN.

swkang73 commented 6 years ago

Thank you @chofski @vvk2017 for such a prompt reply. I’ll start working on the application rightaway!

khanspers commented 6 years ago

GSoC 2018