{"action":"created","issue":{"url":"https://api.github.com/repos/nrnb/GoogleSummerOfCode/issues/99","repository_url":"https://api.github.com/repos/nrnb/GoogleSummerOfCode","labels_url":"https://api.github.com/repos/nrnb/GoogleSummerOfCode/issues/99/labels{/name}","comments_url":"https://api.github.com/repos/nrnb/GoogleSummerOfCode/issues/99/comments","events_url":"https://api.github.com/repos/nrnb/GoogleSummerOfCode/issues/99/events","html_url":"https://github.com/nrnb/GoogleSummerOfCode/issues/99","id":281566777,"number":99,"title":"Integrating CAD and CAM tools for automating a synthetic biology workflow","user":{"login":"eoberortner","id":1379942,"avatar_url":"https://avatars3.githubusercontent.com/u/1379942?v=4","gravatar_id":"","url":"https://api.github.com/users/eoberortner","html_url":"https://github.com/eoberortner","followers_url":"https://api.github.com/users/eoberortner/followers","following_url":"https://api.github.com/users/eoberortner/following{/other_user}","gists_url":"https://api.github.com/users/eoberortner/gists{/gist_id}","starred_url":"https://api.github.com/users/eoberortner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eoberortner/subscriptions","organizations_url":"https://api.github.com/users/eoberortner/orgs","repos_url":"https://api.github.com/users/eoberortner/repos","events_url":"https://api.github.com/users/eoberortner/events{/privacy}","received_events_url":"https://api.github.com/users/eoberortner/received_events","type":"User","site_admin":false},"labels":[{"id":321226453,"url":"https://api.github.com/repos/nrnb/GoogleSummerOfCode/labels/Difficulty:%202","name":"Difficulty: 2","color":"000000","default":false},{"id":310533005,"url":"https://api.github.com/repos/nrnb/GoogleSummerOfCode/labels/Java","name":"Java","color":"d4c5f9","default":false},{"id":320104419,"url":"https://api.github.com/repos/nrnb/GoogleSummerOfCode/labels/REST","name":"REST","color":"c7def8","default":false},{"id":518763583,"url":"https://api.github.com/repos/nrnb/GoogleSummerOfCode/labels/SBOL","name":"SBOL","color":"c5def5","default":false}],"state":"open","locked":false,"assignee":{"login":"eoberortner","id":1379942,"avatar_url":"https://avatars3.githubusercontent.com/u/1379942?v=4","gravatar_id":"","url":"https://api.github.com/users/eoberortner","html_url":"https://github.com/eoberortner","followers_url":"https://api.github.com/users/eoberortner/followers","following_url":"https://api.github.com/users/eoberortner/following{/other_user}","gists_url":"https://api.github.com/users/eoberortner/gists{/gist_id}","starred_url":"https://api.github.com/users/eoberortner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eoberortner/subscriptions","organizations_url":"https://api.github.com/users/eoberortner/orgs","repos_url":"https://api.github.com/users/eoberortner/repos","events_url":"https://api.github.com/users/eoberortner/events{/privacy}","received_events_url":"https://api.github.com/users/eoberortner/received_events","type":"User","site_admin":false},"assignees":[{"login":"eoberortner","id":1379942,"avatar_url":"https://avatars3.githubusercontent.com/u/1379942?v=4","gravatar_id":"","url":"https://api.github.com/users/eoberortner","html_url":"https://github.com/eoberortner","followers_url":"https://api.github.com/users/eoberortner/followers","following_url":"https://api.github.com/users/eoberortner/following{/other_user}","gists_url":"https://api.github.com/users/eoberortner/gists{/gist_id}","starred_url":"https://api.github.com/users/eoberortner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eoberortner/subscriptions","organizations_url":"https://api.github.com/users/eoberortner/orgs","repos_url":"https://api.github.com/users/eoberortner/repos","events_url":"https://api.github.com/users/eoberortner/events{/privacy}","received_events_url":"https://api.github.com/users/eoberortner/received_events","type":"User","site_admin":false}],"milestone":null,"comments":55,"created_at":"2017-12-12T22:56:37Z","updated_at":"2018-04-18T17:39:21Z","closed_at":null,"author_association":"NONE","body":"### Background\r\nAutomation in the field of synthetic biology depends, among others, on CAD tools for designing novel biological systems, and CAM tools for building the designed systems.\r\n\r\nThis project encompasses the following three software artifacts:\r\n(i) SBOLDesigner (http://www.async.ece.utah.edu/SBOLDesigner) is a CAD tool for creating and manipulating the sequences of genetic constructs using the Synthetic Biology Open Language (SBOL) 2.0 data model. \r\n(ii) SBOL is a community-driven data format for exchanging design-, and build-specific information among software tools in the synthetic biology domain.\r\n(iii) The Build-OptimizatiOn Software Tools (https://boost.jgi.doe.gov) is a repertoire of CAD/CAM tools for minimizing the cost and time for synthesizing DNA sequences with the maximal success rate of synthesis.\r\n\r\n### Goal\r\nThe goal of this project is to integrate both tools, SBOLDesigner and BOOST. A common synthetic biology design-build workflow drives the achievement of this project's objectives. Specifically:\r\n1) The synthetic biologist designs a novel system using SBOLDesigner. Here, we will decide collaboratively on a cutting-edge biological system. \r\n2) After the design is finished, the synthetic biologist can (optionally) click \"Prepare for Synthesis\" in SBOLDesigner and selects among various options, such as target host, or DNA synthesis vendor.\r\n3) SBOLDesigner sends the designed sequences (encoded in SBOL) and the build-specific information to BOOST.\r\n4) BOOST prepares the sequences for synthesis, including verification against synthesis specific criteria, modification of complex region according to the genetic code, fragmentation of large sequences depending on max. length of synthesis and desired assembly protocol. \r\n5) BOOST returns the synthesis-ready sequences to SBOLDesigner including a log of the performed actions (again, encoded in SBOL). \r\n6) SBOLDesigner displays the information to the user, who can then (i) accept the performed changes, (ii) re-submit the sequences to BOOST using alternative parameter values, or (iii) ignore BOOST's results \r\n\r\nBy achieving the objectives, the common synthetic biology workflow will be fully automated.\r\n\r\n### Difficulty Level 2\r\n\r\nThe difficulty level was calculated based on the following criteria:\r\n1) Displaying \"Build\" parameters on the SBOLDesigner UI (Ideas can be gathered from the BOOST Web UI)\r\n2) Encoding the \"Build\" parameters as well as the log of the BOOST actions using SBOL. \r\n3) Displaying the BOOST results on the SBOLDesigner UI.\r\n\r\n### Skills\r\nJava, JSON, RESTful APIs (essential)\r\nSBOL (nice to have)\r\n\r\n### Public Repository\r\nSBOLDesigner: https://github.com/SynBioDex/SBOLDesigner\r\nBOOST is not an open source software project. The BOOST Web UI (incl. a documentation of the BOOST APIs) is available at https://boost.jgi.doe.gov \r\n\r\n### Potential Mentors\r\nErnst Oberortner\r\nChris J. Myers\r\nMichael Zhang\r\n\r\n### Contact\r\n[Ernst Oberortner](mailto:eoberortner@lbl.gov)\r\n[Chris J. Myers](mailto:myers@ece.utah.edu)\r\n[Michael Zhang](mailto:michael13162@gmail.com)\r\n"},"comment":{"url":"https://api.github.com/repos/nrnb/GoogleSummerOfCode/issues/comments/382469289","html_url":"https://github.com/nrnb/GoogleSummerOfCode/issues/99#issuecomment-382469289","issue_url":"https://api.github.com/repos/nrnb/GoogleSummerOfCode/issues/99","id":382469289,"user":{"login":"cjmyers","id":3507191,"avatar_url":"https://avatars3.githubusercontent.com/u/3507191?v=4","gravatar_id":"","url":"https://api.github.com/users/cjmyers","html_url":"https://github.com/cjmyers","followers_url":"https://api.github.com/users/cjmyers/followers","following_url":"https://api.github.com/users/cjmyers/following{/other_user}","gists_url":"https://api.github.com/users/cjmyers/gists{/gist_id}","starred_url":"https://api.github.com/users/cjmyers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cjmyers/subscriptions","organizations_url":"https://api.github.com/users/cjmyers/orgs","repos_url":"https://api.github.com/users/cjmyers/repos","events_url":"https://api.github.com/users/cjmyers/events{/privacy}","received_events_url":"https://api.github.com/users/cjmyers/received_events","type":"User","site_admin":false},"created_at":"2018-04-18T17:39:20Z","updated_at":"2018-04-18T17:39:20Z","author_association":"NONE","body":"I suggest we borrow from the code @michael13162 already wrote for SynBioHub login and try to use some of the same ideas.\n\nThe way it works with SynBioHub is that after login information is sent, the server sends back a key.  This key is then stored locally in SBOLDesigner for subsequent queries to SynBioHub.  On the server side, SynBioHub accepts this key as authentication.  Currently, this key is valid until SynBioHub is restarted, but a better approach would be if the key expires after some amount of time has elapsed.\n\n@eoberortner does BOOST have any sort of API key mechanism like this?  If not, how difficult would this be to add?  Would you see this as something you should do or should be part of the GSoC project?\n\n> On Apr 18, 2018, at 11:34 AM, eoberortner <notifications@github.com> wrote:\n> \n> Hi @Prem0707 <https://github.com/Prem0707>\n> We definitely need a BOOST authentication UI in SBOLDesigner. Everything that was said earlier is still true. It would be great, though, if the user can either authenticate by entering username/password or by entering the user's BOOST JWT.\n> \n> Since @cjmyers <https://github.com/cjmyers> and @michael13162 <https://github.com/michael13162> are the main developers and owners of SBOLDesigner, it would be great to hear their opinion about\n> (i) the alternatives regarding BOOST authentication,\n> (ii) how the UI should look like (I'd recommend keeping consistency w/ the SBOLDesigner UI),\n> (iii) where the \"Button\" that opens the BOOST Authentication UI should be placed, and\n> (iv) how the entered information (username/password or BOOST-JWT) should be stored in SBOLDesigner.\n> \n> ad (iv) I'd recommend storing the information somehow since otherwise the user will have to enter the BOOST username/password or JWT every time when BOOST is needed.\n> \n> Thanks!\n> \n> —\n> You are receiving this because you were mentioned.\n> Reply to this email directly, view it on GitHub <https://github.com/nrnb/GoogleSummerOfCode/issues/99#issuecomment-382467705>, or mute the thread <https://github.com/notifications/unsubscribe-auth/ADWD97l6O9H0DYVy7R6me970B3lNS5Cjks5tp3kQgaJpZM4Q_wk6>.\n> \n\n"}}
{"actor":{"display_login":"cjmyers"}}