this review first describes the theoretical basis for single nucleotide polymorphism ( snp ) tagging and then evaluates freely available software for the selection of tag snps for genetic association studies .
the review is motivated by the author 's experience as part of an active group of epidemiologists and statisticians and , especially , because of a now almost five - year - old ongoing collaboration between his group at the university of southern california and members of the broad institute ( formerly the whitehead institute ) at mit and harvard university .
the author has been involved in developing and implementing methods for selecting tag snps in candidate gene studies . in these studies , he and his colleagues have relied upon their own ' haplotype discovery ' panel , in which , at present , almost 3,000 snps over approximately 30 genes in the steroid hormone pathway have been genotyped in 349 subjects in five ethnic groups ( data publicly available at http://www.uscnorris.com/core/docmanager/documentlist.aspx?cid=13 ) .
these data have been used to : ( 1 ) identify the haplotype block structure of each of the candidate genes of interest ; ( 2 ) estimate haplotype frequencies within blocks ; and ( 3 ) use these haplotype frequency estimates to select informative non - redundant snps for use as tag snps in association studies . for the purposes of this review , tag snp methods
are named according to the general approach described above as ' haplotype block - based ' . as will be discussed below , block - based methods in which haplotype structure
is first determined allow for the calculation of optimality of a set of tag snps in ways that are particularly relevant to certain types of analyses .
full determination of haplotype structure is not required by all proposed methods , however , and to a greater or lesser extent these may be regarded as ' haplotype block free ' . with the advent of the hapmap project ( and the very recent release of a complete first pass of the project ) , over 1 million snp genotypes , covering the entire human genome in 270 subjects sampled from four different ethnic groups ,
are now available for haplotype discovery , and thus may be considered for the use of tag snp selection . at the time of writing , the hapmap project itself does not recommend any particular choice of snps for tagging , and this review is focused on the steps needed at this time in order to use hapmap data for the selection of tag snps using a number of different methods and software that is now available .
key to the block - based method of selecting tag snps is to be able to estimate haplotype frequencies for large numbers of snps within blocks .
initial versions of the expectationmaximization ( em ) algorithm used for estimating haplotype frequencies had severe restrictions in terms of the number of snps that could be handled ( since 2haplotypes are possible among n snps ) . the partition ligation em algorithm ( plem )
solves this problem , at least approximately , by performing the em algorithm separately for small numbers of snps in each partition and then performing a restricted em algorithm to merge ( ligate ) the partitions to form full haplotype frequency estimates .
this approach allows the number of snps to be considered for haplotype frequency estimation to be greatly extended , provided that the total number of haplotypes in the region remains restricted ( as in a haplotype block ) .
even the plem algorithm , however , becomes very slow , unwieldy and unreliable when there are large numbers of haplotypes to estimate .
if there is no recombination between snps in a genomic region , there will be a maximum of n + 1 distinct haplotypes evident , but within large blocks , the number of haplotypes is typically much lower than this . in regions with high rates of historical recombination , there comes an explosion in the number of haplotypes and , therefore , poor performance of the algorithm both in terms of reliability ( especially where the total number of subjects genotyped is relatively small ) and speed .
software programs that implement a plem or similar algorithm for calculation of haplotype frequencies include haploview ( see below for urls ) , snphap , hapblock , haplore , the latest version of tagit   and the author 's own program , tagsnps . once haplotype frequencies are estimated ( and subsequently treated as known ) , the basic idea for tag snp selection
is that a criterion function of the haplotype frequency distribution is decided upon and tag snps optimising that criterion are chosen .
optimising a given criterion function can involve a fairly lengthy calculation ( the space of possible choices for tag snps being of size 2 - 1 ) , and direct searches of all possible choices are not usually carried out . instead , some kind of stepwise algorithm is employed .
examples of criteria functions are : ( 1 ) maximising the minimum rbetween non - tag and tag snps ( generally restricted to cover only the common unmeasured snps ) .
( 2 ) maximising the minimum rbetween true haplotype count for a set of haplotypes h and their best prediction from the em algorithm , with the h of interest generally restricted to only common haplotypes .
( 3 ) maximisation ( or minimisation ) of a global informationbased estimate of haplotype diversity ( involving both common and uncommon haplotypes ) . in ( 1 ) , the definition of rcan take three different forms , we may compute : ( 1a ) a bivariate pairwise r ; ( 1b ) a multivariate allelic r ; ( 1c ) a multivariate haplotype - based r. the bivariate ris the basis for a popular block - free approach ( described below ) to picking tag snps , so this review will focus on ( 1b ) and
the allelic ris the true value of the squared correlation that would be found in a linear regression of an unmeasured snp s on tagging snps t1 , t2 , ... tms in which only the main effects ( counts ) of the snps are allowed to enter the model ( ie interactions of form t1  t2 etc are excluded as predictors ) .
by contrast , the haplotype - based ris the true value of the squared correlation between snp s and the best prediction of snps from the haplotype estimates , which , under hardy - weinberg equilibrium ( hwe ) for the haplotypes , is of the form : ( 1.1)esh|g=h - gshph1ph2h - gph1ph2 where ph is the frequency of haplotype h , s(h ) counts the number of copies ( 0 , 1 or 2 ) of snp s that is contained in the ordered haplotype pair h and the summation is over the set of ordered haplotype pairs for the snps that are consistent with the genotype data for the measured snps . here ,
h and h refer to haplotypes that are made up of all snps ( measured and unmeasured ) , whereas g refers only to the measured snps .
the allelic rand haplotype rare formally equivalent ( take the same value ) when hwe for haplotypes holds and when there is no recombination between the snps considered .
otherwise , the allelic ris lower ( typically , only slightly lower ) than the haplotype runder hwe . if appropriate interaction terms ( eg t1  t2 ) are included in the allelic rcalculation , this rwill increase , but its true value is still bounded above by the haplotype r , which is denoted rs2 .
the haplotype rin ( 2 ) above is different to that just described because it is now the haplotype h , rather than any single snp , that is being predicted . under hwe ,
the best prediction of haplotype h is of the same form as ( 1.1 ) , with s(h ) replaced by h(h ) , which counts the number of copies of haplotype h that are contained in the ordered haplotype pair h. the squared correlation , rh2 between h(h ) and its best prediction , e{h(h)|g } , is computed as described elsewhere .
the information - based quantities referred to in ( 3 ) include such measures as ie=hphlogph ( the information entropy ) and hph2 ( the homozygosity index or probability that two randomly selected haplotypes are identical ) .
for example , one might seek a set of tag snps of a given size that minimises the average posterior information entropy averaging over every possible configuration of measured genotypes g. the haplotype and snp rcriteria are specifically relevant to investigations in which either snp - specific or haplotype - specific risks are being estimated in large cohort or case - control studies relating the occurrence of a disease of interest to the genomic variation in a particular candidate gene or gene locus . in particular , to a first approximation , rs2 and rh2 give the loss of information that results from not measuring a given snp s or common haplotype h directly , compared with the analysis in which either snp s was genotyped or haplotype .
the global information - based quantities are less focused upon specific haplotypes and include both common and uncommon haplotypes in their definition of optimality .
freely available computer programs for the selection of tag snps using one or more of the above - mentioned criteria include ldselect , htsnp , hapblock , tagit , tagger and tagsnps .
genuinely haplotype block - free approaches to picking tag snps are necessarily based upon simpler statistics than those described above . for example , the popular program , ldselect , selects snps entirely upon pairwise rbetween unmeasured snps and members of a tag snp set .
the benefit of this approach is that pairwise rcalculations are very reliable , irrespective of haplotype diversity , using haplotype discovery panels of a size similar to that of the hapmap or other typical studies .
thus , one may relatively safely provide large amounts of genotype data to the program with no prior consideration of haplotype block definition , and still expect reliable results . because the block - based approaches are , by definition , restricted to working within some sort of haplotype block definition (
many have been considered in the literature ) , a problem arises ; tag snps selected for one block may be partially or even wholly redundant with the tag snps selected in another block .
further , one is faced with the problem of how best to deal with regions of the gene of interest in which the particular definition of haplotype block one is working with is not satisfied .
the following freely available computer programs were evaluated : the block - based programs htsnp ( in combination with snphap for the estimation of haplotype frequencies ) , tagit , hapblock and tagsnps .
in addition , the snps marked with triangles in the haplotype plots produced by the program haploview ( which the haploview documentation calls tag snps , with no description of a specific method of choosing them provided ) were evaluated as tag snps .
all of these programs , except for tagger , have versions available for windows / dos based computers which are downloadable from the internet ( this author used his laptop computer running windows xp in his evaluation ) .
several of the programs ran not as ' native ' executable programs , but rather as add - on programs to either matlab or stata programs .
since these are both popular and widely available ( but not free ) , they were included in the author 's evaluation ; however , the author did not include certain other programs that required additional software ( such as sas genetics ) which he had not already installed prior to writing this review .
ldselect is a perl program , so a user may firstly have to install perl ; however , free versions of perl are readily available for almost any computer .
the evaluation approach used here was first to investigate the completeness of features described in the documentation for each program considered and , secondly , to run the programs on two different snp datasets ( described below ) using similar selection criteria to make a number of ( as far as possible ) comparisons between the tag snp selections .
the author worked mainly with the various r - based selection criteria described above ; no single program could compute them all but most criteria could be used by at least two programs .
for example , it is the author 's belief that it is very important that the programs be able to include as tag snps those which are a priori identified as being of particular interest in an analysis .
for example , it may be desirable to include a common missense snp as a tag snp or an snp for which reports concerning its usefulness have already been published ; forcing it in as a tag allows it to play a dual role , both as a candidate snp itself and also contributing to defining the haplotype structure of the remaining snps .
programs that required that haplotype frequencies or other statistics ( such as pairwise r ) be computed externally were also avoided .
( htsnp requires haplotype frequencies to be estimated separately using snphap ; however , both are available from the same author , work together well and were considered as one program here . ) the author focused on the use of hapmap data ( downloaded between 5th november , 2004 and 26th january , 2005 ) in his evaluation of the ease of use and capacity of each program , and used different genotype datasets in his evaluation .
the first consisted of all the snps within the gene locus containing a specific candidate gene ( tgfbr1 ) , which in the author 's estimation , had some ' typical ' features of ' simple ' genes ( those with good haplotype block structure ) .
genotypes were downloaded ( for the 30 ceph caucasian trios ) for 15 common snps ( frequency > 3 per cent ) in tgfbr1 in a locus extending 20 kilobases ( kb ) upstream and 10 kb downstream of transcription of each gene . using the default gabriel rules as block definition ,
haploview identified these snps as consisting of two blocks in tgfbr1 ( of three and ten snps in size , respectively ) , with two snps in no block .
in addition to this candidate gene region , one of the ten densely genotyped encode regions available from the hapmap website were used ( again , for the 30 ceph trios ) , specifically in order to determine how well the block - free programs would work when presented with a larger amount of genotype data .
the author used the enm010 region ( in chromosome band 7p15.2 ) , in which , at the time of downloading the data , there were genotypes for 406 snps with a frequency  5 per cent .
of the programs considered , only three were able to read the hapmap data directly .
one of these was haploview itself-- which is now nicely incorporated into the hapmap website as a ' semi - official ' way of looking at haplotype block structure .
in addition , the web - based tagger program and the author 's tagsnps program can both read the * .hmp formatted files obtained as hapmap genotype data dumps . because no single format was read by all the programs being evaluated
, the author spent some time adding features to the tag snps program , to write out the hapmap data in several various formats suitable for the other programs to read .
note that not all of the programs used were able to estimate haplotype frequencies directly from parent - offspring trios . for these programs
, files were created containing only the genotypes for the 60 parents in the ceph data .
this implies some loss in the precision of estimation of haplotype frequencies , but rarely is this loss enough to have major effects on the snps chosen as tag snps .
features of the tag single nucleotide polymorphism ( snp ) programs evaluated see text for definition of notation . performs a standard em rather than plem algorithm ( see text for more information ) .
table 2 gives summary results for each of the programs applied to the data for the tgfbr1 gene . in order to make a fair comparison of each program ,
the author attempted to use an as consistent as possible set of criteria for selecting tag snps over the set of seven programs evaluated : tag single nucleotide polymorphisms ( snps ) selected for tgfbr1 hapblock found two blocks ( snps 1 - 3 , and snps 4 - 15 ) .
( 1 ) the block - free program ldselect was used to pick a set of tag snps so that the minimum value of pairwise rbetween the measured and unmeasured snps would be equal to 0.9 .
tagger was used for the same purpose , using both its pairwise and ' aggressive ' mode ( see below ) ; ( 2 ) for htsnp and tagit , the criteria set for selecting snps included an rs2 of 0.9 , this was used to select tag snps for each of the two blocks ( snps 1 - 3 and snps 5 - 14 ) , determined by haploview separately ; ( 3 ) for tagsnps , snps were chosen within each block using both an rh2 and an rs2 criteria of 0.90 ; ( 4 ) for hapblock , the ' block - finding ' algorithm was set to be the empirical linkage disequilibrium ( ld ) method as close to the approach used by haploview as possible , and used three methods ( entropy , rh2 and pairwise r ) to select tag snps ; ( 5 ) using tagsnps , the author calculated the rs2 and rh2 statistics that corresponded to the tagsnps chosen by haploview . some of the programs ( ldselect , hapblock , tagit ) offered several equivalent choices for tag snps . when this was the case , the author simply chose the first set listed for displaying in table 2 .
each of the programs correctly identified the redundancy between snps 1 - 3 in block 1 of the tgfbr1 gene ( snps 1 and 3 are perfectly correlated ) . for block 2
the most important difference is that the haplotype - based measures ( rh2 and/or entropy ) as computed by hapblock or tagsnps yielded one fewer tag snp than did the rs2 criteria .
of course , it is reasonable that different criteria produce different numbers of tag snps .
tagit , htsnp and tagsnps all yielded four snps ( using rs2 ) to predict the ten total snps in block 2 ; in each case the rvalues reached were equivalent ( the minimum value found was 0.96 ) .
it was also seen that , when using the pairwise rcriteria , both of the block - free programs , ldselect and tagger , selected the same number of tagging snps ( eight ) to cover the entire locus .
when the tagger program was set to its ' aggressive ' option ( basically a restricted rs2 calculation ) , it produced one fewer tag snp .
hapblock also has a pairwise option , and also gave eight tagging snps based on pairwise r. tgfbri appears to have a considerable amount of recombination between block 1 and block 2 ( multiallelic d ' = 0.13 ) . when all of the snps are considered , however , the total number of haplotypes is apparently relatively limited .
for example , tagsnps estimated that there were six common haplotypes ( frequency > 5 per cent ) that made up 90 per cent of the chromosomes over the entire locus .
this apparent lack of diversity indicates that estimation of haplotype frequencies is probably sufficiently accurate , so that the block - based approaches can also be applied to the full gene in order to allow a more careful comparison between the block - based and block free programs .
tag single nucleotide polymorphisms ( snps ) when all snps in tgfbr1 are treated as being in one block because of recombination between block 1 and block 2 ( which causes an inherent lack of predictability in haplotype estimation ) , it was not possible to find tag snps that would meet the haplotype rh2 criterion > 0.90 for all of the common haplotypes over the whole gene .
( even using all of the snps gave a value of just 0.85 for one 7 per cent haplotype . ) therefore , the author restricted his comparison to snps picked using the rs2 criterion compared with the pairwise r. there is very little gain in efficiency using the multivariate rs2 criterion compared with the pairwise , in that only one fewer tag snp was identified ( seven versus eight ) by tagsnps .
of the two other programs that compute rs2 , one of them , tagit , failed -- apparently because its em algorithm ( which does not implement a partition ligation ) could not easily handle all 15 snps ( a newer version , tagit 3.02 , just released , evidently has remedied this deficiency and includes plem and triplem options ) .
there was a slight discrepancy between tagsnps and htsnp in the snps selected , although the same number was picked by each program . by the author 's calculations ,
the snps selected by htsnp produced a minimum rs2 of 0.9362 , compared with 0.9952 for the snps selected by tagsnps .
such a difference could either be due to the fact that the haplotype frequencies used by htsnp were different to those estimated using tagsnps ( since snphap does not use the trio information , whereas tagsnps does ) , or because of the details of the search algorithm -- the author used the stepwise down method in htsnp and the default forward selection ( with a backwards substitution check ) algorithm in tagsnps .
the htsnp program has an exhaustive search procedure but this is considered to be too slow for routine use . in any event , such a difference in rs2 is quite trivial .
the author was able to make the following comparisons using the 406 snps ( with frequency  5 per cent ) in the enm010 region : ( 1 ) between the pairwise calculations in ldselect and tagger ; ( 2 ) between the ' aggressive ' snp picking approach of tagger and the pairwise approach ; ( 3 ) between the above two and a ' relaxed ' block - based approach , using haploview to define the blocks and then extending the boundaries of the nearest neighbouring blocks to include those snps that were not included within blocks .
tagsnps , was used to pick snps based on rs2 separately for each block and pseudoblock . for ( 1 )
, the pairwise calculations using ldselect identified that a total of 129 tag snps ( 31 per cent of all snps ) were needed to achieve an rof at least 0.9 between each unmeasured snp and a single tag snp .
the same calculations performed by tagger required 147 tag snps ( 36 per cent ) in order to reach the same nominal criteria . in comparison ( 2 ) , tagger chose 93 tag snps ( 23 per cent ) using its aggressive ( partial rs2 ) mode . for comparison ( 3 ) , haploview found 27 blocks which contained the large majority of snps , so that at a maximum , an additional two snps were added to any one block when these boundaries were relaxed .
the ' relaxed ' block approach required 109 tag snps ( 27 per cent ) to reach the minimum rs2  0.9 criteria .
haploview gave 123 tag snps as tagging snps for the same set of ' relaxed ' blocks ( but with unspecified tagging criteria ) .
at this point , it is not completely clear which criteria are most appropriate for the selection of tag snps . in the author 's experience , there is little practical difference in picking tag snps within a block using either the rh2 or rs2 criteria , in that both sets of criteria tend to suggest nearly equivalent snps at any given coverage level .
( this makes sense because in order to predict snps using the haplotype approach , one must also be able to predict haplotypes . )
a larger issue is whether simple pairwise methods are better than using the multivariate rs2 or rh2 methods .
pairwise methods inherently will choose more tag snps than will rs2 and this can be seen in the examination of the enm010 region .
the rationale for the use of pairwise rmethods appears to be an assumption that the goal of the statistical analysis in an association study using tag snps is to reproduce the results that would be achieved if every single known ( measured or unmeasured ) snp was to be used as a predictor in the analysis .
this is a laudable goal , but it can also be achieved by typing only the snps identified by the rs2 ( or rh2 ) procedure and predicting them from formula ( 1.1 ) ( this is implemented in tagsnps ) .
these predictions will be just as accurate as those derived from using the single snps identified in the pairwise procedure .
moreover , in any kind of multiallelic test ( either haplotype - or - snp - based ) , the multivariate measures of rare a more directly relevant estimate of the actual amount of information contained in the tag snp set .
the primary problem with consistently using the multivariate correlation measures for snp selection is that restricted haplotype diversity is required in order to avoid overfitting ( giving an upwardly biased correlation estimate ) . by restricting the calculation of rs2 to be performed only for snps within blocks , the problem of over - fitting
block definitions are inherently quite arbitrary , however , and there is often considerable redundancy between tag snps selected in two ( or more ) neighbouring blocks .
the method that tagger uses ( in its aggressive mode ) appears to be promising by simultaneously avoiding both over - fitting and redundancy .
the tagger output is useful because it gives information concerning which combinations of measured snps are required to reproduce which unmeasured snps .
ldselect gives this same information for the pairwise comparisons ( by showing bins of similar snps ) .
it is unclear why tagger , in its pairwise algorithm , required more snps than did ldselect ( 147 versus 129 )
. this may be less important than its apparent improved performance in the aggressive mode over both pairwise and simple ( relaxed ) block - based methods .
most of the programs were fairly easy to use and appeared to perform reasonably well when carrying out their designated tasks .
first , it was by far the least user - friendly in term of requirements for user input -- with a parameter file of exactly 11 lines , with all options indicated by difficult - to - remember numerical codes . secondly , it proved impossible to get the program to work on the full enm010 region-- apparently because of limitations either in the number of snps or the size on an individual block .
( the program would run for a while and then grind to a halt after processing about 80 snps , with no indication that it would ever complete . )
tagger is a web - based program with a simple but reasonably general user interface , which allows both block and block - free operations .
the author 's own program , tagsnps , has an extensive command language , allowing a user to perform numerous side calculations ( forcing in and keeping out snps , picking a set of tag snps on the basis of one criterion -- for example , rs2 - -and checking its performance on the basis of another , rh2 or pairwise r , etc ) .
as described above , this program is also able to predict both unmeasured snps and haplotypes involving unmeasured snps on the basis of the tag snps .
the prediction part of this program is used for the implementation of such methods for case - control analysis as haplotype - specific risk estimation using standard logistic regression software .
an interface for statistical analysis system ( sas , cary , nc ) has also been developed and is available on the author 's website http://www-ref.usc.edu/stram/tagsnps.html .
for users already very familiar with either matlab or stata , the tagit and htsnp programs may be attractive for picking tag snps .
tagit has an extensive set of commands and features and should be competitive now that it has implemented a plem algorithm ) snphap ( used by htsnp ) would benefit from being able both to directly read the hapmap data dump files and utilise the trio data in the same way as is currently possible using tagsnps , tagger and haploview .
haploview http://www.broad.mit.edu/mpg/haploview/index.php htsnp and snphap http://www-gene.cimr.cam.ac.uk/clayton/software/ hapblock http://www.cmb.usc.edu/msms/hapblock/ haplore http://zhao.med.yale.edu/softwarelist.html tagsnps , http://www-rcf.usc.edu/~stram/tagsnps.html tagger , http://www.broad.mit.edu/mpg/tagger/ tagit , http://popgen.biol.ucl.ac.uk/software.html ldselect http://droog.mbt.washington.edu/ldselect.html
this work has been supported by grants ca63464 , genetic susceptibility to cancer in multiethnic cohorts ; gm58897 , computational methods in genetic epidemiology ; and p50 hg002790 , center for excellence in genomic sciences , university of southern california .
 this paper reviews the theoretical basis for single nucleotide polymorphism ( snp ) tagging and considers the use of current software made freely available for this task . a distinction between haplotype block - based and non - block - based approaches yields two classes of procedures . 
 analysis of two different sets of snp genotype data from the hapmap is used to judge the practical aspects of using each of the programs considered , as well as to make some general observations about the performance of the programs in finding optimal sets of tagging snps . 
 pairwise r2 methods , while the simplest of those considered , do tend to pick more tagging snps than are strictly needed to predict unmeasured ( non - tagging ) snps , since a combination of two or more tagging snps can form a prediction of snps that have no direct ( pairwise ) surrogate . 
 block - based methods that exploit the linkage disequilibrium structure within haplotype blocks exploit this sort of redundancy , but run a risk of over - fitting if used without some care . a compromise approach which eliminates the need first to analyse block structure , but which still exploits simple relationships between snps 
 , appears promising . 
Introduction
Software specifics
Evaluation approach
Evaluation
The ENCODE (ENM010) region
General comments
URLs for cited software (last accessed 28th February, 2005)
Acknowledgements