nrnb / GoogleSummerOfCode

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

Integrating CAD and CAM tools for automating a synthetic biology workflow #99

Closed eoberortner closed 6 years ago

eoberortner commented 6 years ago

Background

Automation 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.

This project encompasses the following three software artifacts: (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. (ii) SBOL is a community-driven data format for exchanging design-, and build-specific information among software tools in the synthetic biology domain. (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.

Goal

The 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: 1) The synthetic biologist designs a novel system using SBOLDesigner. Here, we will decide collaboratively on a cutting-edge biological system. 2) 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. 3) SBOLDesigner sends the designed sequences (encoded in SBOL) and the build-specific information to BOOST. 4) 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. 5) BOOST returns the synthesis-ready sequences to SBOLDesigner including a log of the performed actions (again, encoded in SBOL). 6) 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

By achieving the objectives, the common synthetic biology workflow will be fully automated.

Difficulty Level 2

The difficulty level was calculated based on the following criteria: 1) Displaying "Build" parameters on the SBOLDesigner UI (Ideas can be gathered from the BOOST Web UI) 2) Encoding the "Build" parameters as well as the log of the BOOST actions using SBOL. 3) Displaying the BOOST results on the SBOLDesigner UI.

Skills

Java, JSON, RESTful APIs (essential) SBOL (nice to have)

Public Repository

SBOLDesigner: https://github.com/SynBioDex/SBOLDesigner BOOST 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

Potential Mentors

Ernst Oberortner Chris J. Myers Michael Zhang

Contact

Ernst Oberortner Chris J. Myers Michael Zhang

SamuelSauce commented 6 years ago

Hello! I am making a comment on this post in regards to my interest in the project for GSoC. I am wanting to make sure that this is one of the projects included in which I may submit my proposal for. If this is the case, I would like to ask what relevant information should I be studying to better write my proposal? I do have Engineering Genetic Circuits by Chris Myers which I have been reading through to get a good basic understanding of molecular biology but any other pointers would be much appreciated. Additionally, any mentoring for my proposal that could be coordinated would be much appreciated.

eoberortner commented 6 years ago

