Difference between revisions of "Team:Valencia UPV/Software"

Line 127: Line 127:
 
         </div>
 
         </div>
 
         <div class="col-md-9 col9Attr" style="padding-left: 6em;padding-right: 2em;">
 
         <div class="col-md-9 col9Attr" style="padding-left: 6em;padding-right: 2em;">
            <div>
+
            <div>
              <a class="anchorOffset" id="Software"></a>
+
              <a class="anchorOffset" id="Intro"></a>
              <h3>Introduction</h3>
+
              <h3>Introduction</h3>
              <p>
+
             
              <b>Do you think it is possible to mathematically describe a cell? Would you like to know the possibilities that modeling offers you?</b>
+
              <p>
              </p>
+
When it comes to automating the process of designing and printing genetic circuits in the lab, there is no denying that Printeria facilitates those tasks for both the average and the experienced user. But, without an interface to define all the necessary parameters, keep track of the device’s inventory, and monitor all of the steps of the process, that would not be possible.  
              <p>
+
When it comes to automating the process of designing and printing genetic circuits in the lab, there is no denying that Printeria facilitates those tasks for both the average and the experienced user. But, without an interface to define all the necessary parameters, keep track of the device’s inventory, and monitor all of the steps of the process, that would not be possible.  
+
  
</p>
+
</p>
<p>
+
<p>
We aim to solve that with Printeria Controller, an intuitive software that provides a user-friendly interface meant for all kinds of users, so that everyone can have access to the capabilities of Printeria. This controller help us to achieve the goal of our project: Make synthetic biology easier.
+
We aim to solve that with Printeria Controller, an intuitive software that provides a user-friendly interface meant for all kinds of users, so that everyone can have access to the capabilities of Printeria. This controller help us to achieve the goal of our project: Make synthetic biology easier.
  
</p>
+
</p>
<h3>Design Considerations and working flow</h3>
+
<h3>Design Considerations</h3>
<h4> A web application </h4>
+
<h4> A web application </h4>
<p>
+
<p>
Scientists nowadays use computers in the lab to take notes of their experiments, do research, make measurements from the laboratory devices… So we thought, why don’t they also use Printeria from the lab computer? That way, extra devices won’t be necessary. Once that decision was made, we found a setback: Most of laboratory computers are administered by technicians, so lab members cannot install new software in them. To fix this issue, we came up with the idea of making a web application so that no software installation is needed. This allowed everyone to access Printeria’s Controller from their personal computers, tablets or even smartphones. Thereby we allocated the application in a server inside a Raspberry Pi in Printeria.
+
Scientists nowadays use computers in the lab to take notes of their experiments, do research, make measurements from the laboratory devices… So we thought, why don’t they also use Printeria from the lab computer? That way, extra devices won’t be necessary. Once that decision was made, we found a setback: Most of laboratory computers are administered by technicians, so lab members cannot install new software in them. To fix this issue, we came up with the idea of making a web application so that no software installation is needed. This allowed everyone to access Printeria’s Controller from their personal computers, tablets or even smartphones. Thereby we allocated the application in a server inside a Raspberry Pi in Printeria.
 +
                </p>
 +
                <p>
 +
                We used MEAN stack, an open source framework to develop dynamic web applications in JavaScript. We chose this technology because it is very flexible, it allowed us to test and upload the application in the cloud easily, and because it uses only one language,  JavaScript, both in the server-side and the client-side, wich made it very fast to develop.
 +
            </p>
  
                </p>
+
<p>
 +
It’s composed with MongoDB, our database, Express.js, a web application framework for Node.js, Angular.js, that runs in the browser JavaScript, and Node.js, where server-side is executed in JavaScript outside the browser.
 +
</p>
 +
 
 +
<h4>Definition of Requirements</h4>
 +
             
 +
              <p>
 +
We used SCRUM, an agile framework to improve productivity. We talked and discussed with biotechnologists and possible users about what features would the controller be useful to have, and we listed them in a backlog, categorizing them by priority. Then the computer scientist decided the amount of work required for the first sprint.
 +
 
 +
</p>
 +
<p>
 +
Every week a meetup was made to update to all the team the progress that was made and to generate feedback in order to apply changes if needed. Once we achieved the goals of each sprint, we decided new backlog features to add to the software. This way, we achieved the team and user satisfaction because they saw the breakthrough and they could actively get involved in the development.
 +
 
 +
