Loading Events

« All Events

ONLINE COURSE – Introduction to Python for Ecologists and Evolutionary Biologists (IPYB01) This course will be delivered live

9 June 2025 - 12 June 2025

£480.00
ONLINE COURSE – Introduction to Python for Ecologists and Evolutionary Biologists (IPYB01) This course will be delivered live

Event Date

Monday, 9th June, 2025

Course Format

This is a ‘LIVE COURSE’ – the instructors will be delivering lectures and coaching attendees through the accompanying computer practical’s via video link, a good internet connection is essential.

COURSE PROGRAM

TIME ZONE – UK (GMT+1) local time – however all sessions will be recorded and made available allowing attendees from different time zones to follow.

Please email oliverhooker@prstatistics.com for full details or to discuss how we can accommodate you.

About This Course

Python is a dynamic, readable language that is a popular platform for all types of  bioinformatics work, from simple one-off scripts to large, complex  software projects. This workshop aims to give novice programmers an introduction to using Python for research in evolutionary biology and genomics by using biological examples throughout. We will use example datasets and problems themed around sequence analysis, taxonomy and ecology, with plenty of time for participants to work on their own research data.

This workshop is aimed at complete beginners and assumes no prior programming experience. It gives an overview of the language with an emphasis on practical problem solving, using examples and exercises drawn from various aspects of bioinformatics work.

After completing the workshop, students should be able to:

  1. Apply the skills they have learned to tackling problems in their own research
  2. Continue their Python education in a self-directed way. All course materials (including copies of presentations, practical exercises, data files, and example scripts prepared by the instructing team) will be provided electronically to participants.
Intended Audiences

This workshop is aimed at all researchers and technical workers with a background in biology who want to learn programming. The syllabus has been planned with complete beginners in mind; people with previous programming experience are welcome to attend as a refresher but may find the pace a bit slow. If in doubt, take a look at the detailed session content below or drop Martin Jones (martin@pythonforbiologists.com) an email.

Students should have enough biological background to appreciate the examples and exercise problems (i.e. they should know about DNA and protein sequences, what translation is, and what introns and exons are). No previous programming experience or computer skills (beyond the ability to use a text editor) are necessary, but you’ll need to have a laptop with Python installed.

Venue

Delivered remotely

Course Details

Time zone – UK (GMT+1) local time

Availability – 20

Duration – 4 days, 8 hours per day

Contact hours – Approx. 28 hours

ECT’s – Equal to 3 ECT’s

Language – English

Teaching Format

Lectures/discussions of Python code, libraries and techniques delivered using interactive notebooks. Workshop/practical time for students to tackle carefully designed programming challenges that use the material from the discussion sessions. Usually followed up by discussion of solutions, wrap up and summarisation.

Assumed quantative knowledge

Little technical knowledge is assumed – we will be focussing more on applied problem-solving and less on statistics, mathematics and interpretation. No maths is involved beyond basic addition/subtraction/powers etc.

Assumed computer background

This course is suitable for complete beginners; all that is necessary is admin rights on a laptop in order to be able to install software. Pre course instructions will contain links to all software and data files that are necessary.

Equipment and software requirements
A laptop computer with a working version of Python is required. Python is free and open-source software for PCs, Macs, and Linux computers.
 
Participants should be able to install additional software on their computers during the course (please ensure you have administration rights to your computer).

Although not absolutely necessary, a large monitor and a second screen could improve the learning experience. Participants are also encouraged to keep their webcams active to increase their interaction with the instructor and other students.

Download Python

 

 

Tickets

The numbers below include tickets for this event already in your cart. Clicking "Get Tickets" will allow you to edit any existing attendee information as well as change ticket quantities.
IPYB01 ONLINE
IPYB01 ONLINE
£ 480.00
20 available

PLEASE READ – CANCELLATION POLICY

Cancellations are accepted up to 28 days before the course start date subject to a 25% cancellation fee. Cancellations later than this may be considered, contact oliverhooker@prstatistics.com. Failure to attend will result in the full cost of the course being charged. In the unfortunate event that a course is cancelled due to unforeseen circumstances a full refund of the course fees will be credited

If you are unsure about course suitability, please get in touch by email to find out more oliverhooker@prstatistics.com

 

COURSE PROGRAMME

Monday 9th

Day 1  – Classes form 09:30 – 17:30

Session 1 : Introduction, environment and text manipulation

  • In this session I introduce the students to Python and explain what we expect them to get out of it and how learning to program can benefit their research. I explain the format of the course and take care of any housekeeping details (like coffee breaks and catering arrangements). I outline the edit-run-fix cycle of software development and talk about how to avoid common text editing errors. In this session, we also check that the computing infrastructure for the rest of the course is in place (e.g. making sure that everybody has an appropriate version of Python installed). Next, students learn to write very simple programs that produce output to the terminal, and in doing so become comfortable with editing and running Python code. This session also introduces many of the technical terms that we’ll rely on in future sessions. I run through some examples of tools for working with text and show how they work in the context of biological sequence manipulation. We also cover different types of errors and error messages, and learn how to go about fixing them methodically. Core concepts introduced: terminals, standard output, variables and naming, strings and characters, special characters, output formatting, statements, functions, methods, arguments, comments.

