Skip to content

Instantly share code, notes, and snippets.

View TomHarrop's full-sized avatar

Tom Harrop TomHarrop

  • Melbourne, Australia
View GitHub Profile
#!/bin/bash
# SPDX-License-Identifier: MIT
## Copyright (C) 2009 Przemyslaw Pawelczyk <przemoc@gmail.com>
##
## This script is licensed under the terms of the MIT license.
## https://opensource.org/licenses/MIT
#
# Lockable script boilerplate
@dgrtwo
dgrtwo / barcode_splitter.py
Created September 15, 2012 00:21
Barcode splitter for fastq sequencing files that splits using Levenshtein distance.
"""
barcode_splitter.py
Barcode splitter for fastq sequencing files, that matches using Levenshtein
distance.
USAGE:
python barcode_splitter.py reads.fastq index_reads.fastq barcodes.txt
@tomhopper
tomhopper / plot_aligned_series.R
Last active June 25, 2023 17:36
Align multiple ggplot2 graphs with a common x axis and different y axes, each with different y-axis labels.
#' When plotting multiple data series that share a common x axis but different y axes,
#' we can just plot each graph separately. This suffers from the drawback that the shared axis will typically
#' not align across graphs due to different plot margins.
#' One easy solution is to reshape2::melt() the data and use ggplot2's facet_grid() mapping. However, there is
#' no way to label individual y axes.
#' facet_grid() and facet_wrap() were designed to plot small multiples, where both x- and y-axis ranges are
#' shared acros all plots in the facetting. While the facet_ calls allow us to use different scales with
#' the \code{scales = "free"} argument, they should not be used this way.
#' A more robust approach is to the grid package grid.draw(), rbind() and ggplotGrob() to create a grid of
#' individual plots where the plot axes are properly aligned within the grid.