Created
February 12, 2018 15:44
-
-
Save jvwong/739e3b6222d77ba050cd0f72dc7a78a0 to your computer and use it in GitHub Desktop.
'enrichment' endpoint
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// const request = require('request'); | |
// const Promise = require('promise-simple'); | |
// const csv = require('csvtojson'); | |
// const fs = require('fs'); | |
// const _ = require('lodash'); | |
const enrichment = function (query) { | |
var promise = new Promise(function(resolve, reject) { | |
// do a thing, possibly async, then… | |
if (query) { | |
resolve("Stuff worked!"); | |
} | |
else { | |
reject(Error("It broke")); | |
} | |
}); | |
return promise; | |
// var formData = { | |
// "output": "mini", | |
// "organism": "hsapiens", | |
// "significant": "1", | |
// "sort_by_structure": "1", | |
// "ordered_query": "0", | |
// "as_ranges": "0", | |
// "no_iea": "1", | |
// "underrep": "0", | |
// "hierfiltering": "none", | |
// "user_thr": "1", | |
// "min_set_size": "5", | |
// "max_set_size": "200", | |
// "threshold_algo": "fdr", | |
// "domain_size_type": "annotated", | |
// "custbg_cb": "none", | |
// "sf_GO:BP": "1", | |
// "query": query | |
// }; | |
// const d = Promise.defer(); | |
// request.post({ url: "http://biit.cs.ut.ee/gprofiler/", formData: formData }, function optionalCallback(err, httpResponse, body) { | |
// if (err) { | |
// d.reject(err); | |
// } | |
// // remove the second line | |
// const lines = body.split('\n'); | |
// lines.slice(0, 1); | |
// const str1 = body.split('\n').slice(0, 1).join("\n"); | |
// let str2 = body.split('\n').slice(2).join("\n"); // concatenate at last | |
// // remove lines starting with # | |
// const str3 = str2.replace(/^#.*$/mg, ""); | |
// const str4 = (str1 + '\n').concat(str3); | |
// fs.writeFileSync("outputFile", str4); | |
// // convert csv to json, extract "term id" | |
// let collection = []; | |
// let ret = []; | |
// csv({ delimiter: "\t" }) | |
// .fromFile("outputFile") | |
// .on('json', (jsonObj) => { | |
// collection.push(jsonObj); | |
// }) | |
// .on('done', (error) => { | |
// _.forEach(collection, function (elem) { | |
// ret.push(elem["term ID"]); | |
// }); | |
// d.resolve(ret); | |
// }); | |
// }); | |
// return d; | |
}; | |
module.exports = enrichment; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const enrichment = require('./enrichment'); | |
module.exports = { enrichment}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Import Depedencies | |
const express = require('express'); | |
const router = express.Router(); | |
const controller = require('./controller'); | |
const config = require('../../config'); | |
const {validate, proceed } = require('../gene-query'); | |
const enrichment = require("../enrichment"); | |
const isAuthenticated = token => { | |
return config.MASTER_PASSWORD != '' && config.MASTER_PASSWORD === token; | |
}; | |
const errorMsg = { | |
error: 'Invalid access token' | |
}; | |
// Expose a rest endpoint for controller.submitLayout | |
router.post('/submit-layout', function (req, res) { | |
if (isAuthenticated(req.body.token)) { | |
controller.submitLayout(req.body.uri, req.body.version, req.body.layout, req.body.user) | |
.then((package) => { | |
res.json(package); | |
}); | |
} else { | |
res.json(errorMsg); | |
} | |
}); | |
// Expose a rest endpoint for controller.submitGraph | |
router.post('/submit-graph', function (req, res) { | |
if (isAuthenticated(req.body.token)) { | |
controller.submitGraph(req.body.uri, req.body.version, req.body.graph) | |
.then((package) => { | |
res.json(package); | |
}); | |
} else { | |
res.json(errorMsg); | |
} | |
}); | |
// Expose a rest endpoint for controller.submitDiff | |
router.post('/submit-diff', function (req, res) { | |
if (isAuthenticated(req.body.token)) { | |
controller.submitDiff(req.body.uri, req.body.version, req.body.diff, req.body.user) | |
.then((package) => { | |
res.json(package); | |
}); | |
} else { | |
res.json(errorMsg); | |
} | |
}); | |
// Expose a rest endpoint for controller.getGraphAndLayout | |
router.get('/get-graph-and-layout', function (req, res) { | |
controller.getGraphAndLayout(req.query.uri, req.query.version).then((package) => { | |
res.json(package); | |
}); | |
}); | |
// expose a rest endpoint for validator | |
router.get('/gene-query/', (req, res) => { | |
const genes = req.query.gene; | |
console.log("endpoint genes are: "+genes); | |
const geneTokens = validate(genes); | |
const results = proceed(geneTokens); | |
res.json(results); | |
}); | |
//expose a rest endpoint for enrichment | |
router.get('/enrichment/', (req, res) => { | |
const genes = req.query.gene; | |
console.log("endpoint genes are: "+genes); | |
console.log(enrichment.enrichment); | |
enrichment.enrichment(genes).then(function(results) { | |
// res.json(results); | |
res.send(results); | |
}); | |
}); | |
// Expose a rest endpoint for controller.endSession | |
router.get('/disconnect', function (req, res) { | |
controller.endSession(req.query.uri, req.query.version, req.query.user) | |
.then((package) => { | |
res.json(package); | |
}); | |
}); | |
module.exports = router; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment