Introduction


The iolite Team is happy to announce a new Python for LA-ICP-MS course. The course will run over 8 weeks (with two week's break for Christmas/New Years) and will begin on November 22, 2021 and end January 30, 2022. The course will be presented as a series of self-paced modules; one per week. Each module will focus on one or two key concepts, such as importing and exporting data from iolite, and will comprise a collection of videos, references/links, example data, and an assignment. The course outline is included below.


Joe and Bence will deliver the content and guide participants through the course. Interaction will be mostly via the weekly pre-recorded videos and via the iolite forum, although we will adapt if needed. We hope that all participants will contribute and help one another throughout the course.


What level is the course aimed at?

This course will be of benefit to anyone that has wanted to learn how to code. The first two weeks will cover the most basic aspects of starting out in python. From Week 3 onwards, we'll start to focus on writing modules for iolite such as importers, QAQC modules, database interaction, etc. Even though most of the course is focussed on iolite, the knowledge gained can be applied to any python project (and the same basic concepts of variables, loops, conditional statements etc are transferrable to most common programming languages. Participants will also gain experience using python packages such as NumPy, SciPy and Pandas, which are commonly used in the scienfitic programming field. And knowledge of how to code in python will allow you to write your own code for any project you work on.

We will be assuming a least a basic understanding of LA-ICP-MS concepts, such as baseline corrections, interference corrections etc, along with a reasonably thorough understanding of iolite. Working through the iolite webinars should provide most of the familiarity with iolite required.

Participants that are familiar with python could skip the basics in Weeks 1 and 2 (Course Overview below) although please watch the introductory material to understand how the course is set up.


How challenging will the course be?

For absolute beginners, the course will be challenging, but entirely achievable. The hardest part will be the step up from basics to working with iolite's API (Week 3) but if you can get past this point, the rest of the course will be relatively smooth sailing. And of course Joe and Bence will be there to help all along the way. We recommend that if you get stuck, please hit up the forum before you get frustrated. It's likely that if you're having trouble, someone else is/was too.

We expect that the course workload will be around 3-4 hours per week. If you're an absolute beginner, it might take a little longer than this (perhaps an extra hour; see above about asking for help when stuck). The assignments each week are entirely optional, but like any course, the more effort you put in, the more you'll get out of the course.

For any week, participants can vary the assignment to their own needs, after consultation with the iolite team. For example, in Week 3, the assignment is to create an import module. Participants could choose to write an importer for their own custom data format, but please check with Joe or Bence first so that you don't start an unrealistic amount of work.


Will I be a "python master" at the end of the course?

Learning to code is like learning a foreign language: you have to start with the very basics like learning the alphabet before you can start to write sentences, before finally becoming fluent. The aim of this course is (to use this analogy) to teach you the alphabet and some basic phrases. From there, you should be able to start working independently, becoming fluent from ongoing practice and immersion.


Course Overview


Week 1: Introduction and Basics (1)

This week will introduce the course and start the process of learning the basics. We'll include how to install python, and some basic coding safety guidelines.

For python fundamentals, we'll be directing students to the free online textbook Python For Everybody. We decided that this would be better than reinventing the wheel, and the textbook is well regarded and used in several online courses. The text book will only be used in Weeks One and Two. The textbook contains exercises and practise, which Joe and Bence will help with if anyone has any questions.

The assignment will be a short fun exercise to consolidate and test what you've learnt.


Week 2: Basics (2)

This week will continue to focus on basic concepts, such as Lists, Dictionaries and Object-Oriented Programming fundamentals.

There will be no assignment for this week.


Week 3: Introduction to the iolite Python API, and Importing and Exporting Data from iolite.

This week will introduce the iolite Python API, as well as a short introduction to NumPy and Pandas. The first example of using the iolite python API will be to write an import module to get your data into iolite. Creating custom exporters will also be covered.

There will be two short assignments for this week: writing a basic importer and writing a basic export module.


Week 4: Quality Control/Quality Assurance (QAQC) Modules

This week will cover how to write a QAQC module for iolite so that you can check key statistics etc to ensure that your data are reliable.

This week's assignment will be to write a simple QAQC module


Break for Christmas/New Year

Week 5: Data Reduction Schemes (starting Monday 3rd January 2022)

This week will cover everything you need to know to write your own data reduction scheme, including baseline subtraction, interference corrections, and normalising to reference materials.

This week's assignment will be to write a simple Data Reduction Scheme


Week 6: Image Inspectors

Have you noticed the Histogram image inspector on the right hand side of iolite Imaging interface? This week we'll be covering how to write your own image inspector so that you can visualise your image data within context and in a meaningful way.

This week's assignment will be to write a basic Image Inspector


Week 7: iolite Database Interaction

This week will introduce how to interact with iolite's database feature, so that you can harness the power of interacting with your database.

This week's assignment will be to create a dashboard for your lab, based on a database of your results


Week 8: Creating a User Interface (UI) Plugin

iolite's UI plugins provide some of the most advanced features available in iolite. The HoverStats tools, or VizualAge are examples of UI plugins for iolite.

This week's assignment will be to craft a basic UI plugin for users to interact with.


Register


Sorry, registrations for this course have now closed.