Hi Samuel! Thanks for your interest! The two tools (SBOLDesigner and BOOST), which need to be integrated in this project, will communicate SBOL with each other (http://sbolstandard.org/). I'd recommend having a look into the SBOL 2.2.0 specification (http://sbolstandard.org/data-model-specification/) and the SBOL software libraries (http://sbolstandard.org/libsbol/). Please let me know if you have any further questions!

prem0862 commented 6 years ago

@eoberortner I am Prem from India and currently, i am a 3rd-year undergraduate student pursuing Bachelor of Pharmacy from BITS PILANI. I have a sound knowledge of Molecular Biology, and I have also done some project Based on Java and JSON ( I'm an Android Developer). It looks an interesting project to me and I want to work on this during GSoC period. It would be great if someone can help me in writing a proposal for the same. Thanks in Advance

eoberortner commented 6 years ago

Dear Prem! Thanks a lot for your interest in this project! It seems that you would be a good fit based on your background. Please, can you formulate a first draft of the proposal (do you have access to the template?) and then we can help out more. Also, please familiarize yourself with SBOL, especially the SBOL 2.2.0 specification (http://sbolstandard.org/data-model-specification/) and the SBOL software libraries (http://sbolstandard.org/libsbol/). Thanks!

prem0862 commented 6 years ago

@eoberortner Thanks a lot for such a quick response. Yes, I have access to the template. Before moving forward, I want to clarify some of my doubts and it will help me in writing my proposal too. Can I ask it here, or should I mail you? Thanks

cjmyers commented 6 years ago

Best to ask it hear as it will reach all the potential mentors.

On Mar 14, 2018, at 5:29 AM, Prem Prakash notifications@github.com wrote:

@eoberortner https://github.com/eoberortner Thanks a lot for such a quick response. Before moving forward, I want to clarify some of my doubts and it will help me in writing my proposal too. Can i ask it here, or should i mail you? Thanks

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/nrnb/GoogleSummerOfCode/issues/99#issuecomment-372957021, or mute the thread https://github.com/notifications/unsubscribe-auth/ADWD9y0r_4okV5xt9_8opvMqstKEf4FYks5teOLxgaJpZM4Q_wk6.

prem0862 commented 6 years ago

@cjmyers Thanks for the response. I have a lot of queries, I will put these into different bullet points:

  1. First of all, why are we using Java for this project how it will provide an advantage over other languages (especially python)?
  2. The goal of this project is to integrate both tools, SBOLDesigner and BOOST for a common synthetic biology design-build workflow. I am going to explain what I have interpreted from the idealist. Please comment, if am wrong. Since SBOL designer is an open source project we can use it to make our project successful and for that, we have to draw the UI like "Prepare for Synthesis" on the existing BOOST Designer interface and on clicking on "Prepare for Synthesis" we can call APIs (RESTful APIs) to perform our task (depends upon the APIs we called) and after doing such operation it will return a results on the SBOL Designer UI with option for (i) accept the performed changes, (ii) re-submit the sequences to BOOST using alternative parameter values, or (iii) ignore BOOST's results. Am I correct?
  3. SBOLDesigner sends the designed sequences (encoded in SBOL) and the build-specific information to BOOST. What are mean my build specific information and how it can be passed to BOOST ( by using API endpoint ??) Please take a look at it and point out, wherever possible. Thanks
cjmyers commented 6 years ago

On Mar 14, 2018, at 10:21 AM, Prem Prakash notifications@github.com wrote:

@cjmyers https://github.com/cjmyers Thanks for the response. I have a lot of queries, I will put these into different bullet points:

First of all, why are we using Java for this project how it will provide an advantage over other languages (especially python)? Both SBOLDesigner and BOOST are implemented in Java, so since this will likely involve coding within those codebases, then it makes the most sense to use Java. The goal of this project is to integrate both tools, SBOLDesigner and BOOST for a common synthetic biology design-build workflow. I am going to explain what I have interpreted from the idealist. Please comment, if am wrong. Since SBOL designer is an open source project we can use it to make our project successful and for that, we have to draw the UI like "Prepare for Synthesis" on the existing BOOST Designer interface and on clicking on "Prepare for Synthesis" we can call APIs (RESTful APIs) to perform our task (depends upon the APIs we called) and after doing such operation it will return a results on the SBOL Designer UI with option for (i) accept the performed changes, (ii) re-submit the sequences to BOOST using alternative parameter values, or (iii) ignore BOOST's results. Am I correct? I think Ernst can comment more, but this is basically correct I think. Namely, the SBOLDesigner tool will query BOOST via its RESTful API to obtain sequence optimization results. SBOLDesigner sends the designed sequences (encoded in SBOL) and the build-specific information to BOOST. What are mean my build specific information and how it can be passed to BOOST ( by using API endpoint ??) Please take a look at it and point out, wherever possible. Thanks

I’ll let Ernst handle this one.

eoberortner commented 6 years ago

@Prem0707 here are some additional comments:

The goal of this project is to integrate both tools, SBOLDesigner and BOOST for a common synthetic biology design-build workflow. I am going to explain what I have interpreted from the idealist. Please comment, if am wrong. Since SBOL designer is an open source project we can use it to make our project successful and for that, we have to draw the UI like "Prepare for Synthesis" on the existing BOOST Designer interface and on clicking on "Prepare for Synthesis" we can call APIs (RESTful APIs) to perform our task (depends upon the APIs we called) and after doing such operation it will return a results on the SBOL Designer UI with option for (i) accept the performed changes, (ii) re-submit the sequences to BOOST using alternative parameter values, or (iii) ignore BOOST's results. Am I correct?

I think Ernst can comment more, but this is basically correct I think. Namely, the SBOLDesigner tool will query BOOST via its RESTful API to obtain sequence optimization results.

As Chris said, this is basically correct. SBOLDesigner will send API-requests to BOOST and needs to interpret BOOST's response. How the request and response data will look like, will be discussed with the GSoC student. Also, I need to discuss if the GSoC student will have to access to the BOOST source-code, enabling modify the BOOST sources.

SBOLDesigner sends the designed sequences (encoded in SBOL) and the build-specific information to BOOST. What are mean my build specific information and how it can be passed to BOOST ( by using API endpoint ??) I’ll let Ernst handle this one.

As you said, the user will have a "Prepare for Synthesis" option in SBOLDesigner. If the user selects this option, then the user will have to specify various parameters regarding reverse-translation/codon-juggling, DNA synthesis constraints, DNA synthesis vendor, partitioning of large fragments into synthesizable building blocks, etc. One alternative here is to replicate the BOOST web-UI (please familiarize yourself with it at https://boost.jgi.doe.gov) in SBOLDesigner. Another alternative is to transfer the user to the BOOST web-UI, and the user enters all the data there. Both alternatives seem reasonable, but we'd like to encourage the GSoC student's creativity.

Do our responses help? Please let us know if you have any further questions! Most importantly, please familiarize yourself with SBOLDesigner and BOOST! This will help you to understand the concepts of this project a little better. Maybe you can also come up with a nice design (maybe from your lab?) that guides the GSoC project. Thanks!

prem0862 commented 6 years ago

@eoberortner @cjmyers Thanks for your responses. Yes, your responses helped me a lot to understand the project. Currently, I am familiarising with SBOLDesignser and sooner I will work with BOOST too. Sure, I will try to come with my design too. Thanks

prem0862 commented 6 years ago

Hi all I have explored SBOLDesigner and BOOST and it helped me a lot to understand the project. Thanks a lot for your suggestion. Now, I am moving ahead to write a proposal but before that, I want to clarify some of my doubts.

  1. 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. At this point what is meant by target host option? I haven't found anything like this, please clarify if have missed that.
  2. BOOST returns the synthesis-ready sequences to SBOLDesigner including a log of the performed actions (again, encoded in SBOL). In this point what is log of performed actions?
  3. How SBOLDesigner sends the designed sequences (encoded in SBOL) and the build-specific information to BOOST? What should be taken into consideration so that data would be lossless?
  4. When SBOLDesigner makes APIs Call, there should be some kind of login with token-based authentication. If yes, how it can be implemented? Please provide any reference for the same.

Please Help me to resolve these queries. Thanks

eoberortner commented 6 years ago

@Prem0707 great to hear that you explored SBOLDesigner and BOOST! Here are some comments regarding your questions:

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. At this point what is meant by target host option? I haven't found anything like this, please clarify if have missed that.

With target host, we mean the organism into that your designed sequence construct will be transformed, such as E.coli or S.cerevisiae.

BOOST returns the synthesis-ready sequences to SBOLDesigner including a log of the performed actions (again, encoded in SBOL). In this point what is log of performed actions?

With the "log of performed actions," we mean the changes that BOOST performed to the input sequence. For example, BOOST has to replace certain codons in order to make a protein coding sequence easier to synthesize. Such codon changes are logged.

How SBOLDesigner sends the designed sequences (encoded in SBOL) and the build-specific information to BOOST? What should be taken into consideration so that data would be lossless?

What do you think? What data could be lost? SBOLDesigner sends the designs (including their sequences) to BOOST using SBOL. BOOST does not change the designs. BOOST just changes the sequences of the designs. That is, at the end of the GSoC project, there should be a mechanism in SBOLDesigner, that keeps track of the sequence "versions". For example, SBOLDesigner sends the designs and their sequences to BOOST, which is version 1 of the sequences. BOOST returns updated sequences, and SBOLDesigner labels the updated sequences as version 2. This mechanism needs to be discussed in more detail though. Maybe @cjmyers has some thoughts?

When SBOLDesigner makes APIs Call, there should be some kind of login with token-based authentication. If yes, how it can be implemented? Please provide any reference for the same.

That is correct! Here is one simple alternative: When you login to BOOST, you can go to the "Account" page where you can find your BOOST JWT (JSON Web-Token). The user needs to enter this JWT somehow into SBOLDesigner and SBOLDesigner puts the entered token into the header of every BOOST request. But there are other alternatives too. Can you think of any?

Does this information help?

prem0862 commented 6 years ago

@eoberortner Yes, your information helped me a lot. Thanks

  1. For the login part, I am thinking that we can create a simple login UI in SBOLDesigner and from that we can invoke login API which results in status and boost-jwt so there will be no need to move on BOOST Login Page but for signup option we can redirect the user to the BOOST web page. Please provide your views at it
  2. I am also searching for other products or projects those are already using BOOST by using RESTful APIs butI haven’t found any. If you have any idea, Please provide me link for that. It will really help me a lot.
  3. One last thing (hopefully), There is an API of all the things 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 BUT also there is
    an API for Workflow Manager and it is not there in the idealist. Have we missed that or it's ok?

Thanks a lot for your patience and cooperation

prem0862 commented 6 years ago

Hi all I have written a draft proposal for this project. Please review it. Thanks https://drive.google.com/open?id=1tGDNZaCr6SK7Wms6FAke1NGLO7XHk9zL2Vu9g-V97AI

eoberortner commented 6 years ago

@Prem0707 Thanks for sharing your draft proposal! It looks very good for an initial draft! I'm a little busy this week and will respond with more detail during the weekend or early next week! Maybe @cjmyers has some comments in the meanwhile? Please keep up the great work! Thanks!

cjmyers commented 6 years ago

Draft looks good. On vacation so will look closer next week when I return.

As to question about avoiding data loss, we plan to use provO to record the way the data is processed.

Chris

Sent from my iPhone

On Mar 20, 2018, at 5:09 PM, eoberortner notifications@github.com wrote:

@Prem0707 Thanks for sharing your draft proposal! It looks very good for an initial draft! I'm a little busy this week and will respond with more detail during the weekend or early next week! Maybe @cjmyers has some comments in the meanwhile? Please keep up the great work! Thanks!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

prem0862 commented 6 years ago

@eoberortner @cjmyers Thanks for your responses. I will not disturb you further until this week, you guys really helped me a lot by clarifying my doubts. Since upcoming Tuesday (27 March) is the last date to submit the final proposal, I will need your feedback on this till Monday (26 March) so that I would be able to modify it as per project requirement. Thanks a lot for your guidance and support.

cjmyers commented 6 years ago

I took another quick look. I think it is mostly ok. Please double check for typos. I saw Parameters misspelled in one of your mockups for example.

@michael13162 could you have a look and give your feedback?

On Mar 21, 2018, at 9:46 PM, Prem Prakash notifications@github.com wrote:

@eoberortner https://github.com/eoberortner @cjmyers https://github.com/cjmyers Thanks for your responses. I will not disturb you further until this week, you guys really helped me a lot by clarifying my doubts. Since upcoming Tuesday (27 March) is the last date to submit the final proposal, it will need your feedback on this till Monday (26 March) so that I would be able to modify it as per project requirement. Thanks a lot for your guidance and support.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/nrnb/GoogleSummerOfCode/issues/99#issuecomment-375089714, or mute the thread https://github.com/notifications/unsubscribe-auth/ADWD9x_xQyc1wWfVmCk8kmgQS3MoGjIXks5tgrwIgaJpZM4Q_wk6.

prem0862 commented 6 years ago

@cjmyers Thanks a lot for your valuable suggestions. I will definitely look and fix typos.

michael13162 commented 6 years ago

Just read through the proposal. Other than the typos that Chris mentioned, I think the content is very good. The flow diagram, JWT token process, and UI mocks ups all seem well thought out. The timeline looks pretty reasonable too.

As Ernst said, keep up the good work :)

prem0862 commented 6 years ago

@michael13162 Thank a lot for the feedback:)

eoberortner commented 6 years ago

@Prem0707 sorry for the late response on your following questions:

For the login part, I am thinking that we can create a simple login UI in SBOLDesigner and from that we can invoke login API which results in status and boost-jwt so there will be no need to move on BOOST Login Page but for signup option we can redirect the user to the BOOST web page. Please provide your views at it

that sounds like a nice idea! please let me double-check though, since BOOST uses a single sign-on system (developed at JGI) for login. I need to make sure that this single sign-on system provides proper APIs.

I am also searching for other products or projects those are already using BOOST by using RESTful APIs butI haven’t found any. If you have any idea, Please provide me link for that. It will really help me a lot.

unfortunately, there are is just one tool yet with BOOST integration. At Lawrence Berkeley National Labs, we work on integrating BOOST into DIVA, DeviceEditor, and J5 (https://j5.jbei.org/index.php/Main_Page). Generally speaking, BOOST could potentially serve as an interface between a design tool (e.g., SBOLDesigner) and the API of a commercial synthesis vendor. The reason for that is, that synthesis vendor will not modify your sequences. They propose modifications to it.

One last thing (hopefully), There is an API of all the things 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 BUT also there is an API for Workflow Manager and it is not there in the idealist. Have we missed that or it's ok?

The BOOST workflow-manager unites the three BOOST functionalities of (i) reverse-translation/codon-juggling, (ii) verification/modification according to synthesis constraints and (ii) partitioning of large sequences I see it as follows (@cjmyers, @michael13162 please add your thoughts too): SBOLDesigner integrates BOOST for two purposes (instead of the three BOOST functionalities): 1) reverse-translation/codon-juggling and 2) prepare sequences for synthesis (including verification/modification according to synthesis constraints and partitioning).

There are two alternatives: The SBOLDesigner user can either use BOOST for both purposes or for each purpose individually.

Does this make sense?

prem0862 commented 6 years ago

@eoberortner Thanks a lot for your valuable suggestion.

Yes. Now, I have got a clear idea about API call. So, I think there is no need to integrate Workflow manager. I am thinking that I will add radio button for each task and user can select each of the tasks depending on what he/she want to perform with the design. There are sperate API available for each of the task like Reverse-Translation of protein to DNA sequences, Codon-Juggling of protein-coding DNA sequences, Verification of DNA sequences against synthesis constraints e.t.c So, I am planning to use radio buttons (to select task) separately for each of the tasks.

Write your views on it. Thanks

eoberortner commented 6 years ago

@Prem0707 I have two comments how to tune your proposal: 1) Integrate a design (e.g., a design of your lab) that guides the project 2) Add screenshots of (i) SBOLDesigner illustrating your design and (ii) BOOST showing the input and output sequences of your design

I will go over your proposal and try to tune the wordings. Thanks for all your hard work!

eoberortner commented 6 years ago

@Prem0707 thanks for writing up the proposal! it looks great and I added (a lot of) comments to tune the wording. Regarding the section "Where will you be located during GSoC", we might be able to fly you into the Bay Area for 1 or 2 weeks to work with on this project. We (JGI) are located in the Bay Area. Would you be interested? If yes, please let me know and I'll get in contact with our managers.

prem0862 commented 6 years ago

@eoberortner Thanks a lot for reviewing my proposal and for providing me a detailed review on it. I have still some doubt about project design, I am going to explain that what I have understood about it. Please correct me, if I am wrong.

  1. Integration of design means that we have needed a design of DNA (this is for verification of APIs response during project development phase). I am not able to figure out which sequence I should choose, Can I choose it random?
  2. According to my views, 1st point and 2 (i) are same and it is that we have to show the design of DNA on SBOLDesigner. am I correct?
  3. Should I show the output of BOOST on SBOL interface itself? How can I design the output of an input sequence without making API Call?
  4. SBOLDesigner illustrating your design and BOOST showing the input is the same design (i.e same sequence of DNA). Is it this way?
  5. Since we are using APIs for integration of BOOST to SBOLDesigner so there isn't any involvement of BOOST UI. so, should I show input and output of BOOST on SBOL interface?