</p>
 +
 
 +
</div>
 +
 
 +
<div>
 +
              <a class="anchorOffset" id="Req"></a>
 +
             
 +
<h3> Software flow </h3>
 +
<p>
 +
When the user first access to Printeria Controller he has to register in order to have a registry of all of his experiments and save his configurations to ease future printings. We decided it would be useful for the user to know which person has done a determinate job in the past, see whose job is now being printed or before his, and adjust a specific configuration for the experiments so every time he wants to print something he would not have to configure it again, Printeria Controller does for him.
 +
 
 +
                </p>
 +
                <p>
 +
                Once he is registered, he would be able to create a “New Job”, a genetic circuit, entering a name and a description for the experiment. He can choose from a wide variety of parts allocated in our database to design a Transcriptional Unit. This parts are represented following the SBOL standard visual symbols. Information about the parts such X or Y is displayed in the info button if it is needed. More advanced options are provided, such as cycle configuration, in the “Advanced Mode”. With these options the user will be able to select the exact sequence of cycles, the time spent on each of the zones and the temperature, thus defining the instructions for the droplets.
 +
            </p>
 +
 
 +
<p>
 +
When all the data about the experiment is fulfilled, a modelling simulation can be made before the experiment starts. First of all, the software will collect all the necessary information about the experiment and will create a string to be sent through all the layers of the application till it reaches the Backend. Here, a python script will be executed and all the data will be generated. Finally, after the modeling results have been stored, a link to their location will be sent to the Frontend in order to be displayed in dynamic charts, giving the user the possibility to download or print them.
 +
</p>
 +
 
 +
<p>
 +
Among the printeria options, the possibility of save the genetic circuit in a public recipes repository stands out. This repository is full of recipes added by Printeria users that can be printed in our device at any time. The recipes contain all the information about already made experiments and the results that were obtained, including charts added by the user after an experiment has been done, dates of the experiments, number of times they have been replicated and of course information about the biological parts used. Those recipes can also be quickly printed if it is needed to add them to a report, for example.
 +
</p>
 +
 
 +
<p>
 +
Recipes can be very useful for non-scientific users. They can just search easily a functionality that they want the bacteria to express, for example a fluorescent red bacteria, and just send it to print. Bio artists can benefit from this functionality, as well as students who want to recreate an experiment done by their teacher.
 +
</p>
 +
 
 +
<p>
 +
After a recipe or a job has been selected to be printed, the inventory will be checked in order to confirm that the experiment can be executed with the available parts.
 +
 
 +
</p>
 +
 +
<p>
 +
The inventory provides a graphical representation of the wheel that can be found inside of our device, Printeria, with all the cartridges and their contents. The content of the cartridges can be modified, refilled and deleted in order to reflect the changes that are made in the real wheel.
 +
</p>
 +
 
 +
<p>
 +
The wheel distribution is the following:
 +
</p>
 +
<ul>
 +
<li>3 for Promoters. </li>
 +
<li>3 for RBSs.</li>
 +
<li>4 for CDSs.</li>
 +
<li>2 for Terminators. </li>
 +
<li>2 for bacteria.</li>
 +
<li>2 for buffers.</li>
 +
<li>4 for enzima.</li>
 +
<li>6 for water and alcohol.</li>
 +
</ul>
 +
 
 +
</div>
 
               <!--BOTONES PARA MOVERSE POR LA PÁGINA -->
 
               <!--BOTONES PARA MOVERSE POR LA PÁGINA -->
 
               <!--Los enlaces están bien pero los ids a donde apuntan están descuadrados adrede para que al pulsar lleve un poco por encima del contenido -->
 
               <!--Los enlaces están bien pero los ids a donde apuntan están descuadrados adrede para que al pulsar lleve un poco por encima del contenido -->

Revision as of 18:38, 8 October 2018

Stack Multipurpose HTML Template

Introduction

When it comes to automating the process of designing and printing genetic circuits in the lab, there is no denying that Printeria facilitates those tasks for both the average and the experienced user. But, without an interface to define all the necessary parameters, keep track of the device’s inventory, and monitor all of the steps of the process, that would not be possible.

