solving biological problems with matlab lecturer: chen keasar, e-mail: [email protected]

59
Solving biological problems with MATLAB Lecturer: Chen Keasar, e-mail: [email protected] 08-6477875 Office hours: 37/102 Sunday, 14:00- 16:00 Tutors: Mor Ben-Tov (Life Sciences) E-mail: [email protected] Office hours: 40/310 Wednesday 15:00-16:00 Yonatan Natan (Sde- Boker) E-mail: [email protected] Office hours: Sunday 15:00-16:00

Upload: habib

Post on 22-Feb-2016

34 views

Category:

Documents


0 download

DESCRIPTION

Solving biological problems with MATLAB Lecturer: Chen Keasar, e-mail: [email protected] 08-6477875 Office hours: 37/102 Sunday, 14:00-16:00 Tutors: Mor Ben- Tov (Life Sciences) E-mail: [email protected] Office hours: 40/310 Wednesday 15:00-16:00 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

Solving biological problems with MATLAB

Lecturer: Chen Keasar, e-mail: [email protected] hours: 37/102 Sunday, 14:00-16:00

Tutors: Mor Ben-Tov (Life Sciences) E-mail: [email protected] Office hours: 40/310 Wednesday 15:00-16:00 Yonatan Natan (Sde-Boker) E-mail: [email protected] Office hours: Sunday 15:00-16:00

• Web page URL:http://lhttp://moodle.bgu.ac.il/moodle/

Page 2: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

What will you learn in the course?

• Algorithms

• Building blocks for writing a MATLAB program

• Using MATLAB for mathematical applications

• Handling graphics in MATLAB

Page 3: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

The rules of this course

• No formal pre-requisite

• Math course ( מערכות של or equivalent) is מתמטיקהassumed

• lecture notes on web - print and bring

• Tutorials – central role in the course

• Start in class, complete at home, submit every week (through the web site)

• Each student submits own independent work

• The use of the Forum of course is allowed, but no code

• Missing tutorials (e.g., Miluim), can be exempt but it’s your interest to submit even if later3

Page 4: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

The rules of the game (cont.)

• Students from Sede Boqer campus will have tutorial there

• The tutors will instruct you exactly how tom submit tutorial – MUST follow instructions

• Tutorials not submitted accordingly – will not be accepted !

• Final project – selected from a list - or request your own project (no tater than week 5 of the semenster).

• After project submission – an oral exam in front of computer on the project

• Final grade – 35% tutorials, 65% final exam

Page 5: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

What do I do with MATLAB?

Page 6: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

CLUSTERING

Page 7: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 8: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 9: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 10: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 11: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 12: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 13: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 14: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 15: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 16: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 17: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 18: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 19: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 20: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 21: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

Generation of energy function

Page 22: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 23: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 24: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 25: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 26: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

What is MATLAB• MATLAB is a language• MATLAB is an interpreter• MATLAB is an integrated

environment• MATLAB is a product of MathWorks

Page 27: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

What is MATLAB• MATLAB is a language

popSize=23

is a statement in this language.

It means:

1. Allocate some space in the computer memory.

2. Tag this space “popSize”.

3. Store the number 23 in that space.

• MATLAB is an interpreter• MATLAB is an integrated

environment

Page 28: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

What is MATLAB• MATLAB is a language

popSize=23

• MATLAB is an interpreterA program that:

1. reads MATLAB statements

2. Translates them to machine language

3. Executes them.

• MATLAB is an integrated environment

Page 29: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

What is MATLAB• MATLAB is a language

popSize=23

• MATLAB is an interpreter (command window)

>>

popSize =

23

• MATLAB is an integrated environment

popSize=23

Page 30: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

What is MATLAB• MATLAB is a language

popSize=23

• MATLAB is an interpreter (command window)

• MATLAB is an integrated environment

Page 31: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

What is MATLAB• MATLAB is an integrated environment

Page 32: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

Programming with MATLAB

Basic components in computer program

takes input -> operates on it -> gets output

Various Input/Output methods – later

