Setting a specific model

84 views
Skip to first unread message

shu-ping

unread,
Apr 7, 2011, 6:08:53 AM4/7/11
to popABC
Dear Joao

I want to test a specific evolution model-secondary contact model.
The model describe as the following.
Starting T1 generations ago, the descendant populations 0 and
population 1 diverged in total reproductive isolation (i.e., m=0)
until T2 generations ago. Then they experienced gene flow at a
constant rate (i.e.,M1 ,M0>0).

But popABC have no function to edit this historical event.
I know there are other algorithms, such as ABCtoolbox, can edit
complex evolution scenarios. But for some reasons I would like to try
popABC.
A tricky idea occurred to me, but I don't know does it make sense. If
you can give me some advice, I'll really appreciate it!
If I add a ghost population(sample size=0), I'll get two additional
parameters-tev2 and Manc.
The steps what I plan to do as the following:
Use simulate V1.0
Creat the .prs file
Tree topolgy : (0,2):1 (population2 is the ghost population; pop0 and
1 real exist)
migration manc,m2=0; m0,m1>0
N2 = 0 (uniform distribution, up limited=0)
Creat the .ssz file (put 0 in ghost population)
Creat the .sst file (But remove the statistics about the ghost
population by manual in rejection step.)

Can I treat tev2, m0 and m1 as T2,M0 and M1 which described in the
previous?

Thanks!

Joao Sollari Lopes

unread,
Apr 13, 2011, 10:18:35 AM4/13/11
to popABC
Hi Shu-ping,

That would very ingenious! Unfortunately the simulations won't run
because of the way the software was set.

The problem is that the migration matrix does not overrun the
migration prior distributions. If the priors are set to >0, popabc
will always try to insert a migrant into a population. So, if the
frequency of migrants from the other populations is set to 0, the
software will crash.

Instead, the software searches for problems like that and exits with a
error message "the sum of the prob for a given migration as to be
1.0".

I think you will be better of by using ABCtoolbox or Bayesian SSC.

Best,
Joao

shu-ping

unread,
Apr 15, 2011, 5:58:11 AM4/15/11
to popABC
Hi Joao,

Thanks for your kindly replay.
I tried to set my .prs as the following. It worked fine.
==========================================

100 1 3 2

1.00 1.00

s s

1 2

1 0 10000 pop1
1 0 10000 pop2
1 0 0 pop3(ghost pop)

1 0 100000
1 0 100000

1 0 100000
1 0 10000

1 0 0.5
1 0 0.5
0 <=== there, I set 0 migration in population 3(ghost
population)


0 <=== For secondary contact scenario, manc =0

0
2 5.28e-06 3e-06 3e-06 3e-06

0
0

0
(0 - do not use migweights matrix;)
----------------------------------------------------------------------------------------

I didn't set the migration matrix. This may lead some problems.
(mig1 and mig2 may include the migration from the ghost population
3,i.e. 3->1 and 3->2 )

So I set the migration matrix:

----------------------------------------------------------------------------------------
1 0 0.5
1 0 0.5
0 <=== there, I set 0 migration in population 3(ghost
population)


0 1 0 <=== only allow the migration from pop2
0 1 0

1 0 0
1 0 0

1 0 0
1 0 0

0 mw112 mw113
0 mw122 mw123

mw211 0 mw213
mw221 0 mw223

mw311 mw312 0
mw321 mw322 0
===========================================
It worked fine,too.
Then I checked the .dat file, and I found mig3=0 as I want.
Follow these setting, popABC didn't crash.

Did I miss some points?

I'll really glad if this way work!

Thanks again for your help.

Best regards,

Shu-Ping

Joao Sollari Lopes

unread,
Apr 20, 2011, 6:29:17 AM4/20/11
to popABC
Hi Shu-ping,

The trouble here is that the migration matrix you want to set is:

0 1 0
0 0 0 <- no migrants entering pop1 after t1

1 0 0
0 0 0 <- no migrants entering pop2 after t1

0 0 0 <- no migrants entering pop3 before t1
0 0 0 <- no migrants entering pop3 after t1

But you can only go as far as:

0 1 0
0 0 0 <- no migrants entering pop1 after t1

1 0 0
1 0 0 <- MIGRANTS HAVE TO BE SET TO ENTER pop2 EVEN AFTER t1

0 0 0 <- no migrants entering pop3 before t1
0 0 0 <- no migrants entering pop3 after t1

The way the population trees are set is that pop1 becomes popA1 after
joining with pop3 (from present to past). So you can set a "no
migration" prior for this population, thus, the second line in the
migration weights matrix can be all 0s. For pop2 you can only set the
migration prior once. This "branch" will always be labelled pop2. If
you set a prior so that there are migrants entering the population you
cannot set the migration weights to be all 0s. As for pop3, because
the migration prior is always set to be 0 you can specify all 0s for
the last and the one before the last lines of the migration weights
matrix.

The prior you have used states a unidirectional migration rate from
pop1 (popA1 then) to pop2.

Great effort, though!

Best,
Joao

shu-ping

unread,
Apr 20, 2011, 10:03:43 AM4/20/11
to popABC
Oh! I got it! Thanks for your patience. It's pretty clear!

Best regards,

Shu-Ping
Reply all
Reply to author
Forward
0 new messages