aboutsummaryrefslogtreecommitdiff
path: root/bh20simplewebuploader
diff options
context:
space:
mode:
authorPjotr Prins2021-01-05 09:34:26 +0000
committerPjotr Prins2021-01-05 09:34:26 +0000
commit9d75ce088e6388bf23ae077fd06b2a3f51be1bda (patch)
tree81a4491ca0dd37b458025cc7aa3e553a77b0fb30 /bh20simplewebuploader
parent3c09a92423408d01b64e1b842c6b96778939d098 (diff)
downloadbh20-seq-resource-9d75ce088e6388bf23ae077fd06b2a3f51be1bda.tar.gz
bh20-seq-resource-9d75ce088e6388bf23ae077fd06b2a3f51be1bda.tar.lz
bh20-seq-resource-9d75ce088e6388bf23ae077fd06b2a3f51be1bda.zip
API: fix returned record to include original metadata
Diffstat (limited to 'bh20simplewebuploader')
-rw-r--r--bh20simplewebuploader/api.py34
1 files changed, 32 insertions, 2 deletions
diff --git a/bh20simplewebuploader/api.py b/bh20simplewebuploader/api.py
index b1b505f..11c74f2 100644
--- a/bh20simplewebuploader/api.py
+++ b/bh20simplewebuploader/api.py
@@ -7,6 +7,9 @@ import sys
from flask import Flask, request, redirect, send_file, send_from_directory, render_template, jsonify
from bh20simplewebuploader.main import app, sparqlURL
+PUBSEQ="http://covid19.genenetwork.org"
+ARVADOS="https://collections.lugli.arvadosapi.com/c="
+
# Helper functions
def fetch_sample_metadata(id):
@@ -42,13 +45,40 @@ def version():
@app.route('/api/sample/<id>.json')
def sample(id):
+ """
+
+API sample should return a record pointing to other resources,
+notably: permalink, original metadata record and the fasta
+data.
+
+curl http://localhost:5067/api/sample/MT533203.1.json
+[
+ {
+ "collection": "http://covid19.genenetwork.org/resource/lugli-4zz18-uovend31hdwa5ks",
+ "date": "2020-04-27",
+ "fasta": "https://collections.lugli.arvadosapi.com/c=lugli-4zz18-uovend31hdwa5ks/sequence.fasta",
+ "id": "MT533203.1",
+ "info": "http://identifiers.org/insdc/MT533203.1#sequence",
+ "mapper": "minimap v. 2.17",
+ "metadata": "https://collections.lugli.arvadosapi.com/c=lugli-4zz18-uovend31hdwa5ks/metadata.yaml",
+ "permalink": "http://covid19.genenetwork.org/resource/MT533203.1",
+ "sequencer": "http://www.ebi.ac.uk/efo/EFO_0008632",
+ "specimen": "http://purl.obolibrary.org/obo/NCIT_C155831"
+ }
+]
+
+
+"""
# metadata = file.name(seq)+"/metadata.yaml"
meta = fetch_sample_metadata(id)
print(meta)
+ # http://collections.lugli.arvadosapi.com/c=lugli-4zz18-uovend31hdwa5ks/metadata.yaml
return jsonify([{
'id': x['id']['value'],
- 'fasta': x['seq']['value'],
- 'collection': os.path.dirname(x['seq']['value']),
+ 'collection': x['seq']['value'],
+ 'permalink': PUBSEQ+'/resource/'+x['id']['value'],
+ 'fasta': ARVADOS+os.path.basename(x['seq']['value'])+'/sequence.fasta',
+ 'metadata': ARVADOS+os.path.basename(x['seq']['value'])+'/metadata.yaml',
'date': x['date']['value'],
'info': x['info']['value'],
'specimen': x['specimen']['value'],