Thanks

eoberortner commented 6 years ago

@Prem0707

Integration of design means that we have needed a design of DNA (this is for verification of APIs response during project development phase). I am not able to figure out which sequence I should choose, Can I choose it random?

it would be nice to use a design that is either published (e.g., any circuit or gene cluster refactoring) or comes out of your lab.

According to my views, 1st point and 2 (i) are same and it is that we have to show the design of DNA on SBOLDesigner. am I correct?

Yes, correct.

Should I show the output of BOOST on SBOL interface itself? How can I design the output of an input sequence without making API Call? SBOLDesigner illustrating your design and BOOST showing the input is the same design (i.e same sequence of DNA). Is it this way?

sorry, I don't understand what you mean with these questions. please, can you rephrase of clarify what you mean?

Since we are using APIs for integration of BOOST to SBOLDesigner so there isn't any involvement of BOOST UI. so, should I show input and output of BOOST on SBOL interface?

Well, we will have to implement some form of BOOST UI in SBOLDesigner. The user will have to enter some data (e.g., the codon usage tables) for the specific BOOST tasks.

prem0862 commented 6 years ago

@eoberortner Thank you for the response. In my 3rd query, I want to clarify this point BOOST showing the input and output sequences of your design

Do I have to show input data that a user has to enter that's are associated with the specific task? Is it this way?

