New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

openchemlib-extended

Package Overview
Dependencies
Maintainers
6
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

openchemlib-extended - npm Package Compare versions

Comparing version 4.0.1 to 6.0.0

core.js

2

lib/db/moleculeCreators.js
'use strict';
module.exports = function (Molecule) {
var fields = new Map();
const fields = new Map();

@@ -6,0 +6,0 @@ fields.set('oclid', Molecule.fromIDCode);

'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
module.exports = function (OCL) {

@@ -17,11 +13,5 @@ /*

var MoleculeDB = function () {
function MoleculeDB() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
_classCallCheck(this, MoleculeDB);
var _options$computePrope = options.computeProperties,
computeProperties = _options$computePrope === undefined ? false : _options$computePrope;
class MoleculeDB {
constructor(options = {}) {
const { computeProperties = false } = options;
this.db = {};

@@ -33,36 +23,24 @@ this.statistics = null;

_createClass(MoleculeDB, [{
key: 'pushEntry',
value: function pushEntry(molecule, data, moleculeInfo) {
var pushEntry = require('./pushEntry');
return pushEntry.call({ moleculeDB: this, OCL }, molecule, data, moleculeInfo);
}
}, {
key: 'pushMoleculeInfo',
value: function pushMoleculeInfo(moleculeInfo, data) {
var pushMoleculeInfo = require('./pushMoleculeInfo');
return pushMoleculeInfo.call({ moleculeDB: this, OCL }, moleculeInfo, data);
}
}, {
key: 'search',
value: function search(query, options) {
var search = require('./search');
return search.call({ moleculeDB: this, OCL, searcher: this.searcher }, query, options);
}
}, {
key: 'getDB',
value: function getDB() {
var _this = this;
pushEntry(molecule, data, moleculeInfo) {
const pushEntry = require('./pushEntry');
return pushEntry.call({ moleculeDB: this, OCL }, molecule, data, moleculeInfo);
}
return Object.keys(this.db).map(function (key) {
return _this.db[key];
});
}
}]);
pushMoleculeInfo(moleculeInfo, data) {
const pushMoleculeInfo = require('./pushMoleculeInfo');
return pushMoleculeInfo.call({ moleculeDB: this, OCL }, moleculeInfo, data);
}
return MoleculeDB;
}();
search(query, options) {
const search = require('./search');
return search.call({ moleculeDB: this, OCL, searcher: this.searcher }, query, options);
}
getDB() {
return Object.keys(this.db).map(key => this.db[key]);
}
}
MoleculeDB.parseCSV = function (csv, options) {
var parseCSV = require('./parseCSV');
const parseCSV = require('./parseCSV');
return parseCSV.call({ OCL, MoleculeDB }, csv, options);

@@ -72,3 +50,3 @@ };

MoleculeDB.parseSDF = function (sdf, options) {
var parseSDF = require('./parseSDF');
const parseSDF = require('./parseSDF');
return parseSDF.call({ OCL, MoleculeDB }, sdf, options);

@@ -75,0 +53,0 @@ };

'use strict';
var Papa = require('papaparse');
const Papa = require('papaparse');
var defaultCSVOptions = {
const defaultCSVOptions = {
header: true,
dynamicTyping: true,
skipEmptyLines: true,
onStep: function onStep() /* current, total*/{
onStep: function () /* current, total*/{
// empty function

@@ -27,8 +27,6 @@ }

function parseCSV(csv) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
function parseCSV(csv, options = {}) {
const getMoleculeCreators = require('./moleculeCreators');
const moleculeCreators = getMoleculeCreators(this.OCL.Molecule);
var getMoleculeCreators = require('./moleculeCreators');
var moleculeCreators = getMoleculeCreators(this.OCL.Molecule);
if (typeof csv !== 'string') {

@@ -39,19 +37,18 @@ throw new TypeError('csv must be a string');

var db = new this.MoleculeDB(options);
let db = new this.MoleculeDB(options);
return new Promise(function (resolve, reject) {
var parsed = Papa.parse(csv, options);
var fields = parsed.meta.fields;
var stats = new Array(fields.length);
var firstElement = parsed.data[0];
var moleculeCreator = void 0,
moleculeField = void 0;
for (var _i = 0; _i < fields.length; _i++) {
stats[_i] = {
label: fields[_i],
isNumeric: typeof firstElement[fields[_i]] === 'number'
const parsed = Papa.parse(csv, options);
const fields = parsed.meta.fields;
const stats = new Array(fields.length);
const firstElement = parsed.data[0];
let moleculeCreator, moleculeField;
for (let i = 0; i < fields.length; i++) {
stats[i] = {
label: fields[i],
isNumeric: typeof firstElement[fields[i]] === 'number'
};
var lowerField = fields[_i].toLowerCase();
const lowerField = fields[i].toLowerCase();
if (moleculeCreators.has(lowerField)) {
moleculeCreator = moleculeCreators.get(lowerField);
moleculeField = fields[_i];
moleculeField = fields[i];
}

@@ -64,4 +61,4 @@ }

var i = 0;
var l = parsed.data.length;
let i = 0;
const l = parsed.data.length;
parseNext();

@@ -80,3 +77,3 @@ function parseNext() {

options.onStep(++i, l);
setImmediate(parseNext);
setTimeout(parseNext, 0);
}

@@ -83,0 +80,0 @@ });

'use strict';
var sdfParser = require('sdf-parser');
const sdfParser = require('sdf-parser');
var defaultSDFOptions = {
onStep: function onStep() /* current, total*/{
const defaultSDFOptions = {
onStep: function () /* current, total*/{
// empty function

@@ -21,17 +21,15 @@ }

function parseSDF(sdf) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
function parseSDF(sdf, options = {}) {
if (typeof sdf !== 'string') {
throw new TypeError('sdf must be a string');
}
var Molecule = this.OCL.Molecule;
let Molecule = this.OCL.Molecule;
options = Object.assign({}, defaultSDFOptions, options);
var db = new this.MoleculeDB(options);
let db = new this.MoleculeDB(options);
return new Promise(function (resolve, reject) {
var parsed = sdfParser(sdf);
var molecules = parsed.molecules;
const parsed = sdfParser(sdf);
const molecules = parsed.molecules;
db.statistics = parsed.statistics;
var i = 0;
var l = molecules.length;
let i = 0;
const l = molecules.length;
parseNext();

@@ -50,3 +48,3 @@ function parseNext() {

options.onStep(++i, l);
setImmediate(parseNext);
setTimeout(parseNext, 0);
}

@@ -53,0 +51,0 @@ });

@@ -10,9 +10,8 @@ 'use strict';

function pushEntry(molecule) {
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var moleculeInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
function pushEntry(molecule, data = {}, moleculeInfo = {}) {
// the following lin could be the source of problems if the idCode version
// changes
// the following lin could be the source of problems if the idCode version changes
var moleculeIDCode = moleculeInfo.idCode ? moleculeInfo.idCode : molecule.getIDCode();
var entry = this.moleculeDB.db[moleculeIDCode];
let moleculeIDCode = moleculeInfo.idCode ? moleculeInfo.idCode : molecule.getIDCode();
let entry = this.moleculeDB.db[moleculeIDCode];
if (!entry) {

@@ -31,3 +30,3 @@ // a new molecule

var molecularFormula = void 0;
let molecularFormula;
if (!moleculeInfo.mw) {

@@ -44,3 +43,3 @@ molecularFormula = molecule.getMolecularFormula();

}
var properties = new this.OCL.MoleculeProperties(molecule);
const properties = new this.OCL.MoleculeProperties(molecule);
entry.properties.em = molecularFormula.absoluteWeight;

@@ -47,0 +46,0 @@ entry.properties.mf = molecularFormula.formula;

@@ -10,10 +10,8 @@ 'use strict';

function pushMoleculeInfo(moleculeInfo) {
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
function pushMoleculeInfo(moleculeInfo, data = {}) {
if (typeof moleculeInfo !== 'object') {
throw new Error('pushMoleculeInfo requires an object as first parameter');
}
var Molecule = this.OCL.Molecule;
var molecule = void 0;
const Molecule = this.OCL.Molecule;
let molecule;
if (moleculeInfo.molfile) {

@@ -24,7 +22,14 @@ molecule = Molecule.fromMolfile(moleculeInfo.molfile);

if (moleculeInfo.idCode) {
molecule = Molecule.fromIDCode(moleculeInfo.idCode, moleculeInfo.coordinates || false);
if (this.moleculeDB.db[moleculeInfo.idCode]) {
molecule = this.moleculeDB.db[moleculeInfo.idCode].molecule;
} else {
molecule = Molecule.fromIDCode(moleculeInfo.idCode, moleculeInfo.coordinates || false);
}
}
if (molecule) this.moleculeDB.pushEntry(molecule, data, moleculeInfo);
if (molecule) {
this.moleculeDB.pushEntry(molecule, data, moleculeInfo);
}
}
module.exports = pushMoleculeInfo;

@@ -10,3 +10,3 @@ 'use strict';

* @param {object} [options={}]
* @param {string} [options.format='oclid'] - query is in the format 'smiles', 'oclid' or 'molfile'
* @param {string} [options.format='idCode'] - query is in the format 'smiles', 'oclid' or 'molfile'
* @param {string} [options.mode='substructure'] - search by 'substructure', 'exact' or 'similarity'

@@ -19,19 +19,14 @@ * @param {boolean} [options.flattenResult=true] - The database group the data for the same product. This allows to flatten the result

function search(query) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _options$format = options.format,
format = _options$format === undefined ? 'oclid' : _options$format,
_options$mode = options.mode,
mode = _options$mode === undefined ? 'substructure' : _options$mode,
_options$flattenResul = options.flattenResult,
flattenResult = _options$flattenResul === undefined ? true : _options$flattenResul,
_options$keepMolecule = options.keepMolecule,
keepMolecule = _options$keepMolecule === undefined ? false : _options$keepMolecule,
_options$limit = options.limit,
limit = _options$limit === undefined ? Number.MAX_SAFE_INTEGER : _options$limit;
function search(query, options = {}) {
const {
format = 'idCode',
mode = 'substructure',
flattenResult = true,
keepMolecule = false,
limit = Number.MAX_SAFE_INTEGER
} = options;
if (typeof query === 'string') {
var getMoleculeCreators = require('./moleculeCreators');
var moleculeCreators = getMoleculeCreators(this.OCL.Molecule);
const getMoleculeCreators = require('./moleculeCreators');
const moleculeCreators = getMoleculeCreators(this.OCL.Molecule);
query = moleculeCreators.get(format.toLowerCase())(query);

@@ -42,3 +37,3 @@ } else if (!(query instanceof this.OCL.Molecule)) {

var result = void 0;
let result;
switch (mode.toLowerCase()) {

@@ -61,4 +56,4 @@ case 'exact':

function exactSearch(db, query) {
var queryIDCode = query.getIDCode();
var searchResult = db[queryIDCode] ? [db[queryIDCode]] : [];
const queryIDCode = query.getIDCode();
let searchResult = db[queryIDCode] ? [db[queryIDCode]] : [];
return searchResult;

@@ -68,3 +63,3 @@ }

function subStructureSearch(moleculeDB, query) {
var resetFragment = false;
let resetFragment = false;
if (!query.isFragment()) {

@@ -75,13 +70,19 @@ resetFragment = true;

var queryMW = getMW(query);
var queryIndex = query.getIndex();
var searcher = moleculeDB.searcher;
const queryMW = getMW(query);
const searchResult = [];
if (query.getAllAtoms() === 0) {
for (let idCode in moleculeDB.db) {
searchResult.push(moleculeDB.db[idCode]);
}
} else {
const queryIndex = query.getIndex();
const searcher = moleculeDB.searcher;
searcher.setFragment(query, queryIndex);
var searchResult = [];
for (var idCode in moleculeDB.db) {
var entry = moleculeDB.db[idCode];
searcher.setMolecule(entry.molecule, entry.index);
if (searcher.isFragmentInMolecule()) {
searchResult.push(entry);
searcher.setFragment(query, queryIndex);
for (let idCode in moleculeDB.db) {
let entry = moleculeDB.db[idCode];
searcher.setMolecule(entry.molecule, entry.index);
if (searcher.isFragmentInMolecule()) {
searchResult.push(entry);
}
}

@@ -102,10 +103,10 @@ }

function similaritySearch(moleculeDB, OCL, query) {
var queryIndex = query.getIndex();
var queryMW = getMW(query);
var queryIdCode = query.getIDCode();
const queryIndex = query.getIndex();
const queryMW = getMW(query);
const queryIdCode = query.getIDCode();
var searchResult = [];
var similarity = void 0;
for (var idCode in moleculeDB.db) {
var entry = moleculeDB.db[idCode];
const searchResult = [];
let similarity;
for (let idCode in moleculeDB.db) {
let entry = moleculeDB.db[idCode];
if (entry.idCode === queryIdCode) {

@@ -121,9 +122,7 @@ similarity = Number.MAX_SAFE_INTEGER;

});
return searchResult.map(function (entry) {
return entry.entry;
});
return searchResult.map(entry => entry.entry);
}
function getMW(query) {
var copy = query.getCompactCopy();
let copy = query.getCompactCopy();
copy.setFragment(false);

@@ -133,95 +132,30 @@ return copy.getMolecularFormula().relativeWeight;

function processResult(entries) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _options$flattenResul2 = options.flattenResult,
flattenResult = _options$flattenResul2 === undefined ? true : _options$flattenResul2,
_options$keepMolecule2 = options.keepMolecule,
keepMolecule = _options$keepMolecule2 === undefined ? false : _options$keepMolecule2,
_options$limit2 = options.limit,
limit = _options$limit2 === undefined ? Number.MAX_SAFE_INTEGER : _options$limit2;
function processResult(entries, options = {}) {
const {
flattenResult = true,
keepMolecule = false,
limit = Number.MAX_SAFE_INTEGER
} = options;
let results = [];
var results = [];
if (flattenResult) {
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var entry = _step.value;
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = entry.data[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var data = _step2.value;
results.push({
data,
idCode: entry.idCode,
properties: entry.properties,
molecule: keepMolecule ? entry.molecule : undefined
});
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
} else {
var _iteratorNormalCompletion3 = true;
var _didIteratorError3 = false;
var _iteratorError3 = undefined;
try {
for (var _iterator3 = entries[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
var _entry = _step3.value;
for (let entry of entries) {
for (let data of entry.data) {
results.push({
data: _entry.data,
idCode: _entry.idCode,
properties: _entry.properties,
molecule: keepMolecule ? _entry.molecule : undefined
data,
idCode: entry.idCode,
properties: entry.properties,
molecule: keepMolecule ? entry.molecule : undefined
});
}
} catch (err) {
_didIteratorError3 = true;
_iteratorError3 = err;
} finally {
try {
if (!_iteratorNormalCompletion3 && _iterator3.return) {
_iterator3.return();
}
} finally {
if (_didIteratorError3) {
throw _iteratorError3;
}
}
}
} else {
for (let entry of entries) {
results.push({
data: entry.data,
idCode: entry.idCode,
properties: entry.properties,
molecule: keepMolecule ? entry.molecule : undefined
});
}
}

@@ -228,0 +162,0 @@ if (limit < results.length) results.length = limit;

'use strict';
var staticMethods = {
const staticMethods = {
DB: require('./db/MoleculeDB'),

@@ -9,3 +9,3 @@ RXN: require('./rxn/RXN')

// These methods don't need to directly access OCL
var moleculePrototypeMethods = {
const moleculePrototypeMethods = {
getAllPaths: require('./extend/getAllPaths'),

@@ -23,3 +23,3 @@ getFunctions: require('./extend/functions/getFunctions'),

// that receives OCL and returns the method that will use it.
var moleculePrototypeMethodsNeedOCL = {
const moleculePrototypeMethodsNeedOCL = {
getAtomsInfo: require('./extend/getAtomsInfo'),

@@ -38,3 +38,3 @@ getConnectivityMatrix: require('./extend/getConnectivityMatrix'),

module.exports = function extend(OCL) {
var key = void 0;
let key;
for (key in staticMethods) {

@@ -44,3 +44,3 @@ OCL[key] = staticMethods[key](OCL);

var MoleculePrototype = OCL.Molecule.prototype;
const MoleculePrototype = OCL.Molecule.prototype;
for (key in moleculePrototypeMethods) {

@@ -47,0 +47,0 @@ MoleculePrototype[key] = moleculePrototypeMethods[key];

@@ -9,12 +9,11 @@ 'use strict';

module.exports = function () {
return function addMoleculeAndAlign(molecule) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _options$space = options.space,
space = _options$space === undefined ? 2 : _options$space;
return function addMoleculeAndAlign(molecule, options = {}) {
const {
space = 2
} = options;
let boundary = this.getBoundary();
let addBoundary = molecule.getBoundary();
var boundary = this.getBoundary();
var addBoundary = molecule.getBoundary();
let y = (boundary.minY + boundary.maxY) / 2 - (addBoundary.minY + addBoundary.maxY) / 2;
var y = (boundary.minY + boundary.maxY) / 2 - (addBoundary.minY + addBoundary.maxY) / 2;
molecule.translateCoords(boundary.maxX - addBoundary.minX + space, y);

@@ -21,0 +20,0 @@ this.addMolecule(molecule);

@@ -8,15 +8,11 @@ 'use strict';

module.exports = function (OCL) {
return function cleaveBonds() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _options$filter = options.filter,
filter = _options$filter === undefined ? function (bond) {
return !bond.isAromatic && bond.kind === 1 && bond.ringSize === 0;
} : _options$filter,
_options$hose = options.hose,
hose = _options$hose === undefined ? {
minSphereSize: 1,
maxSphereSize: 3
} : _options$hose;
return function cleaveBonds(options = {}) {
const {
filter = bond => !bond.isAromatic && bond.kind === 1 && bond.ringSize === 0,
hose = {
minSphereSize: 1,
maxSphereSize: 3
}
} = options;
var atoms = [];

@@ -32,44 +28,22 @@ for (var i = 0; i < this.getAllAtoms(); i++) {

var bonds = [];
for (var _i = 0; _i < this.getAllBonds(); _i++) {
var _bond = {};
_bond.i = _i;
_bond.order = this.getBondOrder(_i);
_bond.atom1 = this.getBondAtom(0, _i);
_bond.atom2 = this.getBondAtom(1, _i);
_bond.kind = this.getBondType(_i);
_bond.isAromatic = this.isAromaticBond(_i);
_bond.ringSize = this.getBondRingSize(_i);
if (filter(_bond)) {
_bond.selected = true;
atoms[_bond.atom1].links.push(_bond.atom2);
atoms[_bond.atom2].links.push(_bond.atom1);
bonds.push(_bond);
for (let i = 0; i < this.getAllBonds(); i++) {
let bond = {};
bond.i = i;
bond.order = this.getBondOrder(i);
bond.atom1 = this.getBondAtom(0, i);
bond.atom2 = this.getBondAtom(1, i);
bond.kind = this.getBondType(i);
bond.isAromatic = this.isAromaticBond(i);
bond.ringSize = this.getBondRingSize(i);
if (filter(bond)) {
bond.selected = true;
atoms[bond.atom1].links.push(bond.atom2);
atoms[bond.atom2].links.push(bond.atom1);
bonds.push(bond);
}
}
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = bonds[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var bond = _step.value;
bond.fragments = breakMolecule(this, atoms, bond, hose);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
for (var bond of bonds) {
bond.fragments = breakMolecule(this, atoms, bond, hose);
}
return bonds;

@@ -79,3 +53,3 @@ };

function breakMolecule(molecule, atoms, bond, hoseOptions) {
var brokenMolecule = molecule.getCompactCopy();
let brokenMolecule = molecule.getCompactCopy();
brokenMolecule.markBondForDeletion(bond.i);

@@ -89,5 +63,3 @@ brokenMolecule.deleteMarkedAtomsAndBonds();

result.atomMap = [];
var includeAtom = fragmentMap.map(function (id) {
return id === i;
}); // eslint-disable-line no-loop-func
var includeAtom = fragmentMap.map(id => id === i); // eslint-disable-line no-loop-func
var fragment = new OCL.Molecule(0, 0);

@@ -100,11 +72,7 @@ var atomMap = [];

fragment.addBond(atomMap[bond.atom1], fragment.addAtom(154), 1);
bond.hoses1 = fragment.getHoseCodesForAtom(atomMap[bond.atom1], hoseOptions).map(function (f, i) {
return { f, i };
});
bond.hoses1 = fragment.getHoseCodesForAtom(atomMap[bond.atom1], hoseOptions).map((f, i) => ({ f, i }));
}
if (atomMap[bond.atom2] > -1) {
fragment.addBond(atomMap[bond.atom2], fragment.addAtom(154), 1);
bond.hoses2 = fragment.getHoseCodesForAtom(atomMap[bond.atom2], hoseOptions).map(function (f, i) {
return { f, i };
});
bond.hoses2 = fragment.getHoseCodesForAtom(atomMap[bond.atom2], hoseOptions).map((f, i) => ({ f, i }));
}

@@ -111,0 +79,0 @@ result.idCode = fragment.getIDCode();

'use strict';
var electronegativities = require('./electronegativities');
var fragments = require('./fragments');
const electronegativities = require('./electronegativities');
const fragments = require('./fragments');

@@ -12,5 +12,5 @@ module.exports = function getAllCouplings() {

var couplings = [];
for (var i = 0; i < molecule.getAllAtoms(); i++) {
for (let i = 0; i < molecule.getAllAtoms(); i++) {
if (molecule.getAtomLabel(i) === 'H') {
for (var j = i + 1; j < molecule.getAllAtoms(); j++) {
for (let j = i + 1; j < molecule.getAllAtoms(); j++) {
if (molecule.getAtomLabel(j) === 'H') {

@@ -51,3 +51,3 @@ if (!isAttachedToHeteroAtom(molecule, i) && !isAttachedToHeteroAtom(molecule, j)) {

var nbConnectedAtoms = molecule.getAllConnAtoms(idInit);
for (var i = 0; i < nbConnectedAtoms; i++) {
for (let i = 0; i < nbConnectedAtoms; i++) {
if (molecule.getConnAtom(idInit, i) === idEnd) {

@@ -74,4 +74,4 @@ var coordinates = new Array(3);

for (var _i = 0; _i < nbConnectedAtoms; _i++) {
var connectivityAtom = molecule.getConnAtom(idInit, _i);
for (let i = 0; i < nbConnectedAtoms; i++) {
var connectivityAtom = molecule.getConnAtom(idInit, i);
if (connectivityAtom !== parent) {

@@ -96,6 +96,6 @@ getPath(molecule, idInit, connectivityAtom, idEnd, pathLength, atoms, xyz);

var index = atoms.length - 1;
for (var i = 0; i < matchFragments.length; i++) {
for (let i = 0; i < matchFragments.length; i++) {
match = 0;
for (var j = 0; j < matchFragments[i].length; j++) {
for (var k = 1; k < index; k++) {
for (let j = 0; j < matchFragments[i].length; j++) {
for (let k = 1; k < index; k++) {
if (matchFragments[i][j] === atoms[k]) {

@@ -135,5 +135,3 @@ match++;

if (C1 > C2) {
var _ref = [C2, C1];
C1 = _ref[0];
C2 = _ref[1];
[C1, C2] = [C2, C1];
}

@@ -169,6 +167,6 @@

xyz = coupling.xyz;
for (var _i2 = 0; _i2 < xyz.length; _i2++) {
coords[_i2] = new Array(3);
for (var j = 0; j < 3; j++) {
coords[_i2][j] = xyz[_i2][j];
for (let i = 0; i < xyz.length; i++) {
coords[i] = new Array(3);
for (let j = 0; j < 3; j++) {
coords[i][j] = xyz[i][j];
}

@@ -192,8 +190,8 @@ }

for (var _i3 = 0; _i3 < xyz.length; _i3++) {
coords[_i3] = new Array(3);
for (var _j = 0; _j < 3; _j++) {
coords[_i3][_j] = xyz[_i3][_j];
for (let i = 0; i < xyz.length; i++) {
coords[i] = new Array(3);
for (let j = 0; j < 3; j++) {
coords[i][j] = xyz[i][j];
}
sumZ += Math.abs(coords[_i3][2]);
sumZ += Math.abs(coords[i][2]);
}

@@ -271,4 +269,4 @@ if (sumZ === 0 && !isDoubleOrTripleBond(molecule, atoms[1], atoms[2])) {

for (var i = 0; i < xyz.length; i++) {
for (var j = i + 1; j < xyz.length; j++) {
for (let i = 0; i < xyz.length; i++) {
for (let j = i + 1; j < xyz.length; j++) {
Sdistances[k] = (xyz[i][0] - xyz[j][0]) * (xyz[i][0] - xyz[j][0]) + (xyz[i][1] - xyz[j][1]) * (xyz[i][1] - xyz[j][1]) + (xyz[i][2] - xyz[j][2]) * (xyz[i][2] - xyz[j][2]);

@@ -314,5 +312,5 @@ distances[k] = Math.sqrt(Sdistances[k]);

p = [13.7, -0.73, 0, 0.56, -2.47, 16.9];
for (var j = 1; j < atoms.length - 1; j++) {
for (let j = 1; j < atoms.length - 1; j++) {
nbConnectedAtoms = molecule.getAllConnAtoms(j);
for (var i = 0; i < nbConnectedAtoms; i++) {
for (let i = 0; i < nbConnectedAtoms; i++) {
delta = electronegativities[molecule.getAtomLabel(molecule.getConnAtom(j, i))] - electH;

@@ -333,11 +331,11 @@ J += delta * (p[3] + p[4] * Math.cos(direction[j] * dihedralAngle + p[5] * Math.abs(delta)) * Math.cos(direction[j] * dihedralAngle + p[5] * Math.abs(delta)));

for (var _j2 = 1; _j2 < atoms.length - 1; _j2++) {
nbConnectedAtoms = molecule.getAllConnAtoms(_j2);
for (let j = 1; j < atoms.length - 1; j++) {
nbConnectedAtoms = molecule.getAllConnAtoms(j);
I = 0;
for (var _i4 = 0; _i4 < nbConnectedAtoms; _i4++) {
atom2 = molecule.getConnAtom(_j2, _i4);
for (let i = 0; i < nbConnectedAtoms; i++) {
atom2 = molecule.getConnAtom(j, i);
delta = electronegativities[molecule.getAtomLabel(atom2)] - electH;
atom2 = molecule.getConnAtom(_j2, _i4);
atom2 = molecule.getConnAtom(j, i);
nbConnectedAtoms2 = molecule.getAllConnAtoms(atom2);
for (var k = 0; k < nbConnectedAtoms2; k++) {
for (let k = 0; k < nbConnectedAtoms2; k++) {
// i = (Ca -CH) + p7 S ( Cb -CH)

@@ -349,3 +347,3 @@ I += electronegativities[molecule.getAtomLabel(molecule.getConnAtom(atom2, k))] - electH;

J += I * (p[3] + p[4] * (Math.cos(direction[_j2] * dihedralAngle + p[5] * Math.abs(I)) * Math.cos(direction[_j2] * dihedralAngle + p[5] * Math.abs(I))));
J += I * (p[3] + p[4] * (Math.cos(direction[j] * dihedralAngle + p[5] * Math.abs(I)) * Math.cos(direction[j] * dihedralAngle + p[5] * Math.abs(I))));
}

@@ -377,5 +375,5 @@ J += p[0] * Math.cos(dihedralAngle) * Math.cos(dihedralAngle) + p[1] * Math.cos(dihedralAngle) + p[2];

var nbConnectedAtoms;
for (var j = 1; j < atoms.length - 1; j++) {
for (let j = 1; j < atoms.length - 1; j++) {
nbConnectedAtoms = molecule.getAllConnAtoms(j);
for (var i = 0; i < nbConnectedAtoms; i++) {
for (let i = 0; i < nbConnectedAtoms; i++) {
x += electronegativities[molecule.getAtomLabel(molecule.getConnAtom(j, i))] - electronegativities.H;

@@ -382,0 +380,0 @@ }

'use strict';
module.exports = function (OCL) {
var Util = OCL.Util;
return function getDiastereotopicHoseCodes() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var diaIDs = this.getDiastereotopicAtomIDs(options).map(function (a) {
return { oclID: a };
});
const Util = OCL.Util;
return function getDiastereotopicHoseCodes(options = {}) {
const diaIDs = this.getDiastereotopicAtomIDs(options).map(a => ({ oclID: a }));
diaIDs.forEach(function (diaID) {
var hoses = Util.getHoseCodesFromDiastereotopicID(diaID.oclID, options);
const hoses = Util.getHoseCodesFromDiastereotopicID(diaID.oclID, options);
diaID.hoses = [];
var level = 1;
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = hoses[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var hose = _step.value;
diaID.hoses.push({
level: level++,
oclID: hose
});
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
let level = 1;
for (const hose of hoses) {
diaID.hoses.push({
level: level++,
oclID: hose
});
}

@@ -42,0 +17,0 @@ });

@@ -5,3 +5,3 @@ 'use strict';

return function getExtendedDiastereotopicAtomIDs() {
var molecule = this.getCompactCopy();
const molecule = this.getCompactCopy();
molecule.addImplicitHydrogens();

@@ -11,8 +11,8 @@ // TODO Temporary code ???

var diaIDs = molecule.getDiastereotopicAtomIDs();
var newDiaIDs = [];
const diaIDs = molecule.getDiastereotopicAtomIDs();
const newDiaIDs = [];
for (var i = 0; i < diaIDs.length; i++) {
var diaID = diaIDs[i];
var newDiaID = {
const diaID = diaIDs[i];
const newDiaID = {
oclID: diaID,

@@ -23,3 +23,3 @@ hydrogenOCLIDs: [],

for (var j = 0; j < molecule.getAllConnAtoms(i); j++) {
var atom = molecule.getConnAtom(i, j);
const atom = molecule.getConnAtom(i, j);
if (molecule.getAtomicNo(atom) === 1) {

@@ -26,0 +26,0 @@ newDiaID.nbHydrogens++;

'use strict';
module.exports = function getGroupedDiastereotopicAtomIDs() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
module.exports = function getGroupedDiastereotopicAtomIDs(options = {}) {
var label = options.atomLabel;

@@ -30,28 +28,6 @@

var diaIDsTable = [];
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = Object.keys(diaIDsObject)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var key = _step.value;
diaIDsTable.push(diaIDsObject[key]);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
for (var key of Object.keys(diaIDsObject)) {
diaIDsTable.push(diaIDsObject[key]);
}
return diaIDsTable;
};
'use strict';
module.exports = function toDiastereotopicSVG() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _options$width = options.width,
width = _options$width === undefined ? 300 : _options$width,
_options$height = options.height,
height = _options$height === undefined ? 200 : _options$height,
_options$prefix = options.prefix,
prefix = _options$prefix === undefined ? 'ocl' : _options$prefix,
_options$heavyAtomHyd = options.heavyAtomHydrogen,
heavyAtomHydrogen = _options$heavyAtomHyd === undefined ? false : _options$heavyAtomHyd;
module.exports = function toDiastereotopicSVG(options = {}) {
var {
width = 300,
height = 200,
prefix = 'ocl',
heavyAtomHydrogen = false
} = options;
var svg = options.svg;

@@ -23,10 +20,10 @@ var diaIDs = [];

if (heavyAtomHydrogen) {
for (var i = 0; i < this.getAtoms(); i++) {
for (let i = 0; i < this.getAtoms(); i++) {
diaIDs.push([]);
}
var groupedDiaIDs = this.getGroupedDiastereotopicAtomIDs();
let groupedDiaIDs = this.getGroupedDiastereotopicAtomIDs();
groupedDiaIDs.forEach(function (diaID) {
if (hydrogenInfo[diaID.oclID] && hydrogenInfo[diaID.oclID].nbHydrogens > 0) {
diaID.atoms.forEach(function (atom) {
hydrogenInfo[diaID.oclID].hydrogenOCLIDs.forEach(function (id) {
diaID.atoms.forEach(atom => {
hydrogenInfo[diaID.oclID].hydrogenOCLIDs.forEach(id => {
if (!diaIDs[atom * 1].includes(id)) diaIDs[atom].push(id);

@@ -38,5 +35,3 @@ });

} else {
diaIDs = this.getDiastereotopicAtomIDs().map(function (a) {
return [a];
});
diaIDs = this.getDiastereotopicAtomIDs().map(a => [a]);
}

@@ -43,0 +38,0 @@

@@ -7,3 +7,3 @@ 'use strict';

var atoms = molecule.getAtomsInfo();
for (var i = 0; i < molecule.getAllAtoms(); i++) {
for (let i = 0; i < molecule.getAllAtoms(); i++) {
var atom = atoms[i];

@@ -16,13 +16,13 @@ atom.i = i;

var bonds = [];
for (var _i = 0; _i < molecule.getAllBonds(); _i++) {
for (let i = 0; i < molecule.getAllBonds(); i++) {
var bond = {};
bonds.push(bond);
bond.i = _i;
bond.order = molecule.getBondOrder(_i);
bond.atom1 = molecule.getBondAtom(0, _i);
bond.atom2 = molecule.getBondAtom(1, _i);
bond.type = molecule.getBondType(_i);
bond.isAromatic = molecule.isAromaticBond(_i);
bond.i = i;
bond.order = molecule.getBondOrder(i);
bond.atom1 = molecule.getBondAtom(0, i);
bond.atom2 = molecule.getBondAtom(1, i);
bond.type = molecule.getBondType(i);
bond.isAromatic = molecule.isAromaticBond(i);
if (!bond.isAromatic && molecule.getBondTypeSimple(_i) === 1 && molecule.getAtomicNo(bond.atom1) === 6 && molecule.getAtomicNo(bond.atom2) === 6 && (atoms[bond.atom1].extra.cnoHybridation === 3 || atoms[bond.atom2].extra.cnoHybridation === 3)) {
if (!bond.isAromatic && molecule.getBondTypeSimple(i) === 1 && molecule.getAtomicNo(bond.atom1) === 6 && molecule.getAtomicNo(bond.atom2) === 6 && (atoms[bond.atom1].extra.cnoHybridation === 3 || atoms[bond.atom2].extra.cnoHybridation === 3)) {
bond.selected = true;

@@ -35,27 +35,6 @@ atoms[bond.atom1].links.push(bond.atom2);

var brokenMolecule = molecule.getCompactCopy();
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = bonds[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var _bond = _step.value;
if (_bond.selected) {
brokenMolecule.markBondForDeletion(_bond.i);
}
for (let bond of bonds) {
if (bond.selected) {
brokenMolecule.markBondForDeletion(bond.i);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}

@@ -69,22 +48,19 @@

var _loop = function _loop(_i2) {
result = {};
for (let i = 0; i < nbFragments; i++) {
var result = {};
result.atomMap = [];
includeAtom = fragmentMap.map(function (id) {
return id === _i2;
var includeAtom = fragmentMap.map(function (id) {
return id === i;
});
fragment = new OCL.Molecule(0, 0);
atomMap = [];
var fragment = new OCL.Molecule(0, 0);
var atomMap = [];
brokenMolecule.copyMoleculeByAtoms(fragment, includeAtom, false, atomMap);
parent = fragment.getCompactCopy();
var parent = fragment.getCompactCopy();
parent.setFragment(true);
// we will remove the hydrogens of the broken carbon
for (var j = 0; j < atomMap.length; j++) {
for (let j = 0; j < atomMap.length; j++) {
if (atomMap[j] > -1) {
// var numberDeletedHydrogens = 0;
if (atoms[j].links.length > 0) {
for (var k = 0; k < atoms[j].links.length; k++) {
for (let k = 0; k < atoms[j].links.length; k++) {
if (parent.getAtomicNo(atoms[j].links[k]) === 1) {

@@ -116,14 +92,13 @@ // numberDeletedHydrogens++;

// we will add some R groups at the level of the broken bonds
for (var _j = 0; _j < atomMap.length; _j++) {
if (atomMap[_j] > -1) {
result.atomMap.push(_j);
if (atoms[_j].links.length > 0) {
for (var _k = 0; _k < atoms[_j].links.length; _k++) {
rGroup = fragment.addAtom(154);
x = molecule.getAtomX(atoms[_j].links[_k]);
y = molecule.getAtomY(atoms[_j].links[_k]);
for (let j = 0; j < atomMap.length; j++) {
if (atomMap[j] > -1) {
result.atomMap.push(j);
if (atoms[j].links.length > 0) {
for (let k = 0; k < atoms[j].links.length; k++) {
var rGroup = fragment.addAtom(154);
var x = molecule.getAtomX(atoms[j].links[k]);
var y = molecule.getAtomY(atoms[j].links[k]);
fragment.setAtomX(rGroup, x);
fragment.setAtomY(rGroup, y);
fragment.addBond(atomMap[_j], rGroup, 1);
fragment.addBond(atomMap[j], rGroup, 1);
}

@@ -152,15 +127,2 @@ }

}
};
for (var _i2 = 0; _i2 < nbFragments; _i2++) {
var result;
var includeAtom;
var fragment;
var atomMap;
var parent;
var rGroup;
var x;
var y;
_loop(_i2);
}

@@ -167,0 +129,0 @@

@@ -8,32 +8,10 @@ 'use strict';

var currentFunctions = [];
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = currentFunctionCodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var fragment = _step.value;
if (functionIndex[fragment.idCode]) {
var currentFunction = JSON.parse(JSON.stringify(functionIndex[fragment.idCode]));
currentFunction.atomMap = fragment.atomMap;
currentFunctions.push(currentFunction);
}
for (var fragment of currentFunctionCodes) {
if (functionIndex[fragment.idCode]) {
var currentFunction = JSON.parse(JSON.stringify(functionIndex[fragment.idCode]));
currentFunction.atomMap = fragment.atomMap;
currentFunctions.push(currentFunction);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return currentFunctions;
};

@@ -6,5 +6,3 @@ 'use strict';

module.exports = function getAllPaths() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
module.exports = function getAllPaths(options = {}) {
var fromLabel = options.fromLabel || '';

@@ -54,12 +52,8 @@ var toLabel = options.toLabel || '';

var finalResults = [];
for (var _key in results) {
results[_key].fromAtoms.sort(function (a, b) {
return a - b;
});
results[_key].toAtoms.sort(function (a, b) {
return a - b;
});
finalResults.push(results[_key]);
for (let key in results) {
results[key].fromAtoms.sort((a, b) => a - b);
results[key].toAtoms.sort((a, b) => a - b);
finalResults.push(results[key]);
}
return finalResults;
};

@@ -9,13 +9,13 @@ 'use strict';

return function getBoundary() {
var minX = Number.POSITIVE_INFINITY;
var maxX = Number.NEGATIVE_INFINITY;
var minY = Number.POSITIVE_INFINITY;
var maxY = Number.NEGATIVE_INFINITY;
var minZ = Number.POSITIVE_INFINITY;
var maxZ = Number.NEGATIVE_INFINITY;
let minX = Number.POSITIVE_INFINITY;
let maxX = Number.NEGATIVE_INFINITY;
let minY = Number.POSITIVE_INFINITY;
let maxY = Number.NEGATIVE_INFINITY;
let minZ = Number.POSITIVE_INFINITY;
let maxZ = Number.NEGATIVE_INFINITY;
for (var i = 0; i < this.getAllAtoms(); i++) {
var x = this.getAtomX(i);
var y = this.getAtomY(i);
var z = this.getAtomZ(i);
for (let i = 0; i < this.getAllAtoms(); i++) {
let x = this.getAtomX(i);
let y = this.getAtomY(i);
let z = this.getAtomZ(i);
minX = Math.min(minX, x);

@@ -22,0 +22,0 @@ maxX = Math.max(maxX, x);

@@ -7,5 +7,3 @@ 'use strict';

module.exports = function (OCL) {
return function getConnectivityMatrix() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return function getConnectivityMatrix(options = {}) {
this.ensureHelperArrays(OCL.Molecule.cHelperNeighbours);

@@ -15,5 +13,3 @@ var nbAtoms = this.getAllAtoms();

var result = new Array(nbAtoms).fill();
result = result.map(function () {
return new Array(nbAtoms).fill(0);
});
result = result.map(() => new Array(nbAtoms).fill(0));

@@ -20,0 +16,0 @@ if (!options.pathLength) {

'use strict';
module.exports = function (OCL) {
var Util = OCL.Util;
return function getGroupedHOSECodes() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var diaIDs = this.getGroupedDiastereotopicAtomIDs(options);
const Util = OCL.Util;
return function getGroupedHOSECodes(options = {}) {
const diaIDs = this.getGroupedDiastereotopicAtomIDs(options);
diaIDs.forEach(function (diaID) {
var hoses = Util.getHoseCodesFromDiastereotopicID(diaID.oclID, options);
const hoses = Util.getHoseCodesFromDiastereotopicID(diaID.oclID, options);
diaID.hoses = [];
var level = 1;
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = hoses[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var hose = _step.value;
diaID.hoses.push({
level: level++,
oclID: hose
});
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
let level = 1;
for (const hose of hoses) {
diaID.hoses.push({
level: level++,
oclID: hose
});
}

@@ -41,0 +18,0 @@ });

@@ -6,26 +6,22 @@

module.exports = function (OCL) {
return function getHoseCodesForAtom(rootAtom) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return function getHoseCodesForAtom(rootAtom, options = {}) {
let FULL_HOSE_CODE = 1;
let HOSE_CODE_CUT_C_SP3_SP3 = 2;
const {
minSphereSize = 0,
maxSphereSize = 4,
kind = FULL_HOSE_CODE
} = options;
var FULL_HOSE_CODE = 1;
var HOSE_CODE_CUT_C_SP3_SP3 = 2;
var _options$minSphereSiz = options.minSphereSize,
minSphereSize = _options$minSphereSiz === undefined ? 0 : _options$minSphereSiz,
_options$maxSphereSiz = options.maxSphereSize,
maxSphereSize = _options$maxSphereSiz === undefined ? 4 : _options$maxSphereSiz,
_options$kind = options.kind,
kind = _options$kind === undefined ? FULL_HOSE_CODE : _options$kind;
let molecule = this.getCompactCopy();
var molecule = this.getCompactCopy();
molecule.setAtomCustomLabel(rootAtom, `${molecule.getAtomLabel(rootAtom)}*`);
molecule.setAtomicNo(rootAtom, OCL.Molecule.getAtomicNoFromLabel('X'));
var fragment = new OCL.Molecule(0, 0);
var results = [];
var min = 0;
var max = 0;
var atomMask = new Array(molecule.getAllAtoms());
var atomList = new Array(molecule.getAllAtoms());
let fragment = new OCL.Molecule(0, 0);
let results = [];
let min = 0;
let max = 0;
let atomMask = new Array(molecule.getAllAtoms());
let atomList = new Array(molecule.getAllAtoms());

@@ -38,7 +34,7 @@ for (var sphere = 0; sphere <= maxSphereSize; sphere++) {

} else {
var newMax = max;
for (var i = min; i < max; i++) {
var atom = atomList[i];
for (var j = 0; j < molecule.getConnAtoms(atom); j++) {
var connAtom = molecule.getConnAtom(atom, j);
let newMax = max;
for (let i = min; i < max; i++) {
let atom = atomList[i];
for (let j = 0; j < molecule.getConnAtoms(atom); j++) {
let connAtom = molecule.getConnAtom(atom, j);
if (!atomMask[connAtom]) {

@@ -45,0 +41,0 @@ switch (kind) {

@@ -19,56 +19,13 @@ 'use strict';

var counts = {};
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = parts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var part = _step.value;
if (!counts[part]) counts[part] = 0;
counts[part]++;
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
for (var part of parts) {
if (!counts[part]) counts[part] = 0;
counts[part]++;
}
parts = [];
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = Object.keys(counts).sort()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var key = _step2.value;
if (counts[key] > 1) {
parts.push(counts[key] + key);
} else {
parts.push(key);
}
for (var key of Object.keys(counts).sort()) {
if (counts[key] > 1) {
parts.push(counts[key] + key);
} else {
parts.push(key);
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}

@@ -97,38 +54,17 @@

var mfs = {};
var _iteratorNormalCompletion3 = true;
var _didIteratorError3 = false;
var _iteratorError3 = undefined;
try {
for (var _iterator3 = atoms[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
var atom = _step3.value;
var label = atom.label;
charge += atom.charge;
if (atom.mass) {
label = `[${atom.mass}${label}]`;
}
var mfAtom = mfs[label];
if (!mfAtom) {
mfs[label] = 0;
}
mfs[label] += 1;
if (atom.implicitHydrogens) {
if (!mfs.H) mfs.H = 0;
mfs.H += atom.implicitHydrogens;
}
for (var atom of atoms) {
var label = atom.label;
charge += atom.charge;
if (atom.mass) {
label = `[${atom.mass}${label}]`;
}
} catch (err) {
_didIteratorError3 = true;
_iteratorError3 = err;
} finally {
try {
if (!_iteratorNormalCompletion3 && _iterator3.return) {
_iterator3.return();
}
} finally {
if (_didIteratorError3) {
throw _iteratorError3;
}
var mfAtom = mfs[label];
if (!mfAtom) {
mfs[label] = 0;
}
mfs[label] += 1;
if (atom.implicitHydrogens) {
if (!mfs.H) mfs.H = 0;
mfs.H += atom.implicitHydrogens;
}
}

@@ -145,26 +81,5 @@

});
var _iteratorNormalCompletion4 = true;
var _didIteratorError4 = false;
var _iteratorError4 = undefined;
try {
for (var _iterator4 = keys[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
var key = _step4.value;
mf += key;
if (mfs[key] > 1) mf += mfs[key];
}
} catch (err) {
_didIteratorError4 = true;
_iteratorError4 = err;
} finally {
try {
if (!_iteratorNormalCompletion4 && _iterator4.return) {
_iterator4.return();
}
} finally {
if (_didIteratorError4) {
throw _iteratorError4;
}
}
for (var key of keys) {
mf += key;
if (mfs[key] > 1) mf += mfs[key];
}

@@ -171,0 +86,0 @@

'use strict';
module.exports = function getNumberOfAtoms() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
module.exports = function getNumberOfAtoms(options = {}) {
var label = options.atomLabel;
var mf = this.getMolecularFormula().formula;
var parts = mf.split(/(?=[A-Z])/);
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = parts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var part = _step.value;
var atom = part.replace(/[0-9]/g, '');
if (atom === label) {
return part.replace(/[^0-9]/g, '') * 1 || 1;
}
for (var part of parts) {
var atom = part.replace(/[0-9]/g, '');
if (atom === label) {
return part.replace(/[^0-9]/g, '') * 1 || 1;
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}

@@ -36,0 +13,0 @@

'use strict';
module.exports = function toVisualizerMolfile() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
module.exports = function toVisualizerMolfile(options = {}) {
var diastereotopic = options.diastereotopic;

@@ -32,8 +30,4 @@

var size = this.getAllAtoms();
highlight = new Array(size).fill(0).map(function (a, index) {
return index;
});
atoms = highlight.map(function (a) {
return [a];
});
highlight = new Array(size).fill(0).map((a, index) => index);
atoms = highlight.map(a => [a]);
}

@@ -40,0 +34,0 @@

'use strict';
require('setimmediate');
var OCL = require('openchemlib');

@@ -5,0 +4,0 @@

@@ -32,9 +32,9 @@ 'use strict';

result.push(format3(this.reagents.length) + format3(this.products.length));
for (var i = 0; i < this.reagents.length; i++) {
for (let i = 0; i < this.reagents.length; i++) {
result.push('$MOL');
result.push(getMolfile(this.reagents[i].molfile));
}
for (var _i = 0; _i < this.products.length; _i++) {
for (let i = 0; i < this.products.length; i++) {
result.push('$MOL');
result.push(getMolfile(this.products[_i].molfile));
result.push(getMolfile(this.products[i].molfile));
}

@@ -41,0 +41,0 @@ return result.join('\n');

{
"name": "openchemlib-extended",
"version": "4.0.1",
"version": "6.0.0",
"description": "Openchemlib extended",

@@ -10,3 +10,6 @@ "keywords": [

"files": [
"lib"
"lib",
"minimal.js",
"core.js",
"full.js"
],

@@ -20,7 +23,11 @@ "author": "Michaël Zasso",

"license": "BSD-3-Clause",
"main": "./lib/index.js",
"main": "./core.js",
"directories": {
"lib": "src",
"test": "test"
"lib": "src"
},
"jest": {
"roots": [
"<rootDir>/src"
]
},
"scripts": {

@@ -38,25 +45,20 @@ "test": "npm run testonly && npm run eslint",

"devDependencies": {
"babel-cli": "^6.23.0",
"babel-cli": "^6.26.0",
"babel-preset-env": "^1.7.0",
"benchmark": "^2.1.3",
"cheminfo-tools": "^1.22.4",
"eslint": "^4.19.1",
"eslint-config-cheminfo": "^1.18.0",
"eslint-plugin-import": "^2.14.0",
"eslint-plugin-jest": "^21.27.2",
"eslint-plugin-no-only-tests": "^1.1.0",
"jest": "^23.0.0",
"npm-run-all": "^4.1.3",
"rimraf": "^2.6.2",
"should": "^11.2.1"
"cheminfo-tools": "^1.23.2",
"eslint": "^5.15.3",
"eslint-config-cheminfo": "^1.20.1",
"eslint-plugin-import": "^2.16.0",
"eslint-plugin-jest": "^22.4.1",
"jest": "^24.5.0",
"rimraf": "^2.6.3"
},
"dependencies": {
"ml-floyd-warshall": "^1.0.0",
"ml-matrix": "^5.2.0",
"openchemlib": "^5.6.1",
"papaparse": "^4.6.2",
"ml-matrix": "^5.3.0",
"openchemlib": "^6.0.1",
"papaparse": "^4.6.3",
"rxn-parser": "0.1.0",
"sdf-parser": "^3.1.0",
"setimmediate": "^1.0.2"
"sdf-parser": "^3.1.0"
}
}

@@ -66,3 +66,3 @@ # openchemlib-extended

- oclCode (or idCode or value): the OCL unique code
- idCode: the OCL unique code
- smiles

@@ -69,0 +69,0 @@ - molfile

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc