Team:SUSTC-Shenzhen-A/Biodesign Background


How Biodesign draws lines

    We use Quartz 2D to develop the line part. See a detailed introduction of Quartz2D below or Google it!
    The major type of path we use is cubic Bézier curve.See Fig.1. Four points P0, P1, P2 and P3 in the plane or in higher-dimensional space define a cubic Bézier curve. The curve starts at P0 going toward P1 and arrives at P3 coming from the direction of P2. Usually, it will not pass through P1 or P2; these points are only there to provide directional information. The distance between P0 and P1 determines "how long" the curve moves into direction P2 before turning towards P3.

Fig.1 Draw lines

    The explicit form of the curve is:


    In Tinkercell, users can change the shape of the curve by dragging the control points, as shown in Fig.2. According to the habits of iPhone users, we use the movement of touches to control the shape change. Since the cubic Bézier curve has two control points, up to two fingers can be used with each one corresponding to one control point. When the number of finger touching is one, both control points will respond to the same movement.

Fig.2 Two fingers (represented as two gray dots) to control the line.

Introduction to Tinkercell

Tinkercell Image

    TinkerCell is a computer-aided design software tool for synthetic biology. It combines visual interface with programing API (Python, Octave, C, Ruby) and allows users to share their code with each other via a central repository.

    Since synthetic biology is a rapidly evolving field, three issues were taken into consideration when design TinkerCell. First, modeling techniques in biology are still at a developing stage; second, experimental techniques are constantly evolving, especially automation and directed evolution method; third, databases of biological components are still maturing.

    TinkerCell is designed with the anticipation that the future of synthetic biology will be an intricate interplay between a variety of experimental techniques, databases that store results from experiments, and mathematical models explaining different aspects of the experiments.

    It is too much to have many functions in TinkerCell from the start. So TinkerCell uses a flexible plug-in framework, which will allow others to contribute new functions to TinkerCell. The plug-ins can be written in C, C++, Python, or Octave. Other languages, e.g. Java, might also get added to this list.

    The basic idea behind ThinkerCell is to represent a diagram that is detailed enough so that it can be mapped to models or experimental understanding of the system. ThinkerCell enables that capability in software.

    The purpose of TinkerCell’s plugin interface is to welcome contributions from the community. Additionally, the TinkerCell source code is open-source (BSD) and the application itself is free of charge. All this is intend to make TinkerCell open to community.



Introduction to Quartz 2D

Quartz 2D Image

  Quartz 2D is an advanced, two-dimensional drawing engine available for iOS application development and to all Mac OS X application environments outside of the kernel. Quartz 2D provides low-level, lightweight 2D rendering with unmatched output fidelity regardless of displaying or printing device. Quartz 2D is resolution- and device-independent; you don’t need to think about the final destination when you use the Quartz 2D application programming interface (API) for drawing.

  The Quartz 2D API is easy to use and provides access to powerful features such as transparency layers, path-based drawing, offscreen rendering, advanced color management, anti-aliased rendering, and PDF document creation, display, and parsing.

  The Quartz 2D API is part of the Core Graphics framework, so you may see Quartz referred to as Core Graphics or, simply, CG.