perl programming for biology exercise 1

20
1ex.1 Perl Programming for Biology Exercise 1 The Bioinformatics Unit G.S. Wise Faculty of Life Science Tel Aviv University, Israel March 2009 Eyal Privman and Dudu Burstein

Upload: alena

Post on 08-Feb-2016

46 views

Category:

Documents


0 download

DESCRIPTION

Perl Programming for Biology Exercise 1. The Bioinformatics Unit G.S. Wise Faculty of Life Science Tel Aviv University, Israel March 2009 Eyal Privman and Dudu Burstein. Running Perl at the DOS command prompt. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Perl Programming for Biology Exercise 1

1ex.1

Perl Programming for Biology

Exercise 1

The Bioinformatics UnitG.S. Wise Faculty of Life ScienceTel Aviv University, Israel

March 2009

Eyal Privman and Dudu Burstein

Page 2: Perl Programming for Biology Exercise 1

1ex.2Running Perl at the DOS command prompt

Traditionally, Perl scripts are run from a command prompt (a DOS window).

(Start it by clicking: Start Accessories Command Prompt

or: Start Run… cmd )

Running a Perl script

perl -w YOUR_SCRIPT_NAME

(To check if Perl is installed in your computer use the ‘perl -v’ command)

Page 3: Perl Programming for Biology Exercise 1

1ex.3Running Perl at the DOS command prompt

Common DOS commands:

d: change to other drive (d in this case)

md my_dir make a new directory

cd my_dir change directory

cd .. move one directory up

dir list files (dir /p to view it page by page)

help list all dos commands

help dir get help on a dos command

Page 4: Perl Programming for Biology Exercise 1

1ex.4

A first Perl script

print "Hello world!";

A Perl statement must end with a semicolon “;”The print function outputs some information to the terminal screen

Try it yourself!• Use Notepad to write the script in a file named “hello.pl” (Save it in D:\perl_ex)

• Run it!

• Click StartProgramsAccessoriesCommand Prompt (opens a DOS prompt)

• Change to the right drive ("D:") and change directory to the directory that holds the Perl script ("cd perl_ex").

• Type perl -w script_name.pl (replace script_name.pl with the name of the script)

Page 5: Perl Programming for Biology Exercise 1

1ex.5

Scalar Data

Page 6: Perl Programming for Biology Exercise 1

1ex.6

A scalar is either a string or a number.

Numerical values 3 -20 3.14152965

1.3e4 (= 1.3 × 104 = 1,300)

6.35e-14 ( = 6.35 × 10-14)

Scalar values

Page 7: Perl Programming for Biology Exercise 1

1ex.7

Single-quoted strings

print 'hello world';hello world

Double-quoted strings

print "hello world";hello world

print "hello\tworld";hello world

print 'a backslash-t: \t ';a backslash-t: \t

ConstructMeaning

\nNewline

\tTab

\\Backslash

\”Double quote

Strings

Backslash is an “escape” character that gives the next character a special meaning:

print "a backslash: \\ ";a backslash: \

print "a double quote: \" ";a double quote: "

Scalar values

Page 8: Perl Programming for Biology Exercise 1

1ex.8

Operators

An operator takes some values (operands), operates on them, and produces a new value.

Numerical operators: + - * / ** (exponentiation) ++ -- (autoincrement)

print 1+1; 2

print ((1+1)**3); 8

Page 9: Perl Programming for Biology Exercise 1

1ex.9

Operators

An operator takes some values (operands), operates on them, and produces a new value.

String operators: . (concatenate) x (replicate)

e.g.

print ('swiss'.'prot'); swissprot

print (('swiss'.'prot')x3); swissprotswissprotswissprot

Page 10: Perl Programming for Biology Exercise 1

1ex.10

String or number?

Perl decides the type of a value depending on its context:

(9+5).'a'

14.'a'

'14'.'a'

'14a'

Warning: When you use parentheses in print make sure to put one pair of parantheses around the WHOLE expression:

