MOLB 7900 Practical Computational Biology for Biologists: Python
The goal of this course is to introduce students to the Python programming language and its application to computational biology. Students are not expected to have any prior experience with Python or other programming languages. The goals of the course are to familiarize students with the basic tenets of Python programming such that, at the completion of the course, they are able to write basic software and scripts that will enable them to derive meaning from the large datasets typical of modern biology. Further, the students will have the basic skills necessary to continue their computational development using tried-and-true crowdsourced knowledge repositories including StackOverflow. In short, this course aims to “teach students to fish” by teaching them the necessary basics of the language and pointing them toward resources for further development rather than “giving students a fish” by handing them pre-designed, cookie-cutter scripts that answer specific biological questions.
The primary learning objectives are therefore to work towards being able to:
- Understand basic datatypes, their properties, limitations, and combinations.
- Master the use of different containers of these datatypes and understand their relative advantages and disadvantages.
- Understand and use iterating loops and their associated controls.
- Incorporate external packages into the workflow of student-designed software.
- Be able to define and write functions, and understand their scope as well as incorporate Python’s powerful built-in functions where appropriate.
- Use the spreadsheet-mimicking package pandas to organize and manipulate tabular data.
- Create a computational workflow that identifies analyzes the genes and sequences bound by a protein in a ChIP-seq experiment.
- Create a computational workflow that integrates ChIP-seq and RNA-seq data to analyze the biological consequences of chromatin-binding events.