aboutsummaryrefslogtreecommitdiff
path: root/bh20simplewebuploader
diff options
context:
space:
mode:
Diffstat (limited to 'bh20simplewebuploader')
-rw-r--r--bh20simplewebuploader/main.py17
-rw-r--r--bh20simplewebuploader/static/main.js5
-rw-r--r--bh20simplewebuploader/templates/form.html21
3 files changed, 38 insertions, 5 deletions
diff --git a/bh20simplewebuploader/main.py b/bh20simplewebuploader/main.py
index 1dff207..0ba43fd 100644
--- a/bh20simplewebuploader/main.py
+++ b/bh20simplewebuploader/main.py
@@ -424,6 +424,23 @@ def receive_files():
## but most likley you don't want to touch the queries, Cheers.
baseURL='http://sparql.genenetwork.org/sparql/'
+@app.route('/api/getCount', methods=['GET'])
+def getCount():
+ query="""
+PREFIX pubseq: <http://biohackathon.org/bh20-seq-schema#MainSchema/>
+select (COUNT(distinct ?dataset) as ?num)
+{
+ ?dataset pubseq:submitter ?id .
+ ?id ?p ?submitter
+}
+"""
+ payload = {'query': query, 'format': 'json'}
+ r = requests.get(baseURL, params=payload)
+ result = r.json()['results']['bindings']
+ # [{'num': {'type': 'typed-literal', 'datatype': 'http://www.w3.org/2001/XMLSchema#integer', 'value': '1352'}}]
+ # print(result, file=sys.stderr)
+ return jsonify({'sequences': int(result[0]["num"]["value"])})
+
@app.route('/api/getAllaccessions', methods=['GET'])
def getAllaccessions():
query="""SELECT DISTINCT ?fasta ?value WHERE {?fasta ?x[ <http://edamontology.org/data_2091> ?value ]}"""
diff --git a/bh20simplewebuploader/static/main.js b/bh20simplewebuploader/static/main.js
index 7084e1f..bf95832 100644
--- a/bh20simplewebuploader/static/main.js
+++ b/bh20simplewebuploader/static/main.js
@@ -18,6 +18,10 @@ let search = () => {
fetchAPI(scriptRoot + "/api/getDetailsForSeq?seq=" + encodeURIComponent(m));
}
+let fetchCount = () => {
+ fetchAPI("/api/getCount");
+}
+
let fetchSEQBySpecimen = () => {
fetchAPI("/api/getSEQCountbySpecimenSource");
}
@@ -160,7 +164,6 @@ for (let button of document.getElementsByClassName('remove-field')) {
}
// Change the submit button after hitting
-
function on_submit_button() {
var elem = document.getElementById("submit");
elem.value = "Submitting...";
diff --git a/bh20simplewebuploader/templates/form.html b/bh20simplewebuploader/templates/form.html
index 7d7cef8..2cbaf62 100644
--- a/bh20simplewebuploader/templates/form.html
+++ b/bh20simplewebuploader/templates/form.html
@@ -6,13 +6,14 @@
<link href="/static/main.css" rel="stylesheet" type="text/css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Web uploader for Public SARS-CoV-2 Sequence Resource</title>
+ <script type="text/javascript" src="/static/main.js"></script>
</head>
<body>
<section class="header">
<div class="logo"><a href="http://covid-19.genenetwork.org/"><img src="static/image/coronasmallcomp.gif" width="150" title="COVID-19 image by Tyler Morgan-Wall"></a></div>
<h1>Web uploader for Public SARS-CoV-2 Sequence Resource</h1>
-<small>Disabled until we got everything wired up</small>
+ <p>Database contains <span id="Counter"></span> public sequences!</p>
</section>
@@ -209,9 +210,21 @@
</div>
<script type="text/javascript">
- let scriptRoot = {{ request.script_root|tojson|safe }};
+ let scriptRoot = {{ request.script_root|tojson|safe }};
+
+ document.addEventListener("DOMContentLoaded", function(){
+ var count = fetch("/api/getCount")
+ .then((resp) => resp.json())
+ .then(function (data) {
+ count = data["sequences"];
+ console.log(count);
+ span = document.getElementById("Counter");
+ txt = document.createTextNode(count);
+ span.appendChild(txt);
+ });
+});
+
</script>
-<script type="text/javascript" src="/static/main.js"></script>
- </body>
+ </body>
</html>