### 1. Highlights

● produced in 2009

● 2 new directives, 42 new procedures and 41 new functions

● regression – quantile regression(`RQLINEAR`

and `RQSMOOTH`

), zero inflated Poisson models (`R0INFLATED`

), parameter confidence limits (`FIT`

etc)

● `ANOVA`

– model terms as covariates (`AFCOVARIATES`

), trellis plots of means (`AGRAPH`

)

● `REML`

– Akaike and Schwartz information coefficients (`VAIC`

), contrasts (`FCONTRASTS`

) and diallel models (`FDIALLEL`

)

● design – concurrence matrices (`FOCCURRENCES`

), complements of incomplete block designs (`FCOMPLEMENT`

), link to CycDesigN

● MVA – permutation tests in `MANOVA`

, biplot enhancements (`DBIPLOT`

)

● variety trials – stability analysis (`GESTABILITY`

), G + G.E biplots (`GGEBIPLOT`

)

● QTL estimation by `REML`

– `DQMAP`

, `DQMKSCORES`

, `DQMQTLSCAN`

, `DQSQTLSCAN`

, `QCANDIDATES`

, `QDESCRIBE`

, `QEXPORT`

, `QIBDPROBABILITIES`

, `QIMPORT`

, `QMBACKSELECT`

, `QMESTIMATE`

, `QMQTLSCAN`

, `QSBACKSELECT`

, `QSESTIMATE`

, `QSQTLSCAN`

, `QTHRESHOLD`

and `VGESELECT`

)

● zero-inflated regression models for count data with excess zeros (`R0INFLATED`

and `R0KEEP`

)

● hot-deck and model-based imputation for survey data (`SVHOTDECK`

)

● ability to fix or initialize the dispersion factors of the additional random terms in HGLMs and DGHLMs (`HGFIXEDMODEL`

, `HGRANDOMMODEL`

, `HGDRANDOMMODEL`

)

● additional links to the NAG Library (`NAG`

)

● graphics – oblique axes (`AXIS`

), interactive tools (hotpoints to show/hide items; `DGRAPH`

and `D3GRAPH`

)

● image functions – 33 new functions for image manipulation

● 64-bit implementation(s)

● additional documentation

### 2. What’s new

**2.1 Directives**

`AXIS`

defines an oblique axis for high-resolution graphics.

`FRQUANTILES`

forms regression quantiles.

**2.2 Procedures**

`AFCOVARIATES`

defines covariates from a model formula for `ANOVA`

.

`ALLDIFFERENCES`

shows all pairwise differences of values in a variate or table.

`DBIPLOT`

plots a biplot from an analysis by `PCP`

, `CVA`

or `PCO`

.

`DCORRELATION`

plots a correlation matrix.

`DFRTEXT`

adds text to a graphics frame.

`DFUNCTION`

plots a function.

`DHSCATTERGRAM`

plots an h-scattergram.

`DQMAP`

displays a genetic map.

`DQMKSCORES`

plots a grid of marker scores for genotypes and indicates missing data.

`DQMQTLSCAN`

plots the results of a genome-wide scan for QTL effects in multi-environment trials.

`DQSQTLSCAN`

plots the results of a genome-wide scan for QTL effects in single-environment trials.

`FCOMPLEMENT`

forms the complement of an incomplete block design.

`FCONTRASTS`

modifies a model formula to contain contrasts of factors.

`FDIALLEL`

forms the components of a diallel model for `REML`

or regression.

`FOCCURRENCES`

counts how often each pair of treatments occurs in the same block.

`GESTABILITY`

calculates stability coefficients for genotype-by-environment data.

`GGEBIPLOT`

plots displays to assess genotype+genotype-by-environment variation.

`HGSTATUS`

displays the current HGLM model definitions.

`MAREGRESSION`

does regressions for single-channel microarray data.

`MC1PSTATIONARY`

gives the stationary probabilities for a 1st-order Markov chain.

`MINIMIZE`

finds the minimum of a function calculated by a procedure.

