'''minimac''' is a low memory, computationally efficient implementation of the MaCH algorithm for genotype imputation. It is designed to work on phased genotypes and can handle very large reference panels with hundreds or thousands of haplotypes. The name has two parts. The first, "mini", refers to the modest amount of computational resources it requires. The second, "mac", is short hand for [[MaCH]], our widely used algorithm for genotype imputation.
= Performance =
A good rule of thumb is that minimac should take about 1 hour to impute 1,000,000 markers in 1,000 individuals using a reference panel with 100 haplotypes. Performance should scale linearly with respect to all these factors. So, your approximate computing time in hours should be about:
These statistics refer to Intel
X7460 CPU running at 2.66 GHz using 1 core and your mileage may vary ; most modern CPUs should be no more than a few times faster (or slower) than that.
If you are estimating model parameters at the same time as imputing missing genotypes, you can account for the time needed for parameter estimation with the following formula:
In this updated formula, N<sub>rounds</sub> represents the number of iterations used for parameter refinement and N<sub>states</sub> represents the maximum number of reference and target haplotypes considered for each update.
= Download =
A public release of <code>minimac</code> is expected here soon.
Beta-version available upon request (firstname.lastname@example.org or email@example.com)
= Getting Started =
=== Preparing Your Data ===
To get started, you will need to store your data in [[Merlin]] format pedigree and data files, one per chromosome. For details, of the Merlin file format, see the [http://
www.sph.umich.edu /csg/abecasis/Merlin/tour/input_files.html Merlin Tutorial].
Within each file, markers should be stored by chromosome position. Alleles should be stored in the forward strand and can be encoded as 'A', 'C', 'G' or 'T' (there is no need to use numeric identifiers for each allele).
If figuring out position and strand for each marker seems like hard work, don't despair. For you, this should be the hardest bit of the entire process! For the computer, the fun is about to start.
=== Running MaCH ===
A typical MaCH command line to estimate phased haplotypes might look like this:
mach1 -d sample.dat -p sample.ped --rounds 20 --states 200 --phase --interim 5 --compact
This will request that MaCH estimate haplotypes for your sample, using 20 iterations of its Markov sampler and conditioning each update on up to 200 haplotypes. A summary description of these parameters follows (but for a more complete description, you should go to the MaCH website):
| Data file in [http://
www.sph.umich.edu /csg/abecasis/Merlin/tour/input_files.html Merlin format]. Markers should be listed according to their order along the chromosome.
| <code>-p sample.ped</code>
| Pedigree file in [http://
www.sph.umich.edu /csg/abecasis/Merlin/tour/input_files.html Merlin format]. Alleles should be labeled on the forward strand.
| <code>--states 200</code>
| Number of haplotypes to consider during each update. Increasing this value will typically lead to better haplotypes, but can dramatically increase computing time and memory use. A value of
100 - 400 is typical.
| <code>--rounds 20</code>
| Iterations of the Markov sampler to use for haplotyping. Typically, using 20 -
100 rounds should give good results. To obtain better results, it is usually better to increase the <code>--states</code> parameter.
| <code>--interim 5</code>
| Request that intermediate results should be saved to disk periodically. These will facilitate analyses in case a run doesn't complete.
== Imputation into Phased Haplotypes ==
Imputing genotypes using '''minimac''' is an easy straightforward process: after selecting a set of reference haplotypes, plugging-in the target haplotypes from the previous step and setting the number of rounds to use for the model parameter estimation, imputation should proceed rapidly.
=== Running Minimac ===
A typical minimac command line might look like this:
minimac --refHaps ref.hap.gz --refSnps ref.snps.gz --haps target.hap.gz --snps target.snps.gz --rounds 5 --states 200 --prefix results
| <code>--refHaps ref.hap.gz </code>
| Reference haplotypes (e.g. from [http://
www.sph.umich.edu /csg/abecasis/MACH/download/ 1000G-2010-06.html MaCH download page])
| <code>--snps target.snps.gz </code>
| <code>--haps target.hap.gz </code>
| Phased haplotypes where missing genotypes will be imputed.
| <code>--rounds 5</code>
| <code>--states 200</code>
| Maximum number of reference (or target) haplotypes to examined during parameter optimization.
| <code>--prefix imputed</code>
=== Reference Haplotypes ===
Reference haplotypes generated by the 1000 Genomes project and formatted so that they are ready for analysis are available from the [http://
www.sph.umich.edu /csg/abecasis/MACH/download/ 1000G-2010-06.html MaCH download page]. The most recent set of haplotypes were generated in June 2010 by combining genotype calls generated at the Broad, Sanger and the University of Michigan. In our hands, this June 2010 release is substantially better than previous 1000 Genome Project genotype call sets .
= Related Pages =