Skip to content

Instantly share code, notes, and snippets.


Matt Ralston MatthewRalston

View GitHub Profile
MatthewRalston /
Created Jun 22, 2019
Fasta + Bam file validation with S3 support
import os
import sys
import gzip
import io
import tempfile
from Bio import SeqIO, bgzf
import pysam
import boto3
# Logger
MatthewRalston /
Last active Jun 22, 2019
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import io
import os
import sys
from shutil import rmtree
from setuptools import find_packages, setup, Command
View webdocs.el
;; Add this to your favorite html/jekyll configuration elisp file
;; Replace $IMG with the relative path to your websites image folder (e.g. img/)
(defun add-popover (link imagepath caption linktext)
"Generate an html popover.
-- Downloads an image file to your website/blog (etc.) image folder.
-- Generate a Bootstrap HTML popover link at the cursor position with caption.
(interactive "MImage link:\nFImagepath:\nMCaption:\nMLink text:\n")
(url-copy-file link imagepath)
MatthewRalston /
Last active Nov 4, 2018
difflib.SequenceMatcher.get_matching_blocks() doesn't return all results
# get_matching_blocks returns non-overlapping matches:
# the incomplete result is considered a feature
def get_matching_blocks(s1, s2, overlap=True):
if type(s1) is not str:
throw TypeError("get_matching_blocks() expects a string as its first positional argument")
if type(s2) is not str:
throw TypeError("get_matching_blocks() expects a string as its second positional argument")
if type(overlap) is not bool:
throw TypeError("get_matching_blocks() expects a bool as the named argument 'overlap'")
MatthewRalston / Makefile
Created Apr 18, 2018
Python project Makefiles
View Makefile
.PHONY: test docs
pip install -r reuqirements.txt;
docs: docs/Makefile
cd docs; $(MAKE) docs
test: test/Makefile
cd test; $(MAKE) test
from awscli.clidriver import create_clidriver
def s3sync(source, destination, *options):
old_env = dict(os.environ)
env = os.environ.copy()
env["LC_CTYPE"] = u"en_US.UTF"
exit_code = create_clidriver().main(["s3", "sync", source, destination] + list(options))
MatthewRalston /
Created Feb 14, 2018
ROFLcopter ASCII text art


If you hear SOI SOI SOI, you better RUN RUN RUN ’cause the ROFLCOPTER ASCII army is coming for you!


 L    __/   [] \
View reload.js
delete require.cache[require.resolve('./dep')];
View loadLogger.js
const log4js = require('log4js');
// Accessory configurations for log4js
// Works with log4js >= 2.3.3
// Usage:
//var logger = require('./app/loadLogger').logger; // Default is stderr only
// Alternate (app : file + stderr)
// const loadLog = require('./app/loadLogger');
// var logger = loadLog.log4js.getLogger('app'); // For an express app: stderr + file : logs/application.log)
View schrute.txt
.+sso+/:oydyo/:-:+shdys/ `-:. `-/+o+/`
You can’t perform that action at this time.