Skip to content

Instantly share code, notes, and snippets.

View jamescasbon's full-sized avatar

James Casbon jamescasbon

View GitHub Profile
@jamescasbon
jamescasbon / rest.py
Created June 17, 2011 10:53
REST handlers for backbone.js based on cyclone
# hmm no imports ;)
class BaseHandler(cyclone.web.RequestHandler):
def get_current_user(self):
return self.get_secure_cookie("user")
class LoginHandler(BaseHandler):
def get(self):
err = self.get_argument("e", None)
self.finish("""
# quickly fix mapping qualities in samfiles generated by SSAHA2
# mapq 255 is undefined according to spec, but SSAHA2 is not
# following this convention
import pysam
infile = pysam.Samfile( "-", "rb" )
outfile = pysam.Samfile( "-", "wb", template = infile )
for s in infile:
if s.mapq == 255:
s.mapq = 244
@jamescasbon
jamescasbon / gist:1232114
Created September 21, 2011 14:06
freebayes build
$ make
cd ../bamtools && mkdir -p build && cd build && cmake .. && make
-- Configuring done
-- Generating done
-- Build files have been written to: /home/james/src/freebayes/bamtools/build
make[1]: Entering directory `/home/james/src/freebayes/bamtools/build'
make[2]: Entering directory `/home/james/src/freebayes/bamtools/build'
make[3]: Entering directory `/home/james/src/freebayes/bamtools/build'
make[3]: Leaving directory `/home/james/src/freebayes/bamtools/build'
make[3]: Entering directory `/home/james/src/freebayes/bamtools/build'
@jamescasbon
jamescasbon / melt_vcf.py
Created October 19, 2011 08:49
Melt VCF files into a reasonable tab delimited format, one genotype per line
#!/usr/bin/env python
""" Melt a VCF file into a tab delimited set of calls, one per line
VCF files have all the calls from different samples on one line. This
script reads vcf on stdin and writes all calls to stdout in tab delimited
format with one call in one sample per line. This makes it easy to find
a given sample's genotype with, say, grep.
"""
import sys
@jamescasbon
jamescasbon / template.py
Created December 11, 2011 16:37
Pure python templates using with statement
"""
A really stupid python template language inspired by coffeekup, markaby.
Do not use this code, it will ruin your day. A byproduct of insomnia.
TL;DR
-----
This module defines a template language that allows us to do:
d = Doc()
@jamescasbon
jamescasbon / gist:1585116
Created January 9, 2012 21:44
Python template example
d = Doc()
with d.html:
with d.head:
d.title ('example page')
d.link (rel='stylesheet', href='/style.css', type='text/css')
with d.body (style='foo'):
d.a ('other stuff on another page', href='/other.html')
@jamescasbon
jamescasbon / gist:1835699
Created February 15, 2012 13:35
Example sysadmin feature
Feature: Mail
In order to handle mail
Scenario: Mail relay
Given I am a production server
And I am not a mail server
Then I should have postfix installed
And I should have a mail relay to mail.example.org
Scenario: Mail server
@jamescasbon
jamescasbon / gist:1835715
Created February 15, 2012 13:40
steps file to go with the feature
from lettuce import *
from fabric import api
from fabric.api import env
import socket
servers = {
'xxx.local': {
'ip': ' xxxx',
'roles': ['production']
@jamescasbon
jamescasbon / bottle_redis.py
Created February 20, 2012 19:02
redis-db bottle
import redis
import inspect
class RedisPlugin(object):
name = 'redis'
def __init__(self,host='localhost',port=6379,database=0,keyword='rdb'):
self.host = host
self.port = port
self.database = database
@jamescasbon
jamescasbon / file1.txt
Created April 3, 2012 16:16
the description for this gist
String file contents