SNPTEST (v1.1.5)

SNPTEST is a program for the analysis of single SNP association in genome-wide studies. The tests implemented can cater for binary (case-control) and quantitative phenotypes, can condition upon an arbitrary set of covariates and properly account for the uncertainty in genotypes. The program is designed to work seamlessly with the output of both the genotype calling program CHIAMO [1], the genotype imputation program IMPUTE [2] and the program GTOOL. This program was used in the analysis of the 7 genome-wide association studies carried out by the Wellcome Trust Case-Control Consortium (WTCCC) [3].

SNPTEST has many different features which are illustrated below through a number of different examples that use the datasets provided with the software in the directory /example. These files contain data at 100 SNPs on 2000 individuals that are split into a control cohort and a case cohort. These datasets can be used to try out the tests using both binary (case-control) and quantitative phenotypes.

Home Screen Output Bayesian Tests of Association (Bayes Factors)
Contributors
Calculating Missing Data Rates Taking account of genotype uncertainty
Download
Excluding SNPs/Individuals Other Options
Input File Formats Testing for Hardy-Weinberg Equilibrium References
Data Summaries Basic Association Tests Contact Information
Gzipped file support Tests that condition upon covariates Version History

Contributors (top)

The following people have contributed to the development of the methodology and software for SNPTEST.

Jonathan Marchini, Peter Donnelly, Joanne Gale, Damjan Vukcevic, Chris Spencer, Niall Cardin, Dan Davison, Teresa Ferriera, Bryan Howie

Download (top)

Pre-compiled versions of the program and example files can be downloaded from the links below. We've supplied both static and dynamic versions of the Linux executables. If you intend to run SNPTEST on a machine running an old kernel then you probably want to use the dynamic version. If you have any problems getting the program to work on your machine please contact me.

Platform
File
Linux (x86_64) Static Executable
snptest_v1.1.5_x86_64_static.tgz
Linux (x86_64) Static Executable (SuSE 9.3)
snptest_v1.1.5_SuSE9.3_x86_64_static.tgz
Linux (x86_64) Dynamic Executable
snptest_v1.1.5_x86_64_dynamic.tgz
Linux (i386) Static Executable
snptest_v1.1.5_i386_static.tgz
Linux (i386) Dynamic Executable
snptest_v1.1.5_i386_dynamic.tgz
Mac OS X 10.4.11 (Intel)
snptest_v1.1.5_MacOSX_10.4_Intel.tgz
Mac OS X 10.5.1 (Intel) snptest_v1.1.5_MacOSX_10.5_Intel.tgz
Mac OS X (PowerPC) snptest_v1.1.5_MacOSX_PowerPC.tgz
Solaris 5.8 (Sun SPARC)
snptest_v1.1.5_Solaris5.8_SPARC.tgz
Solaris 5.10 (AMD Opterons)
snptest_v1.1.5_Solaris5.10_Opteron.tgz
SLES 10 (Intel Itanium2)
snptest_v1.1.5_SLES10_Itanium2.tgz
Windows MS-DOS (Intel)
snptest_v1.1.5_Windows_Intel.tgz

Please fill out the registration form to receive emails about updates to this software.

To unpack the files use the command like


tar zxvf snptest_vX.X.X_i386.tgz

This will create an executable called snptest and a directory /example that contains the example files.

Input File Formats (top)

SNPTEST allows the analysis of multiple cohorts of individuals. The data for each cohort is stored in two files. The first file (the sample file) stores the ID's and associated covariate and phenotype information of the individuals of each cohort. The second file (the genotype file) stores the genotype data for the cohort. For the example datasets included with the software the sample and genotype files for each of these cohorts have the suffices _sample and _gen respectively. The is a FILE FORMAT WEBPAGE with more details of the file formats.
NOTE : when using multiple cohorts SNPTEST assumes that each cohort has data at the same set of SNPs and that these SNPs are stored in the same order in each of the cohort genotype files.

Data Summaries (top)

The simplest use of SNPTEST is to calculate data summaries for each SNP (genotype counts, allele frequencies, SNP missing data proportions and odds ratios). For example, the command

./snptest -cases ./example/cases.gen ./example/cases.sample -controls ./example/controls.gen ./example/controls.sample -o ./example/ex.out

