目录

  • 1 Course Sections
    • 1.1 Brief Introduction to iGEM competition
      • 1.1.1 Brief Introduction of Synthetic Biology
      • 1.1.2 Brief Introduction of iGEM
    • 1.2 AHUT_iGEM 2016
      • 1.2.1 Brief Introduction of Project
    • 1.3 AHUT_iGEM 2015
      • 1.3.1 Brief Introduction of Project
      • 1.3.2 比赛花絮
    • 1.4 AHUT_iGEM 2014
      • 1.4.1 比赛花絮
    • 1.5 AHUT_iGEM 2013
      • 1.5.1 比赛花絮
    • 1.6 Assignments of the Section
    • 1.7 We Want You!
      • 1.7.1 AHUT_China2017年招新计划
      • 1.7.2 AHUT_China优秀队友简介
  • 2 Modern Molecular Biology
    • 2.1 Basics of Modern Molecular Biology
    • 2.2 Key Experiments
      • 2.2.1 限制性内切核酸酶及限制性内切核酸酶消化DNA实验
      • 2.2.2 电泳技术以及琼脂糖凝胶电泳
      • 2.2.3 PCR基本操作
      • 2.2.4 DNA重组
      • 2.2.5 感受态细胞的制备
    • 2.3 Assignments of the Section
  • 3 Synthetic Biology
    • 3.1 Overview of Synthetic Biology
      • 3.1.1 合成生物学的诞生
      • 3.1.2 合成生物学的研究内容
      • 3.1.3 合成生物学的意义
      • 3.1.4 合成生物学工程本质
      • 3.1.5 合成生物学与相关学科
    • 3.2 Design of Synthetic Biology System
      • 3.2.1 标准化生物模块
      • 3.2.2 BioBrick命名规则
      • 3.2.3 BioBrick的连接
    • 3.3 Mathematical Modeling and Performance Analysis
    • 3.4 Frontiers of Synthetic Biology
      • 3.4.1 合成生物学研究方向
      • 3.4.2 新的研究成果
  • 4 Bioinformatics
    • 4.1 Summarization
    • 4.2 Brief Introduction to Bioinformatics
    • 4.3 Definition of Bioinformatics
    • 4.4 Phases Division of Bioinformatics
      • 4.4.1 前基因组时代
      • 4.4.2 基因组时代
      • 4.4.3 后基因组时代
    • 4.5 Development of Bioinformatics
    • 4.6 Research Direction of Bioinformatics
      • 4.6.1 序列比对
      • 4.6.2 蛋白质比对
      • 4.6.3 基因识别分析
      • 4.6.4 分子进化
      • 4.6.5 序列重叠群(Contigs)装配
      • 4.6.6 遗传密码
      • 4.6.7 药物设计
      • 4.6.8 生物系统
      • 4.6.9 技术方法
      • 4.6.10 生物图像
      • 4.6.11 其他
    • 4.7 Research Methods of Bioinformatics
    • 4.8 Mathematical Issues of Bioinformatics
      • 4.8.1 统计学的悖论
      • 4.8.2 度量空间的假设
    • 4.9 Assignment of the Section
  • 5 Current Protocols
    • 5.1 Basics of Biology Safety and Protection
      • 5.1.1 生物安全防护相关概念
      • 5.1.2 生物安全防护
    • 5.2 120 Toxic Substances in Biology Lab
    • 5.3 Safe Operations in Biology Lab
      • 5.3.1 标本容器的相关操作
      • 5.3.2 移液管和移液辅助器的使用
      • 5.3.3 避免感染性物质的扩散
      • 5.3.4 生物安全柜的使用
      • 5.3.5 避免感染性物质的食入以及与皮肤和眼睛的接触
      • 5.3.6 避免感染性物质的注入
      • 5.3.7 离心机的使用
      • 5.3.8 匀浆器、摇床、搅拌器和超声处理器的使用
      • 5.3.9 组织研磨器的使用
      • 5.3.10 冰箱与冰柜和培养箱的维护和使用
      • 5.3.11 标本的收集、标记和运输
      • 5.3.12 打开标本管和取样
      • 5.3.13 玻璃器皿和“锐器”
      • 5.3.14 用于显微镜观察的盖玻片和涂片
      • 5.3.15 自动化仪器(超声处理器、涡旋混合器)
    • 5.4 Plans and Programs of Contingency Response
      • 5.4.1 意外事故应对方案
      • 5.4.2 微生物实验室应急程序
    • 5.5 Assignment of the Section
  • 6 Wiki Web Design and Edit
    • 6.1 HTML
    • 6.2 CSS
      • 6.2.1 基础教程
      • 6.2.2 框模型
      • 6.2.3 定位
      • 6.2.4 选择器
      • 6.2.5 参考手册
        • 6.2.5.1 背景属性
        • 6.2.5.2 边框属性
        • 6.2.5.3 字体属性
        • 6.2.5.4 列表属性
        • 6.2.5.5 内(外)边距属性
        • 6.2.5.6 定位属性
        • 6.2.5.7 文本属性
        • 6.2.5.8 2D/3D转换属性
        • 6.2.5.9 过渡属性
        • 6.2.5.10 动画属性
        • 6.2.5.11 box,用户界面属性
    • 6.3 HTMLDOM
      • 6.3.1 HTML DOM 节点
      • 6.3.2 HTML方法
      • 6.3.3 HTML属性
      • 6.3.4 HTML DOM访问,修改
      • 6.3.5 HTML元素
      • 6.3.6 HTML事件
      • 6.3.7 HTML导航
      • 6.3.8 Document对象
      • 6.3.9 Anchor、Area对象
      • 6.3.10 Base、Body、Button对象
      • 6.3.11 Canvas、Event对象
      • 6.3.12 Form、Frame、Frameset对象
      • 6.3.13 IFrame、Image对象
      • 6.3.14 Button、CheckBox对象
      • 6.3.15 FileUpload、Hidden、Password对象
      • 6.3.16 Radio、Reset、Submit、Text对象
      • 6.3.17 Link、Meta、Object、Option对象
      • 6.3.18 Select、Style对象
      • 6.3.19 Table、TableCell、TableRow、Textarea对象
    • 6.4 Javascript
      • 6.4.1 使用
      • 6.4.2 输出
      • 6.4.3 语句
      • 6.4.4 注释
      • 6.4.5 变量、数据类型、对象
      • 6.4.6 函数
      • 6.4.7 运算符
      • 6.4.8 If..Else、Switch
      • 6.4.9 for、while循环
      • 6.4.10 Break、Continue
      • 6.4.11 错误Throw、Try 、 Catch
      • 6.4.12 表单验证
      • 6.4.13 对象
      • 6.4.14 Number对象
      • 6.4.15 Date对象
      • 6.4.16 Array数组对象
      • 6.4.17 Boolean逻辑对象
      • 6.4.18 Math算数对象
      • 6.4.19 RegExp对象
      • 6.4.20 Window浏览器对象
      • 6.4.21 消息框
      • 6.4.22 计时
      • 6.4.23 Cookies
    • 6.5 JQuery
      • 6.5.1 简介、安装
      • 6.5.2 语法
      • 6.5.3 选择器
      • 6.5.4 事件
      • 6.5.5 效果
      • 6.5.6 CallBack函数
      • 6.5.7 Chaining
      • 6.5.8 获得(设置)内容和属性
      • 6.5.9 添加、删除元素
      • 6.5.10 获取并设置CSS类
      • 6.5.11 CSS方法
      • 6.5.12 尺寸
      • 6.5.13 遍历
  • 7 Information of iGEM
    • 7.1 How to search data and information of iGEM?
Mathematical Modeling and Performance Analysis

数学模型及其性能分析

如今,数学方法渗透并支配着一切自然科学的理论分支,它愈来愈成为衡量科学成就的主要标志了。合成生物学当然也不例外,在学习的过程中我们可能需要对问题建立合适的数学模型从而便于我们的分析,因而下面我们需要了解一下我们常用的数学工具。

一、   MATLAB

一、MATAB简介:

MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++,Java,Python和FORTRAN)编写的程序。

二、MATLAB工具箱:

       MATLAB的一个重要特点是可扩展性。作为Simulink和其它所有MathWorks产品的基础,MATLAB可以通过附加的工具箱(Toolbox)进行功能扩展,每一个工具箱就是实现特定功能的函数的集合[b]。MathWorks提供的工具箱分以下几大类:

 

    数学和优化

    统计和数据分析

    控制系统设计和分析

    信号处理和通讯

    图像处理

    测试和测量

    金融建模和分析

    应用程序部署

    数据库连接和报表

    分布式计算

 

这些工具箱大多是用开放式的MATLAB语言写成,用户不但可以查看源代码,还可以可根据自己的需要进行修改以及创建自定义函数。此外,常有用户在MATLAB Central: File Exchange发布自己编写的MATLAB程序或工具箱,供他人自由下载使用。

三、MATLAB语言:

MATLAB语言是一种交互性的数学脚本语言,其语法与C/C++类似。它支持包括逻辑(boolean)、数值(numeric)、文本(text)、函数柄(function handle)和异素数据容器(heterogeneouscontainer)在内的15种数据类型,每一种类型都定义为矩阵或阵列的形式(0维至任意高维)[8]。

 

执行MATLAB代码的最简单方式是在MATLAB程序的命令窗口(Command Window)的提示符处(>> )输入代码,MATLAB会即时返回操作结果(如果有的话)。此时, MATLAB可以看作是一个交互式的数学终端,简单来说,一个功能强大的“计算器”。MATLAB代码同样可以保存在一个以.m为后缀名的文本文件中,然后在命令窗口或其它函数中直接调用。

1、变量与赋值:

MATLAB的变量名字跟许多程序语言一样,严格区分大小写,例如,var、VAR和Var是三个不同的变量。另外,MATLAB中变量名字必须以字母为首字母,3var、_var等是非法的变量名。 变量由赋值运算符(=)定义. MATLAB是动态检查的,这意味着变量可以在未定义其类型的情况下赋值并且变量的类型也可以改变,除非将变量看做是符号对象[9]。变量值可以取自常量,计算中的其他变量的值,或某一函数的输出。例如:

 

2、矢量和矩阵:

 

MATLAB的意思是"矩阵实验室",因此它提供了许多创建矢量,矩阵和多维数组的便捷的方式。在MATLAB自己的语言中,一个矢量(vector)指的是一维(1×N或N×1)矩阵,在其他语言中通常被叫做数组(array)。 矩阵(matrix)通常指的是2-维数组,例如m×n数组其中m和n大于或等于1。多维数组通常指的是维数大于2的数组。

 

需要注意的是,虽然MATLAB用C语言重写,但是在矩阵存储方式上却和FORTRAN保持一致,两者使用的均为列优先存储,而非行优先存储[c]。在进行较大的矩阵运算时,这一差别对性能的影响是不应忽略的。

 

MATLAB提供了定义简单数组的简单方式,使用语法: 初值:增量:终值。例如:

 

定义了一个名为array的变量(或向已存在的变量array赋予一个新值),其值为包含1,3, 5, 7, 9的一个矢量。即数组由1开始(初值),每次以增量2 (增量)递增,当达到9 (终值)时停止。

在该语法中增量可被省略(这样仅剩一个冒号),这时增量采用默认值1。

 

由于默认增量为1,上面的语句对变量ari用1, 2, 3, 4, 5的矢量赋值。

在MATLAB内定义矩阵同样很简单,例如:

在MATLAB内存取矩阵元素同样非常简单,例如:

 

若要对矩阵内所有元素做同样的运算,如次方倍,则需要在运算对象前面加上".",例如:

 

 

若不在运算对象前面加上"."则代表矩阵运算:

 

3、代数/符号运算:

 

利用MATLAB的符号数学工具箱(SymbolicMath Toolbox)[d]可以进行代数或符号运算,如分解多项式因子和解代数方程:



4、图形图像:

MATLAB中常用的绘图命令是plot,例如描绘一个在[-4,4]区间内的正弦函数:

利用plot命令也可以在同一幅图中描绘多个函数图形:

用MATLAB的画图命令可以生成复杂的三维图形[e]:

二、   Mathematica

一、Mathematic简介:

Mathematica是一款符号计算软件,有时候也被称为计算机代数系统,广泛使用于科学、工程、数学、计算等领域。

 

它是由英国科学家斯蒂芬·沃尔夫勒姆提出构想,并且由他所领导的沃尔夫勒姆研究公司(位于美国伊利诺伊州香槟市)开发的一款广泛使用的科学计算软件。它拥有强大的数值计算和符号运算能力。它是目前为止使用最广泛的数学软件之一。

  1. 二、       Mathematic功能:

