Download Document

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Arithmetic wikipedia , lookup

Addition wikipedia , lookup

Principia Mathematica wikipedia , lookup

Proofs of Fermat's little theorem wikipedia , lookup

Elementary mathematics wikipedia , lookup

Transcript
An Introduction to Python and Its
Use in Bioinformatics
Dr. Nancy Warter-Perez
Overview



Overview of program/script development (BP Ch 1)
Python Basics (BP Ch1)
Python Types and Operators





Numbers and Arithmetic operators (BP Ch1, App B)
Strings (BP Ch3)
Lists and Dictionaries (BP Ch2 and Ch4)
Input & Output (BP Ch1)
Programming Workshop #1
Introduction to Python
2
Program Development
Problem
solving
Problem specification
Algorithm design
Test by hand
Implementation
Code in target language
Test code / debug
Program/Script
Introduction to Python
3
What is Python?



A portable, interpretive, object-oriented
programming language
Elegant syntax
Powerful high-level built-in data types


Numbers, strings, lists, dictionaries
Full set of string operations
Introduction to Python
4
Why Python?




Previously used C++
Scripting languages useful for
bioinformatics
Perl was “bioinformatics standard”
Python is more “robust” for larger
software projects
Introduction to Python
5
Useful Tutorials

DNA from the Beginning


http://www.dnaftb.org/dnaftb/
Python Tutorial

http://www.python.org/doc/current/tut/tut.html
Introduction to Python
6
Python Development OpenSource Software

Python interpreter - will run on windows, you need
to download it in two parts:
1. The actual interpreter and core of python
http://www.python.org/download/releases/2.5/
(we’re using python-2.3.3 in class).
2. An integrated development environment for
python called pythonwin, by Mark Hammond
http://sourceforge.net/project/showfiles.php?grou
p_id=78018
Introduction to Python
7
Python Basics - Comments

Python comments
# line comment

Header comments
#Description of program
#Written by:
#Date created:
#Last Modified:
Introduction to Python
8
Python Basics - Variables

Python variables are not “declared”.


To assign a variable, just type: identifier=literal
Identifiers

Have the following restrictions:





Must start with a letter or underscore (_)
Case sensitive
Must consist of only letters, numbers or underscore
Must not be a reserved word
Have the following conventions:


All uppercase letters are used for constants
Variable names are meaningful – thus, often multi-word (but not
too long)



Convention 1: alignment_sequence (align_seq)
Convention 2: AlignmentSequence (AlignSeq)
Python specific conventions (Avoid _X, __X__, __X, _)
Introduction to Python
9
Numbers

Numbers

Normal Integers –represent whole numbers
Ex: 3, -7, 123, 76

Long Integers – unlimited size
Ex: 9999999999999999999999L

Floating-point – represent numbers with decimal
places
Ex: 1.2, 3.14159,3.14e-10

Octal and hexadecimal numbers
Ex: O177, 0x9ff, Oxff

Complex numbers
Ex: 3+4j, 3.0+4.0j, 3J
Introduction to Python
10
Python Basics – arithmetic operations
Operators
Example
y=5; z=3
+ add
x=y+z x
- subract
x=y–z x
* multiply
x=y*z x
/ divide
x=y/z x
% modulus/remainder x = y % z x
Introduction to Python
=
=
=
=
=
8
2
15
1
2
11
Python Basics – arithmetic operations
Operators
<< shift left
>> shift right
** raise to power
Example
y=5; z=3
x = y << 1 x = 10
x = y >> 2 x = 1
x = y ** z x = 125
Introduction to Python
12
Python Basics – Relational and
Logical Operators

Relational operators
==
!=, <>
>
>=
<
<=
equal
not equal
greater than
greater than or
equal
less than
less than or equal

Logical operators
and
or
not
Introduction to Python
and
or
not
13
Python Basics – Relational
Operators

Assume x = 1, y = 4, z = 14
Expression
Value
Interpretation
x<y+z
1
True
y == 2 * x + 3
0
False
z <= x + y
0
False
z>x
1
True
x != y
1
True
Introduction to Python
14
Python Basics – Logical
Operators

Assume x = 1, y = 4, z = 14
Expression
Value
Interpretation
x<=1 and y==3
0
False
x<= 1 or y==3
1
True
not (x > 1)
1
True
not x > 1
0
False
not (x<=1 or y==3)
0
False
Introduction to Python
15
Strings

Enclosed in single or double quotes
Ex: ‘Hello!’ , “Hello!”, “3.5”, “a”, ‘a’

Sequence of characters:
mystring=“hello world!”
mystring[0] -> “h”
mystring[1] -> “e”
mystring[2] -> “l”
mystring[-1] -> “!”
-1 is last,
-2 next to last, etc…
Introduction to Python
16
String operations
mystring = “Hello World!”
Expression
Value
Purpose
len(mystring)
12
number of characters in
mystring
“hello”+“world”
“helloworld”
Concatenate strings
“%s world”%“hello”
“hello world”
Format strings (like sprintf)
“world” == “hello”
“world” == “world”
0 or False
1 or True
Test for equality
“a” < “b”
“b” < “a”
1 or True
0 or False
Alphabetical ordering
Introduction to Python
17
Strings (2)