produces a file ./example/ex.out which contains the data summaries for all 100 SNPs across the two cohorts. Note how the cohorts where specified as either case or control cohorts by placing the relevant genotype and sample files after the -cases and -controls options in the command. For each cohort the name of the genotype file should be followed by its associated sample file. The is no limit to the number of case and control cohorts that can be specified.

The -o option specified the output file i.e. ./example/ex.out. This file contains a line for each SNP and there is a header line which specifies the contents of each column (see here). The following table give a description of each of the entries in this file.
id
SNP ID (taken from input files)
rsid
RS ID of the SNP (taken from input files)
pos
Base pair position of the SNP
allele_A  allele_B
The two alleles at the SNP. allele_A is coded 0 and allele_B is coded 1.
average_maximum_posterior_call
The average maximum posterior probability across all the (non-excluded) individuals in the sample. This is a measure of how much uncertainty there is at each SNP.
info
A measure of the observed statistical information for the estimate of allele frequency of the SNP (using all non-excluded individuals in the sample). This measure has a maximum value of 1 that indicates that perfect information.
controls_1_AA controls_1_AB controls_1_BB controls_1_NULL

Counts of AA, AB, BB and NULL genotypes in the 1st control cohort i.e. controls_1 cohort. Genotype counts are called using a default threshold of 0.9 (see below).In this example there is only 1 control cohort but if others are specified the thresholded genotype counts would be given in a similar fashion.
cases_1_AA cases_1_AB cases_1_BB cases_1_NULL Counts of AA, AB, BB and NULL genotypes in the 1st case cohort i.e. controls_1 cohort. Genotype counts are called using a default threshold of 0.9 (see below).In this example there are only  1 case cohort but if others are specified the thresholded genotype counts would be given in a similar fashion.
controls_AA controls_AB controls_BB controls_NULL Counts of AA, AB, BB and NULL thresholded genotypes across all control cohorts
cases_AA cases_AB cases_BB cases_NULL Counts of AA, AB, BB and NULL thresholded genotypes across all case cohorts
all_AA all_AB all_BB all_NULL Counts of AA, AB, BB and NULL thresholded genotypes across all cohorts
combined_controls_maf combined_cases_maf controls+cases_maf
Minor allele frequencies (MAF) in the combined controls, combined cases and combined across all cohorts (based on thresholded genotype counts)
missing_data_proportion
The proportion of missing data across all cohorts (based on thresholded genotype counts)
het_OR het_OR_lower het_OR_upper
Estimated odds ratios and lower and upper 95% confidence limits for the heterozygote genotype AB versus the (baseline) AA genotype (based on thresholded genotype counts)
hom_OR hom_OR_lower hom_OR_upper
Estimated odds ratios and lower and upper 95% confidence limits for the homozygote genotype BB versus the (baseline) AA genotype (based on thresholded genotype counts)
all_OR, all_OR_lower all_OR_upper Estimated allelic odds ratios and lower and upper 95% confidence limits for the B allele versus the (baseline) A allele (based on thresholded genotype counts)

NOTE : There is an optional flag -exp_counts that can be used if you want to have expected genotype counts reported in the output file. The expected genotype counts are calculated by averaging over the genotype uncertainty.
NOTE : Odds ratios and their confidence limits are set to -1 if they cannot be calculated.

Gzipped file support (top)

There is an optional flag -gen_gz that specifies that the genotype files have been gzipped. This option is useful when the genotype files are very large. Gzipped versions of the genotype files are included in the examples. The following command will produce the same output as the example in the above section on Data Summaries.

./snptest -gen_gz -cases ./example/cases.gen.gz ./example/cases.sample -controls ./example/controls.gen.gz ./example/controls.sample -o ./example/ex.out

Calculating Missing Data Rates (top)

The third column of the sample files contain the missing data proportion for each individual. This can be useful for filtering out individuals with high missing data rates (see below). The -create_miss option can be used to calculate the missing data rates needed to make the sample files. For example, to calculate the missing data rates for the first control cohort use the command

./snptest -create_miss ./example/controls.gen -o ./example/ex.out

This creates an output file ./example/ex.out with the missing data proportion for each individual in the specified genotype file. The proportions are based on calling genotypes at the default calling threshold of 0.9 (see below for details of how to change the threshold).  Multiple files can be specified using the -create_miss option which is useful if the genotype data has been stored in a separate file for each chromosome. 

Screen Output (top)

