Presentation is loading. Please wait.

Presentation is loading. Please wait.

9/11/2015BCHB524 - 2015 - Edwards Introduction to Python BCHB524 2015 Lecture 3.

Similar presentations


Presentation on theme: "9/11/2015BCHB524 - 2015 - Edwards Introduction to Python BCHB524 2015 Lecture 3."— Presentation transcript:

1 9/11/2015BCHB524 - 2015 - Edwards Introduction to Python BCHB524 2015 Lecture 3

2 9/11/2015BCHB524 - 2015 - Edwards Outline Review Homework #1 Solutions Functions & Methods Defining new functions Control flow: if statement 2

3 9/11/2015BCHB524 - 2015 - Edwards Outline Review Hello World (Printing, Execution) Simple Numbers (Variables, Integers) Simple Numbers II (Floats) DNA Sequence (Strings, characters from) DNA Sequence II (String arithmetic, methods) 3

4 Hello World Printing, order of execution, comments, blank-lines, syntax errors, various errors 9/11/2015BCHB524 - 2015 - Edwards # Output Hello World to the terminal print "Hello World!" print "Hello Georgetown!" print 'Hello Everyone' 4

5 Simple Numbers 9/11/2015BCHB524 - 2015 - Edwards # Program input cars = 100 people_per_car = 4 drivers = 30 passengers = 90 # Compute the dependent values cars_not_driven = cars - drivers cars_driven = drivers carpool_capacity = cars_driven * people_per_car average_people_per_car = ( drivers + passengers ) / cars_driven people_in_last_car = ( drivers + passengers - 1 ) % people_per_car + 1 # Output the results print "There are", cars, "cars available." print "There are only", drivers, "drivers available." print "There will be", cars_not_driven, "empty cars today." print "We can transport", carpool_capacity, "people today." print "We have", passengers, "to carpool today." print "We need to put about", average_people_per_car, "in each car." print "There are", people_in_last_car, "people in the last car." 5

6 Simple Numbers (Review) Variables (names) to store values Variables to store the result of expressions The variable name itself does not matter, but should be descriptive Variables must have a value before you use them Arithmetic operators +, -, *, /, % are available Arithmetic can use variables and values Result of integer division is an integer 9/11/2015BCHB524 - 2015 - Edwards6

7 Simple Numbers II 9/11/2015BCHB524 - 2015 - Edwards # Program input cars = 100.0 people_per_car = 4.0 drivers = 30.0 passengers = 80.0 # Compute the dependent values cars_not_driven = cars - drivers cars_driven = drivers carpool_capacity = cars_driven * people_per_car average_people_per_car = ( drivers + passengers ) / cars_driven people_in_last_car = ( drivers + passengers - 1 ) % people_per_car + 1 # Output the results print "There are", cars, "cars available." print "There are only", drivers, "drivers available." print "There will be", cars_not_driven, "empty cars today." print "We can transport", carpool_capacity, "people today." print "We have", passengers, "to carpool today." print "We need to put about", average_people_per_car, "in each car." print "There are", people_in_last_car, "people in the last car." 7

8 Simple Numbers II (Review) Numbers can be fractional (float) or integer (int). Floats are entered using a decimal place. Variables can store floats or ints Arithmetic operators +, -, *, /, % are available Arithmetic can use variables or values Result of float division is a float Result of arithmetic with mixed floats and ints is a float. 9/11/2015BCHB524 - 2015 - Edwards8

9 DNA Sequence 9/11/2015BCHB524 - 2015 - Edwards # DNA is cool! dna_sequence = 'gcatgacgttattacgactctgtgtggcgtctgctggg' # Compute dependent values first_nucleotide = dna_sequence[0] last_nucleotide = dna_sequence[-1] first_four_nucs = dna_sequence[0:4] last_ten_nucs = dna_sequence[-10:] sequence_length = len(dna_sequence) # Output results print "First nucleotide",first_nucleotide print "Last nucleotide",last_nucleotide print "First four nucleotides",first_four_nucs print "Last ten nucleotides",last_ten_nucs print "Sequence length",sequence_length 9

10 DNA Sequence (Review) Strings are sequences of symbols (characters) Variables can store strings! (and ints and floats) Access characters from a string stored in a variable using an index (integer) between [ and ] Positive index from beginning of string 0… Negative index from end of string -1… The index may be stored in a variable The index may be the result of arithmetic Chunks of the sequence, using [s:e] Chunk starts at index s, ends before index e. If s is missing, start at beginning of string If e is missing, end at end of string. Function len(…) returns the length of the string 9/11/2015BCHB524 - 2015 - Edwards10

11 DNA Sequence II 9/11/2015BCHB524 - 2015 - Edwards # DNA is cool! dna_sequence = 'gcatgacgttattacgactctgtgtggcgtctgctggg' oligo1 = 'ATTCG' oligo2 = 'TCGAT' # Compute dependent values, using arithmetic and string methods ligated_oligos = oligo1 + oligo2 tandem_repeat = oligo1*6 polya = 'A'*20 in_uppercase_symbols = dna_sequence.upper() NumberOfA = dna_sequence.count('a') PositionOfT = dna_sequence.find('t') rna_sequence = dna_sequence.replace('t','u') # Output results print "Ligated oligos",ligated_oligos print "Tandem repeat",tandem_repeat print "Polynucleotide run",polya print "Uppercase",in_uppercase_symbols print "Number of Adenine",NumberOfA print "Position of first Thymine",PositionOfT print "As RNA",rna_sequence 11

