PyUnfold: A Python package for iterative unfolding

Recently Zigfried Hampel-Arias and I have been working on an open-source Python package for implementing iterative unfolding. The package, PyUnfold, was recently published in the Journal of Open Source Software (JOSS) and is meant to bring iterative unfolding to the Python ecosystem while providing users a straightforward yet extensible API. Some relevant links: GitHub repo: https://github.com/jrbourbeau/pyunfold Documentation: https://jrbourbeau.github.io/pyunfold JOSS publication: http://joss.theoj.org/papers/10.21105/joss.00741 What is unfolding? In an ideal world, experimentalists would have access to the perfect detector: an apparatus that makes no error in measuring a desired quantity....

July 15, 2018

Supervised machine learning in Python with scikit-learn @ MadPy

I recently gave a talk to the Madison Python meetup (MadPy) group on supervised machine learning in Python using the popular scikit-learn library. My aim for this talk was to provide an introduction to several supervised machine learning concepts, each paired with a code example that uses scikit-learn to implementing these concepts. Topics covered in the talk include: Classical programming vs. machine learning Supervised machine learning Data representation in scikit-learn scikit-learn estimator API Example algorithm: decision tree classifier Model validation The slides for this talk can be found at https://jrbourbeau....

March 8, 2018

Creating DAGs with PyCondor

Often the need arises to perform a series of tasks that are related to one another. For example, you might have a workflow that’s something like “do task A, then do task B, and then do task C”. These dependencies, task A must be done before task B and task B must be done before task C, can be encapsulated in a directed acyclic graph (DAG). There are many libraries and frameworks for constructing and executing DAGs....

January 10, 2018

Reproducible Research with Python

I recently gave a talk on reproducible research using Python to a group of fellow graduate students at the Wisconsin IceCube Particle Astrophysics Center. My aim with this talk was to provide an introduction to some software development best practices for scientist. Topics covered in the talk include: What a Python package is. How to make Python packages installable with pip. Creating virtual Python environments....

December 5, 2017

HTCondor made easy with PyCondor

HTCondor is a an open-source framework for high throughput computing developed at the University of Wisconsin—Madison. It’s an incredibly useful and versatile tool that I rely on heavily in my everyday work. However, I’ve found when the number of jobs becomes large (especially when there are interrelated jobs), actually making the job submission files can become a pain. This prompted me to make PyCondor (Python HTCondor), a tool that helps build and submit HTCondor jobs in a straight-forward manner with minimal hassle....

February 6, 2017