You should notice that SNPTEST produces some screen output when run. Information about which data files were specified, the tests selected, the numbers of SNPs, the total number of cases and the total number of controls, information about the covariates and phenotypes in the sample files and information about individuals and SNPs selected for exclusion is all written to the screen. Also, information about the progress of the program is written to the screen. Warning and/or error messages may also be shown. Incorrect use of the options or input files with the wrong format may cause the program to terminate. The screen output can be used to identify any problems that lead to the termination. The flag -printids can be used to print the SNP IDs of each SNP as it is processed which can be useful to identify where problems occur.

screen output

Excluding SNPs and/or Individuals (top)

Excluding SNPs

The -exclude_snps option can be used to specify a file containing a list of SNPs that should be excluded from the analysis. The IDs in the file can be the SNP IDs (first column of the genotype file) or RS IDs (second column of the genotype file). For example, the file ./example/snps.list contains a list of the SNP IDs for the first 10 SNPs in the example data files. To exclude these SNPs from the analysis we can use

./snptest -cases ./example/cases.gen ./example/cases.sample -controls ./example/controls.gen ./example/controls.sample -o ./example/ex.out -exclude_snps ./example/snps.list

You should notice that the screen output reports that it has read in 10 SNP IDs and that the output file does not contain output for these SNPs.

Alternatively, the program can be run for on a single SNP using the command line option -snpid. For example, to run SNPTEST on the SNP with a SNP ID of 61 we can use

./snptest -cases ./example/cases.gen ./example/cases.sample -controls ./example/controls.gen ./example/controls.sample -o ./example/ex.out -snpid 61

Excluding Individuals

The -exclude_samples option can be used to specify a file containing a list of individuals that should be excluded from the analysis. The IDs in the file should be the ID that appears in the first column of the sample files. For example, the file ./example/samples.list contains a list of the IDs for the first 10 individuals in the example data files. To exclude these individuals from the analysis we can use

./snptest -cases ./example/cases.gen ./example/cases.sample -controls ./example/controls.gen ./example/controls.sample -o ./example/ex.out -exclude_samples ./example/samples.list

You should notice that the screen output reports that it has read in 10 sample IDs and that these individuals were excluded.

The -miss_thresh option can be used to exclude individuals whose proportion of missing data does exceeds some level. The missing data proportion of each individual is specified in the 3rd column of the sample file. For example, to specify a maximum missing data proportion of 1% use

./snptest -cases ./example/cases.gen ./example/cases.sample -controls ./example/controls.gen ./example/controls.sample -o ./example/ex.out -miss_thresh 0.01

You should notice that the screen output reports that it has read in 10 SNPs IDs that the number of individuals included after the missing data threshold and exclusion list has been applied is less than the original number of individuals in the raw files.

Excluding indviduals with missing covariate or phenotype values

When carrying out a statistical test that conditions on covariates or uses a quantitative phenotype any indvidual with at least one missing value of a covariate or phenotype will be excluded from the test. The default code for missing covariates or phenotypes in the sample files is -9 (see FILE FORMAT). The option -missing_code can be used to specify a non-default numeric value for the missing data code in the sample files. For example, use -missing_code -999 to specify that the value -999 has been used in the sample files.

Testing For Hardy-Weinberg Equilibrium (HWE) (top)

Tests for HWE can be included in the output for each SNP by adding the -hwe flag. For example,
./snptest -cases ./example/cases.gen ./example/cases.sample -controls ./example/controls.gen ./example/controls.sample -o ./example/ex.out -hwe

will produce an output file ./example/ex.out with columns that contain the p-values for an exact test of HWE in each control cohort, the combined set of control cohorts, each case cohort and the combined set for case cohorts.

Basic Association Tests (top)

Case-Control Tests

Standard frequentist case-control tests of association for additive, dominant, recessive, general and heterozygote models can be carried out using the -frequentist option. For example, the following command can be used used to carry out tests for these four models on the example datasets.

./snptest -cases ./example/cases.gen ./example/cases.sample -controls ./example/controls.gen ./example/controls.sample -o ./example/ex.out -frequentist 1 2 3 4 5

The five different models are coded as 1=Additive, 2=Dominant, 3=Recessive, 4=General and 5=Heterozygote. There is no need to specify all five models as in the example above i.e. using the option -frequentist 1 4 would only test for association for the additive and general models of association. The additive model is the Cochran-Armitage test for an additive genetic effect. The dominant and recessive models are specified using the AA genotype as the baseline genotype. The general model is a the standard 2-df test of association.

