molecules

This commit is contained in:
ntr 2019-03-27 13:34:43 +11:00
parent d4c43ce50f
commit 81f25a3f38
5 changed files with 70 additions and 2 deletions

1
client/.gitignore vendored
View File

@ -2,3 +2,4 @@ package-lock.json
node_modules/
dist/
.cache/
assets/molecules

3
ops/.gitignore vendored
View File

@ -1,2 +1,3 @@
node_modules/
package-lock.json
package-lock.json
molecules/

45
ops/fetch.molecules.js Normal file
View File

@ -0,0 +1,45 @@
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();

18
ops/molecules.js Normal file
View File

@ -0,0 +1,18 @@
const renderer = require('sdftosvg');
const uuidv4 = require('uuid/v4');
const fs = require('fs');
function convert(f) {
const uuid = uuidv4();
const input = `./molecules/${f}`;
const output = `./../client/assets/molecules/${uuid}.svg`;
fs.readFile(input, 'utf8', (err, sdf) => {
renderer.renderSdfToSvg(sdf, {}, function(err, svg) {
if (err) console.error(input, err);
fs.writeFile(output, svg, 'utf8', err => {
if (err) console.error(err);
});
});
});
}

View File

@ -12,6 +12,9 @@
"license": "UNLICENSED",
"dependencies": {
"knex": "^0.15.2",
"pg": "^7.4.3"
"pg": "^7.4.3",
"request": "^2.88.0",
"sdftosvg": "0.0.4",
"uuid": "^3.3.2"
}
}