Changes

From Genome Analysis Wiki
Jump to: navigation, search

Minimac

10,224 bytes added, 12:53, 9 March 2018
no edit summary
'''You may want to learn about new and improved [[Minimac4]].'''
 
'''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.
There are several minimac related pages on this wiki. The major ones are: * [[Minimac]] - This page, the main minimac page.* [[Minimac: Tutorial]] - A short minimac tutorial.* [[Minimac: 1000 Genomes Imputation Cookbook]] - Cookbook instructions for 1000 Genomes Imputation with Minimac* [[Minimac Command Reference]] - Summary of minimac options* [[Minimac Diagnostics]] - Summary of diagnostics for imputation performance generated by minimac *[https://imputationserver.sph.umich.edu Imputation server] - We are running imputation (and pre-phasing) for you!   =Download =A binary Linux (64 bit) version of minimac is available [http://csg.sph.umich.edu/cfuchsb/minimac-beta-2013.7.17.tgz from here] and source code [http://csg.sph.umich.edu/cfuchsb/minimac.src.tgz from here] The current version of minimac should be stamped 2013.7.17 - if your version shows a different version number or date stamp when it runs, it is not current.  If you use this beta version, please be sure to stop by the [http://www.sph.umich.edu/csg/abecasis/MaCH/download/ MaCH download page] and fill out the registration form, so that we can let you know when an official release is available and keep you updated with respect to any bug fixes.  == Multiprocessor Version == The current version of minimac comes in two flavours, <code>minimac</code> and <code>minimac-omp</code>. The latter version uses the [[OpenMP]] protocol to support multi-threading, resulting in faster throughput. BE AWARE: since this version of minimac runs in parallel the order of samples in the output files (*dose, *haps,...) will vary between runs. Therefore, e.g. chunks have to be merged by sample id. == Change log == 2013.7.17 - minor bug fixes -- all variants (SNPs, InDels, SVs) in the reference VCF will be imputed - independent from the FILTER column setting - improved performance (Thanks to David Hinds - see also [[minimac2]] for the full set of performance improvements) 2012.11.16 - minor bug fixes 2012.10.9 - added: improved support for [http://www.shapeit.fr ShapeIT] phased haplotypes 2012.10.3 - added: full support for reference panel based chunking 2012.9.22 - fixed: chunk chromosome bug 2012.8.6 (early adopter) - added: chromosome X support 2012.3.14 - fixed: problem with --startposition  2012.2.29 - added: VCF support - added: IDR (Insertion, Deletion, Reference) support == Questions and Comments == Please contact [mailto:goncalo@umich.edu Goncalo Abecasis] or [mailto:cfuchsb@umich.edu Christian Fuchsberger]. = Performance = == Pre-phasing ==For the pre-phasing step, cost increases quadratically with the number of states and linearly with the number of rounds. The following table provides a simple example. {| class="wikitable" border="1" cellpadding="2"|- bgcolor="lightgray"! States! Cost per round|- | 100 states| 3 min|- | 200 states| 12 min = (3 min * 2<sup>2</sup>)|- | 400 states| 48 min = (3 min * 4<sup>2</sup>)|- | 500 states| 75 min = (3 min * 5<sup>2</sup>)|} So, in this case running haplotyping with 500 states and 10 rounds would require 75 min * 10 = 750 min. Typically, haplotype quality improves rapidly with the number of states but only slowly with the number of rounds. We recommend running ~20 rounds of the MaCH haplotyper and selecting a number of states as high as your patience will allow (but ideally greater than 200). == Imputation == 
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:
</math>
These statistics refer to a single core in a modern Intel X7460 CPU running at 2.66 GHz using 1 core and , although your mileage may will 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.
=Getting Started = Release Date  Using minimac for genotype imputation involves two steps. First, you will have to estimate haplotypes for your entire sample -- this will be the more computationally demanding step. Once that is done, you will be ready to quickly impute missing genotypes using the reference panel of your choice.  == Estimating Haplotypes for Your Sample ==
A public release of <code>minimac</code> is expected here by October 5For the haplotyping step, 2010we current recommend using [[MaCH]] with the --phase command line option. As input [[MaCH]] will need [[Merlin]] format pedigree and data files. All markers should be ordered according to their physical position and alleles should be labeled on the forward strand.
== Getting Started = Preparing Your Data ===
=== Step 1To 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: Pre-Phasing ===//csg.sph.umich.edu/abecasis/Merlin/tour/input_files.html Merlin Tutorial].
For the pre-phasing step we recommend [[MaCH]] using Within each file, markers should be stored by chromosome position. Alleles should be stored in the --phase command line option. As input [[MaCH]] needs a [[Merlin]] format pedigree forward strand and data file. All markers must can be ordered according encoded as 'A', 'C', 'G' or 'T' (there is no need to their physical positionuse numeric identifiers for each allele).
==== Your Own Data ====We recommend that, if at all possible, you should phase your chromosomes according to NCBI build 37. Future releases of the 1000 Genomes Reference panel and other public sets of reference haplotypes are expected to use this genome build.
To get started, you will need to store your data in [[Merlin]] format pedigree If figuring out position and data filesstrand for each marker seems like hard work, one per chromosomedon't despair. For detailsyou, this should be the hardest bit of the Merlin file formatentire process! For the computer, see the [http://www.sph.umich.edu/csg/abecasis/Merlin/tour/input_files.html Merlin Tutorial]fun is about to start.
Within ==== NCBI build 36 / NCBI build 37 ====The 1000G June reference panel is on build 36, future 1000G reference panels will be on build 37. This has also some impact on the pre-phasing:some SNPs will ordered differently in each genome build (we expect order will be more accurate in more recent builds!). Purists will claim that imputation using NCBI build 36 and NCBI build 37 reference panels requires phasing using the exact same reference panel -- others will claim this makes little difference. === 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 --sample 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): {| class="wikitable" border="1" cellpadding="2"|- bgcolor="lightgray"! Parameter ! Description|- |style=white-space:nowrap|<code>-d sample.dat</code>| Data file, markers in [http://csg.sph.umich.edu/abecasis/Merlin/tour/input_files.html Merlin format]. Markers should be stored by listed according to their order along the chromosome position.|- | <code>-p sample.ped</code>| Pedigree file in [http://csg.sph.umich.edu/abecasis/Merlin/tour/input_files.html Merlin format]. Alleles should be stored in 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 200 - 400 is typical. |-| <code>--rounds 20</code>| Iterations of the Markov sampler to use for haplotyping. Typically, using 20 - 30 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.|-| <code>--sample 5</code>| Request that random (but plausible) sets of haplotypes for each individual should be drawn every 5 iterations. This parameter is optional, but for some rare variant analyses, these alternative haplotypes can be encoded as very useful.|- | <code>--phase</code> | Tell [[MaCH]] to estimate phased haplotypes for each individual.|-| <code>--compact</code>| Reduce memory use at the cost of approximately doubling runtime. This option is recommended for most GWAS scale datasets and computing platforms.|} == Imputation into Phased Haplotypes == Imputing genotypes using '''minimac''A'is an easy and 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. === Creating SNP List File === ''C'Minimac''' requires a file listing markers in the haplotype file. This file can be easily generated by extracting the second column from the .dat file. In a standard Unix system, a command like this should do:  cut -f 2 -d " " sample.dat > target.snps === Running Minimac === A typical minimac command line might look like this: ==== using a VCF reference panel ==== minimac --vcfReference --refHaps ref.vcf.gz --haps target.hap.gz --snps target.snps.gz --rounds 5 --states 200 --prefix results 'G' or 'TNote''' : GWAS SNPs (file --snps target.snps.gz) are by default expected to be in the chr:pos format e.g. 1:1000 and on build37/hg19; otherwise, please set the --rs flag ==== using a MaCH reference panel ====  minimac --refHaps ref.hap.gz --refSnps ref.snps.gz --haps target.hap.gz --snps target.snps.gz --rounds 5 --states 200 --prefix results A detailed description of all minimac options is available [[Minimac Command Reference|elsewhere]]. Here is a brief description of the above parameters: {| class="wikitable" border="1" cellpadding="2"|- bgcolor="lightgray"! Parameter ! Description|- | <code>--refSnps ref.snps.gz </code> | List of SNPs in the reference panel |- | <code>--refHaps ref.hap.gz </code> | Reference haplotypes (there e.g. from [http://csg.sph.umich.edu/abecasis/MACH/download/ MaCH download page])|- | <code>--vcfReference </code> | This option specifies that the provided --refHaps file is provided in VCF format , no need --refSNPs file needed.|- | <code>--rs </code> | In combination with --vcfReference, allows to use numeric rs GWAS SNP identifiers |- | <code>--snps target.snps.gz </code>| SNPs in phased haplotypes. These should largely be a subset of the SNPs in the reference panel.|- | <code>--haps target.hap.gz </code>| Phased haplotypes where missing genotypes will be imputed.|- | <code>--sample target.sample </code>| Sample list in ShapeIT format.|- | <code>--shape_haps target.hap.gz </code>| ShapeIT phased haplotypes where missing genotypes will be imputed.|- | <code>--chr 22</code>| Chromosome for which we will carry out imputation (needed to run ShapeIT with chr:pos identifiers - default setting).|- | <code>--rounds 5</code>| Rounds of optimization for model parameters, which describe population recombination rates and per SNP error rates.|- | <code>--states 200</code>| Maximum number of reference (or target) haplotypes to be examined during parameter optimization.|- | <code>--prefix imputed</code>| Optionally, a string that is used to help generate output file names.|} === Reference Haplotypes === Reference haplotypes generated by the 1000 Genomes project and formatted so that they are ready for analysis are available from the [http://csg.sph.umich.edu/abecasis/MACH/download/ MaCH download page]. As of this writing, the most recent set of haplotypes are based on genotype calls were generated in May 2011 and are an interim analysis of Project's Phase I data. === Imputation quality evaluation ===To evaluate imputation quality, Minimac hides data for each allelegenotyped SNP in turn and calculates 3 statistics:* looRSQ - this is the estimated rsq for that SNP (as if SNP weren't typed). * empR - this is the empirical correlation between true and imputed genotypes for the SNP. If this is negative, the SNP is probably flipped. * empRSQ - this is the actual R2 value, comparing imputed and true genotypes.  These statistics can be found in the .info file === Additional Sources of Information ===
The 1000 Genome pilot project genotypes use NCBI Build 36If the combination of MaCH and Minimac still runs too slowly for you, and you have access to a multi-processor compute cluster, you can look at [[ChunkChromosome]] page to learn how to conveniently split each chromosome into multiple segments that can be analyzed in parallel. For information on how to put the resulting chunks back together, see [[Ligate Minimac|this page]].
==== Usage ==== mach1 -d sampleIf you are especially interested in 1000 Genomes Imputation, then you should look at the [[Minimac: 1000 Genomes Imputation Cookbook]].dat -p sample.ped --rounds 20 --states 200 --phase --interim 1 --sample 1 --compact
==== Parameters ==X Chromosome Imputation == minimac supports the imputation of genotypes on the X chromosome (non-pseudo-p sample.pedpedigree file in [http://www.sph.umich.edu/csg/abecasis/Merlin/tour/input_filesautosomal part).html Merlin] format
# Split the X chromosome pedigree file by sex.## For females: follow the same protocol as for autosomes (phase with MaCH and impute with minimac).## For males### Remove the pseudo-autosomal part (for build hg18: chrX:1-2709520 and chrX:154584238-154913754 ; for build hg19 chrX:60001-2699520 and chrX:154931044-d sample.dat155260560)dat ### Convert the pedigree file in [httpinto a MaCH haplotype file (missing genotypes should be encoded as://www.sph.umich "0" or ".edu/csg/abecasis/Merlin/tour/input_files" or "N" ) and impute using minimac as described above.html Merlin] format
--rounds R
how many iterations of the Markov sampler should be run.
--states ST
use a random subset of ST haplotypes as reference. We recommend values between 200 - 500. More states result in more accurate haplotypes, but are computational more expensive and require more memory.
:::: --interim I'''<Example of a male only pedigree file>''':::: FAM1003 ID1234 0 0 M A/A A/A C/Coutput a set of best-guess haplotypes every I rounds by building consensus from all previous Markov iterations:::: FAM1004 ID5678 0 0 M 0/0 C/0 G/G:::: .. These intermediate haplotypes can be used for imputation.:::: '''<End of pedigree file>'''
--sample SAoutput a set of haplotypes every SA rounds based on random sampling from :::: ''Note that, consistent with the last Markov iteration. These intermediate results can be combined and used Merlin convention, hemizygous males are listed as input for the imputation processif they were homozygous.''
:::: '''<Example of the corresponding haplotype file>''':::: FAM1003->ID1234 HAPLO1 AAC:::: FAM1003->ID1234 HAPLO2 AAC:::: FAM1004-phase >ID5678 HAPLO1 0CGenables [[MaCH]] phasing mode:::: FAM1004->ID5678 HAPLO2 0CG:::: ...:::: '''<End of the corresponding haplotype file>'''
= Post--compactimputation Association Analysis === Quantitative Traits ==reduces the amount of memory needed dramatically, but doubles execution timePlease use [http://csg.sph.umich.edu/yli/mach/download/mach2qtl.source.V108.tgz mach2qtl].
=== Step 2: Imputation =Binary Traits ==Imputing genotypes using '''minimac''' is an easy straightforward processPlease use [http: after selecting a set of reference haplotypes (see below how //csg.sph.umich.edu/yli/mach/download/mach2dat.source.1.0.18.tgz mach2dat]. Versions 1.0.18 and above accommodate to get the latest 1000 Genomes reference panel ready to go with '''minimac''' ), plugging-in the target haplotypes from the pre-phasing step and setting the number of rounds to use for the model parameter estimation, samples get imputed once a secondoutput.
= Reference =
==== Reference Haplotypes ====If you use [[minimac]] or [[minimac2]] please cite:
Reference haplotypes generated by the 1000 Genomes project and formatted so that they are ready for analysis are available from the Fuchsberger C, Abecasis GR, Hinds DA. minimac2: faster genotype imputation. Bioinformatics 2014 [http://wwwbioinformatics.sphoxfordjournals.umich.eduorg/content/csgearly/abecasis2014/MACH10/download22/1000G-2010-06bioinformatics.btu704.html MaCH download pageshort]. 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.
==== Usage ====Howie B, Fuchsberger C, Stephens M, Marchini J, and Abecasis GR. minimac Fast and accurate genotype imputation in genome-wide association studiesthrough pre-refHaps refphasing.hapNature Genetics 2012 [http://www.gz --refSnps refnature.snpscom/ng/journal/vaop/ncurrent/full/ng.gz --haps target2354.hap.gz --snps target.snps.gz --rounds 10html]
=Questions and Comments === Parameters ==== --refHaps ref.hapReference haplotypes (e.g. [http://www.sph.umich.edu/csg/abecasis/MACH/download/1000G-2010-06.html MaCH download page]) --refSnps ref.snpsReference SNPs (e.g. [http://www.sph.umich.edu/csg/abecasis/MACH/download/1000G-2010-06.html MaCH download page]) --haps target.hapTarget haplotypes (from the pre-phasing step) --snps target.snpsTarget snps (from the pre-phasing step) --rounds [5]how many rounds should be run to optimize the model parameters: (i) error rate for each marker (*.erate) and (ii) crossover rates (*.rec) for each interval. --states [200]how many haplotypes to use for parameter optimization. --emuse an e-m algorithm, instead of mcmc, for parameter optimization --rec file.recuse crossover rates from this file --erate file.erateuse error rates from this file --prefix [minimac]prefix for output files, default minimac
Please contact [mailto:goncalo@umich.edu Goncalo Abecasis] or [mailto:cfuchsb@umich.edu Christian Fuchsberger].
== Related Pages ==
If you are looking to learn about small computers made by Apple, Inc., you have come to the wrong page. Try looking at http://www.apple.com/macmini/, instead.
487
edits

Navigation menu