Add support for a new curve data format in the Curves package converter system
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Cheminformatics toolkit catalog for small molecules. Covers RDKit/OpenChemLib calculations, descriptors, fingerprints, similarity/substructure search, R-group, MMP, scaffold tree, chemical space, MPO, reactions, and ADMET predictions. Open this skill when the user asks about computing molecular properties, comparing/searching molecules, or predicting ADMET/tox.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Function catalog for the structure-and-modeling half of Datagrok cheminformatics: Chem, Admetica.
Every function below is callable through the datagrok_exec tool via
grok.functions.call('<Package>:<funcName>', {param1, param2, ...}). For ones
exposed under a top-menu path, the path is shown so you can describe it in plain
language ("Top menu → Chem → ...").
Types match the Datagrok function declarations: dataframe, column, string,
int, float, bool, list<T>, object. A column with a required semType is
written column<semType> (e.g. column<Molecule>, column<Macromolecule>,
column<numerical>). Choices for enum-style params are listed inline as
'a' | 'b' | 'c'. ? marks optional, = x shows the default.
If the user asks for a concrete chemistry action ("generate analogs", "dock these
ligands", "compute IC50", "register this compound", "what is the SMILES of
aspirin") — call datagrok_exec with code calling the relevant function below,
even if some args have to be guessed from context (table columns, sensible
defaults). Don't ask the user to re-state inputs you can already infer; if a
required input is genuinely missing, still emit the block with the best guess
and add a one-line note. Don't answer chemistry questions from memory when a
catalog function exists — call the function.
| User intent | Function | Package |
|---|---|---|
| Draw / depict a molecule | Chem:drawMolecule | Chem |
| Convert SMILES ↔ Molfile ↔ SMARTS ↔ InChI | Chem:convertMolNotation | Chem |
| Get InChI / InChI key | Chem:getInchis, Chem:getInchiKeys | Chem |
| Molecular formula | Chem:getMolecularFormula | Chem |
| Canonical SMILES | Chem:canonicalize | Chem |
| Validate SMILES (RDKit) | Chem:validateMolecule, Chem:isSmiles, Chem:isSmarts | Chem |
| Basic properties (MW, LogP, HBA, HBD, PSA, ...) | Chem:addChemPropertiesColumns or Chem:getProperties | Chem |
| Single-molecule cLogP only | Chem:getCLogP | Chem |
| Chemical descriptors (RDKit set) | Chem:getDescriptors / Chem:chemDescriptors | Chem |
| Toxicity risks (OCL: mutagenicity, tumorigenicity, ...) | Chem:addChemRisksColumns or Chem:getToxicityRisks | Chem |
| Structural alerts (PAINS, BMS, SureChEMBL, ...) | Chem:structuralAlertsTopMenu or Chem:getStructuralAlerts | Chem |
| Pharmacophore features (donor, acceptor, ...) | Chem:pharmacophoreFeaturesTopMenu | Chem |
| Morgan / RDKit / MACCS / AtomPair fingerprints | Chem:getMorganFingerprints, Chem:getFingerprints | Chem |
| Find similar molecules in a column | Chem:findSimilar, Chem:callChemSimilaritySearch | Chem |
| Tanimoto similarity matrix | Chem:similarityMatrixTopMenu | Chem |
| Substructure search | Chem:searchSubstructure, Chem:SubstructureSearchTopMenu | Chem |
| Chemical space 2D (UMAP / t-SNE) | Chem:chemSpaceTopMenu | Chem |
| Diversity picking | Chem:callChemDiversitySearch | Chem |
| BitBIRCH O(N) clustering | Chem:bitbirchClusteringTopMenu | Chem |
| Cluster MCS (most-common-substructure per cluster) | Chem:performClusterMCS | Chem |
| R-Group decomposition | Chem:rGroupsAnalysisMenu, Chem:rGroupDecomposition | Chem |
| Matched Molecular Pairs | Chem:mmpAnalysis | Chem |
| Activity cliffs | Chem:activityCliffs | Chem |
| Scaffold tree (hierarchical) | Chem:getScaffoldTree, Chem:addScaffoldTree | Chem |
| Elemental analysis (atom counts) | Chem:elementalAnalysis | Chem |
| Synthon (REAL-like) space search | Chem:synthonSearchFunc | Chem |
| Drug name(s) → SMILES (ibuprofen, aspirin, ...) | Chem:namesToSmiles (ChEMBL-backed; needs Chembl pkg) | Chem |
| Free text → SMILES (LLM fallback) | Chem:freeTextToSmiles | Chem |
| Map IDs incl. InChI key → ChEMBL, ChEMBL → DrugBank, etc. | Chem:getMapIdentifiers / Chem:mapIdentifiersTransform | Chem |
| MPO score (weighted desirability) | Chem:mpoCalculate, Chem:_mpo | Chem |
| Apply reaction SMARTS (transformation) | Chem:transformationReactionsTopMenu | Chem |
| Two-column reaction enumeration | Chem:twoComponentReactionTopMenu | Chem |
| Remove water and salts | Chem:removeWaterAndSaltsTopMenu | Chem |
| Deprotect (remove protecting groups) | Chem:deprotect | Chem |
| Recalculate 2D coordinates | Chem:recalculateCoords | Chem |
| Train Chemprop QSAR model | Chem:trainChemprop | Chem |
| Apply Chemprop QSAR model | Chem:applyChemprop | Chem |
| ADMET predictions (full panel) | Admetica:getAdmeProperties | Admetica |
| ADMET for single molecule | Admetica:getAdmePropertiesSingle | Admetica |
| ADMET in Hit Triage pipeline | Admetica:admeticaHT | Admetica |
Most Chem functions operate on a DG.Column of molecules and a parent
DG.DataFrame. In datagrok_exec code:
const mol = t.columns.bySemType(DG.SEMTYPE.MOLECULE); // first Molecule column
const res = await grok.functions.call('Chem:getProperties', { molecules: mol });
// res is a DG.DataFrame with one column per requested property
Function tables below carry a Tags column. The values it can hold:
| Tag | Meaning |
|---|---|
vectorFunc | Returns a DG.DataFrame. Usable from the Add-New-Column dialog and inside a t.columns.addNewCalculated(name, formula) call. Functions WITHOUT this tag cannot be embedded in a formula — call them via grok.functions.call. |
join(table) | Output declares action: 'join(table)' — result columns are auto-appended to the input table. Do not also append yourself. |
transform | Tagged as a data-sync transform — same behavior as the un-tagged sibling, but tracked in the project history. |
topMenu | Has a Top-menu path; otherwise programmatic only. |
panel | Context-panel widget — returns DG.Widget, shown in the right side panel. |
action | Right-click / context-menu action. |
If the molecule notation is unknown, sourceNotation: DG.chem.Notation.Unknown
works for SMILES, SMARTS, molblock, and V3K molblock inputs.
Chem:...)The flagship cheminformatics package. RDKit is the engine; OpenChemLib provides fallback rendering and a few descriptors (logP, logS, drug-likeness, toxicity).
Chem:addChemPropertiesColumns(...)
and strings in the selected list of Chem:getProperties(molecules, selected?).
No standalone Chem:CalculateMW / Chem:CalculateLogP etc. exist.Chem:convertMolNotation has no inchi. The sourceNotation /
targetNotation enum is 'smiles' | 'cxsmiles' | 'smarts' | 'cxsmarts' | 'molblock' | 'v3Kmolblock'. For InChI use Chem:getInchis /
Chem:getInchiKeys. For InChI key → ChEMBL ID, use
Chem:getMapIdentifiers / Chem:mapIdentifiersTransform (sources
include inchi_key, chembl, pubchem, drugbank, zinc, ...).Chem:namesToSmiles is ChEMBL-backed. It delegates to
Chembl:namesToSmiles and will fail if the Chembl package / DB isn't
deployed. Still pick it for any "drug name → SMILES" / list-of-names task
(aspirin, ibuprofen, caffeine, ...). Don't fall back to Chem:freeTextToSmiles
(LLM path, for free-form text fragments). Don't answer from memory.Docking:getAutodockResults / Docking:runAutodock
or Boltz1:docking — never to a Chem: function. "Generate analogs" /
"design new molecules" → Reinvent4:reinvent / Reinvent4:reinventTopMenu
— not R-group, MMP, or reaction enumeration (those operate on existing
series). Always make the datagrok_exec call; if a target/seed is missing,
pass a sensible default (first molecule column, first configured target).Notation enum (used by convertMolNotation, convertMoleculeNotation,
convertNotation): 'smiles' | 'cxsmiles' | 'smarts' | 'cxsmarts' | 'molblock' | 'v3Kmolblock'. No inchi — use getInchis / getInchiKeys instead.
| Function | Tags | What it does |
|---|---|---|
drawMolecule(molStr: string, w?: int, h?: int, popupMenu?: bool) | — | Returns an HTMLElement of a rendered molecule. |
canvasMol(x: int, y: int, w: int, h: int, canvas: object, molString: string, scaffoldMolString: string, options?: object, renderingOptions?: object) | — | Draws into an existing canvas (with optional scaffold highlight). |
convertMolNotation(molecule: string, sourceNotation: <notation>, targetNotation: <notation>) | — | Returns a single string in the target notation. |
convertMoleculeNotation(molecule: column<Molecule>, targetNotation: <notation>, kekulize?: bool = false) | vectorFunc | Notation conversion. Returns a new DG.Column. |
convertNotation(data: dataframe, molecules: column<Molecule>, targetNotation: <notation> = 'smiles', overwrite: bool = false, join: bool = true, kekulize?: bool) | topMenu | Top-menu version: appends or overwrites the column. Top menu: Chem → Transform → Convert Notation. |
recalculateCoords(table: dataframe, molecules: column<Molecule>, method: 'OCL' | 'CoordGen' = 'OCL', join: bool = true) | topMenu | Recompute 2D layout. Top menu: Chem → Transform → Recalculate Coordinates. |
canonicalize(molecule: string) | — | → canonical SMILES (string). |
getInchis(molecules: column<Molecule>) / getInchiKeys(molecules: column<Molecule>) | vectorFunc | Vector InChI / InChI key. |
addInchisTopMenu(table: dataframe, molecules: column<Molecule>) / addInchisKeysTopMenu(table: dataframe, molecules: column<Molecule>) | topMenu | Append as a new column. Top menu: Chem → Calculate → To InchI / To InchI Keys. |
getMolecularFormula(molecule: string) | — | Hill formula string (via OCL). |
isSmiles(s: string) / isSmarts(s: string) / validateMolecule(s: string) | — | RDKit-based validators. validateMolecule returns the RDKit error string or null if OK. |
detectSmiles(col: column, min: int) | — | Heuristic — tags the column as SMILES / Molecule if enough cells parse. |
getMolFileHandler(molString) | — | Returns a low-level molfile parser handler. |
getRdKitModule() | — | Returns the raw RDKit-JS module (for advanced calls like mol.get_descriptors()). |
chemCellRenderer / rdKitCellRenderer / rdKitReactionRenderer / rdKitMixtureRenderer | — | Cell renderers — call only via the grid system, not directly. |
editMoleculeCell(cell) | — | Pops a sketcher dialog bound to a grid cell. |
openChemLibSketcher() | — | Returns the OCL sketcher widget. |
Property names for getProperties(molecules, selected) and equivalent flags
on addChemPropertiesColumns: 'MW' | 'HBA' | 'HBD' | 'LogP' | 'LogS' | 'PSA' | 'Rotatable bonds' | 'Stereo centers' | 'Molecule charge'. Pass them in
selected as a list of strings, exactly as shown.
Fingerprint enum (<fp>): 'Morgan' | 'RDKit' | 'Pattern' | 'AtomPair' | 'MACCS' | 'TopologicalTorsion'.
Similarity metric enum (<metric>, from BitArrayMetricsNames in
@datagrok-libraries/ml): 'Tanimoto' | 'Dice' | 'Asymmetric' | 'Braun-Blanquet' | 'Cosine' | 'Kulczynski' | 'Mc-Connaughey' | 'Rogot-Goldberg' | 'Russel' | 'Sokal' | 'Hamming' | 'Euclidean BitArray'. Default is 'Tanimoto'.
Toxicity risk names for getToxicityRisks(molecules, risks): 'mutagenicity' | 'tumorigenicity' | 'irritatingEffects' | 'reproductiveEffects'.
Structural alert rule sets for getStructuralAlerts(molecules, alerts) and the per-flag args of structuralAlertsTopMenu: 'PAINS' | 'BMS' | 'SureChEMBL' | 'MLSMR' | 'Dundee' | 'Inpharmatica' | 'LINT' | 'Glaxo'.
| Function | Tags | What it does |
|---|---|---|
addChemPropertiesColumns(table: dataframe, molecules: column<Molecule>, MW?: bool = true, HBA?: bool = false, HBD?: bool = false, logP?: bool = false, logS?: bool = false, PSA?: bool = false, rotatableBonds?: bool = false, stereoCenters?: bool = false, moleculeCharge?: bool = false) | topMenu | OCL-based properties → appended as columns. Top menu: Chem → Calculate → Chemical Properties. |
getProperties(molecules: column<Molecule>, selected?: list<string>) | vectorFunc | Vector form. selected is a subset of the property names above; omit/empty for all. Returns a standalone DataFrame — NOT auto-joined; append its columns to your table yourself. |
getCLogP(smiles: string) | — | Single-mol Crippen logP (RDKit). |
getChemPropertyFunction(name: string) | — | Returns a (smiles) => any closure for one property — useful for column.applyFormula. |
getDescriptors(molecules: column<Molecule>, selected?: list<string>) | vectorFunc | RDKit descriptor set (via Chem docker). Returns a standalone DataFrame — NOT auto-joined; append its columns yourself. Use chemDescriptorsTree() for the legal selected names. |
chemDescriptors(table: dataframe, molecules: column<Molecule>, descriptors: list<string>) | topMenu | Same, appended to table. |
chemDescriptorsTree() | — | Returns the tree of available descriptor groups (for UI). |
descriptorsDocker() | topMenu | Opens the descriptors picker dialog. Top menu: Chem → Calculate → Descriptors. |
calculateDescriptorsTransform(table: dataframe, molecules: column<Molecule>, selected: list<string>) | transform | Same but tagged transform for data-sync projects. |
getMorganFingerprints(molColumn: column<Molecule>) | vectorFunc | Returns a Column of DG.BitSet fingerprints. |
getMorganFingerprint(molString: string) | — | Single-mol → DG.BitSet. |
getFingerprints(col: column<Molecule>, _metric?: string, fingerprintType?: <fp>) | — | Returns {entries, options} for the dim-reduction preprocessor. |
addChemRisksColumns(table: dataframe, molecules: column<Molecule>, mutagenicity?: bool = true, tumorigenicity?: bool = false, irritatingEffects?: bool = false, reproductiveEffects?: bool = false) | topMenu | OCL toxicity risk flags. Top menu: Chem → Calculate → Toxicity Risks. |
getToxicityRisks(molecules: column<Molecule>, risks?: list<string>) | vectorFunc | Vector form. risks is a subset of the risk names above. Returns a standalone DataFrame — NOT auto-joined; append its columns yourself. |
structuralAlertsTopMenu(table: dataframe, molecules: column<Molecule>, pains: bool = true, bms: bool = false, sureChembl: bool = false, mlsmr: bool = false, dundee: bool = false, inpharmatica: bool = false, lint: bool = false, glaxo: bool = false) | topMenu | Apply rule-based structural alerts. Top menu: Chem → Analyze → Structural Alerts. |
getStructuralAlerts(molecules: column<Molecule>, alerts?: list<string>) | vectorFunc | Vector form. Returns a standalone DataFrame — NOT auto-joined; append its columns yourself. |
pharmacophoreFeaturesTopMenu(table: dataframe, molecules: column<Molecule>, donor: bool = true, acceptor: bool = true, hydrophobic: bool = true, aromatic: bool = true, positive: bool = false, negative: bool = false, halogenBond: bool = false) | topMenu | RDKit pharmacophore family flags. Top menu: Chem → Analyze → Pharmacophore Features. |
biochemPropsWidget() | topMenu | Opens the auto-discovery dialog for biochem calculators. Top menu: Chem → Calculate → Biochemical Properties. |
Shorthand recap — <metric> expands to the 12-value BitArrayMetricsNames enum defined above ("Similarity metric enum"); <fp> expands to the 6-value fingerprint enum ("Fingerprint enum"). Used in this section by callChemSimilaritySearch, callChemDiversitySearch, similarityMatrixTopMenu. The dim-reduction entries (chemSpaceTopMenu, getChemSpaceEmbeddings, activityCliffs) hard-narrow <metric> via choices: to the 4-value subset 'Tanimoto' | 'Asymmetric' | 'Cosine' | 'Sokal' — those rows inline the narrowed list directly in the signature.
| Function | Tags | What it does |
|---|---|---|
findSimilar(molStringsColumn: column<Molecule>, molString: string, limit: int = MAX, cutoff: float = 0.0) | — | Returns a DataFrame of the most-similar molecules (Morgan/Tanimoto). |
callChemSimilaritySearch(df: dataframe, col: column<Molecule>, molecule: string, metricName: <metric>, fingerprint: <fp>, limit: int, minScore: float) | — | Underlying version with explicit metric and FP type. |
getSimilarities(molStringsColumn: column<Molecule>, molString: string) | — | Returns just the similarity scores as a DataFrame. |
getDiversities(molStringsColumn: column<Molecule>, limit: int) | — | DataFrame of the most-diverse molecules. |
callChemDiversitySearch(col: column<Molecule>, metricName: <metric>, fingerprint: <fp>, limit: int) | — | Returns indices of diverse picks. |
similarityMatrixTopMenu(table: dataframe, molecules: column<Molecule>, symbols: column, fingerprintType: <fp> = 'Morgan') | topMenu | Full pairwise Tanimoto matrix → opens as a new table. Top menu: Chem → Calculate → Similarity Matrix. |
searchSubstructure(molStringsColumn: column<Molecule>, molString: string, molBlockFailover: string) | — | RDKit substructure search → returns a Column wrapping a BitSet of matches. |
SubstructureSearchTopMenu(molecules: column<Molecule>) | topMenu | Opens the filter sketcher. Top menu: Chem → Search → Substructure Search. |
similaritySearchViewer() / diversitySearchViewer() | — | Returns a ChemSimilarityViewer / ChemDiversityViewer. Add via view.addViewer('Chem Similarity Search'). |
similaritySearchTopMenu() / diversitySearchTopMenu() | topMenu | Top menu shortcuts. Top menu: Chem → Search. |
sortBySimilarity(value: object) | action | Right-click action that sorts the grid by similarity to the picked molecule. |
useAsSubstructureFilter(value: object) | action | Right-click action that adds the picked molecule as a substructure filter. |
synthonSearchFunc(spaceName: string, molecule: string, maxHits: int = 100, searchType: 'substructure' | 'similarity' | 'exact', similarityCutoff?: float = 0.5, includeSynthons?: bool = false) | — | Search in a synthon (REAL-style) chemical space. |
getSynthonSpacesFunc() | — | Lists installed synthon spaces (filenames in Chem/files/synthon-data/). |
removeDuplicates(molecules: list<string>, molecule: string) | — | Removes duplicates of molecule from a list. |
Dim-reduction method enum: 'UMAP' | 't-SNE'.
R-group matching strategy: 'Greedy' | 'GreedyChunks' | 'Exhaustive' | 'NoSymmetrization' | 'GA'.
MMP diff type: 'delta' | 'ratio'. MMP activity scaling: 'none' | 'lg' | '-lg'.
| Function | Tags | What it does |
|---|---|---|
chemSpaceTopMenu(table: dataframe, molecules: column<Molecule>, methodName: 'UMAP' | 't-SNE', similarityMetric: 'Tanimoto' | 'Asymmetric' | 'Cosine' | 'Sokal' = 'Tanimoto', plotEmbeddings: bool = true, options?: object, preprocessingFunction?: func, clusterEmbeddings?: bool, clusterMCS?: bool) | topMenu | Projects molecules to 2D (UMAP / t-SNE) + scatter plot. Top menu: Chem → Analyze → Chemical Space. |
chemSpaceTransform(...) | transform | Transform-tagged version (for data-sync). |
getChemSpaceEmbeddings(col: column<Molecule>, methodName: 'UMAP' | 't-SNE', similarityMetric: 'Tanimoto' | 'Asymmetric' | 'Cosine' | 'Sokal', xAxis: string, yAxis: string, options?: object) | — | Raw embedding without UI. Returns ISequenceSpaceResult. |
getChemSimilaritiesMatrix(dim: int, col: column<Molecule>, df: dataframe, colName: string, simArr: object) | — | Internal — pairwise similarity matrix as columns. |
rGroupsAnalysisMenu() | topMenu | Opens the R-group analysis dialog. Top menu: Chem → Analyze → R-Groups Analysis. |
rGroupDecomposition(df: dataframe, molColName: string, core: string, rGroupName: string, rGroupMatchingStrategy: 'Greedy' | 'GreedyChunks' | 'Exhaustive' | 'NoSymmetrization' | 'GA', onlyMatchAtRGroups?: bool) | — | Programmatic R-group decomposition. Returns RGroupDecompRes. |
mmpAnalysis(table: dataframe, molecules: column<Molecule>, activities: list<column<numerical>>, diffTypes: list<'delta'|'ratio'>, scalings: list<'none'|'lg'|'-lg'>, fragmentCutoff: float = 0.4) | topMenu | Matched Molecular Pairs analysis. Top menu: Chem → Analyze → Matched Molecular Pairs. |
mmpViewer() | — | Returns MatchedMolecularPairsViewer for manual view.addViewer. |
activityCliffs(table: dataframe, molecules: column<Molecule>, activities: column<numerical>, similarity: float = 80, methodName: 'UMAP' | 't-SNE', similarityMetric: 'Tanimoto' | 'Asymmetric' | 'Cosine' | 'Sokal', preprocessingFunction?: func, options?: object, isDemo?: bool, isTest?: bool) | topMenu | Finds pairs of similar molecules with large activity differences. Top menu: Chem → Analyze → Activity Cliffs. |
addScaffoldTree() | topMenu | Adds a ScaffoldTreeViewer to the current view. Top menu: Chem → Analyze → Scaffold Tree. |
scaffoldTreeViewer() | — | Returns ScaffoldTreeViewer for manual use. |
scaffoldTreeFilter() | — | Returns ScaffoldTreeFilter. |
getScaffoldTree(data: dataframe, ringCutoff: int = 10, dischargeAndDeradicalize: bool = false) | — | Returns the scaffold tree as a JSON string. |
substructureFilter() | — | Returns an RDKit-based SubstructureFilter. |
bitbirchClusteringTopMenu(table: dataframe, molecules: column<Molecule>, threshold: float = 0.65, fingerprintType: 'Morgan' | 'RDKit' | 'Pattern' | 'AtomPair' | 'MACCS' | 'TopologicalTorsion' = 'Morgan') | topMenu | O(N) BitBIRCH clustering → cluster ID column. Top menu: Chem → Calculate → BitBIRCH Clustering. |
clusterMCSTopMenu(table: dataframe, molCol: column<Molecule>, clusterCol: column) | topMenu | Most-common substructure per cluster → appends MCS column. Top menu: Chem → Calculate → Cluster MCS. |
performClusterMCS(molCol: column<Molecule>, clusterCol: column) | vectorFunc | Vector form. |
elementalAnalysis(table: dataframe, molecules: column<Molecule>, radarViewer: bool = false, radarGrid: bool = false) | topMenu | Adds atom-count columns; optional radar viewer. Top menu: Chem → Analyze → Elemental Analysis. |
runElementalAnalysis(table: dataframe, molecules: column<Molecule>) | transform | Returns the list of added column names. |
MPO aggregation enum (WEIGHTED_AGGREGATIONS_LIST): 'Average' | 'Sum' | 'Product' | 'Geomean' | 'Min' | 'Max'.
Identifier source enum for mapIdentifiersTransform(fromSource, toSource) — non-exhaustive: 'smiles' | 'inchi' | 'inchi_key' | 'chembl' | 'pubchem' | 'drugbank' | 'pdb' | 'zinc' | 'chebi' | 'kegg_ligand' | 'hmdb' | 'drugcentral' | 'surechembl' | 'bindingdb' | 'fdasrs' | 'lipidmaps' | 'mcule' | 'gtopdb' (full list ≈ 35 UniChem sources). The catalog's standard reverse-lookup path (e.g. InChI key → ChEMBL ID) is mapIdentifiersTransform(table, molecules, 'inchi_key', 'chembl').
| Function | Tags | What it does |
|---|---|---|
_mpo() | topMenu | Opens the MPO Score dialog. Top menu: Chem → Calculate → MPO Score. |
mpoCalculate(df: dataframe, columns: list<column>, profileName: string, aggregation: 'Average' | 'Sum' | 'Product' | 'Geomean' | 'Min' | 'Max', createDesirabilityColumns: bool = false) | — | Computes MPO score + optional per-property desirability columns. |
mpoTransformFunction(df: dataframe, profileName: string, aggregation: 'Average' | 'Sum' | 'Product' | 'Geomean' | 'Min' | 'Max', currentProperties: string, silent: bool = false) | transform | Wrapper used by data-sync. |
mpoProfilesApp(path?: string) | — | Opens the MPO Profiles app. |
getMapIdentifiers() | topMenu | Opens the ID-mapping dialog. Top menu: Chem → Calculate → Map Identifiers. |
mapIdentifiersTransform(table: dataframe, molecules: column<Molecule>, fromSource: <id-source>, toSource: <id-source>) | transform | Appends a column with mapped IDs. This is also the right entry for "InChI key → ChEMBL ID" and similar reverse lookups (chemblIdToSmilesTs goes only ID→SMILES, never the reverse). |
freeTextToSmiles(molfile: string) | — | LLM-backed: parses free text into SMILES. Returns string | null. Use only when names aren't clean enough for namesToSmiles. |
namesToSmiles(data: dataframe, names: column<string>) | topMenu | Looks up compound names → canonical SMILES via ChEMBL. Requires the Chembl package + ChEMBL DB. Use for any "drug name → SMILES" task (aspirin, ibuprofen, caffeine, ...) — wrap the list of names in a DG.Column.fromStrings(...) and call. Top menu: Chem → Transform → Names To Smiles. |
deprotect(table: dataframe, molecules: column<Molecule>, fragment: string) | topMenu | Removes the drawn fragment as a protecting group. Top menu: Chem → Transform → Reactions → Deprotect. |
removeWaterAndSaltsTopMenu(table: dataframe, molecules: column<Molecule>) | topMenu | Strip water/salts. Top menu: Chem → Transform → Reactions → Remove Water and Salts. |
transformationReactionsTopMenu() | topMenu | Run reaction SMARTS over a column of reactants. Top menu: Chem → Transform → Reactions → Transformation. |
twoComponentReactionTopMenu() | topMenu | Cross-product reaction between two columns. Top menu: Chem → Transform → Reactions → Two-Component Reaction. |
transformationReactionsApp() / twoComponentReactionsApp() | — | App entry points (browsePath `Chem |
reactionEnumeratorApp() | — | Forward-reaction library enumeration over building blocks + SMARTS. |
beautifyMols(mols: list<string>) | vectorFunc | Returns clean V3K molblocks. |
convertToV3KViaOCL(mols: list<string>) | — | OCL-based V2K → V3K conversion. |
convertMolNotationAction(col: column<Molecule>) | action | Right-click action wired to convertNotation. |
convertMixtureToSmiles(col: column) | action | Right-click action for ChemicalMixture columns. |
copyAsAction(value: object) / copyAsSmiles / copyAsMolfileV2000 / copyAsMolfileV3000 / copyAsSmarts / copyAsImage | action | Right-click "Copy as ..." actions. |
| Function | Tags | What it does |
|---|---|---|
importSdf(bytes) | — | SDF / MOL → DataFrames. Registered as fileHandler for .sdf, .mol. |
importSmi(bytes) | — | SMI file handler. |
importMol2(bytes) | — | Tripos MOL2 file handler. |
importMol(content) | — | Single MOL file (string). |
saveAsSdf() | — | Export current table as SDF. File exporter: "As SDF…". |
| Function | Tags | What it does |
|---|---|---|
trainChemprop(df: dataframe, predictColumn: column, dataset_type: 'regression' | 'classification' = 'regression', /* +22 more snake_case args */) | — | Trains a Chemprop MPN model via the chem-chemprop Docker container. Returns the model blob. |
applyChemprop(df: dataframe, model: dynamic) | — | Applies a saved Chemprop model → DataFrame with outcome column. |
isApplicableNN(df: dataframe, predictColumn: column) / isInteractiveNN(df: dataframe, predictColumn: column) | — | ML framework hooks (not called directly). |
trainChemprop has 25 snake_case params total (dataset_type, metric,
multiclass_num_classes, num_folds, data_seed, split_sizes, split_type,
activation, atom_messages, message_bias, ensemble_size,
message_hidden_dim, depth, dropout, ffn_hidden_dim, ffn_num_layers,
epochs (default 50), batch_size (default 64), warmup_epochs,
init_lr, max_lr, final_lr, no_descriptor_scaling, ...). Pass at least
predictColumn, dataset_type, and epochs.
Chemprop enum-constrained params (from choices: decorators in source):
dataset_type: 'regression' | 'classification' (default 'regression')metric: 'mse' | 'mae' | 'rmse' | 'bounded-mse' | 'bounded-mae' | 'bounded-rmse' | 'r2' | 'binary-mcc' | 'multiclass-mcc' | 'roc' | 'prc' | 'accuracy' | 'f1' (default 'rmse')split_type: 'random' | 'scaffold_balanced' | 'cv' | 'cv_no_val' | 'kennard_stone' | 'kmeans' | 'random_with_repeated_smiles' (default 'random')activation: 'ReLU' | 'LeakyReLU' | 'PReLU' | 'tanh' | 'SELU' | 'ELU' (default 'ReLU')For the full numeric-default schema, use the MCP datagrok_functions(op:"get", args:{id:'Chem:trainChemprop'})
call before invoking — don't guess param names.
Useful to call via datagrok_exec when you want to render a panel
inline. All return DG.Widget.
All entries below have the panel tag.
| Panel | What |
|---|---|
properties(smiles) | "Chemistry | Properties" |
descriptorsWidget(smiles) | "Chemistry | Descriptors" |
structure2d(molecule) / structure3D(molecule) | "Structure | 2D Structure" / "Structure | 3D Structure" |
identifiers(smiles) | "Structure | Identifiers" |
drugLikeness(smiles) | "Biology | Drug Likeness" |
toxicity(smiles) | "Biology | Toxicity" |
structuralAlerts(smiles) | "Biology | Structural Alerts" |
pharmacophoreFeatures(smiles) | "Biology | Pharmacophore Features" |
mpoWidget(semValue) | "Chemistry | MPO" |
mixtureWidget(mixture) / mixtureTreeWidget(mixture) | "Chemistry | Mixture" / "MixtureTree" |
molColumnPropertyPanel(molColumn) / molColumnHighlights(molColumn) | Rendering / highlighting options for a Molecule column. |
synthonSubstructureSearchWidget(molecule) / synthonSimilaritySearchWidget(molecule) | Synthon space search panels. |
demoSimilarityDiversitySearch (Demo Similarity Search), demoMMPA (Demo
Matched Molecular Pairs), demoRgroupAnalysis (Demo R Group Analysis),
demoMoleculeActivityCliffs (Demo Activity Cliffs), demoChemicalSpace (Demo
Chemical Space), demoScaffold (Demo Scaffold Tree).
init, initChemAutostart — package init lifecycle, runs automatically.getContainer, getChempropError, trainModelChemprop,
applyModelChemprop (used internally by trainChemprop / applyChemprop).SearchSubstructureEditor, ChemSpaceEditor, ActivityCliffsEditor,
MMPEditor, DeprotectEditor, mpoProfileEditor — invoked by the framework.mpoProfilesAppTreeBrowser, checkJsonMpoProfile — UI plumbing.Admetica:...)Docker-backed ADMET model panel covering Absorption, Distribution, Metabolism, Excretion, and Toxicity endpoints.
ADMET category enum for getModels(property): 'Absorption' | 'Distribution' | 'Metabolism' | 'Excretion' | 'Toxicity' (or omit for all).
| Function | Tags | What it does |
|---|---|---|
getModels(property?: 'Absorption' | 'Distribution' | 'Metabolism' | 'Excretion' | 'Toxicity') | — | Lists available endpoints. |
getAdmeProperties(table: dataframe, molecules: column<Molecule>, props?: list<string>) | vectorFunc, join(table) | Main entry point. Predicts ADMET for a column → returns a DataFrame appended to table. props is a list of model names from getModels(); omit for all. |
getAdmePropertiesSingle(molecule: string) | — | One molecule → DataFrame of ADMET predictions. |
admeticaMenu(table: dataframe, molecules: column<Molecule>, template: string, models: list<string>, addPiechart: bool, addForm: bool) | topMenu | Same as getAdmeProperties but with optional pie-chart and form viewers. Top menu: Chem → Admetica → Calculate. |
admeticaHT(table: dataframe, molecules: column<Molecule>, absorption: list<string>, distribution: list<string>, metabolism: list<string>, excretion: list<string>) | — | Hit Triage variant — pass per-category model lists (each from getModels('<Category>')). |
admeticaWidget(semValue: object) | panel | Per-molecule context panel: "Biology | Admetica". |
runAdmeticaApplication() / admeticaDemo() | — | Opens the Admetica app / demo (browsePath Chem). |
Skipped: info (debug), AdmeticaEditor (UI editor).
Generative chemistry (Reinvent4), molecular docking (Docking / Boltz1) are intentionally NOT covered by this catalog. Open the matching skill directly if the user asks for those — they're available as registered functions but not described here.
For ChEMBL, MolTrack, HitTriage, and Curves (compound registration, hit triage
workflows, dose-response analysis, bioactivity DBs), see the sibling skill
datagrok-chem-data.
The Compute package exists but contains no small-molecule-specific functions
— it provides the RichFunctionView and Pipeline scaffolding plus
non-cheminformatics demo scripts (Lorenz attractor, Newton cooling, Lotka-
Volterra, antibody Fab-arm exchange). Skip it unless the user asks for the
RichFunctionView UI shell or compute pipeline framework.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Add support for a new curve data format in the Curves package converter system
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Create info panels that appear in the context panel based on semantic types
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Add a new single-objective optimization algorithm to the sci-comp library. Use when the user asks to implement a new optimizer (e.g. gradient descent, BFGS, simulated annealing, differential evolution).
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Add unit tests to a Datagrok package
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Answer a "how do I …" question about the platform with a Gherkin scenario on @datagrok-libraries/bdd that is filmed into a how-to video (grok-bdd guide), so the answer is demonstrated, sent as a video plus numbered steps, and kept as a regression test; the same scenarios, filmed in help mode, are the GIFs of the help pages
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Translate hand-written Playwright specs (or any existing UI tests) into Gherkin features on @datagrok-libraries/bdd, then prove the features test what they claim by backward-matching them against the originals with independent reviewers, and fix the gaps in the core, the library and the features
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.