Gridzilla is an application designed to create dispense lists for protein crystallography. It can calculate crystallization matrices for 24, 96 and 384 well plates .


“ I want to create a 24 well crystallization optimization grid, with a PEG gradient from 22 to 36 percent , Tris buffer pH going from 7.2 to 8.2 and a constant CaCl2 concentration of 0.2 M . My stocks are a 50% Peg 400 , 2 M CaCl2 and  IM Tris buffer pH 7.0 and 8.5”


GridZilla can allow you to easily calculate the volume of each solution  required  to make up that grid.


Importantly GridZilla can output  a dispense list for a liquid handling robot like the Formulatrix and make it trivial to design and dispense complex gradients for your protein crystallization optimization.


Each plate configuration can be saved as a PDF formatted report with reagent volumes and reagent concentrations  and as a GridZilla session file. These can be used to keep track of your crystal optimization experiments and design new grids to test other conditions.




FAQ


How do I download GridZilla?

GridZilla is available as a binary application for Mac , Windows and Linux. You can also run the python source code on these platforms provided you have python with the wxpython, yaml and reportlab libraries.



Nothing happened, It didn’t work!.

Typically the status bar at the bottom of the frame displays error messages that may indicate what  the problem is . I have tried my best to make the messages useful. On Mac and Linux the status bar is color coded - Red for Error and Green for success. A bug in windows , does not allow the color code to show up.

