Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 4th, 2012  |  syntax: None  |  size: 0.93 KB  |  hits: 15  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. (ns yeastract-ws-example
  2.  (:require [clojure.contrib.http.agent :as h]
  3.            [clojure.contrib.json :as j]))
  4.  
  5. (defn fetch-regulation-data
  6.   []
  7.   (let [data (:quads (j/read-json (h/string (h/http-agent "http://yeastract.com/beta/services/regulations/documented?tf=Ime1p&format=json"))))
  8.         genes (for [item data
  9.                     :when (some (fn [obj] (= (:value obj) "http://yeastract.com/beta/owl/yontology.owl#Gene")) item)]
  10.                 (some (fn [obj] (when (and (map? obj) (not (= (:value obj) "http://yeastract.com/beta/owl/yontology.owl#Gene")))
  11.                                   (last (re-find #"orfname=(.+)" (:value obj)))))
  12.                   item))]
  13.     genes))
  14.  
  15. (defn fetch-gene-expression-data
  16.   [genes]
  17.   (map (fn [gene] (j/read-json (h/string (h/http-agent (str "http://www.ebi.ac.uk/gxa/api?geneIs=" gene "&format=json&indent"))))) genes))
  18.  
  19. (defn main
  20.   []
  21.   (fetch-gene-expression-data (fetch-regulation-data)))