| Age | Commit message (Collapse) | Author | 
|---|
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* The full name of the traits from search contains multiple parts to it, and
  as such, we use it to retrieve the appropriate data and set it up in the
  final trait_info dictionary that is produced. | 
|  | * 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
* Retrieve the RISet and RISet ID values from the database. | 
|  | Issues:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Add missing tests for some post-processing functions | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Update the tests to deal with changes in the code. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Following Arun's comment at
  https://github.com/genenetwork/genenetwork3/pull/31#issuecomment-890915813
  this commit eliminates string interpolation, and adds a map of tables for
  the various types of traits dataset names | 
|  | heatmap_decompose_db_retrieval | 
|  |  | 
|  | * sql/schema.org (Strain): New section. | 
|  | * sql/schema.org: New file. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Rework the database functions to return a dict of key-value pairs, which
  eases the postprocessing of the trait information.
  The postprocessing is mainly to try an maintain data compatibility with the
  code that is at the following locations:
  https://github.com/genenetwork/genenetwork1/blob/master/web/webqtl/base/webqtlTrait.py
  https://github.com/genenetwork/genenetwork1/blob/master/web/webqtl/base/webqtlDataset.py
  https://github.com/genenetwork/genenetwork1/blob/master/web/webqtl/heatmap/Heatmap.py
  This was mainly a proof-of-concept, and the functions do not have testing
  added for them: there is therefore need to add testing for the new
  functions, and probably even rework them if they are found to be
  complicated. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Remove extra space that was causing test to fail. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/function_helpers.py: new file
  Provides a new module to hold common programming utilities that are generic
  enough that they will find use across the entire application.
  The first utility function provided in this commit is the `compose`
  function, whose purpose, as indicated by its name, is to take a number of
  functions and compose them into a single function, which when called, will
  return the same result that would have been got had the user called the
  functions in a chain from right to left. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/db/traits.py: return dicts rather than tuples/list
* tests/unit/db/test_traits.py: Update tests
  Return dicts with the key-value pairs set up so as to ease with the data
  manipulation down the pipeline.
  This is also useful to help with the retrieval of all other extra
  information that was left out in the first iteration.
  This commit also updates the tests by ensuring they expect dicts rather than
  tuples. | 
|  | heatmap_decompose_db_retrieval
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
Fix merge conflicts in:
* gn3/db/traits.py
* tests/unit/db/test_traits.py | 
|  | Feature/update db from csv data | 
|  |  | 
|  |  | 
|  | * gn3/db/traits.py (update_sample_data): New function.
* tests/unit/db/test_traits.py: New test cases for ^^. | 
|  | 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
* Add some type annotations to the functions to reduce the chances of bugs
  creeping into the code. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/db/traits.py: add functions to retrieve traits information
* tests/unit/db/test_traits.py: add tests for new function
  Add functions to retrieve traits information as is done in genenetwork1
  https://github.com/genenetwork/genenetwork1/blob/master/web/webqtl/base/webqtlTrait.py#L397-L456
  At this point, the data retrieval functions are probably incomplete, as
  there is more of the `retrieveInfo` function in GN1 that has not been
  considered as of this commit. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/db/traits.py: make function more general
* tests/unit/db/test_traits.py: parametrize the tests
  Make the name retrieval more general for the different types of traits by
  changing the column specification and table as appropriate. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/db/traits.py: new function (retrieve_probeset_trait_name)
* tests/unit/db/test_traits.py: test(s) for new function
  Add a function to retrieve the name of a 'ProbeSet' trait in a manner
  similar to genenetwork1's retrieval of the same, as implemented here
  https://github.com/genenetwork/genenetwork1/blob/master/web/webqtl/base/webqtlDataset.py#L140-154
  Unlike in genenetwork1, we do not mutate an object, instead, we return the
  values as retrieved from the database, and the caller will deal with the
  returned values as appropriate. | 
|  | 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
* Add some type annotations to the functions to reduce the chances of bugs
  creeping into the code. | 
|  |  | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/db/traits.py: add functions to retrieve traits information
* tests/unit/db/test_traits.py: add tests for new function
  Add functions to retrieve traits information as is done in genenetwork1
  https://github.com/genenetwork/genenetwork1/blob/master/web/webqtl/base/webqtlTrait.py#L397-L456
  At this point, the data retrieval functions are probably incomplete, as
  there is more of the `retrieveInfo` function in GN1 that has not been
  considered as of this commit. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/db/traits.py: make function more general
* tests/unit/db/test_traits.py: parametrize the tests
  Make the name retrieval more general for the different types of traits by
  changing the column specification and table as appropriate. | 
|  | Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/db/traits.py: new function (retrieve_probeset_trait_name)
* tests/unit/db/test_traits.py: test(s) for new function
  Add a function to retrieve the name of a 'ProbeSet' trait in a manner
  similar to genenetwork1's retrieval of the same, as implemented here
  https://github.com/genenetwork/genenetwork1/blob/master/web/webqtl/base/webqtlDataset.py#L140-154
  Unlike in genenetwork1, we do not mutate an object, instead, we return the
  values as retrieved from the database, and the caller will deal with the
  returned values as appropriate. | 
|  |  | 
|  | * gn3/db/__init__.py (update_raw): New function. | 
|  |  | 
|  |  | 
|  | 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. | 
|  |  | 
|  | instead of None when it can't be calculcated (which was messing up sorting); it may also be okay to remove the None check, but leaving it for now (#28) | 
|  | See:
https://www.eversql.com/mysql-utf8-vs-utf8mb4-whats-the-difference-between-utf8-and-utf8mb4/ | 
|  | 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 | 
|  | 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. | 
|  |  |