About Me

I’m a computer scientist, mathematician and software engineer. My research has previously focused on high-performance computational software for data processing, machine learning, statistical parameter inference, and stochastic simulation in scientific applications.

Currently, I am part of the NVIDIA Math Libraries group working on core mathematical libraries for the new NVIDIA Grace ARMv9 CPU.


Featured Open Source Projects

Mappel - Maximum A Posteriori Point Emitter Localization

Mappel estimation objective Mappel is an object-oriented image processing library for super-resolution localization of Gaussian point emitters in fluorescence microscopy applications.

Point emitter localization is an essential image-processing sub-problem in many single-molecule microscopy applications. Mappel can fit millions of emitter images in parallel in just a few seconds, making it orders of magnitude faster than other maximum-likelihood-based point estimation software. Mappel achieves optimal estimation accuracy using robust, state-of-the art non-linear bounded optimization algorithms for maximum likelihood and maximum a posteriori estimation, as well as Markov-chain Monte Carlo posterior sampling for Bayesian inference. These parameter estimation techniques allow Mappel to estimate confidence regions using expected Fisher information, observed Fisher information, likelihood-ratio-based profile likelihood intervals, or with Bayesian credible interval methods.

Mappel is cross-platform (Linux/Win64) with object oriented interfaces for C++, Python, and Matlab, and GUI interfaces for interactive workflows and debugging.

Spdata GUI Mappel maximizer inspector GUI

RPT - Robust Particle Tracker

RPT trajectories RPT is a Matlab toolbox that provides a complete data processing toolchain for single particle tracking applications in fluorescence microscopy. RPT is cross-platform (Linux/Win64) and consists of several components which are each implemented as parallel C++ libraries using OpenMP. RPT is object-oriented, and allows for programmatic and GUI based, and batch-processing workflows.

Top-level RPT component software projects:

Publications using RPT software:

  • Samantha L. Schwartz, Cedric Cleyrat, Mark J. Olah, Peter K. Relich, Genevieve K. Phillips, William S. Hlavacek, Keith A. Lidke, Bridget S. Wilson, and Diane S. Lidke. Differential mast cell outcomes are sensitive to FcεRI-Syk binding kinetics. Molecular Biology of the Cell, 28(23). (2017) MBoC PubMed

Spdata GUI RPT GUI RPT Trajectory Segment Analysis tools

MexIFace - Cross-platform C++ / Malab object-oriented MEX interface library and CMake build system

MexIFace structure The MexIFace interface library provides a flexible means of wrapping a complex C++ library into a Matlab class via Matlab’s MEX function extension method. Ordinary Matlab C/C++ plugins are called MEX libraries and can only provide a simple function interface.

Interfaces using the MexIFace base class emulate a full object-based interface. These hybrid C++/Matlab objects have Matlab methods and properties that affect state and perform computations in C++.

MexIFace is primarily designed to support high-performance numerical code, and uses the Armadillo matrix libraries to provide a computationally rich C++ object model while also allowing direct access to data stored in matlab array objects. MexIFace supports OpenMP parallelization and linking of 64-bit integer versions of BLAS and LAPACK libraries as required by Matlab.

Tumble

Triangular Unstructured Mesh with Bezier elements in a Lagrangian Environment Tumble

Tumble is a mesh geometry framework for representing fully Lagrangian finite element simulations of Navier-Stokes fluid flow. In a Lagrangian mesh, the elements move with the fluid they represent. This causes elements to deform over time. We handle this by using curved elements with Bezier edges. The TUMBLE package is responsible for moving the mesh elements, and running a sequence of cleaning phases to maintain mesh quality. This includes flipping and re-interpolating elements to maintain the Delaunay property.

Recent posts