`MOVINGAVERAGE`

calculates and plots the moving average of a time series.

`QCANDIDATES`

selects QTLs on the basis of a test statistic profile along the genome.

`QDESCRIBE`

calculates descriptive statistics of molecular markers.

`QEXPORT`

exports genotypic and phenotypic data for QTL analysis.

`QIBDPROBABILITIES`

reads molecular marker data and calculates IBD probabilities.

`QIMPORT`

imports genotypic and phenotypic data for QTL analysis.

`QMBACKSELECT`

performs a QTL backward selection for loci in multi-environment trials.

`QMESTIMATE`

calculates QTL effects in multi-environment trials.

`QMQTLSCAN`

performs a genome-wide scan for QTL effects (Simple and Composite Interval Mapping) in multi-environment trials.

`QSBACKSELECT`

performs a QTL backward selection for loci in single-environment trials.

`QSESTIMATE`

calculates QTL effects in single-environment trials.

`QSQTLSCAN`

performs a genome-wide scan for QTL effects (Simple and Composite Interval Mapping) in single-environment trials.

`QTHRESHOLD`

calculates a threshold to identify a significant QTL.

`RQLINEAR`

fits and plots quantile regressions for linear models.

`RQSMOOTH`

fits and plots quantile regressions for loess or spline models.

`R0INFLATED`

fits zero-inflated regression models to count data with excess zeros.

`R0KEEP`

saves information from a zero-inflated regression model for count data with excess zeros fitted by `R0INFLATED`

.

`SETDEVICE`

opens a graphical file and specifies the device number on basis of its extension.

`SVHOTDECK`

performs hot-deck and model-based imputation for survey data.

`VAIC`

calculates the Akaike and Schwarz information coefficients for `REML`

.

`VGESELECT`

selects the best variance-covariance model for a set of environments.

**2.2 Functions**

`BIN` |
Bessel function I_{n} |
---|---|

`BJN` |
Bessel function J^{n} |

`BK0` |
Bessel function K_{0} |

`BK1` |
Bessel function K_{1} |

`BKN` |
Bessel function K_{n} |

`BY0` |
Bessel function Y_{0} |

`BY1` |
Bessel function Y_{1} |

`BYN` |
Bessel function Y_{n} |

`IMBEQUALIZE` |
Histogram equalization of brightness |

`IMBLUR` |
Blur |

`IMBRIGHTNESS` |
Modify brightness |

`IMBSTRETCH` |
Histogram stretch of brightness |

`IMCEQUALIZE` |
Histogram equalization of individual colours |

`IMCONTRAST` |
Modify contrast and brightness |

`IMCREPLACE` |
Replace one colour with another |

`IMCSTRETCH` |
Histogram stretch of individual colours |

`IMDESPECKLE` |
Despeckle |

`IMELLIPSE` |
Draw ellipse |

`IMEMBOSS` |
Emboss |

`IMGAMMA` |
Apply gamma correction to brightness |

`IMGBLUR` |
Gaussian blur |

`IMGRAYSCALE` or `IMGREYSCALE` |
Convert to grey scale |

`IMHFLIP` |
Horizontal flip |

`IMLINE` |
Draw line |

`IMMCONVOLUTION` |
Apply convolution filter |

`IMMEDIANFILTER` |
Median filter |

`IMOVERLAY` |
Overlay images |

`IMPUSH` |
Point-to-point warp |

`IMRECTANGLE` |
Draw coloured rectangle |

`IMROTATE` |
Rotate |

`IMSATURATE` |
Adjust saturation |

`IMSHARPEN` |
Sharpen |

`IMSIZE` |
Change size |

`IMSSTRETCH` |
Histogram stretch of saturation |

`IMSTEXT` |
Draw smooth text |

`IMTEXT` |
Draw text |

`IMUNSHARPEN` |
Apply unsharp mask |

`IMVFLIP` |
Vertical flip |

`IMXSHEAR` |
Shear in x direction |

`IMYSHEAR` |
Shear in y direction |

