aboutsummaryrefslogtreecommitdiff
path: root/wqflask/base
AgeCommit message (Collapse)Author
2023-06-20configs: Fix issues caught by mechanical-rob testsFrederick Muriuki Muriithi
2023-06-20Add `create_app()` application factoryFrederick Muriuki Muriithi
Create the application and set up configs and other things within an application factory function. Fix obvious egregious errors preventing the application from starting up correctly.
2023-06-20Configs: Introduce Blueprints. Refactor configs in webqtlConfig.Frederick Muriuki Muriithi
* Introduce flask Blueprints to help with decoupling the various modules from the `wqflask/__init__.py` module * Refactor settings: Create a function `base.webqtlConfig.init_app(...)` to handle setting up the configurations on the app correctly. Call this function at app creation time. * Move configuration utility functions from `utility.tools` module to `utility.configuration` module. * Use the `get_setting(...)` function to retrieve configuration settings from the application.
2023-05-31Compute dataset type from name.Frederick Muriuki Muriithi
2023-05-19auth: Use auth privileges to control UI displayFrederick Muriuki Muriithi
Use the privileges from the authorisation endpoint to control which elements of the UI are displayed to the user. * wqflask/base/trait.py: Remove unused import * wqflask/wqflask/show_trait/show_trait.py: Unhook from GN-PROXY * wqflask/wqflask/templates/show_trait.html: Display or hide UI elements depending on the privileges the user has. * wqflask/wqflask/templates/show_trait_details.html: Display or hide UI elements depending on the privileges the user has. * wqflask/wqflask/views.py: Pass privileges, user, and resource details on to the UI template to be used for controlling UI element display.
2023-03-17Fix correlation bug caused by a NULL UPDATE_TIME in the DBzsloan
2023-02-17Use abbreviation as symbol for phenotypes in collection pagezsloan
2023-02-17Default trait abbreviation to N/A and only set to ↵zsloan
pre/post_publication_abbreviation if they're not None
2023-02-14Fix collection page error when ProbeSet/Publish traits don't have a meanzsloan
2023-01-12Add BXD-NIA-AD to list of BXD_GROUP_EXCEPTIONS (so the correct options show ↵zsloan
up in correlation drop-down)
2022-12-01Fix Exception that's raised when query_sql returns NoneMunyoki Kilyungi
* wqflask/base/data_set/dataset.py: Delete itertools, DictCursor. (DataSet.get_accession_id): Handle a case where query_sql returns a None value.
2022-11-30Remove check for shortnames/fullnames in probeset metadata queryMunyoki Kilyungi
Some rows in InfoFiles have NULL values thereby causing an exception to be raised. All InfoFiles.DB_Name are unique. * wqflask/base/data_set/dataset.py (DataSet.get_accession_id): Remove shortname/fullname check in query.
2022-11-10Use the Maybe Monad when fetching the accession_id of a datasetMunyoki Kilyungi
* wqflask/base/data_set/dataset.py: Import itertools, DictCursor, MonadicDict, Maybe, Nothing and query_sql. (DataSet.__init__): Initialize accession_id to Nothing. (DataSet.as_dict): Rename this to ... (Dataset.as_monadic_dict): ... this which returns a monadic dictionary. (DataSet.get_accession_id): Query for the accession_id and return it as a maybe monad.
2022-11-08Remove string check for 'None' in HTML templateMunyoki Kilyungi
In Jinja, you can use dot notation to check for values. If a value does not exist, you get None by default. * wqflask/base/data_set/dataset.py (Dataset.get_accession_id): Remove returning a string version of None. * wqflask/wqflask/templates/correlation_page.html: Delete `!= 'None'`.
2022-11-02Update Phenogen URL to rn7zsloan
2022-10-28Refactor: Pass user id to `check_resource_availability`Frederick Muriuki Muriithi
* Pass the user_id for the current user to the `check_resource_availability` function as an argument, rather than using the global `g.user_session.user_id` value.
2022-10-27init fix for querying for datasetsAlexander_Kabui
2022-10-20Cleanup: Remove unused codeFrederick Muriuki Muriithi
* Commit 49580eb9cd47bb2ce15fd44be11bb9580d85efef removed the use of the gn-proxy, but left some code that was used expressly for use with the gn-proxy. This commit removes that code.
2022-10-18Change logic in retrieve_trait_info to account for situations where a marker ↵zsloan
doesn't have a position in the DB
2022-10-17Fix bug when initializing Temp DatasetGroupszsloan
2022-10-14Add BXD_GROUP_EXCEPTIONS to webqtlConfig.py instead of having the groups ↵zsloan
hardcoded into show_trait.build_correlation_tools (+ add BXD-Heart-Metals to that list) I'm not sure why this logic exists, so it might be removed entirely later. I'm asking Rob
2022-10-12Use SQL to fetch trait metadata instead of gn-proxy, since it's dramatically ↵zsloan
faster
2022-10-12Include chr/mb values in jsonable traitzsloan
2022-10-04Add more information to exception to help in debuggingFrederick Muriuki Muriithi
2022-09-26Remove unused database_connection import from species.pyzsloan
2022-09-25Fix issue where the display name was used in the hmac for phenotype traitszsloan
2022-09-22Provide database cursor as argument for TheSpecies and ChromosomesFrederick Muriuki Muriithi
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.
2022-09-21Added Markers/HumanMarkers import to datasetgroup.py and removed it fromzsloan
__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
2022-09-21Refactor: pass redis and db connections as argumentFrederick Muriuki Muriithi
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.
2022-09-20Remove global `Dataset_Getter` variableFrederick Muriuki Muriithi
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.
2022-09-20Revert "Use member variable `self.conn` to avoid test failure"Frederick Muriuki Muriithi
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.
2022-09-20Use member variable `self.conn` to avoid test failureFrederick Muriuki Muriithi
Use the `self.conn` variable to prevent test from failing.
2022-09-20Decompose file into separate modulesrefactor-data_set_py-20220920Frederick Muriuki Muriithi
To ease future refactors on the code, decompose the file into a module with multiple modules that can be refactored semi-independently.
2022-09-12Fix query: Add comma to separate columns.Frederick Muriuki Muriithi
2022-09-12Fix query: remove wrongly-placed commaFrederick Muriuki Muriithi
2022-09-12Check db resultset before indexing into itFrederick Muriuki Muriithi
The assumption that the resultset will never be empty was leading to a lot of errors.
2022-09-09Fix bug in retrieve_other_nameszsloan
After a recent change, it always tries to unpack 6 values from the query, but it should only be unpacking 4 values if not type ProbeSet (so it was throwing an error for anything not ProbeSet)
2022-09-09tissue:fetch for query formattingAlexander_Kabui
2022-09-09Retain only a single import of the same moduleFrederick Muriuki Muriithi
2022-09-09Merge pull request #732 from BonfaceKilz/bug/fix-broken-correlationsMuriithi Frederick Muriuki
Bug/fix broken correlations
2022-09-09Fetch sample values correctlyMunyoki Kilyungi
* wqflask/base/data_set.py (MrnaAssayDataSet.retrieve_sample_data): Fix indentation.
2022-09-09Add missing importMunyoki Kilyungi
* wqflask/base/trait.py: Import utility.hmac
2022-09-09Import missing module.Frederick Muriuki Muriithi
2022-09-09Filter out Samples without valuesFrederick Muriuki Muriithi
2022-09-09Use `database_connection()`Frederick Muriuki Muriithi
Call the `database_connection()` function to get a connection to the database.
2022-09-09Replace `g.db.execute` with `cursor.execute`Frederick Muriuki Muriithi
2022-09-08Simplify how chromosomes are fetchedMunyoki Kilyungi
* wqflask/base/species.py: Import "Any" and "Union". (TheSpecies): Add type hints. Get rid of redundant "if ... else" statement. (IndChromosome.mb_length): Add type hints. (Chromosomes): Inject conn and add type hints.
2022-09-08Remove redundant cursor.fetchone()Munyoki Kilyungi
* wqflask/base/data_set.py (DataSet.retrieve_other_names): Call cursor.fetchone() only once.
2022-09-08Use "%s" in sql queryMunyoki Kilyungi
* wqflask/base/mrna_assay_tissue_data.py: Delete db_tools. (MrnaAssayTissueData.get_symbol_values_pairs): Re-format query. * wqflask/tests/unit/base/test_mrna_assay_tissue_data.py: (test_get_trait_symbol_and_tissue_values): Add test for above.
2022-09-08Inject database connection to mrna_assay_tissue_data classMunyoki Kilyungi
* wqflask/base/mrna_assay_tissue_data.py: Imports: Delete database_connection, escape, and database_connector. (MrnaAssayTissueData): Inject conn. Re-format queries. Rework 'if ... else' logic. Re-work how results are assigned to 'self.data[symbol]' - remove dot-notation. (MrnaAssayTissueData.get_symbol_values_pairs): Move box-comments to doc-string. Rework how results are assigned to 'symbol_values_dict' - remove dot-notation. * wqflask/tests/unit/base/test_mrna_assay_tissue_data.py (test_mrna_assay_tissue_data_initialisation): New test. * wqflask/wqflask/correlation/correlation_functions.py: Import database_connection. (get_trait_symbol_and_tissue_values): Inject conn object.