Mathematica的功能包括:

  • 各种基本数学函数库

  • 各种特殊属性函数库

  • 矩阵和数据操纵工具,包括对稀疏矩阵的处理

  • 支持复数、任意精度数、区间算术和符号运算

  • 2维和3维数据以及函数的可视化和动画工具

  • 求解方程组、常微分方程偏微分方程、微分代数方程、时滞微分方程递推关系式等等

  • 离散和连续微积分的数值和符号工具

  • 多变量统计程序库,包括支持100多种数据分布的数据拟合、假设检验、概率和期望的运算

  • 对运算和应用程序添加用户界面的各种工具包

  • 约束和非约束以及局部和全局的最优化技术支持

  • 程序语言支持:过程式编程语言、函数式编程语言和面向对象的编程语言

  • 图像处理工具[10],包括图像识别

  • 提供用于图论中图的分析和可视化的工具

  • 分析组合问题的工具

  • 用于文本挖掘的工具

  • 数据挖掘的工具,比如聚类分析字符串对齐和模式匹配

  • 数论函数库

  • 金融运算的工具,包括期权债券、年金、派生工具等的计算

  • 群论函数

  • 技术文本处理,包括公式编辑器和自动报告生成

  • 用于声音、图像和数据的小波分析程序库

  • 控制系统程序库

  • 连续和离散的积分变换

  • 导入和导出数据、图像、视频、GISCAD[11]等各种文件格式,并支持对生物医学类数据的输入和输出

  • 链接Wolfram Alpha的大量数学、科学、社会经济学类的数据集合

  • 查看并且重新使用前面的输入和输出(包括图像和文本记号)的笔记本界面

  • 和基于DLL、SQLJava.NETC++FORTRANCUDAOpenCL以及http的系统相链接的工具

  • 编写并行程序的工具

  • 当与互联网连接时,在笔记本中可同时使用“自由格式语言输入”(一个自然语言型的用户界面)[12]和     Wolfram 语言

  1. 三、       简单功能介绍:

1、算术计算:

Mathematica最简单的用法就是像计算器一样输入您的算式,然后按Shift+Enter。

和别的计算机语言一样,Mathematica分别用+、-、*、/、^来表示加、减、乘、除、幂,用圆括号(和)来控制运算顺序。此外,乘法也可以用空格表示:

在Mathematica中,数的大小和精度是不受限制的[2],比如说我们可以计算100的阶乘:

Mathematica把不带小数点的数都当成精确值。一般情况下,当您输入的数字都是精确值时,输出也将是精确值:

只要输入的数当中有一个带有小数点,比如说,把“1”改成“1.”,Mathematica就会把它当成近似值,这样输出的也将是近似值:

2、使用函数:

当我们要进行复杂一点的计算时,就要用到数学函数了。与我们平时写数学公式的习惯不同,Mathematica中函数的自变量都括在方括号中,这样是为了与控制运算顺序的圆括号相区别。比如说计算4的算术平方根,就要用到表示平方根的函数Sqrt:

同样,我们也能计算2的算术平方根:

这看起来有些奇怪,它好像什么都没算。事实上,我们前面已经说过,当您输入的数字都是精确值时,输出也将是精确值。

Mathematica中大小写是严格区分的,Mathematica内建的函数首字母都是大写。除了一些一些常见的数学常数在Mathematica也用首字母是大写的符号来表示,如Pi表示圆周率、E表示自然对数的底、I表示虚数单位。这都和我们平常写数学公式的习惯不同。

这就是著名的欧拉恒等式,

下表列出了一些常用的数学函数:

Mathematica内建的数学函数非常丰富,涉及到数学的各个不同领域。最新版本的Mathematica中数学函数的全表可以参见Mathematica帮助中的Mathematical Functions。

3、代数运算:

Mathematica是一个计算机代数系统,它的强项就是代数运算。 比如说,您可以(在没有给a赋值的情况下)输入a+a。在一般的计算机语言中,这样输入可能会导致错误,因为您没有告诉计算机a是多少。但是,只要学过一点初等代数,我们不需要知道a的值也能知道a+a等于2a。在Mathematica中也是如此:

Mathematica中变量的符号不仅可以是英文字母,还可以是希腊字母,甚至别的符号,或者符号的组合:

与代数运算有关一个很有用的Mathematica函数是Simplify。事实上,Mathematica很懒,一般的式子它不会自动帮您化简,只会做一下调整顺序、合并同类项之类的工作。例如:

而Simplify则能够帮我们化简这些式子:

Simplify有时不能把式子化到最简。Mathematica提供了另一个函数FullSimplify,它化简式子时运用的变换规则比Simplify更多,化简能力比Simplify更强,但花的时间比Simplify要长。

4、输出近似值:

前面说过,当您输入的数字都是精确值时,输出也将是精确的。如果我们希望Mathematica输出的结果是近似值,可以在输入的末尾加上//N:

“//N”这种奇怪的写法其实是使用N这个函数时的另一种写法[4],Sqrt[2]//N就相当于N[Sqrt[2]]:

N是表示数值(也就是近似值)的函数。N[expr]表示表示expr的近似值,N[expr, n]表示expr的有n位精度的近似值。比如说,求圆周率的前100位:

 

 

以上便是对我们学习课程中可能用到的数学工具的一些简单介绍,希望能对你有所能帮助!