print (9+5).'a'; # wrong

print ((9+5).'a'); # right

You will know that you have such a problem if you see this warning:

print (...) interpreted as function at ex1.pl line 3.

(9x2)+1

('9'x2)+1

'99'+1

99+1

100

Page 11: Perl Programming for Biology Exercise 1

1ex.11

Class exercise 1Write a Perl script that prints the following lines:

1. The string “hello world! hello Perl!”

2. Use the operator “.” to concatenate the words “apple”, “orange”

and “banana”

3*. Produce the line: “666:666:666:god help us!”

without any 6 and with only one : in your script!

Like so:

hello world! hello Perl!

apple orange banana

666:666:666:god help us!

Page 12: Perl Programming for Biology Exercise 1

1ex.12

Variables

Scalar variables can store scalar values.

Variable declaration my $priority;

Numerical assignment $priority = 1;

String assignment $priority = 'high';

Assign the value of variable $b to $a

$a = $b;

Note: Here we make a copy of $b in $a.

Page 13: Perl Programming for Biology Exercise 1

1ex.13

Variables - notes and tips

Tips:• Give meaningful names to variables: e.g. $studentName is better than $n• Always use an explicit declaration of the variables using the my function

Note: Variable names in Perl are case-sensitive. This means that the following

variables are different (i.e. they refer to different values):$varname = 1;

$VarName = 2;

$VARNAME = 3;

Note: Perl has a long list of scalar special variables ($_, $1, $2,…)

So please don’t use them!

Page 14: Perl Programming for Biology Exercise 1

1ex.14

Variables - always use strict!

Always include the line:

use strict;

as the first line of every script.

• “Strict” mode forces you to declare all variables by my.

• This will help you avoid very annoying bugs, such as spelling mistakes in the

names of variables.

Page 15: Perl Programming for Biology Exercise 1

1ex.15

Interpolating variables into strings

$a = 9.5;print "a is $a!\n";

a is 9.5!

Reminder:print 'a is $a!\n';

a is $a!\n

Page 16: Perl Programming for Biology Exercise 1

1ex.16

$name: "Shmulik\n"

Reading inputUse the chomp function to remove the “new-line” from the end of the string (if there is any):

print "What is your name?\n";my $name = <STDIN>;chomp $name; # Remove the new-line print "Hello $name!";

Here is a test run:

What is your name? Shmulik Hello Shmulik!

$name: "Shmulik"

Page 17: Perl Programming for Biology Exercise 1

1ex.17Built-in Perl functions:

The length function

The length function returns the length of a string: print length("hi you"); 6

Page 18: Perl Programming for Biology Exercise 1

1ex.18

The substr functionThe substr function extracts a substring out of a string. It receives 3 arguments: substr(EXPR,OFFSET,LENGTH)

For example:$str = "university"; $sub = substr ($str, 3, 5);$sub is now "versi", and $str remains unchanged.

Note: If length is omitted, everything to the end of the string is returned. You can use variables as the offset and length parameters.The substr function can do a lot more, google it and you will see…

Page 19: Perl Programming for Biology Exercise 1

1ex.19

Documentation of perl functions

A good place to start is the list of All basic Perl functions in the Perl documentation site:

http://perldoc.perl.org/

Click the link “Functions” on the left.

Page 20: Perl Programming for Biology Exercise 1

1ex.20

Home exercise 1 – submit by email until next class

1. Install Perl on your computer. Use Notepad to write scripts, or optionally - install the Perl Express editor (this you should do at home).

2. Write a script that prints "I will submit my homework on time" 100 times.3. Write a script that assigns your e-mail address into the variable $email and

then prints it.4. Write a script that reads a line and prints the length of it.5. Write a script that reads a line and prints the first 3 characters.6*. Write a script that reads a line and three numbers, and then prints the letters

between the positions given by the first two numbers, duplicated as many times as indicated by the third number.

* Kohavit questions are a little tougher, and are not mandatory