aboutsummaryrefslogtreecommitdiff
path: root/gn3/api
AgeCommit message (Expand)Author
2023-06-07Add publication end-point...* gn3/api/metadata.py: Import get_publication_metadata (publication): New endpoint. * gn3/db/rdf.py (get_dataset_metadata): New function. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com> Munyoki Kilyungi
2023-06-07Remove trait_metadata endpoint...* gn3/api/metadata.py: Remove get_trait_metadata import. (trait_metadata): Delete. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com> Munyoki Kilyungi
2023-06-06Rename dataset_metadata -> dataset...Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com> Munyoki Kilyungi
2023-04-17Create new endpoint for fetching GeneRIF entries...* gn3/api/metadata.py: Import Template, sparql_query and RDF_PREFIXES. (get_genewiki_entries): New endpoint. * gn3/db/rdf.py: Add new constant for storing rdf prefixes. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com> Munyoki Kilyungi
2023-04-06Remove deprecated `gn3.db_utils.database_connector` function...Remove the deprecated function and fix a myriad of bugs that arise from removing the function. Issue: https://issues.genenetwork.org/issues/bugfix_coupling_current_app_and_db_utils Frederick Muriuki Muriithi
2023-03-01Fetch sampledata...* gn3/api/sampledata.py (get_sampledata): New end-point. * gn3/app.py: Register above end-point. * gn3/settings.py: Add new conf variable for LMDB. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com> Munyoki Kilyungi
2023-03-01Create API endpoint for fetching trait metadata...* gn3/api/metadata.py (dataset_metadata): New function and endpoint. (jsonify_dataset_metadata): Rename to dataset_metadata. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com> Munyoki Kilyungi
2023-01-24search: Use decimals, not floats, when converting to megabases....* gn3/api/search.py (parse_location_field): Use decimals, not floats, when converting to megabases. Arun Isaac
2023-01-24search: Support SI suffixes and point locations....* gn3/api/search.py (parse_position_field): New function. (parse_query): Associate the position prefix with the parse_position_field field processor. Arun Isaac
2023-01-24search: Abstract out parsing of position spec into separate function....* gn3/api/search.py (parse_position): New function. (parse_location_field): Use parse_position. * tests/unit/test_search.py: Import parse_position from gn3.api.search. (test_parse_position_close_to_zero_location): New test. Arun Isaac
2023-01-24search: Alias the position prefix with pos....* gn3/api/search.py (parse_query): Alias the position prefix with pos. Arun Isaac
2023-01-24search: Rename the mb prefix to position....* gn3/api/search.py (parse_query): Rename the mb prefix to position. Arun Isaac
2023-01-24search: Assume triplets mean synteny is requested....* gn3/api/search.py (query_subqueries, query_terms, parse_synteny_field, is_synteny_on, remove_synteny_field): Delete functions. (parse_query): Assume triplets mean synteny is requested. Arun Isaac
2023-01-24search: Use comprehension when splitting location....* gn3/api/search.py (parse_location_field): Use comprehension. Arun Isaac
2023-01-20mypy: minor fixes to typing errorsFrederick Muriuki Muriithi
2023-01-19search: Downcase before applying SI suffix....* gn3/api/search.py (apply_si_suffix): Downcase before applying SI suffix. Arun Isaac
2023-01-19search: Use decimals, not floats, to manipulate range limits....Decimals are exact and do not introduce tiny errors in the range limits like floats are wont to do. * gn3/api/search.py: Import Decimal from decimal. (apply_si_suffix): Use decimals, not floats, to manipulate range limits. Arun Isaac
2023-01-19search: Only look for SI suffix in the last character....Suffixes are the last character, not everything but the last character. * gn3/api/search.py (apply_si_suffix): Only look for SI suffix in the last character. Arun Isaac
2023-01-19search: Apply SI suffix only if last character is an actual suffix....Prior to this commit, when there was no SI suffix (such as in a plain suffix-less number), the last digit would be dropped! * gn3/api/search.py (apply_si_suffix): Apply SI suffix only if last character is an actual suffix. Arun Isaac
2023-01-18search: Ensure limits of chromosomal interval is non-negative....* gn3/api/search.py (parse_location_field): Ensure limits of chromosomal interval is non-negative. Arun Isaac
2023-01-18search: Convert point locations to a +/- 50 kbase range....* gn3/api/search.py (parse_location_field): Convert point locations to a +/- 50 kbase range. Arun Isaac
2023-01-18Pass species and species prefix as a single query argument....* gn3/api/search.py (parse_location_field): Accept a single species query argument instead of separate species and species prefix arguments. (parse_query): Pass parse_location_field a single species query argument. Arun Isaac
2023-01-18auth: Fix tests after enforcing FOREIGN KEY constraint...Fix a number of tests and fixtures that were not conforming to the FOREIGN KEY constraints: * Each test that creates a new "object" needs to clean up after itself * Each fixture that sets up test data needs to clean up after itself Frederick Muriuki Muriithi
2023-01-18Tolerate WEIGHT operator in parsed search queries....* gn3/api/search.py (remove_synteny_field): Tolerate WEIGHT operator in parsed search queries. Arun Isaac
2023-01-18Implement synteny search....* gn3/api/search.py: Import gzip, Path from pathlib and curry from pymonad.tools. (IntervalLiftoverFunction): New variable. (query_subqueries, query_terms, field_processor_or, liftover, liftover_interval, parse_synteny_field, is_synteny_on, remove_synteny_field): New functions. (parse_location_field): Generalize to support synteny searches. (parse_query): Support synteny search queries. (search_results): Pass synteny files directory to parse_query. Arun Isaac
2023-01-18Support location shorthands in search queries....* gn3/api/search.py: Import partial and reduce from functools. Import Callable from typing. (ChromosomalPosition, ChromosomalInterval, FieldProcessor): New classes. (apply_si_suffix, combine_queries, parse_location_field, interval_start, interval_end): New functions. (parse_query): Add field processors for location shorthands. Arun Isaac
2023-01-18Split off search query parsing into separate function....* gn3/api/search.py (parse_query): New function. (search_results): Use parse_query. Arun Isaac
2022-12-06Use a dataset's name to fetch it's metadata from RDF...* gn3/api/metadata.py (jsonify_dataset_metadata): Rewrite metadata end-point to use a dataset's name instead of it's accession_id. * gn3/db/rdf.py (get_dataset_metadata): Replace accession_id with name. Use one single RDF query instead of multiple queries. Munyoki Kilyungi
2022-11-28Catch a URLError when virtuoso isn't running at all...* gn3/api/metadata.py: Import URLError. (jsonify_dataset_metadata): Add URLError in except block. Munyoki Kilyungi
2022-11-28Fix pylint errors...* gn3/api/general.py: Delete rdf import. Delete trailing white spaces. * gn3/api/metadata.py: Delete trailing white spaces. Munyoki Kilyungi
2022-11-28Fail gracefully when virtuoso is not accessible...* gn3/api/metadata.py: import RemoteDisconnected. (jsonify_dataset_metadata): Wrap get_dataset_metadata in try block. Munyoki Kilyungi
2022-11-23Create a new REST endpoint for fetching a phenotype's metadata...* gn3/api/general.py: (dataset_metadata) Delete. * gn3/api/metadata.py: Import Blueprint, jsonify, current_app, SPARQLWrapper and get_dataset_metadata. (metadata): New Blueprint (jsonify_dataset_metadata): New function/end-point. * gn3/app.py: Import metadata (create_app): Register metadata blueprint. Munyoki Kilyungi
2022-11-02Re-implement RDF related code to use monads in its own module...* gn3/api/general.py: Replace gn3.db.datasets import with gn3.db.rdf. (dataset_metadata) <jsonify>: Replace datasets.dataset_metadata with rdf.get_dataset_metadata. * gn3/db/datasets.py: Remove unused imports. (sparql_query, dataset_metadata): Delete. * gn3/db/rdf.py: (sparql_query, get_dataset_metadata): New functions. Munyoki Kilyungi
2022-10-28Use Xapian index path from app settings....App settings should be accessed from current_app. It should not be hard-coded to a variable in a module. * gn3/db_utils.py: Do not import XAPIAN_DB_PATH from gn3.settings. (xapian_database): Accept path argument. * gn3/api/search.py: Import current_app from flask. (search_results): Pass Xapian index path to xapian_database. Arun Isaac
2022-10-28Add search....* gn3/api/search.py: New file. * gn3/app.py: Register the search blueprint. Arun Isaac
2022-07-28Add command to run the sample correlations in an external processFrederick Muriuki Muriithi
2022-05-26Add Endpoint to get menu items for use in UIFrederick Muriuki Muriithi
2022-05-24Run partial correlations with external script...Use new external script to run the partial correlations for both cases, i.e. - against an entire dataset, or - against selected traits Frederick Muriuki Muriithi
2022-05-24New script to compute partial correlations...* Add a new script to compute the partial correlations against: - a select list of traits, or - an entire dataset depending on the specified subcommand. This new script is meant to supercede the `scripts/partial_correlations.py` script. * Fix the check for errors * Reorganise the order of arguments for the `partial_correlations_with_target_traits` function: move the `method` argument before the `target_trait_names` argument so that the common arguments in the partial correlation computation functions share the same order. Frederick Muriuki Muriithi
2022-05-21Fix linting errorsFrederick Muriuki Muriithi
2022-05-16Run computation in one-shot asynchronous process...After reworking the worker/runner to have a one-shot mode, add a function that queues up the task and then runs the worker in the one-shot mode to process the computation in the background. Frederick Muriuki Muriithi
2022-05-06Fix linting and typing errorsFrederick Muriuki Muriithi
2022-05-06Hook up pcorrs with target traits computations...Enable the endpoint to actually compute partial correlations with selected target traits rather than against an entire dataset. Fix some issues caused by recent refactor that broke pcorrs against a dataset Frederick Muriuki Muriithi
2022-03-30Revert "Run json.loads on request.get_json, since request.get_json was just r......This reverts commit b93b22386056347d8002dd2e403425beeb4657cd. The appropriate fix should have been in GN2. The original statement args = request.get_json() was correct, since `request.get_json()` should return a python object parsed from the JSON string in the request. Unfortunately, GN2 was encoding the request data two times, which led to the call returning a JSON-encoded string instead of the expected object. The issue has been fixed in GN2 and therefore, the "fix" here can be reverted. Frederick Muriuki Muriithi
2022-03-28Run json.loads on request.get_json, since request.get_json was just returning...zsloan
2022-03-22Fixes pylint errorszsloan
2022-03-22Fix issue that causes R/qtl to always run pair-scan even if pair-scan isn't s...zsloan
2022-03-22Added genofile name to inputs for processing R/qtl pair-scan results, since i...zsloan
2022-03-22Fix imports to import both process_rqtl_mapping and process_rqtl_pairscan in ...zsloan
2022-03-22Added pairscan boolean kwarg and process_rqtl_pairscan function for reading i...zsloan