1. Home
  2. AGREFERENCE procedure


Generates reference-level designs e.g. for microarray experiments (R.W. Payne).


PRINT = string token Controls whether or not to print a plan of the design (design); if unset in an interactive run AGREFERENCE will ask whether the design is to be printed, in a batch run the default is not to print the design


LEVELS = scalars Number of treatments
REFLEVEL = scalars, variates or pointers Reference level(s); if this is unset in an interactive run you will be asked which reference level or levels you want, in a batch run the default is level 1
REFUNIT = scalars, variates or pointers Unit(s) to which to allocate the reference level(s); if this is unset in an interactive run you will be asked which reference level or levels you want, in a batch run the default is to choose the unit at random within each block
SEED = scalars Seed for randomization; a negative value implies no randomization
TREATMENTS = factors Identifier for the treatment factor
BLOCKS = factors Identifier for the block (plate) factor
UNITS = factors Identifier for the factor for the units within each block (or colours in a microarray experiment)
STATEMENT = texts Saves a command to recreate the design (useful if the design information has been specified in response to questions from AGREFERENCE)


Reference-level designs can be useful in experiments where the main aim is to compare new treatments with a control, or reference, treatment. The design is made up of blocks of size two, each of which compares the control with one of the new treatments. So, if there are four treatment and the reference treatment is treatment 1, the basic design would have three blocks containing the pairs of treatments (1, 2), (1, 3) and (1, 4). The design is particularly relevant to two-colour microarray experiments, where each slide compares a pair of treatments, one of which is stained with a red dye and the other with a green dye.

AGREFERENCE is easiest to use interactively. It then asks questions to determine the necessary information to form the design: for example, the number of treatments, and which of the treatments is the control. The parameters allow you to anticipate questions, or to define all the necessary information if you want to use AGREFERENCE in batch. If, however, you wish to recreate the same design later, the STATEMENT parameter allows you to save a Genstat text structure containing a command specifying the same information.

The number of treatments (including the reference treatment) can be defined using the LEVELS parameter. Similarly, the REFLEVEL parameter can define the reference treatment or treatments. You can supply a scalar to define a single reference treatment, or a variate, or a pointer containing several scalars, to define several. The REFUNIT similarly indicates which unit is to be used for the reference treatment within each block. (In a microarray experiment, the “unit” would be the colour, red or green, and each block would be a slide.) The numbers specified for the reference unit should be either 1 to use the first unit, or 2 to use the second, or 0 to use a unit selected at random for each block.

You can thus construct several versions of the basic design, each using a different reference level and/or unit. For example



would define a design with two blocks to compare the reference treatment with each of the other three treatments. In one of the blocks the reference treatment would be on unit one (e.g. colour red on a microarray plate) and in the other it would be on unit two (e.g. colour green). Similarly


would generate two versions of the basic design. The first would have treatment one as the reference, and the second would have treatment two as the reference (both allocated to unit one).


would generate two versions of the basic design. The first would have treatment one as the reference (allocated to unit 1), and the second would have treatment two as the reference (allocated to unit 2).

The SEED parameter allows you to specify a seed to be used to randomize the design. In batch the default seed is -1, to suppress randomization. If you do not set SEED when running interactively AGREFERENCE will ask for a seed, and again a negative value suppresses any randomization. Note that the randomization takes account of the settings of the REFUNIT parameter.

The remaining parameters, TREATMENTS, BLOCKS and UNITS, allow you to specify identifiers for the factors representing treatments, blocks (or plates in a microarray experiment) and units within blocks (or colours in a microarray experiment). If these are not specified in a batch run, AGREFERENCE will use identifiers that are local within the procedure and thus lost at the end of the procedure. If you are running interactively, AGREFERENCE will ask you to provide identifiers, and these will remain available after AGREFERENCE has finished running.

AGREFERENCE has a PRINT option which can be set to design to print the plan of the design. By default, if you are running Genstat in batch, neither are printed. If you do not set PRINT when running interactively, AGREFERENCE will ask whether or not you wish to print the design.

Option: PRINT.



The QUESTION procedure is used to obtain the necessary details of the design. The design is then using the standard Genstat directives for calculation and manipulation.

See also

Procedures: AGBIB, AGLOOP.

Commands for: Design of experiments, Microarray data.


FACTOR      [LABELS=!t(red,green)] color
AGREFERENCE [PRINT=design] 4; REFLEVEL=1; REFUNIT=!(1,2); SEED=219071;\
            TREATMENTS=treat; BLOCKS=plate; UNITS=color
            TREATMENTS=treat; BLOCKS=plate; UNITS=color
Updated on June 20, 2019

Was this article helpful?