From ea2aea1fc85cb3253e6926f1dd9a2c4c0aa1cdbe Mon Sep 17 00:00:00 2001 From: turtlebasket Date: Sat, 4 Feb 2023 17:17:48 -0800 Subject: [PATCH] more WIP --- ncbi-api-test/index.js | 51 +++++++++++++++----- reagent-test/package.json | 2 + reagent-test/shadow-cljs.edn | 7 ++- reagent-test/src/reagent_test/core.cljs | 19 +++----- reagent-test/src/reagent_test/ncbi.cljs | 37 ++++++++++---- reagent-test/src/reagent_test/ncbi_test.cljs | 25 +++++++--- 6 files changed, 97 insertions(+), 44 deletions(-) diff --git a/ncbi-api-test/index.js b/ncbi-api-test/index.js index 6acc328..a1f4e93 100644 --- a/ncbi-api-test/index.js +++ b/ncbi-api-test/index.js @@ -1,18 +1,45 @@ -searchQuery = "science[journal]+AND+breast+cancer+AND+2008[pdat]"; +let searchQuery = "science[journal]+AND+breast+cancer+AND+2008[pdat]"; +let url = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils" -function testSearch(query) { - fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=${query}`) + +function testSearchPubmed(query) { + fetch(`${url}/esearch.fcgi?db=pubmed&term=${query}`) .then((res) => { - console.log(`Status: ${res.status}`); - let reader = res.body.getReader(); - // while (!reader.closed) { - reader.read().then(out => { - // console.log(out) - var decoder = new TextDecoder('utf8'); - console.log(decoder.decode(out.value)); + res.blob().then(val => { + val.text().then(val => { + let xmlParser = (new DOMParser()).parseFromString(val, "text/xml"); + let els = xmlParser.getElementsByTagName("Id"); + let ids = []; + for (let i = 0; i < els.length; i++) { + ids.push(els[i].innerHTML); + } + console.log(ids); + return ids; + }) + }) + }); +} + +function testSearchGene(query) { + fetch(`${url}/esearch.fcgi?db=gene&term=${query}`) + .then((res) => { + res.blob().then(val => { + val.text().then(val => { + console.log(val); + }) + }) + }); +} + +function testLookupGeneById(ids) { + fetch(`${url}/esummary.fcgi?db=gene&id=${String(ids)}`) + .then(res => { + res.blob().then(val => { + val.text().then(val => { + console.log(val) + }) }) - // } }) } -testSearch(searchQuery); +testLookupGeneById(7157); diff --git a/reagent-test/package.json b/reagent-test/package.json index fc9f83e..101d8d9 100644 --- a/reagent-test/package.json +++ b/reagent-test/package.json @@ -1,5 +1,7 @@ { "scripts": { + "build": "shadow-cljs compile app", + "dev": "shadow-cljs watch app", "test": "shadow-cljs compile tests", "repl": "shadow-cljs node-repl" }, diff --git a/reagent-test/shadow-cljs.edn b/reagent-test/shadow-cljs.edn index 4351bc4..1de2f76 100644 --- a/reagent-test/shadow-cljs.edn +++ b/reagent-test/shadow-cljs.edn @@ -1,7 +1,9 @@ {:source-paths ["src"] :dependencies [[binaryage/devtools "1.0.6"] [nrepl "1.0.0"] - [reagent "1.1.1"]] + [reagent "1.1.1"] + [cljs-http "0.1.46"]] + :builds {:app {:target :browser :output-dir "public/js" :asset-path "/js" @@ -13,6 +15,7 @@ :output-dir "tests-out/output" :modules {:app {:entries [reagent-test.core-test reagent-test.ncbi-test]}} - :autorun true}} + :autorun true + :devtools {:ignore-warnings true}}} :dev-http {3000 {:root "public"}}} diff --git a/reagent-test/src/reagent_test/core.cljs b/reagent-test/src/reagent_test/core.cljs index a8696c2..b8d76ec 100644 --- a/reagent-test/src/reagent_test/core.cljs +++ b/reagent-test/src/reagent_test/core.cljs @@ -1,21 +1,14 @@ (ns reagent-test.core - (:require - [reagent.core :as r] - [reagent.dom :as d] - [reagent-test.ncbi :refer [ncbi-search]])) + (:require [cljs.core.async :refer [> query - (gstring/format "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=%s") - js/fetch - take!)] - (js/console.log res))) + [db-id query] + (go (let [res (