about summary refs log tree commit diff
path: root/bh20simplewebuploader
diff options
context:
space:
mode:
Diffstat (limited to 'bh20simplewebuploader')
-rw-r--r--bh20simplewebuploader/main.py22
-rw-r--r--bh20simplewebuploader/static/main.css5
-rw-r--r--bh20simplewebuploader/static/main.js3
-rw-r--r--bh20simplewebuploader/templates/demo.html11
4 files changed, 34 insertions, 7 deletions
diff --git a/bh20simplewebuploader/main.py b/bh20simplewebuploader/main.py
index 87ef212..73787c2 100644
--- a/bh20simplewebuploader/main.py
+++ b/bh20simplewebuploader/main.py
@@ -1298,3 +1298,25 @@ ORDER BY ?country_label
                    [{'seq': x['seq']['value'],
                      'country_label': x['country_label']['value']} for x in result])
 
+
+
+@app.route('/api/demoGetSeqByAgeGender', methods=['GET'])
+def demoGetSeqByAgeGender():
+    prefix = """PREFIX obo: <http://purl.obolibrary.org/obo/>
+"""
+    query="""SELECT DISTINCT ?seq ?gender ?age WHERE {
+    ?seq ?hostSchema [ obo:PATO_0000047 ?sex] .
+    ?seq ?hostSchema [ obo:PATO_0000011 ?age ] .
+    ?sex rdfs:label ?gender .
+}
+Order by ?age 
+"""
+
+    description = "List all sequences that have an entry in the field 'host_sex' and 'host_age'. Instead of the IRI we want to show the human readable label and order results by age"
+    payload = {'query': prefix + query, 'format': 'json'}
+    r = requests.get(sparqlURL, params=payload)
+    result = r.json()['results']['bindings']
+    return jsonify([{'description': description}, {'prefix': prefix}, {'query': query}],
+               [{'seq': x['seq']['value'],
+                 'gender': x['gender']['value'],
+                 'age': x['age']['value']} for x in result])
\ No newline at end of file
diff --git a/bh20simplewebuploader/static/main.css b/bh20simplewebuploader/static/main.css
index 36c1a33..237b952 100644
--- a/bh20simplewebuploader/static/main.css
+++ b/bh20simplewebuploader/static/main.css
@@ -551,3 +551,8 @@ border: 1px solid black;
 padding-left:10px;
 padding-right:10px;
 }
+
+#playgroundButtonBox
+{
+max-width: 80%;
+}
diff --git a/bh20simplewebuploader/static/main.js b/bh20simplewebuploader/static/main.js
index da196cf..1aa2582 100644
--- a/bh20simplewebuploader/static/main.js
+++ b/bh20simplewebuploader/static/main.js
@@ -234,6 +234,9 @@ let demoGetSouthAmericaSeq = () => {
     demofetchHTMLTable("/api/demoGetSouthAmericaSeq")
 }
 
+let demoGetSeqByAgeGender = () => {
+    demofetchHTMLTable("/api/demoGetSeqByAgeGender")
+}
 
 
 
diff --git a/bh20simplewebuploader/templates/demo.html b/bh20simplewebuploader/templates/demo.html
index 393548c..742185b 100644
--- a/bh20simplewebuploader/templates/demo.html
+++ b/bh20simplewebuploader/templates/demo.html
@@ -19,22 +19,19 @@
     -->
 
     <section class="search-section">
-      <div class="filter-options" action="#">
+      <div id="playgroundButtonBox" class="filter-options" action="#">
         <div>
           <button class="button" onclick="demoFetchSEQCountByLocation()">Count by Location</button>
           <button class="button" onclick="demoGetSEQCountbytech()">Count by Sequencer</button>
           <button class="button" onclick="demoFetchInstitutesPublications()">Get list of publications</button>
           <button class="button" onclick="demoFetchSEQCountBySpecimen()">Count by Specimen source</button>
           <button class="button" onclick="demoGetSEQCountbytechContinent()">Sequence Technologies used by continent</button>
-          <button class="button" onclick="demoGetNYsamples()">Get all NY samples</button>
           <button class="button" onclick="demoGetAuthors()">Get authors</button>
-          <button class="button" onclick="demoGetSequencePerDate()">Show Sequences by collection date</button>
           <button class="button" onclick="demoGetLocationGps()">Locations and their GPS</button>
-
-
+          <button class="button" onclick="demoGetSequencePerDate()">Show Sequences by collection date</button>
           <button class="button" onclick="demoGetSouthAmericaSeq()">List sequences from South America</button>
-
-
+          <button class="button" onclick="demoGetSeqByAgeGender()">Get Sequence by age and gender</button>
+          <button class="button" onclick="demoGetNYsamples()">Get all NY samples</button>
 
           <!-- <button class="button" onclick="fetchAllaccessions()">Show All accessions</button>
           <button class="button" onclick="fetchSEQCountbyContinent()">Count by Continent</button>-->