Selection

discoal can simulate various types of natural selection, including hard sweeps, soft sweeps, partial sweeps, and recurrent hitchhiking. Selection is modeled by conditioning the coalescent on allele frequency trajectories.

Types of Sweeps

Hard Sweeps

A classical selective sweep from a single new mutation:

  • -wd: Deterministic trajectory

  • -ws: Stochastic trajectory

  • -wn: Neutral fixation

Parameters:

  • tau: Time since fixation (in units of 4N generations)

  • -a alpha: Selection strength (2Ns)

  • -x position: Location of selected site (0-1)

Example:

# Stochastic sweep fixed 0.05 time units ago
./discoal 20 10 10000 -t 20 -r 20 -ws 0.05 -a 1000 -x 0.5

Soft Sweeps

Selection on standing variation or recurrent mutation.

From standing variation (-f):

# Sweep from initial frequency 0.1
./discoal 20 10 10000 -t 20 -r 20 -ws 0.05 -a 1000 -x 0.5 -f 0.1

From recurrent mutation (-uA):

# Recurrent adaptive mutation rate 0.0001
./discoal 20 10 10000 -t 20 -r 20 -ws 0.05 -a 1000 -x 0.5 -uA 0.0001

Partial Sweeps

Sweeps that stop before fixation using -c:

# Partial sweep to frequency 0.8
./discoal 20 10 10000 -t 20 -r 20 -ws 0.05 -a 1000 -x 0.5 -c 0.8

# Partial soft sweep from standing variation
./discoal 20 10 10000 -t 20 -r 20 -ws 0.05 -a 1000 -x 0.5 -f 0.1 -c 0.8

Linked Selection

Simulate effects of a sweep outside the sampled region:

  • -ls: Stochastic sweep to the left

  • -ld: Deterministic sweep to the left

  • -ln: Neutral fixation to the left

Example:

# Sweep to the left at genetic distance 4Nr = 100
./discoal 20 10 10000 -t 20 -r 20 -ls 0.05 -a 1000

The position is drawn uniformly between 0 and the specified genetic distance.

Recurrent Hitchhiking

Multiple sweeps over time:

  • -R rate: Sweeps within the locus

  • -L rate: Sweeps to the left of the locus

Rate is per 2N individuals per generation.

Example:

# Recurrent sweeps at rate 0.001
./discoal 20 10 10000 -t 20 -r 20 -R 0.001 -a 1000

# Recurrent partial sweeps
./discoal 20 10 10000 -t 20 -r 20 -R 0.001 -a 1000 -c 0.7

Combining with Demography

Selection can be combined with population size changes:

# Sweep during population expansion
./discoal 20 10 10000 -t 20 -r 20 \
  -ws 0.05 -a 1000 -x 0.5 \
  -en 0.02 0 10.0 \
  -en 0.1 0 1.0

Advanced Options

Time discretization (-i):

Controls time step size during sweeps (default 40):

# Finer time steps (slower but more accurate)
./discoal 20 10 10000 -t 20 -ws 0.05 -a 1000 -i 400

Effective population size during sweep (-N):

# Set sweep effective size to 500,000
./discoal 20 10 10000 -t 20 -ws 0.05 -a 1000 -N 500000

Output Considerations

By default, the selected SNP is included in the output. To exclude it:

# Hide selected SNP
./discoal 20 10 10000 -t 20 -ws 0.05 -a 1000 -x 0.5 -h

Warning

Including the selected SNP will bias estimates of θ. Simulations with θ=0 will still contain the selected SNP.