• Advanced Courses in Life Sciences

    Header of Statistics at Transmitting Science

Online Course – 5th Edition

Introduction to Python for Biology

Introduction to Python for Biology


Please, SUBSCRIBE to our Newsletters if you wish to receive information on new editions.

Course Overview & Programme

Python is a user-friendly and powerful programming language commonly used in scientific computing, from simple scripting to large projects. This workshop will provide hands-on practice in a biological context for beginners, with very limited prior programming experience. This course is designed to be very applied, and we will explore Python tools of immediate help to the working scientist.

After completing this course, participants will be able to apply Python programming automation to their own research problems and should be equipped to continue their own Python learning. While this course will focus on data analysis using Python, participants will gain language-agnostic principles of programming, like automation with loops and encapsulation with functions, that will serve as best practices for their scientific computing.

Day 1

Introduction to Python

  • Overview of Python as a programming language
  • Understand why we use Python for scientific computing
  • Differentiate between tasks that Python is suitable for and not
  • Become familiar with Python syntax and formatting
  • Installing Python
  • Setting up your environment
  • Differentiate between a Python script and a Jupyter Notebook
  • Edit and run simple Python scripts using the command line
  • Use Jupyter Notebooks to create and run both Markdown and Python cells
  • How to read the documentation to get help

Variables and Assignment

  • Assign values to variables
  • Perform calculations with variables
  • Differentiate between different Python variable types
  • Use built-in functions to convert between Python variable types
  • Import a Python library and use the functions it contains.
  • Read tabular data from a file into a program.
  • Select individual values and subsections from data.
  • Perform operations on arrays of data
  • Use comments to annotate code
  • Plot simple graphs from data.

Looping and Repeating Actions

  • Understand what a for loop does
  • Understand what a while loop does and when to use it
  • Write for loops to repeat calculations
  • Trace changes to both the loop variable and other variables as a loop runs

Lists and Dictionaries

  • Create and index a list of values
  • Change the values of a list
  • Add values to an existing list
  • Reorder lists
  • Slice list elements
  • Create and manipulate nested lists
  • Store paired data in dictionaries
  • Iterate over dictionaries

Control Flow

  • Write conditional statements using if, else, and elif branches
  • Use Boolean operations to test conditions
  • Evaluate complex conditionals using and, not, and or

Day 2

Manipulating Text

  • Dealing with special characters in Python
  • Use Python’s in-built string manipulation tools

Reading Text from a File

  • Opening files for reading text
  • Opening files for writing text
  • Closing files
  • Understanding paths and folders


  • Explain what software libraries are and why programmers create and use them
  • Write programs that import and use libraries from Python’s standard library
  • Find and read the documentation for standard libraries both interactively and online

Working with Files in Pandas

  • Use Pandas to load tabular data sets
  • Get basic information about the Pandas DataFrame
  • Select individual values from a Pandas dataframe
  • Select entire or a subset of rows or columns from a dataframe
  • Create dataframes
  • Filter and sort dataframes
  • Handling missing values
  • Split-apply-combine methods with Pandas

File Contents and Manipulation

  • Delete files and folders
  • List folder contents
  • Run external programs
  • Add flexibility to programs by taking user input
  • Use command-line arguments in a program
  • Handle flags and files separately in a command-line program
  • Read data from standard input in a program so that it can be used in a pipeline

Day 3


  • Explain the purpose of functions
  • Differentiate between defining functions and calling functions
  • Define functions that take parameters
  • Return values from functions
  • Identify local and global variable scope
  • Test and debug functions
  • Set default values for function parameters
  • Discuss best practices on how to divide programs into small, single-purpose functions


  • Read a traceback, determine where an error took place, and identify the type of error that took place
  • Describe the situations in which syntax errors, indentation errors, name errors, index errors, and missing file errors occur

Defensive Programming

  • Understand what an assertion is
  • Add assertions to check whether or not a program’s state is correct
  • Add pre- and post-condition assertions to functions
  • Understand test-driven development and use it when creating functions


  • Debug code with errors using systematic processes
  • Discuss ways of making code less error-prone and more easily tested


  • Understand the reasoning behind the basic rules of coding style
  • Refactor programs to make them more readable
  • Use Python community coding standards (PEP-8)

Day 4

Plotting in Python

  • Choose appropriate plots for different purposes
  • Understand the Matplotlib library basic plotting formula
  • Understand Matplotlib object hierarchy
  • Create line plots, scatter plots, histograms, box plots, and bar charts using the Matplotlib library
  • Combine multiple plots
  • Use Pandas to do basic plotting on dataframes
  • Use Seaborn to create higher-level Python plots

Day 5

Regular Expressions

  • Identify instances when regular expressions will speed up workflow
  • Understand what a regular expression is and how it is used
  • Use the re library methods in Python
  • Search for patterns in strings using regular expression operators
  • Extract matched patterns in strings as groups

Graduate or postgraduate degree in Life Sciences and basic knowledge of Statistics. While some Python knowledge is useful, the course will cover basic Python skills necessary to input, clean, and explore data.

All participants must use their own computer (Windows, Macintosh, Linux), with access to a good internet connection.


Nichole Bennett instructor fro Transmitting Science

Nic Bennett
The University of Texas at Austin
United States of America

Jo Villa Instructor for Transmitting Science

Dr. Jo Villa
KOTAI Biotechnologies, Inc.

Testimonials for this course

Introduction to Python for Biology (online) – 3rd edition.

“Keep up the teaching Nichole, you did a great job! Your motivation and engagement is definitely a reason why people could stay focused on work enthusiastically over 5 days, 6h per week. Also Haris, great job in doing a flawless organisation!”

Introduction to Python for Biology (online) – 2nd edition.

“Thank you a lot for your course. Whole week was very intensive and I am really happy that I was a part of this great group of people. In the past, I have already visited some programming courses and I can try to compare it a little bit 🙂 I have to say that (I am not magnifying it :-)), that this is the best course for Python programming which I have already visited. It was great and thank you a lot once again for this great experience (experiences) and education.”

Dates & Schedule

Weekly online live sessions on Mondays:

12th, 19th, 26th of February

4th, 11th of March

13:00-16:30 (Madrid time zone)

Total course hours: 35

17.5 hours of online live lessons, plus 17.5 hours of pre-recorded classes and supervised assignments.

This course is equivalent to 1 ECTS (European Credit Transfer System) at the Life Science Zurich Graduate School.

The recognition of ECTS by other institutions depends on each university or school.



This course will be delivered live online

This course will be taught using a combination of live (synchronous) sessions on Zoom, pre-recorded lectures, and tasks to be completed in between live sessions on the Slack platform.

Live sessions will be recorded. Recordings will be made available to participants for a limited period of time. However, attendance to the live sessions is required.


Places are limited to 18 participants and will be occupied by strict registration order.

Participants who have completed the course will receive a certificate at the end.

Haris Saslis instructor for Transmitting Science

Dr. Haris Saslis
Transmitting Science

Fees & Discounts

  • Course Fee
  • Early bird (until December 31st, 2023):
  • 526 €
    (420.80 € for Ambassador Institutions)
  • Regular (after December 31st, 2023):
  • 610 €
    (488 € for Ambassador Institutions)
  • Prices include VAT.
    After registration you will receive confirmation of your acceptance on the course.
    Payment is not required during registration.

We offer discounts on the Course Fee.

Discounts are not cumulative. Participants receive the highest appropriate discount.

We also offer the possibility of paying in two instalments. Please contact us to request this.

Former participants of Transmitting Science courses receive a 5% discount on the Course Fee.

20% discount on the Course Fee is offered to members of certain organisations (Ambassador Institutions). If you wish to apply for this discount, please indicate it in the Registration form (proof will be asked later). If you would like your institution to become a Transmitting Science Ambassador Institution, please contact us at communication@transmittingscience.com

Unemployed scientists, as well as PhD students without any grant or scholarship to develop their PhD, can benefit from a 40% discount on the Course Fee. This applies only to participants based in Spain. If you wish to ask for this discount, please contact us. The discount may apply for a maximum of 2 places, which will be covered by strict registration order.