If there is no error text in the status bar , then on Linux and Windows look at  the console. Regardless, email me the session file ( File Save session - outputs a [prefix].yaml file to the directory you picked for output at start and I will troubleshoot.



How do I get Help?

Join the mailing list at gridzilla@googlegroups.com. Or send an email to gridzilla+subscribe@googlegroups.com.

Alternatively email Hari Jayaram ( hari At code-itch .com)


How do I use Plates to control Gradients?

Think of a Plate as  a  layer to add components .

If you want to add CaCl2 to the entire plate create a Plate with coordinates “A1” and “H12”.

If you want two different PEG gradients in each half of the plate , create two plates with coordinates “A1” and “D12” and “E1” and “H12” ,

OR if you want to split the plates vertically create a plate with coordinates “A1” and “H6” , and another plate with coordinates “A7” and “H12”


Whats a component ?

Component is any crystallization reagent that you want to grid . A solution has a name , concentration and a volume that you have at your disposal .


Component name : Keep the name  as descriptive as you want  , but  keep it below 10 characters for more meaningful PDFs reports.

Component concentration: This can be in any units , but if you have a component say CaCl2 and use molar units for its concentration 2 M. Then when you grid CaCl2 make sure you specify the grid in molar units i.e 0.1 0.2 etc.

Component Volume : Use a high number if you dont care . So if I have 7.5 mls of SrCl2 . I would tell GridZilla you have 7500 ( All volumes are in microlitre). And then make the gradient. If it gets used up. GridZilla will tell you so.


Please put only numbers in the concentration  and volume column


Whats a Component file?

A Component file is a convenient way to load up all the components associated with a prticular project. For example , for my protein CM610 I generally use Peg 400 , CaCl2 and Tris Buffer between pH 7.2 and 8.5 . So I could make the following stocks and create a cv file with the format.

Component name,Concentration,Volume

For Buffers you add the ph, and pka to any line

Buffer name, Buffer ion concentration , Volume , pH , pKa


So I would have ( all volumes in µl and only numbers for concentration, and keep the units consistent or constant. I always use % for PEG and Molar  otherwise ). The comma-separated-file (csv file ) would look like


CaCl2-2M , 2 ,1000000

Peg 400 50% , 50 , 200000

Tris pH 7.0,1,100000,7.5,8,2

Tris pH 8.2 , 1, 100000,8.5,8.2


What operations does GridZilla support?

GridZilla supports linear grids and stepped values . So you can do PEG going from 20 to 30 linearly along X or along Y . Alternatively you can list the values in square brackets i.e

[20,22,22.5,27.5].

 

GridZilla also can also vary two components such that their total is 100% , to achieve a “Newman  Buffer grid“. If you don’t know what this is , check out New buffer systems for macromolecular crystallization ( Newman J. , Acta Crystallogr D Biol Crystallogr. 2004 Mar;60(Pt 3):610-2. Epub 2004 Feb 25.).


It is also very easy to add other dispense systems to the open-source protein-crystallization grid library that GridZilla serves as a graphical user interface for.



What is Gradient and Gradient List?

Gradient methods do linear gradients. So if you have a 96 well plate defined with coordinates A1 and H12. Then gradient along X will give you a linear gradient in 12 steps . gradient along Y will give you a linear gradient in 8 steps .


For gradient list for the same 96 well plate with coordinates A1 to H12 . You will have to give it the values you want . So in this case you will have to give it 12 values for a Gradient List along X or 8 values for a Gradient List along Y . .



How do I list Rows in any operation that requires a list of rows?

If you want to add Tris pH 7.4 to rows A and B . Then you can select the “Add to Row” or “Component to multiple Rows” operation. Then list the rows in square brackets with quotes


for eg


[“A”,”C”,”D”]


How do I grid Buffers?

To grid a buffer you need to create a Buffer component . Buffers are like components but in addition to name , cocentration and volume , they also have a pH and a pKa. The pH is what you pH-ed the buffer to, the pKa you can get from the web or your friendly lab pKa of buffers chart.

Like components buffers can be grid as  a linear value , Buffer Gradient Along X or Buffer Gradient along Y or as a stepped value Buffer pH List along X or Buffer pH List along X.

for eg If you define a plate with coordinates from “A1” to “H12” , then if you chose Buffer pH List along Y , you need to pick the component buffers that bracket the range you want to achieve and then give it a list of 8 values for eg ( note the square brackets ) If you have Tris pH 7.0 and Tris pH 8.5 stocks you can attempt a specific list of values as

[7.2,7.4,7.5,7.7,7.9,8.0,8.1]


Alternatively you can just Pick the bracketing buffers and give the pH Start and Stop values.


How do I save my session?

The File-Save session menu entry saves a human readable (*.yaml) session file with the same prefix as your dispense list. So if my dispense list prefix was “CYpegVsPh0.2CaCl2” , then “CYpegVsPh0.2CaCl2.yaml” is saved to the directory you picked.

Reading the session file back in will allow you to modify or reproduce the grid. Also if you have an error , save the session file and send it to me. That helps me figure out why things didn’t work



I think there is a bug? What do I do?

Please drop me an email ( harijay A T GMail.Com) . Please remove the spaces and replace with @ symbol. or email me on the newsgroups at gridzilla@googlegroups.com



Can I output files for Robot X?

The default dispense list output by GridZilla is for the Formulatrix Liquid handling Robot. The protein-crystallization-gridmaker python script module which GridZilla is a front-end for can easily be modified to output files for other liquid-handling applications.



What Software does GridZilla depend on?

GridZilla uses wxpython, reportlab and pyyaml three open-source projects to do its work. The binaries come with these libraries .



What Licence is GridZilla released under?

GridZilla is released under the MIT ( X11 licence) open source licence.



How can I contribute?

Use the software , provide feedback. If you want to help improve it , the code for both the GUI ( GridZilla) and the python module are on my GitHub account (http://github.com/harijay/protein-crystallization-gridmaker and http://github.com/harijay/GridZilla). Email me and we can get coding together. Comments  , suggestions  and feature requests are always welcome.


Whats in the works?

I have a lot planned for GridZilla and protein-crystallization-gridmaker ( also called gridder). Some of the things I am working on:

Barcode printing to track crystallization plates

Web centric query and retrieval of  crystal tray information. A “lazy LIMS ( laboratory information management system” as I like to call it

Suggestions and feature requests are always welcome.



How do I delete a single component , plate or operation ?

Right click on the left most item of any component , buffer , plate coordinate definition line and operation. That should popup a context menu with a delete operation . Once you delete something make sure you click configure to propagate the change.