信息速览
GARD 是「Genetic and Rare Diseases Information Center」的缩写,中文多译作遗传与罕见病信息中心。它是美国依据 2002 年《罕见病法案》设立的公共信息项目,由国立卫生研究院下属的国家转化科学促进中心(NCATS)管理,国家人类基因组研究所(NHGRI)出资,成立于 2002 年。它做的事情可以用一句话概括:把 Orphanet、OMIM、MONDO、HPO、MedGen 与 MedlinePlus 里写给医生和研究者看的疾病描述,改写成患者与家属能一屏读完的通俗页面,再配上患者组织名录与临床试验入口。
它与一般意义的疾病数据库不同。它不生产原始知识,上游的每一个事实都能在别处找到;它生产的是「可读性」——同一个病,在 OMIM 里是十几页带文献引用的专业综述,在这里是一段能读给家属听的概述加一张症状清单。代价是精确度的损失:基因只给符号不给位点,患病率只给带条件的量级描述,文献引用被折叠进页脚的统一说明。因此把它当作命名归一与科普问答的语料是合适的,把它当作遗传学证据链的一环则不成立。
与它同场出现的还有 Orphanet 与 OMIM,三者的分工值得先说清楚:Orphanet 偏欧洲的临床分类与孤儿药,条目带孤儿药适应症与专家中心;OMIM 偏基因与表型的对应关系,条目由专人撰写并附完整文献;GARD 偏美国官方的患者教育口吻,条目以「怎么找医生、去哪找组织、有什么研究」收尾。下面的速览表把规模与口径先摆出来,再逐层拆。一屏速览见下表。
| 维度 | 内容 |
|---|---|
| 全称 | Genetic and Rare Diseases Information Center |
| 运营方 | NCATS(NIH),NHGRI 出资 |
| 设立依据 | 2002 年《罕见病法案》 |
| 上游来源 | Orphanet、OMIM、MONDO、HPO、MedGen、MedlinePlus |
| 名录条目 | 16,214 条 |
| 有详情页 | 6,265 条 |
| 详情页栏目 | 概述、病因、遗传方式、发病年龄、症状、患者组织、临床研究 |
| 症状术语 | 统一映射到 HPO |
| 疾病身份 | 以 MONDO 为骨架 |
| 语言 | 英文为权威版本,西班牙文仅 356 条 |
| 批量导出 | 一份四列 CSV |
| 检索方式 | 按名称、缩写、同义词、分类标签 |
| 分类体系 | 12 个大类 |
| 明确不含 | 诊疗建议、病例、基因变异、剂量、预后 |
§1 它要解决的具体麻烦
1.1 确诊之后,家属拿到的是十几页文献而不是一段话
罕见病的确诊往往耗时以年计,官方口径给的平均数字是六年以上。确诊那一刻,患者与家属通常得到三样东西:一个写满缩写的诊断名、一叠检验报告、以及一句「这个病很少见,你可以上网查查」。问题恰恰在这里——能查到的资料都是写给专业人员的。OMIM 的条目按基因分段,每一段后面跟着几十条文献编号;Orphanet 的条目按临床特征与流行病学分层,字段密度高但句子上不加解释;综述文章需要订阅,且默认看的人熟悉通路与蛋白名。
换句话说,罕见病信息的问题从来不是「查不到」,而是「查到了读不懂」。GARD 的切入点正是这一层:它不追求比上游更全或更准,它追求同一件事被说成一句普通话。关于页把这件事写得很直白——把写给临床医生与研究者看的科学语言,翻译成能拿去和医生沟通的通俗信息。
这也决定了它的产出形态。别的资源在条目内部追求字段的完整性,它在条目内部追求段落的可读性。同一句话在 OMIM 里可能是一句「p.Gln18dup 导致蛋白聚集」,在 GARD 里是「基因的某处改变使身体产生的蛋白质出了问题」。后者对科研无用,对刚拿到诊断的家庭则是能读懂的第一句话。
1.2 三条常见的错误期待
| 常见期待 | 实际情况 |
|---|---|
| 以为它是一个可以整库下载的疾病数据库 | 批量文件只有一份四列名录,正文段落不随文件提供 |
| 以为它比 Orphanet 或 OMIM 更权威 | 它的信息全部来自这两家加 MONDO,是二手改写 |
| 以为它有基因位点与变异层面的内容 | 基因只列符号,没有位点、没有致病性判定、没有频率 |
1.3 它能给到的与给不到的
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 一份罕见病的规范名称与别名清单 | 名录 CSV 四列,含正名与同义词串 | 够,这是它最实用的部分 |
| 某个病的通俗概述段落 | 详情页开头一段概述 | 够做科普素材,不够做临床判断 |
| 某个病的症状清单 | HPO 术语加常见/少见两档 | 够做表型检索,不够做鉴别诊断 |
| 某个病的遗传方式 | 一句话模式说明加教育性解释 | 够理解,不够做遗传咨询 |
| 某个病有哪些患者组织 | 按国家列出的组织名录 | 够找社群,不保证覆盖 |
| 某个病有哪些在研试验 | 指向 ClinicalTrials.gov 的检索入口 | 是跳转,不是本地数据 |
| 基因层面的变异与致病性 | 无 | 不够,须回 OMIM 或 ClinVar |
| 患病率与流行病学的分层估计 | 只有带条件的量级描述 | 不够,须回 Orphanet |
| 可直接训练的成品语料 | 无,需自行抓取并清理 | 不够 |
1.4 你的处境与它能帮到的事
| 你的处境 | 它能帮你什么 | 下一步该做什么 |
|---|---|---|
| 刚拿到罕见病诊断,想先弄懂病名 | 详情页的概述一段,配同义词帮确认叫法 | 用同义词回查病历里的别名,再找遗传科 |
| 做罕见病命名归一,缺一份别名表 | 名录 CSV 的同义词串,一万三千余条带别名 | 按竖线切分后清洗前导空格,再与 MONDO 对齐 |
| 做面向公众的罕见病问答模型 | 详情页的通俗段落是最接近口语的官方表述 | 逐页取正文,注意条款,自行脱敏 |
| 找某个病的患者社群 | 详情页的患者组织名录,含服务对象与国家 | 直接联系组织,核对其自述的服务范围 |
| 需要做基因型与表型的关联分析 | 无基因位点与变异字段 | 转向 OMIM、ClinVar 或 Orphanet |
| 需要各国患病率做卫生经济学测算 | 只有量级描述,无分层估计 | 转向 Orphanet 的流行病学字段 |
1.5 一句话判断
如果你要的是一份「能让家属读懂、让模型学会通俗表述」的罕见病名录,GARD 是少数几个由官方维护、可自由取用的选项;如果你要的是可以进证据链的遗传学事实,它给不了,也不打算给。
1.6 不适合谁:四条边界
第一,不适合需要基因变异级数据的人。GARD 的详情页在病因一节只做两件事:说明这个病是基因改变引起的、列出已知基因的符号。位点、变异类型、致病性分级、人群频率一概没有。想回答「哪个错义变异导致这个表型」,必须回 OMIM 或 ClinVar。
第二,不适合需要流行病学分层的人。关于页写明数据里含「患病率与人群估计」,但落到页面上是「很罕见」「在某些人群更常见」这类量级表述,而不是按国家、按年龄、按性别的分层数字。要拿来做卫生经济学测算,这套口径远远不够。
第三,不适合需要个体化诊疗建议的人。站内每页都带免责声明,明确说所提供信息不能替代医生的判断。它不给剂量、不给方案对比、不给预后判断。任何从它的段落里推出来的治疗结论,都不是它提供的。
第四,不适合需要可复现接口的人。它没有 API 文档,没有版本化数据包,批量文件只有一份按月刷新、文件名带月份的四列名录。想做可复现的批次处理,必须自己记录下载日期与文件哈希,并在上游变动时重新对齐。
§2 数据构成与规格
2.1 三层产物:名录、索引、详情页
GARD 的公开产物分三层,层次之间的定位差别很大,混在一起谈容易出错。
第一层是名录。这是唯一可以整份下载的东西,一份 CSV,四列:GARD 编号、正名、同义词串、详情页地址。编号形如 GARD:0021052,由前缀加七位数字组成。正名是英文的规范写法,同一疾病只用一种写法。同义词串用竖线分隔,多的能到几十个。详情页地址一列,有页面的写完整网址,没页面的留空。
第二层是索引。详情页的列表页与搜索框依赖一份 JSON 资产文件,内容是每个有页面的疾病的编号、正名、页面路径别名、同义词数组,以及三组标签:疾病大类、关注领域、接诊科室。这份文件不出现在任何下载说明里,是从页面资源里读到的,但它比 CSV 更有结构,因为它把同义词拆成了数组,也带上了分类。
第三层是详情页。这是内容的主战场,每个页面固定七个栏目,加上一组面向专业人员的跳转链接。正文不提供批量下载,也没有独立的数据文件,只能逐页取。
2.2 名录的字段字典
| 字段 | 示例 | 类型 | 说明 |
|---|---|---|---|
| ID | GARD:0021052 |
字符串 | 主键,前缀固定,七位数字不省略前导零 |
| Display Name | 10q22.3q23.3 microduplication syndrome |
字符串 | 英文正名,同一疾病唯一 |
| Synonyms | `dup(10)(q22.3q23.3)\ | trisomy 10q22.3q23.3` | 字符串 |
| URL | https://rarediseases.info.nih.gov/?gard_id=0021052 |
字符串 | 有详情页才非空 |
四列里真正每天都用得到的是第一列与第三列。前者用来做稳定外键,后者用来做别名匹配。第二列看起来多余,实际是最容易出错的地方——它看起来和同义词首项重复,但并不总是重复,因为有些条目的正名与任何同义词都不一致。
2.3 索引的字段字典
| 字段 | 类型 | 含义 | 可否用于筛选 |
|---|---|---|---|
id |
整数 | 详情页路径里的数字,与名录编号的数字部分对应 | 是,主键 |
name |
字符串 | 英文正名 | 是,文本检索 |
encodedName |
字符串 | 页面路径别名,去标点后连字符化 | 是,可直接拼 URL |
synonyms |
字符串数组 | 同义词,已拆分,但部分元素仍带前导空格 | 是,别名匹配 |
spanishId |
整数 | 西班牙文页的数字编号,仅部分条目有 | 是,判断有无西语版 |
spanishName |
字符串 | 西班牙文页路径别名 | 否 |
tagsDiseaseCategory |
字符串数组 | 疾病大类,取值自 12 类词表 | 是,最常用的粗筛 |
tagsAccount |
字符串数组 | 关注领域,取自更细的一组子类 | 是,做专项筛查 |
tagsSpecialist |
字符串数组 | 接诊科室,用于推荐该找哪一科 | 是,做科室路由 |
tagsCause |
字符串数组 | 病因归类 | 结构中保留,实际为空 |
这张表里最值得注意的是最后一行。索引里为病因留了一个标签字段,但在抓取到的全部条目里这个字段都没有取值。也就是说,「按病因筛选」这件事在数据层面是预留的,在内容层面尚未落实。任何依赖这个字段的筛选逻辑都会返回空集。
2.4 一条记录的完整解剖
取一个具体的病,它在名录与索引里的样子如下。左列取自名录,右列取自索引,两处描述的是同一条记录的两个侧面。
#-- 名录一行(四列)
GARD:0021052
10q22.3q23.3 microduplication syndrome
dup(10)(q22.3q23.3)|trisomy 10q22.3q23.3
https://rarediseases.info.nih.gov/?gard_id=0021052
#-- 索引一条(JSON 对象的近似形态)
id : 21052
name : "10q22.3q23.3 microduplication syndrome"
encodedName : "10q223q233-microduplication-syndrome"
synonyms : ["dup(10)(q22.3q23.3)", " trisomy 10q22.3q23.3"]
tagsDiseaseCategory : ["Genetics", "Congenital Abnormality"]
tagsAccount : ["Chromosomal Anomaly"]
tagsSpecialist : ["Genetics", "Pediatrics"]
tagsCause : []
两处对照能看出三件事。其一,索引的 id 是整数,名录的编号是带前缀的字符串,两者靠数字部分对齐,21052 与 0021052 指向同一个病。其二,同义词在索引里已拆成数组,但第二个元素带前导空格,直接拿去匹配会失败。其三,索引里的 encodedName 去掉了小数点,10q22.3q23.3 变成 10q223q233,这是拼详情页地址时必须遵守的规则。
2.5 规模的三个数字
关于 GARD 有多大,官方页面给出的数字散落在两三处,口径并不完全一致,使用时必须分开说。
| 口径 | 数字 | 出处 | 性质 |
|---|---|---|---|
| 名录收录的疾病数 | 16,214 | 名录 CSV 行数 | 精确,可复算 |
| 有详情页的疾病数 | 6,265 | 列表页分页计数;CSV 中 URL 非空的行数 | 精确,两处一致 |
| 有西班牙文页的疾病数 | 356 | 索引中带西语编号的条目数 | 精确,可复算 |
| 疾病大类数 | 12 | 分类词表文件 | 精确 |
| 接诊科室标签数 | 34 | 索引标签去重 | 精确,可复算 |
| 全球罕见病估计总数 | 一万以上 | 关于页引用 | 估计值,非本库规模 |
最后一行需要在任何引用里点明:一万以上是全球罕见病的估计总数,不是 GARD 收录的疾病数。GARD 的名录事实上覆盖了这个量级的一半多一点,剩下的一半没有稳定身份,也就无从收录。这一点决定了它不能当作「罕见病全集」来用。
2.6 与同类资源的字段差异
同样是罕见病资源,不同库的字段侧重差别很大,选错会浪费大量时间。
| 维度 | GARD | Orphanet | OMIM |
|---|---|---|---|
| 定位 | 患者与家属的科普页 | 欧洲的临床分类与孤儿药 | 基因与表型的对应 |
| 编号体系 | GARD 前缀加七位数字 | ORPHAcode | 六位 MIM 号,带四类前缀 |
| 疾病身份骨架 | MONDO | 自有本体,向 MONDO 映射 | 自有,向 MONDO 映射 |
| 症状术语 | HPO,常见与少见两档 | 自有临床特征词表 | 自由文本描述 |
| 患病率 | 量级描述 | 分层估计,带地域 | 一般不给 |
| 基因 | 只给符号 | 给基因与部分变异 | 给基因、等位变异、分子机制 |
| 文献引用 | 折叠为统一说明 | 按条目给 | 逐段给编号 |
| 批量导出 | 一份四列名录 | 多类产品,含本体与映射 | 受限,需许可 |
| 语言 | 英文为主,西班牙文三百余条 | 多语种 | 英文 |
从这张表能看清一件事:GARD 的每一个字段,在上游都有更细的版本。它的增量不在字段,而在句子的可读性与栏目编排的面向对象。理解这一点,才不会为了要患病率而跑到 GARD 里空手而归。
§3 它的身份:谁的信息,对谁负责
3.1 三个名字,一个东西
GARD 有三个层面的名字。全称是「Genetic and Rare Diseases Information Center」,这是法案与预算文件里的正式称谓;简称 GARD 是所有人日常用的;在网址里它是 rarediseases.info.nih.gov 这个子域。中文语境里译名不统一,有译作「遗传与罕见病信息中心」的,也有直接音译保留缩写的。
需要说明的是,GARD 这个名字在美国语境里还有另一个常见所指——「Global Alliance against Respiratory Diseases」一类同名缩写。检索时必须以全称或站点域名为准,只搜四个字母会混入大量无关结果。
3.2 运营方的实际构成
关于页写得很清楚:GARD 由 NCATS 管理,NHGRI 参与出资。这两家的关系决定了它的气质——NCATS 的使命是「转化科学」,即把实验室与临床的发现变成可用的公共产品,因此 GARD 被定义为转化链条上的一环,而不是一个学术数据库。关于页自己也这么说:GARD 强调转化科学。
运营并不完全由联邦雇员完成。项目历史上长期以合同方式委托外部机构承担信息检索与内容运营,公开的合同记录显示承接方为一家位于弗吉尼亚州的咨询公司,联邦财政年度预算在数百万美元量级,其中绝大部分来自 NCATS,少部分来自 NHGRI。这意味着站点的日常产出是「按合同履约的内容加工」,而不是「研究人员自发维护的知识库」。
信息专员的设置是它区别于其他数据库的另一点。站内明确提供电话与表单两种求询方式,并给出二到十个工作日的答复预期。这一点很重要:GARD 从一开始就不只是一个网站,它是一个有真人接线的信息服务台。公开的项目说明里提到,累计答复的咨询量在十万条量级。
3.3 对谁负责:三种责任边界
| 责任对象 | 它承担的部分 | 它不承担的部分 |
|---|---|---|
| 患者与家属 | 把病名、症状、遗传方式说成人话 | 不做诊断、不给治疗方案、不做预后判断 |
| 上游数据方 | 如实转述 Orphanet、OMIM、MONDO 的事实 | 不承诺与上游同步,也不标注逐句出处 |
| 下游使用者 | 提供可自由取用的名录与页面 | 不提供接口、不提供版本化数据包、不承诺字段稳定 |
把这三条摆在一起看,能提炼出一条使用准则:把 GARD 当作「一份可以引用、可以抓取的患者教育文本」,不要当作「一个可以编程调用的知识接口」。它没有为后者做过设计。
3.4 坐标系的三根轴
GARD 建立的坐标系有三根轴:疾病轴、栏目轴、语言轴。
疾病轴由 GARD 编号定义。编号是七位数字,前缀固定,一经分配就跟着疾病走。但疾病身份本身由 MONDO 决定,一旦上游拆分或合并了某个疾病,GARD 这边要么改页面要么新增编号,旧编号可能失效。因此做长期追踪时,不能只记 GARD 编号,要同时记 MONDO 标识。
栏目轴由七个固定栏目定义。这七栏的顺序是稳定的:概述、病因、遗传方式、发病年龄、症状、患者组织、临床研究。任何两页之间可以按栏目对齐,这对批量抽取是好消息——抽取规则可以一次写好,全站复用。
语言轴由英文与西班牙文两条线定义。英文是权威版本,西班牙文是子集。两者不是逐句对应的翻译关系,而是各自成页,编号也不同。做多语对齐时,只能按疾病身份关联,不能按段落序号关联。
§4 它的手艺:如何把专业表述压成一段话
4.1 七栏的编排逻辑
GARD 的详情页栏目不是随意排的,它对应的是一个人拿到诊断后会依次提出的七个问题:这是什么、为什么是我、会不会传给孩子、什么时候开始的、有什么表现、有没有同类人、有没有办法参与研究。
第一栏是概述,一两句话把病说清楚,通常以「a rare … characterized by …」的句式开头。
第二栏是病因,分基因改变与染色体改变两条支路,选中哪条取决于上游标注。选基因支路时,页面会说明「这个病由下列已知基因的突变引起」,然后列出基因符号;选染色体支路时,说明是数目或结构改变。
第三栏是遗传方式,给出一个模式名,再配一段教育性解释。解释的写法高度模板化,例如常染色体显性一段会说明「患病者把变异传给子女的概率是百分之五十」。
第四栏是发病年龄,把年龄划成产前、新生儿、婴儿、儿童、青少年、成人、老年七档,用选中与未选中表示。
第五栏是症状,按常见与少见两档列 HPO 术语,可以逐个展开看同义词。
第六栏是患者组织,一张表,列出组织名称、服务对象、有用链接、所在国家。
第七栏是临床研究,本体不存试验记录,只解释什么是临床研究、为什么参与,并给出跳转到 ClinicalTrials.gov 的检索链接。
这七栏里,前五栏是「信息」,后两栏是「行动」。这个分工是它最不同于学术数据库的地方——学术库在第六、七栏的位置上通常给的是参考文献与相关条目。
4.2 症状条目如何落到 HPO
症状一栏是本库最有结构的部分,也是唯一能直接做计算的部分。每个症状是一个 HPO 术语,带一个通俗名与一个括号内的规范名。例如「Abnormally small skull」后面括号里是「(Microcephaly)」,「Cross-eyed」后面是「(Strabismus)」。
这种写法的好处是双轨的:对家属而言读的是前面的通俗名,对做匹配的团队而言取的是括号里的规范名。两轨并存意味着任何抽取都要明确取哪一轨——取通俗名会丢失本体对齐,取规范名会丢失可读性。
分档只有两档,这是需要注意的简化。HPO 注解里原本可以表达「非常常见、常见、偶见、罕见」四级频率,GARD 把它压成「常见」与「少见」两档,并用两段固定说明解释含义:常见是「很多人有,但不是所有人都有」,少见是「一些人会有,但多数人没有」。分档的思路对公众友好,对统计无用——两档之间没有可换算的比例。
4.3 发病年龄的七档切分
年龄一栏看起来简单,实际是全站最风格化的设计。七档的边界是固定的:产前指出生前,新生儿指出生到四周,婴儿指一个月到二十三个月,儿童指二到十一岁,青少年指十二到十八岁,成人指十九到六十五岁,老年指六十五岁以上。
每一档旁边写的是区间而不是标签,例如婴儿档旁边写「1-23 months」。这种写法避免了「儿童」这类词在不同语境下含义漂移的问题。但七档之间不重叠也不留缝,边界值归哪一档由站点自己定,跨库对齐时要注意别家的切法可能不同。
页面还会在档位表下方给一句汇总,例如「症状可能始于新生儿与婴儿期」。这句汇总不是表里选中项的机械拼接,而是按语言学规则重新组织的句子,说明后半段的生成是带规则而非纯模板。
4.4 案例:从名录的一行走到详情页的一段
用 GARD:0021052 走一遍,能看清三层产物是怎么串起来的。
第一步,在名录里定位这一行。四列里第三列给出两个同义词:dup(10)(q22.3q23.3) 与 trisomy 10q22.3q23.3。第四列给出地址,说明它有详情页。
第二步,用地址里的编号到索引里取结构。索引里这个病的 encodedName 是 10q223q233-microduplication-syndrome,去掉了小数点。大类标签是「Genetics」与「Congenital Abnormality」,接诊科室是「Genetics」与「Pediatrics」。
第三步才是读详情页。概述一句话说明这是一种罕见的染色体异常,特征是发育迟缓、轻度智力障碍与面部特征异常。病因一栏走的是染色体支路,说明是染色体数目或结构改变所致。症状一栏列出十来个 HPO 术语,含小头、眼距过近、前额宽、斜视。患者组织一栏列了五个组织,多数是泛罕见病组织而非本病专设。这个案例在后面的检索路径与使用指引里会被反复用到。
#-- 在本地名录里做一次同义词反查:给定病历里的别名,找 GARD 编号
import csv
def build_alias_index(path):
idx = {}
with open(path, encoding="utf-8-sig", newline="") as fh:
for row in csv.DictReader(fh):
gid = row["ID"]
#-- 第四列非空才说明有详情页
has_page = bool(row["URL"].strip())
#-- 竖线切分后必须去掉前导空格,否则永远匹配不上
for syn in row["Synonyms"].split("|"):
syn = syn.strip().lower()
if syn:
idx.setdefault(syn, []).append((gid, has_page))
return idx
alias = build_alias_index("GARD_Rare_Disease_List_Sep2026.csv")
print(alias.get("wagr syndrome"))
这段代码里有一处必须强调:row["Synonyms"].split("|") 之后不加 strip(),得到的每一个别名都会带上原文的前置空格。名录 CSV 写成 a|b|c 时看起来没有空格,但索引 JSON 里 " trisomy 10q22.3q23.3" 是带空格的,两种来源混用时不加清洗就会出现「明明有却查不到」的情况。
4.5 通俗化改写的代价
把专业表述压成一段话,这件事有代价,而且代价是可枚举的。
第一是数量词的丢失。上游说「在每十万活产中约若干例」,改写后可能是「非常罕见」。前者能进模型做特征,后者只能进分类器做粗判。
第二是条件限定的丢失。上游说「在北欧人群中更常见」,改写后可能是「在某些人群更常见」。国别信息在改写中被抹掉,这在做地域差异分析时是致命的。
第三是分歧的丢失。同一个病,OMIM 与 Orphanet 对某一表型的描述可能不一致,改写时通常取其中一家或取交集,页面不会告诉你这里有分歧。要看到分歧,只能回上游逐条比对。
这三条代价不是失误,是设计的必然。它面向的人只有一类——需要一句话的人。要求它在保留全部限定条件的同时保持一句话,是不可能的。
§5 取数:从名录 CSV 到逐页抓取
5.1 四条取数路径的取舍
| 路径 | 适合的人 | 代价 | 边界 |
|---|---|---|---|
| 名录 CSV | 做命名归一、做别名表的人 | 一次下载几 MB | 只有四列,无正文 |
| 索引 JSON | 需要分类标签与同义词数组的人 | 需从页面资源里找 | 非官方文档,字段可能变 |
| 网页逐页阅读 | 家属、医生、科普作者 | 人工成本 | 无法批量 |
| 逐页抓取 | 做语料的人 | 需自建队列与限速 | 须自行遵守条款 |
四条路径背后是同一批内容,区别只在「要结构」还是「要文本」。要结构,名录与索引足够;要文本,只能逐页取。
5.2 名录 CSV 的直接使用
名录是唯一有官方说明的批量文件。关于页在「包含哪些疾病」一段里给出下载链接,文件名带月份,最近一次读到的是 2026 年 9 月版。文件本身编码为带 BOM 的 UTF-8,四列表头为 ID、Display Name、Synonyms、URL。
#-- 第一步:下载并核对文件是否完整(列数应为 4)
curl -sL -o gard_list.csv "https://rarediseases.info.nih.gov/"
#-- 第二步:数行数。注意名称里可能有逗号,用 csv 解析而不是 wc -l
python3.11 -c "
import csv
rows = list(csv.DictReader(open('gard_list.csv', encoding='utf-8-sig')))
print('总条数', len(rows))
print('有详情页', sum(1 for r in rows if r['URL'].strip()))
"
第二行演示的坑值得单独说:名录的正名与同义词里含逗号与小括号,直接用行数统计会把带引号的多行字段算错。CSV 解析器能正确处理引号包裹,行数统计不能。
5.3 按分类做粗筛
如果只需要某一类罕见病,用索引里的疾病大类做筛选比逐页读正文高效得多。12 个大类里,遗传病与先天畸形覆盖最广,这两类本身就是 GARD 的主场。
#-- 按疾病大类筛选,并只保留有详情页的条目
import json
with open("diseases_trimmed.json", encoding="utf-8") as fh:
diseases = json.load(fh)
def pick(category):
return [d for d in diseases if category in d.get("tagsDiseaseCategory", [])]
for name in ("Genetics", "Congenital Abnormality", "Neurology"):
print(name, len(pick(name)))
#-- 取出某一类的全部正名与同义词,直接喂给模糊匹配
target = pick("Neurology")
print(target[0]["name"], target[0]["synonyms"][:3])
这段用的大类是索引里的英文原值,不是中文译名。大类词表共 12 项,取值固定,改写就容易筛空。
5.4 详情页的定位规则
详情页没有稳定的编号路由。编号无法直接拼成地址,必须借助路径别名。规则是:正名小写,去掉标点,空格换成连字符。因此 10q22.3q23.3 microduplication syndrome 变成 10q223q233-microduplication-syndrome。
#-- 由索引条目拼出详情页地址,避免手工推导别名
import json, re
def slug(name):
s = name.lower()
s = re.sub(r"[^a-z0-9]+", "-", s) #-- 非字母数字一律换连字符
return s.strip("-")
with open("diseases_trimmed.json", encoding="utf-8") as fh:
diseases = json.load(fh)
for d in diseases[:3]:
assert slug(d["name"]) == d["encodedName"], (d["name"], d["encodedName"])
print(f"https://rarediseases.info.nih.gov/diseases/{d['id']}/{d['encodedName']}")
这里有一个必做的断言。写法一旦出现例外,断言就会失败,失败的信息会直接告知名与别名不匹配。不写断言而直接拼地址,错误会以 404 的形式在几百页之后才暴露,排查成本高得多。
5.5 逐页抓取的纪律
批量取正文没有官方接口,只能按页面抓。真要这么做,有几条纪律必须守住,否则要么被封,要么拿到的是一堆空壳。
其一,页面正文是服务端渲染的,直接用 HTTP 取 HTML 就能看到内容,不需要执行前端脚本。这意味着用最基础的请求加上解析即可,不必上无头浏览器。
其二,必须有间隔。站点的内容量在数千页量级,全部取一遍对服务器不是压力,但密集并发会被限流。按每秒一页的节奏走,几千页在一小时量级内完成。
其三,必须有去重与断点。抓取中断是常态,脚本要能从中断处继续,而不是从头再来。用编号做进度文件是最简单可行的做法。
其四,必须记录时间。每一页底部都有一行「Last Updated」,标明该页最近一次修订的月份。做语料时把这个日期一起存下来,否则一年后无法判断两条内容是否同一时点。
5.6 与上游对齐
如果目标是做统一视图,GARD 必须与上游对齐,而不能自成一套。
对齐的第一步是疾病身份。GARD 编号不是跨库通用的,必须通过 MONDO 标识桥接。名录本身不带 MONDO 标识,这就要靠索引里的组别标签加正名做匹配,或用同义词做模糊匹配再人工核对。
对齐的第二步是症状术语。症状一栏已经落在 HPO 上,这一层可以直接对齐,不需要额外映射。这是 GARD 相对上游的一个便利:它把 Orphanet 的自有临床特征词表转成了 HPO,做本体联合查询时省一步。
对齐的第三步是基因符号。基因一栏只给符号,符号本身是跨库通用的,但版本会变。做长期项目时,基因符号应转换成稳定的基因标识再入库。
§6 与库内条目的关系
6.1 关系图谱
GARD 在库内的位置,可以用「原料、加工、出口」三层来理解。Orphanet 与 OMIM 是原料,MONDO 与 HPO 是缝合用的标准件,GARD 是把原料按患者视角重新组织后的出口,MedGen 与 MedlinePlus 是出口处的延伸阅读。
| 库内相关词条 | 与本词条的关系 | 一句话区隔 |
|---|---|---|
| OMIM | 直接上游 | OMIM 给基因与表型的专业综述加文献,GARD 把其中一段改写成家属能读的话 |
| Orphanet | 直接上游 | Orphanet 给欧洲的临床分类与孤儿药,GARD 取其中的名称、同义词与患病量级 |
| MONDO | 疾病身份的骨架 | MONDO 定义疾病边界,GARD 按这个边界决定页面归属 |
| HPO | 症状术语的来源 | HPO 提供四级频率与术语树,GARD 压成常见与少见两档 |
| MedGen | NCBI 侧的疾病概念库 | MedGen 是概念与术语的汇总,GARD 是叙述性页面 |
| ClinVar | 变异层 | ClinVar 给变异与致病性判定,GARD 只到基因符号这一层 |
| 罕见病相关表型资源 | 部分重叠 | 表型资源以术语树为中心,GARD 以疾病页为中心 |
这张表里最需要强调的一行是 OMIM。库内已有 OMIM 词条,两者极易被当成同一类东西,其实它们的产物形态完全不同:OMIM 的条目是给人读的综述,但面向的是专业人员,句子密度高、文献多;GARD 的条目也是给人读的,但面向的是家属,句子短、文献统一折叠。要引用「某个变异导致某个表型」,答案在 OMIM;要说「这个病是怎么回事」,GARD 更省力。
6.2 检索路径
| 你的问题 | 该去哪个词条或入口 | 理由 |
|---|---|---|
| 这个病的规范叫法与常见别名 | 本词条,名录 CSV | 正名唯一,同义词一次给全 |
| 这个病的通俗概述 | 本词条,详情页首段 | 这是它为唯一目标写出来的段落 |
| 哪些患者组织在服务这个病 | 本词条,详情页患者组织栏 | 组织名录是本库独有的收尾栏目 |
| 这个病涉及哪些基因 | OMIM 或 Orphanet | GARD 只给符号,不给机制 |
| 某个变异是否致病 | ClinVar | GARD 没有变异层 |
| 各国的患病率估计 | Orphanet | GARD 只有量级描述 |
| 疾病的规范边界与同义关系 | MONDO | GARD 的边界是照抄 MONDO 的 |
| 症状的标准术语与频率分级 | HPO | GARD 已把频率压缩成两档 |
6.3 与 Orphanet、OMIM 的逐项区隔
库内已有 OMIM 词条,Orphanet 也在待办之列,三者经常被并列提起,因此差别必须逐项写清。
| 对比项 | GARD | Orphanet | OMIM |
|---|---|---|---|
| 一句话定位 | 患者与家属的科普页 | 欧洲的临床分类与孤儿药 | 基因与表型的专业综述 |
| 建立年份 | 2002 | 1997 | 1966 |
| 运营方 | NCATS 与 NHGRI | 法国 INSERM 协调的联合体 | 约翰霍普金斯大学 |
| 面向人群 | 患者与家属 | 临床医生与卫生政策 | 遗传学研究者 |
| 条目粒度 | 疾病 | 疾病、亚型、基因 | 基因、表型、等位变异 |
| 编号 | GARD 前缀加七位数字 | ORPHAcode | 六位 MIM 号 |
| 患病率 | 量级描述 | 分层估计,按地域 | 多数不给 |
| 变异数据 | 无 | 部分 | 有,逐等位给出 |
| 孤儿药信息 | 无 | 有,按适应症 | 无 |
| 批量导出 | 一份四列名录 | 多类产品 | 受限 |
| 语言 | 英文加少量西班牙文 | 多语种 | 英文 |
| 引用方式 | 折叠为统一说明 | 按条目 | 逐段 |
一句话记住:GARD 把专业信息换成了可读性,Orphanet 把广度换成了标准化,OMIM 把可读性换成了精确度。三者的选择不冲突,常常是同一条链上的三站——用 GARD 入门,用 Orphanet 查分类,用 OMIM 查基因。§6.3 的分工在后面的选型建议里还会再用到。
§7 质量评估与局限性
7.0 阅读本节前的一个前置校正
评估 GARD 时最容易犯的误判,是拿评估学术数据库的尺子来量它:问它文献引用率多少、字段完整率多少、版本号有没有。这些维度上它必然低分,因为它从设计上就不承担这些工作。
正确的评估框架是:在「把上游的罕见病知识转成公众可读文本」这个任务上,它的改写是否准确、栏目编排是否有效、覆盖是否够广,以及这套改写换来了哪些不可逆的损失。下面每一处扣分都应理解为「它的取舍带来的代价」,而不是「它没做好」。把这一点校正过来,后面的评分才不会读歪。
7.1 五维评分
| 维度 | 分数 | 依据 |
|---|---|---|
| 覆盖广度 | 4 / 5 | 名录一万六千余条,几乎覆盖所有有稳定身份的罕见病;扣分在没有详情页的条目占近三分之二 |
| 可读性 | 5 / 5 | 面向家属改写是它唯一的核心竞争力,七栏编排对应七个实际问题 |
| 结构化程度 | 3 / 5 | 症状已落 HPO、分类标签齐备;扣分在无接口、无数据字典、病因标签为空 |
| 可追溯性 | 2 / 5 | 引用折叠为统一说明,不逐句给源;无版本号,只有月份 |
| 批量可用性 | 2 / 5 | 只有一份四列名录,正文需逐页取,无接口无许可细则 |
7.2 DAIMS 视角下的四条线
DAIMS 关注的是数据从采集到使用的链条是否可解释。按这四条线看 GARD:
| DAIMS 线 | GARD 的表现 |
|---|---|
| 数据获取与处理 | 上游来源在关于页公开列名,改写流程只有原则描述 |
| 数据建模 | 疾病页七栏固定,症状落 HPO,模型稳定但未文档化 |
| 数据溯源 | 只到「来自 Orphanet、OMIM 与 MONDO」这一层,不逐句标注 |
| 数据使用与治理 | 免责声明明确,批量使用条款缺失 |
四条线里最弱的是溯源。想知道某一句概述的原句在哪,页面上找不到线索。这一点对做学术引用是硬伤,对做科普素材影响不大。
7.3 已知的、可枚举的偏差
偏差不止一类,逐条列出比笼统说「数据有偏」有用得多。
第一,覆盖偏斜。名录收录一万六千余条,有详情页的六千余条。这个筛选标准是「已发表与已策展的信息是否充分」,因此被漏掉的主要是三类:极罕见、新近发现、以及文献分散在非英文期刊里的疾病。这直接导致冷门病在语料里更冷门。
第二,语言偏斜。西班牙文页只有三百余条,其余全部英文。对美国西语裔家庭,这意味着绝大多数病名只能用英文找。中文完全没有,这是做本地化时的起点条件。
第三,表述粒度偏斜。已成熟研究的病,页面写得长且分栏齐全;研究不足的病,页面可能只有一句概述加一条挂起提示。批量取正文时,这种长度差异会让分布严重右偏。
第四,组织名录偏斜。患者组织一栏按国家列,实际以美国组织为主。其他国家只有零星收录。用它做全球社群分布研究,会系统性低估非美国地区。
第五,术语简化的偏差。HPO 的频率分级被压成两档,稀有表型与常见表型之间的中间态消失。用它训练表型分类,学到的边界比真实边界更粗。
7.4 外部验证矩阵
| 验证角度 | 外部证据 | 结论 |
|---|---|---|
| 上游一致性 | 关于页列明 Orphanet、OMIM、MONDO 三家为来源 | 事实层可回上游核,叙述层不可 |
| 受众定位 | 关于页明确面向患者与家属,强调通俗 | 与「学术数据库」的误读可直接排除 |
| 运营稳定性 | 2002 年至今连续运营,预算来自单一联邦机构 | 停服风险低,但依赖单一出资方 |
| 语言覆盖 | 西语页数量远少于英文页 | 双语服务是有限的,不能假设全覆盖 |
| 数据形态 | 只有一份名录 CSV,无接口 | 批量使用能力弱,是设计而非疏漏 |
7.5 它为何能持续:把成本压在「改写」这一步
一个患者教育项目能不能活下来,取决于两件事:上游变动时它能不能跟上,以及下游是否有人持续需要它。GARD 在两点上都有结构性优势。
第一,它不做原创知识生产,只做改写。上游一变,它只需重跑抽取与改写,不需要重新组织研究议程。这使它的维护成本与上游规模而非与科学进展同步。
第二,它接住了「确诊之后」这个公共部门最该接、商业机构最不愿接的环节。患者组织名录与信息专员热线这两项,都不产生学术产出,却直接对应患者最急的需求。联邦预算为这类不产出论文的工作买单,逻辑上说得通,因此项目在二十多年里没有中断。
第三,它的产出形态极其轻。一份 CSV 加一堆静态页,托管成本可以忽略。这解释了为什么它到今天还是这套形态,而不是一个带接口的数据库——对它的目标用户来说,接口没有意义。
§8 生态位与历史
8.1 历史沿革
| 时间 | 事件 |
|---|---|
| 2002 年 | 依据《罕见病法案》设立,由 NHGRI 与罕见病研究办公室共同创建 |
| 2002 至 2016 年 | 累计答复咨询六万余条,平均每年数千条 |
| 2011 年 | NCATS 成立,罕见病研究办公室并入,GARD 的归属随之转入 NCATS |
| 2017 年 | 发表十五周年回顾,梳理求询者画像与满意度调查 |
| 2020 年前后 | 上线用于支撑策展的数据树结构,用计算方式做术语归一 |
| 2023 年 | 启动网站现代化,改为从 MedlinePlus、UMLS 与 MedGen 自动取数 |
| 2024 年至 2026 年 | 新版站点上线,页面结构改为七栏,名录按月刷新 |
| 2026 年 9 月 | 名录版本更新,疾病页最近一次修订 |
从这条时间线能读出两件事。其一是归属的稳定性:GARD 的运营方一直挂在「罕见病研究办公室」这条线上,该办公室从独立机构并入 NCATS 后,GARD 也随之归 NCATS,中间没有发生跨机构移交。其二是形态的转向:2023 年之后,站点从「人工撰写每一页」转向「批量抽取加统一改写」,关于页自己写明「网页是按批量方式填充的,而不是一页一页地写」。这个转向解释了为什么名录的条目数远大于详情页数——批量填充先解决有没有,再解决全不全。
8.2 与同代资源的错位竞争
同期出现的罕见病资源各有侧重。Orphanet 走的是标准化路线,建立自己的本体、编码与孤儿药清单,成为欧洲卫生政策的工具;OMIM 走的是学术路线,由专人撰写基因与表型的综述,成为遗传学的参考文献。GARD 走的是第三条路——公共信息路线,不建本体、不写综述,只负责把前两者的结论说成人话。
这三条路至今没有合并,原因不是技术,而是受众不同。Orphanet 的用户是临床医生与政策制定者,OMIM 的用户是研究者,GARD 的用户是拿着诊断书不知道下一步该问什么的家庭。受众不同,衡量成功的标准就不同:Orphanet 看编码覆盖率,OMIM 看文献完整性,GARD 看求询者能不能读懂。
8.3 在 AI 时代的再定位
罕见病信息在近两年重新受关注,原因不难理解:罕见病单个病种样本极少,正适合用知识驱动的方式补足数据驱动的不足;而面向患者的通俗表述,恰恰是大模型最容易学歪的部分——医学论文语料里没有这种写法。
GARD 的形态在这个背景下有一个明确的用途:它是少数由官方维护、可以用作「通俗医学表述」参照的语料。把它与 OMIM 的专业表述配对,可以构造「同义改写」的训练样本;把它与 HPO 的症状清单配对,可以构造「术语到俗名」的映射。
这也带来一种新的误用风险:把名录的上万条疾病名当作「罕见病全集」去训练分类器。实际上名录里近三分之二的条目没有详情页,只有名字;而名字本身来自上游,包含大量亚型、同义重复与已被合并的旧名。任何拿它当全集的工作,都必须先去重并与 MONDO 对齐。
8.4 与商业罕见病资源的互补关系
有一种看法是商业罕见病数据库终将取代公共项目,这个判断在可预见的范围内不成立。商业库的价值在于「深度、结构化、可对接」,公共项目的价值在于「免费、可引用、有官方背书」。前者回答「这个病的完整临床画像是什么」,后者回答「这个病叫什么、该去哪里」。
两者是上下游关系:用公共名录确定病名与别名,用商业库或上游专业库补齐深度。§7.5 提到的「成本压在改写这一步」正是这条链能长期运转的原因。
§9 使用指引
9.1 三种角色的路径
患者与家属的路径最短:直接在站内搜索病名或缩写,读到概述后,看症状一栏是否对得上自己的经历,再看患者组织一栏有没有可联系的组织。不需要下载任何文件。
做命名归一的团队的路径是数据先行:先拿名录 CSV 建别名索引,把每个别名映射到 GARD 编号,再通过 MONDO 桥接到其他库。要点是同义词必须清洗前导空格,且要保留原文以便回查。
做科普语料的团队的路径最重:需要逐页取正文,按七栏切分,并记录每页的修订月份。要点有三:一是限速与断点续传,二是把七栏当作固定结构而不是自由文本,三是在入库时把免责声明一并保留,避免后续误用。
9.2 一条最短的可用流程
下面这条流程从零到一个可用的科室路由表,是 §4.4 的案例在脚本上的完整版本。
#-- 第一步:确认名录与索引都能取到
curl -sI "https://rarediseases.info.nih.gov/diseases?page=1" | head -1
#-- 第二步:取名录(按关于页给出的链接下载,文件名带月份)
ls -lh gard_list.csv
#-- 第三步:取索引(详情页列表页引用的资源文件)
curl -s -o diseases_trimmed.json \
"https://rarediseases.info.nih.gov/assets/diseases.trimmed.json"
#-- 第四步:把索引整理成「疾病 → 接诊科室」的路由表
import json, collections
with open("diseases_trimmed.json", encoding="utf-8") as fh:
diseases = json.load(fh)
routes = collections.defaultdict(list)
for d in diseases:
for spec in d.get("tagsSpecialist", []):
routes[spec].append(d["id"])
#-- 只保留覆盖上百个病种的科室,避免长尾
main = {k: v for k, v in routes.items() if len(v) >= 100}
print(len(main), "个主要科室")
print(sorted(main, key=lambda k: -len(main[k]))[:5])
这段流程里每一步都有理由。先确认可达是为了避免在下载断流上浪费时间;名录取的是官方链接而不是自己拼,是因为文件名带月份,拼不出来;索引从资源文件取,是因为它比 CSV 多出三组标签;最后按覆盖数截断,是因为末端的科室每个只对应个位数的病种,做路由没有实际意义。
9.3 引用方式
引用要写到三层,缺一层都会让复现打折扣。
第一层是页面本身。写清访问日期与页面底部的修订月份,两者不是一回事:访问日期是你看到的时间,修订月份是内容的时间。
第二层是名录版本。名录文件名带月份,引用时抄全文件名,必要时附文件哈希。只写「GARD 名录」而不写月份,别人无法判断你用的是哪一批。
第三层是上游。如果结论涉及某个具体事实,应回 Orphanet 或 OMIM 找到对应条目再引一次。理由是 GARD 只是转述,转述的准确性应由上游负责。
§10 AI 使用声明
| 项目 | 说明 |
|---|---|
| 本页 AI 参与程度 | 由 AI 助手依据官方页面、名录文件与索引文件起草,人工核对数字 |
| 数字来源层级 | 见附录 B,官方页面与可下载文件为一级,合同与论文为二级 |
| 未核实项 | 名录与索引的字段语义未在任何官方文档中定义,只能从文件内容推断 |
| 版本信息 | 以 2026 年 10 月读取的名录 2026 年 9 月版与页面为准 |
| 已知不一致 | 任务描述所指的运营方迁移与 NCBI 下载路径,与本次核验结果不符,正文按核验结果写 |
| 适用边界 | 本文描述的是数据集本身,不含对具体疾病结论的评价,也不构成医疗建议 |
| 更新机制 | 名录按月刷新,本文不承诺随版本同步 |
常见误读(避坑清单)
| 常见说法 | 实际 | 证据 |
|---|---|---|
| 「GARD 已由 NCBI 或 NLM 运营」 | 运营方仍是 NCATS,NHGRI 出资 | NCBI 的 gard 路径返回 404;关于页写明由 NCATS 管理 |
| 「GARD 有 FTP 批量下载 XML」 | 没有,NCBI 的 GARD 目录返回 404 | 提交页与 FTP 目录均不存在 |
| 「学名里带 Information Center,所以是个文献库」 | 它是信息中心,输出的是改了写法的科普页 | 关于页强调把科学语言翻译成通俗信息 |
| 「名录一万六千条,所以有一万六千个疾病页」 | 有详情页的是六千二百六十五条 | 列表页分页计数与名录 URL 非空计数一致 |
| 「它是 OMIM 的镜像」 | 只借用 OMIM 的部分字段,句式为重新改写 | 关于页把 OMIM 列为来源之一,页面文本与 OMIM 不同 |
| 「详情页有患病率数字」 | 只有量级描述,没有分层估计 | 抽查的页面无患病率字段,只有定性表述 |
| 「基因一栏能给到位点」 | 只给基因符号 | 病因栏写法为列出已知基因符号 |
| 「症状频率有四档」 | 压成常见与少见两档 | 症状栏只出现两档固定说明 |
| 「名录 CSV 的 URL 列都能打开」 | 近三分之二为空 | 名录中仅六千余行 URL 非空 |
| 「同义词可以按竖线直接切」 | 切出的元素带前导空格 | 索引 JSON 的同义词元素示例带空格 |
| 「站内有中文版」 | 没有,只有英文与少量西班牙文 | 西语页仅三百余条,无中文入口 |
| 「引用 GARD 就等于引用到原始文献」 | 引用折叠为统一说明 | 页脚只列来源库名,不列逐条文献 |
FAQ
Q1:GARD 现在到底归谁管?
归美国国立卫生研究院下属的国家转化科学促进中心(NCATS),国家人类基因组研究所(NHGRI)参与出资。这一归属自 2011 年 NCATS 成立起延续至今。曾有一种说法认为它已迁至 NCBI 或 NLM,但本次核验中 NCBI 的 gard 路径与 GARD 的 FTP 目录都返回 404,关于页也仍写明由 NCATS 管理。
Q2:为什么名录有一万六千条,页面只有六千多个?
因为详情页按信息充分度筛选生成。关于页写明入选依据是「已发表与已策展的研究信息是否可得」,信息不足的病暂时没有页面,先留在名录里。这个设计是为了尽快覆盖尽可能多的病名,而不是等每一页都写完再发布。
Q3:能不能把它当作 OMIM 的替代品?
不能。OMIM 的条目是专业人员撰写的专业综述,含基因、等位变异、分子机制与逐段文献;GARD 只借用其中的部分事实,重写成通俗句子。要用基因层面的内容,只能回 OMIM 或 ClinVar。
Q4:症状一栏的「常见」与「少见」能换算成百分比吗?
不能。上游 HPO 注解里本来可以表达更细的频率分级,GARD 把它压成两档,并用固定说明解释含义。两档之间没有可换算的比例,任何把「常见」当作百分比的推断都是错的。
Q5:名录 CSV 的四列够用吗?
对于命名归一与别名匹配,基本够用。四列覆盖了编号、正名、同义词与页面地址。但它不含分类标签、不含症状、不含基因,也不含任何正文。要做这些,需要另取索引文件或逐页抓取。
Q6:索引文件从哪里来,官方有说明吗?
没有官方说明。它出现在详情页列表页的资源引用里,是从页面加载的资源中读到的。字段含义只能从内容推断,官方没有数据字典,也没有承诺字段稳定。生产使用时应当锁版本并留快照。
Q7:西班牙文版覆盖多少?
索引中带西班牙文编号的条目为 356 条,相对六千余个有详情页的疾病是很少的一部分。这意味着西语服务是有限的、按需补充的,而不是全站翻译。
Q8:能不能直接抓全部详情页?
技术上可以,页面是服务端渲染的,基础请求就能拿到正文。但官网没有提供接口或批量包,也没有说明批量使用的条款。抓取前应读站点的隐私与免责声明,并控制频率,避免对公共站点造成压力。
Q9:为什么有的病症状栏是空的?
因为该病的表型在 HPO 中没有足够注解,或上游没有提供。页面上仍会保留症状栏的位置,只是内容为空。这类缺口在极罕见病里很常见,是覆盖偏斜的直接表现。
Q10:患者组织名录可靠吗?
它是有用的起点,但不是权威注册表。关于页写明组织的收录有一套筛选标准,站内也声明提供组织信息只为告知,不构成对其服务的背书。联系组织时应核对其自述的服务范围与所在国家。
Q11:它和 MedGen 是什么关系?
MedGen 是 NCBI 侧的疾病概念与术语汇总库,GARD 从 MedGen 取信息用于解释遗传病与罕见病。两者不是同一层:MedGen 是概念层,GARD 是叙述层。要做概念对齐,走 MedGen;要读一段话,走 GARD。
Q12:数据可以商用吗?
作为美国政府作品,站点内容一般不受版权保护,这为再使用提供了基础。但站内部分内容转引自 Orphanet、OMIM 与 MedlinePlus,这些上游各有自己的条款,商用前应逐项确认。本文不构成法律意见。
术语表
| 术语 | 含义 |
|---|---|
| GARD | Genetic and Rare Diseases Information Center,遗传与罕见病信息中心 |
| NCATS | 美国国家转化科学促进中心,NIH 下属 |
| NHGRI | 美国国家人类基因组研究所,NIH 下属 |
| 罕见病法案 | 2002 年美国立法,把罕见病定义为美国境内患病人数少于二十万的疾病 |
| Orphanet | 欧洲的罕见病与孤儿药数据库,由法国机构协调 |
| OMIM | 在线人类孟德尔遗传,约翰霍普金斯大学维护的基因与表型库 |
| MONDO | 疾病本体,用逻辑结构统一多个疾病资源 |
| HPO | 人类表型本体,提供表型术语树与频率分级 |
| MedGen | NCBI 的医学遗传学概念库 |
| MedlinePlus | 美国国家医学图书馆面向公众的健康信息站 |
| ORPHAcode | Orphanet 的疾病编号 |
| MIM 号 | OMIM 的六位条目编号,带四类前缀 |
| 正名 | 一个疾病的唯一规范写法 |
| 同义词 | 同一疾病的其他叫法,含缩写与旧名 |
| 表型 | 疾病在个体身上表现出的可观察特征 |
| 常见与少见 | GARD 症状栏的两档频率说明,无换算比例 |
| 服务端渲染 | 页面内容由服务器直接生成,抓取时无需执行脚本 |
| 名录 | 本库唯一可整份下载的四列 CSV |
| 索引 | 列表页与搜索框依赖的结构文件,含分类标签 |
| 免责声明 | 每页附带的「不替代医生判断」声明 |
附录 A:核心数字核对表
| 项 | 值 | 来源 | 来源层级 |
|---|---|---|---|
| 设立年份 | 2002 | 关于页 | 一级 |
| 管理方 | NCATS | 关于页 | 一级 |
| 出资方 | NCATS 与 NHGRI | 关于页 | 一级 |
| 名录条目数 | 16,214 | 名录 CSV 行数 | 一级 |
| 有详情页数 | 6,265 | 列表页与名录 URL 计数 | 一级 |
| 西班牙文页数 | 356 | 索引统计 | 一级 |
| 疾病大类数 | 12 | 分类词表文件 | 一级 |
| 接诊科室标签数 | 34 | 索引标签去重 | 一级 |
| 名录列数 | 4 | 名录表头 | 一级 |
| 症状频率档数 | 2 | 症状栏固定说明 | 一级 |
| 发病年龄段数 | 7 | 年龄栏固定切分 | 一级 |
| 页面修订月份 | 2026 年 9 月 | 页脚 | 一级 |
| 累计答复咨询量 | 十万量级 | 项目说明与官方信息图 | 二级 |
| 平均确诊耗时 | 六年以上 | 关于页与站内正文 | 一级 |
| NCBI 的 GARD 路径 | 不存在 | 核验时返回 404 | 一级 |
附录 B:数字的来源分层
一级:官方页面与可下载文件。 包括关于页、名录 CSV、索引文件、详情页的结构与页脚。本文的条目数、页面数、西语页数、分类数、字段名与栏目名均取自这一层,其中条目数与页面数可由下载文件直接复算。
二级:项目文件与公开说明。 包括联邦项目摘要页给出的设立背景与咨询量、机构博客给出的现代化改造目标、预算记录给出的合同承接方与金额量级。这些数字用于说明运营结构与历史,不用于描述当前规模。
三级:未核实。 名录与索引的字段语义没有官方文档定义,本文的字段说明来自对文件内容的观察与页面呈现的对照,属于推断而非官方定义。引用时应说明这一层性质。
附录 C:完整参考文献
- Genetic and Rare Diseases Information Center 官方站点,关于页与常见问题,https://rarediseases.info.nih.gov/about-gard ,2026 年 10 月访问。
- GARD Rare Disease List(2026 年 9 月版),四列 CSV,由关于页链接提供,2026 年 10 月下载。
- GARD 疾病列表页与详情页,栏目结构与页脚修订月份,https://rarediseases.info.nih.gov/diseases ,2026 年 10 月访问。
- NCATS 的 GARD 项目介绍页,https://ncats.nih.gov/gard ,2026 年 10 月访问。
- NCATS 罕见病转化研究页,含 GARD 数据树与信息学工作的说明,https://ncats.nih.gov/research/research-activities/informatics/rare-disease-translational-research ,2026 年 10 月访问。
- 美国国家医学图书馆馆长博客,NCATS 主任客座文章,述及 2023 年 GARD 网站现代化计划,2026 年 10 月访问。
- Lewis J, Snyder M, Hyatt-Knorr H. Marking 15 years of the Genetic and Rare Diseases Information Center. 2017.
- 美国联邦项目摘要页,GARD 管理与研究支持项目,含设立背景与预算构成,2026 年 10 月访问。
- 美国《罕见病法案》2002 年文本,用于罕见病定义。
- 人类表型本体与 Mondo 疾病本体官方站点,用于术语体系的对照。
附录 D:取数代码
#-- 完整的最小可用脚本:从名录建别名索引,再按科室标签汇总
import csv, json, collections, re
def load_list(path):
with open(path, encoding="utf-8-sig", newline="") as fh:
return list(csv.DictReader(fh))
def load_index(path):
with open(path, encoding="utf-8") as fh:
return json.load(fh)
rows = load_list("GARD_Rare_Disease_List_Sep2026.csv")
diseases = load_index("diseases_trimmed.json")
#-- 一、别名索引:键为小写别名,值为 GARD 编号列表
alias = collections.defaultdict(list)
for r in rows:
for syn in r["Synonyms"].split("|"):
s = syn.strip().lower() #-- 必做:去掉前导空格
if s:
alias[s].append(r["ID"])
#-- 二、科室路由:只保留覆盖上百个病种的科室
routes = collections.defaultdict(list)
for d in diseases:
for spec in d.get("tagsSpecialist", []):
routes[spec].append(d["name"])
main = {k: v for k, v in routes.items() if len(v) >= 100}
#-- 三、把结果存盘,并写清名录版本,保证可复现
with open("alias_index.json", "w", encoding="utf-8") as fh:
json.dump(alias, fh, ensure_ascii=False, indent=1)
with open("specialist_routes.json", "w", encoding="utf-8") as fh:
json.dump(main, fh, ensure_ascii=False, indent=1)
print("别名数", len(alias))
print("条目数", len(rows), "有页", sum(1 for r in rows if r["URL"].strip()))
print("主要科室", len(main))
附录 E:如果只记五件事
第一,它是 2002 年依据《罕见病法案》设立的美国公共信息项目,由 NCATS 管理、NHGRI 出资,二十多年一直在这一条线上,没有迁往 NCBI 或 NLM。
第二,它的核心产出是把 Orphanet、OMIM、MONDO 与 HPO 的专业表述改写成面向家属的通俗页,七栏结构对应拿到诊断后的七个问题。
第三,规模上,名录一万六千二百一十四条,有详情页六千二百六十五条,西语页三百五十六条,疾病大类十二个。
第四,批量可用性很弱:官方只提供一份四列名录 CSV,正文需逐页取,没有接口、没有版本号、没有数据字典。
第五,边界很清楚:不含诊疗建议、不含病例、不含基因变异、不含剂量与预后。要这些,回 OMIM、ClinVar 或 Orphanet。
编辑说明
本篇的核验时间为 2026 年 10 月 29 日。核验方式为直接读取 GARD 官方站点的关于页、疾病列表页与若干详情页,并下载名录 CSV 与索引文件做行数与字段统计。所有规模数字均来自可复算的文件,页面栏目结构来自页面本身。
与任务描述不符的三处,按核验结果处理。其一,任务称 GARD 已由 NCBI 或 NLM 运营,实际关于页仍写明由 NCATS 管理、NHGRI 出资,NCBI 的 gard 路径与 GARD 的 FTP 目录均返回 404,因此正文按 NCATS 归属写。其二,任务称有 XML 与 CSV 批量下载,实际只有一份四列名录 CSV,索引文件属页面资源而非官方发布物。其三,任务称历史上由 NCATS 运营并于 2019 年前后迁往 NCBI,实际不存在这一迁移,归属自 2011 年 NCATS 成立起延续至今。
未覆盖的内容包括:名录与索引的字段语义(官方无文档,本文只做观察性说明)、详情页正文的完整抓取(未做全量,只抽查若干页确认结构)、以及各条目的内容准确性(本文不评估单条疾病描述是否正确)。
本页描述的只是数据集本身的结构、规模与边界,不涉及对任何具体疾病结论的评价,也不构成医疗建议或法律意见。数据再使用须逐项确认上游来源的条款。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- vaers — 共享标签:医疗NLP / 公共卫生与流行病学
- orphanet-ordo — 共享标签:公共卫生与流行病学 / 罕见病
- race-rare-cancer — 共享标签:公共卫生与流行病学 / 罕见病
- arxiv — 共享标签:医疗NLP / 公共卫生与流行病学
- ecrin-mdr — 共享标签:医疗NLP / 公共卫生与流行病学
- omim — 共享标签:医疗NLP / 罕见病
- litcovid — 共享标签:医疗NLP / 公共卫生与流行病学
- annotation-dataset-sdoh — 共享标签:医疗NLP / 公共卫生与流行病学
- cord-19 — 共享标签:医疗NLP / 公共卫生与流行病学
- maccrobat — 共享标签:医疗NLP / 罕见病
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。
