Age | Commit message (Expand) | Author |
2022-02-21 | Test partial corrs API with mix of existing and non-existing control traits...Test that the partial correlations endpoint handles a mix of existing and
non-existing control traits gracefully and issues a warning to the user.
Summary of changes:
* gn3/computations/partial_correlations.py: Issue a warning for all
non-existing control traits
* gn3/db/partial_correlations.py: update queries - use `INNER JOIN` for tables
instead of comma-separated list of tables
* tests/integration/conftest.py: Add `db_conn` fixture to provide a database
connection to the tests. This will probably be changed in the future to
connect to a temporary database for tests.
* tests/integration/test_partial_correlations.py: Add test to check for
correct behaviour with a mix of existing and non-existing control traits
| Frederick Muriuki Muriithi |
2022-02-19 | Test partial corrs endpoint with non-existing control traits...Test that if the endpoint is queried and not a single one of the control
traits exists in the database, then the endpoint will respond with a
404 (not-found) status code.
Summary of changes:
* gn3/computations/partial_correlations.py: Check whether any control trait is
found. If none is found, return "not-found" message.
* gn3/db/partial_correlations.py: Fix bug in Geno query.
* tests/integration/test_partial_correlations.py: Add test for non-existing
control traits. Rename function to make it clearer what it is testing
for. Remove obsoleted comments.
| Frederick Muriuki Muriithi |
2022-02-18 | Remove erroneous test based on wrong assumptions...Related to commit 75dcfe295af57b16428c586cc11dbaa827a5feba
This commit removes the related test that was checking for the wrong thing.
| Frederick Muriuki Muriithi |
2022-02-18 | Remove code trying to query non-existent `TempFreeze` table...The code was migrated from GN1 with a faulty assumption that all trait types
have a corresponding `*Freeze` table in the database. This assumption is not
true for the `Temp` traits.
This commit removes the buggy code.
| Frederick Muriuki Muriithi |
2022-02-18 | Test partial correlations endpoint with non-existent primary traits...Test that the partial correlations endpoint responds with an appropriate
"not-found" message and the corresponding 404 status code in the case where a
request is made and the primary trait requested for does not exist in the
database.
Summary of the changes in each file:
* gn3/api/correlation.py: generalise the building of the response
* gn3/computations/partial_correlations.py: return with a "not-found" if the
primary trait does not exist in the database
* gn3/db/partial_correlations.py: Fix a number of bugs that led to exceptions
in the case that the primary trait did not exist
* pytest.ini: register a `slow` pytest marker
* tests/integration/test_partial_correlations.py: Add a new test to check for
an appropriate 404 response in case of a primary trait that does not exist
in the database.
| Frederick Muriuki Muriithi |
2022-02-17 | Test partial correlations endpoint with missing data in POST request...Add a test for the partial correlations endpoint, with:
- no data in the request
- missing items in the data
Fix the bugs caught by the test
| Frederick Muriuki Muriithi |
2022-02-17 | Create client fixture for integration tests...Create a client fixture to help with the integration tests
| Frederick Muriuki Muriithi |
2022-02-17 | Use pytest's "mark" feature to categorise tests...Use pytest's `mark` feature to explicitly categorise the tests and run them
per category
| Frederick Muriuki Muriithi |
2022-02-17 | Add property tests for `dictify_by_samples`...Add property tests using pytest and hypothesis to test that the expected
properties hold for the
`gn3.computations.partial_correlations.dictify_by_samples`
function.
| Frederick Muriuki Muriithi |
2022-02-12 | Provide custom class to run tests | Frederick Muriuki Muriithi |
2022-02-11 | sql: Remove database mapping code....These tools have been greatly improved and moved to a new home at
https://git.genenetwork.org/arunisaac/dump-genenetwork-database
* sql/map-database.sh, sql/schema-from-in-db-documentation.org,
sql/schema-original.sql, sql/schema.png, sql/schema.sql, sql/schema.svg: New
files.
| Arun Isaac |
2022-02-11 | Add scaffolding to run different types of tests...Enable running commands:
- `python3 setup.py unit_check`: run the unit tests
- `python3 setup.py integration_check`: run integration tests
- `python3 setup.py performance_check`: run performance tests
| Frederick Muriuki Muriithi |
2022-02-11 | Quote shell variables to prevent globbing...Quote the shell variables to prevent globbing and word splitting.
Deactivate this check for the specific lines that require intentional word
splitting
| Frederick Muriuki Muriithi |
2022-02-09 | github: Remove GitHub actions....We have our own laminar CI and no longer need GitHub actions.
* .github/workflows: Delete directory.
| Arun Isaac |
2022-02-09 | Remove obsolete `PublishFreeze` table | Frederick Muriuki Muriithi |
2022-02-08 | Merge iterations to remove unnecessary computations...Do all the work in a single iteration to avoid unnecessary iterations that
hamper performance.
| Frederick Muriuki Muriithi |
2022-02-08 | Remove multiprocessing for stability...Web servers are long-running processes, and python is not very good at
cleaning up after itself especially in forked processes - this leads to memory
errors in the web-server after a while.
This commit removes the use of multiprocessing to avoid such failures.
| Frederick Muriuki Muriithi |
2022-02-08 | Give sorting functions more descriptive names | Frederick Muriuki Muriithi |
2022-02-08 | Use multiprocessing to speed up computation...This commit refactors the code to make it possible to use multiprocessing to
speed up the computation of the partial correlations.
The major refactor is to move the `__compute_trait_info__` function to the
top-level of the module, and provide to it all the other necessary context via
the new args.
| Frederick Muriuki Muriithi |
2022-02-08 | Remove unnecessary computation...In Python3 when slicing,
seq[:min(some_val, len(seq))] == seq[:some_val]
because Python3 will just return a copy of the entire sequence if `some_val`
happens to be larger/greater than the length of the sequence.
This commit removes the unnecessary call to `min()`
| Frederick Muriuki Muriithi |
2022-02-08 | db: traits: Enable deletion of individual sample values...If a user replaces an individual value with an "x", delete that date entry
from the respective table. Deletion here is the only option since by default
the Nstrain, PublishData and PublishSE don't accept null values. Note that
deleting all 3 values is equivalent to removing the sample from the CSV file.
* gn3/db/traits.py (update_sample_data): If a value is "x", delete it from the
respective table.
| BonfaceKilz |
2022-02-08 | db: traits: Allow insertions of "0" in resp. sample values tables...When editing values from "x" to "0"(or any other value) when editing data, an
"update" statement was being run; thereby no new value was being inserted. To
the end user, modifying an "x" value to something else meant that no value was
being inserted. This commit fixes that by doing an insert whenever a change
from "x" to "0" is performed.
* gn3/db/traits.py (update_sample_data): Add insert statements whenever an
"update" statement returns a 0 row-count.
| BonfaceKilz |
2022-02-08 | db: traits: Insert "count" instead of "error" in "NStrain" table | BonfaceKilz |
2022-02-03 | db: Fetch correct sample data | BonfaceKilz |
2022-02-02 | Fix R/qtl covar bug...The rqtl_wrapper script was throwing an error when only a single
categorical covariate was used. This is apparently because "covars[,name]"
throws an error in such a situation. Using just "covars" in such a
situation prevents the error. So I just added an if statement checking
the number of covariates. There might be some better way to deal with
this in R, but this is the best I could come up with.
| zsloan |
2022-02-02 | Remove PublishFreeze from retrieve_publish_trait_info query...The PublishFreeze table isn't necessary in phenotype queries, since
PublishFreeze.Id = InbredSet.Id (for the purposes of identifying traits,
at least)
| zsloan |
2022-02-02 | Fix bug where sample values of 0 were being treated as False...In line 91 of gn3/db/traits.py, there was an if statement "if
record[key] else 'x'" that was treating values of 0 as False, so I
changed it to explicitly check that values aren't None
| zsloan |
2022-02-02 | Fix retrieve_publish_trait_data query...The PublishFreeeze table is actually unnecessary for this query, since
the group ID (inbred_set_id) should be passed in and that ID is in the
PublishXRef table (so no neeed to join with PublishFreeze)
| zsloan |
2022-02-02 | response object error fix | Alexander Kabui |
2022-02-02 | pep8 formatting | Alexander Kabui |
2022-02-02 | remove comments | Alexander Kabui |
2022-02-02 | return 401 on request fail | Alexander Kabui |
2022-02-02 | refactor code for invoking ctl script | Alexander Kabui |
2022-02-02 | pep8 formatting | Alexander Kabui |
2022-02-02 | match case string input to boolean | Alexander Kabui |
2022-02-02 | fix for parametric input | Alexander Kabui |
2022-02-02 | use user input significance | Alexander Kabui |
2022-02-02 | new line fix | Alexander Kabui |
2022-02-02 | add new json output | Alexander Kabui |
2022-02-02 | fix comprehension list | Alexander Kabui |
2022-02-02 | Revert "Use guix shell shortcut with guix.scm file"...This reverts commit f676c291967f8a81836b73c5a5dcd3c65e02552c.
| BonfaceKilz |
2022-01-27 | Use guix shell shortcut with guix.scm file | jgart |
2022-01-24 | README: Add pylint and mypy CI badges....We now have separate CI jobs for the pylint and mypy tests.
* README.md: Add pylint and mypy CI badges.
| Arun Isaac |
2022-01-22 | minor refactoring | Alexander Kabui |
2022-01-22 | function override:fix target specific output file for network | Alexander Kabui |
2022-01-22 | generate network | Alexander Kabui |
2022-01-22 | process ctl plot data img | Alexander Kabui |
2022-01-22 | generate ctl plots for each trait | Alexander Kabui |
2022-01-22 | read stdout data;handle exceptions | Alexander Kabui |
2022-01-22 | generate required json data for ctl api | Alexander Kabui |