in indigo.js [1780:2195]
export let Indigo = function(basepath) {
if (!basepath)
basepath = join(__dirname, 'lib');
let osMap = {
'linux': 'Linux',
'darwin': 'Mac',
'win32': 'Win'
};
if (!osMap[process.platform] || ['x86', 'x64'].indexOf(process.arch) == -1)
throw IndigoException("Unknown platform " + process.platform +
" (" + process.arch + ")");
this.dllpath = join(basepath, osMap[process.platform], process.arch);
let libpath = join(this.dllpath,
process.platform != 'win32' ? 'libindigo' : 'indigo');
if (process.platform == 'linux') {
// Indigo must be loaded with `RTLD_GLOBAL` flag
// to make plugins work. See https://git.io/voPPW
let mode = ffi.DynamicLibrary.FLAGS.RTLD_GLOBAL | ffi.DynamicLibrary.FLAGS.RTLD_LAZY;
new ffi.DynamicLibrary(libpath + ffi.LIB_EXT, mode);
}
let xyz = refStruct({
x: 'float',
y: 'float',
z: 'float'
});
this._lib = Library(libpath, {
"indigoSetOption": ["int", ["string", "string"]],
"indigoSetOptionInt": ["int", ["string", "int"]],
"indigoSetOptionBool": ["int", ["string", "int"]],
"indigoSetOptionFloat": ["int", ["string", "float"]],
"indigoSetOptionColor": ["int", ["string", "float", "float", "float"]],
"indigoSetOptionXY": ["int", ["string", "int", "int"]],
"indigoDbgBreakpoint": ["void", []],
"indigoVersion": ["string", []],
"indigoAllocSessionId": ['uint64', []],
"indigoSetSessionId": ["void", ['uint64']],
"indigoReleaseSessionId": ["void", ['uint64']],
"indigoGetLastError": ["string", []],
"indigoFree": ["int", ["int"]],
"indigoCountReferences": ["int", []],
"indigoFreeAllObjects": ["int", []],
"indigoWriteBuffer": ["int", []],
"indigoCreateMolecule": ["int", []],
"indigoCreateQueryMolecule": ["int", []],
"indigoNext": ["int", ["int"]],
"indigoHasNext": ["int", ["int"]],
"indigoClone": ["int", ["int"]],
"indigoClose": ["int", ["int"]],
"indigoIndex": ["int", ["int"]],
"indigoRemove": ["int", ["int"]],
"indigoSaveMolfileToFile": ["int", ["string"]],
"indigoMolfile": ["string", ["int"]],
"indigoSaveCmlToFile": ["int", ["string"]],
"indigoCml": ["string", ["int"]],
"indigoSaveMDLCT": ["int", ["int", "int"]],
"indigoAddReactant": ["int", ["int", "int"]],
"indigoAddProduct": ["int", ["int", "int"]],
"indigoAddCatalyst": ["int", ["int", "int"]],
"indigoCountReactants": ["int", ["int"]],
"indigoCountProducts": ["int", ["int"]],
"indigoCountCatalysts": ["int", ["int"]],
"indigoCountMolecules": ["int", ["int"]],
"indigoGetMolecule": ["int", ["int", "int"]],
"indigoIterateReactants": ["int", ["int"]],
"indigoIterateProducts": ["int", ["int"]],
"indigoIterateCatalysts": ["int", ["int"]],
"indigoIterateMolecules": ["int", ["int"]],
"indigoSaveRxnfileToFile": ["int", ["int", "string"]],
"indigoRxnfile": ["string", ["int"]],
"indigoOptimize": ["int", ["int", "string"]],
"indigoNormalize": ["int", ["int", "string"]],
"indigoStandardize": ["int", ["int"]],
"indigoAutomap": ["int", ["int", "string"]],
"indigoGetAtomMappingNumber": ["int", ["int", "int"]],
"indigoSetAtomMappingNumber": ["int", ["int", "int", "int"]],
"indigoGetReactingCenter": ["int", ["int", "int", refType('int')]],
"indigoSetReactingCenter": ["int", ["int", "int", "int"]],
"indigoClearAAM": ["int", ["int"]],
"indigoCorrectReactingCenters": ["int", ["int"]],
"indigoIterateAtoms": ["int", ["int"]],
"indigoIteratePseudoatoms": ["int", ["int"]],
"indigoIterateRSites": ["int", ["int"]],
"indigoIterateStereocenters": ["int", ["int"]],
"indigoIterateAlleneCenters": ["int", ["int"]],
"indigoIterateRGroups": ["int", ["int"]],
"indigoIsPseudoatom": ["int", ["int"]],
"indigoIsRSite": ["int", ["int"]],
"indigoStereocenterType": ["int", ["int"]],
"indigoStereocenterGroup": ["int", ["int"]],
"indigoSetStereocenterGroup": ["int", ["int", "int"]],
"indigoChangeStereocenterType": ["int", ["int", "int"]],
"indigoValidateChirality": ["int", ["int"]],
"indigoSingleAllowedRGroup": ["int", ["int"]],
"indigoAddStereocenter": ["int", ["int", "int", "int", "int", "int", "int"]],
"indigoIterateRGroupFragments": ["int", ["int"]],
"indigoCountAttachmentPoints": ["int", ["int"]],
"indigoIterateAttachmentPoints": ["int", ["int", "int"]],
"indigoSymbol": ["string", ["int"]],
"indigoDegree": ["int", ["int"]],
"indigoGetCharge": ["int", ["int", refType('int')]],
"indigoGetExplicitValence": ["int", ["int", refType('int')]],
"indigoSetExplicitValence": ["int", ["int", "int"]],
"indigoGetRadicalElectrons": ["int", ["int", refType('int')]],
"indigoGetRadical": ["int", ["int", refType('int')]],
"indigoSetRadical": ["int", ["int", "int"]],
"indigoAtomicNumber": ["int", ["int"]],
"indigoIsotope": ["int", ["int"]],
"indigoValence": ["int", ["int"]],
"indigoCountHydrogens": ["int", ["int", refType('int')]],
"indigoCountImplicitHydrogens": ["int", ["int"]],
"indigoXYZ": [refType(xyz), ["int"]],
"indigoSetXYZ": ["int", ["int", "float", "float", "float"]],
"indigoCountSuperatoms": ["int", ["int"]],
"indigoCountDataSGroups": ["int", ["int"]],
"indigoCountRepeatingUnits": ["int", ["int"]],
"indigoCountMultipleGroups": ["int", ["int"]],
"indigoCountGenericSGroups": ["int", ["int"]],
"indigoIterateDataSGroups": ["int", ["int"]],
"indigoIterateSuperatoms": ["int", ["int"]],
"indigoIterateGenericSGroups": ["int", ["int"]],
"indigoIterateRepeatingUnits": ["int", ["int"]],
"indigoIterateMultipleGroups": ["int", ["int"]],
"indigoGetSuperatom": ["int", ["int", "int"]],
"indigoGetDataSGroup": ["int", ["int", "int"]],
"indigoGetGenericSGroup": ["int", ["int", "int"]],
"indigoGetMultipleGroup": ["int", ["int", "int"]],
"indigoGetRepeatingUnit": ["int", ["int", "int"]],
"indigoDescription": ["string", ["int"]],
"indigoData": ["string", ["int"]],
"indigoAddDataSGroup": ["int", ["int", "int", refArray('int'), "int", refArray('int'), "string", "string"]],
"indigoAddSuperatom": ["int", ["int", "int", refArray('int'), "string"]],
"indigoSetDataSGroupXY": ["int", ["int", "float", "float", "string"]],
"indigoSetSGroupData": ["int", ["int", "string"]],
"indigoSetSGroupCoords": ["int", ["int", "float", "float"]],
"indigoSetSGroupDescription": ["int", ["int", "string"]],
"indigoSetSGroupFieldName": ["int", ["int", "string"]],
"indigoSetSGroupQueryCode": ["int", ["int", "string"]],
"indigoSetSGroupQueryOper": ["int", ["int", "string"]],
"indigoSetSGroupDisplay": ["int", ["int", "string"]],
"indigoSetSGroupLocation": ["int", ["int", "string"]],
"indigoSetSGroupTag": ["int", ["int", "string"]],
"indigoSetSGroupTagAlign": ["int", ["int", "string"]],
"indigoSetSGroupDataType": ["int", ["int", "string"]],
"indigoSetSGroupXCoord": ["int", ["int", "float"]],
"indigoSetSGroupYCoord": ["int", ["int", "float"]],
"indigoCreateSGroup": ["int", ["string", "int", "string"]],
"indigoSetSGroupClass": ["int", ["int", "string"]],
"indigoSetSGroupName": ["int", ["int", "string"]],
"indigoGetSGroupClass": ["string", ["int"]],
"indigoGetSGroupName": ["string", ["int"]],
"indigoGetSGroupNumCrossBonds": ["int", ["int"]],
"indigoAddSGroupAttachmentPoint": ["int", ["int", "int", "int", "string"]],
"indigoDeleteSGroupAttachmentPoint": ["int", ["int", "int"]],
"indigoGetSGroupDisplayOption": ["int", ["int"]],
"indigoSetSGroupDisplayOption": ["int", ["int", "int"]],
"indigoGetSGroupMultiplier": ["int", ["int"]],
"indigoSetSGroupMultiplier": ["int", ["int", "int"]],
"indigoSetSGroupBrackets": ["int", ["int", "int", "float", "float", "float", "float", "float", "float", "float", "float"]],
"indigoFindSGroups": ["int", ["int", "string", "string"]],
"indigoGetSGroupType": ["int", ["int"]],
"indigoGetSGroupIndex": ["int", ["int"]],
"indigoTransformSCSRtoCTAB": ["int", ["int"]],
"indigoTransformCTABtoSCSR": ["int", ["int", "int"]],
"indigoResetCharge": ["int", ["int"]],
"indigoResetExplicitValence": ["int", ["int"]],
"indigoResetRadical": ["int", ["int"]],
"indigoResetIsotope": ["int", ["int"]],
"indigoSetAttachmentPoint": ["int", ["int", "int"]],
"indigoClearAttachmentPoints": ["int", ["int"]],
"indigoRemoveConstraints": ["int", ["int", "string"]],
"indigoAddConstraint": ["int", ["int", "string", "string"]],
"indigoAddConstraintNot": ["int", ["int", "string", "string"]],
"indigoAddConstraintOr": ["int", ["int", "string", "string"]],
"indigoResetStereo": ["int", ["int"]],
"indigoInvertStereo": ["int", ["int"]],
"indigoCountAtoms": ["int", ["int"]],
"indigoCountBonds": ["int", ["int"]],
"indigoCountPseudoatoms": ["int", ["int"]],
"indigoCountRSites": ["int", ["int"]],
"indigoIterateBonds": ["int", ["int"]],
"indigoBondOrder": ["int", ["int"]],
"indigoBondStereo": ["int", ["int"]],
"indigoTopology": ["int", ["int"]],
"indigoIterateNeighbors": ["int", ["int"]],
"indigoBond": ["int", ["int"]],
"indigoGetAtom": ["int", ["int", "int"]],
"indigoGetBond": ["int", ["int", "int"]],
"indigoSource": ["int", ["int"]],
"indigoDestination": ["int", ["int"]],
"indigoClearCisTrans": ["int", ["int"]],
"indigoClearStereocenters": ["int", ["int"]],
"indigoCountStereocenters": ["int", ["int"]],
"indigoClearAlleneCenters": ["int", ["int"]],
"indigoCountAlleneCenters": ["int", ["int"]],
"indigoResetSymmetricCisTrans": ["int", ["int"]],
"indigoResetSymmetricStereocenters": ["int", ["int"]],
"indigoMarkEitherCisTrans": ["int", ["int"]],
"indigoMarkStereobonds": ["int", ["int"]],
"indigoAddAtom": ["int", ["int", "string"]],
"indigoResetAtom": ["int", ["int", "string"]],
"indigoAddRSite": ["int", ["int", "string"]],
"indigoSetRSite": ["int", ["int", "string"]],
"indigoSetCharge": ["int", ["int", "int"]],
"indigoSetIsotope": ["int", ["int", "int"]],
"indigoSetImplicitHCount": ["int", ["int", "int"]],
"indigoAddBond": ["int", ["int", "int", "int"]],
"indigoSetBondOrder": ["int", ["int", "int"]],
"indigoMerge": ["int", ["int", "int"]],
"indigoHighlight": ["int", ["int"]],
"indigoUnhighlight": ["int", ["int"]],
"indigoIsHighlighted": ["int", ["int"]],
"indigoCountComponents": ["int", ["int"]],
"indigoComponentIndex": ["int", ["int"]],
"indigoIterateComponents": ["int", ["int"]],
"indigoComponent": ["int", ["int", "int"]],
"indigoCountSSSR": ["int", ["int"]],
"indigoIterateSSSR": ["int", ["int"]],
"indigoIterateSubtrees": ["int", ["int", "int", "int"]],
"indigoIterateRings": ["int", ["int", "int", "int"]],
"indigoIterateEdgeSubmolecules": ["int", ["int", "int", "int"]],
"indigoCountHeavyAtoms": ["int", ["int"]],
"indigoGrossFormula": ["int", ["int"]],
"indigoMolecularWeight": ["double", ["int"]],
"indigoMostAbundantMass": ["double", ["int"]],
"indigoMonoisotopicMass": ["double", ["int"]],
"indigoCanonicalSmiles": ["string", ["int"]],
"indigoLayeredCode": ["string", ["int"]],
"indigoSymmetryClasses": [refType('int'), ["int", refType('int')]],
"indigoHasCoord": ["int", ["int"]],
"indigoHasZCoord": ["int", ["int"]],
"indigoIsChiral": ["int", ["int"]],
"indigoCreateSubmolecule": ["int", ["int", "int", refArray('int')]],
"indigoCreateEdgeSubmolecule": ["int", ["int", "int", refArray('int'), "int", refArray('int')]],
"indigoGetSubmolecule": ["int", ["int", "int", refArray('int')]],
"indigoRemoveAtoms": ["int", ["int", "int", refArray('int')]],
"indigoRemoveBonds": ["int", ["int", "int", refArray('int')]],
"indigoAlignAtoms": ["float", ["int", "int", refArray('int'), refArray('float')]],
"indigoAromatize": ["int", ["int"]],
"indigoDearomatize": ["int", ["int"]],
"indigoFoldHydrogens": ["int", ["int"]],
"indigoUnfoldHydrogens": ["int", ["int"]],
"indigoLayout": ["int", ["int"]],
"indigoSmiles": ["string", ["int"]],
"indigoName": ["string", ["int"]],
"indigoSetName": ["int", ["int", "string"]],
"indigoSerialize": ["int", ["int", refType(refType('byte')), refType('int')]],
"indigoHasProperty": ["int", ["int", "string"]],
"indigoGetProperty": ["string", ["int", "string"]],
"indigoSetProperty": ["int", ["int", "string", "string"]],
"indigoRemoveProperty": ["int", ["int", "string"]],
"indigoIterateProperties": ["int", ["int"]],
"indigoClearProperties": ["int", ["int"]],
"indigoCheckBadValence": ["string", ["int"]],
"indigoCheckAmbiguousH": ["string", ["int"]],
"indigoFingerprint": ["int", ["int", "string"]],
"indigoCountBits": ["int", ["int"]],
"indigoRawData": ["string", ["int"]],
"indigoTell": ["int", ["int"]],
"indigoSdfAppend": ["int", ["int", "int"]],
"indigoSmilesAppend": ["int", ["int", "int"]],
"indigoRdfHeader": ["int", ["int"]],
"indigoRdfAppend": ["int", ["int", "int"]],
"indigoCmlHeader": ["int", ["int"]],
"indigoCmlAppend": ["int", ["int", "int"]],
"indigoCmlFooter": ["int", ["int"]],
"indigoAppend": ["int", ["int", "int"]],
"indigoArrayAdd": ["int", ["int", "int"]],
"indigoAt": ["int", ["int", "int"]],
"indigoCount": ["int", ["int"]],
"indigoClear": ["int", ["int"]],
"indigoIterateArray": ["int", ["int"]],
"indigoIgnoreAtom": ["int", ["int", "int"]],
"indigoUnignoreAtom": ["int", ["int", "int"]],
"indigoUnignoreAllAtoms": ["int", ["int"]],
"indigoMatch": ["int", ["int", "int"]],
"indigoCountMatches": ["int", ["int", "int"]],
"indigoCountMatchesWithLimit": ["int", ["int", "int", "int"]],
"indigoIterateMatches": ["int", ["int", "int"]],
"indigoHighlightedTarget": ["int", ["int"]],
"indigoMapAtom": ["int", ["int", "int"]],
"indigoMapBond": ["int", ["int", "int"]],
"indigoMapMolecule": ["int", ["int", "int"]],
"indigoAllScaffolds": ["int", ["int"]],
"indigoDecomposedMoleculeScaffold": ["int", ["int"]],
"indigoIterateDecomposedMolecules": ["int", ["int"]],
"indigoDecomposedMoleculeHighlighted": ["int", ["int"]],
"indigoDecomposedMoleculeWithRGroups": ["int", ["int"]],
"indigoDecomposeMolecule": ["int", ["int", "int"]],
"indigoIterateDecompositions": ["int", ["int"]],
"indigoAddDecomposition": ["int", ["int", "int"]],
"indigoToString": ["string", ["int"]],
"indigoToBuffer": ["int", ["int", refType(refType('byte')), refType('int')]],
"indigoStereocenterPyramid": [refType('int'), ["int"]],
"indigoExpandAbbreviations": ["int", ["int"]],
"indigoDbgInternalType": ["string", ["int"]],
"indigoOneBitsList": ["string", ["int"]],
"indigoLoadMoleculeFromString": ["int", ["string"]],
"indigoLoadMoleculeFromFile": ["int", ["string"]],
"indigoLoadQueryMoleculeFromString": ["int", ["string"]],
"indigoLoadQueryMoleculeFromFile": ["int", ["string"]],
"indigoLoadSmartsFromString": ["int", ["string"]],
"indigoLoadSmartsFromFile": ["int", ["string"]],
"indigoLoadReactionFromString": ["int", ["string"]],
"indigoLoadReactionFromFile": ["int", ["string"]],
"indigoLoadQueryReactionFromString": ["int", ["string"]],
"indigoLoadQueryReactionFromFile": ["int", ["string"]],
"indigoLoadReactionSmartsFromString": ["int", ["string"]],
"indigoLoadReactionSmartsFromFile": ["int", ["string"]],
"indigoCreateReaction": ["int", []],
"indigoCreateQueryReaction": ["int", []],
"indigoExactMatch": ["int", ["int", "int", "string"]],
"indigoSetTautomerRule": ["int", ["int", "string", "string"]],
"indigoRemoveTautomerRule": ["int", ["int"]],
"indigoClearTautomerRules": ["int", []],
"indigoUnserialize": ["int", [refType('byte'), "int"]],
"indigoCommonBits": ["int", ["int", "int"]],
"indigoSimilarity": ["float", ["int", "int", "string"]],
"indigoIterateSDFile": ["int", ["string"]],
"indigoIterateRDFile": ["int", ["string"]],
"indigoIterateSmilesFile": ["int", ["string"]],
"indigoIterateCMLFile": ["int", ["string"]],
"indigoIterateCDXFile": ["int", ["string"]],
"indigoCreateFileSaver": ["int", ["string", "string"]],
"indigoCreateSaver": ["int", ["int", "string"]],
"indigoCreateArray": ["int", []],
"indigoSubstructureMatcher": ["int", ["int", "string"]],
"indigoExtractCommonScaffold": ["int", ["int", "string"]],
"indigoDecomposeMolecules": ["int", ["int", "int"]],
"indigoCreateDecomposer": ["int", ["int"]],
"indigoReactionProductEnumerate": ["int", ["int", "int"]],
"indigoTransform": ["int", ["int", "int"]],
"indigoLoadBuffer": ["int", [refArray('byte'), "int"]],
"indigoLoadString": ["int", ["string"]],
"indigoIterateSDF": ["int", ["int"]],
"indigoIterateSmiles": ["int", ["int"]],
"indigoIterateCML": ["int", ["int"]],
"indigoIterateCDX": ["int", ["int"]],
"indigoIterateRDF": ["int", ["int"]],
"indigoWriteFile": ["int", ["string"]],
"indigoIterateTautomers": ["int", ["int", "string"]],
"indigoCheckValence": ["int", ["int"]],
"indigoCheckQuery": ["int", ["int"]],
"indigoCheckRGroups": ["int", ["int"]],
"indigoCheck": ["string", ["int", "string"]],
"indigoCheckStructure": ["string", ["string", "string"]],
"indigoIterateSGroups": ["int", ["int"]],
"indigoGetSGroupSeqId": ["int", ["int"]],
"indigoGetSGroupCoords": [refType("float"), ["int"]],
"indigoGetRepeatingUnitSubscript": ["string", ["int"]],
"indigoGetRepeatingUnitConnectivity": ["int", ["int"]],
"indigoGetSGroupOriginalId": ["int", ["int"]],
"indigoSetSGroupOriginalId": ["int", ["int", "int"]],
"indigoGetSGroupParentId": ["int", ["int"]],
"indigoGetSGroupParentId": ["int", ["int", "int"]],
"indigoAddTemplate": ["int", ["int", "int", "string"]],
"indigoRemoveTemplate": ["int", ["int", "string"]],
"indigoFindTemplate": ["int", ["int", "string"]],
"indigoGetSGroupClass": ["string", ["int"]],
"indigoGetSGroupName": ["string", ["int"]],
"indigoTransformSCSRtoCTAB": ["int", ["int"]],
"indigoTransformCTABtoSCSR": ["int", ["int", "int"]],
"indigoGetTemplateAtomClass": ["string", ["int"]],
"indigoSetTemplateAtomClass": ["int", ["int", "string"]],
"indigoMassComposition": ["string", ["int"]],
"indigoCheckChirality": ["int", ["int"]],
"indigoCheck3DStereo": ["int", ["int"]],
"indigoCheckStereo": ["int", ["int"]],
"indigoIsPossibleFischerProjection": ["int", ["int", "string"]],
"indigoClean2d": ["int", ["int"]],
"indigoSmarts": ["string", ["int"]],
"indigoCanonicalSmarts": ["string", ["int"]],
"indigoGetFragmentedMolecule": ["string", ["int", "string"]],
"indigoRGroupComposition": ["string", ["int", "string"]],
"indigoTransformHELMtoSCSR": ["int", ["int"]],
"indigoIonize": ["int", ["int", "float", "float"]],
"indigoBuildPkaModel": ["int", ["int", "float", "string"]],
"indigoGetAcidPkaValue": [refType("float"), ["int", "int", "int"]],
"indigoGetBasicPkaValue": [refType("float"), ["int", "int", "int"]],
"indigoSaveCdxml": ["int", ["int", "int"]],
"indigoSaveCdxmlToFile": ["int", ["int", "string"]],
"indigoCdxml": ["string", ["int"]],
"indigoJson": ["string", ["int"]],
"indigoCountRGroups": ["int", ["int"]],
"indigoNameToStructure": ["int", ["string", "string"]],
"indigoIsTemplateAtom": ["int", ["int"]]
});
// Allocate a new session. Each session has its own
// set of objects created and options set up.
this._sid = this._lib.indigoAllocSessionId();
this.NOT_CENTER = -1;
this.UNMARKED = 0;
this.CENTER = 1;
this.UNCHANGED = 2;
this.MADE_OR_BROKEN = 4;
this.ORDER_CHANGED = 8;
this.ABS = 1;
this.OR = 2;
this.AND = 3;
this.EITHER = 4;
this.UP = 5;
this.DOWN = 6;
this.CIS = 7;
this.TRANS = 8;
this.CHAIN = 9;
this.RING = 10;
this.ALLENE = 11;
this.SINGLET = 101;
this.DOUBLET = 102;
this.TRIPLET = 103;
};