3
Loading Events
Home Online Courses Advanced Python for Ecologists and Evolutionary Biologists (APYB01)
APYB01

Advanced Python for Ecologists and Evolutionary Biologists

Take your Python skills further. Learn OOP, testing, and optimisation for complex bioinformatics tasks.

  • Duration: 4 Days, 7 hours per day
  • Next Date: March 23-26, 2026
  • Format: Live Online Format
TIME ZONE

UK (GMT) local time - All sessions will be recorded and made available to ensure accessibility for attendees across different time zones.

£480Registration Fee

Register Now

Like what you see? Click and share!

5.0

from 200+ reviews

Course Description

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.

The workshop will use examples and exercises drawn from various aspects of bioinformatics work. After completing the workshop, students should be in a position to (1) take advantage of the advanced language features in their own programs and (2) use appropriate tools when developing software programs. They will also have a deeper understanding of how Python works internally, which will be invaluable when making sense of existing code and packages.

What You’ll Learn

During the course will cover the following:

  • Learning about advanced language features (recursion, complex data structures, comprehensions, exceptions) that are relevant to bioinformatics work.
  • Learning about development tools (benchmarking, profiling, unit testing) that can make it easier for us to write code that is both *fast* and *correct*.
  • Learning about different programming styles and concepts (object-oriented programming, functional programming) that are suitable for different kinds of problems.

Course Format

Interactive Learning Format

Each day features a well-balanced combination of lectures and hands-on practical exercises, with dedicated time for discussing participants’ own data, time permitting.

Global Accessibility

All live sessions are recorded and made available on the same day, ensuring accessibility for participants across different time zones.

Collaborative Discussions

Open discussion sessions provide an opportunity for participants to explore specific research questions and engage with instructors and peers.

Comprehensive Course Materials

All code, datasets, and presentation slides used during the course will be shared with participants by the instructor.

Personalized Data Engagement

Participants are encouraged to bring their own data for discussion and practical application during the course.

Post-Course Support

Participants will receive continued support via email for 30 days following the course, along with on-demand access to session recordings for the same period.

Who Should Attend / Intended Audiences

This course is intended for participants who already have some experience with Python and are ready to take on more ambitious programming tasks, particularly those involving large or complex datasets. The focus is on writing efficient, scalable code for real-world biological problems. A basic background in biology is assumed, as the examples and exercises reference concepts such as DNA, gene expression, and phylogenetic trees. While the course is grounded in programming, we will occasionally touch on descriptive statistics (e.g., means and standard deviations) in the context of performance measurement.

Please note that this course is not suitable for complete beginners to Python. We assume familiarity with fundamental Python syntax and programming structures—typically covered in the Introduction to Python for Biologists course. If you’re unsure whether the course is the right fit for your current skill level, feel free to contact martin@pythonforbiologists.com for guidance.

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.

A working webcam is recommended to support interactive elements of the course. We encourage participants to keep their cameras on during live Zoom sessions to foster a more engaging and collaborative environment.

While not essential, using a large monitor—or ideally a dual-monitor setup—can significantly enhance your learning experience by allowing you to view course materials and work in R simultaneously.

Participants should be able to install additional software on their computers during the course (please ensure you have administration rights to your computer).

Download Zoom Download Python

Dr. Martin Jones

Dr. Martin Jones

Martin is a freelance trainer specialising in programming and Linux skills tailored for researchers in biological sciences. With a background in biology and a PhD in large-scale phylogenetics, Martin combines deep scientific expertise with practical computational training to empower researchers to leverage coding and open-source tools in their work.

His teaching primarily focuses on Python programming and Linux, with an emphasis on applications relevant to biological data analysis. Since launching Python for Biologists in 2015, Martin has dedicated himself full-time to teaching and writing, helping bridge the gap between biology and computational skills.

 

Education & Career
• PhD in Large-Scale Phylogenetics, 2007
• Former Lecturer in Bioinformatics, University of Edinburgh
• Founder of Python for Biologists (2015–present)
• Over a decade of experience training biologists in programming and Linux

 

Training & Skills
Martin specialises in:
• Python programming for biological research
• Linux command line and scripting
• Bioinformatics workflows and reproducible research practices

 

Professional Focus
Martin’s work focuses on equipping life scientists with the computational tools necessary to analyse complex biological datasets. He advocates for practical, hands-on training that helps researchers automate tasks, perform reproducible analyses, and develop programming confidence.

 

Teaching & Writing
• Full-time educator and author on programming for biologists
• Creator of tutorials, workshops, and online courses in Python and Linux
• Active in the bioinformatics and computational biology training community

 

Links
• Python for Biologists

Session 1 – 03:00:00 – Recursion and Trees
This session introduces two related topics: hierarchical data structures (trees) and recursive functions, which are well-suited for operating on such structures. The session begins with simple biological examples to illustrate recursion before moving on to key tree-based algorithms involving parent-child relationships and common ancestors. A practical exercise focuses on identifying the last common ancestor of a group of nodes, reinforcing the application of recursion in tree traversal.

Key Topics:
Hierarchical data, nested lists, recursive functions, tree structures, recursion vs. iteration.

Session 2 – 03:00:00 – Complex Data Structures
This session reviews Python’s core data types and introduces additional structures such as tuples and sets, highlighting their appropriate use cases. It then explores how basic types can be combined to create more complex, problem-specific data structures. Participants will also be introduced to specialized types from Python’s standard library and discuss the performance implications of different structures using basic benchmarking. The practical component involves parsing a file into a nested data structure to support efficient querying.

Key Topics:
Tuples, sets, nested structures, defaultdict, Counter, big-O notation, performance benchmarking.

Session 3 – 03:00:00 – L Classes and Objects

This session introduces the fundamentals of object-oriented programming in Python, explaining how commonly used data types are implemented as classes. Participants will learn how to define custom classes and shift from an imperative to an object-oriented approach. The session also explores when object-oriented design is appropriate. In the practical component, participants will create simple classes to solve biological problems and gain experience structuring code into reusable components.

Key Topics:
Classes, instances, methods vs. functions, self, constructors, magic methods, library vs. client code.

Session 4 – 03:00:00 – Object-Oriented Programming

Building on the previous session, this session covers advanced object-oriented programming concepts common across many languages. Key ideas such as inheritance, method overriding, and composition are introduced with a focus on their practical use and implementation in Python. Participants will also explore design considerations when structuring object-oriented code. The practical component involves developing a simulation using multiple interacting classes.

Key Topics:
Inheritance, class hierarchies, method overriding, superclasses and subclasses, polymorphism, composition, multiple inheritance.

Session 5 – 03:00:00 – Functional Programming in Python

This session introduces key concepts of functional programming and contrasts them with object-oriented approaches, focusing on how each style supports different design goals. Topics include state and mutability, side effects, and first-class functions. Participants will explore Python’s built-in functional tools and learn how to create their own. The session concludes with a brief look at how functional techniques can simplify parallel programming. The practical component includes hands-on use of functional tools and custom function development.

Key Topics:
State and mutability, side effects, first-class functions, higher-order functions, declarative programming, lazy evaluation, parallelism.

Session 6 – 03:00:00 – Exception Handling

This session covers the principles of handling runtime errors in Python. It begins by distinguishing syntax errors from exceptions and introduces the use of try, except, else, and finally blocks. Participants will explore how exceptions can propagate through a program and how this affects design decisions. The session also includes guidance on using built-in exception types and defining custom exceptions for specific error cases. The practical involves updating code to incorporate structured error handling.

Key Topics:
Exception classes, try/except syntax, exception propagation, context managers, defining and raising exceptions.

Session 7- 03:00:00 – Performance Optimization

This session introduces tools for measuring and improving the performance of Python code. Participants will learn to benchmark runtime and memory usage, profile code to identify bottlenecks, and apply targeted optimizations. Different tools will be compared based on their strengths in various scenarios. The practical component involves analyzing real code, measuring performance, and making improvements.

Key Topics:
Benchmarking, function and line profiling, timing, profiler overhead, performance tuning strategies.

Session 8- 03:00:00 – Unit Testing

This session introduces the purpose and benefits of testing in software development. Participants will use Python’s built-in testing tools to explore various testing scenarios, then implement the same tests using the pytest framework to compare usability and readability. The session also covers specialized tests and how code structure can affect testability. In the practical, participants will build and run test suites for existing code.

Key Topics:
Test design, built-in testing tools, pytest framework, writing test cases, test suites, testing and program design.

Testimonials