and for Integration a design for design in SBOL Designer, I am trying to add a new registry (SBOL Stack with URL: https://synbiohub.org:9090) but I don't know why it is not working. Please help with this.

eoberortner commented 6 years ago

thanks for clarification @Prem0707! It'd be nice to show some screenshots of the BOOST web UI, demonstrating the inputs and outputs. Maybe you can explain how you are planning to reproduce the BOOST web UI in SBOLDesigner?!

and for Integration a design for design in SBOL Designer, I am trying to add a new registry (SBOL Stack with URL: https://synbiohub.org:9090) but I don't know why it is not working. Please help with this.

So to understand you correctly, you are trying to load a design (which is located in SynBioHub) into SBOLDesigner. What exactly is not working? @cjmyers and @michael13162 can definitely help out on this issue.

cjmyers commented 6 years ago

You should not include “:9090”. Also the latest release of SBOLDesigner should be including these for you automatically.

On Mar 27, 2018, at 10:46 AM, eoberortner notifications@github.com wrote:

thanks for clarification @Prem0707 https://github.com/Prem0707! It'd be nice to show some screenshots of the BOOST web UI, demonstrating the inputs and outputs. Maybe you can explain how you are planning to reproduce the BOOST web UI in SBOLDesigner?!

and for Integration a design for design in SBOL Designer, I am trying to add a new registry (SBOL Stack with URL: https://synbiohub.org:9090 https://synbiohub.org:9090/) but I don't know why it is not working. Please help with this.

So to understand you correctly, you are trying to load a design (which is located in SynBioHub) into SBOLDesigner. What exactly is not working? @cjmyers https://github.com/cjmyers and @michael13162 https://github.com/michael13162 can definitely help out on this issue.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/nrnb/GoogleSummerOfCode/issues/99#issuecomment-376594432, or mute the thread https://github.com/notifications/unsubscribe-auth/ADWD94IwQm1drUroc8fVz1fXbUuzC8JKks5timzIgaJpZM4Q_wk6.

prem0862 commented 6 years ago

@eoberortner @michael13162 @cjmyers Thanks a lot for your guidance and suggestions. You guys really help me a lot in writing the proposal. Thank you for being patience (even though I have asked a lot of queries). I really enjoyed this period and It would be fortunate for me to work with you guys.

Since the 27th march (09:30 PM, IST) was the official deadline to submit the proposal on GSoC website so I have submitted the final proposal. Now, I wouldn't be able to do any changes in final proposal but I want to work on some of the things which I realised late like integrating a design to guide the project (though I have added a design but it may not enough to guide this project), draw UI for input data that a user has to enter or outputs for a task.

You should not include “:9090”. Also the latest release of SBOLDesigner should be including these for you automatically.

@cjmyers Is it with version 3.0, Since I am using 2.0 ?

thanks for clarification @Prem0707! It'd be nice to show some screenshots of the BOOST web UI, demonstrating the inputs and outputs. Maybe you can explain how you are planning to reproduce the BOOST web UI in SBOLDesigner?!

Can I work on these until this weekend, even though I won't be able to add these to my final proposal? Also, I want to read codebase of this project so that I can resolve some issues. Is there any documentation available for the project.

cjmyers commented 6 years ago

You can certainly keep working on things, but your proposal will be the main thing used by the evaluation committee.

I don’t think we have much in the way of documentation unfortunately. @michael13162 anything to point him to?

On Mar 27, 2018, at 1:08 PM, Prem Prakash notifications@github.com wrote:

@eoberortner https://github.com/eoberortner @michael13162 https://github.com/michael13162 @cjmyers https://github.com/cjmyers Thanks a lot for your guidance and suggestions. You guys really help me a lot in writing the proposal. Thank you for being patience (even though I have asked a lot of queries). I really enjoyed this period and It would be fortunate for me to work with you guys.

Since the 27th march (09:30 PM, IST) was the official deadline to submit the proposal on GSoC website so I have submitted the final proposal. Now, I wouldn't be able to do any changes in final proposal but I want to work on some of the things which I realised late like integrating a design to guide the project (though I have added a design but it may not enough to guide this project), draw UI for input data that a user has to enter or outputs for a task.

Can I work on these until this weekend, even though I won't be able to add these to my final proposal? Also, I want to read codebase of this project so that I can resolve some issues. Is there any documentation available for the project.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/nrnb/GoogleSummerOfCode/issues/99#issuecomment-376640128, or mute the thread https://github.com/notifications/unsubscribe-auth/ADWD96-dooWT0ZwnDOj3-hENgIfRCp8xks5tio4sgaJpZM4Q_wk6.

michael13162 commented 6 years ago

Yup, you should be using the 3.0 beta release that's linked here: https://github.com/SynBioDex/SBOLDesigner/releases

I also just added a link to a paper we published about SBOLDesigner's backend (it's under other useful information): http://www.async.ece.utah.edu/SBOLDesigner

That paper is going to be a really good resource since it goes over a lot of internals. There is also a genetic circuit design walkthrough you can follow. Don't worry if you don't understand all the SBOL details yet though. Have fun :)

prem0862 commented 6 years ago

First of all, Thank you, mentors, for helping me out in writing the proposal. Working on the project has been an amazing experience so far.

@Prem0707 thanks for writing up the proposal! it looks great and I added (a lot of) comments to tune the wording. Regarding the section "Where will you be located during GSoC", we might be able to fly you into the Bay Area for 1 or 2 weeks to work with on this project. We (JGI) are located in the Bay Area. Would you be interested? If yes, please let me know and I'll get in contact with our managers.

@eoberortner Yes, it would be a real pleasure to join the team in Bay Area for 1-2 weeks. It will help me understand the project better and contribute more.

Yup, you should be using the 3.0 beta release that's linked here: https://github.com/SynBioDex/SBOLDesigner/releases

I also just added a link to a paper we published about SBOLDesigner's backend (it's under other useful information): http://www.async.ece.utah.edu/SBOLDesigner

