Programming with Python

General Information

Who: The course is aimed at graduate students and other researchers. You don't need to have any previous knowledge of the tools that will be presented at the workshop.

Where: Computing Lab 1, Medical Education Centre, Crewe Rd S, Edinburgh EH4 2XU. Get directions with OpenStreetMap or Google Maps.

When: 6 November 2018. Add to your Google Calendar.

Requirements: Participants must bring a laptop with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on. They should have a few specific software packages installed (listed below). They are also required to abide by Software Carpentry's Code of Conduct.

Accessibility: We are committed to making this workshop accessible to everybody. The workshop organizers have checked that:

Materials will be provided in advance of the workshop and large-print handouts are available if needed by notifying the organizers in advance. If we can help making learning easier for you (e.g. sign-language interpreters, lactation facilities) please get in touch (using contact details below) and we will attempt to provide them.

Contact: Please email john.ireland@igmm.ed.ac.uk or a.turner@epcc.ed.ac.uk for more information.


The best way to learn how to program is to do something useful, so this introduction to Python is built around a common scientific task: data analysis.

Arthritis Inflammation

We are studying inflammation in patients who have been given a new treatment for arthritis, and need to analyze the first dozen data sets of their daily inflammation. The data sets are stored in comma-separated values (CSV) format:

The first three rows of our first file look like this:

0,0,1,3,1,2,4,7,8,3,3,3,10,5,7,4,7,7,12,18,6,13,11,11,7,7,4,6,8,8,4,4,5,7,3,4,2,3,0,0
0,1,2,1,2,1,3,2,2,6,10,11,5,9,4,4,7,16,8,6,18,4,12,5,12,7,11,5,11,3,3,5,4,4,5,5,1,1,0,1
0,1,1,3,3,2,6,2,5,9,5,7,4,5,4,15,5,11,9,10,19,14,12,17,7,12,11,7,4,2,10,5,4,2,2,3,2,2,1,1

So, we want to:

  1. Calculate the average inflammation per day across all patients.
  2. Plot the result to discuss and share with colleagues.

To do all that, we’ll have to learn a little bit about programming.

Prerequisites

You need to understand the concepts of files and directories and how to start a Python interpreter before tackling this lesson. This lesson sometimes references Jupyter Notebook although you can use any Python interpreter mentioned in the Setup.

The commands in this lesson pertain to Python 3.

Getting Started

To get started, follow the directions on the “Setup” page to download data and install a Python interpreter.


Surveys

Please be sure to complete these surveys before and after the workshop.

Pre-workshop Survey

Post-workshop Survey


We will use this collaborative document for chatting, taking notes, and sharing URLs and bits of code.


Schedule

Setup Download files required for the lesson
00:00 1. Analyzing Patient Data How can I process tabular data files in Python?
01:30 2. Repeating Actions with Loops How can I do the same operations on many different values?
02:00 3. Storing Multiple Values in Lists How can I store many values together?
02:30 4. Analyzing Data from Multiple Files How can I do the same operations on many different files?
02:50 5. Making Choices How can my programs do different things based on data values?
03:20 6. Creating Functions How can I define new functions?
What’s the difference between defining and calling a function?
What happens when I call a function?
03:50 7. Errors and Exceptions How does Python report errors?
How can I handle errors in Python programs?
04:20 8. Defensive Programming How can I make my programs more reliable?
04:50 9. Debugging How can I debug my program?
05:20 10. Command-Line Programs How can I write Python programs that will work like Unix command-line tools?
05:50 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.