molecules
This commit is contained in:
parent
d4c43ce50f
commit
81f25a3f38
1
client/.gitignore
vendored
1
client/.gitignore
vendored
@ -2,3 +2,4 @@ package-lock.json
|
||||
node_modules/
|
||||
dist/
|
||||
.cache/
|
||||
assets/molecules
|
||||
|
||||
3
ops/.gitignore
vendored
3
ops/.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
node_modules/
|
||||
package-lock.json
|
||||
package-lock.json
|
||||
molecules/
|
||||
|
||||
45
ops/fetch.molecules.js
Normal file
45
ops/fetch.molecules.js
Normal 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
18
ops/molecules.js
Normal 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);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user