Python lecture 2

Download Report

Transcript Python lecture 2

An Introduction to Python – Part II
Dr. Nancy Warter-Perez
April 20, 2004
Overview



Solution to Programming Workshop #1
If tests
Loops




for
while
Example amino acid search program
Programming Workshop #2
4/20/04
Introduction to Python – Part II
2
Solution to Programming Workshop 1

#
#
#
#
#
Write a Python program to compute the hydrophobicity of an
amino acid
Program to compute the hydrophobicity of an amino acid
(solution only includes first 3 amino acids)
Written by: Prof. Warter-Perez
Date created: April 15, 2004
Last modified:
hydro = {"A":1.8,"C":2.5,"D":-3.5}
aa = raw_input ("Please enter amino acid: ")
print "The hydrophobicity of %s is %f."% (aa, hydro[aa])
4/20/04
Introduction to Python – Part II
3
Make solution case insensitive
# Program to compute the hydrophobicity of an amino acid
# Written by: Prof. Warter-Perez
# Date created: April 15, 2004
# Last modified: April 20, 2004 - made script case insensitive for
# amino acids
hydro = {"A":1.8,"C":2.5,"D":-3.5}
aa = raw_input ("Please enter amino acid: ")
aa = aa.upper()
print "The hydrophobicity of %s is %f."% (aa, hydro[aa])
4/20/04
Introduction to Python – Part II
4
Python Basics – Relational and
Logical Operators

Relational operators
==
!=
>
>=
<
<=
4/20/04
equal
not equal
greater than
greater than or
equal
less than
less than or equal

Logical operators
and
or
not
Introduction to Python – Part II
and
or
not
5
if Statement

if expression:
action
4/20/04
Example:
a1 = 'A‘; a2 = 'C';
match = 0;
if (a1 == a2) :
match+=1;
Introduction to Python – Part II
6
if-elif-else Statement

if expression:
action 1
elif expression:
action 2
else :
action 3
Example:
a1 = 'A‘; a2 = 'C';
match = 0; gap = 0;
if (a1 == a2) :
match+=1;
elif (a1 > a2):
else:
gap+=1;
4/20/04
Introduction to Python – Part II
7
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
4/20/04
Introduction to Python – Part II
8
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]
4/20/04
Introduction to Python – Part II
Add to end of list
9
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'}
4/20/04
Introduction to Python – Part II
Add pairs to
dictionary
10
for Statement
for var in list:


action
Sets var to each item in
list and performs action
range() function
generates lists of
numbers:
range (5) -> [0,1,2,3,4]
Example
mylist=[“hello”,”hi”,”hey”,”!”];
for i in mylist:
print i
Iteration 1 prints: hello
Iteration 2 prints: hi
Iteration 3 prints: hey
Iteration 4 prints: !
4/20/04
Introduction to Python – Part II
11
while Statement
while expression:
action
Example
x = 0;
while x != 3:
x = x + 1/ 2
Infinite loop!
Iteration
Iteration
Iteration
Iteration
4/20/04
Introduction to Python – Part II
1:
2:
3:
4:
x=0+1=1
x=1+1=2
x=2+1=3
don’t exec
12
Example: Amino Acid Search

Write a program to count the number of
occurrences of an amino acid in a
sequence.

The program should prompt the user for



4/20/04
A sequence of amino acids (seq)
The search amino acid (aa)
The program should display the number of
times the search amino acid (aa) occurred
in the sequence (seq)
Introduction to Python – Part II
13
Example: Amino Acid Search (2)
#this program will calculate the number of occurrences of an amino
acid in a
#sequence
#by Bryce Ready
done=0
while (not done):
sequence=raw_input("Please enter a sequence:");
aa=raw_input("Please enter the amino acid to look for:");
4/20/04
Introduction to Python – Part II
14
Example: Amino Acid Search (3)
#compute the number of occurrences using for loop
cnt=0
for i in sequence:
if i == aa:
cnt+=1
if cnt == 1:
print "%s occurs in that sequence once" % aa;
else:
print "%s occurs in that sequence %d times" % (aa, cnt);
answer=raw_input("try again? [yn]")
if answer == "n" or answer == "N":
done = 1
4/20/04
Introduction to Python – Part II
15
Creating a Python Program

Enter your program in the editor

Notice that the editor has a color coding




Also notice that it automatically indents


4/20/04
Comments
Key words
Etc…
Don’t override!! – this is how python tells when block
statements end!
If doesn’t indent to proper location – indicates bug
Introduction to Python – Part II
16
Running your Program

To build your program

Under File->Run…


4/20/04
Select No Debugging in the drop-down window
Fix any errors, then run again
Introduction to Python – Part II
17
Programming Workshop #2

Write a sliding window program to compute
the %GC in a sequence of nucleotides.

The program should prompt the user for



The DNA sequence
The window size (assume the window increment is 1)
Test your program using the data for Workshop 3.
4/20/04
Introduction to Python – Part II
18
Programming Homework #1





Due April 29th
Modify your sliding window program from
programming workshop #2 to compute the
hydrophobicity of an amino acid sequence.
Use the Kyte and Doolittle scale (programming
workshop 1).
Obtain the SWISSPROT entry of
bacteriorhodopsin and compute the
hydrophobicity.
Plot your result in EXCEL and compare with plot
from lecture 3
4/20/04
Introduction to Python – Part II
19