GiraFFe Browse - A simple way to explore your data

Following on from the success of my undergraduate project, "Building an online resource for Candida tropicalis", I have modified the code base to accept more generic data sets to make it more useful to more researchers. As sequencing becomes cheaper and more widely available thanks to nanopore sequences, and annotation becomes simpler thanks to tools like Prokka, there is an ever increasing amount of data and demand for that data [Read More]

How to delete multiple redis keys with backslashes in

I came across this issue the other day, looking at our redis logs some keys had been defined with backslashes in. This Isn't advisable, but it had happened, and we needed to get rid of them. If you manually use redis-cli DEL you can delete each key, but if you have a few thousand that isn't super helpful. All of the docs and posts online refer to the standard way [Read More]

Search For - A bash function that harnesses the power of fzf and rg to let you edit as quickly as possible

Following on from my articles on reflection time and combining rg & fzf I wanted to expand on one of my more powerful use cases for these great tools that can have the biggest impact on reflection time. What I did was make a nice little bash function that uses, rg to search for strings in text files, fzf to display, search and filter the results, and then plumb the [Read More]

Reflection time: What is it, how do you measure it, and how can it be improved?

As I wait for a docker container to restart for the 1001st time, an artifact of poor design decisions made on an old project I have been lumbered with, I can't help but feel the need to try to define in more clear terms what I have been referring to as "reflection time". Reflection time is simply the time it takes for a developer to go from a location in [Read More]

[Project log #4] Finally a chance to build something!

After looking at the data I was given, I have been using my limited biology knowledge to come up with theories as to how the data was created, what it means, and how it would best be used. This process has taken about three weeks, and in that time I spent good chunk of it lamenting over the blast2go outputs that I had been given. I thought they were the [Read More]

Vim text objects, extend Vim's natural language!

One of the magical things about Vim is that it uses nouns and verbs to construct an editing language. For example d (delete) is a verb and w (word) is a noun. By combining a noun & verb we make an edit. Learning this language is key to getting the most out of your editing, I recommend this great talk by Chris Toomey if this concept is new to you. [Read More]

[Project Log #3] Pipeline for annotating DNA contigs

This is the set of steps I have followed in an attempt to annotate the data I have been given, and put it into a database. At the moment is is almost entirely a manual task, but if the scope for my project allows I would like to make this into a fully automated process that is compatible with the web front end that I produce. Raw contigs First set [Read More]

[Project Log #2] A better understanding of the task at hand

Today I was able to meet with two of the researchers who are studying the yeasts that I will be working with. It was great to finally meet them, although they said a lot of long scary words, but were very reassuring! Their research has been looking at three species of yeast, Candida Tropicalis, Candida Boidinii, and Candida Shehatae. Candida Tropicalis is very good at metabolising Arabinose & Xylose, however [Read More]

Github style diff in terminal with icdiff

Improved Colour Diff or icdiff gives you nice github style diffs in the terminal. It does work well, however getting it to work with git smoothly was a little fiddly so I thought I would share. Just add this to your ~/.gitconfig. [alias] showtool = "!f() { git difftool $1^ $1; }; f" added = difftool --cached [diff] tool = icdiff [difftool] prompt = false [difftool "icdiff"] cmd = /usr/bin/icdiff --line-numbers $LOCAL $REMOTE [pager] difftool [Read More]

Solving reddits missing features with simple PRAW scripts

I love reddit, and let's be honest I'm probably a bit of an addict. When you come to use the site a lot, you will end up noticing that it is missing a few key features. Thankfully with a little bit of Python and the amazing PRAW (Python Reddit API Wrapper) library, you can solve these problems really quickly. Search saved links Have you ever wanted to search for that [Read More]