aboutsummaryrefslogtreecommitdiff
path: root/wqflask
AgeCommit message (Expand)Author
2022-09-29Hard-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-29Support prefix search and range queries....* wqflask/wqflask/gsearch.py (GSearch.__init__): Support prefix search and range queries. Arun Isaac
2022-09-29Retrieve 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-29Index prefixed fields and add values....* wqflask/scripts/index.py (main): Index fields with prefixes, and add values for range queries. Arun Isaac
2022-09-29Replace 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-29Open 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-29Remove empty first line in docstrings....* wqflask/utility/monads.py (MonadicDict, MonadicDictCursor): Remove empty first line in docstrings. Arun Isaac
2022-09-29Ignore 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-29Return monadic value from MonadicDictCursor.fetchone....* wqflask/utility/monads.py (MonadicDictCursor.fetchone): Return monadic value. Arun Isaac
2022-09-29Abstract out writing documents into a xapian database....* wqflask/scripts/index.py (write_document): New function. (main): Use write_document. Arun Isaac
2022-09-29Close 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-29Remove 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-28Do 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-27Fix indentation in get_species_list for-loopzsloan
2022-09-27Unit Test: Fix unit test for Chromosome functions.Frederick Muriuki Muriithi
2022-09-26Add REST API endpoint for viewing a group's genotype file metadatazsloan
2022-09-26Get heatmap and mapping working again with changing to species.pyzsloan
2022-09-26Remove unused database_connection import from species.pyzsloan
2022-09-26Implement 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-26Add indexing script for global search....* wqflask/scripts/index.py: New file. Arun Isaac
2022-09-26Add 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-26Generalize 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-25Fix issue where the display name was used in the hmac for phenotype traitszsloan
2022-09-23Remove 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-22Fix bug in GeneUtil.py query where extra quotes caused an errorzsloan
2022-09-22Use passed in cursor instead of initialising a new cursor.Frederick Muriuki Muriithi
2022-09-22Provide 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-22Update tests: pass in missing arguments.Frederick Muriuki Muriithi
2022-09-21Added 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-21Refactor: 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-20Make -logP columns uniformzsloan
2022-09-20Make -logP columns uniformzsloan
2022-09-20Re-add collect import to views.py...Not sure why this was removed...I guess it looked like an unused import? zsloan
2022-09-20Make Search and Global Search Max -logP columns uniformzsloan
2022-09-20Fix gsearch ProbeSet queryzsloan
2022-09-20Remove 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-20Revert "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-20Use member variable `self.conn` to avoid test failure...Use the `self.conn` variable to prevent test from failing. Frederick Muriuki Muriithi
2022-09-20integrate use of text filesAlexander_Kabui
2022-09-20store text files in TMPDIRAlexander_Kabui
2022-09-20write probeset datasets to text filesAlexander_Kabui
2022-09-20Decompose 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-20220920Frederick Muriuki Muriithi
2022-09-19Remove commented-out htmlzsloan
2022-09-19Provide 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-19Remove "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-19Check paths before running gemma command...* Check that the required file paths exist * Check the bimbam directory path only once Frederick Muriuki Muriithi
2022-09-19Improve 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-19Check 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-19Display 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-19Refactor: raise appropriate error...If a file/directory does not exist, raise the builtin `FileNotFoundError` rather than the generic `Exception`. Frederick Muriuki Muriithi