@iktos/rdkitjs
Version:
RDKit-js implementation based on RDKit's original c++ source and emscripten
177 lines (176 loc) • 5.99 kB
TypeScript
export declare type StackAlloc = (bytes: number) => number;
export declare type StackSave = () => number;
export declare type StackRestore = (pointer: number) => void;
export declare type ModuleObject = {
locateFile: ((path: string, prefix: string) => string) | undefined;
};
export interface Mol {
add_hs(): string;
condense_abbreviations(maxCoverage?: number, useLinkers?: boolean): void;
condense_abbreviations_from_defs(definitions: string, maxCoverage: number, areLinkers: boolean): string;
draw_to_canvas(canvas: HTMLCanvasElement, width: number, height: number, offsetx: number, offsety: number): string;
draw_to_canvas_with_highlights(canvas: HTMLCanvasElement, details: string, width: number, height: number, offsetx: number, offsety: number): string;
generate_aligned_coords(templateMol: Mol, useCoordGen?: boolean): string;
get_aromatic_form(): string;
get_cxsmiles(): string;
get_descriptors(): Descriptors;
get_inchi(): string;
get_inchi_key(): string;
get_kekule_form(): string;
get_molblock(): string;
get_v3Kmolblock(): string;
get_new_coords(useCoordGen?: boolean): string;
get_smarts(): string;
get_smiles(): string;
get_stereo_tags(): string;
get_substruct_match(q: Mol): string;
get_substruct_matches(q: Mol): string;
get_svg(width?: number, height?: number, offsetx?: number, offsety?: number): string;
get_svg_with_highlights(details: string, width?: number, height?: number, offsetx?: number, offsety?: number): string;
has_substruct_match_str(smilesRef: string): boolean;
is_valid(): boolean;
remove_hs(): string;
clog_p(): number;
get_morgan_fp(radius?: number, nBits?: number, useChirality?: boolean, useBondTypes?: boolean, onlyNonzeroInvariants?: boolean, useFeatures?: boolean): string;
mr(): number;
num_aliphatic_carbocycles(): number;
num_aliphatic_heterocycles(): number;
num_aliphatic_rings(): number;
num_aromatic_carbocycles(): number;
num_aromatic_heterocycles(): number;
num_aromatic_rings(): number;
num_hba(): number;
num_hbd(): number;
num_rotatable_bonds(): number;
num_saturated_carbocycles(): number;
num_saturated_heterocycles(): number;
num_saturated_rings(): number;
slog_p_vsa(): Map<number, number>;
tpsa(): number;
delete(): void;
}
export interface Bindings {
get_inchikey_for_inchi(inchi: string): string;
get_mol(smiles: string): Mol;
get_qmol(smarts: string): Mol;
prefer_coordgen(useCoordGen: boolean): void;
}
export interface Stack {
stackAlloc: StackAlloc;
stackRestore: StackRestore;
stackSave: StackSave;
}
export declare type TypeMemory = {
F32: Float32Array;
F64: Float64Array;
S16: Int16Array;
S32: Int32Array;
S8: Int8Array;
U16: Uint16Array;
U32: Uint32Array;
U8: Uint8Array;
};
export interface RdkitModule extends Bindings, Stack {
[key: string]: any;
HEAP16: Int16Array;
HEAP32: Int32Array;
HEAP8: Int8Array;
HEAPF32: Float32Array;
HEAPF64: Float64Array;
HEAPU16: Uint16Array;
HEAPU32: Uint32Array;
HEAPU8: Uint8Array;
}
export declare type RdkitInstance = {
exports: RdkitModule;
memory: TypeMemory;
};
export declare type Descriptors = {
exactmw: number;
lipinskiHba: number;
lipinskiHbd: number;
numRotatableBonds: number;
numHba: number;
numHbd: number;
numHeteroatoms: number;
numAmideBonds: number;
fractionCsp3: number;
numRings: number;
numAromaticRings: number;
numAliphaticRings: number;
numSaturatedRings: number;
numHeterocycles: number;
numAromaticHeterocycles: number;
numSaturatedHeterocycles: number;
numAliphaticHeterocycles: number;
numSpiroAtoms: number;
numBridgeheadAtoms: number;
numAtomStereoCenters: number;
numUnspecifiedAtomStereoCenters: number;
labuteAsa: number;
tpsa: number;
crippenClogP: number;
crippenMr: number;
amw: number;
pfi: number;
};
export declare type SubstructMatch = {
atoms?: Array<number>;
bonds?: Array<number>;
};
export declare type DrawColour = {
r: number;
g: number;
b: number;
a?: number;
};
/**
* @link https://github.com/rdkit/rdkit/blob/d1be88c39ad37ffc646a5ea801c66e6685b3a830/Code/GraphMol/MolDraw2D/MolDraw2D.h
*/
export declare type DrawerOptions = {
atomLabelDeuteriumTritium?: boolean;
dummiesAreAttachments?: boolean;
circleAtoms?: boolean;
highlightColour?: DrawColour;
continuousHighlight?: boolean;
fillHighlights?: boolean;
highlightRadius?: number;
flagCloseContactsDist?: number;
includeAtomTags?: boolean;
clearBackground?: boolean;
backgroundColour?: DrawColour;
legendFontSize?: number;
maxFontSize?: number;
minFontSize?: number;
annotationFontScale?: number;
fontFile?: string;
legendColour?: DrawColour;
multipleBondOffset?: number;
padding?: number;
additionalAtomLabelPadding?: number;
atomLabels?: Map<number, string> | string[];
symbolColour?: DrawColour;
bondLineWidth?: number;
scaleBondWidth?: boolean;
scaleHighlightBondWidth?: boolean;
highlightBondWidthMultiplier?: number;
prepareMolsBeforeDrawing?: boolean;
fixedScale?: number;
fixedBondLength?: number;
rotate?: number;
addAtomIndices?: boolean;
addBondIndices?: boolean;
addStereoAnnotation?: boolean;
atomHighlightsAreCircles?: boolean;
centreMoleculesBeforeDrawing?: boolean;
explicitMethyl?: boolean;
includeMetadata?: boolean;
includeRadicals?: boolean;
};
export interface Details extends SubstructMatch, DrawerOptions {
height?: number;
legend?: string;
offsetx?: number;
offsety?: number;
width?: number;
}