46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
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);
|
|
}
|
|
}
|
|
}
|
|
|
|
loop();
|