XRD 衍射匹配说明
物相鉴定 · 靶材选择 · 匹配原理 · API 端点
概述
XRD(X 射线衍射)物相鉴定是材料表征的核心手段。本平台基于 pymatgen 从全量材料的 CIF 晶体结构预计算衍射峰, 构建覆盖 HEA / TRA / ELA 多数据集的 XRD 库。你只需粘贴实验测得的衍射峰 2θ(°)列表, 系统即按峰位与强度相似度返回最相近的晶体结构,辅助快速物相鉴定。
- 输入:2θ 列表(可带强度
2θ:强度),支持逗号 / 空格 / 换行分隔。 - 输出:候选材料(MP-ID、数据集、F1、查全率、匹配峰及 hkl),可展开查看完整衍射图。
- 多靶材:支持 Cu / Mo / Co / Cr / Ag 等常见靶材,衍射峰位置随波长变化。
靶材选择
不同靶材波长不同,衍射峰的绝对位置随之改变;选型需结合样品的吸收系数、铁磁性与分辨率需求。
| 靶材 | 波长 (Å) | 优势 | 注意事项 |
|---|---|---|---|
| Cu Kα | 1.5406 | 通用性强,波长适中,适合大多数样品(有机物、无机材料)。 | 对吸收系数高的样品(如含铁材料)可能有较强吸收效应。 |
| Mo Kα | 0.7093 | 穿透力强,适合高吸收系数材料(金属、含铁化合物)。 | 波长较短,灵敏度较低,可能不适合低吸收系数样品。 |
| Co Kα | 1.7889 | 适合铁磁性样品(铁、钢等),减少荧光干扰。 | 波长较长,对有机材料可能不适用。 |
| Cr Kα | 2.2909 | 适用于特殊铁磁材料与部分金属材料。 | 波长过长,对某些样品分辨率较低。 |
| Ag Kα | 0.5608 | 适合非常高吸收系数的材料(重金属化合物)。 | 波长过短,灵敏度可能不足。 |
匹配原理
检索采用「三强峰优先」策略:每个材料在数据库中预存其 三强峰(按强度由强到弱峰 1 ≥ 峰 2 ≥ 峰 3)。 你的实验峰也取强度最高的 3 个作为搜索关键,优先在主库三强索引上召回候选,再取候选完整图谱匹配其余峰, 以 F1 与 查全率 排序。
- 三强峰:建议直接提供三强峰(强度最高的 3 个);至少需 3 个峰方可检索。
- 三强命中:候选材料三强峰中与查询关键峰匹配的个数(0–3),排序的首要依据。
- 查全率:你的实验峰中被解释的比例,越高越可信。
- F1:查准率与查全率的调和平均,兼顾命中与精简。
- 峰位容差:默认 0.7°,控制峰位匹配的允许偏差。
- hkl 标记:六方 / 三方晶系为 4 指数 Miller-Bravais,其余为 3 指数。
- 排序优先「三强命中数 → F1 → 查全率」。
API 端点
/api/v1/xrd
XRD 衍射匹配通过统一端点提供,按传入参数自动切换三种模式:匹配模式(传 peaks,按实验峰检索相似材料)、图谱模式(传 mp_id,返回该材料完整衍射峰)、浏览模式(均不传,返回前 N 条默认列表)。参数优先级为 peaks > mp_id > 浏览。匹配与浏览结果均按 mp_id 跨数据集去重:同一材料在多个数据集(HEA / TRA / ELA)有记录时只保留优先级最高的一条(HEA → TRA → ELA)。速率限制与错误响应遵循平台统一策略,详见 API 端点文档。
查询参数
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
| peaks | string | - | 衍射峰列表,逗号 / 空格 / 换行分隔,形如 21.2,44.5,64.8 或 21.2:80,44.5:50(2θ:强度);传入即进入匹配模式,至少需 3 个峰、最多 100 个峰 |
| mp_id | string | - | 材料 ID(如 mp-16496);传入即返回该材料完整衍射图谱(图谱模式) |
| tolerance | float | 0.7 | 峰位容差(°),控制峰位匹配的允许偏差(0.1–5) |
| limit | int | 10 | 匹配模式返回 1–200 条;浏览模式返回 1–100 条(默认 10,即每页条数) |
| page | int | 1 | 浏览模式页码(从 1 开始),与 limit 配合翻页;匹配 / 图谱模式忽略此参数 |
| target | string | CuKa | 靶材(辐射源):CuKa / MoKa / CoKa / CrKa / AgKa;衍射峰位置随波长变化 |
| format | string | json | 返回格式:json(默认,完整 JSON 信封)或 raw(纯文本 xy,含 hkl 与 # generated using pymatgen 注释) |
匹配模式:按衍射峰匹配材料
curl "https://heas.labs.gt.ac.cn/api/v1/xrd?peaks=21.2,44.5,64.8:80&tolerance=0.7&limit=50&target=CuKa"
{
"success": true,
"query": {
"peaks": [{"t":21.2,"i":80},{"t":44.5,"i":50},{"t":64.8,"i":30}],
"tolerance": 0.7
},
"count": 1,
"results": [
{
"mp_id": "mp-16496",
"type": "HEA",
"formula": "AlFe3",
"score": 0.912,
"strong_hits": 3,
"recall": 1.0,
"matched": 3,
"query_peaks": 3,
"matched_peaks": [
{"query_t":21.2,"match_t":21.18,"match_hkl":"(111)","delta":0.02},
{"query_t":44.5,"match_t":44.52,"match_hkl":"(200)","delta":0.02},
{"query_t":64.8,"match_t":64.79,"match_hkl":"(220)","delta":0.01}
],
"three_strong": [21.18, 44.52, 64.79]
}
]
}
匹配结果 results[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
| mp_id | string | 材料 ID |
| type | string | 数据集:HEA / TRA / ELA |
| formula | string | 化学式 |
| score | float | F1 综合得分(查准率与查全率的调和平均) |
| strong_hits | int | 三强命中数(0–3),排序首要依据 |
| matched_peaks | array | [{query_t, match_t, match_hkl, delta}],逐个实验峰的最近邻匹配 |
| three_strong | array | 材料三强峰 2θ 位置(由强到弱) |
图谱模式:获取材料衍射图谱
curl "https://heas.labs.gt.ac.cn/api/v1/xrd?mp_id=mp-16496&target=CuKa"
{
"success": true,
"data": {
"mp_id": "mp-16496",
"type": "HEA",
"n_peaks": 28,
"radiation": "Cu Kα",
"wavelength": 1.5418,
"three_strong": [21.18, 44.52, 64.79],
"three_strong_by_target": {"CuKa": [21.18, 44.52, 64.79]},
"peaks": [
{"t":21.18,"i":100,"hkl":"(111)"},
{"t":44.52,"i":55,"hkl":"(200)"},
{"t":64.79,"i":35,"hkl":"(220)"}
]
}
}
# XRD pattern
mp_id: mp-16496
type: HEA
radiation: Cu Kα
wavelength: 1.5418 A
# generated using pymatgen
2theta(deg) intensity(%) hkl
21.1800 100.00 (111)
44.5200 55.00 (200)
64.7900 35.00 (220)
浏览模式:默认衍射图谱列表
不传 peaks / mp_id 时返回数据库预览列表(仅目录信息,不含完整图谱)。
支持 page + limit 翻页;响应附带 total / page / total_pages 供客户端分页。
同一材料可能同时存在于 HEA / TRA / ELA 多个数据集,浏览列表按 HEA → TRA → ELA 优先级跨数据集去重,仅保留最高优先级的一条(例如某 mp_id 在 HEA 与 TRA 均有记录时只返回 HEA 版本),避免重复列出。
curl "https://heas.labs.gt.ac.cn/api/v1/xrd?limit=10&page=2&target=CuKa"
{
"success": true,
"query": {"mode":"browse","target":"CuKa","page":2,"per_page":10},
"count": 10,
"total": 170157,
"page": 2,
"total_pages": 17016,
"results": [
{
"mp_id": "mp-10001",
"type": "TRA",
"element": "W",
"n_peaks": 18,
"three_strong": [30.45, 40.12, 65.33],
"formula": "W"
}
]
}
常见问题
- 为什么不同靶材结果不同?
- 衍射峰位置由波长决定,不同靶材(波长不同)下同一材料的 2θ 峰位不同,匹配需使用与实验一致的靶材库。
- 少量主峰能否匹配?
- 可以。主峰(前几个强峰)命中即可获得高查全率,系统优先返回能解释最多实验峰的材料。
- hkl 中为什么有 4 个数字?
- 六方 / 三方晶系采用 Miller-Bravais 四指数 (h,k,i,l),其余晶系为三指数 (h,k,l),均为标准表示。
- 浏览模式如何翻页?
- 浏览模式(不传 peaks / mp_id)支持
limit(每页条数,1–100)与page(页码,从 1 开始)翻页;响应含total/page/total_pages方便客户端分页,网页端预览亦提供上一页 / 下一页导航。 - 为什么同一个材料只出现一次?
- 数据覆盖 HEA / TRA / ELA 多个数据集,同一材料可能重复出现。浏览列表按 HEA → TRA → ELA 优先级跨数据集去重,仅保留最高优先级的一条,详情接口则按 mp_id + 数据集精确定位、不受去重影响。