Estimating Breathing Rate from Respiratory Sinus Arrhythmia
As a Biomedical Engineer, I’ve always been fascinated by working with physiological signals. It amazes much how much stuff we can measure on the human body and what we can learn from it. Lately, I’ve been missing working with such data. To scratch that itch, I have been busy with a side project focused on estimating the respiratory rate from the heart rate variability signal (measured from single-lead ECG), as shown in the work by Schäfer and Kratky (2008).
The AT-AT MS5 Robot
For this year’s May the 4th, I wanted to create something special. This is what I came up with: an All Terrain Armored Transport using the MINDSTORMS 51515 set, or AT-AT MS5 in short. There was a motorized AT-AT build in the Dark Side Developer Kit (9754). However, since it was released on 2000, I feel it was in urgent need of an update. What better than using the MINDSTORMS Robot Inventor set 51515. The robot was programmed using Python.
New Paper - Explainable Machine Learning in Predictions of Breast Cancer Survival
One of the projects that I have enjoyed the most as part of my job at IKNL has been the application of explainable machine learning to survival predictions. Well, today I woke up with the happy news that our latest study in this field has been accepted for publication in Scientific Reports!
The abstract is as follows:
The AAT MS5 Robot
In this project, I built an Armored Assault Tank using the MINDSTORMS 51515 set, or AAT MS5 in short. It is inspired by the Battle Droid on STAP of the Droid Developer Kit and the AAT of the Dark Side Developer Kit. Moreover, it is powered by the MINDSTORMS Robot Inventor set 51515 and programmed using Python.
DeepSurvK 0.2.0 Release
Today, the version 0.2.0 of DeepSurvK is released!
Leveraging Cookiecutter to Publish Python Packages
I started working on my first Python package (which is far from ready, but I will definitely post about it when I have a version worth sharing). When trying to find resources of how to publish it to make it available for the community, I felt a bit overwhelmed. The setup for it to work properly involves a lot of individual files. These need to be in the right structure with the right content. As you can imagine, this is very prone to errors.
Automatically Generating Tag Posts for GitHub Pages using Jekyll
Recently, I migrated my personal website from Wordpress to GitHub Pages using Jekyll. After some trial and error, I managed to have everything up and running. However, Jekyll tagging (i.e., generating the pages that contain a collection of posts filtered by a tag) requires additional plugins which are not supported by GitHub Pages. Long Qian wrote a fantastic tutorial on how to implement this functionality with a Python script. Unfortunately, this still requires running the script, adding the files to the staging area, committing them, and pushing them to GitHub. That’s a lot of steps for every time that I want to add a new tag. Not only is it prone to errors, but let’s be honest: ain’t nobody got time for that.
Creating a Shareable Bokeh Dashboard with Binder
Recently, I finished a personal project in which I analyzed the results of the “Who is your favorite Pokemon” survey. After that, I wanted to generate a more interactive visualization in which the user could choose a specific Pokemon and see its results. After pondering different options, I decided to do so in Bokeh because of a few reasons. First of all, you can generate your visualizations using Python only. Furthermore, it is very easy to incorporate Bokeh in Jupyter notebooks, which is great to generate a first version of the prototype. Lastly, a few colleagues of mine have used it for their projects at work and have been very happy with it.
ECG Noise Removal Using Segmented-beat Modulation
For some strange reason, I stumbled with a paper that I had downloaded long time ago. It explains a simple algorithm for removing artifacts in ECG signal. Since I have a short time-off after the submission of my PhD thesis (yey!), I thought it would be cool to actually code the algorithm and give it a go.
ECG IIR Notch Filtering Using Transient Suppression
Recently, I was going through my undergraduate lecture notes. I stumbled upon an exercise which I found interesting. The task consisted in implementing the algorithm proposed by Pei and Tseng, which uses vector projection to minimize the problem of transient values when applying an IIR notch filter to an ECG signal.