Image analysis

Upload one photograph per plate and pick the plate format. Each image is gridded and every colony measured, and you get back a .dat per plate — the same file the normalization step takes, so a finished run carries straight on into scoring without downloading anything.

Two options are worth getting right, because a wrong answer to either produces a run that fails rather than a run that lies:

Individual images can fail without taking the run with them; a screen where two plates of forty were photographed badly still gives you the other thirty-eight. Keep gridded images on: the overlay is the only way to see that a plate was measured where you think it was.

The measuring is pitter, a Python reimplementation of the gitter R package. It imports as gitter.

Input files

Colony .dat files: row, column and colony size, tab separated. Name them username_screentype_query_arrayplateid_..., for example collab_ctrl_Y8835_01_fser4.dat. That convention is the only thing linking a control plate to the experiment it scores against — get it wrong and scoring silently does nothing. The same applies to the image files you upload for analysis, since their names become the .dat names.

The pipeline

Steps run in this order. Any of them can be skipped with its code.

CodeStep
LKFLinkage filter
PL1Plate normalization
BRFBig replicates filter
SPASpatial normalization
RCERow/column effect normalization
JKFJackknife filter
PL2Plate normalization 2
CPFCap and rescale
What you get back
Compatibility mode

The original R pipeline had several bugs. They are fixed by default. Compatibility mode turns them back on and writes the R's own file formats, so a run can be compared against one from the old site. Do not use it for new analysis.

Analysis

A finished run has an analysis page, in three tabs. Plate draws every colony in its own position, coloured by raw size, normalized size, interaction score or — for a run that started from photographs — circularity; and beside the map, the photograph itself with the measurements drawn back onto it, so a colony's size can be checked against the colony. Spatial artifacts are what half the pipeline exists to remove and a grid is the only way to see whether it did: the raw map usually shows a bright border, and the normalized one beside it should be flat. Under the maps: the distribution (drag across it to select colonies), row and column profiles before and after normalization, replicate agreement, each colony against its neighbours, and circularity.

Screen shows every plate on one scale, a quality table (edge ratio, row and column effect, replicate CV, colonies excluded by each filter) and the distributions side by side. Interactions, for a scored run, plots the double mutant against the array single mutant, score against reliability, the ranked scores, every strain along the genome with the linkage windows, and lists the hits at Costanzo et al.'s lenient, intermediate or stringent cutoffs, with links to SGD and g:Profiler. The g:Profiler buttons can take the array's genes as the background: enrichment is then judged against the strains that were screened rather than the whole genome, which is the right question for an array-based screen. With the switch on, g:Profiler makes the link on request and keeps the lists.

Normalized size is drawn diverging around 1.0 — neutral is a typical colony for that plate, blue smaller, red bigger — because it is a ratio to the plate rather than a magnitude, and nearly every colony sits within a few percent of 1. Interaction score diverges around zero the same way. Raw pixel area has no such midpoint and runs light to dark. The scale is clipped at the 2nd and 98th percentile unless you type your own bounds.

The link to an analysis page carries the plate, metric and view, so it can be pasted as it is.

How long results are kept

3 days. This is not permanent storage — download anything you want to keep.