@delta-infra/cli 1.1.19 → 1.1.23
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 +511 -520
- package/checksums.txt +5 -5
- package/package.json +1 -1
- package/scripts/install-wizard.js +689 -688
- package/scripts/install.js +442 -442
- package/scripts/run.js +65 -65
- package/skills/delta-protein/AGENTS.md +72 -72
- package/skills/delta-protein/SKILL.md +388 -388
- package/skills/delta-protein/agents/openai.yaml +3 -3
- package/skills/delta-protein/references/bfitter.md +63 -63
- package/skills/delta-protein/references/catapro_predict.md +62 -62
- package/skills/delta-protein/references/catpred_predict.md +64 -64
- package/skills/delta-protein/references/caver_tunnel_analyze.md +62 -62
- package/skills/delta-protein/references/consensus_mutation.md +60 -60
- package/skills/delta-protein/references/consurf_predict.md +66 -66
- package/skills/delta-protein/references/crop_sequence.md +68 -68
- package/skills/delta-protein/references/dock.md +81 -81
- package/skills/delta-protein/references/dock_score.md +69 -69
- package/skills/delta-protein/references/easifa_predict_active_site.md +69 -69
- package/skills/delta-protein/references/ephod_predict_mutation.md +65 -65
- package/skills/delta-protein/references/ephod_predict_protein.md +60 -60
- package/skills/delta-protein/references/esmfold2_predict.md +66 -66
- package/skills/delta-protein/references/evcouplings_mutation.md +63 -63
- package/skills/delta-protein/references/fasta_to_sequence.md +58 -58
- package/skills/delta-protein/references/foldseek.md +60 -60
- package/skills/delta-protein/references/generate_msa.md +60 -60
- package/skills/delta-protein/references/interpro_analyze.md +62 -62
- package/skills/delta-protein/references/mpnn_design_sequence.md +70 -70
- package/skills/delta-protein/references/multievolve.md +72 -72
- package/skills/delta-protein/references/pisa_query.md +69 -69
- package/skills/delta-protein/references/plip_analyze.md +64 -64
- package/skills/delta-protein/references/pocket_prediction.md +62 -62
- package/skills/delta-protein/references/protein_design.md +64 -64
- package/skills/delta-protein/references/protein_evolution.md +76 -76
- package/skills/delta-protein/references/protein_sol_predict_mutation.md +65 -65
- package/skills/delta-protein/references/protein_sol_predict_protein.md +60 -60
- package/skills/delta-protein/references/protenix.md +65 -65
- package/skills/delta-protein/references/protrek_search.md +89 -89
- package/skills/delta-protein/references/pubchem_search.md +67 -67
- package/skills/delta-protein/references/pubmed_search.md +78 -78
- package/skills/delta-protein/references/reap_design_primer.md +68 -68
- package/skills/delta-protein/references/rfd3_design.md +64 -64
- package/skills/delta-protein/references/structure_to_sequence.md +60 -60
- package/skills/delta-protein/references/summarize_result.md +67 -67
- package/skills/delta-protein/references/surface_charge.md +83 -83
- package/skills/delta-protein/references/uniprot_batch_query.md +62 -62
- package/skills/delta-protein/references/uniprot_query.md +63 -63
- package/skills/delta-protein/references/zero_shot_mutant_candidates.md +75 -75
- package/skills/delta-protein/scripts/gen_references.py +166 -166
- package/skills/delta-protein/scripts/output_metadata.json +274 -274
- package/skills/delta-sandbox/SKILL.md +388 -388
- package/skills/delta-sandbox/agents/openai.yaml +4 -4
- package/skills/delta-sandbox/references/commands.md +71 -58
- package/skills/delta-sandbox/references/lifecycle.md +101 -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 -227
- package/skills/delta-science/agents/openai.yaml +4 -4
- package/skills/delta-science/references/antbo.md +105 -105
- package/skills/delta-science/references/delta-bo.md +92 -92
- package/skills/delta-science/references/gsasii.md +118 -118
- package/skills/delta-science/references/lammps.md +68 -68
- package/skills/delta-science/references/ldm-bo.md +132 -132
- package/skills/delta-science/references/materials-design.md +130 -130
- package/skills/delta-science/references/pubchem.md +128 -128
- package/skills/delta-science/references/pymatgen.md +69 -69
- package/skills/delta-science/references/qe.md +134 -134
- package/skills/delta-science/references/rdkit.md +141 -141
- package/skills/delta-science/references/strbo.md +95 -95
- package/skills/delta-science/references/synbo.md +201 -201
- package/skills/delta-science/references/xrd.md +154 -170
- 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 +115 -113
- package/skills/delta-shared/agents/openai.yaml +4 -4
- package/skills/manifest.json +20 -20
|
@@ -1,141 +1,141 @@
|
|
|
1
|
-
# RDKit 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. This document
|
|
5
|
-
records operation schemas and does not authorise direct HTTP access.
|
|
6
|
-
|
|
7
|
-
Make only the calls needed to meet the request. To validate, canonicalise and calculate basic
|
|
8
|
-
descriptors in one request, use `batch-parse-describe` with the `molecules:[{id,smiles}]` payload;
|
|
9
|
-
do not split it into parse and descriptors calls. For all-pairs similarity across multiple
|
|
10
|
-
molecules, use one `similarity-matrix` call. Its fixed ranking fields are `a`, `b` and
|
|
11
|
-
`similarity`, not `i`, `j` or `score`.
|
|
12
|
-
|
|
13
|
-
Report only descriptors actually present in the business response. When rendering a PNG, decode
|
|
14
|
-
only the field specified in the documentation and verify that the bytes begin with
|
|
15
|
-
`89 50 4e 47 0d 0a 1a 0a`; do not save a JSON envelope as an image.
|
|
16
|
-
|
|
17
|
-
## Health
|
|
18
|
-
|
|
19
|
-
Operation: `health`; no request body.
|
|
20
|
-
|
|
21
|
-
## Parse
|
|
22
|
-
|
|
23
|
-
Operation: `parse`.
|
|
24
|
-
|
|
25
|
-
```json
|
|
26
|
-
{"input": "CCO", "format": "smiles", "sanitize": true}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Formats: `smiles`, `inchi`, `molblock`.
|
|
30
|
-
|
|
31
|
-
Key response fields in `data`: `valid`, `canonical_smiles`, `formula`,
|
|
32
|
-
`molecular_weight`, `exact_molecular_weight`, `inchi_key`, `atom_count`,
|
|
33
|
-
`heavy_atom_count`, `bond_count`, `warnings`, `error`.
|
|
34
|
-
|
|
35
|
-
## Descriptors
|
|
36
|
-
|
|
37
|
-
Operation: `descriptors`.
|
|
38
|
-
|
|
39
|
-
```json
|
|
40
|
-
{"smiles": "CCO", "descriptor_set": "basic", "sanitize": true}
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
`descriptor_set` currently supports `basic`. Descriptor keys include `Formula`,
|
|
44
|
-
`MolWt`, `ExactMolWt`, `HeavyAtomMolWt`, `TPSA`, `MolLogP`, `NumHDonors`,
|
|
45
|
-
`NumHAcceptors`, `NumRotatableBonds`, `RingCount`, `FractionCSP3`,
|
|
46
|
-
`HeavyAtomCount`, `AtomCount`, and `BondCount`.
|
|
47
|
-
|
|
48
|
-
## Batch Descriptors
|
|
49
|
-
|
|
50
|
-
Operation: `batch-descriptors`.
|
|
51
|
-
|
|
52
|
-
```json
|
|
53
|
-
{"smiles": ["CCO", "c1ccccc1"], "descriptor_set": "basic", "sanitize": true}
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
Limits: 1-500 SMILES.
|
|
57
|
-
|
|
58
|
-
## Batch Parse Describe
|
|
59
|
-
|
|
60
|
-
Operation: `batch-parse-describe`.
|
|
61
|
-
|
|
62
|
-
```json
|
|
63
|
-
{
|
|
64
|
-
"molecules": [
|
|
65
|
-
{"id": "aspirin", "smiles": "CC(=O)Oc1ccccc1C(=O)O"},
|
|
66
|
-
{"id": "caffeine", "smiles": "Cn1cnc2c1c(=O)n(C)c(=O)n2C"}
|
|
67
|
-
],
|
|
68
|
-
"descriptor_set": "basic",
|
|
69
|
-
"fingerprint": {"type": "morgan", "radius": 2, "n_bits": 2048},
|
|
70
|
-
"sanitize": true
|
|
71
|
-
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
Limits: 1-500 molecules. Returns per-item `valid`, `canonical_smiles`, parse
|
|
75
|
-
fields, `descriptors`, optional `fingerprint_metadata`, `on_bits`, `bit_count`,
|
|
76
|
-
`warnings`, and `error`.
|
|
77
|
-
|
|
78
|
-
## Render
|
|
79
|
-
|
|
80
|
-
Operation: `render`.
|
|
81
|
-
|
|
82
|
-
```json
|
|
83
|
-
{"smiles": "CCO", "image_format": "svg", "width": 450, "height": 320}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Image formats: `svg`, `png`. SVG returns text; PNG returns base64.
|
|
87
|
-
Width/height range: 150-2000.
|
|
88
|
-
|
|
89
|
-
## Fingerprint
|
|
90
|
-
|
|
91
|
-
Operation: `fingerprint`.
|
|
92
|
-
|
|
93
|
-
```json
|
|
94
|
-
{"smiles": "CCO", "radius": 2, "n_bits": 2048}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Morgan fingerprint parameters: `radius` 1-6, `n_bits` 128-8192.
|
|
98
|
-
|
|
99
|
-
## Similarity
|
|
100
|
-
|
|
101
|
-
Operation: `similarity`.
|
|
102
|
-
|
|
103
|
-
```json
|
|
104
|
-
{"query_smiles": "CCO", "target_smiles": "CCCO", "radius": 2, "n_bits": 2048}
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
Returns Tanimoto similarity.
|
|
108
|
-
|
|
109
|
-
## Similarity Matrix
|
|
110
|
-
|
|
111
|
-
Operation: `similarity-matrix`.
|
|
112
|
-
|
|
113
|
-
```json
|
|
114
|
-
{
|
|
115
|
-
"molecules": [
|
|
116
|
-
{"id": "aspirin", "smiles": "CC(=O)Oc1ccccc1C(=O)O"},
|
|
117
|
-
{"id": "ibuprofen", "smiles": "CC(C)Cc1ccc(cc1)[C@@H](C)C(=O)O"}
|
|
118
|
-
],
|
|
119
|
-
"fingerprint": {"type": "morgan", "radius": 2, "n_bits": 2048},
|
|
120
|
-
"sanitize": true
|
|
121
|
-
}
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
Returns `matrix` in input order and `ranked_pairs` sorted by descending
|
|
125
|
-
Tanimoto similarity. Each ranked record is named, not index-based:
|
|
126
|
-
|
|
127
|
-
```json
|
|
128
|
-
{"a":"aspirin","b":"ibuprofen","similarity":0.195122}
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
Do not expect `i`, `j`, or `score` fields.
|
|
132
|
-
|
|
133
|
-
## Substructure
|
|
134
|
-
|
|
135
|
-
Operation: `substructure`.
|
|
136
|
-
|
|
137
|
-
```json
|
|
138
|
-
{"query_smarts": "c1ccccc1", "target_smiles": ["c1ccccc1", "CCO"]}
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
Limits: SMARTS max length 5000; target list size 1-500.
|
|
1
|
+
# RDKit 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. This document
|
|
5
|
+
records operation schemas and does not authorise direct HTTP access.
|
|
6
|
+
|
|
7
|
+
Make only the calls needed to meet the request. To validate, canonicalise and calculate basic
|
|
8
|
+
descriptors in one request, use `batch-parse-describe` with the `molecules:[{id,smiles}]` payload;
|
|
9
|
+
do not split it into parse and descriptors calls. For all-pairs similarity across multiple
|
|
10
|
+
molecules, use one `similarity-matrix` call. Its fixed ranking fields are `a`, `b` and
|
|
11
|
+
`similarity`, not `i`, `j` or `score`.
|
|
12
|
+
|
|
13
|
+
Report only descriptors actually present in the business response. When rendering a PNG, decode
|
|
14
|
+
only the field specified in the documentation and verify that the bytes begin with
|
|
15
|
+
`89 50 4e 47 0d 0a 1a 0a`; do not save a JSON envelope as an image.
|
|
16
|
+
|
|
17
|
+
## Health
|
|
18
|
+
|
|
19
|
+
Operation: `health`; no request body.
|
|
20
|
+
|
|
21
|
+
## Parse
|
|
22
|
+
|
|
23
|
+
Operation: `parse`.
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{"input": "CCO", "format": "smiles", "sanitize": true}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Formats: `smiles`, `inchi`, `molblock`.
|
|
30
|
+
|
|
31
|
+
Key response fields in `data`: `valid`, `canonical_smiles`, `formula`,
|
|
32
|
+
`molecular_weight`, `exact_molecular_weight`, `inchi_key`, `atom_count`,
|
|
33
|
+
`heavy_atom_count`, `bond_count`, `warnings`, `error`.
|
|
34
|
+
|
|
35
|
+
## Descriptors
|
|
36
|
+
|
|
37
|
+
Operation: `descriptors`.
|
|
38
|
+
|
|
39
|
+
```json
|
|
40
|
+
{"smiles": "CCO", "descriptor_set": "basic", "sanitize": true}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`descriptor_set` currently supports `basic`. Descriptor keys include `Formula`,
|
|
44
|
+
`MolWt`, `ExactMolWt`, `HeavyAtomMolWt`, `TPSA`, `MolLogP`, `NumHDonors`,
|
|
45
|
+
`NumHAcceptors`, `NumRotatableBonds`, `RingCount`, `FractionCSP3`,
|
|
46
|
+
`HeavyAtomCount`, `AtomCount`, and `BondCount`.
|
|
47
|
+
|
|
48
|
+
## Batch Descriptors
|
|
49
|
+
|
|
50
|
+
Operation: `batch-descriptors`.
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{"smiles": ["CCO", "c1ccccc1"], "descriptor_set": "basic", "sanitize": true}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Limits: 1-500 SMILES.
|
|
57
|
+
|
|
58
|
+
## Batch Parse Describe
|
|
59
|
+
|
|
60
|
+
Operation: `batch-parse-describe`.
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"molecules": [
|
|
65
|
+
{"id": "aspirin", "smiles": "CC(=O)Oc1ccccc1C(=O)O"},
|
|
66
|
+
{"id": "caffeine", "smiles": "Cn1cnc2c1c(=O)n(C)c(=O)n2C"}
|
|
67
|
+
],
|
|
68
|
+
"descriptor_set": "basic",
|
|
69
|
+
"fingerprint": {"type": "morgan", "radius": 2, "n_bits": 2048},
|
|
70
|
+
"sanitize": true
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Limits: 1-500 molecules. Returns per-item `valid`, `canonical_smiles`, parse
|
|
75
|
+
fields, `descriptors`, optional `fingerprint_metadata`, `on_bits`, `bit_count`,
|
|
76
|
+
`warnings`, and `error`.
|
|
77
|
+
|
|
78
|
+
## Render
|
|
79
|
+
|
|
80
|
+
Operation: `render`.
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{"smiles": "CCO", "image_format": "svg", "width": 450, "height": 320}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Image formats: `svg`, `png`. SVG returns text; PNG returns base64.
|
|
87
|
+
Width/height range: 150-2000.
|
|
88
|
+
|
|
89
|
+
## Fingerprint
|
|
90
|
+
|
|
91
|
+
Operation: `fingerprint`.
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
{"smiles": "CCO", "radius": 2, "n_bits": 2048}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Morgan fingerprint parameters: `radius` 1-6, `n_bits` 128-8192.
|
|
98
|
+
|
|
99
|
+
## Similarity
|
|
100
|
+
|
|
101
|
+
Operation: `similarity`.
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
{"query_smiles": "CCO", "target_smiles": "CCCO", "radius": 2, "n_bits": 2048}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Returns Tanimoto similarity.
|
|
108
|
+
|
|
109
|
+
## Similarity Matrix
|
|
110
|
+
|
|
111
|
+
Operation: `similarity-matrix`.
|
|
112
|
+
|
|
113
|
+
```json
|
|
114
|
+
{
|
|
115
|
+
"molecules": [
|
|
116
|
+
{"id": "aspirin", "smiles": "CC(=O)Oc1ccccc1C(=O)O"},
|
|
117
|
+
{"id": "ibuprofen", "smiles": "CC(C)Cc1ccc(cc1)[C@@H](C)C(=O)O"}
|
|
118
|
+
],
|
|
119
|
+
"fingerprint": {"type": "morgan", "radius": 2, "n_bits": 2048},
|
|
120
|
+
"sanitize": true
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Returns `matrix` in input order and `ranked_pairs` sorted by descending
|
|
125
|
+
Tanimoto similarity. Each ranked record is named, not index-based:
|
|
126
|
+
|
|
127
|
+
```json
|
|
128
|
+
{"a":"aspirin","b":"ibuprofen","similarity":0.195122}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Do not expect `i`, `j`, or `score` fields.
|
|
132
|
+
|
|
133
|
+
## Substructure
|
|
134
|
+
|
|
135
|
+
Operation: `substructure`.
|
|
136
|
+
|
|
137
|
+
```json
|
|
138
|
+
{"query_smarts": "c1ccccc1", "target_smiles": ["c1ccccc1", "CCO"]}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Limits: SMARTS max length 5000; target list size 1-500.
|
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
# STRBO reference
|
|
2
|
-
|
|
3
|
-
STRBO performs generative multi-objective optimisation for the server-fixed **KRAS G12D**
|
|
4
|
-
target. The objective order is fixed as `[vina, activity]`: lower Vina is better and higher
|
|
5
|
-
activity is better. `task` guides candidate generation but does not change the target; do not
|
|
6
|
-
claim that user-defined receptors are supported.
|
|
7
|
-
|
|
8
|
-
Use `tool="strbo"` for every call. Generation, suggestion, evaluation and job submission consume
|
|
9
|
-
remote resources, so call them only when the user actually asks for the relevant research task.
|
|
10
|
-
Do not retry if the outcome is unknown or the request times out.
|
|
11
|
-
|
|
12
|
-
## Initialisation
|
|
13
|
-
|
|
14
|
-
- Synchronous operation: `molecules-init`
|
|
15
|
-
- Asynchronous operation: `molecules-init-job`
|
|
16
|
-
- Validation-only operation: `molecules-init-validate`
|
|
17
|
-
|
|
18
|
-
```json
|
|
19
|
-
{
|
|
20
|
-
"task": "Generate candidate small molecules for KRAS G12D that balance binding and activity",
|
|
21
|
-
"num_initial": 3,
|
|
22
|
-
"seed": 42
|
|
23
|
-
}
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Use validate only when you need to check parameters. For a full run, do not validate before
|
|
27
|
-
submitting; that would make an unnecessary call. A successful result should contain the same
|
|
28
|
-
number of candidate SMILES as `num_initial`.
|
|
29
|
-
|
|
30
|
-
## Suggest the next batch of candidates
|
|
31
|
-
|
|
32
|
-
- Synchronous operation: `molecules-suggest`
|
|
33
|
-
- Asynchronous operation: `molecules-suggest-job` (prefer it for heavy tasks)
|
|
34
|
-
- Validation-only operation: `molecules-suggest-validate`
|
|
35
|
-
|
|
36
|
-
```json
|
|
37
|
-
{
|
|
38
|
-
"task": "Continue improving binding and activity for KRAS G12D",
|
|
39
|
-
"history_xs": ["CCO", "CCN", "CCC"],
|
|
40
|
-
"history_ys": [
|
|
41
|
-
[-6.8, 0.31],
|
|
42
|
-
[-7.1, 0.42],
|
|
43
|
-
[-6.5, 0.28]
|
|
44
|
-
],
|
|
45
|
-
"num_suggestions": 2,
|
|
46
|
-
"seed": 42
|
|
47
|
-
}
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
`history_xs` and `history_ys` must have the same length. Each `history_ys` item must contain two
|
|
51
|
-
finite numbers in the exact order `[vina, activity]`. Do not present predictions as wet-lab results.
|
|
52
|
-
|
|
53
|
-
## Evaluate candidates
|
|
54
|
-
|
|
55
|
-
- Synchronous operation: `molecules-evaluate`
|
|
56
|
-
- Asynchronous operation: `molecules-evaluate-job`
|
|
57
|
-
- Validation-only operation: `molecules-evaluate-validate`
|
|
58
|
-
|
|
59
|
-
```json
|
|
60
|
-
{
|
|
61
|
-
"designs": ["CCO", "CCN"]
|
|
62
|
-
}
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
The number of scores in a successful result must match the number of designs, with exactly two
|
|
66
|
-
finite numbers per row. If any item explicitly fails, treat the entire run as failed; do not
|
|
67
|
-
report only the successful subset.
|
|
68
|
-
|
|
69
|
-
## Asynchronous jobs
|
|
70
|
-
|
|
71
|
-
After submitting an asynchronous operation, read a non-empty `job_id` from the current business
|
|
72
|
-
response, then poll:
|
|
73
|
-
|
|
74
|
-
```text
|
|
75
|
-
delta-cli science invoke --tool strbo --endpoint job-status --params JSON
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Read the result only once the status changes to `succeeded`:
|
|
79
|
-
|
|
80
|
-
```text
|
|
81
|
-
delta-cli science invoke --tool strbo --endpoint job-result --params JSON
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
`queued` and `running` do not mean the job is complete; stop immediately on `failed`. Status
|
|
85
|
-
queries may be repeated at intervals of about five seconds, but never repeat the submission
|
|
86
|
-
operation. The total wait for one user task is limited to 15 minutes. If that limit is reached,
|
|
87
|
-
report that the job is still incomplete and retain its `job_id`; do not claim it was cancelled
|
|
88
|
-
remotely.
|
|
89
|
-
|
|
90
|
-
## Complete research workflow
|
|
91
|
-
|
|
92
|
-
When the user explicitly asks for a complete iteration, run `initialise → evaluate → suggest →
|
|
93
|
-
evaluate` sequentially. Use only verified business responses from the current calls as inputs to
|
|
94
|
-
the next step. If the user asks only for initial candidates or evaluation of supplied SMILES, do
|
|
95
|
-
not expand the task into a full loop.
|
|
1
|
+
# STRBO reference
|
|
2
|
+
|
|
3
|
+
STRBO performs generative multi-objective optimisation for the server-fixed **KRAS G12D**
|
|
4
|
+
target. The objective order is fixed as `[vina, activity]`: lower Vina is better and higher
|
|
5
|
+
activity is better. `task` guides candidate generation but does not change the target; do not
|
|
6
|
+
claim that user-defined receptors are supported.
|
|
7
|
+
|
|
8
|
+
Use `tool="strbo"` for every call. Generation, suggestion, evaluation and job submission consume
|
|
9
|
+
remote resources, so call them only when the user actually asks for the relevant research task.
|
|
10
|
+
Do not retry if the outcome is unknown or the request times out.
|
|
11
|
+
|
|
12
|
+
## Initialisation
|
|
13
|
+
|
|
14
|
+
- Synchronous operation: `molecules-init`
|
|
15
|
+
- Asynchronous operation: `molecules-init-job`
|
|
16
|
+
- Validation-only operation: `molecules-init-validate`
|
|
17
|
+
|
|
18
|
+
```json
|
|
19
|
+
{
|
|
20
|
+
"task": "Generate candidate small molecules for KRAS G12D that balance binding and activity",
|
|
21
|
+
"num_initial": 3,
|
|
22
|
+
"seed": 42
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Use validate only when you need to check parameters. For a full run, do not validate before
|
|
27
|
+
submitting; that would make an unnecessary call. A successful result should contain the same
|
|
28
|
+
number of candidate SMILES as `num_initial`.
|
|
29
|
+
|
|
30
|
+
## Suggest the next batch of candidates
|
|
31
|
+
|
|
32
|
+
- Synchronous operation: `molecules-suggest`
|
|
33
|
+
- Asynchronous operation: `molecules-suggest-job` (prefer it for heavy tasks)
|
|
34
|
+
- Validation-only operation: `molecules-suggest-validate`
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"task": "Continue improving binding and activity for KRAS G12D",
|
|
39
|
+
"history_xs": ["CCO", "CCN", "CCC"],
|
|
40
|
+
"history_ys": [
|
|
41
|
+
[-6.8, 0.31],
|
|
42
|
+
[-7.1, 0.42],
|
|
43
|
+
[-6.5, 0.28]
|
|
44
|
+
],
|
|
45
|
+
"num_suggestions": 2,
|
|
46
|
+
"seed": 42
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
`history_xs` and `history_ys` must have the same length. Each `history_ys` item must contain two
|
|
51
|
+
finite numbers in the exact order `[vina, activity]`. Do not present predictions as wet-lab results.
|
|
52
|
+
|
|
53
|
+
## Evaluate candidates
|
|
54
|
+
|
|
55
|
+
- Synchronous operation: `molecules-evaluate`
|
|
56
|
+
- Asynchronous operation: `molecules-evaluate-job`
|
|
57
|
+
- Validation-only operation: `molecules-evaluate-validate`
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"designs": ["CCO", "CCN"]
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The number of scores in a successful result must match the number of designs, with exactly two
|
|
66
|
+
finite numbers per row. If any item explicitly fails, treat the entire run as failed; do not
|
|
67
|
+
report only the successful subset.
|
|
68
|
+
|
|
69
|
+
## Asynchronous jobs
|
|
70
|
+
|
|
71
|
+
After submitting an asynchronous operation, read a non-empty `job_id` from the current business
|
|
72
|
+
response, then poll:
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
delta-cli science invoke --tool strbo --endpoint job-status --params JSON
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Read the result only once the status changes to `succeeded`:
|
|
79
|
+
|
|
80
|
+
```text
|
|
81
|
+
delta-cli science invoke --tool strbo --endpoint job-result --params JSON
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
`queued` and `running` do not mean the job is complete; stop immediately on `failed`. Status
|
|
85
|
+
queries may be repeated at intervals of about five seconds, but never repeat the submission
|
|
86
|
+
operation. The total wait for one user task is limited to 15 minutes. If that limit is reached,
|
|
87
|
+
report that the job is still incomplete and retain its `job_id`; do not claim it was cancelled
|
|
88
|
+
remotely.
|
|
89
|
+
|
|
90
|
+
## Complete research workflow
|
|
91
|
+
|
|
92
|
+
When the user explicitly asks for a complete iteration, run `initialise → evaluate → suggest →
|
|
93
|
+
evaluate` sequentially. Use only verified business responses from the current calls as inputs to
|
|
94
|
+
the next step. If the user asks only for initial candidates or evaluation of supplied SMILES, do
|
|
95
|
+
not expand the task into a full loop.
|