mnml/ops/fetch.molecules.js

83 lines
2.3 KiB
JavaScript

const fs = require('fs');
const renderer = require('sdftosvg');
const SVG_OPTS = {
backgroundColor: 'none',
}
function convert(i) {
const output = `./../client/assets/molecules/${i}.svg`;
return new Promise((resolve, reject) => {
fs.readFile(`./molecules/mol${i}`, 'utf8', function rfCb(err, sdf) {
if (err) return reject(err);
// write svg
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 convert(i);
console.log('finished record', i);
} catch (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);
// }
// }
// }