`IM3CONVOLUTION` |
Apply 3×3 convolution filter |

### 3. What’s changed

You can now use negative numbers in a `qualified identifier`

to exclude units. Hexadecimal colours are now allowed in every option or parameter that allows strings to be used to define colour names (see e.g. `PEN`

). These will be defined in a string of the form `'#abc'`

, `'0xabc'`

or `'0Xabc'`

, where `a`

`b`

and `c`

are hexadecimal numbers (i.e. numbers 0-9 or letters a-f).

Most of the changes are compatible with Release 11, the previous release. There are a few commands, however, where new options or parameters have been inserted into the existing lists. These may cause problems in statements where option or parameter names have been omitted or abbreviated (see Section 1.7.1 of Part 1 of the *Guide to the GenStat Command Language* for details). To avoid any difficulty, the name of the option/parameter after the new option/parameter should be given explicitly, and not abbreviated to fewer than four characters.

Any command, where changes in Release 12 may cause incompatibilities in existing programs, is marked in Sections 3.1 and 3.2 by the symbol ^{†}. The full details are given in Section 3.3.

**3.1 Directives**

^{†}`AKEEP`

can save the setting of the `FACTORIAL`

option used in the `ANOVA`

command that performed the analysis and the identifier of the y-variate.

`CALCULATE`

allows a temporary restruction to be defined on vectors, overiding any existing restrictions.

`CLUSTER`

allows the best clustering to be selected using several random starts.

`COVARIATE`

allows you to group covariates together in a pointer if you want their sums of squares to be combined into a single line in the analysis-of-variance table.

`CVA`

, `PCO`

and `PCP`

now have a `SAVE`

option that can save a multivariate save structure containing all the details of the analysis. If `SAVE`

is unset, an unnamed structure is formed and saved automatically (this can then be accessed using the `GET`

directive). Alternatively, you can set `SAVE=*`

if you do not want to form a save structure. This might be useful, for example, if you have a very large data set and do not want to commit the storage space.

`DGRAPH`

and `D3GRAPH`

have a new setting `SCREEN=resize`

to keep the screen but resize the axes to take account of the information that is being added to the plot.

`DGRAPH`

allows you to control whether or not each component of the graph is displayed initially when the graph is plotted. Components can be associated with “hot” points on the graph. Their appearance can then be controlled by the user making right-mouse clicks at the relevant “hot” points.

`FACROTATE`

allows you to control how many dimensions to rotate, and to save the rotation matrix.

^{†}`FIT`

, `ADD`

, `DROP`

, `SWITCH`

, `TRY`

, `STEP`

and ^{†}`RDISPLAY`

can print confidence limits for the parameter estimates.

^{†}`FRAME`

allows you to include oblique axes (defined by `AXIS`

) in a window, and to set the background colour of the entire frame.

`FSIMILARITY`

can calculate similarities for attributes defined using factors.

^{†}`MDS`

allows the best solution to be selected using several random starts.

^{†}`PEN`

provides better control for the plotting of textual labels (size, location etc.) and for the size of symbols, and has a new parameter `CAREA`

to specify colours of areas inside polygons and bars of histograms.

^{†}`PRINT`

can control whether the identifiers are printed for row and column labels.

^{†}`REML`

can save an exit code to indicate whether the analysis was successful. Another change is that `REML`

now uses a special `vsave`

structure as its save structure, rather than an ordinary pointer.

`RESTRICT`

has a new option `NULL`

to indicate whether a null subset has been defined; when `NULL`

is set, a null subset will not generate a fault or warning (it is assumed that users will then guard against the effects of the null set for themselves).

^{†}`VKEEP`

can now save the numbers of degrees of freedom fitted in the fixed and random model, the unit × unit variance-covariance matrix, Wald statistics with numerator and denominator numbers of degrees of freedom, the `WORKSPACE`

setting from the `REML`

command, and an exit code to indicate whether the analysis was successful.

^{†}`XAXIS`

, ^{†}`YAXIS`

and ^{†}`ZAXIS`

