Summary and Setup

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.

Scenario: A Miracle Arthritis Inflammation Cure

Our imaginary colleague “Dr. Maverick” has invented a new miracle drug that promises to cure arthritis inflammation flare-ups after only 3 weeks since initially taking the medication! Naturally, we wish to see the clinical trial data, and after months of asking for the data they have finally provided us with a CSV spreadsheet containing the clinical trial data.

The CSV file contains the number of inflammation flare-ups per day for the 60 patients in the initial clinical trial, with the trial lasting 40 days. Each row corresponds to a patient, and each column corresponds to a day in the trial. Once a patient has their first inflammation flare-up they take the medication and wait a few weeks for it to take effect and reduce flare-ups.

To see how effective the treatment is we would like to:

  1. Calculate the average inflammation per day across all patients.
  2. Plot the result to discuss and share with colleagues.
3-step flowchart shows inflammation data records for patients moving to the Analysis stepwhere a heat map of provided data is generated moving to the Conclusion step that asks thequestion, How does the medication affect patients?

Data Format

The data sets are stored in comma-separated values (CSV) format:

  • each row holds information for a single patient,
  • columns represent successive days.

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

Each number represents the number of inflammation bouts that a particular patient experienced on a given day.

For example, value “6” at row 3 column 7 of the data set above means that the third patient was experiencing inflammation six times on the seventh day of the clinical study.

In order to analyze this data and report to our colleagues, we’ll have to learn a little bit about programming.

Prerequisite

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 any officially supported Python version. Newer versions usually have better error printouts, so using newer Python versions is recommend if possible.

Getting Started

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

Overview


This lesson is designed to be run on a personal computer. All of the software and data used in this lesson are freely available online, and instructions on how to obtain them are provided below.

Install uv and Python


You will need to install the uv tool for this workshop. Detailed training on uv is available here. The below instructions are copied from that workshop.

Install uv on macOS and Linux with:

BASH

$ curl -LsSf https://astral.sh/uv/install.sh | sh
# If curl is not present, then you can try wget below
$ wget -qO- https://astral.sh/uv/install.sh | sh

Install uv on Windows with:

BASH

$ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

You may need to restart your terminal to ensure that uv was installed. Check the installation by displaying the version number using the --version option as shown below. If the command displays the uv version number then the installation was successful.

BASH

$ uv --version

OUTPUT

uv 0.8.4 (e176e1714 2025-07-30)

Obtain lesson materials


  1. Download python-novice-inflammation-data.zip and python-novice-inflammation-code.zip.
  2. Create a folder called swc-python on your Desktop.
  3. Move downloaded files to swc-python.
  4. Unzip the files.

You should see two folders called data and code in the swc-python directory on your Desktop.

Launch Python interface


To start working with Python, we need to launch a program that will interpret and execute our Python commands. For this workshop, we will assume the use of Jupyter Notebook.

Jupyter Notebook


A Jupyter Notebook provides a browser-based interface for working with Python. You can launch a notebook from the command line:

1. Navigate to the data directory:

If you’re using a Unix shell application, such as Terminal app in macOS, Console or Terminal in Linux, or [Git Bash][gitbash] on Windows, execute the following command:

BASH

cd ~/Desktop/swc-python/data

On Windows, you can use its native Command Prompt program. The easiest way to start it up is pressing Windows Logo Key+R, entering cmd, and hitting Return. In the Command Prompt, use the following command to navigate to the data folder:

cd /D %userprofile%\Desktop\swc-python\data

2. Start Jupyter server

BASH

uvx --with jupyter --with matplotlib --with numpy jupyter notebook

If you receive client errors, then try running the following command:

BASH

uvx --native-tls --with jupyter --with matplotlib --with numpy jupyter notebook

3. Launch the notebook by clicking on the “New” button on the right and selecting “Python 3” from the drop-down menu: Anaconda Navigator Notebook directory