| Age | Commit message (Collapse) | Author | 
 | 
* gn3/csvcmp.py (fill_csv): Given a csv text with uneven or incomplete fields
whole length are less than width, fill them with a value which defaults to
"x".
* tests/unit/test_csvcmp.py (test_fill_csv): Test cases for the above.
 | 
 | 
gn3/csvcmp.py: New file
(create_dirs_if_not_exists): From a list of dirs, create them if they don't
exist.
(remove_insignificant_edits): Given a dict with a "Modification" key, remove
edits with "delta < ε".
(csv_diff): Generate a csv_diff using the "csvdiff" tool packaged in guix.
tests/unit/test_csvcmp.py: Add some tests for "gn3/csvcmp.py"
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
Fix some issues caught by tests due to changes introducing the hand-off of the
partial correlations computations to an external process
Fix some issues due to the changes that introduce context managers for
database connections
Update some tests to take the above two changes into consideration
 | 
 | 
When the encoding is not specified explicitly, the system default encoding is
used. This is not recommended.
* gn3/computations/ctl.py (call_ctl_script),
gn3/computations/gemma.py (generate_pheno_txt_file),
gn3/computations/parsers.py (parse_genofile),
gn3/computations/partial_correlations.py (partial_correlations_fast),
gn3/computations/rqtl.py (process_rqtl_output, process_perm_output),
gn3/computations/wgcna.py (dump_wgcna_data, call_wgcna_script),
gn3/fs_helpers.py (jsonfile_to_dict): Explicitly specify UTF-8 to be the file
encoding.
*
tests/unit/computations/test_gemma.py (TestGemma.test_generate_pheno_txt_file),
tests/unit/computations/test_wgcna.py (TestWgcna.test_create_json_file): Test
for call to open with encoding='utf-8' argument.
 | 
 | 
 | 
 | 
* Use `with` in place of plain `open`
* Use f-strings in place of `str.format()`
* Remove string interpolation from queries - provide data as query parameters
* other minor fixes
 | 
 | 
* tests/unit/db/test_genotypes2.py: New file
 | 
 | 
Related to commit 75dcfe295af57b16428c586cc11dbaa827a5feba
This commit removes the related test that was checking for the wrong thing.
 | 
 | 
Use pytest's `mark` feature to explicitly categorise the tests and run them
per category
 | 
 | 
Add property tests using pytest and hypothesis to test that the expected
properties hold for the
`gn3.computations.partial_correlations.dictify_by_samples`
function.
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
Issue: https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
 | 
 | 
* Fix linting errors like:
  - Unused variables
  - Undeclared variable errors (mostly caused by typos, and wrong names)
  - Missing documentation strings for functions
  etc.
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* Add some tests for the query builders to ensure that the queries are built
  up correctly.
 | 
 | 
Notes:
https://github.com/genenetwork/genenetwork3/pull/56#issuecomment-973798918
* As mentioned in the notes, rather than rounding to an arbitrary number of
  decimal places, it is a much better practice to use approximate comparisons
  of floats for the tests.
 | 
 | 
Notes:
https://github.com/genenetwork/genenetwork3/pull/56#issuecomment-973798918
* From the notes above, the assert_allclose is a better function for figuring
  out what failed, unlike the allclose that simply just returns a True/False
  value.
  This commit restores the use of the assert_allclose function, and then
  disables the linter error due to the fact that there is no use of the `self`
  keyword.
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* Fix some obvious linting errors and remove obsolete code
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* Replace the code that was in the process of being migrated from R in
  GeneNetwork1 with calls to pingouin functions that achieve the same thing.
  Since the functions in this case are computing correlations and partial
  correlations, rather than having home-rolled functions to do that, this
  commit makes use of the tried and tested pingouin functions.
  This avoids complicating our code with edge-case checks, and leverages the
  performance optimisations done in pingouin.
 | 
 | 
* gn3/computations/partial_correlations.py: Remove rounding. Fix computation
  of remaining covariates
*
tests/unit/computations/partial_correlations_test_data/pcor_rec_blackbox_test.txt:
  reduce the number of covariates to between one (1) and three (3)
* tests/unit/computations/test_partial_correlations.py: fix some minor bugs
  It turns out that the computation complexity increases exponentially, with
  the number of covariates. Therefore, to get a somewhat sensible test time,
  while retaining a large-ish number of tests, this commit reduces the number
  of covariates to between 1 and 3.
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* When the z value is a Sequence of sequences of values, each of the internal
  sequences should form a column of its own, and not a row, as it was
  originally set up to do.
 | 
 | 
partial-correlations
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* To improve the usefulness of already existing code, provide the parser
  function as an argument to the `parse_input_line` function.
  This was found to be useful when writing code to compare the `pcor.test`
  function in GN1 and the `pingouin.partial_corr` function.
  The format of the data generated when getting results for the `pcor.test`
  function shared a lot with that of the `pcor.rec` function, but it was
  different in a few, places, and the differences were non-trivial, needing
  different parsing processes.
  In such a case, it was found necessary to just pass in the function to do
  the actual parsing, rather than create code with the same form as the
  existing one, save for the function being called.
 | 
 | 