Session 2 : Files, slices and user interfaces

  • I introduce this session by talking about the importance of files in bioinformatics pipelines and workflows, and we then explore the Python interfaces for reading from and writing to files. This involves introducing the idea of types and objects, and a bit of discussion about how Python interacts with the operating system. We will also take a look at Python’s slice syntax, which will play an important role later in the course once we introduce data structures. The practical session is spent combining the techniques from the first session with the file IO tools to create basic file processing scripts. Core concepts introduced: objects and classes, paths and folders, relationships between variables and values, text and binary files, newlines.
Tuesday 10th

Day 2  – Classes form 09:30 – 17:30

Session 3 : Lists and loops

  • In this session we’ll start by thinking about the kinds of programs that we need to write for our research work. An important idea is that we want to write programs that can deal with arbitrary amounts of data. In order to do so, we need two things: a way of *storing* large collections of values, and a way of *processing* them. In Python, **lists** and **loops** do these jobs respectively. We’ll go over the new syntax needed for each, and see how together they allow us to write programs that are much closer to being useful in the real world. This new syntax will allow us to see how lists, strings and files all share similar behaviour and how we can take advantage of that fact to write concise code. In the practical session we’ll tackle some problems that involve larger data files. Core concepts introduced: lists and arrays, blocks and indentation, variable scoping, iteration and the iteration interface, ranges.

Session 4 : conditions and flow control

  • We will start this session by using the idea of decision making as a way to introduce conditional tests, and outline the different building blocks of conditions before showing how conditions can be combined in an expressive way. We look at the different ways that we can use conditions to control program flow, and how we can structure conditions to keep programs readable. These simple ideas combine with the material we have already covered to allow us to write programs that can follow rules and enforce logic. Correspondingly, in the practical session we’ll be able to attempt some complex filtering challenges on a structured CSV file. Core concepts introduced: Truth and falsehood, Boolean logic, identity and equality, evaluation of statements, branching.
Wednesday 11th

Day 3 – Classes from 09:30 – 17:30

Session 5 : Organizing and structuring code

  • We’ll start off by discussing functions that we’d like to see in Python before considering how we can add to our computational toolbox by creating our own. We examine the nuts and bolts of writing functions before looking at best practice ways of making them usable. We also look at a couple of advanced features of Python – named arguments and defaults. This session ends with a first look at the concepts behind automated testing, and the easiest way to get started with tests in Python. The practical session makes extensive use of automated testing, with students writing functions to pass a series of unit tests. Core concepts introduced: argument passing, encapsulation, data flow through a program, unit testing.

Session 6 : The Python standard library and Regular expressions

  • We begin this sesion by browsing the documentation for the Python standard library and discussing how it fits in with the core parts of Python that we’ve already discussed, along with other libraries of code that students may have already encountered. To explore how Python’s module system works in detail we will take a close look at one particular module: the one that deals with regular expressions. We’ll see how a range of common problems in bioinformatics can be described in terms of pattern matching, and give an overview of Python’s regex tools. We look at the building blocks of regular expressions themselves, and learn how they are a general solution to the problem of describing patterns in strings, before practising writing some specific examples of regular expressions. Core concepts introduced: domain-specific languages, modules and namespaces.
Thursday 12th

Day 4 – Classes form  09:30 – 17:30

Session 7 : Dictionaries

All of the data sets that we’ve considered so far in the course fit nicely into the list paradigm. In this session, it’s time to introduce the second major data structure offered by Python: the dictionary. To do this, we’ll look at a classic bioinformatics problem – kmer counting – and see how lists aren’t a good fit before learning the new syntax that we need to make dictionaries. Comparing the list and dictionary solutions will make it clear when we should use each approach. We’ll wrap up by discussing a few more examples of key-value data and see how the problem of storing them is a common one across bioinformatics and programming in general. In the practical session we will practice writing programs that create dictionaries, and ones that use dictionaries, including another classic bioinformatics problem: DNA to protein translation. Core concepts introduced: paired data types, hashing, key uniqueness, argument unpacking and tuples.

Session 8 : File management and housekeeping scripts

This session concerns a part of the Python standard library that is boring but useful – the modules concerned with file manipulation. We will cover the tools that Python gives us to automate the common repetitive housekeeping operations that are part of many bioinformatics projects, but rarely make it into the final publication – things like renaming, moving and deleting files, creating folders, etc. The notebook part of this session is quite brief, giving us a generous amount of practical time to tackle an example of a bioinformatics data pre-processing problem: organizing a collection of DNA sequences by length. Although the problem can be stated very concisely, we’ll quickly see that there are quite a few subtleties to it, giving us a chance to think about program state of multiple runs, processing multiple files, and creating multiple output files.

Dr. Martin Jones
Dr. Martin Jones

Martin a freelance trainer specialising in teaching programming (mostly Python) and Linux skills to researchers in the field of biology. He trained as a biologist and completed his PhD in large-scale phylogenetics in 2007, then held a number of academic positions at the University of Edinburgh ending in a two year stint as Lecturer in Bioinformatics. I launched Python for Biologists in 2015 and have been teaching and writing full-time ever since.

Details

Start:
9 June 2025
End:
12 June 2025
Cost:
£480.00
Event Categories:
, ,

Venue

Delivered remotely (United Kingdom)
Western European Time Zone, United Kingdom

Tickets

The numbers below include tickets for this event already in your cart. Clicking "Get Tickets" will allow you to edit any existing attendee information as well as change ticket quantities.
IPYB01 ONLINE
IPYB01 ONLINE
£ 480.00
20 available