Subscriber access provided by Kaohsiung Medical University
Technical Note
SBOL on the Web: Bringing the Synthetic Biology Open Language to the Web browser James Alastair McLaughlin, Chris J. Myers, Zach Zundel, Nathan Wilkinson, Christian Atallah, and Anil Wipat ACS Synth. Biol., Just Accepted Manuscript • DOI: 10.1021/acssynbio.8b00338 • Publication Date (Web): 07 Nov 2018 Downloaded from http://pubs.acs.org on November 8, 2018
Just Accepted “Just Accepted” manuscripts have been peer-reviewed and accepted for publication. They are posted online prior to technical editing, formatting for publication and author proofing. The American Chemical Society provides “Just Accepted” as a service to the research community to expedite the dissemination of scientific material as soon as possible after acceptance. “Just Accepted” manuscripts appear in full in PDF format accompanied by an HTML abstract. “Just Accepted” manuscripts have been fully peer reviewed, but should not be considered the official version of record. They are citable by the Digital Object Identifier (DOI®). “Just Accepted” is an optional service offered to authors. Therefore, the “Just Accepted” Web site may not include all articles that will be published in the journal. After a manuscript is technically edited and formatted, it will be removed from the “Just Accepted” Web site and published as an ASAP article. Note that technical editing may introduce minor changes to the manuscript text and/or graphics which could affect content, and all legal disclaimers and ethical guidelines that apply to the journal pertain. ACS cannot be held responsible for errors or consequences arising from the use of information contained in these “Just Accepted” manuscripts.
is published by the American Chemical Society. 1155 Sixteenth Street N.W., Washington, DC 20036 Published by American Chemical Society. Copyright © American Chemical Society. However, no copyright claim is made to original U.S. Government works, or works produced by employees of any Commonwealth realm Crown government in the course of their duties.
Page 1 of 8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
ACS Synthetic Biology
sboljs: Bringing the Synthetic Biology Open Language (SBOL) to the Web browser James Alastair McLaughlin,† Chris J. Myers,‡ Zach Zundel,‡ Nathan Wilkinson,‡ Christian Atallah,† and Anil Wipat∗,† †School of Computing, Newcastle University, NE4 5TG, UK ‡Department of Electrical and Computer Engineering, University of Utah, Salt Lake City, UT 84112, USA E-mail:
[email protected] Abstract The Synthetic Biology Open Language (SBOL) is a data standard for the representation of engineered biological systems. SBOL is implemented in the form of software libraries which can be used to add SBOL support to both new and existing software tools. While existing libraries allow for software to be developed that runs on a server or is installed locally, they lack the capability to create SBOL software that runs directly in a Web browser. Here we address this issue by presenting sboljs, a JavaScript software library for SBOL that is capable of being used both on the server and in the Web browser.
Keywords synthetic biology open language, SBOL, synthetic biology, Javascript, web
1
ACS Paragon Plus Environment
ACS Synthetic Biology 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
Introduction The Synthetic Biology Open Language (SBOL) 1 is a data standard for the representation of engineered biological systems, such as engineered genetic circuits and their constituent DNA and protein components. The SBOL specification 2 is curated by an international community of developers across various disciplines, with the goal of harmonizing the exchange and dissemination of biological design, build, and test information. Such harmonization enables the construction of standards-enabled workflows including multiple repositories and software tools. 3 SBOL is implemented in the form of software libraries, which can then be used to add SBOL support to both new and existing software tools. Examples of existing SBOL libraries include libSBOLj 4 for Java, libSBOL∗ for C/C++, and pySBOL 5 for Python. These libraries can be used to develop software that runs on a server or is installed locally on a computer. However, currently there are no libraries that can be used to develop SBOL software that runs directly in a Web browser. This omission is notable considering the utility of JavaScript for the development of software in the life sciences. The BioJS project 6 maintains a registry of over 200 libraries for working with biological data in JavaScript. Adding SBOL support to this software ecosystem would potentially have many useful applications, and encourage developers already using JavaScript to adopt the open SBOL standard. Here we present sboljs, a JavaScript software library for SBOL capable of being used both on the server and in the web browser.
Results and discussion We have developed sboljs, an implementation of SBOL enabling software written in JavaScript to leverage the SBOL standard. Unlike existing implementations of SBOL, the JavaScript implementation can be used in the context of a Web browser, creating the possibility of ∗
https://github.com/SynBioDex/libSBOL
2
ACS Paragon Plus Environment
Page 2 of 8
Page 3 of 8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
ACS Synthetic Biology
Figure 1: Screenshot of the SynBioHub design repository showing an SBOL design. The SBOL Visual representation has been generated using sboljs and visbol. using SBOL as part of interactive Web pages and Web applications. The utility of sboljs has previously been demonstrated through its uses in the VisBOL design visualizer, 7 which uses sboljs and Scalable Vector Graphics (SVG) to produce SBOL Visual images; and the SynBioHub design repository 8 (Fig. 1), which uses sboljs and VisBOL to present detailed information about SBOL designs. The sboljs library implements all of the classes from the SBOL 2.2 specification. This has been validated through a read, write, and compare test using the SBOL test suite. 9 One notable difference between sboljs and libSBOLj is that sboljs does not perform full validation of loaded SBOL documents to ensure conformance with the specification. However, an example of using the online SBOL validation service with sboljs is provided.
3
ACS Paragon Plus Environment
ACS Synthetic Biology 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
Figure 2: Screenshot of the sboljs tutorial, showing example sboljs code and the resulting SBOL. The user can follow the different chapters of this tutorial to create a characterization circuit using sboljs. We have also developed an online tutorial for sboljs† . This tutorial takes advantage of the ability of sboljs to run directly in the Web browser to provide an interactive environment (Fig. 2) where fragments of JavaScript code using sboljs can be written and executed following provided instructions. The authors anticipate that sboljs can facilitate the usage of SBOL in conjunction with the growing repository of JavaScript bioinformatics libraries, and ultimately the development of more Web-based software for synthetic biology. †
http://synbiodex.github.io/sboljs/sboljs-tutorial/sboljstutorial.html
4
ACS Paragon Plus Environment
Page 4 of 8
Page 5 of 8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
ACS Synthetic Biology
Availability The sboljs library is available at https://github.com/SynBioDex/sboljs and is released under the BSD 2-clause license. It can also be installed using the npm package manager with npm install sboljs. The interactive tutorial is accessible at http://synbiodex.github. io/sboljs/sboljs-tutorial/sboljstutorial.html, and the source code is available at https://github.com/SynBioDex/sboljs-tutorial.
Methods The sboljs library takes advantage of the Resource Description Framework (RDF) nature of SBOL serialization. This property enables SBOL to be parsed into a graph structure using a RDF library for JavaScript (rdf-ext). The resulting graph is then mapped onto an object-oriented data model by matching combinations of subject, predicate, and object. For serialization, SBOL has stricter requirements for referencing vs. ownership (”top levels”). This serialization is implemented manually using the libxmljs library.
Acknowledgement The authors of this work are supported by The Engineering and Physical Sciences Research Council grants EP/J02175X/1 and EP/N031962/1 (J.A.M. and A.W.) and studentship 1948828 (C.A.), and the National Science Foundation under Grant No. CCF-1218095 and DBI-1356041 (C.M., Z.Z., and N.W.). J.A.M. is supported by FUJIFILM DioSynth Biotechnologies. Z.Z. has been supported by Google Summer of Code 2017. C.A. is supported by Prozomix Limited. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the funding agencies.
5
ACS Paragon Plus Environment
ACS Synthetic Biology 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
Author Contributions J.A.M., C.J.M., Z.Z, N.W., and A.W. wrote the paper and developed the sboljs library. C.A. developed the interactive tutorial.
References (1) Galdzicki, M. et al. The Synthetic Biology Open Language (SBOL) provides a community standard for communicating designs in synthetic biology. Nat. Biotechnol. 2014, 32, 545–550. (2) Beal, J. et al. Synthetic Biology Open Language (SBOL) Version 2.1. 0. Journal of integrative bioinformatics 2016, 13, 30–132. (3) Myers, C. J.; Beal, J.; Gorochowski, T. E.; Kuwahara, H.; Madsen, C.; McLaughlin, J. A.; Mısırlı, G.; Nguyen, T.; Oberortner, E.; Samineni, M.; Wipat, A.; Zhang, M.; Zundel, Z. A standard-enabled workflow for synthetic biology. Biochemical Society Transactions 2017, 45, 793–803. (4) Zhang, Z.; Nguyen, T.; Roehner, N.; Misirli, G.; Pocock, M.; Oberortner, E.; Samineni, M.; Zundel, Z.; Beal, J.; Clancy, K.; Wipat, A.; Myers, C. J. libSBOLj 2.0: a java library to support SBOL 2.0. IEEE life sciences letters 2015, 1, 34–37. (5) Bartley, B. A.; Choi, K.; Zamieni, M.; Zundel, Z.; Nguyen, T.; Myers, C. J.; Sauro, H. M. pySBOL: A Python Package for Genetic Design Automation and Standardization. ACS synthetic biology 2018, (6) G´omez, J. et al. BioJS: an open source JavaScript framework for biological data visualization. Bioinformatics 2013, 29, 1103–1104. (7) McLaughlin, J. A.; Pocock, M.; Mısırlı, G.; Madsen, C.; Wipat, A. VisBOL: web-based tools for synthetic biology design visualization. ACS synthetic biology 2016, 5, 874–876. 6
ACS Paragon Plus Environment
Page 6 of 8
Page 7 of 8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
ACS Synthetic Biology
(8) McLaughlin, J. A.; Myers, C. J.; Zundel, Z.; Misirli, G.; Zhang, M.; Ofiteru, I. D.; Go˜ ni Moreno, A.; Wipat, A. SynBioHub: A Standards-Enabled Design Repository for Synthetic Biology. ACS synthetic biology 2018, (9) Samineni, M. Software Compliance Testing for Workflows Using the Synthetic Biology Open Language. M.Sc. thesis, University of Utah, 2018.
7
ACS Paragon Plus Environment
ACS Synthetic Biology 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
Graphical TOC Entry
8
ACS Paragon Plus Environment
Page 8 of 8