12 DNA Sequence II (Review) Strings can be added (concatenation) Strings can be multiplied by an integer (concatenated copies) Upper and lower-case characters are not the same s.find(t) → (integer) position of the string t in string s, if t is in s. Otherwise, -1. s.count(t) → (integer) count of string t in string s. s.upper() → upper-case version of string s. s.replace(u,v) → string s with string u replaced by string v. 9/11/2015BCHB524 - 2015 - Edwards12

13 Homework Solutions 9/11/2015BCHB524 - 2015 - Edwards13

14 Conversion Functions 9/11/2015BCHB524 - 2015 - Edwards # There are many useful functions built into Python aString = 'abcdefghijkl' anInteger = 10 aFloat = 3.456 integerString = '17' floatString = '1.234' # Conversion print "anInteger: before", anInteger, "after", float(anInteger) print "aFloat: before", aFloat, "after", int(aFloat) print "integerString: before", integerString, "after", int(integerString) print "floatString: before", floatString, "after", float(floatString) # Errors print "floatString: before", floatString, "after", int(floatString) print "aString: before", aString, "after", int(aString) print "aString: before", aString, "after", float(aString) print "floatString + 1:", floatString + 1 print "integerString + 1:", integerString + 1 # Figure out the internal representation print type(anInteger), repr(anInteger), anInteger print type(aFloat), repr(aFloat), aFloat print type(integerString), repr(integerString), integerString print type(floatString), repr(floatString), floatString 14

15 More Functions 9/11/2015BCHB524 - 2015 - Edwards # There are many useful functions built into Python aString = 'abcdefghijkl' anInteger = 10 aFloat = 3.456 negativeInteger = -5 negativeFloat = -7.9999 # Math print "Absolute value:", abs(negativeInteger) print "Absolute value:", abs(negativeFloat) print "Min", min(anInteger,aFloat,negativeInteger,negativeFloat) print "Max", max(anInteger,aFloat,negativeInteger,negativeFloat) # String length print len(aString) # Complicated expressions! print "Also known as 1.0:",abs(-3)*(1/float('3.0')) print "Also known as 5: ",int(float('1.23456'))*5 15

16 String Methods 9/11/2015BCHB524 - 2015 - Edwards # String methods are very useful! seq = 'gcatgacgttattacgactctgtgtggcgtctgctggg' # A few important string methods print "The number of 'a' symbols:",seq.count('a') print "The sequence in uppercase:",seq.upper() print "Does it end with tggg:",seq.endswith('tggg') print "Does it start with atg:",seq.startswith('atg') print "What position is tggg in:",seq.find('tggg') print "After conversion to uppercase?",seq.upper().find('TGGG') 16

17 Defining New Functions 9/11/2015BCHB524 - 2015 - Edwards # Name and describe a small task (no execution!) def helloworld(): print "Hello world" # Functions may be parameterized by arguments def hello(to): print "Hello",to # Functions can return values def bytwo(x): y = 2*x return y # Functions can be parameterized by more than one argument def rectangle_area(length,height): return length*height # Continued... 17

18 Defining New Functions 9/11/2015BCHB524 - 2015 - Edwards # Continuation... # Function execution must occur after its definition helloworld() hello("Georgetown") hello("everyone") helloworld() print bytwo(2), bytwo('abcdef'), bytwo(1.23456) x = 3 y = 4 z = 5 print bytwo(x), bytwo(y), bytwo(z) print rectangle_area(x,y) 18

19 Defining New Functions Saves typing Reduces errors Single change, global effect Conceptual name aids readability Functions can use other functions! 9/11/2015BCHB524 - 2015 - Edwards19

20 Control Flow: if statement Execution path depends on string in seq. Make sure you change seq to different values. 9/11/2015BCHB524 - 2015 - Edwards # The input DNA sequence seq = 'atggcatgacgttattacgactctgtgtggcgtctgctggg' # Remove the initial Met codon if it is there if seq.startswith('atg'): print "Sequence without initial Met:",seq[3:] else: print "Sequence (no initial Met):",seq 20

21 Exercises 1. Download or copy-and-paste the DNA sequence of the Anthrax SASP gene from the anthrax_sasp.nuc file in the course data-directory. Treat the provided sequence as the sequence to be translated (no 5' UTR). Write a Python program to print answers to the following questions: Does the SASP gene start with a Met codon? Does the SASP gene have a frame 1 Met codon? How many nucleotides in the SASP gene? How many amino-acids in the SASP protein? What is the GC content (% G or C nucleotides) of the SASP gene? Test your program with other gene sequences. 9/11/2015BCHB524 - 2015 - Edwards21

22 9/11/2015BCHB524 - 2015 - Edwards Homework 2 Due Wednesday, September 16 th. Use only the techniques introduced so far. Make sure you can run the programs demonstrated in lecture. Submit Exercise 3.1 solution to Blackboard 22


Download ppt "9/11/2015BCHB524 - 2015 - Edwards Introduction to Python BCHB524 2015 Lecture 3."

Similar presentations


Ads by Google