intermediate/advanced python - uclaintermediate/advanced python michael weinstein (day 3) topics ›...

21
Intermediate/Advanced Python Michael Weinstein (Day 3)

Upload: others

Post on 31-Aug-2020

35 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Intermediate/Advanced Python Michael Weinstein (Day 3)

Page 2: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Topics ›  Review of basic data structures ›  Accessing and working with objects in python ›  Numpy ›  Pandas

– What are dataframes? – Sample column counting operation –  Test, refine, test, refine, test, refine to get the data structure we want – Extracting a column

›  Matplotlib – Making a simple line plot

›  Scipy

Page 3: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Next goal: Analyze base frequency at each position in the first 50 bases ›  Need to iterate over sam file again ›  Need to grab the first 50 bases of each read ›  Need to turn the string into a list ›  Need to move the data to a pandas dataframe

– This is a more flexible structure for holding heterogenous data – Not as efficient as a numpy array, but still very fast – Very similar to dataframes in R language

›  Need to count base occurrences in each column ›  New file: baseFrequencyCounter.py

Page 4: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

How to think of a dataframe?

Page 5: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

How to count letters in a column?

Page 6: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Some test code

Page 7: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Data looks almost right, except we need it transposed (we want position to be the columns).

Page 8: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

How to transpose

Page 9: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Testing our data structure

Page 10: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python
Page 11: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Looks good!

Page 12: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Testing our data structure

Test code (can be removed after it works) We just need to return the transposed dataframe Replace the box contents with: return baseDataFrame.transpose()

Page 13: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Testing out our next data structure

Page 14: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Testing out the data structure

Page 15: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Transposing and extracting a column…

Page 16: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

This is what we want to see

Page 17: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Finalize the function and call

Page 18: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Important question: How to represent our data ›  Class participation time: Start making suggestions

›  Don’t cheat here if you’ve looked ahead

› More than one right answer

Page 19: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Pyplot marker codes (Don’t worry about memorizing) Keep a reference if you use these often

character description '-' solid line style '--' dashed line style '-.' dash-dot line style ':' dotted line style '.' point marker ',' pixel marker 'o' circle marker 'v' triangle_down marker '^' triangle_up marker '<' triangle_left marker '>' triangle_right marker '1' tri_down marker '2' tri_up marker '3' tri_left marker '4' tri_right marker 's' square marker 'p' pentagon marker '*' star marker 'h' hexagon1 marker 'H' hexagon2 marker '+' plus marker 'x' x marker 'D' diamond marker 'd' thin_diamond marker '|' vline marker '_' hline marker

character color ‘b’ blue ‘g’ green ‘r’ red ‘c’ cyan ‘m’ magenta ‘y’ yellow ‘k’ black ‘w’ white

Page 20: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Iterative plotting… it’s really this simple

Page 21: Intermediate/Advanced Python - UCLAIntermediate/Advanced Python Michael Weinstein (Day 3) Topics › Review of basic data structures › Accessing and working with objects in python

Success!