SIB fastsimcoal2
University of Berne


fast sequential Markov coalescent simulation of genomic data under complex evolutionary models



Changes in fsc27 relative to fsc26

New features

  1. New syntax in the .est files. It is now possible to include previously defined simple parameters as search range delimiters. The keyword paramInRange needs to be specified at the end of lines containing such parameters.
  2. New keyword in .par or .tpl file: absoluteResize. It allows a given sink population to take a new absolute size, independently of its previous size. It eliminates the need to compute this resize as a complex parameter in the .est file
  3. The [RULES] section has been suppressed from input files. It is simply not read anymore. These rules have become obsolete given the new syntax described in point.
  4. SNP data types are not considered anymore, as they led to biased simulations. Use short segments of DNA and the -sX option to generate X SNPs instead
  5. Simulations of large and sparsely occupied structured populations has been optimized and can be up to10 times faster than the previous version. There is very little gain for simulations with a small number of migration-connected demes, though.
  6. Simulations of large recombining chromosomes has been optimized, when using large values of the -k options
  7. Generation of genotype table (.gen file) as an alternative output to Arlequin (-G option). The additional -g option allows one to generate diploid genotypes (coded as 0, 1 or 2) instead of haploid genotypes (coded as 0 or 1)
  8. Possibility to “kill” demes, such as to make them inaccessible to migration. Setting a sink deme size to zero (using a sink resize of zero in a historical event) will now prevent further migration to this deme. This is useful as one can keep the same migration matrix after the disappearance of some demes (e.g. due to population fusion backward in time).
  9. Comments are now possible at the end of any line of .est files.
  10. Other changes and bug corrections:

Changes in fsc26 relative to fsc25 ver 2.21 (November 2015)

New features

  1. Simple implementation of individual inbreeding
  2. Possibility to define initial parameter values for demographic inference
  3. Computation of MAF 1D and 2D SFS with option --foldedSFS by simply folding the corresponding unfolded SFS (for compatibility with angsd, where the minor allele is computed separately for each SFS)
  4. Optional faster but approximate log computations with option --logprecision n, where n is a number between 10 and 23 specifying the precision of the computation of logarithms. 23 means full precision and is the default value.
  5. Optional parameter optimization without taking singletons into account specified with option --nosingleton
  6. Syntax changes
  7. Implementation of instantaneous bottlenecks with keyword instbot added to historical event definition. Only works in absence of recombination for the moment.

Bug corrections

Changes in fastsimcoal25 (fsc25) relative to fastsimcoal21 (August 2014)

In addition to overall polishing and bug corrections, the main innovation of ver 2.5 of fastsimcoal2 is the introduction of multithreading (with the -c option). This option aims at offering the possibility of doing parameter optimization on desktop machines, as most modern machines have  multiple cores. Note that there is no strict linear increase in the performance of multithreaded runs and no. of threads (cores), so that it is not recommended to use more than one thread on a linux cluster.

New features

  1. The fastsimcoal2 program ver2.5 has been renamed fsc25 (shorter name is better)
  2. Use of a different random number generator (same seed will produce different results than in fastsimcoal21)
  3. Code optimization resulting in up to 1-75% speed gain for single threaded version (see benchmark)
  4. Multithreading (64 bit only), for  more speed gain on  a multicore processor desktop machine (see benchmark)
  5. Result files for parameter estimation now output in separate result directory
  6. More options to generate SNP data
  7. New specification for MAF SFS
  8. Added a version for macOSX running in earlier versions (e.g. from 10.6 upwards) (thanks to Iain Mathieson)
  9. More tolerant reading of input files (thanks to Allan Strand)
  10. Rules in est files can now be used for parameter estimations

Bug corrections in fsc25 relative to fsc21

  1. Corrected bug where maximum number of simulations was set to lower number of simulations during Brent optimization 
  2. Program crashed when trying to compute SFS when too many polymorphic sites need to be kept in memory (this number can be changed with -k option)
  3. Solved problems when multiple parameter definitions are listed in def files
  4. Corrected bug preventing recombination to be simulated when several block structures were defined in par file (thanks to Thomas Willems)
  5. Incorrect computatin of likelihood when using fractional numbers i observed SFS (thanks to Andreas Kautt)

Bug corrections in ver 2.5.0.2 (August 2014)

  1. Growth rates was inactivated in ver 2.5.0, and all simulatins were perfromed with a constant size population (thanks to Melissa Wilson Sayres for pointing this out)

