Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Python

Similar presentations


Presentation on theme: "Introduction to Python"— Presentation transcript:

1 Introduction to Python
BCHB524 Lecture 3 BCHB524 - Edwards

2 Outline Review Functions & Methods Defining new functions
Control flow: if statement BCHB524 - Edwards

3 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) BCHB524 - Edwards

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

5 Simple Numbers # 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." BCHB524 - Edwards

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 BCHB524 - Edwards

7 Simple Numbers II # 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." BCHB524 - Edwards

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. BCHB524 - Edwards

9 DNA Sequence # 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 BCHB524 - Edwards

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 BCHB524 - Edwards

11 DNA Sequence II # 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 BCHB524 - Edwards

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. BCHB524 - Edwards

13 Conversion Functions # 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 BCHB524 - Edwards

14 More Functions # There are many useful functions built into Python
aString = 'abcdefghijkl' anInteger = 10 aFloat = 3.456 negativeInteger = -5 negativeFloat = # 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(' '))*5 BCHB524 - Edwards

15 String Methods # 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') BCHB524 - Edwards

16 Defining New Functions
# 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... BCHB524 - Edwards

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

18 Defining New Functions
Saves typing Reduces errors Single change, global effect Conceptual name aids readability Functions can use other functions! BCHB524 - Edwards

19 Control Flow: if statement
Execution path depends on string in seq. Make sure you change seq to different values. # 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 BCHB524 - Edwards

20 Exercises 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. BCHB524 - Edwards


Download ppt "Introduction to Python"

Similar presentations


Ads by Google