public
Description: A module of python classes that create 96 well crystallization screen dispense lists for the Formulatrix liquid handling robot
Homepage: http://www.code-itch.com/gridzilla
Clone URL: git://github.com/harijay/protein-crystallization-gridmaker.git
100644 108 lines (76 sloc) 3.652 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/usr/bin/env python
# encoding: utf-8
"""
example1.py
 
Created by Hariharan Jayaram on 2009-01-26.
Copyright (c) 2009 __SciForward LLC__. All rights reserved.
"""
 
 
import plate
import masterplate
import component
 
 
def main():
# A real world test plate made . With 4 different Calcium concentrations
# Four different pHs and 6 different pegs
# For CM610 optimization
# Please also consult other examples. This example uses the most wordy syntax to make each setp very obvious. No Shortcuts here
 
# First define the masterplate.Masterplate with volume in µl i.e 2000 for 2 ml
mp = masterplate.Masterplate(2000)
 
# Define each plate with the left corner well and right corner well . Feed the plate its containing master plate i.e
 
p = plate.Plate("A1","D6",mp)
p2 = plate.Plate("A7","D12",mp)
p3 = plate.Plate("E1","H6",mp)
p4 = plate.Plate("E7","H12",mp)
 
# Define a component with concentration units that you keep constant for this component. i.e
# if you use percent then you remember to use percent everytime you want to dispense this component
 
ammso = component.Component("AMS04",3, 100000)
sodcl = component.Component("NaCl",4,100000)
amformate = component.Component("AMFormate",6, 100000)
sodformate = component.Component("SodFormate",8,100000)
 
 
 
# Now we will lay down a peg gradient along the x axis
 
 
# Now lets define each buffer component
 
b1 = component.Component("ph4p5",1000,100000)
b2 = component.Component("ph5p5",1000,100000)
b3 = component.Component("ph6p5",1000,100000)
b4 = component.Component("ph7p5",1000,100000)
b5 = component.Component("ph8p5",1000,100000)
b6 = component.Component("ph9p5",1000,100000)
 
water = component.Component("100.00% Water",1000,300000)
 
p.push_gradient_list_y(ammso,[1.8,2.1,2.4,2.7])
p2.push_gradient_list_y(sodcl,[2.7,3,3.3,3.6])
p3.push_gradient_list_y(amformate,[3,3.9,4.8,5.4])
p4.push_gradient_list_y(sodformate,[4,5,6,7])
 
# Here we fill each sub plate with water : in example 3 you will see a shortcut way of doing this
 
p.push_buffer_to_column_on_masterplate(b1,100,1)
p.push_buffer_to_column_on_masterplate(b2,100,2)
p.push_buffer_to_column_on_masterplate(b3,100,3)
p.push_buffer_to_column_on_masterplate(b4,100,4)
p.push_buffer_to_column_on_masterplate(b5,100,5)
p.push_buffer_to_column_on_masterplate(b6,100,6)
 
p2.push_buffer_to_column_on_masterplate(b1,100,7)
p2.push_buffer_to_column_on_masterplate(b2,100,8)
p2.push_buffer_to_column_on_masterplate(b3,100,9)
p2.push_buffer_to_column_on_masterplate(b4,100,10)
p2.push_buffer_to_column_on_masterplate(b5,100,11)
p2.push_buffer_to_column_on_masterplate(b6,100,12)
 
p3.push_buffer_to_column_on_masterplate(b1,100,1)
p3.push_buffer_to_column_on_masterplate(b2,100,2)
p3.push_buffer_to_column_on_masterplate(b3,100,3)
p3.push_buffer_to_column_on_masterplate(b4,100,4)
p3.push_buffer_to_column_on_masterplate(b5,100,5)
p3.push_buffer_to_column_on_masterplate(b6,100,6)
 
p4.push_buffer_to_column_on_masterplate(b1,100,7)
p4.push_buffer_to_column_on_masterplate(b2,100,8)
p4.push_buffer_to_column_on_masterplate(b3,100,9)
p4.push_buffer_to_column_on_masterplate(b4,100,10)
p4.push_buffer_to_column_on_masterplate(b5,100,11)
p4.push_buffer_to_column_on_masterplate(b6,100,12)
 
 
p.fill_water(water)
p2.fill_water(water)
p3.fill_water(water)
p4.fill_water(water)
 
# You can output the composition of each well to standard out with the masterplate.Masterplate.printwellinfo() method
mp.printwellinfo()
 
# And now to write the dispense list for the formulatrix robot
 
mp.makefileforformulatrix("example10.dl.txt")
 
if __name__ == '__main__':
 
main()