{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":525127468,"defaultBranch":"main","name":"tskit","ownerLogin":"lkirk","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2022-08-15T20:21:21.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8475684?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1718009760.0","currentOid":""},"activityList":{"items":[{"before":"369b3c84f61c064d2051542abbb929920b06295f","after":"a6becd85df68fa726f0ecd53f85a962f1bbba545","ref":"refs/heads/two-locus-branch-stats-positions","pushedAt":"2024-06-10T09:02:07.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Specify positions for branch LD matrix\n\nIntroduces the ability to subset the branch LD matrix with genomic\npositions. This is a little trickier than subsetting the LD matrix with\nsites because positions can map to duplicate tree indices. We still only\nallow unique, sorted positions as input. For instance, if we receive\n`[0.1, 0.2, 0.3, 2.5, 2.8]` from a user, it may map to `[0, 0, 0, 2, 2]`.\nTo this end, I've repurposed the `check_sites` validation code and added\nsome logic for dealing with index repeats.\n\nFor now, until I devise some simple optimizations for matrix filling,\nwe're filling a square matrix entry by entry. If we are skipping trees\nwith our specified positions, we must iterate over the entire range\nregardless because we're keeping a running sum of the statistic and we\nneed the intermediate state regardless of whether or not we're keeping\nit.","shortMessageHtmlLink":"Specify positions for branch LD matrix"}},{"before":"06337c20bbbf29141564c0d8afb3bf4fe3b3286b","after":"369b3c84f61c064d2051542abbb929920b06295f","ref":"refs/heads/two-locus-branch-stats-positions","pushedAt":"2024-06-10T08:58:34.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Specify positions for branch LD matrix\n\nIntroduces the ability to subset the branch LD matrix with genomic\npositions. This is a little trickier than subsetting the LD matrix with\nsites because positions can map to duplicate tree indices. We still only\nallow unique, sorted positions as input. For instance, if we receive\n`[0.1, 0.2, 0.3, 2.5, 2.8]` from a user, it may map to `[0, 0, 0, 2, 2]`.\nTo this end, I've repurposed the `check_sites` validation code and added\nsome logic for dealing with index repeats.\n\nFor now, until I devise some simple optimizations for matrix filling,\nwe're filling a square matrix entry by entry. If we are skipping trees\nwith our specified positions, we must iterate over the entire range\nregardless because we're keeping a running sum of the statistic and we\nneed the intermediate state regardless of whether or not we're keeping\nit.","shortMessageHtmlLink":"Specify positions for branch LD matrix"}},{"before":null,"after":"06337c20bbbf29141564c0d8afb3bf4fe3b3286b","ref":"refs/heads/two-locus-branch-stats-positions-before-merge","pushedAt":"2024-06-10T08:56:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"minor cleanup","shortMessageHtmlLink":"minor cleanup"}},{"before":"d2319daf2ad292205f9dfedc9511ae60cd9a8a24","after":"06337c20bbbf29141564c0d8afb3bf4fe3b3286b","ref":"refs/heads/two-locus-branch-stats-positions","pushedAt":"2024-06-10T08:54:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"minor cleanup","shortMessageHtmlLink":"minor cleanup"}},{"before":"7db040c9f8a9add3fde7e28de22acd36665d4bcd","after":"d2319daf2ad292205f9dfedc9511ae60cd9a8a24","ref":"refs/heads/two-locus-branch-stats-positions","pushedAt":"2024-06-10T08:44:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"do not consider removed edges","shortMessageHtmlLink":"do not consider removed edges"}},{"before":"515d972ae47afeb37f28233449a22f91b3ce8021","after":"f8bcabe2900fbb41314f88e16fe9517d38ae0ec2","ref":"refs/heads/two-locus-staging","pushedAt":"2024-06-07T21:45:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"add more two-population statistics","shortMessageHtmlLink":"add more two-population statistics"}},{"before":"13b74bccde25919b6c7fa5b7329c03e04a11e9d8","after":"515d972ae47afeb37f28233449a22f91b3ce8021","ref":"refs/heads/two-locus-staging","pushedAt":"2024-05-29T19:22:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"work out lingering memory issues","shortMessageHtmlLink":"work out lingering memory issues"}},{"before":"df10ed0c1283d37657a94d40476f2f7286ed9f61","after":"13b74bccde25919b6c7fa5b7329c03e04a11e9d8","ref":"refs/heads/two-locus-staging","pushedAt":"2024-05-29T08:01:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"implement two-population statistics","shortMessageHtmlLink":"implement two-population statistics"}},{"before":"289962e932aa98dce91641de8808bf578023dd1e","after":"df10ed0c1283d37657a94d40476f2f7286ed9f61","ref":"refs/heads/two-locus-staging","pushedAt":"2024-05-28T02:18:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"clean up some old code","shortMessageHtmlLink":"clean up some old code"}},{"before":"49eafdc1fdfa900fe0c868ef28c6ebc70396fdb3","after":"289962e932aa98dce91641de8808bf578023dd1e","ref":"refs/heads/two-locus-staging","pushedAt":"2024-05-28T02:16:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"handle forward or backward seeking","shortMessageHtmlLink":"handle forward or backward seeking"}},{"before":"82d467dbf40302711c3c59b3256a619275dcc204","after":"49eafdc1fdfa900fe0c868ef28c6ebc70396fdb3","ref":"refs/heads/two-locus-staging","pushedAt":"2024-05-27T21:51:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"remove unused variable","shortMessageHtmlLink":"remove unused variable"}},{"before":"3cc59b07f899c36ea900877825e1e2c6b042b6eb","after":"82d467dbf40302711c3c59b3256a619275dcc204","ref":"refs/heads/two-locus-staging","pushedAt":"2024-05-27T21:48:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"cannot naively add edges, must be in the index order","shortMessageHtmlLink":"cannot naively add edges, must be in the index order"}},{"before":"2b950839729b504fe490b57ec000843e724ad529","after":"3cc59b07f899c36ea900877825e1e2c6b042b6eb","ref":"refs/heads/two-locus-staging","pushedAt":"2024-05-27T14:44:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"remove auto-imports","shortMessageHtmlLink":"remove auto-imports"}},{"before":null,"after":"2b950839729b504fe490b57ec000843e724ad529","ref":"refs/heads/two-locus-staging","pushedAt":"2024-05-27T14:41:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Create C api for two-locus branch stats, implement unbiased stats in C","shortMessageHtmlLink":"Create C api for two-locus branch stats, implement unbiased stats in C"}},{"before":"9780c68b28c4de31957cc7b4b8fdd92f3ac56293","after":"7db040c9f8a9add3fde7e28de22acd36665d4bcd","ref":"refs/heads/two-locus-branch-stats-positions","pushedAt":"2024-05-20T19:57:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"fix usage of seek_forward (code review)","shortMessageHtmlLink":"fix usage of seek_forward (code review)"}},{"before":"f4bc9f8361111be6f00e98b46f52a7ce12719bb7","after":"9780c68b28c4de31957cc7b4b8fdd92f3ac56293","ref":"refs/heads/two-locus-branch-stats-positions","pushedAt":"2024-05-18T00:56:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Specify positions for branch LD matrix\n\nIntroduces the ability to subset the branch LD matrix with genomic\npositions. This is a little trickier than subsetting the LD matrix with\nsites because positions can map to duplicate tree indices. We still only\nallow unique, sorted positions as input. For instance, if we receive\n`[0.1, 0.2, 0.3, 2.5, 2.8]` from a user, it may map to `[0, 0, 0, 2, 2]`.\nTo this end, I've repurposed the `check_sites` validation code and added\nsome logic for dealing with index repeats.\n\nFor now, until I devise some simple optimizations for matrix filling,\nwe're filling a square matrix entry by entry. If we are skipping trees\nwith our specified positions, we must iterate over the entire range\nregardless because we're keeping a running sum of the statistic and we\nneed the intermediate state regardless of whether or not we're keeping\nit.\n\nThe one tricky part of this implementation was making sure that seeking\nto an arbitrary position in the tree sequence works properly. We only\nwant to add branches that are valid for the current tree, so I mask out\nbranches that have been removed up to the position we start iterating\nover when pos.seek_forward is called.","shortMessageHtmlLink":"Specify positions for branch LD matrix"}},{"before":"f96ea0d509af108c8b58a96b03248db26de8d415","after":"f4bc9f8361111be6f00e98b46f52a7ce12719bb7","ref":"refs/heads/two-locus-branch-stats-positions","pushedAt":"2024-05-16T14:42:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Specify positions for branch LD matrix\n\nIntroduces the ability to subset the branch LD matrix with genomic\npositions. This is a little trickier than subsetting the LD matrix with\nsites because positions can map to duplicate tree indices. We still only\nallow unique, sorted positions as input. For instance, if we receive\n`[0.1, 0.2, 0.3, 2.5, 2.8]` from a user, it may map to `[0, 0, 0, 2, 2]`.\nTo this end, I've repurposed the `check_sites` validation code and added\nsome logic for dealing with index repeats.\n\nFor now, until I devise some simple optimizations for matrix filling,\nwe're filling a square matrix entry by entry. If we are skipping trees\nwith our specified positions, we must iterate over the entire range\nregardless because we're keeping a running sum of the statistic and we\nneed the intermediate state regardless of whether or not we're keeping\nit.\n\nThe one tricky part of this implementation was making sure that seeking\nto an arbitrary position in the tree sequence works properly. We only\nwant to add branches that are valid for the current tree, so I mask out\nbranches that have been removed up to the position we start iterating\nover when pos.seek_forward is called.","shortMessageHtmlLink":"Specify positions for branch LD matrix"}},{"before":"ccd1df77cd9003fc6675179178f647bcdcc635e6","after":"f96ea0d509af108c8b58a96b03248db26de8d415","ref":"refs/heads/two-locus-branch-stats-positions","pushedAt":"2024-05-16T13:56:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Specify positions for branch LD matrix\n\nIntroduces the ability to subset the branch LD matrix with genomic\npositions. This is a little trickier than subsetting the LD matrix with\nsites because positions can map to duplicate tree indices. We still only\nallow unique, sorted positions as input. For instance, if we receive\n`[0.1, 0.2, 0.3, 2.5, 2.8]` from a user, it may map to `[0, 0, 0, 2, 2]`.\nTo this end, I've repurposed the `check_sites` validation code and added\nsome logic for dealing with index repeats.\n\nFor now, until I devise some simple optimizations for matrix filling,\nwe're filling a square matrix entry by entry. If we are skipping trees\nwith our specified positions, we must iterate over the entire range\nregardless because we're keeping a running sum of the statistic and we\nneed the intermediate state regardless of whether or not we're keeping\nit.\n\nThe one tricky part of this implementation was making sure that seeking\nto an arbitrary position in the tree sequence works properly. We only\nwant to add branches that are valid for the current tree, so I mask out\nbranches that have been removed up to the position we start iterating\nover when pos.seek_forward is called.","shortMessageHtmlLink":"Specify positions for branch LD matrix"}},{"before":null,"after":"ccd1df77cd9003fc6675179178f647bcdcc635e6","ref":"refs/heads/two-locus-branch-stats-positions","pushedAt":"2024-05-16T00:19:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Specify positions for branch LD matrix\n\nIntroduces the ability to subset the branch LD matrix with genomic\npositions. This is a little trickier than subsetting the LD matrix with\nsites because positions can map to duplicate tree indices. We still only\nallow unique, sorted positions as input. For instance, if we receive\n`[0.1, 0.2, 0.3, 2.5, 2.8]` from a user, it may map to `[0, 0, 0, 2, 2]`.\nTo this end, I've repurposed the `check_sites` validation code and added\nsome logic for dealing with index repeats.\n\nFor now, until I devise some simple optimizations for matrix filling,\nwe're filling a square matrix entry by entry. If we are skipping trees\nwith our specified positions, we must iterate over the entire range\nregardless because we're keeping a running sum of the statistic and we\nneed the intermediate state regardless of whether or not we're keeping\nit.\n\nThe one tricky part of this implementation was making sure that seeking\nto an arbitrary position in the tree sequence works properly. We only\nwant to add branches that are valid for the current tree, so I mask out\nbranches that have been removed up to the position we start iterating\nover when pos.seek_forward is called.","shortMessageHtmlLink":"Specify positions for branch LD matrix"}},{"before":"00d9f095362b021f8f0409155f980256304298a3","after":"7203f77c97a48e93389bed5f1ccdbdf626e6d913","ref":"refs/heads/two-locus-branch-stats-sample-sets","pushedAt":"2024-05-07T22:58:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jeromekelleher","name":"Jerome Kelleher","path":"/jeromekelleher","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2664569?s=80&v=4"},"commit":{"message":"Add sample sets to the python branch LD prototype\n\nThis change incorporates sample set functionaliy by adding to the\ndata structure that is tracking the samples under each node. This is\ndifferent from how we do things in the two-site statistics, where we\nfirst obtain every sample under every node, then intersect with the\nsample sets. Since we're doing a branch update algorithm, we want to be\nable to update the branches without having to intersect our sets with\nthe sample sets every time we add or remove a branch. This would be very\nexpensive because we iterate over every branch in a fixed (fully\nmaterialized) tree when we add or remove a branch from the modified\ntree.\n\nIn doing this, we also update the summary functions to be compatible\nwith the existing site statistics code, so now we have unbiased\nestimators for pi2, Dz, and D2. We'll worry about testing these in sites\nwhen we implement the C versions.\n\nThese changes also include a correctness fix for the orthogonal \"McVean\"\nprototype. This allows us to compute LD for samples that do not have\nMRCAs.\n\nAll tests now agree between the prototype and the proposed branch\nalgorithm, but I've still excluded the slower tests.","shortMessageHtmlLink":"Add sample sets to the python branch LD prototype"}},{"before":null,"after":"00d9f095362b021f8f0409155f980256304298a3","ref":"refs/heads/two-locus-branch-stats-sample-sets","pushedAt":"2024-04-30T18:43:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Add sample sets to the python branch LD prototype\n\nThis change incorporates sample set functionaliy by adding to the\ndata structure that is tracking the samples under each node. This is\ndifferent from how we do things in the two-site statistics, where we\nfirst obtain every sample under every node, then intersect with the\nsample sets. Since we're doing a branch update algorithm, we want to be\nable to update the branches without having to intersect our sets with\nthe sample sets every time we add or remove a branch. This would be very\nexpensive because we iterate over every branch in a fixed (fully\nmaterialized) tree when we add or remove a branch from the modified\ntree.\n\nIn doing this, we also update the summary functions to be compatible\nwith the existing site statistics code, so now we have unbiased\nestimators for pi2, Dz, and D2. We'll worry about testing these in sites\nwhen we implement the C versions.\n\nThese changes also include a correctness fix for the orthogonal \"McVean\"\nprototype. This allows us to compute LD for samples that do not have\nMRCAs.\n\nAll tests now agree between the prototype and the proposed branch\nalgorithm, but I've still excluded the slower tests.","shortMessageHtmlLink":"Add sample sets to the python branch LD prototype"}},{"before":"acd0d470b7e5adb197a933b1f503e58af6b38f5e","after":"343a89b6e60002c525917298da571b22f8d26773","ref":"refs/heads/two-locus-branch-stats","pushedAt":"2024-04-30T09:53:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"benjeffery","name":"Ben Jeffery","path":"/benjeffery","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8552?s=80&v=4"},"commit":{"message":"Adds a py prototype for two-locus branch stats\n\nCurrently, this algorithm creates a matrix of LD, performing a pairwise\ncomparison of all trees in the tree sequence.\n\nThis implementation lacks windows/positions, sample sets and\npolarisation. The outputs of the code produce results in units of branch\nlength, needing to be multiplied by mu^2 or divided by product of the\ntotal branch length of the two trees.\n\nThis algorithm works by keeping a running sum of the statistic between\ntwo trees, updating each time we encounter a branch addition or removal.\nThe tricky part is that we have to remove or add LD contributed by\nsamples that already existed or that will remain under a given node\nafter the addition/removal of branches.\n\nWe include a validation against the original formulation of this\nproblem, by including an implementation that was described in McVean\n2002. The original formulation computing the covariance of tMRCAs of\n2, 3, and 4 samples of individuals on the trees in question. This\nimplementation has several limitations 1) it is very slow and 2) it does\nnot work for trees that are decapitated, as certain samples do not have\nMRCAs.","shortMessageHtmlLink":"Adds a py prototype for two-locus branch stats"}},{"before":"25a8ddcd48cb58bf55b68ea6332fef072c4902fc","after":"acd0d470b7e5adb197a933b1f503e58af6b38f5e","ref":"refs/heads/two-locus-branch-stats","pushedAt":"2024-04-26T15:00:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Adds a py prototype for two-locus branch stats\n\nCurrently, this algorithm creates a matrix of LD, performing a pairwise\ncomparison of all trees in the tree sequence.\n\nThis implementation lacks windows/positions, sample sets and\npolarisation. The outputs of the code produce results in units of branch\nlength, needing to be multiplied by mu^2 or divided by product of the\ntotal branch length of the two trees.\n\nThis algorithm works by keeping a running sum of the statistic between\ntwo trees, updating each time we encounter a branch addition or removal.\nThe tricky part is that we have to remove or add LD contributed by\nsamples that already existed or that will remain under a given node\nafter the addition/removal of branches.\n\nWe include a validation against the original formulation of this\nproblem, by including an implementation that was described in McVean\n2002. The original formulation computing the covariance of tMRCAs of\n2, 3, and 4 samples of individuals on the trees in question. This\nimplementation has several limitations 1) it is very slow and 2) it does\nnot work for trees that are decapitated, as certain samples do not have\nMRCAs.","shortMessageHtmlLink":"Adds a py prototype for two-locus branch stats"}},{"before":"445707c931693ed95b293a64d98b5e6532452d17","after":"25a8ddcd48cb58bf55b68ea6332fef072c4902fc","ref":"refs/heads/two-locus-branch-stats","pushedAt":"2024-04-25T18:33:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Adds a py prototype for two-locus branch stats\n\nCurrently, this algorithm creates a matrix of LD, performing a pairwise\ncomparison of all trees in the tree sequence.\n\nThis implementation lacks windows/positions, sample sets and\npolarisation. The outputs of the code produce results in units of branch\nlength, needing to be multiplied by mu^2 or divided by product of the\ntotal branch length of the two trees.\n\nThis algorithm works by keeping a running sum of the statistic between\ntwo trees, updating each time we encounter a branch addition or removal.\nThe tricky part is that we have to remove or add LD contributed by\nsamples that already existed or that will remain under a given node\nafter the addition/removal of branches.\n\nWe include a validation against the original formulation of this\nproblem, by including an implementation that was described in McVean\n2002. The original formulation computing the covariance of tMRCAs of\n2, 3, and 4 samples of individuals on the trees in question. This\nimplementation has several limitations 1) it is very slow and 2) it does\nnot work for trees that are decapitated, as certain samples do not have\nMRCAs.","shortMessageHtmlLink":"Adds a py prototype for two-locus branch stats"}},{"before":"ef448b57664321a3dcb37978335c9035382440fa","after":"445707c931693ed95b293a64d98b5e6532452d17","ref":"refs/heads/two-locus-branch-stats","pushedAt":"2024-04-25T16:55:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Adds a py prototype for two-locus branch stats\n\nCurrently, this algorithm creates a matrix of LD, performing a pairwise\ncomparison of all trees in the tree sequence.\n\nThis implementation lacks windows/positions, sample sets and\npolarisation. The outputs of the code produce results in units of branch\nlength, needing to be multiplied by mu^2 or divided by product of the\ntotal branch length of the two trees.\n\nThis algorithm works by keeping a running sum of the statistic between\ntwo trees, updating each time we encounter a branch addition or removal.\nThe tricky part is that we have to remove or add LD contributed by\nsamples that already existed or that will remain under a given node\nafter the addition/removal of branches.\n\nWe include a validation against the original formulation of this\nproblem, by including an implementation that was described in McVean\n2002. The original formulation computing the covariance of tMRCAs of\n2, 3, and 4 samples of individuals on the trees in question. This\nimplementation has several limitations 1) it is very slow and 2) it does\nnot work for trees that are decapitated, as certain samples do not have\nMRCAs.","shortMessageHtmlLink":"Adds a py prototype for two-locus branch stats"}},{"before":"7293acbe6cdab980af5dce556c913693355820c6","after":"ef448b57664321a3dcb37978335c9035382440fa","ref":"refs/heads/two-locus-branch-stats","pushedAt":"2024-04-25T16:53:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Adds a py prototype for two-locus branch stats\n\nCurrently, this algorithm creates a matrix of LD, performing a pairwise\ncomparison of all trees in the tree sequence.\n\nThis implementation lacks windows/positions, sample sets and\npolarisation. The outputs of the code produce results in units of branch\nlength, needing to be multiplied by mu^2 or divided by product of the\ntotal branch length of the two trees.\n\nThis algorithm works by keeping a running sum of the statistic between\ntwo trees, updating each time we encounter a branch addition or removal.\nThe tricky part is that we have to remove or add LD contributed by\nsamples that already existed or that will remain under a given node\nafter the addition/removal of branches.\n\nWe include a validation against the original formulation of this\nproblem, by including an implementation that was described in McVean\n2002. The original formulation computing the covariance of tMRCAs of\n2, 3, and 4 samples of individuals on the trees in question. This\nimplementation has several limitations 1) it is very slow and 2) it does\nnot work for trees that are decapitated, as certain samples do not have\nMRCAs.","shortMessageHtmlLink":"Adds a py prototype for two-locus branch stats"}},{"before":"428d00627e1321f2b0ae658abccdbdc3d07b155f","after":"7293acbe6cdab980af5dce556c913693355820c6","ref":"refs/heads/two-locus-branch-stats","pushedAt":"2024-04-25T16:48:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Adds a py prototype for two-locus branch stats\n\nCurrently, this algorithm creates a matrix of LD, performing a pairwise\ncomparison of all trees in the tree sequence.\n\nThis implementation lacks windows/positions, sample sets and\npolarisation. The outputs of the code produce results in units of branch\nlength, needing to be multiplied by mu^2 or divided by product of the\ntotal branch length of the two trees.\n\nThis algorithm works by keeping a running sum of the statistic between\ntwo trees, updating each time we encounter a branch addition or removal.\nThe tricky part is that we have to remove or add LD contributed by\nsamples that already existed or that will remain under a given node\nafter the addition/removal of branches.\n\nWe include a validation against the original formulation of this\nproblem, by including an implementation that was described in McVean\n2002. The original formulation computing the covariance of tMRCAs of\n2, 3, and 4 samples of individuals on the trees in question. This\nimplementation has several limitations 1) it is very slow and 2) it does\nnot work for trees that are decapitated, as certain samples do not have\nMRCAs.","shortMessageHtmlLink":"Adds a py prototype for two-locus branch stats"}},{"before":"c665d9bf3637e332ea22e9c86d95e1de5c084d12","after":"428d00627e1321f2b0ae658abccdbdc3d07b155f","ref":"refs/heads/two-locus-branch-stats","pushedAt":"2024-04-25T15:18:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Adds a py prototype for two-locus branch stats\n\nCurrently, this algorithm creates a matrix of LD, performing a pairwise\ncomparison of all trees in the tree sequence.\n\nThis implementation lacks windows/positions, sample sets and\npolarisation. The outputs of the code produce results in units of branch\nlength, needing to be multiplied by mu^2 or divided by product of the\ntotal branch length of the two trees.\n\nThis algorithm works by keeping a running sum of the statistic between\ntwo trees, updating each time we encounter a branch addition or removal.\nThe tricky part is that we have to remove or add LD contributed by\nsamples that already existed or that will remain under a given node\nafter the addition/removal of branches.\n\nWe include a validation against the original formulation of this\nproblem, by including an implementation that was described in McVean\n2002. The original formulation computing the covariance of tMRCAs of\n2, 3, and 4 samples of individuals on the trees in question. This\nimplementation has several limitations 1) it is very slow and 2) it does\nnot work for trees that are decapitated, as certain samples do not have\nMRCAs.","shortMessageHtmlLink":"Adds a py prototype for two-locus branch stats"}},{"before":"850600c2e8e05e5b3cbf5b58f58d721ff9fbad3d","after":"c665d9bf3637e332ea22e9c86d95e1de5c084d12","ref":"refs/heads/two-locus-branch-stats","pushedAt":"2024-04-23T16:13:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Adds a py prototype for two-locus branch stats\n\nCurrently, this algorithm creates a matrix of LD, performing a pairwise\ncomparison of all trees in the tree sequence.\n\nThis implementation lacks windows/positions, sample sets and\npolarisation. The outputs of the code produce results in units of branch\nlength, needing to be multiplied by mu^2 or divided by product of the\ntotal branch length of the two trees.\n\nThis algorithm works by keeping a running sum of the statistic between\ntwo trees, updating each time we encounter a branch addition or removal.\nThe tricky part is that we have to remove or add LD contributed by\nsamples that already existed or that will remain under a given node\nafter the addition/removal of branches.\n\nWe include a validation against the original formulation of this\nproblem, by including an implementation that was described in McVean\n2002. The original formulation computing the covariance of tMRCAs of\n2, 3, and 4 samples of individuals on the trees in question. This\nimplementation has several limitations 1) it is very slow and 2) it does\nnot work for trees that are decapitated, as certain samples do not have\nMRCAs.","shortMessageHtmlLink":"Adds a py prototype for two-locus branch stats"}},{"before":"1761e0569dd93a9830c720e6f73d720923da04b3","after":"850600c2e8e05e5b3cbf5b58f58d721ff9fbad3d","ref":"refs/heads/two-locus-branch-stats","pushedAt":"2024-04-23T16:11:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"lkirk","name":"lkirk","path":"/lkirk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8475684?s=80&v=4"},"commit":{"message":"Adds a py prototype for two-locus branch stats\n\nCurrently, this algorithm creates a matrix of LD, performing a pairwise\ncomparison of all trees in the tree sequence.\n\nThis implementation lacks windows/positions, sample sets and\npolarisation. The outputs of the code produce results in units of branch\nlength, needing to be multiplied by mu^2 or divided by product of the\ntotal branch length of the two trees.\n\nThis algorithm works by keeping a running sum of the statistic between\ntwo trees, updating each time we encounter a branch addition or removal.\nThe tricky part is that we have to remove or add LD contributed by\nsamples that already existed or that will remain under a given node\nafter the addition/removal of branches.\n\nWe include a validation against the original formulation of this\nproblem, by including an implementation that was described in McVean\n2002. The original formulation computing the covariance of tMRCAs of\n2, 3, and 4 samples of individuals on the trees in question. This\nimplementation has several limitations 1) it is very slow and 2) it does\nnot work for trees that are decapitated, because certain samples do not\nhave MRCAs.","shortMessageHtmlLink":"Adds a py prototype for two-locus branch stats"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEYOWLQAA","startCursor":null,"endCursor":null}},"title":"Activity ยท lkirk/tskit"}