Skip to content

Commit 7199c83

Browse files
committed
Rename project to AromaNexus
1 parent 24063b1 commit 7199c83

57 files changed

Lines changed: 3113 additions & 2957 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/skills/curate-flavor-data/SKILL.md renamed to .agents/skills/curate-aroma-data/SKILL.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
---
2-
name: curate-flavor-data
3-
description: Validate, normalize, enrich, and export flavor, odor, aroma, and chemical-sensory datasets with source-level provenance. Use for XLSX, CSV, or TSV workbooks containing CAS numbers, compound names, calculated retention indices, sensory descriptors, odor thresholds, or olfactory-receptor evidence; for selecting among NIST, PubChem, Pyrfume, M2OR, MFFI, and the permission-gated ChemicalBook compatibility connector; and for verifying analysis-ready outputs. Do not use to bypass access controls, relicense source data, or make biomedical or machine-learning claims unsupported by the exported evidence.
2+
name: curate-aroma-data
3+
description: Use AromaNexus to validate, normalize, enrich, and export flavor, odor, aroma, and chemical-sensory datasets with source-level provenance. Use for XLSX, CSV, or TSV workbooks containing CAS numbers, compound names, calculated retention indices, sensory descriptors, odor thresholds, or olfactory-receptor evidence; for selecting among NIST, PubChem, Pyrfume, M2OR, MFFI, and the permission-gated ChemicalBook compatibility connector; and for verifying analysis-ready outputs. Do not use to bypass access controls, relicense source data, or make biomedical or machine-learning claims unsupported by the exported evidence.
44
---
55

6-
# Curate Flavor Data
6+
# Curate Aroma Data
77

8-
Build traceable compound tables through the repository's `flavor-data` CLI. Keep the skill as an orchestration layer; modify provider behavior in the Python package, not here.
8+
Build traceable compound tables through the repository's `aromanexus` CLI. Keep the skill as an orchestration layer; modify provider behavior in the Python package, not here.
99

1010
## Workflow
1111

1212
1. Inspect the input without modifying it.
13-
- Run `python .agents/skills/curate-flavor-data/scripts/inspect_workbook.py INPUT` from the repository root.
13+
- Run `python .agents/skills/curate-aroma-data/scripts/inspect_workbook.py INPUT` from the repository root.
1414
- Confirm the row count, exact column names, identifier quality, duplicates, and formula-like cells.
1515
2. Choose the smallest provider set that supplies the requested fields.
1616
- Read [references/provider-matrix.md](references/provider-matrix.md) before any network or browser operation.
@@ -22,12 +22,12 @@ Build traceable compound tables through the repository's `flavor-data` CLI. Keep
2222
- State the input, new output path, selected provider, expected columns, approximate request count, cache behavior, and material access caveats.
2323
- Write a sibling output by default. Do not pass `--force` or overwrite the input unless the user explicitly requests that exact replacement.
2424
4. Run one focused command.
25-
- Identity and odor metadata: `flavor-data pubchem INPUT --identifier-column "CAS Number"`
26-
- Retention indices: `flavor-data nist-ri INPUT --cas-column "CAS Number" --calculated-ri-column "Calculated RI"`
27-
- Names to CAS: `flavor-data resolve-cas INPUT --name-column "Name"`
28-
- Curated descriptors: `flavor-data pyrfume INPUT --archives aromadb,superscent`
29-
- Receptor evidence: `flavor-data m2or INPUT --cas-column "CAS Number"`
30-
- Source inventory: `flavor-data sources`
25+
- Identity and odor metadata: `aromanexus pubchem INPUT --identifier-column "CAS Number"`
26+
- Retention indices: `aromanexus nist-ri INPUT --cas-column "CAS Number" --calculated-ri-column "Calculated RI"`
27+
- Names to CAS: `aromanexus resolve-cas INPUT --name-column "Name"`
28+
- Curated descriptors: `aromanexus pyrfume INPUT --archives aromadb,superscent`
29+
- Receptor evidence: `aromanexus m2or INPUT --cas-column "CAS Number"`
30+
- Source inventory: `aromanexus sources`
3131
5. Verify the result.
3232
- Re-run the inspection script on the output.
3333
- Confirm identical row order and row count, expected new fields, typed status counts, source URL, retrieval time, version, and license/access fields.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Curate Aroma Data"
3+
short_description: "Curate traceable odorant and flavor datasets"
4+
default_prompt: "Use $curate-aroma-data to inspect and enrich this odorant workbook with source provenance."

.agents/skills/curate-flavor-data/references/output-schema.md renamed to .agents/skills/curate-aroma-data/references/output-schema.md

File renamed without changes.

.agents/skills/curate-flavor-data/references/provider-matrix.md renamed to .agents/skills/curate-aroma-data/references/provider-matrix.md

File renamed without changes.

.agents/skills/curate-flavor-data/scripts/inspect_workbook.py renamed to .agents/skills/curate-aroma-data/scripts/inspect_workbook.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""Inspect a flavor-data workbook without modifying it."""
1+
"""Inspect an AromaNexus workbook without modifying it."""
22

33
from __future__ import annotations
44

@@ -11,8 +11,8 @@
1111
if str(REPO_ROOT) not in sys.path:
1212
sys.path.insert(0, str(REPO_ROOT))
1313

14-
from flavor_data_crawler.excel_io import FORMULA_PREFIXES, read_table # noqa: E402
15-
from flavor_data_crawler.identifiers import is_valid_cas, normalize_cas # noqa: E402
14+
from aromanexus.excel_io import FORMULA_PREFIXES, read_table # noqa: E402
15+
from aromanexus.identifiers import is_valid_cas, normalize_cas # noqa: E402
1616

1717

1818
def inspect(path: Path, cas_column: str | None = None) -> dict[str, object]:

.agents/skills/curate-flavor-data/agents/openai.yaml

Lines changed: 0 additions & 4 deletions
This file was deleted.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ __pycache__/
1010
htmlcov/
1111
build/
1212
dist/
13+
.aromanexus-cache/
1314
.flavor-data-cache/

README-CN.md

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
# Flavor Data Crawler
1+
# AromaNexus
22

3-
[![CI](https://github.com/rastagan-git/Flavor-Data-Crawler/actions/workflows/ci.yml/badge.svg)](https://github.com/rastagan-git/Flavor-Data-Crawler/actions/workflows/ci.yml)
3+
[![CI](https://github.com/rastagan-git/AromaNexus/actions/workflows/ci.yml/badge.svg)](https://github.com/rastagan-git/AromaNexus/actions/workflows/ci.yml)
44
[![Python 3.11+](https://img.shields.io/badge/Python-3.11%2B-3776AB?logo=python&logoColor=white)](https://www.python.org/downloads/)
55

66
[English](README.md) · **简体中文**
77

88
一套重视数据来源追踪的化学—感官数据整理工具:把化合物工作簿扩充为可核查、可继续分析的数据表。
99

10-
Flavor Data Crawler 将化学身份、气相色谱保留指数、气味描述、阈值,以及可选的嗅觉受体实验结果串联起来。它会保留原始表格,规范化不同来源的结果,并记录每项扩充数据来自哪里。输出可作为后续统计分析、化学信息学与边界清晰的机器学习实验输入。
10+
AromaNexus 将化学身份、气相色谱保留指数、气味描述、阈值,以及可选的嗅觉受体实验结果串联起来。它会保留原始表格,规范化不同来源的结果,并记录每项扩充数据来自哪里。输出可作为后续统计分析、化学信息学与边界清晰的机器学习实验输入。
1111

1212
```text
1313
XLSX / CSV / TSV
@@ -54,8 +54,8 @@ python -m pip install -e .
5454
安装后先确认版本并查看所有数据源的访问模式:
5555

5656
```bash
57-
flavor-data --version
58-
flavor-data sources
57+
aromanexus --version
58+
aromanexus sources
5959
```
6060

6161
## 快速开始
@@ -64,27 +64,27 @@ CLI 支持 `.xlsx`、`.csv` 和 `.tsv`。列名均可修改;下面使用默认
6464

6565
```bash
6666
# 规范化身份、理化性质、同义词、CAS 标识符与带来源的气味文本
67-
flavor-data pubchem compounds.xlsx --identifier-column "CAS Number"
67+
aromanexus pubchem compounds.xlsx --identifier-column "CAS Number"
6868

6969
# 在 NIST 中寻找最接近实验计算值的保留指数
70-
flavor-data nist-ri data.xlsx \
70+
aromanexus nist-ri data.xlsx \
7171
--cas-column "CAS Number" \
7272
--calculated-ri-column "Calculated RI"
7373

7474
# 通过 NIST WebBook 将化合物名称解析为 CAS
75-
flavor-data resolve-cas names.xlsx --name-column "Name"
75+
aromanexus resolve-cas names.xlsx --name-column "Name"
7676

7777
# 查询选定的 Pyrfume 集合;缺少 CID 时会通过 PubChem 解析
78-
flavor-data pyrfume compounds.xlsx --archives aromadb,superscent
78+
aromanexus pyrfume compounds.xlsx --archives aromadb,superscent
7979

8080
# 可选的分子—嗅觉受体实验依据
81-
flavor-data m2or compounds.xlsx --cas-column "CAS Number"
81+
aromanexus m2or compounds.xlsx --cas-column "CAS Number"
8282

8383
# 需要交互浏览器的兼容数据源
84-
flavor-data mffi compounds.xlsx --cas-column "CAS Number"
84+
aromanexus mffi compounds.xlsx --cas-column "CAS Number"
8585

8686
# 设有许可门槛的旧版数据源;命令会要求明确确认
87-
flavor-data chemicalbook-legacy compounds.xlsx --cas-column "CAS Number"
87+
aromanexus chemicalbook-legacy compounds.xlsx --cas-column "CAS Number"
8888
```
8989

9090
在 PowerShell 中,请把多行命令写成一行,或将 Bash 的 `\` 续行符换成 PowerShell 的反引号。
@@ -93,19 +93,19 @@ flavor-data chemicalbook-legacy compounds.xlsx --cas-column "CAS Number"
9393

9494
| 命令 | 默认输入列 | 用途 | 默认输出后缀 |
9595
| --- | --- | --- | --- |
96-
| `flavor-data sources` || 列出数据源、用途和访问方式;`providers` 是别名。 ||
97-
| `flavor-data nist-ri INPUT` | `CAS Number``Calculated RI` | 在原流程指定的 NIST 非极性柱、自定义升温 RI 表中匹配最接近值。 | `_nist_result` |
98-
| `flavor-data resolve-cas INPUT` | `Name` | 通过 NIST 将无歧义的化合物名称解析为 CAS Registry Number。 | `_with_cas` |
99-
| `flavor-data pubchem INPUT` | `CAS Number` | 添加 CID、名称、结构标识符、选定性质、同义词、CAS 标识符和带来源的气味注释。 | `_pubchem` |
100-
| `flavor-data pyrfume INPUT` | `PubChem CID`;若需解析 CID,则用 `CAS Number` | 匹配白名单内的固定版本档案:`aromadb``flavornet``superscent`;默认 `aromadb,superscent`| `_pyrfume` |
101-
| `flavor-data m2or INPUT` | `CAS Number` | 汇总分子—受体配对、响应配对、物种、人类响应受体和研究 DOI。 | `_m2or` |
102-
| `flavor-data mffi INPUT` | `CAS Number` | 通过可见 Chrome 获取中英文名、感官特征和水中阈值;确认不需要交互时才使用 `--headless`| `_mffi_result` |
103-
| `flavor-data chemicalbook-legacy INPUT` | `CAS Number` | 保留原有气味、阈值和香型交互流程;在确认有书面许可前禁用。 | `_cb_result` |
96+
| `aromanexus sources` || 列出数据源、用途和访问方式;`providers` 是别名。 ||
97+
| `aromanexus nist-ri INPUT` | `CAS Number``Calculated RI` | 在原流程指定的 NIST 非极性柱、自定义升温 RI 表中匹配最接近值。 | `_nist_result` |
98+
| `aromanexus resolve-cas INPUT` | `Name` | 通过 NIST 将无歧义的化合物名称解析为 CAS Registry Number。 | `_with_cas` |
99+
| `aromanexus pubchem INPUT` | `CAS Number` | 添加 CID、名称、结构标识符、选定性质、同义词、CAS 标识符和带来源的气味注释。 | `_pubchem` |
100+
| `aromanexus pyrfume INPUT` | `PubChem CID`;若需解析 CID,则用 `CAS Number` | 匹配白名单内的固定版本档案:`aromadb``flavornet``superscent`;默认 `aromadb,superscent`| `_pyrfume` |
101+
| `aromanexus m2or INPUT` | `CAS Number` | 汇总分子—受体配对、响应配对、物种、人类响应受体和研究 DOI。 | `_m2or` |
102+
| `aromanexus mffi INPUT` | `CAS Number` | 通过可见 Chrome 获取中英文名、感官特征和水中阈值;确认不需要交互时才使用 `--headless`| `_mffi_result` |
103+
| `aromanexus chemicalbook-legacy INPUT` | `CAS Number` | 保留原有气味、阈值和香型交互流程;在确认有书面许可前禁用。 | `_cb_result` |
104104

105-
使用 `flavor-data COMMAND --help` 查看列名及数据源专用选项。全局参数必须写在子命令之前:
105+
使用 `aromanexus COMMAND --help` 查看列名及数据源专用选项。全局参数必须写在子命令之前:
106106

107107
```bash
108-
flavor-data --cache-dir .cache/flavor-data --timeout 30 pubchem compounds.xlsx
108+
aromanexus --cache-dir .cache/aromanexus --timeout 30 pubchem compounds.xlsx
109109
```
110110

111111
### 输出、检查点与覆盖保护
@@ -116,18 +116,18 @@ flavor-data --cache-dir .cache/flavor-data --timeout 30 pubchem compounds.xlsx
116116

117117
```bash
118118
# 明确指定输出位置
119-
flavor-data pubchem compounds.xlsx --output results/compounds_enriched.xlsx
119+
aromanexus pubchem compounds.xlsx --output results/compounds_enriched.xlsx
120120

121121
# 每处理 10 行保存一次恢复检查点;设为 0 可关闭
122-
flavor-data pubchem compounds.xlsx --checkpoint-every 10
122+
aromanexus pubchem compounds.xlsx --checkpoint-every 10
123123

124124
# 明确覆盖一个已存在的目标文件
125-
flavor-data pubchem compounds.xlsx --output compounds_pubchem.xlsx --force
125+
aromanexus pubchem compounds.xlsx --output compounds_pubchem.xlsx --force
126126
```
127127

128128
检查点形如 `compounds_pubchem.partial.xlsx`:运行期间定期刷新,中断后保留,最终文件写入成功后删除。若目标文件已存在,命令会停止,除非显式传入 `--force`。建议输出到新文件,不要直接覆盖输入。
129129

130-
成功的 HTTP 响应与下载快照默认缓存到 `~/.cache/flavor-data-crawler`。如需更改位置,请在子命令之前传入 `--cache-dir`
130+
成功的 HTTP 响应与下载快照默认缓存到 `~/.cache/aromanexus`。如需更改位置,可设置 `AROMANEXUS_CACHE_DIR`,或在子命令之前传入 `--cache-dir`;更名前的缓存环境变量仍可兼容使用
131131

132132
## 数据来源、访问方式与权利边界
133133

@@ -144,22 +144,24 @@ flavor-data pubchem compounds.xlsx --output compounds_pubchem.xlsx --force
144144

145145
## Codex 项目 Skill
146146

147-
仓库内置了项目级 Skill:`.agents/skills/curate-flavor-data/`。在 Codex 中可直接调用:
147+
仓库内置了项目级 Skill:`.agents/skills/curate-aroma-data/`。在 Codex 中可直接调用:
148148

149149
```text
150-
$curate-flavor-data
150+
$curate-aroma-data
151151
```
152152

153153
该 Skill 会检查工作簿、选择满足需求的最小数据源组合、预览访问及输出影响、执行一个聚焦命令,并核对行数、结构、状态和来源记录。它只是本软件包之上的流程编排指南,不是另一套爬虫,也不会自动赋予数据使用权。
154154

155155
也可以直接运行其中只读的工作簿检查工具:
156156

157157
```bash
158-
python .agents/skills/curate-flavor-data/scripts/inspect_workbook.py compounds.xlsx
158+
python .agents/skills/curate-aroma-data/scripts/inspect_workbook.py compounds.xlsx
159159
```
160160

161161
## 旧版兼容入口
162162

163+
更名前的 `flavor-data` 命令与 `flavor_data_crawler` Python 命名空间继续作为兼容别名。新集成建议使用 `aromanexus`,现有自动化无需立刻重写。
164+
163165
原有脚本与 Windows 启动器仍然保留,继续支持固定的工作簿布局:
164166

165167
| 启动器 | 脚本 | 预期工作簿 | 必需列 | 输出 |

0 commit comments

Comments
 (0)