SBIA10210U Applied Programming for Biosciences

Volume 2020/2021
Education

MSc Programme in Biotechnology - semi-compulsory
MSc Programme in Molecular Biomedicine

Content

Many different areas of biosciences struggle with two large challenges. Firstly the amount of data that can be generated by just one experiment in very short time can be huge and a meaningful filtering can only be carried out by computational means. Secondly, processing of data can often at best be made with existing webservers, but even in that case output data from one webserver often needs to be converted and filtered to be suitable for input to another and given the quantities of data this is often not feasible to do by hand. Knowing basic programming is therefore an essential skill for a person working in the biosciences.

The aim of the course is to make the students able to analyze and process large biological data sets by writing and running Python programs. The course gives an introduction to data processing and filtering using the programming language Python. Thus the main part of the course is to introduce the programming language Python itself. The course is aimed at students with no prior programming experience.

The course will cover how to learn new concepts in the Python language. The outset is specific cases from biosciences, and the student learns by analyzing and redesigning existing pre-designed code that process data for the specific cases.

With outset in the cases the pre-designed code will be analyzed and concepts introduced as the different code pieces are introduced through their specific applications. The cases will complement each other concepts and the technical level will be increased from case to case. Through the cases it will also be demonstrated how to design a modular chain of programs of which some can be used in multiple contexts. Some Python programs can for example be general by converting one data format to another and can therefore be reused in multiple contexts. Overall the most common and useful features of the language will be introduced. Including:

* Printing to the screen

* Single value variables

* Multi-value variables like list, tuples and dictionaries

* If, elif, else control structure

* Loops

* Functions

* Introduction to classes

* Introduction to packages

* Reading data into the program from standard in or from files

* Writing results to a file

* A basic introduction to the powerful pattern matching method called regular expressions

The course will also introduce how to write well structured code. This will include splitting code into smaller functions and the usage of packages.

Learning Outcome

To perfectly comply with the course requirements the students should be able to acquire the following:

Knowledge:
Read and understand Python scripts for analyzing biological data. Search for information about parts of the Python language the student is not familiar with.

Skills:
Design the flow of how data can be processed and identify which Python programs are needed. Write Python scripts and solve problems by modifying existing Python code which solves similar problems. Solve small novel problems.

Competences:
Work with basic Python syntax. Design of a flow where consecutive Python program are needed to process the flow and where a Python program can be used multiple contexts.

* Handouts

* How to Think Like a Computer Scientist: Learning with Python 3 Documentation. Release 3rd edition. Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers http:/​/​www.ict.ru.ac.za/​Resources/​cspw/​thinkcspy3/​thinkcspy3.pdf

The course is based on cases on data processing from biosciences. Except for a few introductions and results sessions the students will be working cases directly on the computers. Follow up on the cases will be given in class room when needed. In the first half of the course, the students will be provided with cases containing pre-designed Python programs for analysing the respective cases. The student will have to modify the code in these. In later cases the student will be expected to write more of the programs themselves.
In the last half of the course the students will work on a project where they will be able to use their own data (or on data provided). In this part they will have to write their own Python programs and possibly integrate them with existing modules and programs. In addition to learning how to make small Python programs the students will also build up a library of tools to solve specific problems with in their studies. The students will be able to use the Windows, Apple, or Linux systems as they see fit.
  • Category
  • Hours
  • Preparation
  • 42
  • Theory exercises
  • 36
  • Project work
  • 124
  • Guidance
  • 4
  • Total
  • 206
Oral
Individual
Collective
Continuous feedback during the course of the semester
Credit
7,5 ECTS
Type of assessment
Written assignment
The exam consist of a report, containing the following sections:
1: Introduction (a brief background and motivation to the problem addressed)
2: Materials (a through description of the data analyzed)
3: Methods (an in depth description of the Python scripts developed in the project)
4: Results (an overview of what came out of executing the scripts on the data)
5: Conclusion.
Aid
All aids allowed
Marking scale
passed/not passed
Censorship form
No external censorship
More than one internal examiner
Criteria for exam assesment

As described in "Learning outcome" as well as how the report has been written up and fullfill the listed criteria.