Age | Commit message (Expand) | Author |
2022-09-29 | Hard-limit the number of search results....* wqflask/wqflask/gsearch.py (MAX_SEARCH_RESULTS): New constant.
(GSearch.__init__): Hard-limit the number of search results to
MAX_SEARCH_RESULTS.
| Arun Isaac |
2022-09-29 | Support prefix search and range queries....* wqflask/wqflask/gsearch.py (GSearch.__init__): Support prefix search
and range queries.
| Arun Isaac |
2022-09-29 | Retrieve year as integer....* wqflask/scripts/index.py (main): Retrieve year as an integer from
the SQL database.
* wqflask/wqflask/gsearch.py (GSearch.__init__): Convert year from
integer to string.
| Arun Isaac |
2022-09-29 | Index prefixed fields and add values....* wqflask/scripts/index.py (main): Index fields with prefixes, and add
values for range queries.
| Arun Isaac |
2022-09-29 | Replace MonadicDictCursor with generator function....* wqflask/utility/monads.py (MonadicDictCursor): Delete class.
(sql_query_mdict): New function.
* wqflask/scripts/index.py: Import sql_query_mdict instead of
MonadicDictCursor.
(main): Use sql_query_mdict.
| Arun Isaac |
2022-09-29 | Open xapian database once, but SQL database once for each query....We reopen the SQL database once for each query because it times out if
kept waiting.
* wqflask/scripts/index.py (main): Open xapian database once, but SQL
database once for each query.
| Arun Isaac |
2022-09-29 | Remove empty first line in docstrings....* wqflask/utility/monads.py (MonadicDict, MonadicDictCursor): Remove
empty first line in docstrings.
| Arun Isaac |
2022-09-29 | Ignore None values early when initializing MonadicDict....* wqflask/utility/monads.py (MonadicDict.__init__): Ignore None values
early instead of converting them to Nothing and then ignoring them.
| Arun Isaac |
2022-09-29 | Return monadic value from MonadicDictCursor.fetchone....* wqflask/utility/monads.py (MonadicDictCursor.fetchone): Return
monadic value.
| Arun Isaac |
2022-09-29 | Abstract out writing documents into a xapian database....* wqflask/scripts/index.py (write_document): New function.
(main): Use write_document.
| Arun Isaac |
2022-09-29 | Close xapian database even if error occurs....* wqflask/wqflask/database.py (xapian_database,
xapian_writable_database): Close xapian database even if error occurs.
| Arun Isaac |
2022-09-29 | Remove empty rows, and conversion for output...Remove any rows that do not have values since they are not useful to
the computations and only lead to errors.
Remove the conversion to output format here: only convert the values
for output at the point of output, and not earlier.
| Frederick Muriuki Muriithi |
2022-09-28 | Do not assume transactions in database connections....Not all database queries need transactions. If transactions are
required, they should be made a separate context manager and called
only when required.
* wqflask/wqflask/database.py (database_connection): Do not rollback
or commit.
| Arun Isaac |
2022-09-27 | Fix indentation in get_species_list for-loop | zsloan |
2022-09-27 | Unit Test: Fix unit test for Chromosome functions. | Frederick Muriuki Muriithi |
2022-09-26 | Add REST API endpoint for viewing a group's genotype file metadata | zsloan |
2022-09-26 | Get heatmap and mapping working again with changing to species.py | zsloan |
2022-09-26 | Remove unused database_connection import from species.py | zsloan |
2022-09-26 | Implement global search using xapian....* wqflask/wqflask/gsearch.py: Import Just and Maybe from
pymonad.maybe; curry from pymonad.tools; xapian; MonadicDict from
utility.monads; xapian_database from wqflask.database. Do not import
datetime; database_connection from wqflask.database; base.data_set;
base.trait; db; utility.type_checking; utility.
(is_permitted_for_listing): New function.
(GSearch.__init__): Reimplement using xapian.
* wqflask/wqflask/templates/gsearch_gene.html (block js): Accept
dictionaries with missing keys, replacing them with "N/A".
| Arun Isaac |
2022-09-26 | Add indexing script for global search....* wqflask/scripts/index.py: New file.
| Arun Isaac |
2022-09-26 | Add xapian database connection utilities....* etc/default_settings.py (XAPIAN_DB_PATH): New variable.
* wqflask/wqflask/database.py: Import xapian.
(xapian_database, xapian_writable_database): New functions.
| Arun Isaac |
2022-09-26 | Generalize sql_uri function to get any setting....* wqflask/wqflask/database.py (sql_uri): Generalize to get_setting.
(database_connection): Call get_setting instead of sql_uri.
| Arun Isaac |
2022-09-25 | Fix issue where the display name was used in the hmac for phenotype traits | zsloan |
2022-09-23 | Remove click handler on global search....check_search_term is not relevant to global search. It checks search
terms in the unrelated #or_search and #and_search fields.
* wqflask/wqflask/static/new/javascript/dataset_select_menu_orig.js:
Do not call check_search_term on clicking global search button.
| Arun Isaac |
2022-09-22 | Fix bug in GeneUtil.py query where extra quotes caused an error | zsloan |
2022-09-22 | Use passed in cursor instead of initialising a new cursor. | Frederick Muriuki Muriithi |
2022-09-22 | Provide database cursor as argument for TheSpecies and Chromosomes...Provide the database cursor as an argument to the methods of the two
classes:
* wqflask.base.species.TheSpecies
* wqflask.base.species.Chromosomes
Also update dependent code to initialise and pass the cursor where
these classes are used.
| Frederick Muriuki Muriithi |
2022-09-22 | Update tests: pass in missing arguments. | Frederick Muriuki Muriithi |
2022-09-21 | Added Markers/HumanMarkers import to datasetgroup.py and removed it from...__init__.py
Previously it threw an error when it tried to use Markers/HumanMarkers
in datasetgroup.py; since Markers/HumanMarkers doesn't seem to be used
anywhere else, I think it's okay for the import to only be in
datasetgroup.py
| zsloan |
2022-09-21 | Refactor: pass redis and db connections as argument...Pass the redis and database connection/cursors as arguments to the
class methods, and do not retain a copy of the connections/cursors.
This allows us to do the connection management in the context
managers elsewhere - ideally, at the top-level. For now the context
manager is within the `create_dataset` function, but this should be
moved out to a higher level once the lower levels are verified to be
working as expected.
| Frederick Muriuki Muriithi |
2022-09-20 | Make -logP columns uniform | zsloan |
2022-09-20 | Make -logP columns uniform | zsloan |
2022-09-20 | Re-add collect import to views.py...Not sure why this was removed...I guess it looked like an unused import?
| zsloan |
2022-09-20 | Make Search and Global Search Max -logP columns uniform | zsloan |
2022-09-20 | Fix gsearch ProbeSet query | zsloan |
2022-09-20 | Remove global `Dataset_Getter` variable...Since the `__post_init__` method in the 'DatasetType' class checks
whether data is in redis before hitting the database, it does not
matter whether there is a global object of the type, as long as we
make sure to call the object correctly.
This commit makes that happen.
| Frederick Muriuki Muriithi |
2022-09-20 | Revert "Use member variable `self.conn` to avoid test failure"...This reverts commit 4fafdfd8487ddf61105b2a5ca92534c8014c1db4.
While using `self.conn.cursor()` works in the tests, it will not work
in the application since the point of initialisation could be very
different from the point where the 'property' is called.
| Frederick Muriuki Muriithi |
2022-09-20 | Use member variable `self.conn` to avoid test failure...Use the `self.conn` variable to prevent test from failing.
| Frederick Muriuki Muriithi |
2022-09-20 | integrate use of text files | Alexander_Kabui |
2022-09-20 | store text files in TMPDIR | Alexander_Kabui |
2022-09-20 | write probeset datasets to text files | Alexander_Kabui |
2022-09-20 | Decompose file into separate modules...To ease future refactors on the code, decompose the file into a module
with multiple modules that can be refactored semi-independently.
refactor-data_set_py-20220920 | Frederick Muriuki Muriithi |
2022-09-19 | Remove commented-out html | zsloan |
2022-09-19 | Provide fixtures for test. Fix error to pass test....Provide the following (empty) files to be used for the test
* wqflask/tests/unit/wqflask/marker_regression/genotype/bimbam/file_geno.txt
* wqflask/tests/unit/wqflask/marker_regression/genotype/bimbam/file_snps.txt
Rework the paths in
`wqflask/tests/unit/wqflask/marker_regression/test_gemma_mapping.py`
such that they point to the files added above for testing.
Do not require that the phenotype file exists in
`wqflask/wqflask/marker_regression/gemma_mapping.py` before attempting
the mapping.
| Frederick Muriuki Muriithi |
2022-09-19 | Remove "wrong" assertions...The assertions was checking that the function was implemented a certain
way, rather than whether the function was doing the correct thing.
| Frederick Muriuki Muriithi |
2022-09-19 | Check paths before running gemma command...* Check that the required file paths exist
* Check the bimbam directory path only once
| Frederick Muriuki Muriithi |
2022-09-19 | Improve error reporting for no mapping results...* wqflask/wqflask/marker_regression/exceptions.py: new
NoMappingResultsError exception
* wqflask/wqflask/templates/mapping_error.html: reword display of the
errors
* wqflask/wqflask/views.py: Raise the NoMappingResultsError exception
in the case where there are no results for the mapping.
| Frederick Muriuki Muriithi |
2022-09-19 | Check for file size before attempting parsing...Empty files lead to json encoding errors; this commit checks whether
the file is empty before attempting to parse the file.
| Frederick Muriuki Muriithi |
2022-09-19 | Display correct error for missing file/directory...Provide the user with the missing file/directory in the error message
to make debugging easier.
| Frederick Muriuki Muriithi |
2022-09-19 | Refactor: raise appropriate error...If a file/directory does not exist, raise the builtin
`FileNotFoundError` rather than the generic `Exception`.
| Frederick Muriuki Muriithi |