[BBC] Introduction to Python for Biologists 11-15 September 2017

Bert Overduin Bert.Overduin at ed.ac.uk
Thu Jul 27 17:08:06 CEST 2017


Dear all,

In September we are again offering one of our most popular workshops, i.e.
the 5-day Introduction to Python for Biologists. As this workshop starts
completely from scratch it is especially suited to those with little or no
previous programming experience.

The workshop is taught by Martin Jones, founder of Python for Biologists (
https://pythonforbiologists.com/introduction/). Martin is a very
experienced Python instructor and author of several books on Python (
https://pythonforbiologists.com/python-books/).

More details on the workshop can be found below.

With kind regards,
Bert

************************

INTRODUCTION TO PYTHON FOR BIOLOGISTS

DATE: Monday 11 – Friday 15 September 2017
VENUE: The King's Buildings, The University of Edinburgh, Edinburgh,
Scotland, UK
REGISTRATION DEADLINE: Monday 28 August 2017 noon
CANCELLATION DEADLINE: Monday 4 September 2017 noon
PLACES: 20 (first come, first served)
REGISTRATION FEE: £525 (includes coffee/tea, but no lunch)
INFORMATION: Bert Overduin (bert.overduin at ed.ac.uk), Martin Jones (
martin at pythonforbiologists.com)

TO REGISTER: http://genomics.ed.ac.uk/services/introduction-pyt
hon-biologists

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 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. The workshop is
structured so that the parts of the language most useful for bioinformatics
are introduced as early as possible, and that students can start writing
plausibly-useful programs after the first few sessions. After completing
the workshop, students should be in a position to (1) apply the skills they
have learned to tackling problems in their own research and (2) continue
their Python education in a self-directed way.

"Great learning from someone with a biology background rather than computer
science - meant we were on the same wavelength." (February 2016)
"Brilliantly well-run. From the book; to the USB stick with all the files
we need; to the topics covered; to the system of helping us one-on-one, I
cannot fault this course." (February 2016)

INSTRUCTORS

Dr. Martin Jones (Founder, Python for Biologists)
Dr. Bert Overduin (Training and Outreach Bioinformatician, Edinburgh
Genomics)

WORKSHOP FORMAT

The workshop is delivered over ten half-day sessions. Each session consists
of roughly a one hour lecture followed by two hours of practical exercises,
with breaks at the organiser’s discretion. Each session uses examples and
exercises that build on material from the previous one, so it’s important
that students attend all sessions. A description of the sessions can be
found at the bottom of this page.

WHO SHOULD ATTEND

This workshop is aimed at 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 or Bert Overduin an email.

REQUIREMENTS

Students should have enough biological/bioinformatics background to
appreciate the examples and exercise problems (i.e. they should know what a
protein accession number, BLAST report, and FASTA sequence is). No previous
programming experience or computer skills (beyond the ability to use a text
editor) are necessary. During the workshop students will use their own
laptops. Instructions for any software to be installed will be sent out
prior to the course.

SESSION CONTENT

1. Introduction

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).
Core concepts introduced: source code, text editors, whitespace, syntax and
syntax errors, Python versions

2. Manipulating text

In this session 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.

3. Working with files

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. The practical session is spent
combining the techniques from session 2 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.

4. Lists and loops

A discussion of the limitations of the techniques learned in session 3
quickly reveals that flow control is required to write more sophisticated
file-processing programs, and I introduce the concept of loops. We look at
the way in which Python loops work, and how they can be used in a variety
of contexts. We explore the use of loops and lists together to tackle some
more difficult problems. Core concepts introduced: lists and arrays, blocks
and indentation, variable scoping, iteration and the iteration interface,
ranges.

5. Conditions

I use 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. Core concepts introduced:
Truth and falsehood, Boolean logic, identity and equality, evaluation of
statements, branching.

6. Writing functions

We discuss 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. Core concepts introduced: argument passing,
encapsulation, data flow through a program.

7. Regular expressions

I show how a range of common problems in bioinformatics can be described in
terms of pattern matching, and give an overview of Pythons 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.

8. Dictionaries

We discuss a few examples of key-value data and see how the problem of
storing them is a common one across bioinformatics and programming in
general. We learn about the syntax for dictionary creation and manipulation
before talking about the situations in which dictionaries are a better fit
that the data structures we have learned about thus far. Core concepts
introduced: paired data types, hashing, key uniqueness, argument unpacking
and tuples.

9. Working with the filesystem

We discuss the role of Python in the context of a bioinformatics workflow,
and how it is often used as a language to “glue” various other components
together. We then look at the Python tools for carrying out file and
directory manipulation, and for running external programs - two tasks that
are often necessary in order to integrate our own programs with existing
ones. Core concepts introduced: processes and subprocesses, the shell and
shell utilities, program return values.

10. Final day

The schedule for the final day will be set based on the progress of the
course and the interests of the students. We will have time set aside for
attendees to finish exercises, work on their own data, or get one-on-one
help with real-world problems arising from their research. We may also use
some of the time to cover more advanced topics of interest to the
attendees, including BioPython, data visualisation, packaging and
distributing code, and using alternative interfaces such as iPython.

-- 
Bert Overduin, PhD
TRAINING AND OUTREACH BIOINFORMATICIAN
Bert.Overduin at ed.ac.uk
orcid.org/0000-0002-5281-8838

EDINBURGH GENOMICS
The University of Edinburgh
Ashworth Laboratories
The King's Buildings
Charlotte Auerbach Road
Edinburgh EH9 3FL
Scotland, United Kingdom

tel. +44(0)1316507403
http://genomics.ed.ac.uk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.psb.ugent.be/pipermail/bbclist/attachments/20170727/725b5b97/attachment.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: not available
URL: <http://maillist.psb.ugent.be/pipermail/bbclist/attachments/20170727/725b5b97/attachment.ksh>


More information about the BBClist mailing list