2nd degree (Master)
Structural & Molecular Biochemistry
Coordinator Office Hours:
By email coordination
Prof Michal Linial
In the beginning of this course we will learn how to program in Python from scratch (yet assuming previous programming experience), learning all the basics of the language for generic use (with emphasis on using it for biological problems). After the foundations of Python are established, we will demonstrate how it can be used, together with important Python libraries we will introduce, in order to solve a variety of interesting biological problems. These include the analysis of biological sequences (DNA, RNA and proteins), analyzing genetic variations, and more.
In recent years biological research has shifted from focused narrow experiments to high-throughput assays yielding ever increasing amounts of data. These rapid transformations call for new computational approaches for handling biological data and for conducting biological research in general. Not only bioinformaticians, but the entire biological community, is increasingly urged to use in-silico tools. Although many computational tools and databases are available through user interfaces and web resources, programming and script-writing is still often an indispensable tool, and is an empowering skill that allows much greater flexibility, efficiency and liberty. For this reason we opened this class, to address the specific needs of biological research.
Learning outcomes - On successful completion of this module, students should be able to:
a) Writing Python code
b) Using existing programming libraries for solving biological programming problems
c) Converting a biological research problem into a quantitative one that can be solved with analytical tools (programming, statistics, visualization, etc.)
d) Finding and handling molecular biological data from public databases
e) Generating publishing-level graphs and figures from quantitative analysis
f) Self-reliant learning and problem-solving in topics learned in the class, for independent future research
Teaching arrangement and method of instruction:
Lecture (25%), Lab (75%)
- Python basics (syntax, variables, loops, flow control, functions, etc.)
- Libraries for general and biological research (for quantitative analysis, handling with data sources, biological sequences and genetic variants, statistics, visualization, etc.)
- Handling biological data files in different formats
- Introduction to public databases with biological and medical data
- Introduction to web tools for genomics and proteomics
Python packages to be learned: ipython & jupyter notebook, biopython, numpy, scipy, pandas, statsmodels, matplotlib, pyvcf
A (partial) list of databases we will work with: UCSC Genome Browser, NCBI RefSeq, ENCODE, UniProt, pfam, ClinVar
Additional Reading Material:
Basic programming course (books, tutorials, or any other resource)
End of year written/oral examination 0 %
Presentation 10 %
Participation in Tutorials 0 %
Project work 0 %
Assignments 20 %
Reports 0 %
Research project 70 %
Quizzes 0 %
Other 0 %
Acceptance to the class is by the teachers only. Registration on RYSHUM-NET is not valid without a confirmation from the teachers.
We require basic knowledge in programming (any language), experimental experience in biology/medicine/agriculture, and understanding of central concepts in genetics and molecular biology.
This is an advanced class that requires a lot of efforts by the participants.