correlations2.compute_correlation computes the Pearson correlation
coefficient. Outsource this computation to scipy.stats.pearsonr. When the
inputs are constant, the Pearson correlation coefficient does not exist and is
represented by NaN. Update the tests to reflect this.
* gn3/computations/correlations2.py: Remove import of sqrt from math.
(compute_correlation): Reimplement using scipy.stats.pearsonr.
* tests/unit/computations/test_correlation.py: Import math.
(TestCorrelation.test_compute_correlation): When inputs are constant, set
expected correlation coefficient to NaN.
 | 
 | 
Floating point numbers should only be compared approximately. Different
implementations of functions might produce slightly different results.
* tests/unit/computations/test_correlation.py: Import assert_almost_equal from
numpy.testing.
(TestCorrelation.test_compute_correlation): Compare floats using
assert_almost_equal instead of assertEqual.
* tests/unit/test_heatmaps.py: Import assert_allclose from numpy.testing.
(TestHeatmap.test_cluster_traits): Use assert_allclose instead of assertEqual.
 | 
 | 
 | 
 | 
partial-correlations
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/computations/partial_correlations.py: implement remaining portion of
  `partial_correlation_recursive` function.
* tests/unit/computations/test_partial_correlations.py: add parsing for new
  data format and update tests
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* Delete the older test data that was only testing with `z` being a vector and
  replace it with data that has `z` being a vector or matrix from data item to
  data item.
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/data_helpers.py: New function (`partition_by`)
* tests/unit/test_data_helpers.py: Tests for new function
  Add a function that approximates Clojure's `partition-by` function, to help
  with processing the data in a more functional way.
 | 
 | 
Fix these later. I need a passing test suite so as to update the gn2 docker
image.
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/computations/partial_correlations.py: new stub
  functions (partial_correlation_matrix, partial_correlation_recursive)
*
  tests/unit/computations/partial_correlations_test_data/pcor_mat_blackbox_test.csv:
  blackbox sample data and results for variance-covariance matrix method
*
  tests/unit/computations/partial_correlations_test_data/pcor_rec_blackbox_test.csv:
  blackbox sample data and results for recursive method
* tests/unit/computations/test_partial_correlations.py: Tests for new function
  Provide some blackbox testing sample data for checking the operation of the
  functions migrated from R.
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/computations/partial_correlations.py: New
  function (good_dataset_samples_indexes).
* tests/unit/computations/test_partial_correlations.py: Tests for new
  function (good_dataset_samples_indexes)
  Get the indices of the selected samples. This is a partial migration of the
  `web.webqtl.correlation.PartialCorrDBPage.getPartialCorrelationsFast`
  function in GN1.
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/data_helpers.py: New function (parse_csv_line)
* tests/unit/test_data_helpers.py: Add tests for new function (parse_csv_line)
  Add a function to parse a single line from a CSV file.
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/computations/partial_correlations.py: specify 10 decimal places
* tests/unit/computations/test_partial_correlations.py: update examples
  Slight differences in python implementations, possibly hardware and
  operating systems could cause the value of float (double) values to be
  different in the less significant parts of the decimal places.
  This commit limits the usable part of the decimals to the first 10 decimal
  places for now.
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/computations/partial_correlations.py: New function (tissue_correlation)
* tests/unit/test_partial_correlations.py ->
  tests/unit/computations/test_partial_correlations.py: Move module. Implement
  tests for new function
  Migrate the `cal_tissue_corr` function embedded in the
  `web.webqtl.correlation.correlationFunction.batchCalTissueCorr` function in
  GN1 and implement tests to ensure it works correctly.
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/computations/partial_correlations.py: Implement one path for the
  `gn3.computations.partial_correlations.partial_correlation_recursive`
  function.
* gn3/settings.py: Add a setting for how many decimal places to round to
* tests/unit/computations/test_partial_correlations.py: Update test to take
  the number of decimal places into consideration
  Implement a single path (where the z value is a vector and not a matrix) for
  the `partial_correlation_recursive` function.
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/computations/partial_correlations.py: new function (`build_data_frame`)
* tests/unit/computations/test_partial_correlations.py: Add tests for new
  function
  Add a new function to build a pandas DataFrame object from the provided
  values:
  - x: a vector of floats (represented with a tuple of floats)
  - y: a vector of floats (represented with a tuple of floats)
  - z: a vector OR matrix of floats (represented with a tuple of floats or a
       tuple of tuples of floats)
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/computations/partial_correlations.py: new stub
  functions (partial_correlation_matrix, partial_correlation_recursive)
*
  tests/unit/computations/partial_correlations_test_data/pcor_mat_blackbox_test.csv:
  blackbox sample data and results for variance-covariance matrix method
*
  tests/unit/computations/partial_correlations_test_data/pcor_rec_blackbox_test.csv:
  blackbox sample data and results for recursive method
* tests/unit/computations/test_partial_correlations.py: Tests for new function
  Provide some blackbox testing sample data for checking the operation of the
  functions migrated from R.
 | 
 | 
 | 
 | 
partial-correlations
 | 
 | 
Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/computations/partial_correlations.py: New
  function (good_dataset_samples_indexes).
* tests/unit/computations/test_partial_correlations.py: Tests for new
  function (good_dataset_samples_indexes)
  Get the indices of the selected samples. This is a partial migration of the
  `web.webqtl.correlation.PartialCorrDBPage.getPartialCorrelationsFast`
  function in GN1.
 |