That paper is going to be a really good resource since it goes over a lot of internals. There is also a genetic circuit design walkthrough you can follow. Don't worry if you don't understand all the SBOL details yet though. Have fun :)

@michael13162 Thanks a lot. I would definitely read and try to understand the resources provided by you.

prem0862 commented 6 years ago

I have gone through SBOL website and a great talk by @michael13162 , It is really helpful for me to understand the Data Model of SBOLDesigner.

@michael13162 I am not able to access this full paper. Please help me with this. Thanks

michael13162 commented 6 years ago

That reminds me, Ernst had a great talk about BOOST at that same conference: https://www.youtube.com/watch?v=MNvTyqd5dxc

I've also sent you an email.

prem0862 commented 6 years ago

``That reminds me, Ernst had a great talk about BOOST at that same conference: https://www.youtube.com/watch?v=MNvTyqd5dxc

It is indeed a great video resource for BOOST.

I've also sent you an email.

@michael13162 I have read the paper. It is really a great resource for understanding the underlying working. Till now, I have read the paper once and I have a rough idea of the backend of SBOLDesigner. I am planning to read it once more. Meanwhile, Please provide me other resources related to the project (SBOLDesigner or BOOST).

I really appreciate you guys for the amount of effort you guys have putten for this project. Thanks a lot:)