The output file ./example/ex.out contains all of the summary information about each SNP as described above. The p-values for the four tests are given in the columns frequentist_add, frequentist_dom, frequentist_rec, frequentist_gen and  frequentist_het. When a model cannot be fitted to the data the p-value is set to -1.

NOTE : when carrying out a case-control test you must separate the cases and controls into at least two cohorts.

Quantitative Trait Tests

Tests of SNP association with a quantitative phenotype can be carried out using the -qt option. This option carries out a F-test of association at a SNP. The -frequentist option is used to specify the coding of the genotypes at each SNP (see above). The phenotype(s) of each individual must appear in the sample file (see FILE FORMAT WEBPAGE). By default, the tests will use the first phenotype in the sample files. You should use the -pheno option to specify which phenotype you wish to test. For example, the following command can be used used to carry out tests for the five different models using the 2nd phenotype in the example datasets.

./snptest -cases ./example/cases.gen ./example/cases.sample -controls ./example/controls.gen ./example/controls.sample -o ./example/ex.out -qt -pheno 2 -frequentist 1 2 3 4 5

When using this option the output file will have a column for each test that contains the p-value for the test as well as estimates of the model parameters (beta's) and their standard errors.

NOTE : SNPTEST codes allele_A as 0 and allele_B as 1 and this defines the meaning of the beta's and there se's. For example, when using the additive model the beta estimates the increase in log-odds that can be attributed to each copy of allele_B.
 
NOTE : When using the -qt option the data can be specified as a single control cohort or as multiple cohorts. If a single cohort is specified then use the -controls flag argument to specify it. If the data are specified as multiple case and control cohorts the case-control status is ignored and the specified phenotype is used instead.

Covariates (top)

The -cov option can be used to carry out an association tests conditional upon a covariate. For example, to carry out an additive test of association conditional upon the 2nd covariate in the sample file use

./snptest -cases ./example/cases.gen ./example/cases.sample -controls ./example/controls.gen ./example/controls.sample -o ./example/ex.out -frequentist 1 -cov 2

This produces an output file ./example/ex.out which contains a column with header frequentist_add_cov_1 that contains the p-values for the test based on the covariate.

The type of test carried out depends upon the type of covariate specified in the sample files. If a covariate is of type 1
then a Mantel-Hantzel test is carried out. This is a test for a common genetic effect where each group is allowed to have it's own baseline effect. If a covariate is of type 2 then a test is carried out in each group specified by the covariate and the test statistics are combined to produce an overall test statistic. This tests the hypothesis that there is no genetic effect in any of the groups specified by the covariate. If any of the covariates are of type 3 (this specifies a continuous covariate) a test for a genetic effect over and above that explained the continuous covariate is carried out (using maximum likelihood ratio test for a logistic regression model).

The -cov option can be used together with the -qt option to carryout Quantitative Trait tests of association conditional upon covariates.

In addition there is an option -cov_all which can be used to carry out a test conditional upon all the continuous (type 3) covariates in the sample file.
The maximum number of covariates currently allowed with this option is 75.

See the
FILE FORMAT WEBPAGE for more details of how to specify the type of covariate in the sample file. More details of these tests can be found in [2].

Bayesian Tests (Bayes Factors) (top)

Bayes Factors for the five standard genetic models (additive, dominant, recessive, general and heterozygote) can also be carried out using the -bayesian option. These tests are described in detail in [2]. For example, the command

./snptest -cases ./example/cases.gen ./example/cases.sample -controls ./example/controls.gen ./example/controls.sample -o ./example/ex.out -bayesian 1 2 3 4 5

produces an output file with columns bayesian_add, bayesian_dom, bayesian_rec, bayesian_gen and  bayesian_het. These contain log10 Bayes Factors for the additive, dominant, recessive, general and heterozygote models versus a null model of no association.

The table below gives a description of the exact form of the linear predictor of the logistic regression used, the form of the priors used on the model parameters, the default priors used in SNPTEST and the command line option that can be used to change the priors.

Model
Linear Predictor
Priors
Default
Coding
Command line option
Additive
log(pi/(1-pi)) = µ + ßGi 
µ~N(a0, a12)   
ß~N(b0, b12)
a0=0, a1=1
b0=0, b1=0.2
Gi is the additive coding of the SNP
 i.e. AA -> 0, AB ->1, BB -> 2.
-prior_add a0 a1 b0 b1
Dominant
log(pi/(1-pi)) = µ + ßDi
µ~N(a0, a12)   
ß~N(b0, b12)
a0=0, a1=1
b0=0, b1=0.5
Di is the dominant coding of the SNP
 i.e. AA -> 0, AB -> 1, BB -> 1.
-prior_dom a0 a1 b0 b1
Recessive
log(pi/(1-pi)) = µ + ßRi
µ~N(a0, a12)   
ß~N(b0, b12)
a0=0, a1=1
b0=0, b1=0.5
Ri is the recessive coding of the SNP
 i.e. AA -> 0, AB -> 0, BB -> 1.
-prior_rec a0 a1 b0 b1
General
log(pi/(1-pi)) = µ + ßDi + 2ßqRi µ~N(a0, a12)   
ß~N(b0, b12)
q~N(c0, c12)
a0=0, a1=1
b0=0, b1=0.2
c0=1, c1=1
Di is the dominant coding of the SNP
 i.e. AA -> 0, AB ->1, BB -> 2.
Ri is the recessive coding of the SNP
 i.e. AA -> 0, AB ->1, BB -> 2.
-prior_gen a0 a1 b0 b1 c0 c1
Heterozygote
log(pi/(1-pi)) = µ + ßHi
µ~N(a0, a12)   
ß~N(b0, b12)
a0=0, a1=1
b0=0, b1=0.5
Hi is the heterozygote coding of the
SNP i.e. AA -> 0, AB ->1, BB -> 0.
-prior_het a0 a1 b0 b1


Bayes Factors for Quantitative Traits have also been implemented but at present have not been documented. Please contact us if you would like to use these options.

NOTE : at present there is no facility to calculate Bayes Factors conditional upon the covariates in the sample files but this coming soon.

Taking Genotype Uncertainty Into Account (top)

Changing the calling threshold

The default setting of the program is to use a threshold to call genotypes as AA, AB, BB or NULL. Both the Frequentist and Bayesian tests of association will be carried on the these thresholded genotypes by default. The genotypes are called by assigning the genotype with the maximum probability if it is greater than the calling threshold otherwise a NULL genotype is called. The default threshold of 0.9. The threshold  can be altered using the -call_thresh option. For example, to produce a set of basic tests based on a threshold of 0.95 use the command

./snptest -cases ./example/cases.gen ./example/cases.sample  -controls ./example/controls.gen ./example/controls.sample  -o ./example/ex.out -call_thresh 0.95 -frequentist 1 2 3 4

Frequentist Tests

The -proper option can be used to take account of the uncertainty of the genotypes into account completely. This option implements a statistical test based on a missing data likelihood (see [2]  for precise details). This option works together with the -cov  and/or -qt options. For example, the command
 
./snptest -cases ./example/cases.gen ./example/cases.sample -controls ./example/controls.gen ./example/controls.sample -o ./example/ex.out -frequentist 1 -proper

produces an output file with the following columns
NOTE : SNPTEST codes allele_A as 0 and allele_B as 1 and this defines the meaning of the beta's and there se's. For example, when using the additive model the beta estimates the increase in log-odds that can be attributed to each copy of allele_B.
NOTE : Currently, there is one combination of options that is not implemented. This is when the -proper option is used with the -cov option and the specified covariate is of type 2. In this case the type is changed to 1 and a warning message is printed to the screen for each SNP.

Bayesian Tests

The genotype uncertainty can be taken into account in the calculation of the Bayes Factors by sampling genotype counts based on the genotype probabilities and averaging the resulting Bayes Factors. The -nsamp option specifies the number of samples of genotypes that should be used. The default is 0 and means that no sampling is carried out and no Bayes Factor produced. The number of samples need to produce stable results depends on the amount of uncertainty that exists in the genotypes. We recommend this be set to at least 100 and that the user investigates the stability of the Bayes Factors by varying the number of samples. Sampling genotype counts in this way is computationally intensive and will only produce a different result from the thresholded calls if there are a reasonable number of individuals with a considerable amount of genotype uncertainty. The -certainty_thresh option can be used to specify at which SNPs the sampling is carried out. The average genotype certainty is calculated at each SNP by averaging the maximum genotype probability for each individual. A sampling based Bayes Factor is then carried out at only SNPs that have an average genotype certainty below the specified level (default is 0.9) i.e. SNPs that have considerable uncertainty in their genotypes. SNPs that exceed the threshold have the thresholded genotype Bayes Factor reported. More details can be found in [2]. For example, the command

./snptest -cases ./example/cases.gen ./example/cases.sample -controls ./example/controls.gen ./example/controls.sample -o ./example/ex.out -bayesian 1 -nsamp 100 -certainty_thresh 0.95

produces a file with a column bayesian_add_samp which contains the sample-averaged log10 Bayes Factor for the additive model.

Other Options (top)

The program works by reading in, analyzing and writing output for chunks of the data at a time. The default chunk size is 100 SNPs. To analyze the data in chunks of size 10 use

./snptest -cases ./example/cases.gen ./example/cases.sample -controls ./example/controls.gen ./example/controls.sample -o ./example/ex.out -chunk 10

This option is included to control the maximum amount of RAM used by the program at any one time.

Version History (top)

0.9.1
07-06-2007
First version
0.9.2
21-06-2007
Small change to convergence diagnostics in logistic regression.
0.9.3
  26-06-2007  
-exclude_snps bugfix so that either of the SNP IDs can be used to exclude SNPs.
1.0.0
17-07-2007
  • Support for Quantitative Trait tests (both Frequentist and Bayesian tests).
  • Heterozygote tests added.
  • Changes to the way that tests conditional on covariates are specified.
  • Change made to be in-line with the amended FILE FORMAT
1.0.1
18-07-2007
Bug fix to -create_miss option
1.0.3
07-09-2007
Added estimates of beta parameters and their standard errors for Quantitative Trait Tests
1.0.4
22-10-2007
  • Fixed bug with -cov_all and -cov options
  • Fixed bug to stop p-values of 0 at monomorphic SNPs
  • Added LICENCE
1.1.0
24-11-2007
New features
  • the -exp flag has been removed. We have found that tests based on expected counts seem to be overly conservative in the presence of genotype uncertainty so the have been removed.
  • We have extended the use of the -proper flag so that it now works with both binary and quantitative phenotypes and when conditioning on covariates (except when the covariate is of type 2). These tests produce p-values, estimates of model parameters and their standard errors and a measure of the observed statistical information contained in the data about the parameters of interest.
  • We have added a measure of the observed statistical information about the estimate of the allele frequency across the whole sample.
Bug fix
  • fixed a bug when using -qt option that wasn't reading in the phenotypes of any case sample files properly.
1.1.1
27-11-2007
New features
  • added -gen_gz flag that allows the genotype files to be gzipped.
  • added -exp_counts flag that adds expected genotype counts to the output files
1.1.2
27-11-2007
New features
  • added -missing_code option that allows the user to specify the numeric values used for missing covariate or phenotype values.
Bug fix
  • fixed an error in the estimation of the standard errors when using the -proper option.
1.1.3
17-12-2007
Some minor bug fixes
1.1.4
26-02-2008
Changes and additions
  • changed the maximum number of covariates to 75.
  • changed an internal threshold that determines when the design matrix is close to being rank deficient.
  • added some more detailed information on the Bayes Factors.
1.1.5
28-05-2008
Changes
  • added protection against covariates that are constant across individuals.
  • changed some screen output to make it clearer how many individuals have been excluded based on the exclusion list.

References (top)

[1] J. Marchini, C. Spencer. Y.Y. Teo and P. Donnelly (2007) A Bayesian Hierarchical Mixture Model for Genotype Calling in a multi-cohort study. (in preparation)
[2] J. Marchini, B. Howie, S. Myers, G. McVean and P. Donnelly (2007) A new multipoint method for genome-wide association studies via imputation of genotypes. Nature Genetics 39 : 906-913 [Free Access PDF][Supplementary Material][News and Views Article]
[3] The Wellcome Trust Case Control Consortium (2007) Genomewide association study of 14,000 cases of seven common diseases and 3,000 shared controls.
Nature 447;661-78. PMID: 17554300 DOI: 10.1038/nature05911

Contact Information (top)

If you have any questions regarding the use of this program please send an email to Dr Jonathan Marchini (marchini <at> stats <dot> ox <dot> ac <dot> uk)


























































StatCounter - Free Web Tracker and Counter