Introduction to variational autoencoders and their application Bioinformatics/Metagenomics analysis

Autoencoders, in general, intend to learn a lower-dimensional representation of data. One of the main advantages of autoencoders is that they are capable of learning much complex lower dimensions whereas PCA-like decompositions are limited by their linear nature. Feel free to have a look at my article about auto-encoders.

Photo by Hitesh Choudhary on Unsplash

As usual, I will be talking about an application in bioinformatics.

Variational Autoencoders

In contrast to conventional auto-encoders (AEs), variational auto-encoders (VAEs) belong to the family of generative models. This is because the VAEs learn a latent distribution for the input data. So they are capable of reconstructing new data points given new…

An in-depth exploration of sequence vectorization and applications

In one of my previous articles, I mentioned how and what is vectorization. In gist, the process enables us to convert variable-length nucleotide sequences into fixed-length numeric vectors.

Photo by Elena Mozhvilo on Unsplash

For all the programming lovers, the link is below;

However, in this article, I will rather focus on utility and research importance. Hence, I will stick to my tool Seq2Vec for the rest of the article. You can follow the readme and install from the following source;

A Simulated Real-world Scenario

Super-fast and parallel file writing with memory mapped IO

Photo by Possessed Photography on Unsplash

What is a Memory Mapped File?

A memory mapped file is a segment in the virtual memory. Virtual memory is an abstraction on physical memory which is provided to the process by the operating system (OS). Should the OS run out of memory or see a process idling for long, such virtual memory segments will be “paged” on to the physical disk location (the “swap”). So “swap” is essentially the portion of virtual memory on disk.

More precisely, a memory mapped file is a mirror of a portion (or entire) file on virtual memory managed completely by the operating system.

In other words, whenever a file…

A tool to generate annotated images for computer vision

In computer vision, object detection is an interesting field with numerous application. Like any other supervised machine learning task, we need annotation or labels for this very task as well. However, annotation of images can be a tedious time-consuming task for many of us (lazy ones?). I felt it quite strongly when I was writing my previous article, linked below.

So the big question comes;

How can we generate annotated images, automatically, with desired backgrounds?

Screenshot by Author

Well, the answer is simple, use existing objects and overlay them on some backgrounds! There are several blogs on the internet that would say mostly…

Object detection with AIoT: An edge computing example

A few weeks back when I was window shopping at AliExpress I came across the wonderful Maixduino device. It was claimed to carry RISC V architecture along with a KPU (KPU is a general-purpose neural network processor). Contrasting specs of the board were as follows;

  • CPU: RISC-V Dual Core 64bit, with FPU
  • Image Recognition: QVGA@60fps/VGA@30fps
  • Power consumption of chip < 300mW
MaixDuino (Image from Sipeed)

Truth be told, the unit is old and has only been taking attention lately. Well, given my interest in edge computing I thought of presenting a complete end to end guide for an object detection example. This example is…

Building an MQTT enabled door sensor using ESP32 and PlatformIO

This article is motivated by my previous article on ESPHome. Previously, we built a door sensor using ESPHome library. However, using an off-the-shelf platform grants us with little to no flexibility when it comes to micro-optimizations. Having said that, I noted the best implementation consumed over 1mA and took nearly 2 seconds to respond (Even after using MQTT, ESPHome API is known to be slower with HomeAssistant).

Photo by chris panas on Unsplash

Key Points to Consider

There are several considerations that we need to think of when it comes to a critical component like a door sensor.

Create simple home automation artefacts using ESP modules and HomeAssistant

Home automation can be expensive and complex. However, with the arrival of IoT platforms from vendors such as Tuya, Phillips, etc have made home automation a little simpler. However, the cost still remains a little higher and the customisations are far limited. Last but not least, none of the mentioned services comes for free. You are likely being charged with your privacy.

IoT platforms provide free of charge Alexa/Google Assistant integrations. Which means you’re either charged for several years at purchase or your data is more profitable for vendors.

Both HomeAssistant and ESPHome are Free and Open-source

Enough with motivation…

Build your own Smart TV with the help of a Raspberry Pi Zero device

Are you bored with your ordinary TV? Do you want to expand your media experience to a whole new level? Yet you are limited with the budget? Like me? Well, this would be the perfect Smart TV solution!

Disclaimer: This tutorial might not be complete and can contain differences. Google Cloud Console is continuously changing. However, the underlying configuration should be quite the same.

Screenshot by Author

For this article, we will be installing OSMC as the media operating system. Let’s get started!

Download the Disk Image

Go to the OSMC website and click on the Download icon. Then click on the Rasberry Pi button. You’ll be…

Fetch data from Arduino (Uno) over USB serial communication and plot them using Matplotlib

Arduinos are quite famous for their versatility. However, when it comes to analytical work Python has the lead by a long shot. Therefore, it would be a heavenly match to have data from Arduino in your python environment.

Photo by Harrison Broadbent on Unsplash

There are many perks of fetching your data into your computer from a low resource device.

  • Collecting environmental data continuously to a long term storage media
  • Obtaining live plots for time series regression analysis
  • Integration with dashboards for data representation and control
  • Sending over control signals to Arduino (eg: Robotic arm, robotic tools such as cutting tools)

Getting Started

In order to enable serial…

Tutorial on getting started with programming an ESP32 development board using MicroPython

Python is one of the most popular languages of the decade. It is very popular among researchers and machine learning enthusiasts. It has developed to the point that we can now program microcontrollers using python language. MicroPython in fact intends to bridge the knowledge gap between hardware programmers and software programmers.

Image from Wiki (

In this article, we will discuss how we can setup MicroPython in an ESP32 development board.

Flashing the ESP32

Every time, we program some microcontroller we flash the firmware together with the program code. This is typical as most of the programs written for microcontrollers are compiled rather than interpreted. However, in…

Anuradha Wickramarachchi

Blogger | Traveler | Programmer PhD Scholar

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store