just convert from bulk file (ask me for it)

This commit is contained in:
ntr
2019-03-27 14:28:23 +11:00
parent 81f25a3f38
commit a6926e9c7a
4 changed files with 57 additions and 23 deletions
+1
View File
@@ -1,3 +1,4 @@
node_modules/
package-lock.json
molecules/
bulk.sdf
+55 -18
View File
@@ -1,4 +1,3 @@
const request = require('request');
const fs = require('fs');
const renderer = require('sdftosvg');
@@ -6,40 +5,78 @@ const SVG_OPTS = {
backgroundColor: 'none',
}
function fetch(i) {
function convert(i) {
const output = `./../client/assets/molecules/${i}.svg`;
return new Promise((resolve, reject) => {
const url = `https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/CID/${i}/record/SDF/?record_type=2d&response_type=save&response_basename=Structure2D_CID_2519`;
const output = `./../client/assets/molecules/${i}.svg`;
request(url, function cb(err, res, body) {
if (err) reject(err);
// write file
fs.writeFile(`./molecules/Structure2D_CID_${i}.sdf`, body, function written(err) {
if (err) reject(err);
});
fs.readFile(`./molecules/mol${i}`, 'utf8', function rfCb(err, sdf) {
if (err) return reject(err);
// write svg
renderer.renderSdfToSvg(body, SVG_OPTS, function(err, svg) {
if (err) reject(err);
renderer.renderSdfToSvg(sdf, SVG_OPTS, function(err, svg) {
if (err) return reject(err);
fs.writeFile(output, svg, function written(err) {
if (err) reject(err);
resolve();
});
});
});
})
});
}
async function loop() {
for (var i = 10000; i >= 0; i--) {
try {
await fetch(i);
await convert(i);
console.log('finished record', i);
} catch (e) {
console.error(e);
console.error('record error', i, e);
}
}
}
loop();
// const request = require('request');
// const fs = require('fs');
// const renderer = require('sdftosvg');
// const SVG_OPTS = {
// backgroundColor: 'none',
// }
// function fetch(i) {
// return new Promise((resolve, reject) => {
// const url = `https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/CID/${i}/record/SDF/?record_type=2d&response_type=save&response_basename=Structure2D_CID_2519`;
// const output = `./../client/assets/molecules/${i}.svg`;
// request(url, function cb(err, res, body) {
// if (err) reject(err);
// // write file
// fs.writeFile(`./molecules/Structure2D_CID_${i}.sdf`, body, function written(err) {
// if (err) reject(err);
// });
// // write svg
// renderer.renderSdfToSvg(body, SVG_OPTS, function(err, svg) {
// if (err) reject(err);
// fs.writeFile(output, svg, function written(err) {
// if (err) reject(err);
// resolve();
// });
// });
// });
// });
// }
// async function loop() {
// for (var i = 10000; i >= 0; i--) {
// try {
// await fetch(i);
// console.log('finished record', i);
// } catch (e) {
// console.error(e);
// }
// }
// }
+1
View File
@@ -4,6 +4,7 @@
"description": "",
"main": "index.js",
"scripts": {
"split:molecules": "cd molecules; csplit -f mol bulk.sdf /\$\$\$\$/ {*} --suppress-matched -z",
"migrate": "knex migrate:latest",
"migrate:make": "knex migrate:make --",
"test": "echo \"Error: no test specified\" && exit 1"