Due date: 5pm, Friday of Week13 .
Late Penalty: Late submissions will be penalised at the rate of 10% per day(including weekends). The penalty applies to the maximum available mark. For
example, if you submit 2 days late, maximum available marks is 80% of theassignment marks. Submissions will not be accepted after 5pm Tuesday of Week
You need to work in a group of two with the restriction that your group partnermust come from the same lab class (i.e. same lab time slot and lab room). You
must register the pair with your tutor no later than the Week 11 lab class. If you wantto work on your own, please check with your tutor.
Change log :
05:35am Mon 21 May: Please download the following updated files:
set1_check.pickle (diff should be now zero or very low, say less than 10^4)
set2_check.pickle (diff should be now zero or very low, say less than 10^4)
test_2B.py (in "import", design.py changed to design)
10:35am Wed 16 May: Test files for 2A and 2B are now available: test_2A.py andtest_2B.py
09:20am Tue 15 May (changes marked with lightcyan background)
Due date is 5pm Friday of Week13.
In part 2A and 2B, 'alpha_b' and 'alpha_a' should be replaced by 'alpha_b_array' and'alpha_p_array' respectively.
The following updated files are now available:
'test_1A_1B.py'
'test_2A.py'
'test_2B.py'
Introduction
We often think bacteria are bad. The truth is that there are many different types of bacteria in this world. Somebacteria are harmful to humans but some bacteria in our bodies help us to live. Have you ever considered the
possibility that bacteria can also be "factory workers"? Engineers and scientists are working on using bacteria toproduce certain chemicals and materials. An example is to use bacteria to produce fuel for us. In engineering, we
often want to optimise the process, so we may want to make the bacteria to produce as much fuel as possible ina given time. However, there are often constraints in nature. The truth is that fuel is toxic to bacteria, so we need
to find a way for the bacteria to make a lot of fuel but at the same time keep them alive! This biofuel productionprocess is the theme of this assignment.
The aim of this assignment is to give you an opportunity to work on a smallscale engineering design problem inpython. The engineering system that you will be working on is biofuel production. Your goal is to determine the
design parameters so that the bacteria can produce as much fuel as possible while respecting a couple ofconstraints. You will use simulation as part of the design process.
For this assignment, you need to work in a group of two with the restriction that your group partner must comefrom the same lab class (i.e. same lab time slot and lab room). If you want to work on your own, please check
with your tutor.
Learning objectives
This assignment is designed to give you practice in
2018/5/28 ENGG1811 Assignment 2
http://www.cse.unsw.edu.au/~en1811/18s1/assigns/ass2/ass2.html 2/9
Applying programming to solve a simple engineering design problem
Writing a python program to simulate an engineering system
Applying a number of python features, which include arraytorisation, builtin functions and others
Applying good software engineering practices, which includes proper documentation, program style
Working with a partner (if applicable)
Assignment overview
This assignment is design to imitate engineering design. You will see the following elements:
1. (Simulation) Simulation of a biofuel production system with different design parameters.
2. (Design) Evaluate the performance of the systems that you have simulated.
Download files: There are a number of python files that you need to do thisassignment. These files are in assign2.zip. We will first talk about the tasks
involved, and later introduce these supplied files, see Supplied Files for more.
We will first give an introduction to biofuel production. This introduction is meant to give you some intuition on thedesign problem. After that we will tell you what you need to do for the assignment.
Biofuel production process
We will give you a basic mental picture that you can use to visualise biofuel production. A pictorial representationof a bacterium is in Figure 1. A bacterium is a singlecell organism. It has a cell membrane, which you can think
about as the "skin" of a bacterium. By using bioengineering, we can get the bacteria to produce fuel for us. Thisproduction will take place within the bacteria, i.e. inside the cell membrane of the bacteria.
Figure 1. A pictorial depiction of the main elements of a bacterium for biofuel production.
Now that you know that fuel is produced inside the membrane of bacteria, the next thing you need to know is thathaving the fuel staying inside the bacteria is neither good for us nor the bacteria. It is not good for us because we
cannot collect the fuel. It is not good for the bacteria because it is toxic to them. This means we need a way to getthe fuel from the inside of the membrane to the outside. A good news is that bacteria can make efflux pumps on
the membrane to push the fuel from the inside of the membrane to the outside.
With these efflux pumps, we can reduce the amount of fuel in the bacteria (i.e. toxicity level) and collect the fuel,solving the problem that we talked about in the last paragraph, but there is one catch. Efflux pumps, though
useful, can be a burden to the bacteria. This means that a bacterium should not have too many efflux pumps. Aclever way is to get the bacteria to make efflux pumps on demand. If a bacterium senses that there is a lot of fuel
inside its membrane, it should make more efflux pumps to expel the fuel; and vice versa. With the help ofbioengineering, it is possible to have biosensors in bacteria to sense the amount of fuel in the bacteria.
The above mental picture should give you the intuition you need for the biofuel production process. In order to doengineering design, we need a mathematical model which we will discuss next.
A mathematical model for the biofuel production process
From the biofuel production description that we have discussed above, you know that we are interested in a fewquantities: the amount of biofuel inside the bacteria because this is related to the toxicity level; and, the amount of
biofuel outside the bacteria because this is the amount that we can collect. We would like to have a mathematical
2018/5/28 ENGG1811 Assignment 2
http://www.cse.unsw.edu.au/~en1811/18s1/assigns/ass2/ass2.html 3/9
model which tells us how these two quantities vary over time. The mathematical model can tell us how thefollowing five quantities vary over time:
The amount of bacteria in the colony denoted by the mathematical symbol n. Note that we scale theamount by the maximum possible of bacteria so n is a number in the interval [0,1].
The biosensor output denoted by R which is a nonnegative real number.
The amount of efflux pumps, denoted by p, which is a nonnegative real number.
The amount of biofuel in the interior of the bacteria, denoted by bi, which is a nonnegative real number.
We also call this internal biofuel.
The amount of biofuel in the exterior of the bacteria, denoted by be, which is a nonnegative real number.
We also call this external biofuel.
You will use simulation to determine these five quantities.
There are two design parameters which we will vary, they are:
The biofuel production rate αb. (python variable name alpha_b)
The efflux pump production rate αp. (python variable name alpha_p)
We have placed the mathematical model for the biofuel on a separate page. We believe it is best for you tounderstand what you need to do for this assignment first before dwelling into the mathematical model. You
should be able to understand what you need to do for the assignment without going into the mathematical modelat this stage. (The model is here and you can read it later.) The mathematical model for biofuel production is
based on Reference [1].