1 / 22

Introduction to Python

Introduction to Python. BCHB524 2013 Lecture 3. Outline. Review Homework #1 Solutions Functions & Methods Defining new functions Control flow: if statement. Outline. Review Hello World (Printing, Execution) Simple Numbers (Variables, Integers) Simple Numbers II (Floats)

emma-dorsey
Download Presentation

Introduction to Python

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Python BCHB5242013Lecture 3 BCHB524 - 2013 - Edwards

  2. Outline • Review • Homework #1 Solutions • Functions & Methods • Defining new functions • Control flow: if statement BCHB524 - 2013 - 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 - 2013 - 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 - 2013 - 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 - 2013 - 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 - 2013 - 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 - 2013 - 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 - 2013 - 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 - 2013 - 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 - 2013 - 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 - 2013 - 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 - 2013 - Edwards

  13. Homework Solutions BCHB524 - 2013 - Edwards

  14. 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 printtype(anInteger), repr(anInteger), anInteger printtype(aFloat), repr(aFloat), aFloat printtype(integerString), repr(integerString), integerString printtype(floatString), repr(floatString), floatString BCHB524 - 2013 - Edwards

  15. More Functions # 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 printlen(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 BCHB524 - 2013 - Edwards

  16. 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 - 2013 - Edwards

  17. Defining New Functions # Name and describe a small task (no execution!) defhelloworld(): print"Hello world" # Functions may be parameterized by arguments defhello(to): print"Hello",to # Functions can return values defbytwo(x): y = 2*x return y # Functions can be parameterized by more than one argument defrectangle_area(length,height): return length*height # Continued... BCHB524 - 2013 - Edwards

  18. Defining New Functions # Continuation... # Function execution must occur after its definition helloworld() 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) BCHB524 - 2013 - Edwards

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

  20. 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 - 2013 - Edwards

  21. Homework 2 • Due Monday, September 9th. • Complete Rosalind problems 4 and 5. • Submit using Blackboard • Use only the techniques introduced so far. • Make sure you can run the programs demonstrated in lecture. BCHB524 - 2013 - Edwards

  22. Exercise 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 entire gene. • Write a Python program to print answers 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 - 2013 - Edwards

More Related