We aim to solve that with Printeria Controller, an intuitive software that provides a user-friendly interface meant for all kinds of users, so that everyone can have access to the capabilities of Printeria. This controller help us to achieve the goal of our project: Make synthetic biology easier.

Design Considerations

A web application

Scientists nowadays use computers in the lab to take notes of their experiments, do research, make measurements from the laboratory devices… So we thought, why don’t they also use Printeria from the lab computer? That way, extra devices won’t be necessary. Once that decision was made, we found a setback: Most of laboratory computers are administered by technicians, so lab members cannot install new software in them. To fix this issue, we came up with the idea of making a web application so that no software installation is needed. This allowed everyone to access Printeria’s Controller from their personal computers, tablets or even smartphones. Thereby we allocated the application in a server inside a Raspberry Pi in Printeria.

We used MEAN stack, an open source framework to develop dynamic web applications in JavaScript. We chose this technology because it is very flexible, it allowed us to test and upload the application in the cloud easily, and because it uses only one language, JavaScript, both in the server-side and the client-side, wich made it very fast to develop.

It’s composed with MongoDB, our database, Express.js, a web application framework for Node.js, Angular.js, that runs in the browser JavaScript, and Node.js, where server-side is executed in JavaScript outside the browser.

Definition of Requirements

We used SCRUM, an agile framework to improve productivity. We talked and discussed with biotechnologists and possible users about what features would the controller be useful to have, and we listed them in a backlog, categorizing them by priority. Then the computer scientist decided the amount of work required for the first sprint.

Every week a meetup was made to update to all the team the progress that was made and to generate feedback in order to apply changes if needed. Once we achieved the goals of each sprint, we decided new backlog features to add to the software. This way, we achieved the team and user satisfaction because they saw the breakthrough and they could actively get involved in the development.

Software flow

When the user first access to Printeria Controller he has to register in order to have a registry of all of his experiments and save his configurations to ease future printings. We decided it would be useful for the user to know which person has done a determinate job in the past, see whose job is now being printed or before his, and adjust a specific configuration for the experiments so every time he wants to print something he would not have to configure it again, Printeria Controller does for him.

Once he is registered, he would be able to create a “New Job”, a genetic circuit, entering a name and a description for the experiment. He can choose from a wide variety of parts allocated in our database to design a Transcriptional Unit. This parts are represented following the SBOL standard visual symbols. Information about the parts such X or Y is displayed in the info button if it is needed. More advanced options are provided, such as cycle configuration, in the “Advanced Mode”. With these options the user will be able to select the exact sequence of cycles, the time spent on each of the zones and the temperature, thus defining the instructions for the droplets.

When all the data about the experiment is fulfilled, a modelling simulation can be made before the experiment starts. First of all, the software will collect all the necessary information about the experiment and will create a string to be sent through all the layers of the application till it reaches the Backend. Here, a python script will be executed and all the data will be generated. Finally, after the modeling results have been stored, a link to their location will be sent to the Frontend in order to be displayed in dynamic charts, giving the user the possibility to download or print them.

Among the printeria options, the possibility of save the genetic circuit in a public recipes repository stands out. This repository is full of recipes added by Printeria users that can be printed in our device at any time. The recipes contain all the information about already made experiments and the results that were obtained, including charts added by the user after an experiment has been done, dates of the experiments, number of times they have been replicated and of course information about the biological parts used. Those recipes can also be quickly printed if it is needed to add them to a report, for example.

Recipes can be very useful for non-scientific users. They can just search easily a functionality that they want the bacteria to express, for example a fluorescent red bacteria, and just send it to print. Bio artists can benefit from this functionality, as well as students who want to recreate an experiment done by their teacher.

After a recipe or a job has been selected to be printed, the inventory will be checked in order to confirm that the experiment can be executed with the available parts.

The inventory provides a graphical representation of the wheel that can be found inside of our device, Printeria, with all the cartridges and their contents. The content of the cartridges can be modified, refilled and deleted in order to reflect the changes that are made in the real wheel.

The wheel distribution is the following:

  • 3 for Promoters.
  • 3 for RBSs.
  • 4 for CDSs.
  • 2 for Terminators.
  • 2 for bacteria.
  • 2 for buffers.
  • 4 for enzima.
  • 6 for water and alcohol.

Models & Experiments

Simulation Tool

CONTACT US igem.upv.2018@gmail.com