msprime icon indicating copy to clipboard operation
msprime copied to clipboard

Add an ancestry model "type" or similar enum/flag

Open jeromekelleher opened this issue 4 years ago • 1 comments

In #1573 we added the idea of a "duration" to ancestry models, which determines the maximum amount of time we can run. There was also some clarification in the docs about models that will run until full coalescence (e.g. Hudson), and those that will complete before this (e.g Sweeps, Pedigree).

It is current an easily made gotcha to do something like

ts = msprime.sim_ancestry(..., model=[msprime.DiscreteTimeWrightFisher(), msprime.StandardCoalescent()])

Because we've not specified a duration value, the second model will never run. We should add a type (or something) enum to the model class, which tells us whether models are "complete" or not, so that if we see any models in the list after a "complete" model with no duration value, we know it's an error.

jeromekelleher avatar Mar 25 '21 09:03 jeromekelleher

Can change the warning in the docs about this too.

jeromekelleher avatar Mar 25 '21 09:03 jeromekelleher