User:ShawnDouglas/scripts

PCR
 * /make-pcr-oligos.py - given target sequence, generate oligos that can be used for PCR assembly of that sequence
 * /random-sequence.py - generate random DNA sequence of specified length
 * /primer.py - given upstream and downstream sense sequence of region to amplify, print out correct primers

Nanostructures
 * /toehold.py - given input sequence generate N-mers orthogonal (to seq and its complement) to be used as toeholds
 * /hexgui.py - Tk GUI for honeycomb lattice program

Misc complement = string.maketrans('ACGTacgt','TGCAtgca') def comp(s): return s.translate(complement)[::-1]
 * reverse complement

cat foo | tr '\r' '\n' > bar mv bar foo
 * replace mac return character ('\r') with unix return ('\n')


 * print first n chars of STDIN
 * 1) !/usr/bin/python

import string import sys import fileinput

def nowhite(s): return ''.join([c for c in s if c in string.letters])

seq = ''

if len(sys.argv) > 1: n = int(sys.argv[1]) else: sys.exit("usage: " + sys.argv[0] + " [length]")

for line in fileinput.input("-"): seq = seq + nowhite(line)
 * 1) read in sequence


 * 1) seq = seq[offset:] + seq[:offset]    # wrap around first offset bases


 * 1) print last n chars
 * 2) print seq[-n:]

print seq[:n]
 * 1) print first n chars

def hasresite(s): BamHI = 'ggatcc' EcoRI = 'gaattc' FokI = 'ggatg' HindIII = 'aagctt' BglII = 'agatct' XbaI = 'tctaga' XhoI = 'ctcgag' BbvCIA = 'cctcagc' BbvCIB = comp(BbvCIA)
 * Check for restriction site
 * 1) return True if s DOES contain any restriction sites
 * 2) return False if s DOES NOT contain any restriction sites
 * 1) return False if s DOES NOT contain any restriction sites

result = False

if s.count(BamHI) > 0: #print 'BamHI found' result = True elif s.count(EcoRI) > 0: #print 'EcoRI found' result = True elif s.count(FokI) > 0: #print 'FokI found' result = True elif s.count(HindIII) > 0: #print 'HindIII found' result = True elif s.count(BglII) > 0: #print 'BglII found' result = True elif s.count(XbaI) > 0: #print 'XbaI found' result = True elif s.count(XhoI) > 0: #print 'XhoI found' result = True elif s.count(BbvCIA) > 0: #print 'BbvCI.IA found' result = True elif s.count(BbvCIB) > 0: #print 'BbvCI.IB found' result = True

return result