slicing:
mystring = “spoon!”
mystring[2:] -> “oon!”
mystring[:3] -> “spo” #note last element is never included!
mystring[1:3]-> “po”

Many useful built-in functions


mystring.upper() -> “SPOON!”
mystring.replace(‘o’, ‘O’) -> “spOOn!”
Introduction to Python
18
Strings (3)

“%” operator:
sort of “fill in the blanks” operation:
mystring=“%s has %d marbles” % (“John”,35)
“blanks”
mystring -> “John has 35 marbles”



%s
%d,%i
%f
Values to put
in blanks
replace with string
replace with integer
replace with float
Introduction to Python
19
Lists
mylist=[“a”,”b”,3.58,”d”,4,0]
mylist[0]
mylist[2]
a
3.58
Indexing
mylist[-1]
mylist[-2]
0
4
Negative indexing
(counts from end)
mylist[1:4]
[“b”,3.58,”d”]
Slicing (like strings)
“b” in mylist
“e” not in mylist
1 or True
1 or True
mylist.append(8)
[“a”,”b”,3.58,”d”,4,0,8]
Introduction to Python
Add to end of list
20
Tuples

Tuples – sequence of values
like lists, but cannot be changed after it
is created
mytuple=(1,”a”,”bc”,3,87.2)
mytuple[2] -> “bc”
mytuple[1]=“3” Error!

Used when you want to pass several variables
around at once
Introduction to Python
21
Dictionaries

Dictionaries – map ‘keys’ to ‘values’



like lists, but indices can be of any type
Also, keys are in no particular order
Eg:
mydict={‘b’:3, ’a’:4, 75:2.85}
mydict[‘b’] -> 3
mydict[75] -> 2.85
mydict[‘a’] -> 4
Introduction to Python
22
Dictionaries
mydict={“r”:1,”g”:2,”y”:3.5,8.5:8,9:”nine”}
mydict.keys()
['y', 8.5, 'r', 'g', 9]
List of the keys
mydict.values()
[3.5, 8, 1, 2, 'nine']
List of the values
mydict[“y”]
3.5
Value lookup
mydict.has_key(“r”)
True or 1
Check for keys
mydict.update({“a”:75}) {8.5: 8, 'a': 75, 'r': 1, 'g':
2, 'y': 3.5, 9: 'nine'}
Introduction to Python
Add pairs to
dictionary
23
Dictionaries – other
considerations

Slicing not allowed
Referencing invalid key is an error:

>>> mydict={8.5: 8, 'a': 75, 'r': 1, 'g': 2, 'y':
3.5, 9: 'nine'}
>>> mydict["red"]
Traceback (most recent call last):
File "<interactive input>", line 1, in ?
KeyError: 'red‘
Use mydict.get(“red”) instead, it returns None if
key is not found
Introduction to Python
24
Input/Output



Function raw_input() designed to read a line of input
from the user
1 optional argument: string to prompt user
If int or float desired, simply convert string:
int(mystring)->convert to int (if possible)
float(mystring)->convert to float (if possible)
>>> mystr=raw_input("Enter a string:")
Enter a string:Hello World!
>>> mystr
'Hello World!'
Introduction to Python
25
Output

Function print


Prints each
argument, followed
by space
After all arguments,
prints newline


Put comma after last
arg to prevent
newline
“add” strings to avoid
spaces
print “a”,”b”,”c”
abc
Newline!
print “a”,”b”,”c”,
No
abc
Newline!
print “a”+”b”+”c”
No
abc
spaces!
Introduction to Python
26
Output Example
>>> print "hello","world";print "hello","again"
hello world
hello again
>>> print "hello","world",;print "hello","again"
hello world hello again
>>> print "hello %s world" % "cold and cruel"
hello cold and cruel world
>>> print "hello","cold"+ " " + "and","cruel","world"
hello cold and cruel world
Introduction to Python
27
Creating a Python Program

Enter your program in the editor

Notice that the editor has a color coding




Comments
Key words
Etc…
Also notice that it automatically indents


Don’t override!! – this is how python tells when block
statements end!
If doesn’t indent to proper location – indicates bug
Introduction to Python
28
Running your Program

To build your program

Under File->Run…


Select No Debugging in the drop-down window
Fix any errors, then run again
Introduction to Python
29
Workshop #6

Write a Python program to compute the
hydrophobicity of an amino acid

Program will prompt
the user for an
amino acid and will
display the
hydrophobicity
A m in o A c id
A
C
D
E
F
G
H
I
K
L
M
N
P
Q
R
S
T
V
W
Y
H y d ro p . V A L U E
1 .8
2 .5
- 3 .5
- 3 .5
2 .8
- 0 .4
- 3 .2
4 .5
- 3 .9
3 .8
1 .9
- 3 .5
- 1 .6
- 3 .5
- 4 .5
- 0 .8
- 0 .7
4 .2
- 0 .9
- 1 .3
Introduction to Python
30