allow date formats to be defined for axis labels; there is also a new option `REVERSE`

to reverse the direction of the axis.

**3.2 Procedures**

`AFIELDRESIDUALS`

procedure now allows titles and control of pens for the contour and shade plots.

^{†}`AGRAPH`

allows tables of means with more than two classifying factors to be plotted e.g. in a trellis plot, and allows more control of the way in which predicted means are formed from unbalanced analyses. You can also specify your own pens to control the symbols, colours and line styles used in a high-resolution graph.

`CONVEXHULL`

allows a scaling factor for the hulls.

^{†}`DDENDROGRAM`

can now split dendrograms over several pages in a high-resolution plot.

`DISCRIMINATE`

can now save canonical correlation coefficients, within-group correlation matrices of the input variates and within-group correlations between the input and canonical variates.

`FACPRODUCT`

allows you to control whether or not the identifiers of the factors are included in the labels of the new (product) factor.

^{†}`FFRAME`

has new options to improve the specification of windows for trellis plots.

`FITINDIVIDUALLY`

, `FITMULTINOMIAL`

and ^{†}`RQUADRATIC`

can print confidence limits for the parameter estimates.

`GLMM`

allows you to set the amount of workspace available for the `REML`

algorithm to use when fitting the model.

`HGFIXEDMODEL`

, `HGRANDOMMODEL`

, ^{†}`HGDRANDOMMODEL`

now allow you to fix or initialize the dispersion factors of the additional random terms in HGLMs and DGHLMs, and the facilities for dispersion modelling in DHGLMs have been updated to match those in ordinary HGLMs.

`MANOVA`

can perform permutation tests, and allows you to select which test statistics to print.

`PROBITANALYSIS`

parameter `NBINOMIAL`

can now be set to a scalar, and option `SEPARATE`

has a setting `notintercept`

that you can use to fit a common intercept over groups.

^{†}`RJOINT`

can now plot the model; you can also save the residual deviance and degrees of freedom, and an exit code to indicate whether the model was fitted successfully.

`RSCREEN`

allows you to decide to use all the units available when constructing each marginal or conditional test i.e. to ignore missing values in any explanatory variable that is not involved in the test. (This provides more information for each test, but the tables of tests should be interpreted with care as different tests may be based on different sets of units.)

^{†}`RSEARCH`

can save the estimates and standard errors for all possible regression models.

`R2LINES`

can include additional x-variates in the model.

Finally, procedure `LIBHELP`

now connects to the on-line help system, instead of the earlier help system that accessed the information in text structures from a backing-store file. The earlier system has been withdrawn, together with procedures `FLIBHELP`

, `LIBINFORM`

and `LIBMANUAL`

. Help information for user procedure libraries can be supplied in GenStat *for Windows* by putting a Windows (`.chm`

) help file, together with the procedure library (`.glb`

) file, in the add-in folder. The Windows `Help`

menu is then extended to contain a sub-option with the name of the procedure library, in its `User`

`Libraries`

option. Clicking on that sub-option opens the file at its `contents`

page. The names of the procedures can be added to the context-sensitive help by including a topic in the help file for each procedure, and naming these by the procedure names (in full). Users can then access the help for a procedure by placing the curser in the name of the procedure in GenStat *for Windows*‘ `Output`

window, and pressing the `F1`

key (in the same way as for the standard GenStat commands, functions and terminology).

**3.3 Functions**

The existing functions are all unchanged.

**3.4 Incompatibilities**

`AKEEP` directive |
option `AFACTORIAL` inserted before `WEIGHTS` , and `YVARIATE` inserted before `AOVTABLE` . |
---|---|

`AGRAPH` procedure |
options `COMBINATIONS` and `ADJUSTMENT` inserted before `LSDLEVEL` , parameter `TRELLISGROUPS` inserted before `MEANS` . |

`CRBIPLOT` |
option `KEYWINDOW` inserted before `SAVE` . |

`CRTRIPLOT` |
option `KEYWINDOW` inserted before `SAVE` . |

