Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
An Introduction to Python – Part II Dr. Nancy Warter-Perez Overview Solution to Programming Workshop #1 If tests Loops for while Example amino acid search program Programming Workshop #2 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]) 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]) Introduction to Python – Part II 4 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 – Part II and or not 5 if Statement if expression: action Example: a1 = 'A' a2 = 'C' match = 0 if a1 == a2 : match = match+1 Introduction to Python – Part II 6 if-elif-else Statement if expression: action 1 elif expression: action 2 else : action 3 Example: mismatch = 0 match = 0; gap = 0 if a1[i] == a2[j]: match+=1 elif a1[i] == '-' or a2[i]] == '-' : gap += 1 else: mismatch += 1 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 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] 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'} 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: ! 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 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 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:"); 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 Introduction to Python – Part II 15 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 – Part II 16 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 – Part II 17 File I/O To open a file myfile = open('pathname', <mode>) modes: 'r' = read 'w' = write Ex: infile = open("D:\\Docs\\test.txt", 'r') Ex: outfile = open("out.txt", 'w') – in same directory Introduction to Python – Part II 18 Common input file operations Operation input = open ('file', 'r') S = input.read() S = input.read(N) S = input.readline() L = input.readlines() Interpretation open input file read entire file into string S Read N bytes (N>= 1) Read next line Read entire file into list of line strings Introduction to Python – Part II 19 Common output file operations Operation Interpretation output = open('file', 'w') create output file output.write(S) Write string S into file output.writelines(L) Write all line strings in list L into file output.close() Manual close (good habit) Introduction to Python – Part II 20 Homework #1P Chapter 13 – Problem 2 Write a sliding window program that computes the %GC of DNA sequence. The program should prompt the user for the DNA sequence and the window size. You can assume that the window increment is 1, that is, as the program slides the window it will move the window over one nucleotide. Test your program on the following DNA sequence: GAACTCATACGAATTCACGTCAGCCCATCGTGCCACGT Introduction to Python – Part II 21 Homework #1P Chapter 13 – Problem 5 Write a program to detect transmembrane regions in a protein. Your program should input the protein file and the results.txt file generated by the Kyte_Doolittle_v3.py program. Kyte and Doolittle found that to detect transmembrane regions in a protein a window size of 19 is needed. Transmembrane regions are identified by average hydropathy scores greater than 1.6. Your program should output the following information in tabular form: ****************** Transmembrane Regions ****************** Window Window Sequence Average Hydropathy (> 1.6) Steps: 1. 2. 3. Write your program. Run the Kyte_Doolittle_v3.py program (see exercise 3) on the bacteriorhodopsin protein with a window size of 19. Test your program using the bacteriorhodopsin protein file with the result.txt file generated from step ii. Introduction to Python – Part II 22