BottleSim is a computer simulation program for simulating the process of population bottlenecks. The major novelties of the program include:
Modules included in this version:
An option of generating raw genotypic data output is also available. The raw genotypic data output file contains the genotypic data from the last year of each iteration. The genotypic data output is in GENEPOP (Raymond and Rousset 1995) format. This feature allows users to perform poer analysis of statistical genetic tests.
The degree of generation overlap indicates the percentage of individuals that being assigned a random age value with the longevity limit. The age of individuals that are not assigned randomly is set to zero in year0.
The operation is self-explanatory, details of the algorithm are provided in Kuo and Janzen (2003).
This program can only read ASCII text files (e.g. MS-DOS text or text-only).
| 3 | --- Number of alleles |
| 0.6 | --- Frequency of 1st allele |
| 0.3 | --- Frequency of 2nd allele |
| 0.1 | --- Frequency of 3rd allele |
The first line indicates the number of alleles in the input file, frequency of each allele starts from second line as demonstrated in sample input file (input1.txt).
| 6 | --- Number of individuals |
| 3 | --- Number of loci |
| Locus1 Locus2 Locus3 | --- List of locus names |
| ID1 1 4 A D f h | --- ID and genotype of 1st individual |
| ID2 2 9 F J s x | --- ID and genotype of 2nd individual |
| ID3 0 8 B I ? ? | --- ID and genotype of 3rd individual |
| ID4 7 7 T T o z | --- ID and genotype of 4th individual |
| ID5 1 5 C F a a | --- ID and genotype of 5th individual |
| ID6 5 7 G H c d | --- ID and genotype of 6th individual |
The first line indicates the number of individuals in the input file and the second line indicates the number of loci typed for each individual. The third line is a list of locus names. Genotypic data start on the fourth line; each individual has an ID followed by its multi-locus genotype in the same order as the locus name list.
Alleles can be coded as any number or character (0-9, A-Z, a-z) as demonstrated in sample input file (input2.txt). The default missing value is '?'. If the genotype of a locus is unknown, the genotype of that locus should be entered as '? ?' (individual3 - locus3). Locus with one or two unknown alleles will be ignored and not included in the allele frequency calculation.
| 6 | --- Number of years to simulate | |
| 0 | 20 | --- Year0, population size = 20 |
| 1 | 10 | --- Year1, population size = 10 |
| 2 | 20 | --- Year2, population size = 20 |
| 3 | 10 | --- Year3, population size = 10 |
| 4 | 30 | --- Year4, population size = 30 |
| 5 | 15 | --- Year5, population size = 15 |
| 6 | 8 | --- Year6, population size = 8 |
The first line indicates the number of years to simulate. Population size settings start from the second line, each line has the year number followed by the population size of the year. Year0 indicates the starting population size (founder population).
| 6 | --- Number of years to simulate | ||
| 0 | 30 | 15 | --- Year0, population size = 30, number of female = 15 |
| 1 | 20 | 10 | --- Year1, population size = 20, number of female = 10 |
| 2 | 10 | 5 | --- Year2, population size = 10, number of female = 5 |
| 3 | 6 | 3 | --- Year3, population size = 6, number of female = 3 |
| 4 | 5 | 2 | --- Year4, population size = 5, number of female = 2 |
| 5 | 10 | 3 | --- Year5, population size = 10, number of female = 3 |
| 6 | 8 | 4 | --- Year6, population size = 8, number of female = 4 |
The first line indicates the number of years to simulate. Population size settings start from the second line, each line has the year number followed by the population size and the number of female of the year. Year0 indicates the starting population size (founder population).
The simulation process of this program is only limited by the amount of memory (RAM) available. (Mac OS 9 users: use command+I to change the amount of memory assigned to the program.)
Other limitations regarding input/output filenames and input data:
Several users contacted me about the program quits without generating any error message (usually when running on a Windows machine). It turned out that this is often caused by a combination of small population size and a high maturation setting. When the population size is small (for any given year) and the maturation setting is high, it is possible that all males (or all females) in the population are juveniles just by chance. Under this scenario, the program encounters a logical error when it needs to generate new individuals. The program should generate an error message like this:
*** Population size setting error
*** Number of breeding male < 1
*** Unable to generate new individuals
before it quits. For some unknown reasons, Windows may just close the application window without showing the error message.
Currently there are no good solutions to this problem other than to increase the population size or to lower the maturation setting.
, Janzen FJ. 2003. BottleSim: a bottleneck simulation program for long-lived species with overlapping generations. Molecular Ecology Notes, 3, 669-673. DOI: 10.1046/j.1471-8286.2003.00532.x
Raymond M, Rousset F. 1995 GENEPOP (version 1.2): population genetics software for exact tests and ecumenicism. Journal of Heredity, 86, 248-249.