`DDENDROGRAM` |
options `NPAGES` and `PAGEINFORMATION` inserted before `ENDACTION` . |

`HGDRANDOMMODEL` procedure |
option `DLINK` inserted before `DFORMULA` , and `DOFFSET` inserted before `LMATRIX` . |

`FIT` directive |
option `PROBABILITY` inserted before `NGRIDLINES` . |

`DAPLOT` procedure |
was replaced by extensions to `APLOT` in Release 6, but it was retained for compatibility with previous programs. It has now been removed from the documentation, and the procedure itself may be removed in a future release. |

`FFRAME` procedure |
options `RMLOWER` , `RMUPPER` , `CMLOWER` and `CMUPPER` inserted before `BACKGROUND` . |

`FRAME` directive |
option `BACKGROUND` inserted before `RESET` , and parameter `AXES` inserted before `SAVE` . |

`FSPREADSHEET` procedure |
option `DUMMY` renamed `ADUMMY` ; option `READONLY` now controls the read-only status only of the whole spreadsheet, with settings `no` and `yes` ; new parameter `PROTECT` to control the read-only status of individual columns |

`MDS` directive |
`NSTARTS` and `SEED` options inserted before `MAXCYCLE` . |

`LIBINFORM` procedure |
has been withdrawn (the information is all easily available in the on-line help) |

`LIBMANUAL` procedure |
has also been withdrawn (the procedure-library manual is available in a pdf file accessible from the Help menu) |

`NOTICE` procedure |
`PRINT` setting `library` has been renamed `release` , and gives information about the new release as a whole, not just the procedure library. |

`PEN` directive |
parameters `CAREA` , `SMSYMBOL` and `SMLABEL` inserted before `DFSPLINE` ; `YLSIZE` , `XLSIZE` , `YLOFFSET` and `XLOFFSET` inserted before `BARTHICKNESS` . |

`PRINT` directive |
options `RLPRINT` and `CLPRINT` have a new setting `identifiers` to control whether the identifiers are printed for row and column labels. The `labels` setting now prints only the labels, but the defaults are changed to `labels` , `identifiers` to provide the same default output as in previous releases. |

`RDISPLAY` directive |
option `PROBABILITY` inserted before `SAVE` . |

`REML` directive |
parameter `EXIT` inserted before `SAVE` . `REML` now uses a special `vsave` structure as its save structure, rather than an ordinary pointer. This will require changes if you have a procedure that takes a `REML` save structure as a setting of one of its options or parameters and you have previously been defining the type as pointer (using the `TYPE` parameter of `OPTION` or `PARAMETER` ). |

`REPLICATION` procedure |
was replaced by `ASAMPLESIZE` at Release 8, but has been retained for compatibility with previous programs. It has now been removed from the documentation, and the procedure itself may be removed in a future release. |

`RJOINT` procedure |
options `TITLE` , `YTITLE` and `XTITLE` inserted before `TOLERANCE` . |

`RQUADRATIC` directive |
option `PROBABILITY` inserted before `STATIONARY` . |

`RSEARCH` directive |
options `ESTIMATES` and `SE` inserted before `RESULTS` . |

`SET` directive |
option `MSAVE` inserted before `RSAVE` . |

`VKEEP` directive |
options `UVCOVARIANCE` , `DFFIXED` , `DFRANDOM` , `FMETHOD` , `WORKSPACE` and `EXIT` inserted before `SAVE` . |

`XAXIS` directive |
option `DREPRESENTATION` inserted before `YOMETHOD` ; option `REVERSE` inserted before `SAVE` ; `LOWER` values greater than `UPPER` values are now faulted (option `REVERSE` should be used to reverse the direction of the axis instead). |

`YAXIS` and `ZAXIS` directives |
option `DREPRESENTATION` inserted before `XOMETHOD` ; option `REVERSE` inserted before `SAVE` ; `LOWER` values greater than `UPPER` values are now faulted (option `REVERSE` should be used to reverse the direction of the axis instead). |