simplest input:

Allocating a value to a variable, e.g.,:

a=2

popSize=23

Page 33: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

Variable Names• Variables start with a letter

• Can continue with more letters, digits etc.

• Not longer than 31 characters

• Make names easy to remember

• make sure no typos

• MATLAB is case sensitive

• popSize is different from PopSize or popSize1

Page 34: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

Non-recommended variable names a

b1

gc

initialpopulationsize

Page 35: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

Functions extend the languageSpecific Syntax:

function output=functionName(input)…. the function itself …end

Words of MATLAB language

Page 36: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

function output=functionName(input)…. the function itself …end

Any word you want. Becomes a new word in the language

Page 37: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

function output=functionName(input)…. the function itself …end

Any word you want. Known only within the function

Page 38: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

function output=functionName(input)…. the function itself …end

MATLAB code (may include function calls)

Page 39: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

Our first functionMotivation: populations parthenogenetic aphids

Page 40: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

Our first functionfunction popSize2 = popDynam(popSize1)

birthRate = 0.2

deathRate = 0.1

birth = popSize1 * birthRate

death = popSize1 * deathRate

change = birth - death

popSize2 = popSize1 + change

end

We will save it in a file popDynam.m

Page 41: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 42: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

What had happened?The MATLAB interpreter replaced popSize1 by 23 and executed the lines one by one.

function popSize2 = popDynam(popSize1)

birthRate = 0.2

deathRate = 0.1

birth = popSize1 * birthRate

death = popSize1 * deathRate

change = birth - death

popSize2 = popSize1 + change

end

23

2323

23

Page 43: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

This is a bit too verbose

Page 44: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

Our first function (fixed)

function popSize2 = popDynam(popSize1)

birthRate = 0.2;

deathRate = 0.1;

birth = popSize1 * birthRate;

death = popSize1 * deathRate;

change = birth – death;

popSize2 = popSize1 + change;

end Is this the shortest way I could write the function?

Page 45: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 46: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 47: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 48: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

The function’s value may be assigned to a variable

(actually it is always assigned)

Page 49: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

Variables defined in the command window are kept in memory.

Page 50: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

You can see them all in the “Workspace” window

Page 51: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

The function’s variable are recognized only within the function

Page 52: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

Some other aphids may have different birth and death rates.

function popSize2=popDynam(popSize1, birthRate, deathRate)

birth = popSize1 * birthRate;

death = popSize1 * deathRate;

change = birth - death;

popSize2 = popSize1 + change;

end

Page 53: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

We may want to know the number of births and deaths

function pop = popDynam(popSize1, birthRate, deathRate)

birth = popSize1 * birthRate;

death = popSize1 * deathRate;

change = birth - death;

popSize2 = popSize1 + change;

pop = [popSize2 birth death];end

Row vector

Page 54: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il
Page 55: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

A row vector may be transposed to a column vector

Page 56: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

From vectors to matrices>> popParam= [24 0.2 0.1; 38 0.25 0.05]popParam = 24.0000 0.2000 0.1000 38.0000 0.2500 0.0500

Indexing an array/matrixpopParam(1,1) popParam(1,2) popParam(1,3)popParam(2,1) popParam(2,2) popParam(2,3)

Page 57: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

popParam = 24.0000 0.2000 0.1000 38.0000 0.2500 0.0500

>> popParam(1,1)ans = 24

>> popParam(2,2)ans = 0.2500

Page 58: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

popParam = 24.0000 0.2000 0.1000 38.0000 0.2500 0.0500

>> popParam(1,2:3)ans = 0.2000 0.1000

Note the colon! Here, it represents “to”Note, this is a vector>> ans(1)ans = 0.2000

Page 59: Solving  biological problems  with MATLAB Lecturer: Chen Keasar,  e-mail:  chen@cs.bgu.ac.il

popParam = 24.0000 0.2000 0.1000 38.0000 0.2500 0.0500

>> popParam(1,:)ans = 24.0000 0.2000 0.1000

Note the colon! Here, it represents “all”