| Age | Commit message (Collapse) | Author | 
|---|
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Since the `slink` function assigns values to the `listcopy` variable and its
  children, this commit ensures that the sequence is a list to allow for the
  assignment.
  If the child-sequence is a tuple, that would lead to an exception. | 
|  | * gn3/computations/slink.py: remove unused imports
* gn3/db/traits.py: remove unnecessary `else` clauses
* tests/unit/db/test_traits.py: add docstrings for functions | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Add some type annotations for the `nearest` function.
* Leave some comments regarding the issues experienced when trying to add some
  typing annotations to the function to help with future endeavours of the
  same. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Fix a myriad of issues caught by pylint to ensure the code passes all tests. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/computations/slink.py: Copy the function, mostly verbatim from
  genenetwork1. See:
  https://github.com/genenetwork/genenetwork1/blob/master/web/webqtl/heatmap/slink.py#L107-L138
* tests/unit/computations/test_slink.py: Add a test with some example data to
  test that the implementation gives the same results as that in genenetwork1 | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/computations/slink.py: Fix the iteration construct.
  Given two lists of member coordinates, such as [0, 1] and [3, 5], the
  initial code would iterate over the pairs [0, 3] and [1, 5].
  This commit fixes the iteration constructs such that the new code iterates
  over the pairs [0, 3], [0, 5], [1, 3] and [1, 5]. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/computations/slink.py: Extract the `__flatten_list_of_lists` function
  since it is used in more than one place. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* While running tests for slink, to try and understand what it is doing in
  order to write the appropriate tests for it, an issue arose that pointed a
  blindspot in the former understanding of now `nearest` should work.
  This commit fixes the issue found in both the expected data, and the code. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/computations/slink.py: Add minimum code to pass new test
* tests/unit/computations/test_slink.py: new test
  Add test to ensure that the new `slink` function return an empty list in
  case and exception is raised.
  Add the new `slink` function with minimum amount of code needed to pass the
  test. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/computations/slink.py: Add initial dummy module documentation in form of
  a python docstring
  Update the names of what would be private methods/function to start with a
  double-underscore (__) so that they do not show up in the default python
  documentation. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/computations/slink.py: add documentation for the `nearest` function in
  the `gn3.computations.slink` module in the form of a (hopefully correct)
  python docstring. | 
|  | * gn3/computations/slink.py: add code to ensure new test passes
* tests/unit/computations/test_slink.py: new test
  This one is a little weird: from
  https://github.com/genenetwork/genenetwork1/blob/master/web/webqtl/heatmap/slink.py#L57-L63
  It gets rid of the last coordinates in both the lists of the member
  coordinates, and uses the remaining coordinates to find the shortest
  members.
  For example, given the following member coordinates:
  - i=[0,1,2] and j=[5,7,9], it uses [0,1] and [5,7]
  - i=[3,6,1] and j=[7,13], it uses [3,6] and [7]
  to find the shortest distances.
  I (fredmanglis) am not sure why it does it this way, since I'd have expected
  it to use all the coordinates, however, since at this time we need to retain
  bug-compatibility with the older code, I have done it as it is done in the
  old code.
  I also add a statement to raise an exception in the case where i and j are
  not lists of integers, or integers | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Extract the common function `is_list_or_tuple' making it accessible to later
  parts of the code. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/computations/slink.py: add code to pass new test
* tests/unit/computations/test_slink.py: new test
  Given a list of members in a group, and a coordinate for a member in the
  same group, find the distance of the closest member from the given
  coordinate in the group. | 
|  | * gn3/computations/slink.py: Add code to compute the distance given the
  coordinate of both members on the parent list/tuple
* tests/unit/computations/test_slink.py:
  * Change the name of the tests to more closely correspond to the business
    requirement the test is checking for
  * Update the comments to indicate  some more things that might need to be
    done in the future | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/computations/slink.py: check that all distances between the 'somethings'
  are all either zero or positive.
* tests/unit/computations/test_slink.py:
  * Remove data with all distances positive or zero, since it would fail the
    test
  * Change the expected message to more closely correspond to the business
    logic | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/computations/slink.py: check that the distance from child A to B is the
  same as distance from child B to A. If not, throw an exception.
* tests/unit/computations/test_slink.py:
  * Change the name of the test to more closely correspond to the business
    logic being tested.
  * Update the data in a separate test such that it does not error out due to
    failing to fulfill the expectations of separate requirement.
- pass tests
- Rename test
- Fix errors: distances same both directions | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/computations/slink.py: Check that a child's distance from itself is
  zero. If not, throw an exception.
  The children lists are a list of distances of "something" from other
  "somethings". There is still some need to establish what those "somethings"
  are, so that the test names can reflect the ideas that are actually being
  tested for.
* tests/unit/computations/test_slink.py: Change the name of the test so that
  it more closely corresponds to the business logic it is actually testing,
  and not the mechanics of testing the idea. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Check that the child lists/tuples are the same length as the parent
  list/tuple. If any of the children is not the same length as the parent,
  throw and exception. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Add docstring to the function, useful for generating automated developer
  documentation.
  We also surround the guard functions with some notification comments, to
  mark possible future places where change might be done. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Add code to pass the test that the list/tuple passed to `nearest' and its
  direct children lists/tuples are not empty. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Implement the code to pass the check that a list of lists is passed to the
  `nearest' function. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/computations/slink.py: Add dummy `nearest' function
* tests/unit/computations/test_slink.py: Add some tests
  This commit adds tests to try and reproduce the working of the `nearest'
  function in:
  https://github.com/genenetwork/genenetwork1/blob/master/web/webqtl/heatmap/slink.py
  This commit might not yet have extracted all the expected behaviour of the
  `nearest' function, and therefore, there is a possibility of a later commit
  augmenting the work in this commit. |