Bug corrections  and modifications in ver 2.5.1  (October 2014)

  1. Example files are back in zip files (thanks to Alfredo)
  2. Description of the exact format of the multiSFS format has been modified in the manual (thanks to Vitor Sousa and Raphael Leblois)
  3. Problem in implementing recombination with multiple runs (option -nx where x>1) (thanks to Vitor Sousa and Yang)
  4. More precision on branch length  when outputing tree in NEXUS format (thanks to Shuo Yang)
  5. New faster way to implement recombination under the SMC' algorithm and its extension to multiple recombinations between sites

Bug corrections  and modifications in ver 2.5.2  (March 2015)

1.      Bug corrections:

  1. –k option has no upper limit anymore, and its default value is 100,000
  2. Added new –P command line option, allowing to get the global pooled SFS obtained by pooling all lineages as if in a single population
  3. Added two new operators in est file for complex parameters: %min% and %max%
  4. Added new functions in est files for complex parameters: abs(), exp(), log(), log10(), pow10()
  5. Added a new "bounded" keyword in est file to specify that the upper range of a simple parameter is bounded. Needs to be listed after the "output" or "hide" keywords.
  6. Added two new keywords for historical events: "keep" and "nomig".
  7. Expected joint SFS is now rescaled such that the sum of sfs entries for polymorphic sites is 1. This shoudl lead to more exact lhood computation from multiple 2D SFS.

Bug corrections  and modifications in ver 2.5.2.8  (May 2015)

1.      Bug corrections:

  1. Speed optimization
  2. Output of random DNA nucleotides instead of N for monomorphic loci with the –S option.
  3. Possibility to run fsc without command line option if file "fsc_run.txt" is present and contains run path and command line options in current working directory

Bug corrections  and modifications in ver 2.5.2.21  (November 2015)

1.      Bug corrections:

  1. Speed optimization. Up to 30% speed gain.
  2. Output of time to MRCA in file <generic name>_mrca.txt with new compiler directive --recordMRCA. Beware that this option really slows down computations. Note that we also output the he deme in which MRCA occurred.

Changes in fastsimcoal21 relative to fastsimcoal2 (December 2013)

New features

  1. 64 bit windows version of fastsimcoal2 (20% speed gain compared to 32 bit version!)
  2. Modified output of monomorphic samples.  By default, fastsimcoal2 only outputs polymorphic sites for DNA data. If the coalescent tree is too shallow, no mutation can occur on a given tree. In that case, fastsimcoal2 now outputs a single loci with "N" for all individual instead of missing data in arlequin files (*.arp).  This change prevents a bug when analysing simulated arlequin files with arlsumstat.
  3. Optional use of a manual seed for the random number generator (--seed xxx command line option)
  4. Outputs par file with estimated maximum likelihood parameters. This file can be used to generate pseudo-observed SFS to estimate parametric bootstrap confidence intervals around the ML parameters.

Bug corrections

  1. With -s0 option, the number of reported polymorphic sites in file "<file_name>_numPolymSites.obs" was incorrectly set to zero and the maximum likelihood reported in the file "<file_name>.lhoodObs" was set to INF. These two problems are now corrrected.
  2. Multiple whitespace or multiple tabs between parameters in historical events caused erratic behavior. Multiple separators are now allowed in historical events.
  3. When estimating a single parameter from the SFS, the number of performed ECM loops could be smaller (usually 2) than the required minimum.


Changes in fastsimcoal2 relative to fastsimcoal

New features

  1. Optional output of all simulated sites (including monomorphic sites) (-S command line option)
  2. Optional use of a manual seed for the random number generator (--seed xxx command line option)
  3. Simulation of ascertained SNP data
  4. Generation of the (joint) site frequency spectrum (SFS) from DNA sequence data
  5. Generation of multidimensional (>2D) SFS
  6. Generation of Nexus coalescent trees with branch lengths now expressed in fractions of generations (e.g. 1205.123)
  7. Ability to estimate demographic parameters from the site frequency spectrum inferred from DNA sequences or ascertained SNP chips
  8. Need to specify number of SNPs to output with -s option (specify 0 to output all SNPs)

Bug corrections

  1. Potential crash when generating scenarios with historical events and  recombination 
  2. Crash when simulation of samples of size zero and recombination
  3. The pattern of polymorphisms obtained in a population for a given past demography changed depending or not if  other samples were simulated as well, in presence of recombination
  4. Non-convergence to the MRCA when simulating serial samples of age zero
Notes that bugs 1-3 were due to the same problem in the code.


Last updated by L. Excoffier on 19.01.2022 Document made with KompoZer