diff options
Diffstat (limited to 'gn3')
-rw-r--r-- | gn3/api/sampledata.py | 23 | ||||
-rw-r--r-- | gn3/app.py | 2 | ||||
-rw-r--r-- | gn3/settings.py | 3 |
3 files changed, 28 insertions, 0 deletions
diff --git a/gn3/api/sampledata.py b/gn3/api/sampledata.py new file mode 100644 index 0000000..5b09b52 --- /dev/null +++ b/gn3/api/sampledata.py @@ -0,0 +1,23 @@ +"""API for fetching sampledata from a given trait""" +import os +from flask import Blueprint +from flask import jsonify +from flask import current_app + +from gn3.db.matrix import get_current_matrix + + +sampledata = Blueprint("sampledata", __name__) + + +@sampledata.route("/dataset/<dataset_name>/trait/<trait_name>", methods=["GET"]) +def get_sampledata(dataset_name, trait_name): + """Fetch a trait's sampledata as a matrix.""" + return jsonify( + get_current_matrix( + os.path.join( + current_app.config.get("LMDB_PATH"), + dataset_name, trait_name + ) + ) + ) @@ -20,6 +20,7 @@ from gn3.api.async_commands import async_commands from gn3.api.menu import menu from gn3.api.search import search from gn3.api.metadata import metadata +from gn3.api.sampledata import sampledata from gn3.auth import oauth2 from gn3.auth.authentication.oauth2.server import setup_oauth2_server @@ -59,6 +60,7 @@ def create_app(config: Union[Dict, str, None] = None) -> Flask: app.register_blueprint(menu, url_prefix="/api/menu") app.register_blueprint(search, url_prefix="/api/search") app.register_blueprint(metadata, url_prefix="/api/metadata") + app.register_blueprint(sampledata, url_prefix="/api/sampledata") app.register_blueprint(oauth2, url_prefix="/api/oauth2") register_error_handlers(app) diff --git a/gn3/settings.py b/gn3/settings.py index 5fec562..1de4d27 100644 --- a/gn3/settings.py +++ b/gn3/settings.py @@ -15,6 +15,9 @@ RQTL_WRAPPER = "rqtl_wrapper.R" # SPARQL endpoint SPARQL_ENDPOINT = "http://localhost:8891/sparql" +# LMDB path +LMDB_PATH = os.environ.get( + "LMDB_PATH", f"{os.environ.get('HOME')}/tmp/dataset") # SQL confs SQL_URI = os.environ.get( |