@delta-infra/cli 1.0.98 → 1.0.99
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 +469 -469
- package/checksums.txt +5 -5
- package/package.json +2 -2
- package/scripts/install-wizard.js +701 -701
- package/scripts/install.js +442 -442
- package/scripts/run.js +65 -65
- package/skills/delta-sandbox/SKILL.md +382 -344
- 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 +40 -40
- package/skills/delta-science/SKILL.md +139 -139
- package/skills/delta-science/agents/openai.yaml +4 -4
- package/skills/delta-science/references/antbo.md +100 -100
- package/skills/delta-science/references/delta-bo.md +89 -89
- package/skills/delta-science/references/gsasii.md +116 -116
- package/skills/delta-science/references/lammps.md +66 -66
- package/skills/delta-science/references/ldm-bo.md +129 -129
- package/skills/delta-science/references/materials-design.md +109 -109
- package/skills/delta-science/references/pubchem.md +126 -126
- package/skills/delta-science/references/pymatgen.md +68 -68
- package/skills/delta-science/references/rdkit.md +138 -138
- package/skills/delta-science/references/strbo.md +87 -87
- package/skills/delta-science/references/synbo.md +198 -198
- 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 +97 -97
- package/skills/delta-shared/agents/openai.yaml +4 -4
- package/skills/manifest.json +19 -19
|
@@ -1,126 +1,126 @@
|
|
|
1
|
-
# PubChem 详细规则
|
|
2
|
-
|
|
3
|
-
只能通过 `delta-cli science invoke` 调用。本文件中的业务响应位于 CLI 顶层 `data`;
|
|
4
|
-
只按本文件说明读取字段,不得递归搜索。本文件中的 URL 只用于说明 endpoint schema,
|
|
5
|
-
不授权直接 HTTP。普通名称基础查询只调用一次 `compound-summary`;多个名称
|
|
6
|
-
只调用一次 `compound-batch-summary`,默认 body 仅包含 `identifiers` 和
|
|
7
|
-
`namespace:"name"`,不得先调用 health/schema。
|
|
8
|
-
|
|
9
|
-
结果直接从 `data` 投影。批量记录位于 `data.results[*]`,原始标签在 `input`,
|
|
10
|
-
属性在嵌套 `properties`。SMILES 回退顺序固定为
|
|
11
|
-
`CanonicalSMILES -> ConnectivitySMILES -> SMILES -> IsomericSMILES`。
|
|
12
|
-
PubChem `XLogP` 与 RDKit `MolLogP` 不得互换;not_found 不得用本地计算补值。
|
|
13
|
-
|
|
14
|
-
Namespaces: `cid`, `name`, `smiles`, `inchi`, `inchikey`, `formula`.
|
|
15
|
-
|
|
16
|
-
## Health
|
|
17
|
-
|
|
18
|
-
operation:`health`,无 body。
|
|
19
|
-
|
|
20
|
-
## Resolve CIDs
|
|
21
|
-
|
|
22
|
-
operation:`compound-resolve-cids`。
|
|
23
|
-
|
|
24
|
-
```json
|
|
25
|
-
{"identifier": "aspirin", "namespace": "name", "max_records": 20}
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
`max_records`: 1-100.
|
|
29
|
-
|
|
30
|
-
## Properties
|
|
31
|
-
|
|
32
|
-
operation:`compound-properties`。
|
|
33
|
-
|
|
34
|
-
```json
|
|
35
|
-
{
|
|
36
|
-
"identifier": "2244",
|
|
37
|
-
"namespace": "cid",
|
|
38
|
-
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "IUPACName"]
|
|
39
|
-
}
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
Allowed properties include `MolecularFormula`, `MolecularWeight`,
|
|
43
|
-
`CanonicalSMILES`, `IsomericSMILES`, `SMILES`, `ConnectivitySMILES`,
|
|
44
|
-
`IUPACName`, `InChI`, `InChIKey`, `XLogP`, `TPSA`, `HBondDonorCount`,
|
|
45
|
-
`HBondAcceptorCount`, `RotatableBondCount`, `ExactMass`, `MonoisotopicMass`,
|
|
46
|
-
`Charge`, `HeavyAtomCount`, `Complexity`, `CovalentUnitCount`,
|
|
47
|
-
`DefinedAtomStereoCount`, `UndefinedAtomStereoCount`, `DefinedBondStereoCount`,
|
|
48
|
-
`UndefinedBondStereoCount`, and `IsotopeAtomCount`.
|
|
49
|
-
|
|
50
|
-
## Synonyms
|
|
51
|
-
|
|
52
|
-
operation:`compound-synonyms`。
|
|
53
|
-
|
|
54
|
-
```json
|
|
55
|
-
{"identifier": "2244", "namespace": "cid", "max_synonyms": 50}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
`max_synonyms`: 1-500.
|
|
59
|
-
|
|
60
|
-
## Summary
|
|
61
|
-
|
|
62
|
-
operation:`compound-summary`。
|
|
63
|
-
|
|
64
|
-
```json
|
|
65
|
-
{
|
|
66
|
-
"identifier": "aspirin",
|
|
67
|
-
"namespace": "name",
|
|
68
|
-
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "IUPACName"],
|
|
69
|
-
"synonym_limit": 20
|
|
70
|
-
}
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
`synonym_limit`: 0-100. Use this endpoint for general compound lookup because
|
|
74
|
-
it resolves CID, selected properties, and synonyms in one call.
|
|
75
|
-
|
|
76
|
-
Response fields include `valid`, `cid`, `properties`, `properties_raw`,
|
|
77
|
-
`aliases`, `synonyms`, and `metadata`. Numeric properties are coerced to JSON
|
|
78
|
-
numbers when possible. Requested SMILES aliases are filled when PubChem returns
|
|
79
|
-
an equivalent key such as `ConnectivitySMILES`.
|
|
80
|
-
|
|
81
|
-
## Batch Summary
|
|
82
|
-
|
|
83
|
-
operation:`compound-batch-summary`。
|
|
84
|
-
|
|
85
|
-
```json
|
|
86
|
-
{
|
|
87
|
-
"identifiers": ["aspirin", "ibuprofen", "caffeine"],
|
|
88
|
-
"namespace": "name",
|
|
89
|
-
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "XLogP", "TPSA"],
|
|
90
|
-
"synonym_limit": 5
|
|
91
|
-
}
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
Limits: 1-100 identifiers. The response preserves input order and includes
|
|
95
|
-
per-item errors:
|
|
96
|
-
|
|
97
|
-
```json
|
|
98
|
-
{
|
|
99
|
-
"valid": false,
|
|
100
|
-
"namespace": "name",
|
|
101
|
-
"properties_requested": ["CanonicalSMILES"],
|
|
102
|
-
"results": [
|
|
103
|
-
{
|
|
104
|
-
"input": "aspirin",
|
|
105
|
-
"valid": true,
|
|
106
|
-
"cid": 2244,
|
|
107
|
-
"properties": {
|
|
108
|
-
"CanonicalSMILES": "CC(=O)Oc1ccccc1C(=O)O",
|
|
109
|
-
"ConnectivitySMILES": "CC(=O)Oc1ccccc1C(=O)O",
|
|
110
|
-
"_aliases": {"CanonicalSMILES": "ConnectivitySMILES"},
|
|
111
|
-
"properties_raw": {}
|
|
112
|
-
},
|
|
113
|
-
"properties_raw": {},
|
|
114
|
-
"aliases": {"CanonicalSMILES": "ConnectivitySMILES"},
|
|
115
|
-
"synonyms": []
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"input": "bad-name",
|
|
119
|
-
"valid": false,
|
|
120
|
-
"error": "not found"
|
|
121
|
-
}
|
|
122
|
-
],
|
|
123
|
-
"count": 2,
|
|
124
|
-
"failed_count": 1
|
|
125
|
-
}
|
|
126
|
-
```
|
|
1
|
+
# PubChem 详细规则
|
|
2
|
+
|
|
3
|
+
只能通过 `delta-cli science invoke` 调用。本文件中的业务响应位于 CLI 顶层 `data`;
|
|
4
|
+
只按本文件说明读取字段,不得递归搜索。本文件中的 URL 只用于说明 endpoint schema,
|
|
5
|
+
不授权直接 HTTP。普通名称基础查询只调用一次 `compound-summary`;多个名称
|
|
6
|
+
只调用一次 `compound-batch-summary`,默认 body 仅包含 `identifiers` 和
|
|
7
|
+
`namespace:"name"`,不得先调用 health/schema。
|
|
8
|
+
|
|
9
|
+
结果直接从 `data` 投影。批量记录位于 `data.results[*]`,原始标签在 `input`,
|
|
10
|
+
属性在嵌套 `properties`。SMILES 回退顺序固定为
|
|
11
|
+
`CanonicalSMILES -> ConnectivitySMILES -> SMILES -> IsomericSMILES`。
|
|
12
|
+
PubChem `XLogP` 与 RDKit `MolLogP` 不得互换;not_found 不得用本地计算补值。
|
|
13
|
+
|
|
14
|
+
Namespaces: `cid`, `name`, `smiles`, `inchi`, `inchikey`, `formula`.
|
|
15
|
+
|
|
16
|
+
## Health
|
|
17
|
+
|
|
18
|
+
operation:`health`,无 body。
|
|
19
|
+
|
|
20
|
+
## Resolve CIDs
|
|
21
|
+
|
|
22
|
+
operation:`compound-resolve-cids`。
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{"identifier": "aspirin", "namespace": "name", "max_records": 20}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
`max_records`: 1-100.
|
|
29
|
+
|
|
30
|
+
## Properties
|
|
31
|
+
|
|
32
|
+
operation:`compound-properties`。
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"identifier": "2244",
|
|
37
|
+
"namespace": "cid",
|
|
38
|
+
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "IUPACName"]
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Allowed properties include `MolecularFormula`, `MolecularWeight`,
|
|
43
|
+
`CanonicalSMILES`, `IsomericSMILES`, `SMILES`, `ConnectivitySMILES`,
|
|
44
|
+
`IUPACName`, `InChI`, `InChIKey`, `XLogP`, `TPSA`, `HBondDonorCount`,
|
|
45
|
+
`HBondAcceptorCount`, `RotatableBondCount`, `ExactMass`, `MonoisotopicMass`,
|
|
46
|
+
`Charge`, `HeavyAtomCount`, `Complexity`, `CovalentUnitCount`,
|
|
47
|
+
`DefinedAtomStereoCount`, `UndefinedAtomStereoCount`, `DefinedBondStereoCount`,
|
|
48
|
+
`UndefinedBondStereoCount`, and `IsotopeAtomCount`.
|
|
49
|
+
|
|
50
|
+
## Synonyms
|
|
51
|
+
|
|
52
|
+
operation:`compound-synonyms`。
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{"identifier": "2244", "namespace": "cid", "max_synonyms": 50}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
`max_synonyms`: 1-500.
|
|
59
|
+
|
|
60
|
+
## Summary
|
|
61
|
+
|
|
62
|
+
operation:`compound-summary`。
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"identifier": "aspirin",
|
|
67
|
+
"namespace": "name",
|
|
68
|
+
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "IUPACName"],
|
|
69
|
+
"synonym_limit": 20
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
`synonym_limit`: 0-100. Use this endpoint for general compound lookup because
|
|
74
|
+
it resolves CID, selected properties, and synonyms in one call.
|
|
75
|
+
|
|
76
|
+
Response fields include `valid`, `cid`, `properties`, `properties_raw`,
|
|
77
|
+
`aliases`, `synonyms`, and `metadata`. Numeric properties are coerced to JSON
|
|
78
|
+
numbers when possible. Requested SMILES aliases are filled when PubChem returns
|
|
79
|
+
an equivalent key such as `ConnectivitySMILES`.
|
|
80
|
+
|
|
81
|
+
## Batch Summary
|
|
82
|
+
|
|
83
|
+
operation:`compound-batch-summary`。
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"identifiers": ["aspirin", "ibuprofen", "caffeine"],
|
|
88
|
+
"namespace": "name",
|
|
89
|
+
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "XLogP", "TPSA"],
|
|
90
|
+
"synonym_limit": 5
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Limits: 1-100 identifiers. The response preserves input order and includes
|
|
95
|
+
per-item errors:
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"valid": false,
|
|
100
|
+
"namespace": "name",
|
|
101
|
+
"properties_requested": ["CanonicalSMILES"],
|
|
102
|
+
"results": [
|
|
103
|
+
{
|
|
104
|
+
"input": "aspirin",
|
|
105
|
+
"valid": true,
|
|
106
|
+
"cid": 2244,
|
|
107
|
+
"properties": {
|
|
108
|
+
"CanonicalSMILES": "CC(=O)Oc1ccccc1C(=O)O",
|
|
109
|
+
"ConnectivitySMILES": "CC(=O)Oc1ccccc1C(=O)O",
|
|
110
|
+
"_aliases": {"CanonicalSMILES": "ConnectivitySMILES"},
|
|
111
|
+
"properties_raw": {}
|
|
112
|
+
},
|
|
113
|
+
"properties_raw": {},
|
|
114
|
+
"aliases": {"CanonicalSMILES": "ConnectivitySMILES"},
|
|
115
|
+
"synonyms": []
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"input": "bad-name",
|
|
119
|
+
"valid": false,
|
|
120
|
+
"error": "not found"
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"count": 2,
|
|
124
|
+
"failed_count": 1
|
|
125
|
+
}
|
|
126
|
+
```
|
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
# pymatgen 详细规则
|
|
2
|
-
|
|
3
|
-
所有调用直接使用 `delta-cli science invoke`。无机化学式、组成和式量优先使用 pymatgen,不用 PubChem
|
|
4
|
-
或本地元素表替代。结构 operation 必须发送完整结构文本,不能发送本地文件路径;
|
|
5
|
-
支持 `cif`、`poscar`、`json`、`cssr`、`xsf`,不接收 LAMMPS data/dump。
|
|
6
|
-
|
|
7
|
-
## Health
|
|
8
|
-
|
|
9
|
-
operation:`health`,无 body。
|
|
10
|
-
|
|
11
|
-
## Composition Parse
|
|
12
|
-
|
|
13
|
-
operation:`composition-parse`。
|
|
14
|
-
|
|
15
|
-
```json
|
|
16
|
-
{"formula": "LiFePO4", "format": "formula"}
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Key response fields in `data`: `valid`, `formula`, `reduced_formula`,
|
|
20
|
-
`alphabetic_formula`, `anonymous_formula`, `chemical_system`,
|
|
21
|
-
`number_of_atoms`, `weight`, `element_amounts`, `atomic_fractions`,
|
|
22
|
-
`weight_fractions`, `error`.
|
|
23
|
-
|
|
24
|
-
## Structure Parse / Summary
|
|
25
|
-
|
|
26
|
-
operation:`structure-parse` 或 `structure-summary`。
|
|
27
|
-
|
|
28
|
-
```json
|
|
29
|
-
{"input": "<CIF text>", "format": "cif", "primitive": false}
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Input formats: `cif`, `poscar`, `json`, `cssr`, `xsf`.
|
|
33
|
-
|
|
34
|
-
Summary fields include `formula`, `reduced_formula`, `chemical_system`,
|
|
35
|
-
`nsites`, `nelements`, `density`, `volume`, `lattice`, `element_amounts`, and
|
|
36
|
-
`species`.
|
|
37
|
-
|
|
38
|
-
## Structure Convert
|
|
39
|
-
|
|
40
|
-
operation:`structure-convert`。
|
|
41
|
-
|
|
42
|
-
```json
|
|
43
|
-
{
|
|
44
|
-
"input": "<CIF text>",
|
|
45
|
-
"input_format": "cif",
|
|
46
|
-
"output_format": "poscar",
|
|
47
|
-
"primitive": false
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Output formats: `cif`, `poscar`, `json`, `cssr`, `xsf`.
|
|
52
|
-
|
|
53
|
-
## Symmetry
|
|
54
|
-
|
|
55
|
-
operation:`structure-symmetry`。
|
|
56
|
-
|
|
57
|
-
```json
|
|
58
|
-
{
|
|
59
|
-
"input": "<CIF text>",
|
|
60
|
-
"format": "cif",
|
|
61
|
-
"primitive": false,
|
|
62
|
-
"symprec": 0.01,
|
|
63
|
-
"angle_tolerance": 5.0
|
|
64
|
-
}
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
Returns `space_group_symbol`, `space_group_number`, `crystal_system`,
|
|
68
|
-
`point_group_symbol`, `hall`, and `nsites`.
|
|
1
|
+
# pymatgen 详细规则
|
|
2
|
+
|
|
3
|
+
所有调用直接使用 `delta-cli science invoke`。无机化学式、组成和式量优先使用 pymatgen,不用 PubChem
|
|
4
|
+
或本地元素表替代。结构 operation 必须发送完整结构文本,不能发送本地文件路径;
|
|
5
|
+
支持 `cif`、`poscar`、`json`、`cssr`、`xsf`,不接收 LAMMPS data/dump。
|
|
6
|
+
|
|
7
|
+
## Health
|
|
8
|
+
|
|
9
|
+
operation:`health`,无 body。
|
|
10
|
+
|
|
11
|
+
## Composition Parse
|
|
12
|
+
|
|
13
|
+
operation:`composition-parse`。
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{"formula": "LiFePO4", "format": "formula"}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Key response fields in `data`: `valid`, `formula`, `reduced_formula`,
|
|
20
|
+
`alphabetic_formula`, `anonymous_formula`, `chemical_system`,
|
|
21
|
+
`number_of_atoms`, `weight`, `element_amounts`, `atomic_fractions`,
|
|
22
|
+
`weight_fractions`, `error`.
|
|
23
|
+
|
|
24
|
+
## Structure Parse / Summary
|
|
25
|
+
|
|
26
|
+
operation:`structure-parse` 或 `structure-summary`。
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{"input": "<CIF text>", "format": "cif", "primitive": false}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Input formats: `cif`, `poscar`, `json`, `cssr`, `xsf`.
|
|
33
|
+
|
|
34
|
+
Summary fields include `formula`, `reduced_formula`, `chemical_system`,
|
|
35
|
+
`nsites`, `nelements`, `density`, `volume`, `lattice`, `element_amounts`, and
|
|
36
|
+
`species`.
|
|
37
|
+
|
|
38
|
+
## Structure Convert
|
|
39
|
+
|
|
40
|
+
operation:`structure-convert`。
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"input": "<CIF text>",
|
|
45
|
+
"input_format": "cif",
|
|
46
|
+
"output_format": "poscar",
|
|
47
|
+
"primitive": false
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Output formats: `cif`, `poscar`, `json`, `cssr`, `xsf`.
|
|
52
|
+
|
|
53
|
+
## Symmetry
|
|
54
|
+
|
|
55
|
+
operation:`structure-symmetry`。
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"input": "<CIF text>",
|
|
60
|
+
"format": "cif",
|
|
61
|
+
"primitive": false,
|
|
62
|
+
"symprec": 0.01,
|
|
63
|
+
"angle_tolerance": 5.0
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Returns `space_group_symbol`, `space_group_number`, `crystal_system`,
|
|
68
|
+
`point_group_symbol`, `hall`, and `nsites`.
|
|
@@ -1,138 +1,138 @@
|
|
|
1
|
-
# RDKit 详细规则
|
|
2
|
-
|
|
3
|
-
只能通过 `delta-cli science invoke` 调用。以下业务响应位于 CLI 顶层 `data`;只按本文件
|
|
4
|
-
说明读取字段,不得递归搜索。这里只记录 operation schema,不授权直接 HTTP。
|
|
5
|
-
|
|
6
|
-
一个请求只执行完成目标所需的最少调用。同时校验、规范化并计算基础描述符时使用一次
|
|
7
|
-
`batch-parse-describe`,payload 使用 `molecules:[{id,smiles}]`,不得拆成 parse 和
|
|
8
|
-
descriptors。多个分子的全对相似度使用一次 `similarity-matrix`;排名字段固定为
|
|
9
|
-
`a`、`b`、`similarity`,不是 `i`、`j`、`score`。
|
|
10
|
-
|
|
11
|
-
只报告业务响应实际存在的描述符。渲染 PNG 时只解码文档指定字段,并验证字节以
|
|
12
|
-
`89 50 4e 47 0d 0a 1a 0a` 开头;不得把 JSON envelope 保存成图片。
|
|
13
|
-
|
|
14
|
-
## Health
|
|
15
|
-
|
|
16
|
-
operation:`health`,无 body。
|
|
17
|
-
|
|
18
|
-
## Parse
|
|
19
|
-
|
|
20
|
-
operation:`parse`。
|
|
21
|
-
|
|
22
|
-
```json
|
|
23
|
-
{"input": "CCO", "format": "smiles", "sanitize": true}
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Formats: `smiles`, `inchi`, `molblock`.
|
|
27
|
-
|
|
28
|
-
Key response fields in `data`: `valid`, `canonical_smiles`, `formula`,
|
|
29
|
-
`molecular_weight`, `exact_molecular_weight`, `inchi_key`, `atom_count`,
|
|
30
|
-
`heavy_atom_count`, `bond_count`, `warnings`, `error`.
|
|
31
|
-
|
|
32
|
-
## Descriptors
|
|
33
|
-
|
|
34
|
-
operation:`descriptors`。
|
|
35
|
-
|
|
36
|
-
```json
|
|
37
|
-
{"smiles": "CCO", "descriptor_set": "basic", "sanitize": true}
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
`descriptor_set` currently supports `basic`. Descriptor keys include `Formula`,
|
|
41
|
-
`MolWt`, `ExactMolWt`, `HeavyAtomMolWt`, `TPSA`, `MolLogP`, `NumHDonors`,
|
|
42
|
-
`NumHAcceptors`, `NumRotatableBonds`, `RingCount`, `FractionCSP3`,
|
|
43
|
-
`HeavyAtomCount`, `AtomCount`, and `BondCount`.
|
|
44
|
-
|
|
45
|
-
## Batch Descriptors
|
|
46
|
-
|
|
47
|
-
operation:`batch-descriptors`。
|
|
48
|
-
|
|
49
|
-
```json
|
|
50
|
-
{"smiles": ["CCO", "c1ccccc1"], "descriptor_set": "basic", "sanitize": true}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Limits: 1-500 SMILES.
|
|
54
|
-
|
|
55
|
-
## Batch Parse Describe
|
|
56
|
-
|
|
57
|
-
operation:`batch-parse-describe`。
|
|
58
|
-
|
|
59
|
-
```json
|
|
60
|
-
{
|
|
61
|
-
"molecules": [
|
|
62
|
-
{"id": "aspirin", "smiles": "CC(=O)Oc1ccccc1C(=O)O"},
|
|
63
|
-
{"id": "caffeine", "smiles": "Cn1cnc2c1c(=O)n(C)c(=O)n2C"}
|
|
64
|
-
],
|
|
65
|
-
"descriptor_set": "basic",
|
|
66
|
-
"fingerprint": {"type": "morgan", "radius": 2, "n_bits": 2048},
|
|
67
|
-
"sanitize": true
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Limits: 1-500 molecules. Returns per-item `valid`, `canonical_smiles`, parse
|
|
72
|
-
fields, `descriptors`, optional `fingerprint_metadata`, `on_bits`, `bit_count`,
|
|
73
|
-
`warnings`, and `error`.
|
|
74
|
-
|
|
75
|
-
## Render
|
|
76
|
-
|
|
77
|
-
operation:`render`。
|
|
78
|
-
|
|
79
|
-
```json
|
|
80
|
-
{"smiles": "CCO", "image_format": "svg", "width": 450, "height": 320}
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Image formats: `svg`, `png`. SVG returns text; PNG returns base64.
|
|
84
|
-
Width/height range: 150-2000.
|
|
85
|
-
|
|
86
|
-
## Fingerprint
|
|
87
|
-
|
|
88
|
-
operation:`fingerprint`。
|
|
89
|
-
|
|
90
|
-
```json
|
|
91
|
-
{"smiles": "CCO", "radius": 2, "n_bits": 2048}
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
Morgan fingerprint parameters: `radius` 1-6, `n_bits` 128-8192.
|
|
95
|
-
|
|
96
|
-
## Similarity
|
|
97
|
-
|
|
98
|
-
operation:`similarity`。
|
|
99
|
-
|
|
100
|
-
```json
|
|
101
|
-
{"query_smiles": "CCO", "target_smiles": "CCCO", "radius": 2, "n_bits": 2048}
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
Returns Tanimoto similarity.
|
|
105
|
-
|
|
106
|
-
## Similarity Matrix
|
|
107
|
-
|
|
108
|
-
operation:`similarity-matrix`。
|
|
109
|
-
|
|
110
|
-
```json
|
|
111
|
-
{
|
|
112
|
-
"molecules": [
|
|
113
|
-
{"id": "aspirin", "smiles": "CC(=O)Oc1ccccc1C(=O)O"},
|
|
114
|
-
{"id": "ibuprofen", "smiles": "CC(C)Cc1ccc(cc1)[C@@H](C)C(=O)O"}
|
|
115
|
-
],
|
|
116
|
-
"fingerprint": {"type": "morgan", "radius": 2, "n_bits": 2048},
|
|
117
|
-
"sanitize": true
|
|
118
|
-
}
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
Returns `matrix` in input order and `ranked_pairs` sorted by descending
|
|
122
|
-
Tanimoto similarity. Each ranked record is named, not index-based:
|
|
123
|
-
|
|
124
|
-
```json
|
|
125
|
-
{"a":"aspirin","b":"ibuprofen","similarity":0.195122}
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
Do not expect `i`, `j`, or `score` fields.
|
|
129
|
-
|
|
130
|
-
## Substructure
|
|
131
|
-
|
|
132
|
-
operation:`substructure`。
|
|
133
|
-
|
|
134
|
-
```json
|
|
135
|
-
{"query_smarts": "c1ccccc1", "target_smiles": ["c1ccccc1", "CCO"]}
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
Limits: SMARTS max length 5000; target list size 1-500.
|
|
1
|
+
# RDKit 详细规则
|
|
2
|
+
|
|
3
|
+
只能通过 `delta-cli science invoke` 调用。以下业务响应位于 CLI 顶层 `data`;只按本文件
|
|
4
|
+
说明读取字段,不得递归搜索。这里只记录 operation schema,不授权直接 HTTP。
|
|
5
|
+
|
|
6
|
+
一个请求只执行完成目标所需的最少调用。同时校验、规范化并计算基础描述符时使用一次
|
|
7
|
+
`batch-parse-describe`,payload 使用 `molecules:[{id,smiles}]`,不得拆成 parse 和
|
|
8
|
+
descriptors。多个分子的全对相似度使用一次 `similarity-matrix`;排名字段固定为
|
|
9
|
+
`a`、`b`、`similarity`,不是 `i`、`j`、`score`。
|
|
10
|
+
|
|
11
|
+
只报告业务响应实际存在的描述符。渲染 PNG 时只解码文档指定字段,并验证字节以
|
|
12
|
+
`89 50 4e 47 0d 0a 1a 0a` 开头;不得把 JSON envelope 保存成图片。
|
|
13
|
+
|
|
14
|
+
## Health
|
|
15
|
+
|
|
16
|
+
operation:`health`,无 body。
|
|
17
|
+
|
|
18
|
+
## Parse
|
|
19
|
+
|
|
20
|
+
operation:`parse`。
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{"input": "CCO", "format": "smiles", "sanitize": true}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Formats: `smiles`, `inchi`, `molblock`.
|
|
27
|
+
|
|
28
|
+
Key response fields in `data`: `valid`, `canonical_smiles`, `formula`,
|
|
29
|
+
`molecular_weight`, `exact_molecular_weight`, `inchi_key`, `atom_count`,
|
|
30
|
+
`heavy_atom_count`, `bond_count`, `warnings`, `error`.
|
|
31
|
+
|
|
32
|
+
## Descriptors
|
|
33
|
+
|
|
34
|
+
operation:`descriptors`。
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{"smiles": "CCO", "descriptor_set": "basic", "sanitize": true}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`descriptor_set` currently supports `basic`. Descriptor keys include `Formula`,
|
|
41
|
+
`MolWt`, `ExactMolWt`, `HeavyAtomMolWt`, `TPSA`, `MolLogP`, `NumHDonors`,
|
|
42
|
+
`NumHAcceptors`, `NumRotatableBonds`, `RingCount`, `FractionCSP3`,
|
|
43
|
+
`HeavyAtomCount`, `AtomCount`, and `BondCount`.
|
|
44
|
+
|
|
45
|
+
## Batch Descriptors
|
|
46
|
+
|
|
47
|
+
operation:`batch-descriptors`。
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{"smiles": ["CCO", "c1ccccc1"], "descriptor_set": "basic", "sanitize": true}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Limits: 1-500 SMILES.
|
|
54
|
+
|
|
55
|
+
## Batch Parse Describe
|
|
56
|
+
|
|
57
|
+
operation:`batch-parse-describe`。
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"molecules": [
|
|
62
|
+
{"id": "aspirin", "smiles": "CC(=O)Oc1ccccc1C(=O)O"},
|
|
63
|
+
{"id": "caffeine", "smiles": "Cn1cnc2c1c(=O)n(C)c(=O)n2C"}
|
|
64
|
+
],
|
|
65
|
+
"descriptor_set": "basic",
|
|
66
|
+
"fingerprint": {"type": "morgan", "radius": 2, "n_bits": 2048},
|
|
67
|
+
"sanitize": true
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Limits: 1-500 molecules. Returns per-item `valid`, `canonical_smiles`, parse
|
|
72
|
+
fields, `descriptors`, optional `fingerprint_metadata`, `on_bits`, `bit_count`,
|
|
73
|
+
`warnings`, and `error`.
|
|
74
|
+
|
|
75
|
+
## Render
|
|
76
|
+
|
|
77
|
+
operation:`render`。
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{"smiles": "CCO", "image_format": "svg", "width": 450, "height": 320}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Image formats: `svg`, `png`. SVG returns text; PNG returns base64.
|
|
84
|
+
Width/height range: 150-2000.
|
|
85
|
+
|
|
86
|
+
## Fingerprint
|
|
87
|
+
|
|
88
|
+
operation:`fingerprint`。
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
{"smiles": "CCO", "radius": 2, "n_bits": 2048}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Morgan fingerprint parameters: `radius` 1-6, `n_bits` 128-8192.
|
|
95
|
+
|
|
96
|
+
## Similarity
|
|
97
|
+
|
|
98
|
+
operation:`similarity`。
|
|
99
|
+
|
|
100
|
+
```json
|
|
101
|
+
{"query_smiles": "CCO", "target_smiles": "CCCO", "radius": 2, "n_bits": 2048}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Returns Tanimoto similarity.
|
|
105
|
+
|
|
106
|
+
## Similarity Matrix
|
|
107
|
+
|
|
108
|
+
operation:`similarity-matrix`。
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"molecules": [
|
|
113
|
+
{"id": "aspirin", "smiles": "CC(=O)Oc1ccccc1C(=O)O"},
|
|
114
|
+
{"id": "ibuprofen", "smiles": "CC(C)Cc1ccc(cc1)[C@@H](C)C(=O)O"}
|
|
115
|
+
],
|
|
116
|
+
"fingerprint": {"type": "morgan", "radius": 2, "n_bits": 2048},
|
|
117
|
+
"sanitize": true
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Returns `matrix` in input order and `ranked_pairs` sorted by descending
|
|
122
|
+
Tanimoto similarity. Each ranked record is named, not index-based:
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
{"a":"aspirin","b":"ibuprofen","similarity":0.195122}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Do not expect `i`, `j`, or `score` fields.
|
|
129
|
+
|
|
130
|
+
## Substructure
|
|
131
|
+
|
|
132
|
+
operation:`substructure`。
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{"query_smarts": "c1ccccc1", "target_smiles": ["c1ccccc1", "CCO"]}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Limits: SMARTS max length 5000; target list size 1-500.
|