-
Notifications
You must be signed in to change notification settings - Fork 77
Description
In #1138 it was decided to require an ordering for the individuals table: children must come after their individual parents. This has turned out to be a problem for SLiM, because it has its own ordering requirements for the individuals table which conflict with this policy. This was not noticed until now because SLiM wasn't using the parents column; but now that it is putting pedigree-based info in the parents column, now we have a conflict between the two ordering policies. Further discussion of that can be found at MesserLab/SLiM#231.
Discussion on Slack indicates that nobody is actually using this ordering requirement for anything, and that the best solution might be to simply remove tskit's ordering requirement. Quoting @jeromekelleher throughout:
Short answer, "no" we're not doing anything with it, and actually, I was wondering if we had got it wrong too. It actually feels quite unnatural when you start working with it, especially if you were to simulate a pedigree in the correct time direction (i.e., backwards 😉). You'd end up having to reverse the individual table, or else buffer all your individuals and write them in afterwards.
Are you talking about removing the sortedness requirement entirely, or reversing to children-before-parents?
I'm open to either.
...
To be honest I haven't found any advantage to having the sort order so far, it's basically just gotten in the way. Any time you try to rely on it, you end up just sorting by time in any case because weird corner cases crop up with ordering of edges otherwise.
Given that the number of individuals will typically be relatively small, that sort of thing isn't a big deal, so I'd not be particularly upset if we ditched the ordering requirement.
So. Any objections to simply removing this sorting requirement? @petrelharp @benjeffery not sure who else to tag...