eoberortner commented 6 years ago

Meanwhile, Please provide me other resources related to the project (SBOLDesigner or BOOST).

The BOOST paper should be in your mailbox by now. Please let me know if you did not receive my e-mail. Thanks!

prem0862 commented 6 years ago

I have some doubts regarding SBOL 2.0 data model. Please clarify.

sequence constraints are only present when there is more than one part on the canvas, since the relative ordering only matters when there are multiple parts. However, each Component always has a sequence annotation that refers to it. Also, it is important to note that Sequence- Annotations and SequenceConstraints are annotations and constraints on Components, not Sequences.

Sequence- Annotations and SequenceConstraints are annotations and constraints on Components, not Sequences.

I have quoted the above statements from this paper, I am a little bit confused about sequence annotation that if it is an annotation on component (not on sequence) then why each component has its sequence annotation? @michael13162 Please clarify it. Thanks

@eoberortner Currently I am halfway through BOOST paper provided by you. It is indeed a well documented great resource to fully understand the BOOST working. Simultaneously I am also going through the paper which talks about algorithms and BOOST web application to understand the parameter for each task. Is it the best way to understand BOOST behaviour? Thanks

michael13162 commented 6 years ago

Sequence constraints define an ordering between two components. Sequence annotations define a range of the sequence that the component belongs on. Think of a component as an instantiation of a Component Definition, and Sequence annotations as the glue that holds together the component and the sequence.

Don't worry if you don't understand some of the details. It'll help once you get started more on the implementation of the project. I don't think you'll need to get nitty gritty in the details either.

Good questions :)

prem0862 commented 6 years ago

@eoberortner I just finished with the paper provided by you. It is really great resource to understand the internal working BOOST and the algorithms which have been implemented. I have still few doubts regarding BOOST working, which I want to clarify.

Is it possible that BOOST ended up with the maximum iteration to resolve the violation but it might not able to fully resolve the violation? If yes, What would be expected output from BOOST?

@eoberortner @cjmyers @michael13162 What should I do next, please provide me leads. Thanks

cjmyers commented 6 years ago

If you have some free time, it would be great if you could setup your development environment using Eclipse and clone the SBOLDesigner repo, if you have not already done this. If you need help, please contact @michael13162. Once you have that done, you could take a look at our issue tracker and see if there is any issue that you could try to resolve. Although not related to BOOST, this would give you the opportunity to experiment with our codebase.

On Apr 9, 2018, at 2:26 PM, Prem Prakash notifications@github.com wrote:

@eoberortner https://github.com/eoberortner I just finished with the paper provided by you. It is really great resource to understand the internal working BOOST and the algorithms which have been implemented. I have still few doubts regarding BOOST working, which I want to clarify.

