Migrate estimates effective population sizes and past migration rates between n population assuming a migration matrix model with asymmetric migration rates and different subpopulation sizes. Migrate uses maximum likelihood or Bayesian inference to jointly estimate all parameters. It can use the followind data types: sequence data using Felsenstein's 84 model with or without site rate variation, single nucleotide polymorphism data, microsatellite data using a stepwise mutation model or a brownian motion mutation model, and electrophoretic data using an 'infinite' allele model. The output can contain: Estimates of all migration rates and all population sizes, assuming constant mutation rates among loci or a gamma distributed mutation rate among loci. Profile likelihood tables, Percentiles, Likelihood-ratio tests, and simple plots of the log-likelihood surfaces for all populations and all loci.