PRStats offers a great lineup of courses on statistical and analytical methods that are super relevant for ecologists and biologists. My lab and I have taken several of their courses—like Bayesian mixing models, time series analysis, and machine/deep learning—and we've found them very informative and directly useful for our work. I often recommend PRStats to my students and colleagues as a great way to brush up on or learn new R-based statistical skills.

Rolando O. Santos

PhD Assistant Professor, Florida International University

Courses attended

SIMM05, IMDL03, ITSA02, GEEE01 and MOVE07

Testimonials

PRStats offers a great lineup of courses on statistical and analytical methods that are super relevant for ecologists and biologists. My lab and I have taken several of their courses—like Bayesian mixing models, time series analysis, and machine/deep learning—and we've found them very informative and directly useful for our work. I often recommend PRStats to my students and colleagues as a great way to brush up on or learn new R-based statistical skills.

Rolando O. Santos

PhD Assistant Professor, Florida International University

Courses attended

SIMM05, IMDL03, ITSA02, GEEE01 and MOVE07

Testimonials

PRStats offers a great lineup of courses on statistical and analytical methods that are super relevant for ecologists and biologists. My lab and I have taken several of their courses—like Bayesian mixing models, time series analysis, and machine/deep learning—and we've found them very informative and directly useful for our work. I often recommend PRStats to my students and colleagues as a great way to brush up on or learn new R-based statistical skills.

Rolando O. Santos

PhD Assistant Professor, Florida International University

Courses attended

SIMM05, IMDL03, ITSA02, GEEE01 and MOVE07

Frequently asked questions

Everything you need to know about the product and billing.

When will I receive instructions on how to join?

You’ll receive an email on the Friday before the course begins, with full instructions on how to join via Zoom. Please ensure you have Zoom installed in advance.

Do I need administrator rights on my computer?

Yes — administrator access is recommended, as you may need to install software during the course. If you don’t have admin rights, please contact us before the course begins and we’ll provide a list of software to install manually.

I’m attending the course live — will I also get access to the session recordings?

Yes. All participants will receive access to the recordings for 30 days after the course ends.

I can’t attend every live session — can I join some sessions live and catch up on others later?

Absolutely. You’re welcome to join the live sessions you can and use the recordings for those you miss. We do encourage attending live if possible, as it gives you the chance to ask questions and interact with the instructor. You’re also welcome to send questions by email after the sessions.

I’m in a different time zone and plan to follow the course via recordings. When will these be available?

We aim to upload recordings on the same day, but occasionally they may be available the following day.

I can’t attend live — how can I ask questions?

You can email the instructor with any questions. For more complex topics, we’re happy to arrange a short Zoom call at a time that works for both of you.

Will I receive a certificate?

Yes. All participants receive a digital certificate of attendance, which includes the course title, number of hours, course dates, and the instructor’s name.

When will I receive instructions on how to join?

You’ll receive an email on the Friday before the course begins, with full instructions on how to join via Zoom. Please ensure you have Zoom installed in advance.

Do I need administrator rights on my computer?

Yes — administrator access is recommended, as you may need to install software during the course. If you don’t have admin rights, please contact us before the course begins and we’ll provide a list of software to install manually.

I’m attending the course live — will I also get access to the session recordings?

Yes. All participants will receive access to the recordings for 30 days after the course ends.

I can’t attend every live session — can I join some sessions live and catch up on others later?

Absolutely. You’re welcome to join the live sessions you can and use the recordings for those you miss. We do encourage attending live if possible, as it gives you the chance to ask questions and interact with the instructor. You’re also welcome to send questions by email after the sessions.

I’m in a different time zone and plan to follow the course via recordings. When will these be available?

We aim to upload recordings on the same day, but occasionally they may be available the following day.

I can’t attend live — how can I ask questions?

You can email the instructor with any questions. For more complex topics, we’re happy to arrange a short Zoom call at a time that works for both of you.

Will I receive a certificate?

Yes. All participants receive a digital certificate of attendance, which includes the course title, number of hours, course dates, and the instructor’s name.

Still have questions?

Can’t find the answer you’re looking for? Please chat to our friendly team.

×

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.
APYB01 ONLINE
APYB01 ONLINE
£ 480.00
20 available
£480.00
23rd March 2026 - 26th March 2026
Delivered remotely (United Kingdom), Western European Time Zone, United Kingdom
A Fox