Simulator of secondary CONtact using Fisher's JUNCTION representation of genome admixture.
C++ Makefile
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


the simulator of secondaty CONtact using Fisher's JUNCTION model of genome admixture. It is a direct descendant of forsim, simulator writen for my Master thesis.


The software was developed and tested on OS X and Linux and it has not been tested for windows.


Open a terminal, download repository

git clone

enter the folder and build Conjunction by

cd Conjunction && make

The fully operational executable conjunction should be created and prepared for use. You can install conjunction to by

make install

which will copy the binary to /usr/local/bin. If you wist to install conjunction to an alternative place you can type

make install INSTAL_PREFIX=/home/slim/

and it will be installed in provided path/bin. In my example /home/slim/bin.


Travis build & unit test of master branch : master_build Travis build & unit test of dev branch : dev_test

Several unit tests are implemented in separated binary. To execute the unit test on your computer

make test

will compile testing binary, execute tests and delete testing binary if tests passed.


The software reads a setting file (setting.txt by default), the specification of the simulation is read from there. The template is delivered with the software, therefore simple conjunction should perform a set of sumulations. For details of check setting file or wikipage setting.

conjunction [--version] [--help] [setting.txt] 1> summary.out 2> simulation_log.err

The log of the simulation is streamed to standard error stream. The basic output of simulation is streamed to standard output stream. If other type of output is desired it has to be set in setting, details can be found at corresponding wikipage describing output.

Mechanisms of simulations

The simulator is restricted to secondary contact hybrid zones where reduced fitness of hybrids is caused purely by genetic background. The representation of individuals currently does not allow new mutations in simulation. The only information for every loci is if it originated in population on one or the other side of the hybrid zone (population A or B). All details can be found in wiki.

If there is anything unclear or you encounter a bug, please open an issue!