IGEM:Harvard/2006/Container Design 5/Python Code

 Project Overview Designs Notebook Protocols Presentations Literature  

 Design 1</li> Design 2</li> Design 3</li> Design 4</li> Design 5</li> Design 6</li> </ul> <br style = "clear:both">

 Design 5 Overview</li> Schematics</li> Scaffold</li> Code</li> Latches</li> Final Oligo List</li> EM images</li> </ul> <br style="clear:both">

scaffold splitting
Barrel !/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 = ''

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

box_1 = 96 * 32 + 72 loop = 66 box_2 = 11 + 12 + 96 * 6 + 68 box_3 = 16 + 12 + 6 * 96 + 65 box_4 = 19 + 12 + 6 * 96 + 65 box_5 = 19 + 12 + 6 * 96 + 68 box_6 = 16 + 12 + 6 * 96 + 72 box_7 = 12 + 12 + 3 * 96

box_1_seq = seq[:box_1] seq = seq[box_1:] loop_1_seq = seq[:loop] seq = seq[loop:] box_2_seq = seq[:box_2] seq = seq[box_2:] loop_2_seq = seq[:loop] seq = seq[loop:] box_3_seq = seq[:box_3] seq = seq[box_3:] loop_3_seq = seq[:loop] seq = seq[loop:] box_4_seq = seq[:box_4] seq = seq[box_4:] loop_4_seq = seq[:loop] seq = seq[loop:] box_5_seq = seq[:box_5] seq = seq[box_5:] loop_5_seq = seq[:loop] seq = seq[loop:] box_6_seq = seq[:box_6] seq = seq[box_6:] loop_6_seq = seq[:loop] seq = seq[loop:] box_7_seq = seq[:box_7] seq = seq[box_7:]

extra_scaffold = seq barrel = box_1_seq + box_2_seq + box_3_seq + box_4_seq + box_5_seq + box_6_seq + box_7_seq


 * 1) print out the length of each segment and its sequence

barrel_file = file('barrel_scaffold.txt', 'w')

print len(barrel) print barrel barrel_file.write(barrel)

Lids
 * 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 = ''

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

scaffold_len = 7572 lid_1 = 96 * 38 lid_2 = 96 * 38 linker_len = scaffold_len - lid_1 - lid_2 linker_1 = linker_len / 2

lid_1_seq = seq[:lid_1] seq = seq[lid_1:] linker_1_seq = seq[:linker_1] seq = seq[linker_1:] lid_2_seq = seq[:lid_2] seq = seq[lid_2:] linker_2_seq = seq
 * 1) store first segment up to end of lid 1
 * 1) reset sequence to start at end of lid 1
 * 1) linker 2 is the rest of the scaffold

if(len(linker_1_seq) != len(linker_2_seq)): print 'Error: linker 1 is not the same length as linker 2'
 * 1) check to make sure linker 1 and linker 2 are the same length


 * 1) print out the length of each segment and its sequence

lid_1_file = file('lid_1_scaffold.txt', 'w') lid_2_file = file('lid_2_scaffold.txt', 'w')

print len(lid_1_seq) print lid_1_seq lid_1_file.write(lid_1_seq) print len(linker_1_seq) print linker_1_seq print len(lid_2_seq) print lid_2_seq lid_2_file.write(lid_2_seq) print len(linker_2_seq) print linker_2_seq

Lewis's Automated PyGame Code
Here's a link to a python file that automatically creates a schematic. Call maked(inf,outf) where inf is a token list and outf is the file you'd like to output to (should be .bmp). It uses a nifty module called pygame. I haven't tried it out on Macs yet. Still, it gives fairly colorful results.

Code

[[Media:design6.jpg|Design 6 schematic]]

Update: v.1.1 is smart enough to create an appropriately sized bitmap, attempts to avoid the overlapping strand problem of v.1, and has slightly better colors. Unfortunately, it runs slower due to a large bitmap size and some exponentiation that's in there for kicks.

v.1.1

[[Media:design6-1-1.jpg|Design 6 schematic v.1.1]]