Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
chofski opened this issue Jan 15, 2017 · 20 comments

Comments

@chofski
Copy link

chofski commented Jan 15, 2017

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

  • Integration of pySBOL2 to enable loading of designs from SBOL2 files

Area 2: Next-generation rendering pipeline

  • Ability to split a design and draw part of circuits at different positions
  • Automated routing of connections between separated components
  • Helper functions to enable close integration with standard matplotlib plots
  • Ability to easily animate circuit dynamics
  • Callback functions to enable interactive visualizations
  • Theming engine with style sheets
  • New annotations within SBOL2 files to store styling and layout data
  • Integration with Jupyter/IPython notebooks (http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/what_is_jupyter.html)

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
Copy link

Hello,

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

@chofski
Copy link
Author

chofski commented Jan 25, 2017

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

@neerajkr
Copy link

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
Copy link
Author

chofski commented Jan 27, 2017

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
Copy link

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
Copy link
Author

chofski commented Jan 30, 2017

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!

@AlexanderPico AlexanderPico assigned ghost Mar 6, 2017
@ramit29
Copy link

ramit29 commented Apr 24, 2017

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
Copy link
Author

chofski commented Apr 24, 2017

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
Copy link

Dyex719 commented Nov 26, 2017

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

@chofski
Copy link
Author

chofski commented Nov 27, 2017

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

@Dyex719
Copy link

Dyex719 commented Nov 28, 2017

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

@meow1729
Copy link

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

@khanspers
Copy link
Contributor

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
Copy link

Dyex719 commented Nov 29, 2017

@khanspers @chofski Thanks! I applied!

@chofski
Copy link
Author

chofski commented Mar 6, 2018

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

@swkang73
Copy link

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
Copy link
Author

chofski commented Mar 25, 2018

@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
Copy link

ghost commented Mar 25, 2018 via email

@swkang73
Copy link

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

@khanspers
Copy link
Contributor

GSoC 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants