A guide and advice on how to get started, or how to transition into Bioinformatics for people with biology or programming backgrounds.

Image for post
Image for post
https://hipwallpaper.com/view/UBCNM9

Part 1: Why do you want to become a Bioinformatician?

Let’s start with a question: “”. If you know the answer to this question it will be much easier for you to progress, and you will be able to set a clear goal based on it.

It is really important for you to understand why and what you actually want to do in the field of Bioinformatics, or any other field for that matter. Otherwise, it will be really hard to achieve any kind of progress. You will keep asking the age-old question: ”. Any…


Let’s take a look at how we can program Hamming Distance algorithm in three different ways

Image for post
Image for post

We can use Hamming Distance to measure/count nucleotide differences in DNA/RNA. This is very useful when we are searching for a particular pattern in a genome with up to n mutations. If we found a pattern in a genome, that is responsible for some biological function, we can try searching for the same pattern in other related genomes.

There is one problem though.

Even if the same pattern exists and is present in the other genome, there is a huge probability it will have a mutation. It is also called SNP (Single-nucleotide polymorphism). Even though this part of a genome…


DNA Engine project structure and class setup.

Image for post
Image for post

In this article will focus purely on laying out the structure for our ‘DNA Engine’ project. We will start adding elements and programming them in our next article.

So here is the structure we had up and running last time (Test UI and a Test Class):


Python dictionary, Rust HashMap and a DNA Reverse Complement function

Image for post
Image for post

In our last article we looked at how we can use Strings in Rust to store Genome data (DNA sequences). We will be using Strings extensively in our future code as they are very convenient when it comes to storing and manipulating DNA/RNA data.

In this article we are taking a look at one more, very important data structure we are going to need for more advanced algorithms. After we compare both Dictionaries (Python) and Hash Maps (Rust), we will implement a DNA reverse_complement function.

Segment 1: Dictionary and a Hash Map

Let’s create two new files, called `data_structures` in each folder (Python/Rust), and add an empty…


Strings, Functions, and Crates/Modules

Image for post
Image for post

In our “dna_toolkit” series we used Python Strings, Lists, and Dictionaries extensively. These data structures are very useful and make our life very easy. Let’s see what Rust has to offer.

We start with Strings. Rust has two types. One, called 'String slice', and the other one is more like a string in other languages, which is just 'String'. I am going to link to an amazing video about Strings in Rust in the 'Links' section below. Please make sure to watch it if you are completely new to this part of Rust.

In this article we will focus on…


In Part 1 we look at PyQt setup, Qt Designer, UI converter tool and write a test application.

Image for post
Image for post

Hello and welcome to “Bioinformatics Tools Programming in Python with Qt“ article/video series. In this series we will start developing a Qt framework based application using Python programming language.

This series is semi-connected to the “” series, also available on this website. Application…


Image for post
Image for post

In this series of articles, we will explore a young and very exciting programming language — Rust. We will see how Rust can help us to speed up some of our existing and future Python code. Many agree, that the key features of Python are its simplicity and readability. Let’s try and see if we can have the same or similar simplicity and readability from Rust and get that incredible execution speed of a compiled language.

While Python is an amazing, general purpose language and is super easy to write and understand, it might be too slow when we need…


Image for post
Image for post

In this article, we conclude our work on a minimal set of functions to work with DNA. We will add the last three functions that will help us to search for proteins in DNA sequences by generating reading frames. We will also apply our code to a real piece of genome that codes for Homo Sapiens Insult protein to see our code in action.

Functions we will add:

  • Reading frame generation.
  • Protein Search in a reading frame (sub-function for the next function).
  • Protein search in all reading frames.

Let’s take a look at how codons (DNA nucleotides triplets) form a…


Image for post
Image for post

Before we take a look at a Translation function, we need to create a structure to hold the DNA/RNA codon table. We will use a Python dictionary as it is just perfect for holding multiple Keys, that have the same value. Let’s add this to our structures.py file:


In this article we add GC Content Calculation functions to the DNA Toolkit.

Image for post
Image for post

In this article, we are going to implement two functions. The first function will count G and C nucleotides (GC Content) in a string, and the second function will use the first function but allow us to specify a ‘window’ size to calculate GC content in.

Here is a Wikipedia excerpt on GC Content:

rebelCoder

Programmer. Biotech. For life extension. Brain & Consciousness studies. Physics/Rocket/Satellite/Robotics/A.I. engineering for Space travel. Vegan. FOSS.

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