Team:SYSU-Software/Feature

SYSU-Software:Project

FEATURE

  • Convenient

  • & Free Use

  • CRAFT do not need the users master complex operation flow. All

  • the users should do is setting their own restrictions and clicking

  • “Next”. Moreover, CRAFT allowed users to input multiple products

  • at same time, and give every single target a restriction. Users

  • are also allowed to change background environment, or customize

  • environment by uploading files, ensuring the users can design

  • the synthetic biological system that they really want.

  • Users can also feel free to change the regulatory elements in

  • generated circuits. CRAFT allows users to change the strength of

  • regulatory elements and the software will generate elements

  • matching the strength.

  • Standard

  • Protocol

  • Using “Design and Redesign” concept in synthetic biology,

  • CRAFT can generate standard protocols aiming at specific

  • synthetic biological system designs.

  • CRAFT also provide channels of experiment data feedback for

  • every single user and system design. The experiment data can

  • be referred by other researchers directly and used to update

  • model in the future.

  • Share

  • & Collaboration

  • Users can issue their own work on CRAFT Square and share

  • their ideas with other researchers. They can also scan other

  • designs and get inspired.

  • CRAFT Square provide a platform for collaboration, including

  • undertaking calculation missions of other users’ design, designing

  • or redesigning the existed system and validating synthetic

  • biological system following the standard protocols.

Extensible

  • CRAFT offers two levels of extensibility, from high to low: functional

  • extensibility and code extensibility.

  • Functional extensibility: users can customize and extend the

  • functions of CRAFT.

  • 1. In addition to the bacterial communities data offered by CRAFT,

  • users can upload their data file of bacterial communities or media

  • for customization of media background.

  • 2. In CRAFT there are channels for experimental data feedbacks,

  • which can also modify the parameters of the models in CRAFT.

  • 3. If the protocols offered by CRAFT are irrelevant or inappropriate

  • to the users' requirements, users can uplode the protocols to CRAFT

  • to expand the protocol databases.

  • Code extensibility: we followed the best practices in software

  • engineering andtried our best to enhance the reusability of code.

  • 1. Best practices in coding for readability and understandability:

  • we adopted the standardized variable naming and clear indentations.

  • 2. Modular design: algorithms are designed to be modular for easy

  • migration to other programs.

  • 3. Bug tracking facilities: we use Github Issue as the bug tracking

  • facilities. When users find a bug, they can easily report the bug either

  • to the Github Issue or through the email address provided in CRAFT

  • underneath.

  • 4. Documentation: thorough and thoughtful via Github and Wiki. In Github

  • there are more details on the dependencies of CRAFT. In wiki we demonstrate

  • the requirement for CRAFT in Description, and also illustrate the design

  • of CRAFT in Design. Functions of some dependencies used in CRAFT are

  • offered below. For the installability test, user studies and wet-lab

  • validation of our software, please see the correponding wiki pages.

  • 5. Flask: We also use flask as our frmework, it is extensible and easy

  • to deploy.

  • 6. SBOLv: CRAFT use SBOLv as its output, thus it can connect with other

  • results also in SBOLv.

Techniques

  • Backend Dependencies and Functions

  • Flask: CRAFT use flask, a light-weight extensible framework and also

  • easy to be deployed.

  • flask sqlalchemy: CRAFT uses SQLalchemy as the Object Relational Mapper,

  • with which CRAFT is portable with many kinds of SQL databases

  • (CRAFT works with SQLite by default).

  • wkhtmltopdf: for dynamic generation of protocols. Protocol pdfs are

  • dynamically generated from backend html using wkhtmltopdf, a framework for

  • python pdf modification.

  • xlrd

  • pytz

  • pdfkit

  • uwsgi

  • nginx

  • Frontend-Backend Interactive Graphic

  • Whenever front-end changes data on the pages, backend will receive,

  • requests, and immediately send results back to front-end, with no

  • need for refresh the sites.

  • Algorithms

  • Search part: We used greedy search to screen a number of non-

  • feasible solution for the reason that the feasible region is very

  • small in the search part. The algorithm performs a exact match on

  • a small graph with large amount of patterns.

  • The linear bi-level programming is transformed to a non-linear

  • programming by the method of penalty function and dual theory of

  • linear programming, increasing the efficiency of the algorithm.

  • Dynamic programming: obtain the most stable secondary structure

  • of a mRNA strand penalty function method: transform the linear bi-

  • level programming to a non-linear programming.

  • Interior method: solve the non-linear programming efficiently.