Is it possible that BOOST ended up with the maximum iteration to resolve the violation but it might not able to fully resolve the violation? If yes, What would be expected output from BOOST?

@eoberortner https://github.com/eoberortner @cjmyers https://github.com/cjmyers @michael13162 https://github.com/michael13162 What should I next, please provide me leads. Thanks

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/nrnb/GoogleSummerOfCode/issues/99#issuecomment-379883184, or mute the thread https://github.com/notifications/unsubscribe-auth/ADWD91Imzk45XcXZtV5eYfLkwOhOMfI-ks5tm8QTgaJpZM4Q_wk6.

eoberortner commented 6 years ago

@Prem0707

Is it possible that BOOST ended up with the maximum iteration to resolve the violation but it might not able to fully resolve the violation? If yes, What would be expected output from BOOST?

Yes, it is possible that BOOST cannot resolve all violations. There are different alternatives in such a case, which are the user's responsibility what to do. For example,

BOOST will return modified sequences to the user/SBOLDesigner, enabling the user/SBOLDesigner to further try modifying the modified sequences.

prem0862 commented 6 years ago

@cjmyers @eoberortner Thanks for your suggestion and responses.

EDIT: The error (described below) got resolved

@michael13162 I am facing an issue with cloning the GitHub repo of the project to my local machine. I have tried to solve the issue with the solution provided on StackOverflow.com but unfortunately, nothing worked for me.

These are the steps I have followed in order to clone it on my local machine;

  1. Forked the project on my GitHub profile
  2. Tried to clone the project by using the command line (I'm using Window). Here is the command I am using to clone the project:

      `git clone https://github.com/Prem0707/SBOLDesigner.git`

but I am getting an error like:

       `fatal: unable to access 'https://github.com/Prem0707/SBOLDesigner.git/': Unknown SSL protocol 
       error in connection to github.com:443`

Please help with this. Thanks

cjmyers commented 6 years ago

Strange. I was able to clone from your repo. Did you look at this post:

https://stackoverflow.com/questions/20491027/unknown-ssl-protocol-error-in-connection https://stackoverflow.com/questions/20491027/unknown-ssl-protocol-error-in-connection

On Apr 10, 2018, at 1:34 PM, Prem Prakash notifications@github.com wrote:

@cjmyers https://github.com/cjmyers @eoberortner https://github.com/eoberortner Thanks for your suggestion and responses.

@michael13162 https://github.com/michael13162 I am facing an issue with cloning the GitHub repo https://github.com/Prem0707/SBOLDesigner of the project to my local machine. I have tried to solve the issue with the solution provided on StackOverflow.com but unfortunately, nothing worked for me.

These are the steps I have followed in order to clone it on my local machine;

Forked the project on my GitHub profile

Tried to clone the project by using the command line (I'm using Window). Here is the command I am using to clone the project:

git clone https://github.com/Prem0707/SBOLDesigner.git but I am getting an error like:

   `fatal: unable to access 'https://github.com/Prem0707/SBOLDesigner.git/': Unknown SSL protocol 
   error in connection to github.com:443`

Please help with this. Thanks

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/nrnb/GoogleSummerOfCode/issues/99#issuecomment-380220895, or mute the thread https://github.com/notifications/unsubscribe-auth/ADWD9wsp8YzOpSK1dGt9DySOCQgRdihZks5tnQkxgaJpZM4Q_wk6.

prem0862 commented 6 years ago

@cjmyers Thanks for your help. I tried all steps described in the above post but nothing worked. After some time I tried with normal git clone command and it worked as expected. I don't know what was wrong with it earlier.

prem0862 commented 6 years ago

Hi All, I went through all of the issues of the project but can't able to choose any issue on which I can start working. It will also help me to get familiar with the codebase.

If possible, please suggest me to get started (suggest any issue to work). Thank you.

eoberortner commented 6 years ago

@Prem0707 thanks for all your efforts so far! please, can you try to implement some Java code that invokes the BOOST API? one popular frameworks for this is Jersey (https://jersey.github.io/)

AlexanderPico commented 6 years ago

And with respect to GSoC, that statement comes with the caveat that we do not know which projects will be accepted and can not make any guarantees nor share decisions prior to the official announcement by Google.

prem0862 commented 6 years ago

@eoberortner Sure, I will definitely try to invoke BOOST APIs. @AlexanderPico Thank you for reply