@delta-infra/cli 1.1.17 → 1.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +520 -506
- package/checksums.txt +5 -5
- package/package.json +3 -2
- package/scripts/install-wizard.js +688 -701
- package/scripts/install.js +442 -442
- package/scripts/run.js +65 -65
- package/skills/delta-protein/AGENTS.md +73 -0
- package/skills/delta-protein/SKILL.md +389 -0
- package/skills/delta-protein/agents/openai.yaml +4 -0
- package/skills/delta-protein/references/bfitter.md +64 -0
- package/skills/delta-protein/references/catapro_predict.md +63 -0
- package/skills/delta-protein/references/catpred_predict.md +65 -0
- package/skills/delta-protein/references/caver_tunnel_analyze.md +63 -0
- package/skills/delta-protein/references/consensus_mutation.md +61 -0
- package/skills/delta-protein/references/consurf_predict.md +67 -0
- package/skills/delta-protein/references/crop_sequence.md +69 -0
- package/skills/delta-protein/references/dock.md +82 -0
- package/skills/delta-protein/references/dock_score.md +70 -0
- package/skills/delta-protein/references/easifa_predict_active_site.md +70 -0
- package/skills/delta-protein/references/ephod_predict_mutation.md +66 -0
- package/skills/delta-protein/references/ephod_predict_protein.md +61 -0
- package/skills/delta-protein/references/esmfold2_predict.md +67 -0
- package/skills/delta-protein/references/evcouplings_mutation.md +64 -0
- package/skills/delta-protein/references/fasta_to_sequence.md +59 -0
- package/skills/delta-protein/references/foldseek.md +61 -0
- package/skills/delta-protein/references/generate_msa.md +61 -0
- package/skills/delta-protein/references/interpro_analyze.md +63 -0
- package/skills/delta-protein/references/mpnn_design_sequence.md +71 -0
- package/skills/delta-protein/references/multievolve.md +73 -0
- package/skills/delta-protein/references/pisa_query.md +70 -0
- package/skills/delta-protein/references/plip_analyze.md +65 -0
- package/skills/delta-protein/references/pocket_prediction.md +63 -0
- package/skills/delta-protein/references/protein_design.md +65 -0
- package/skills/delta-protein/references/protein_evolution.md +77 -0
- package/skills/delta-protein/references/protein_sol_predict_mutation.md +66 -0
- package/skills/delta-protein/references/protein_sol_predict_protein.md +61 -0
- package/skills/delta-protein/references/protenix.md +66 -0
- package/skills/delta-protein/references/protrek_search.md +90 -0
- package/skills/delta-protein/references/pubchem_search.md +68 -0
- package/skills/delta-protein/references/pubmed_search.md +79 -0
- package/skills/delta-protein/references/reap_design_primer.md +69 -0
- package/skills/delta-protein/references/rfd3_design.md +65 -0
- package/skills/delta-protein/references/structure_to_sequence.md +61 -0
- package/skills/delta-protein/references/summarize_result.md +68 -0
- package/skills/delta-protein/references/surface_charge.md +84 -0
- package/skills/delta-protein/references/uniprot_batch_query.md +63 -0
- package/skills/delta-protein/references/uniprot_query.md +64 -0
- package/skills/delta-protein/references/zero_shot_mutant_candidates.md +76 -0
- package/skills/delta-protein/scripts/gen_references.py +167 -0
- package/skills/delta-protein/scripts/output_metadata.json +275 -0
- package/skills/delta-sandbox/SKILL.md +388 -388
- package/skills/delta-sandbox/agents/openai.yaml +4 -4
- package/skills/delta-sandbox/references/commands.md +58 -58
- package/skills/delta-sandbox/references/lifecycle.md +100 -100
- package/skills/delta-sandbox/references/recipes.md +138 -138
- package/skills/delta-science/AGENTS.md +47 -47
- package/skills/delta-science/SKILL.md +227 -185
- package/skills/delta-science/agents/openai.yaml +4 -4
- package/skills/delta-science/references/antbo.md +105 -100
- package/skills/delta-science/references/delta-bo.md +92 -89
- package/skills/delta-science/references/gsasii.md +118 -116
- package/skills/delta-science/references/lammps.md +68 -66
- package/skills/delta-science/references/ldm-bo.md +132 -129
- package/skills/delta-science/references/materials-design.md +130 -118
- package/skills/delta-science/references/pubchem.md +128 -126
- package/skills/delta-science/references/pymatgen.md +69 -68
- package/skills/delta-science/references/qe.md +134 -125
- package/skills/delta-science/references/rdkit.md +141 -138
- package/skills/delta-science/references/strbo.md +95 -87
- package/skills/delta-science/references/synbo.md +201 -198
- package/skills/delta-science/references/xrd.md +619 -101
- package/skills/delta-science/scripts/catalog.py +92 -92
- package/skills/delta-science/scripts/generated_catalog.py +69 -69
- package/skills/delta-science/scripts/invoke.py +346 -346
- package/skills/delta-shared/SKILL.md +113 -111
- package/skills/delta-shared/agents/openai.yaml +4 -4
- package/skills/manifest.json +20 -19
|
@@ -1,118 +1,130 @@
|
|
|
1
|
-
# Materials Design
|
|
2
|
-
|
|
3
|
-
Materials Design
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
`
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
| `/chem/materials-design/
|
|
20
|
-
| `/chem/materials-design/v1/
|
|
21
|
-
| `/chem/materials-design/v1/jobs
|
|
22
|
-
| `/chem/materials-design/v1/jobs/{job_id}
|
|
23
|
-
| `/chem/materials-design/v1/jobs/{job_id}/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
delta-cli science
|
|
37
|
-
--
|
|
38
|
-
delta-cli science
|
|
39
|
-
--
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
`
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
`
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
1
|
+
# Materials Design reference
|
|
2
|
+
|
|
3
|
+
Materials Design builds surrogate models from experimental or computational materials tables,
|
|
4
|
+
validates models, defines feasible candidate spaces, and ranks candidates with uncertainty
|
|
5
|
+
estimates. Recommendations are hypotheses to validate, not confirmed materials, synthesis routes
|
|
6
|
+
or experimental results.
|
|
7
|
+
|
|
8
|
+
The routing label for this reference is `materials-design`. Use the current output of
|
|
9
|
+
`delta-cli science list` and `delta-cli science endpoints list <tool>` as the authority for
|
|
10
|
+
`tools.name` and `tool_endpoints.name`. The Gateway paths below describe the service contract;
|
|
11
|
+
they are not URLs to construct or access directly.
|
|
12
|
+
|
|
13
|
+
## Service boundary
|
|
14
|
+
|
|
15
|
+
The service provides the following capabilities:
|
|
16
|
+
|
|
17
|
+
| Service path | Purpose | Result boundary |
|
|
18
|
+
| --- | --- | --- |
|
|
19
|
+
| `/chem/materials-design/health` | Gateway-to-service readiness check | `status`, dependency availability, limits |
|
|
20
|
+
| `/chem/materials-design/v1/capabilities` | Input formats, models, validation modes and limits | Capability catalogue |
|
|
21
|
+
| `/chem/materials-design/v1/jobs` | Upload training/candidate tables and create an asynchronous job | `202`, `job_id`, status and links |
|
|
22
|
+
| `/chem/materials-design/v1/jobs/{job_id}` | Read job status | `status`, `result_status`, result, warnings |
|
|
23
|
+
| `/chem/materials-design/v1/jobs/{job_id}/cancel` | Request cancellation | Cancellation request/final state |
|
|
24
|
+
| `/chem/materials-design/v1/jobs/{job_id}/artifacts` | List artifacts | name, size, media_type, SHA-256 |
|
|
25
|
+
| `/chem/materials-design/v1/jobs/{job_id}/artifacts/{path}` | Download one artifact | Raw report/JSON/CSV/figure bytes |
|
|
26
|
+
|
|
27
|
+
Route all JSON/query calls through:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
delta-cli science invoke --tool TOOL --endpoint ENDPOINT --data JSON
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Submit training tables through the controlled file adapter:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
delta-cli science file invoke --tool materials-design --endpoint job-submit \
|
|
37
|
+
--file train.xlsx --candidate-file candidates.xlsx --data CONFIG_JSON
|
|
38
|
+
delta-cli science task submit --tool materials-design --operation job-status \
|
|
39
|
+
--input '{"job_id":"mdjob_..."}' --wait
|
|
40
|
+
delta-cli science file download --tool materials-design --endpoint artifact-download \
|
|
41
|
+
--params '{"job_id":"mdjob_...","artifact_path":"report.html"}' --output report.html
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Use `--params JSON` only for read-only query operations. If a new tool is absent from the
|
|
45
|
+
catalogue, or the catalogue does not return enough request-schema detail, stop and report that it
|
|
46
|
+
is not exposed. Do not guess endpoint names, bodies or compatibility aliases.
|
|
47
|
+
|
|
48
|
+
## CLI capability boundaries
|
|
49
|
+
|
|
50
|
+
The raw service request for `POST /v1/jobs` is `multipart/form-data` and contains at least:
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
file=<training table>
|
|
54
|
+
candidate_file=<optional candidate table>
|
|
55
|
+
config=<serialized JSON object>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
`science invoke` accepts only a JSON object body and JSON query parameters; it cannot express
|
|
59
|
+
multipart data. Do not disguise a local path or base64 as a file field. Artifact downloads are
|
|
60
|
+
also raw bytes: save and verify them with `science file download`, and do not treat them as
|
|
61
|
+
ordinary JSON results. Do not call `materials-design-service:8900` or connect directly to the
|
|
62
|
+
preflight Gateway.
|
|
63
|
+
|
|
64
|
+
## Inputs and configuration
|
|
65
|
+
|
|
66
|
+
Before modelling, confirm:
|
|
67
|
+
|
|
68
|
+
- `feature_columns`, `controllable_columns`, `target_column` or `objectives`;
|
|
69
|
+
- identifier, metadata, leakage, post-measurement and group/time columns, and their units;
|
|
70
|
+
- objective direction, feasibility constraints, candidate table or candidate-generation rules;
|
|
71
|
+
- missing values, duplicate samples, measurement conditions, data sources and validation split strategy.
|
|
72
|
+
|
|
73
|
+
Core fields for a single-objective configuration:
|
|
74
|
+
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"feature_columns": ["Bi", "In", "Ti"],
|
|
78
|
+
"controllable_columns": ["Bi", "In", "Ti"],
|
|
79
|
+
"identifier_columns": ["sample_id"],
|
|
80
|
+
"target_column": "T",
|
|
81
|
+
"target_direction": "maximize",
|
|
82
|
+
"validation": {"strategy": "kfold", "n_splits": 5},
|
|
83
|
+
"model_names": ["ExtraTrees", "GPR", "Ridge"],
|
|
84
|
+
"random_state": 42,
|
|
85
|
+
"recommendation_count": 10
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
For multiple objectives, use `objectives: [{"target_column": "...", "direction": "maximize|minimize"}]`
|
|
90
|
+
and explicit Pareto/EHVI settings. Prefer the user's `candidate_file`. If the service generates
|
|
91
|
+
candidates from observed ranges, explicitly preserve steps, hard constraints, composition
|
|
92
|
+
closure, `max_candidates` and `allow_extrapolation`. Do not optimise identifier, post-measurement
|
|
93
|
+
or leakage columns, or out-of-domain points without authorisation. Do not extrapolate arbitrarily
|
|
94
|
+
to fill the candidate count.
|
|
95
|
+
|
|
96
|
+
## Results handling
|
|
97
|
+
|
|
98
|
+
Assess job `status` and `result_status` separately:
|
|
99
|
+
|
|
100
|
+
- `status`: `pending`, `running`, `completed`, `failed` or `cancelled`;
|
|
101
|
+
- `result_status`: `complete`, `exploratory`, `readiness_only` or `failed`.
|
|
102
|
+
|
|
103
|
+
`202` means only that the service accepted or queued the job; it does not mean model training is
|
|
104
|
+
complete. `completed` does not mean the ranking is reliable. Say that the data and validation
|
|
105
|
+
support candidate ranking only when `result_status` is `complete`. Treat `exploratory` only as a
|
|
106
|
+
learning hypothesis; for `readiness_only`, read the readiness information and request missing
|
|
107
|
+
inputs; report `failed` as returned. Always preserve the returned validation, ranking, warnings
|
|
108
|
+
and error.
|
|
109
|
+
|
|
110
|
+
Keep predictions distinct from observations and cross-validation predictions. At minimum, report
|
|
111
|
+
data coverage, the split, model comparisons, uncertainty calibration, candidate feasibility,
|
|
112
|
+
in-domain/out-of-domain status, EI/PI/UCB or Pareto settings, and the plan for experimental
|
|
113
|
+
validation. Do not present model variance as experimental error or candidate predictions as
|
|
114
|
+
measured values.
|
|
115
|
+
|
|
116
|
+
## Artifacts and errors
|
|
117
|
+
|
|
118
|
+
Read artifacts only when the user asks for them or the workflow requires them. Verify downloaded
|
|
119
|
+
content against the `size`, `media_type` and SHA-256 returned by the listing; do not infer formats
|
|
120
|
+
from filenames. The service may produce `report.html`, `result.json`,
|
|
121
|
+
`data_dictionary.json`, `model_comparison.csv`, OOF/residual/calibration files,
|
|
122
|
+
`search_space.json`, `candidate_predictions.csv`, `shortlist.csv`, `recommendation_views.csv`,
|
|
123
|
+
`pareto_front.csv` and `figures/*`.
|
|
124
|
+
|
|
125
|
+
Common terminal conditions include configuration/file-format errors, a missing target or
|
|
126
|
+
candidate space, upload/row/candidate-count limits being exceeded, an unready backend, or a
|
|
127
|
+
missing job or artifact. Do not retry blindly after a submission timeout or disconnection: a
|
|
128
|
+
multipart upload may already have created a job, so first check whether a `job_id` was returned.
|
|
129
|
+
Do not replace a failure or empty recommendation with local regression, GP, random numbers or a
|
|
130
|
+
manual ranking.
|
|
@@ -1,126 +1,128 @@
|
|
|
1
|
-
# PubChem
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
`
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
`
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
`
|
|
46
|
-
`
|
|
47
|
-
`
|
|
48
|
-
`
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
"
|
|
111
|
-
"
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
"
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
"
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
1
|
+
# PubChem reference
|
|
2
|
+
|
|
3
|
+
Call this tool only through `delta-cli science invoke`. Business responses are in the top-level
|
|
4
|
+
CLI `data`; read only the fields described here and do not search recursively. URLs in this file
|
|
5
|
+
explain the endpoint schema and do not authorise direct HTTP access. For a basic lookup by a
|
|
6
|
+
single common name, call `compound-summary` once. For multiple names, call
|
|
7
|
+
`compound-batch-summary` once with a default body containing only `identifiers` and
|
|
8
|
+
`namespace:"name"`; do not call health or schema first.
|
|
9
|
+
|
|
10
|
+
Project results directly from `data`. Batch records are in `data.results[*]`, the original label
|
|
11
|
+
is in `input`, and properties are nested under `properties`. Use this fixed SMILES fallback
|
|
12
|
+
order: `CanonicalSMILES -> ConnectivitySMILES -> SMILES -> IsomericSMILES`. Do not treat PubChem
|
|
13
|
+
`XLogP` and RDKit `MolLogP` as interchangeable; do not fill a `not_found` result with local
|
|
14
|
+
calculations.
|
|
15
|
+
|
|
16
|
+
Namespaces: `cid`, `name`, `smiles`, `inchi`, `inchikey`, `formula`.
|
|
17
|
+
|
|
18
|
+
## Health
|
|
19
|
+
|
|
20
|
+
Operation: `health`; no request body.
|
|
21
|
+
|
|
22
|
+
## Resolve CIDs
|
|
23
|
+
|
|
24
|
+
Operation: `compound-resolve-cids`.
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{"identifier": "aspirin", "namespace": "name", "max_records": 20}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`max_records`: 1-100.
|
|
31
|
+
|
|
32
|
+
## Properties
|
|
33
|
+
|
|
34
|
+
Operation: `compound-properties`.
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"identifier": "2244",
|
|
39
|
+
"namespace": "cid",
|
|
40
|
+
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "IUPACName"]
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Allowed properties include `MolecularFormula`, `MolecularWeight`,
|
|
45
|
+
`CanonicalSMILES`, `IsomericSMILES`, `SMILES`, `ConnectivitySMILES`,
|
|
46
|
+
`IUPACName`, `InChI`, `InChIKey`, `XLogP`, `TPSA`, `HBondDonorCount`,
|
|
47
|
+
`HBondAcceptorCount`, `RotatableBondCount`, `ExactMass`, `MonoisotopicMass`,
|
|
48
|
+
`Charge`, `HeavyAtomCount`, `Complexity`, `CovalentUnitCount`,
|
|
49
|
+
`DefinedAtomStereoCount`, `UndefinedAtomStereoCount`, `DefinedBondStereoCount`,
|
|
50
|
+
`UndefinedBondStereoCount`, and `IsotopeAtomCount`.
|
|
51
|
+
|
|
52
|
+
## Synonyms
|
|
53
|
+
|
|
54
|
+
Operation: `compound-synonyms`.
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{"identifier": "2244", "namespace": "cid", "max_synonyms": 50}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
`max_synonyms`: 1-500.
|
|
61
|
+
|
|
62
|
+
## Summary
|
|
63
|
+
|
|
64
|
+
Operation: `compound-summary`.
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"identifier": "aspirin",
|
|
69
|
+
"namespace": "name",
|
|
70
|
+
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "IUPACName"],
|
|
71
|
+
"synonym_limit": 20
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
`synonym_limit`: 0-100. Use this endpoint for general compound lookup because
|
|
76
|
+
it resolves CID, selected properties, and synonyms in one call.
|
|
77
|
+
|
|
78
|
+
Response fields include `valid`, `cid`, `properties`, `properties_raw`,
|
|
79
|
+
`aliases`, `synonyms`, and `metadata`. Numeric properties are coerced to JSON
|
|
80
|
+
numbers when possible. Requested SMILES aliases are filled when PubChem returns
|
|
81
|
+
an equivalent key such as `ConnectivitySMILES`.
|
|
82
|
+
|
|
83
|
+
## Batch Summary
|
|
84
|
+
|
|
85
|
+
Operation: `compound-batch-summary`.
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"identifiers": ["aspirin", "ibuprofen", "caffeine"],
|
|
90
|
+
"namespace": "name",
|
|
91
|
+
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "XLogP", "TPSA"],
|
|
92
|
+
"synonym_limit": 5
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Limits: 1-100 identifiers. The response preserves input order and includes
|
|
97
|
+
per-item errors:
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"valid": false,
|
|
102
|
+
"namespace": "name",
|
|
103
|
+
"properties_requested": ["CanonicalSMILES"],
|
|
104
|
+
"results": [
|
|
105
|
+
{
|
|
106
|
+
"input": "aspirin",
|
|
107
|
+
"valid": true,
|
|
108
|
+
"cid": 2244,
|
|
109
|
+
"properties": {
|
|
110
|
+
"CanonicalSMILES": "CC(=O)Oc1ccccc1C(=O)O",
|
|
111
|
+
"ConnectivitySMILES": "CC(=O)Oc1ccccc1C(=O)O",
|
|
112
|
+
"_aliases": {"CanonicalSMILES": "ConnectivitySMILES"},
|
|
113
|
+
"properties_raw": {}
|
|
114
|
+
},
|
|
115
|
+
"properties_raw": {},
|
|
116
|
+
"aliases": {"CanonicalSMILES": "ConnectivitySMILES"},
|
|
117
|
+
"synonyms": []
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"input": "bad-name",
|
|
121
|
+
"valid": false,
|
|
122
|
+
"error": "not found"
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"count": 2,
|
|
126
|
+
"failed_count": 1
|
|
127
|
+
}
|
|
128
|
+
```
|