Files
2026-07-10 17:59:59 +08:00

249 lines
9.6 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 回答:
下面我把“基因家族通用版”的规范**整理成一份可以直接落地/写进项目文档的 v2.0 版本**(保留你现有 `entities` / `relations` 两段式,向后兼容;同时补齐“可追溯、可约束、可带上下文”的硬要求)。
---
# 基因家族通用增强版实体-关系提取规范 v2.0(整理版)
## 1. 目标与原则
### 1.1 适用范围
适用于**任意植物/动物/真菌等物种的基因家族研究**:SPL、MYB、NLR、AP2/ERF、CYP、GRAS、bHLH、ABC、HSP、TPS…
覆盖常见论文模块:家族鉴定、分组/系统树、结构域/基序、复制与共线性、表达谱、调控/互作、表型/性状关联、数据集与数据库证据。
### 1.2 三条硬约束(必须执行)
1) **可追溯**:任何中高置信断言必须带 `provenance[]`,能定位到文献 chunk / 图表 / 补充表 / 数据表行。
2) **可约束**:关系必须满足 **domain/range**(源实体类型→目标实体类型)与**默认方向**。
3) **可检索上下文**:条件信息(tissue/stage/treatment/time/assay/log2fc/p_adj 等)统一放 `qualifiers`,不要只写在 description 里。
---
## 2. 输出 JSON 顶层结构(保持兼容)
```json
{
"entities": [ ... ],
"relations": [ ... ]
}
```
---
## 3. entities 规范(通用字段 + 类型模板)
### 3.1 entity 通用字段(所有实体都支持)
- `id`:唯一标识(必填)
- `name`:人类可读名称(必填)
- `type`:实体类型枚举(必填)
- `species`:所属物种(对 gene/protein/transcript/tissue 等强建议)
- `attributes`:结构化属性对象(建议)
- `description`:补充描述(可选)
- `provenance`:证据指针数组(可选;当 entity 是从文献/数据库抽取的关键事实时建议提供)
> 注意:**不要把关键字段都塞进 description**,优先进入 `attributes`。
### 3.2 实体类型枚举(基因家族通用“必备集合”)
按功能分组给你一份“推荐最小全集”(你可以先实现这批):
#### A) 核心生物实体(Core Bioentities)
- `gene`
- `transcript`(可选)
- `protein`
- `gene_family`
- `gene_subfamily`(或 `phylo_clade`)
#### B) 家族定义资产(Family Definition Assets)
- `family_definition`
- `hmm_model`
- `protein_domain`
- `motif`
- `domain_architecture`
#### C) 进化与基因组(Evolution/Genome)
- `organism`
- `cultivar` / `strain`
- `genome_build`
- `genomic_region`
- `syntenic_block`
- `orthogroup`
- `duplication_event`
#### D) 表达/处理/表型(Expression/Treatment/Phenotype)
- `tissue`
- `cell_type`(可选)
- `developmental_stage`
- `treatment`
- `hormone`
- `environmental_factor`
- `phenotype`
- `trait`
#### E) 数据与证据(Data/Evidence)
- `publication`
- `doc_chunk`
- `figure`
- `table`
- `supplement`
- `dataset`
- `database`
- `assay`
- `method`
### 3.3 不同实体类型的最小必填模板(建议你做 validator)
- `gene / protein / transcript`:至少 `id + name + type + species`
- `protein_domain`:`pfam_id` 或 `interpro_id` 至少一个(放 `attributes`)
- `publication`:DOI 或 PMID(放 `id` 或 `attributes.external_id`)
- `genomic_region`:`chromosome/start/end/strand`(放 `attributes`)
---
## 4. relations 规范(通用字段 + 约束)
### 4.1 relation 通用字段
- `id`:唯一标识(建议)
- `source`:源实体 ID(必填)
- `target`:目标实体 ID(必填)
- `type`:关系类型枚举(必填)
- `confidence`:`high | medium | low`(必填,默认 low)
- `description`:自然语言描述(可选)
- `qualifiers`:结构化上下文(强建议)
- `provenance`:证据指针数组(**当 confidence ≥ medium 时强制**)
---
## 5. 关系类型枚举(按家族场景“最常用/最稳”的集合)
> 下面是 v2.0 建议优先支持的关系集合(能覆盖 80% 基因家族论文问答)。
> 每个关系都有:**默认方向** + **domain/range 约束** + **推荐 qualifiers**。
### 5.1 家族归属与分组(Gene family essentials)
- `member_of`:`gene/protein → gene_family`
- `classified_into`:`gene/protein → gene_subfamily/phylo_clade`
- qualifiers:`tree_method, alignment_method, scheme`
- `defined_by`:`gene_family → family_definition`
- `uses_model`:`family_definition → hmm_model`
- qualifiers:`threshold, db_version`
- `has_domain`:`protein → protein_domain`
- qualifiers:`start, end, evalue, db`
- `has_motif`:`protein → motif`
- qualifiers:`start, end, score`
- `has_architecture`:`protein → domain_architecture`
### 5.2 表达关系(Expression)
> **统一命名与方向**:一律使用 `upregulated_in` 等形式,避免 `upregulates` 混乱。
- `expressed_in`:`gene/transcript/protein → tissue/cell_type`
- qualifiers:`assay, time_point, stage`
- `upregulated_in`:`gene/transcript → treatment/environmental_factor`
- qualifiers:`log2fc, p_adj, assay, time_point, tissue, stage`
- `downregulated_in`:同上
- `induced_by`:`gene/transcript → treatment/hormone`
- qualifiers:`assay, time_point, tissue, stage`
- `repressed_by`:同上
- `temporally_expressed`:`gene/transcript → developmental_stage`
- qualifiers:`assay, tissue`
### 5.3 调控与互作(Regulation/Interaction)
- `regulates`:`gene/protein/mirna → gene/transcript/protein/process`
- qualifiers:`direction(optional:+/-/unknown), assay`
- `activates`:`protein/transcription_factor → gene/process`
- `inhibits`:同上
- `binds_to`:`protein → promoter_element/genomic_region`
- qualifiers:`assay (ChIP/EMSA), motif`
- `targets`:`mirna → gene/transcript`
- qualifiers:`assay (degradome/5RACE)`
- `interacts_with`:`protein ↔ protein`
- qualifiers:`assay (Y2H/BiFC/CoIP)`
### 5.4 功能与表型(Function/Phenotype)
- `involved_in`:`gene/protein → biological_process/signaling_pathway`
- `affects`:`gene/protein → trait`
- `controls`:`gene/protein → phenotype`
- `associated_with`:`gene → trait/phenotype`
- qualifiers:`source (GWAS/QTL), p_value`
### 5.5 进化关系(Evolution)
- `homologous_to`:`gene/protein ↔ gene/protein`
- qualifiers:`method (BLAST/tree/HMM)`
- `orthologous_to`:`gene ↔ gene`(通常跨物种)
- qualifiers:`source (orthofinder/tree/synteny)`
- `paralogous_to`:`gene ↔ gene`(通常同物种)
- qualifiers:`dup_type`
- `belongs_to_orthogroup`:`gene/protein → orthogroup`
- `syntenic_with`:`gene/genomic_region ↔ gene/genomic_region`
- qualifiers:`block_id, score`
- `duplicated_from`:`gene → duplication_event`
- qualifiers:`dup_type`
- `duplicated_to`:`gene → gene`
- qualifiers:`dup_type, ks(optional)`
### 5.6 数据与来源(Data/Provenance glue)
- `annotated_in`:`gene/protein → database`
- qualifiers:`accession`
- `stored_in`:`dataset → database`
- `reported_in`:`entity/relation → publication`(可选;通常 provenance 已足够)
---
## 6. provenance(证据指针)统一标准:实现“可追溯答案”的关键
### 6.1 provenance 最小字段(推荐你做成强校验)
```json
"provenance": [{
"source_type": "publication|dataset|database",
"source_id": "doi:...|pmid:...|GSE...|UniProt:...",
"doc_chunk_id": "chunk_xxx",
"locator": { "page_start": 3, "page_end": 3, "figure": "Fig.1", "table": "Table S2", "supplement": "Additional file 4" },
"snippet": "可复核的原文/图注/表格行(可截断)",
"evidence_level": "experiment|omics|prediction|curation",
"method": "qRT-PCR|RNA-seq|HMMER|MEGA|MCScanX|..."
}]
```
### 6.2 强规则(建议)
- `confidence = high/medium` ⇒ 必须有 `provenance[]`,且每条至少含 `source_id + doc_chunk_id + locator.page + snippet`
- `confidence = low` ⇒ 可无 provenance(但下游回答要降级措辞)
---
## 7. qualifiers(上下文限定)统一格式
统一放在 relation 的 `qualifiers`,建议支持这些常用键:
- 表达类:`tissue, stage, treatment, time_point, assay, log2fc, p_adj`
- 结构域类:`start, end, evalue, db`
- 系统树/分组:`tree_method, alignment_method, bootstrap, scheme`
- 共线性/复制:`dup_type, ks, ka_ks, block_id, score`
---
## 8. 校验规则(Validator 建议做的事)
### 8.1 实体校验
- id 唯一
- type 在枚举中
- gene/protein/transcript 必须有 species
- protein_domain 必须有 pfam_id 或 interpro_id
### 8.2 关系校验
- source/target 必须存在
- type 在枚举中
- 满足 domain/range 约束(例如 expressed_in 不允许 gene → treatment)
- confidence≥medium ⇒ provenance 强制存在且字段完整
---
## 9. 从你现有文档迁移到 v2.0 的最小改动清单(你马上能做)
1) **把 `evidence: "phylogenetic analysis"` 升级为 `provenance[]`**(含 chunk/page/snippet)
2) **统一表达关系命名**:删掉/禁止 `upregulates`,统一 `upregulated_in / induced_by` 等
3) **给每个 relation 加 qualifiers**:把组织/阶段/处理/时间点/方法从 description 迁移出来
4) **加 domain/range 约束表**:作为配置或 schema 扩展(越早做越省事)
5) **补齐家族专用实体**:`family_definition/hmm_model/domain_architecture/orthogroup/duplication_event/phylo_clade`
---
如果你希望我再“整理得更工程化一点”,我可以继续把上面 v2.0 输出成两份**可直接复制进仓库**的资产(你不需要再手工改):
1) `relation_constraints.yaml`:每个关系的 domain/range/默认方向/必填 qualifiers/是否强制 provenance
2) `enhanced_entity_relation_schema_v2.json`:JSON Schema 校验文件(支持自动 validator)