Skip to content

graph equality that ignores epoch and migration subdivisions #333

Description

@grahamgower

For epochs the idea would be to make sure the demes are "equal" in the examples below, by checking equality of sizes (and other attributes) over the demes' lifetimes rather than mandating equal numbers of epochs each with equal attribute values. The below example is obvious from visual inspection, but if you do the same with exponentially-changing epochs its less obvious! I haven't really thought through the best way of achieving this. Maybe take the union of each deme's epoch end times and split epochs for each deme at all the time points? Or instead of splitting epochs, just check deme sizes for a few (5?) evenly spaced times in each interval.

demes:
- name: A
  epochs:
  - start_size: 100
demes:
- name: A
  epochs:
  - {start_size: 100, end_time: 50}
  - {start_size: 100, end_time: 0}

And similarly for comparing migrations, the following three examples should be "equal". We could just compare resulting migration matrices here.

migrations:
 - {demes: [A, B], start_time: 100, end_time: 0, rate: 1e-4}
migrations:
 - {demes: [A, B], start_time: 100, end_time: 50, rate: 1e-4}
 - {demes: [A, B], start_time: 50, end_time: 0, rate: 1e-4}
migrations:
 - {source: A, dest: B, start_time: 100, end_time: 0, rate: 1e-4}
 - {source: B, dest: A, start_time: 100, end_time: 0, rate: 1e-4}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions