Day 2. Introduction to Programming
Much of bioinformatics requires manipulation of data data sets, execution of multiple external programs, and summary and analysis of results. Many programming langagues, such as Perl and Python excel at these tasks. Here, we will provide an overview of the Python language, demonstrate basic concepts in programming, and show how to create figures and utilize iPython notebooks. Python is a powerfull language with many external packages that permit sophisticated analysis workflows.
Schedule:
Session | Time | Topics |
---|---|---|
I | 9:00-10:15 AM | Intro to Python and Programming Concepts |
10:15-10:30AM | Coffee Break | |
II | 10:30-12:00 AM | Programming Concepts, Variables, and Data Structures |
12:00-1:00PM | Lunch | |
III | 1:00-2:15 PM | Control Structures and Functions |
2:15-2:30 PM | Coffee Break | |
IV | 2:30-4:00 PM | System Calls, Plotting, and iPython Notebooks |
Instructors:
Jeff de Wet (JdW)
Jacob Kitzman (JK)
I) Intro to Python and Programming Concepts [1:15 hr] JdW
- What is Python? What is programming?
- Setup and execution of simple scripts
- Data input and output
—- Coffee Break [15 mins] —
II) Programming Concepts, Variables, and Data Structures [1:30 hr] JdW (Handout)
- Concepts in the Python language
- Variables and data structures
—- Lunch Break [1 hr] —
III) Control Structures and Functions [1.15 hr] JdW (iPython Notebook)
- Control structures and loops
- Functions
—- Coffee Break [15 mins] —
IV) System Calls, Plotting, and iPython Notebooks [1.30 hr] JK
- Calling external programs (ipython notebook - filled in, blank version )
- Tabular data analysis with pandas (Slides 1 and iPython notebook - filled in, blank version)
- Plotting using matplotlib (Slides 2, iPython notebook - filled in, blank
- Plotting gene expression data using seaborn (ipython notebook - filled in, blank)
—- End/Wrap-Up —
Datasets
Cereal comma-delimited table
Cereal tab-delimited table
Reference material
CodeAcademy An interactive online python tutorial for beginners - thanks Adam for sharing this.