Category Archives: Uncategorized

ShinyFlan: a replacement for FALCOR (Fluctuation AnaLysis CalculatOR)

FALCOR was for a long time the easiest way to analyse fluctuation test data. Some time ago, the site hosting the FALCOR Java applet went offline.

Enter ShinyFlan, an alternative to FALCOR that uses the R package flan via a Shiny web interface. ShinyFlan was created by Adrian Mazoyer.

Associated with our Journal of Visualized Experiments paper on fluctuation tests, The University of Manchester currently hosts ShinyFlan here:

How to make ggplot look like base R graphics

After being steadfastly against anything in R beyond base, I’ve recently been indoctrinated into the tidyverse way of doing things. In particular, ggplot and extensions has made making complicated plots a lot easier than using base graphics (especially ggpubr’s ggarrange() function for labelling panels, which I used to do with mtext()). However, I’ve never been a huge fan of the ggplot aesthetic, being trained from a young age to eschew “chart junk“, like grid lines and unnecessary backgrounds. It’s fairly easy to do, with a few modifications of ggplot’s theme_bw(). Include this code before your ggplot commands:

Continue reading


I visited the one and only microbe museum-, Micropia in Amsterdam in August, following the ESEB meeting in Groningen.  Highly recommend for anyone with an interest in microbes or science in general.  Very interactive.

BibTeX database from PDFs via DOI

This somewhat-ridiculous BASH one-liner will create a BibTeX database file (.bib) from a bunch of PDFs via the Crossref API for DOIs, providing the PDF has a DOI on the first page.  As DOI was introduced in 2000, this will probably not work on vintage PDFs.

 for pdfs in *.pdf; do pdftotext -f 1 -l 1 "$pdfs" - |tr -d "\n" | grep -oE "(doi|DOI):\s?[A-Za-z0-9./-\(\)-]+[0-9]" | tr '[:upper:]' '[:lower:]' | sed -r 's;doi:\s?;;g' | sed -r 's;$;/transform/application/x-bibtex;g' | xargs curl -fsS 2>/dev/null | sed -e '$a\'; done > allpdf.bib

Experimental evolution with the Singer ROTOR HDA

Setting up a large selection experiment on antibiotic fitness landscapes. I’ve decided to use the Singer ROTOR HDA for consistency and repeatability. The Singer ROTOR HDA uses a pre-sterilized pad system (called RePads) to transfer bacteria between solid or liquid medium. RePads are available in 96, 384, 1536 or 6144 formats. Read more about the Singer ROTOR HDA.