Programming For Life Sciences

BIOL733

Aims

This module is aimed at postgraduate students in the Life Sciences, wishing to learn about methods for use in data-intensive research.

Personal and employability skills such as team-working, leadership and negotiation will be taught and developed in the context of programming.

The module provides a broad overview of the use of a scripting language for performing basic tasks in the biological sciences, with examples demonstrated through the use of Perl.

The module will give students practical experience in writing their own Perl scripts for basic bioinformatics tasks, such as manipulating DNA, RNA and protein sequences, file input/output and working with other programs, such as BLAST.

There will also be a brief introduction to the concepts of more advanced techniques, such as object-oriented programming, exemplified through BioPerl and databases (MySQL).

Lectures will be provided on core topics, with a strong emphasis on practical activity in workshops and tutorials, allowing students to gain some confidence in writing scripts for their own tasks and working as part of a team.

Learning Outcomes

As a result of successfully completing this module, students should be able to:
● Use Perl for basic scripting.
● Understand data structures in Perl and how to apply them to biological data.
● Use regular expressions for manipulating biological data.
● Use Perl for manipulating files and controlling the running of external programs.
● Understand the basics of object oriented techniques.
● Design and build simple relational databases.
● Communicate effectively in a variety of contexts.
● Work effectively within a team and as an individual, understanding the importance of leadership/negotiation skills and career management issues.

Teaching & Learning Strategies

This module is delivered as a series of lecture, workshop and tutorial sessions.

Lectures are supplemented with lecture notes, reading lists and informal assignments to be undertaken during private study.

These may link to workshops for which additional reading may also be assigned for preparation and discussion.

Workshops provide opportunities to acquire skills in the use of programming techniques and databases and illustrate concepts covered in lectures.

They are associated with formal assignments completed either in-class or during private study.

Weekly tutorial sessions held in the computing cluster provide students with the opportunity to gain help with their programming code.

Syllabus

● An introduction to Perl for life sciences, variables and strings (storage and manipulation of sequence data).
● Conditionals, arrays and hashes.
● Hashes, arrays and looping structures.
● Subroutines and command line arguments.
● Working with files, IO (Fasta files), regular expressions.
● Using Perl to control other programs (BLAST).
● Object-oriented programming and BioPerl.
● Perl for the web and web programming.
● Team-working, leadership and commercial IT.
● Relational databases.
● Perl and MySQL.