kekule
Version:
Open source JavaScript toolkit for chemoinformatics
372 lines • 29.7 kB
JavaScript
function CreateIndigo(module) // create Indigo adapter object
{
var Module = module || Module();
var result = {
INDIGO_RC_NOT_CENTER: -1,
INDIGO_RC_UNMARKED: 0,
INDIGO_RC_CENTER: 1,
INDIGO_RC_UNCHANGED: 2,
INDIGO_RC_MADE_OR_BROKEN: 4,
INDIGO_RC_ORDER_CHANGED: 8,
INDIGO_ABS: 1,
INDIGO_OR: 2,
INDIGO_AND: 3,
INDIGO_EITHER: 4,
INDIGO_UP: 5,
INDIGO_DOWN: 6,
INDIGO_CIS: 7,
INDIGO_TRANS: 8,
INDIGO_CHAIN: 9,
INDIGO_RING: 10,
INDIGO_ALLENE: 11,
INDIGO_SINGLET: 101,
INDIGO_DOUBLET: 102,
INDIGO_TRIPLET: 103,
version: Module.cwrap('indigoVersion', 'string', []),
allocSessionId: Module.cwrap('indigoAllocSessionId', 'number', []),
setSessionId: Module.cwrap('indigoSetSessionId', null, ['number']),
releaseSessionId: Module.cwrap('indigoReleaseSessionId', null, ['number']),
getLastError: Module.cwrap('indigoGetLastError', 'string', []),
free: Module.cwrap('indigoFree', 'number', ['number']),
clone: Module.cwrap('indigoClone', 'number', ['number']),
countReferences: Module.cwrap('indigoCountReferences', 'number', []),
freeAllObjects: Module.cwrap('indigoFreeAllObjects', 'number', []),
setOption: Module.cwrap('indigoSetOption', 'number', ['string', 'string']),
setOptionInt: Module.cwrap('indigoSetOptionInt', 'number', ['string', 'number']),
setOptionBool: Module.cwrap('indigoSetOptionBool', 'number', ['string', 'number']),
setOptionFloat: Module.cwrap('indigoSetOptionFloat', 'number', ['string', 'number']),
setOptionColor: Module.cwrap('indigoSetOptionColor', 'number', ['string', 'number', 'number', 'number']),
setOptionXY: Module.cwrap('indigoSetOptionXY', 'number', ['string', 'number', 'number']),
resetOptions: Module.cwrap('indigoResetOptions', 'number', []),
readString: Module.cwrap('indigoReadString', 'number', ['string']),
loadString: Module.cwrap('indigoLoadString', 'number', ['string']),
readBuffer: Module.cwrap('indigoReadBuffer', 'number', ['string', 'number']),
loadBuffer: Module.cwrap('indigoLoadBuffer', 'number', ['string', 'number']),
writeBuffer: Module.cwrap('indigoWriteBuffer', 'number', []),
close: Module.cwrap('indigoClose', 'number', ['number']),
next: Module.cwrap('indigoNext', 'number', ['number']),
hasNext: Module.cwrap('indigoHasNext', 'number', ['number']),
index: Module.cwrap('indigoIndex', 'number', ['number']),
remove: Module.cwrap('indigoRemove', 'number', ['number']),
createMolecule: Module.cwrap('indigoCreateMolecule', 'number', []),
createQueryMolecule: Module.cwrap('indigoCreateQueryMolecule', 'number', []),
loadMolecule: Module.cwrap('indigoLoadMolecule', 'number', ['number']),
loadMoleculeFromString: Module.cwrap('indigoLoadMoleculeFromString', 'number', ['string']),
loadMoleculeFromBuffer: Module.cwrap('indigoLoadMoleculeFromBuffer', 'number', ['string', 'number']),
loadQueryMolecule: Module.cwrap('indigoLoadQueryMolecule', 'number', ['number']),
loadQueryMoleculeFromString: Module.cwrap('indigoLoadQueryMoleculeFromString', 'number', ['string']),
loadQueryMoleculeFromBuffer: Module.cwrap('indigoLoadQueryMoleculeFromBuffer', 'number', ['string', 'number']),
loadSmarts: Module.cwrap('indigoLoadSmarts', 'number', ['number']),
loadSmartsFromString: Module.cwrap('indigoLoadSmartsFromString', 'number', ['string']),
loadSmartsFromBuffer: Module.cwrap('indigoLoadSmartsFromBuffer', 'number', ['string', 'number']),
saveMolfile: Module.cwrap('indigoSaveMolfile', 'number', ['number', 'number']),
molfile: Module.cwrap('indigoMolfile', 'string', ['number']),
saveCml: Module.cwrap('indigoSaveCml', 'number', ['number', 'number']),
cml: Module.cwrap('indigoCml', 'string', ['number']),
saveCdxml: Module.cwrap('indigoSaveCdxml', 'number', ['number', 'number']),
cdxml: Module.cwrap('indigoCdxml', 'string', ['number']),
saveMDLCT: Module.cwrap('indigoSaveMDLCT', 'number', ['number', 'number']),
nameToStructure: Module.cwrap('indigoNameToStructure', 'number', ['string', 'string']),
loadReaction: Module.cwrap('indigoLoadReaction', 'number', ['number']),
loadReactionFromString: Module.cwrap('indigoLoadReactionFromString', 'number', ['string']),
loadReactionFromBuffer: Module.cwrap('indigoLoadReactionFromBuffer', 'number', ['string', 'number']),
loadQueryReaction: Module.cwrap('indigoLoadQueryReaction', 'number', ['number']),
loadQueryReactionFromString: Module.cwrap('indigoLoadQueryReactionFromString', 'number', ['string']),
loadQueryReactionFromBuffer: Module.cwrap('indigoLoadQueryReactionFromBuffer', 'number', ['string', 'number']),
loadReactionSmarts: Module.cwrap('indigoLoadReactionSmarts', 'number', ['number']),
loadReactionSmartsFromString: Module.cwrap('indigoLoadReactionSmartsFromString', 'number', ['string']),
loadReactionSmartsFromBuffer: Module.cwrap('indigoLoadReactionSmartsFromBuffer', 'number', ['string', 'number']),
createReaction: Module.cwrap('indigoCreateReaction', 'number', []),
createQueryReaction: Module.cwrap('indigoCreateQueryReaction', 'number', []),
addReactant: Module.cwrap('indigoAddReactant', 'number', ['number', 'number']),
addProduct: Module.cwrap('indigoAddProduct', 'number', ['number', 'number']),
addCatalyst: Module.cwrap('indigoAddCatalyst', 'number', ['number', 'number']),
countReactants: Module.cwrap('indigoCountReactants', 'number', ['number']),
countProducts: Module.cwrap('indigoCountProducts', 'number', ['number']),
countCatalysts: Module.cwrap('indigoCountCatalysts', 'number', ['number']),
countMolecules: Module.cwrap('indigoCountMolecules', 'number', ['number']),
getMolecule: Module.cwrap('indigoGetMolecule', 'number', ['number', 'number']),
iterateReactants: Module.cwrap('indigoIterateReactants', 'number', ['number']),
iterateProducts: Module.cwrap('indigoIterateProducts', 'number', ['number']),
iterateCatalysts: Module.cwrap('indigoIterateCatalysts', 'number', ['number']),
iterateMolecules: Module.cwrap('indigoIterateMolecules', 'number', ['number']),
saveRxnfile: Module.cwrap('indigoSaveRxnfile', 'number', ['number', 'number']),
rxnfile: Module.cwrap('indigoRxnfile', 'string', ['number']),
optimize: Module.cwrap('indigoOptimize', 'number', ['number', 'string']),
normalize: Module.cwrap('indigoNormalize', 'number', ['number', 'string']),
standardize: Module.cwrap('indigoStandardize', 'number', ['number']),
ionize: Module.cwrap('indigoIonize', 'number', ['number', 'number', 'number']),
getAcidPkaValue: Module.cwrap('indigoGetAcidPkaValue', 'array', ['number', 'number', 'number', 'number']),
getBasicPkaValue: Module.cwrap('indigoGetBasicPkaValue', 'array', ['number', 'number', 'number', 'number']),
automap: Module.cwrap('indigoAutomap', 'number', ['number', 'string']),
getAtomMappingNumber: Module.cwrap('indigoGetAtomMappingNumber', 'number', ['number', 'number']),
setAtomMappingNumber: Module.cwrap('indigoSetAtomMappingNumber', 'number', ['number', 'number', 'number']),
getReactingCenter: Module.cwrap('indigoGetReactingCenter', 'number', ['number', 'number', 'number']),
setReactingCenter: Module.cwrap('indigoSetReactingCenter', 'number', ['number', 'number', 'number']),
clearAAM: Module.cwrap('indigoClearAAM', 'number', ['number']),
correctReactingCenters: Module.cwrap('indigoCorrectReactingCenters', 'number', ['number']),
iterateAtoms: Module.cwrap('indigoIterateAtoms', 'number', ['number']),
iteratePseudoatoms: Module.cwrap('indigoIteratePseudoatoms', 'number', ['number']),
iterateRSites: Module.cwrap('indigoIterateRSites', 'number', ['number']),
iterateStereocenters: Module.cwrap('indigoIterateStereocenters', 'number', ['number']),
iterateAlleneCenters: Module.cwrap('indigoIterateAlleneCenters', 'number', ['number']),
iterateRGroups: Module.cwrap('indigoIterateRGroups', 'number', ['number']),
countRGroups: Module.cwrap('indigoCountRGroups', 'number', ['number']),
isPseudoatom: Module.cwrap('indigoIsPseudoatom', 'number', ['number']),
isRSite: Module.cwrap('indigoIsRSite', 'number', ['number']),
stereocenterType: Module.cwrap('indigoStereocenterType', 'number', ['number']),
changeStereocenterType: Module.cwrap('indigoChangeStereocenterType', 'number', ['number', 'number']),
stereocenterGroup: Module.cwrap('indigoStereocenterGroup', 'number', ['number']),
setStereocenterGroup: Module.cwrap('indigoSetStereocenterGroup', 'number', ['number', 'number']),
stereocenterPyramid: Module.cwrap('indigoStereocenterPyramid', 'number', ['number']),
singleAllowedRGroup: Module.cwrap('indigoSingleAllowedRGroup', 'number', ['number']),
addStereocenter: Module.cwrap('indigoAddStereocenter', 'number', ['number', 'number', 'number', 'number', 'number', 'number']),
iterateRGroupFragments: Module.cwrap('indigoIterateRGroupFragments', 'number', ['number']),
countAttachmentPoints: Module.cwrap('indigoCountAttachmentPoints', 'number', ['number']),
iterateAttachmentPoints: Module.cwrap('indigoIterateAttachmentPoints', 'number', ['number', 'number']),
symbol: Module.cwrap('indigoSymbol', 'string', ['number']),
degree: Module.cwrap('indigoDegree', 'number', ['number']),
getCharge: Module.cwrap('indigoGetCharge', 'number', ['number', 'number']),
getExplicitValence: Module.cwrap('indigoGetExplicitValence', 'number', ['number', 'number']),
setExplicitValence: Module.cwrap('indigoSetExplicitValence', 'number', ['number', 'number']),
atomicNumber: Module.cwrap('indigoAtomicNumber', 'number', ['number']),
isotope: Module.cwrap('indigoIsotope', 'number', ['number']),
valence: Module.cwrap('indigoValence', 'number', ['number']),
checkValence: Module.cwrap('indigoCheckValence', 'number', ['number']),
checkQuery: Module.cwrap('indigoCheckQuery', 'number', ['number']),
checkRGroups: Module.cwrap('indigoCheckRGroups', 'number', ['number']),
countHydrogens: Module.cwrap('indigoCountHydrogens', 'number', ['number', 'number']),
countImplicitHydrogens: Module.cwrap('indigoCountImplicitHydrogens', 'number', ['number']),
xYZ: Module.cwrap('indigoXYZ', 'array', ['number']),
setXYZ: Module.cwrap('indigoSetXYZ', 'number', ['number', 'number', 'number', 'number']),
countSuperatoms: Module.cwrap('indigoCountSuperatoms', 'number', ['number']),
countDataSGroups: Module.cwrap('indigoCountDataSGroups', 'number', ['number']),
countRepeatingUnits: Module.cwrap('indigoCountRepeatingUnits', 'number', ['number']),
countMultipleGroups: Module.cwrap('indigoCountMultipleGroups', 'number', ['number']),
countGenericSGroups: Module.cwrap('indigoCountGenericSGroups', 'number', ['number']),
iterateDataSGroups: Module.cwrap('indigoIterateDataSGroups', 'number', ['number']),
iterateSuperatoms: Module.cwrap('indigoIterateSuperatoms', 'number', ['number']),
iterateGenericSGroups: Module.cwrap('indigoIterateGenericSGroups', 'number', ['number']),
iterateRepeatingUnits: Module.cwrap('indigoIterateRepeatingUnits', 'number', ['number']),
iterateMultipleGroups: Module.cwrap('indigoIterateMultipleGroups', 'number', ['number']),
iterateSGroups: Module.cwrap('indigoIterateSGroups', 'number', ['number']),
getSuperatom: Module.cwrap('indigoGetSuperatom', 'number', ['number', 'number']),
getDataSGroup: Module.cwrap('indigoGetDataSGroup', 'number', ['number', 'number']),
getGenericSGroup: Module.cwrap('indigoGetGenericSGroup', 'number', ['number', 'number']),
getMultipleGroup: Module.cwrap('indigoGetMultipleGroup', 'number', ['number', 'number']),
getRepeatingUnit: Module.cwrap('indigoGetRepeatingUnit', 'number', ['number', 'number']),
description: Module.cwrap('indigoDescription', 'string', ['number']),
data: Module.cwrap('indigoData', 'string', ['number']),
addDataSGroup: Module.cwrap('indigoAddDataSGroup', 'number', ['number', 'number', 'number', 'number', 'number', 'string', 'string']),
addSuperatom: Module.cwrap('indigoAddSuperatom', 'number', ['number', 'number', 'number', 'string']),
setDataSGroupXY: Module.cwrap('indigoSetDataSGroupXY', 'number', ['number', 'number', 'number', 'string']),
setSGroupData: Module.cwrap('indigoSetSGroupData', 'number', ['number', 'string']),
setSGroupCoords: Module.cwrap('indigoSetSGroupCoords', 'number', ['number', 'number', 'number']),
setSGroupDescription: Module.cwrap('indigoSetSGroupDescription', 'number', ['number', 'string']),
setSGroupFieldName: Module.cwrap('indigoSetSGroupFieldName', 'number', ['number', 'string']),
setSGroupQueryCode: Module.cwrap('indigoSetSGroupQueryCode', 'number', ['number', 'string']),
setSGroupQueryOper: Module.cwrap('indigoSetSGroupQueryOper', 'number', ['number', 'string']),
setSGroupDisplay: Module.cwrap('indigoSetSGroupDisplay', 'number', ['number', 'string']),
setSGroupLocation: Module.cwrap('indigoSetSGroupLocation', 'number', ['number', 'string']),
setSGroupTag: Module.cwrap('indigoSetSGroupTag', 'number', ['number', 'string']),
setSGroupTagAlign: Module.cwrap('indigoSetSGroupTagAlign', 'number', ['number', 'number']),
setSGroupDataType: Module.cwrap('indigoSetSGroupDataType', 'number', ['number', 'string']),
setSGroupXCoord: Module.cwrap('indigoSetSGroupXCoord', 'number', ['number', 'number']),
setSGroupYCoord: Module.cwrap('indigoSetSGroupYCoord', 'number', ['number', 'number']),
createSGroup: Module.cwrap('indigoCreateSGroup', 'number', ['string', 'number', 'string']),
getSGroupClass: Module.cwrap('indigoGetSGroupClass', 'string', ['number']),
getSGroupName: Module.cwrap('indigoGetSGroupName', 'string', ['number']),
setSGroupClass: Module.cwrap('indigoSetSGroupClass', 'number', ['number', 'string']),
setSGroupName: Module.cwrap('indigoSetSGroupName', 'number', ['number', 'string']),
getSGroupNumCrossBonds: Module.cwrap('indigoGetSGroupNumCrossBonds', 'number', ['number']),
addSGroupAttachmentPoint: Module.cwrap('indigoAddSGroupAttachmentPoint', 'number', ['number', 'number', 'number', 'string']),
deleteSGroupAttachmentPoint: Module.cwrap('indigoDeleteSGroupAttachmentPoint', 'number', ['number', 'number']),
getSGroupDisplayOption: Module.cwrap('indigoGetSGroupDisplayOption', 'number', ['number']),
setSGroupDisplayOption: Module.cwrap('indigoSetSGroupDisplayOption', 'number', ['number', 'number']),
getSGroupSeqId: Module.cwrap('indigoGetSGroupSeqId', 'number', ['number']),
getSGroupMultiplier: Module.cwrap('indigoGetSGroupMultiplier', 'number', ['number']),
setSGroupMultiplier: Module.cwrap('indigoSetSGroupMultiplier', 'number', ['number', 'number']),
getRepeatingUnitSubscript: Module.cwrap('indigoGetRepeatingUnitSubscript', 'string', ['number']),
getRepeatingUnitConnectivity: Module.cwrap('indigoGetRepeatingUnitConnectivity', 'number', ['number']),
setSGroupBrackets: Module.cwrap('indigoSetSGroupBrackets', 'number', ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number']),
findSGroups: Module.cwrap('indigoFindSGroups', 'number', ['number', 'string', 'string']),
getSGroupType: Module.cwrap('indigoGetSGroupType', 'number', ['number']),
getSGroupIndex: Module.cwrap('indigoGetSGroupIndex', 'number', ['number']),
getSGroupOriginalId: Module.cwrap('indigoGetSGroupOriginalId', 'number', ['number']),
setSGroupOriginalId: Module.cwrap('indigoSetSGroupOriginalId', 'number', ['number', 'number']),
getSGroupParentId: Module.cwrap('indigoGetSGroupParentId', 'number', ['number']),
setSGroupParentId: Module.cwrap('indigoSetSGroupParentId', 'number', ['number', 'number']),
transformSCSRtoCTAB: Module.cwrap('indigoTransformSCSRtoCTAB', 'number', ['number']),
transformCTABtoSCSR: Module.cwrap('indigoTransformCTABtoSCSR', 'number', ['number', 'number']),
resetCharge: Module.cwrap('indigoResetCharge', 'number', ['number']),
resetExplicitValence: Module.cwrap('indigoResetExplicitValence', 'number', ['number']),
resetIsotope: Module.cwrap('indigoResetIsotope', 'number', ['number']),
setAttachmentPoint: Module.cwrap('indigoSetAttachmentPoint', 'number', ['number', 'number']),
clearAttachmentPoints: Module.cwrap('indigoClearAttachmentPoints', 'number', ['number']),
removeConstraints: Module.cwrap('indigoRemoveConstraints', 'number', ['number', 'string']),
addConstraint: Module.cwrap('indigoAddConstraint', 'number', ['number', 'string', 'string']),
addConstraintNot: Module.cwrap('indigoAddConstraintNot', 'number', ['number', 'string', 'string']),
addConstraintOr: Module.cwrap('indigoAddConstraintOr', 'number', ['number', 'string', 'string']),
resetStereo: Module.cwrap('indigoResetStereo', 'number', ['number']),
invertStereo: Module.cwrap('indigoInvertStereo', 'number', ['number']),
countAtoms: Module.cwrap('indigoCountAtoms', 'number', ['number']),
countBonds: Module.cwrap('indigoCountBonds', 'number', ['number']),
countPseudoatoms: Module.cwrap('indigoCountPseudoatoms', 'number', ['number']),
countRSites: Module.cwrap('indigoCountRSites', 'number', ['number']),
iterateBonds: Module.cwrap('indigoIterateBonds', 'number', ['number']),
bondOrder: Module.cwrap('indigoBondOrder', 'number', ['number']),
bondStereo: Module.cwrap('indigoBondStereo', 'number', ['number']),
topology: Module.cwrap('indigoTopology', 'number', ['number']),
iterateNeighbors: Module.cwrap('indigoIterateNeighbors', 'number', ['number']),
bond: Module.cwrap('indigoBond', 'number', ['number']),
getAtom: Module.cwrap('indigoGetAtom', 'number', ['number', 'number']),
getBond: Module.cwrap('indigoGetBond', 'number', ['number', 'number']),
source: Module.cwrap('indigoSource', 'number', ['number']),
destination: Module.cwrap('indigoDestination', 'number', ['number']),
clearCisTrans: Module.cwrap('indigoClearCisTrans', 'number', ['number']),
clearStereocenters: Module.cwrap('indigoClearStereocenters', 'number', ['number']),
countStereocenters: Module.cwrap('indigoCountStereocenters', 'number', ['number']),
clearAlleneCenters: Module.cwrap('indigoClearAlleneCenters', 'number', ['number']),
countAlleneCenters: Module.cwrap('indigoCountAlleneCenters', 'number', ['number']),
resetSymmetricCisTrans: Module.cwrap('indigoResetSymmetricCisTrans', 'number', ['number']),
resetSymmetricStereocenters: Module.cwrap('indigoResetSymmetricStereocenters', 'number', ['number']),
markEitherCisTrans: Module.cwrap('indigoMarkEitherCisTrans', 'number', ['number']),
markStereobonds: Module.cwrap('indigoMarkStereobonds', 'number', ['number']),
validateChirality: Module.cwrap('indigoValidateChirality', 'number', ['number']),
addAtom: Module.cwrap('indigoAddAtom', 'number', ['number', 'string']),
resetAtom: Module.cwrap('indigoResetAtom', 'number', ['number', 'string']),
addRSite: Module.cwrap('indigoAddRSite', 'number', ['number', 'string']),
setRSite: Module.cwrap('indigoSetRSite', 'number', ['number', 'string']),
setCharge: Module.cwrap('indigoSetCharge', 'number', ['number', 'number']),
setIsotope: Module.cwrap('indigoSetIsotope', 'number', ['number', 'number']),
getRadicalElectrons: Module.cwrap('indigoGetRadicalElectrons', 'number', ['number', 'number']),
getRadical: Module.cwrap('indigoGetRadical', 'number', ['number', 'number']),
setRadical: Module.cwrap('indigoSetRadical', 'number', ['number', 'number']),
resetRadical: Module.cwrap('indigoResetRadical', 'number', ['number']),
setImplicitHCount: Module.cwrap('indigoSetImplicitHCount', 'number', ['number', 'number']),
addBond: Module.cwrap('indigoAddBond', 'number', ['number', 'number', 'number']),
setBondOrder: Module.cwrap('indigoSetBondOrder', 'number', ['number', 'number']),
merge: Module.cwrap('indigoMerge', 'number', ['number', 'number']),
highlight: Module.cwrap('indigoHighlight', 'number', ['number']),
unhighlight: Module.cwrap('indigoUnhighlight', 'number', ['number']),
isHighlighted: Module.cwrap('indigoIsHighlighted', 'number', ['number']),
countComponents: Module.cwrap('indigoCountComponents', 'number', ['number']),
componentIndex: Module.cwrap('indigoComponentIndex', 'number', ['number']),
iterateComponents: Module.cwrap('indigoIterateComponents', 'number', ['number']),
component: Module.cwrap('indigoComponent', 'number', ['number', 'number']),
countSSSR: Module.cwrap('indigoCountSSSR', 'number', ['number']),
iterateSSSR: Module.cwrap('indigoIterateSSSR', 'number', ['number']),
iterateSubtrees: Module.cwrap('indigoIterateSubtrees', 'number', ['number', 'number', 'number']),
iterateRings: Module.cwrap('indigoIterateRings', 'number', ['number', 'number', 'number']),
iterateEdgeSubmolecules: Module.cwrap('indigoIterateEdgeSubmolecules', 'number', ['number', 'number', 'number']),
countHeavyAtoms: Module.cwrap('indigoCountHeavyAtoms', 'number', ['number']),
grossFormula: Module.cwrap('indigoGrossFormula', 'number', ['number']),
molecularWeight: Module.cwrap('indigoMolecularWeight', 'number', ['number']),
mostAbundantMass: Module.cwrap('indigoMostAbundantMass', 'number', ['number']),
monoisotopicMass: Module.cwrap('indigoMonoisotopicMass', 'number', ['number']),
massComposition: Module.cwrap('indigoMassComposition', 'string', ['number']),
canonicalSmiles: Module.cwrap('indigoCanonicalSmiles', 'string', ['number']),
layeredCode: Module.cwrap('indigoLayeredCode', 'string', ['number']),
symmetryClasses: Module.cwrap('indigoSymmetryClasses', 'number', ['number', 'number']),
hasCoord: Module.cwrap('indigoHasCoord', 'number', ['number']),
hasZCoord: Module.cwrap('indigoHasZCoord', 'number', ['number']),
isChiral: Module.cwrap('indigoIsChiral', 'number', ['number']),
isPossibleFischerProjection: Module.cwrap('indigoIsPossibleFischerProjection', 'number', ['number', 'string']),
createSubmolecule: Module.cwrap('indigoCreateSubmolecule', 'number', ['number', 'number', 'number']),
createEdgeSubmolecule: Module.cwrap('indigoCreateEdgeSubmolecule', 'number', ['number', 'number', 'number', 'number', 'number']),
getSubmolecule: Module.cwrap('indigoGetSubmolecule', 'number', ['number', 'number', 'number']),
removeAtoms: Module.cwrap('indigoRemoveAtoms', 'number', ['number', 'number', 'number']),
removeBonds: Module.cwrap('indigoRemoveBonds', 'number', ['number', 'number', 'number']),
alignAtoms: Module.cwrap('indigoAlignAtoms', 'number', ['number', 'number', 'number', 'array']),
aromatize: Module.cwrap('indigoAromatize', 'number', ['number']),
dearomatize: Module.cwrap('indigoDearomatize', 'number', ['number']),
foldHydrogens: Module.cwrap('indigoFoldHydrogens', 'number', ['number']),
unfoldHydrogens: Module.cwrap('indigoUnfoldHydrogens', 'number', ['number']),
layout: Module.cwrap('indigoLayout', 'number', ['number']),
clean2d: Module.cwrap('indigoClean2d', 'number', ['number']),
smiles: Module.cwrap('indigoSmiles', 'string', ['number']),
smarts: Module.cwrap('indigoSmarts', 'string', ['number']),
canonicalSmarts: Module.cwrap('indigoCanonicalSmarts', 'string', ['number']),
exactMatch: Module.cwrap('indigoExactMatch', 'number', ['number', 'number', 'string']),
setTautomerRule: Module.cwrap('indigoSetTautomerRule', 'number', ['number', 'string', 'string']),
removeTautomerRule: Module.cwrap('indigoRemoveTautomerRule', 'number', ['number']),
clearTautomerRules: Module.cwrap('indigoClearTautomerRules', 'number', []),
name: Module.cwrap('indigoName', 'string', ['number']),
setName: Module.cwrap('indigoSetName', 'number', ['number', 'string']),
unserialize: Module.cwrap('indigoUnserialize', 'number', ['array', 'number']),
hasProperty: Module.cwrap('indigoHasProperty', 'number', ['number', 'string']),
getProperty: Module.cwrap('indigoGetProperty', 'string', ['number', 'string']),
setProperty: Module.cwrap('indigoSetProperty', 'number', ['number', 'string', 'string']),
removeProperty: Module.cwrap('indigoRemoveProperty', 'number', ['number', 'string']),
iterateProperties: Module.cwrap('indigoIterateProperties', 'number', ['number']),
clearProperties: Module.cwrap('indigoClearProperties', 'number', ['number']),
checkBadValence: Module.cwrap('indigoCheckBadValence', 'string', ['number']),
checkAmbiguousH: Module.cwrap('indigoCheckAmbiguousH', 'string', ['number']),
fingerprint: Module.cwrap('indigoFingerprint', 'number', ['number', 'string']),
countBits: Module.cwrap('indigoCountBits', 'number', ['number']),
commonBits: Module.cwrap('indigoCommonBits', 'number', ['number', 'number']),
oneBitsList: Module.cwrap('indigoOneBitsList', 'string', ['number']),
similarity: Module.cwrap('indigoSimilarity', 'number', ['number', 'number', 'string']),
iterateSDF: Module.cwrap('indigoIterateSDF', 'number', ['number']),
iterateRDF: Module.cwrap('indigoIterateRDF', 'number', ['number']),
iterateSmiles: Module.cwrap('indigoIterateSmiles', 'number', ['number']),
iterateCML: Module.cwrap('indigoIterateCML', 'number', ['number']),
iterateCDX: Module.cwrap('indigoIterateCDX', 'number', ['number']),
rawData: Module.cwrap('indigoRawData', 'string', ['number']),
tell: Module.cwrap('indigoTell', 'number', ['number']),
tell64: Module.cwrap('indigoTell64', 'number', ['number']),
sdfAppend: Module.cwrap('indigoSdfAppend', 'number', ['number', 'number']),
smilesAppend: Module.cwrap('indigoSmilesAppend', 'number', ['number', 'number']),
rdfHeader: Module.cwrap('indigoRdfHeader', 'number', ['number']),
rdfAppend: Module.cwrap('indigoRdfAppend', 'number', ['number', 'number']),
cmlHeader: Module.cwrap('indigoCmlHeader', 'number', ['number']),
cmlAppend: Module.cwrap('indigoCmlAppend', 'number', ['number', 'number']),
cmlFooter: Module.cwrap('indigoCmlFooter', 'number', ['number']),
createSaver: Module.cwrap('indigoCreateSaver', 'number', ['number', 'string']),
append: Module.cwrap('indigoAppend', 'number', ['number', 'number']),
createArray: Module.cwrap('indigoCreateArray', 'number', []),
arrayAdd: Module.cwrap('indigoArrayAdd', 'number', ['number', 'number']),
at: Module.cwrap('indigoAt', 'number', ['number', 'number']),
count: Module.cwrap('indigoCount', 'number', ['number']),
clear: Module.cwrap('indigoClear', 'number', ['number']),
iterateArray: Module.cwrap('indigoIterateArray', 'number', ['number']),
substructureMatcher: Module.cwrap('indigoSubstructureMatcher', 'number', ['number', 'string']),
ignoreAtom: Module.cwrap('indigoIgnoreAtom', 'number', ['number', 'number']),
unignoreAtom: Module.cwrap('indigoUnignoreAtom', 'number', ['number', 'number']),
unignoreAllAtoms: Module.cwrap('indigoUnignoreAllAtoms', 'number', ['number']),
match: Module.cwrap('indigoMatch', 'number', ['number', 'number']),
countMatches: Module.cwrap('indigoCountMatches', 'number', ['number', 'number']),
countMatchesWithLimit: Module.cwrap('indigoCountMatchesWithLimit', 'number', ['number', 'number', 'number']),
iterateMatches: Module.cwrap('indigoIterateMatches', 'number', ['number', 'number']),
highlightedTarget: Module.cwrap('indigoHighlightedTarget', 'number', ['number']),
mapAtom: Module.cwrap('indigoMapAtom', 'number', ['number', 'number']),
mapBond: Module.cwrap('indigoMapBond', 'number', ['number', 'number']),
mapMolecule: Module.cwrap('indigoMapMolecule', 'number', ['number', 'number']),
iterateTautomers: Module.cwrap('indigoIterateTautomers', 'number', ['number', 'string']),
extractCommonScaffold: Module.cwrap('indigoExtractCommonScaffold', 'number', ['number', 'string']),
allScaffolds: Module.cwrap('indigoAllScaffolds', 'number', ['number']),
decomposeMolecules: Module.cwrap('indigoDecomposeMolecules', 'number', ['number', 'number']),
decomposedMoleculeScaffold: Module.cwrap('indigoDecomposedMoleculeScaffold', 'number', ['number']),
iterateDecomposedMolecules: Module.cwrap('indigoIterateDecomposedMolecules', 'number', ['number']),
decomposedMoleculeHighlighted: Module.cwrap('indigoDecomposedMoleculeHighlighted', 'number', ['number']),
decomposedMoleculeWithRGroups: Module.cwrap('indigoDecomposedMoleculeWithRGroups', 'number', ['number']),
createDecomposer: Module.cwrap('indigoCreateDecomposer', 'number', ['number']),
decomposeMolecule: Module.cwrap('indigoDecomposeMolecule', 'number', ['number', 'number']),
iterateDecompositions: Module.cwrap('indigoIterateDecompositions', 'number', ['number']),
addDecomposition: Module.cwrap('indigoAddDecomposition', 'number', ['number', 'number']),
getFragmentedMolecule: Module.cwrap('indigoGetFragmentedMolecule', 'number', ['number', 'string']),
rGroupComposition: Module.cwrap('indigoRGroupComposition', 'number', ['number', 'string']),
expandAbbreviations: Module.cwrap('indigoExpandAbbreviations', 'number', ['number']),
toString: Module.cwrap('indigoToString', 'string', ['number']),
reactionProductEnumerate: Module.cwrap('indigoReactionProductEnumerate', 'number', ['number', 'number']),
transform: Module.cwrap('indigoTransform', 'number', ['number', 'number']),
transformHELMtoSCSR: Module.cwrap('indigoTransformHELMtoSCSR', 'number', ['number']),
dbgInternalType: Module.cwrap('indigoDbgInternalType', 'string', ['number']),
dbgBreakpoint: Module.cwrap('indigoDbgBreakpoint', null, []),
dbgProfiling: Module.cwrap('indigoDbgProfiling', 'string', ['number']),
dbgResetProfiling: Module.cwrap('indigoDbgResetProfiling', 'number', ['number']),
dbgProfilingGetCounter: Module.cwrap('indigoDbgProfilingGetCounter', 'number', ['string', 'number'])
};
result._module = Module; // save module object
return result;
};