假设我们想模拟经历了以下群体演化历史的群体样本:
我们在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
结构差异,也就是只有一个1
block。 - 最后定义我们模拟的数据的类型,数量(长度),突变率,重组率等等。
参考:fastsimcoal27