假设我们想模拟经历了以下群体演化历史的群体样本:

population.png
我们在3popDNASFS.par文件中来描述这个群体演化历史的过程,这个演化过程是时间回溯的,从下往上依次来描述这个过程:
3popDNASFS.par
//Number of population samples (demes)
3
//Population effective sizes (number of genes)
20000
5000
10000
//Sample sizes
20
20
6 1500
//Growth rates: negative growth implies population expansion
0
0
0
//Number of migration matrices : 0 implies no migration between demes
0
//historical event: time, source, sink, migrants, new size, new growth rate, migr. matrix
4 historical event
2000 1 2 0.05 1 0 0
2980 1 1 0 0.04 0 0
3000 1 0 1 1 0 0
15000 0 2 1 3 0 0
//Number of independent loci [chromosome]
1 0
//Per chromosome: Number of linkage blocks
1
//per Block: data type, num loci, rec. rate and mut rate + optional parameters
DNA 10000000 0.00000001 0.00000002 0.33
- 首先我们定义了要模拟的群体数量是
3个,初始化了它们的有效群体大小Demo 0:20000, Demo 1:5000, Demo 2:10000。 - 接着我们定义了我们要模拟的单倍型的数量:Demo 0:
20, Demo 1:20, Demo 2: 在1500代前的数量是6。由于它们的有效群体大小没有变化(相对于梯形增加或减少),设置它们的增长率为Demo 0:0, Demo 1:0, Demo 2:0。
没有种群间的持续基因流,所以不设置迁移矩阵,迁移矩阵的数量为0。 - 接下来定义历史事件,我们从下往上回溯。一共涉及
4个历史事件:
- 从现在起回溯到
2000代的时候,有0.05的Demo1(source) 要回到Demo2(sink) 中,Demo 2 (sink) 的有效群体是原来的1倍,群体增长率为0,没有基因流发生0。 - 继续回溯到
2980代(3000-20) 时,Demo1的群体变为原来的0.04倍,接着增长率为0并且没有持续基因流0 0。 - 接着回溯到3000代的时候,全部
1的Demo1(source) 要回到Demo0(sink) 中,Demo 0 (sink) 的有效群体是原来的1倍,群体增长率为0,没有基因流发生0。 - 最后回溯到15000代时,全部
1的Demo0(source) 要回到Demo2(sink) 中,Demo 2 (sink) 的有效群体是原来的3倍,群体增长率为0,没有基因流发生0。
- 然后我们定义在一条
1染色体上模拟,并且没有0结构差异,也就是只有一个1block。 - 最后定义我们模拟的数据的类型,数量(长度),突变率,重组率等等。
参考:fastsimcoal27