王梓阳,杨 林,王嘉阳,李 姣
表型(phenotype)起初主要用于描述基因的表达层面,是与基因型相对应的概念。Merriam-Webster词典将表型定义为由基因型和环境相互作用产生的生物体的可观察特性[1]。随着大规模电子病历(electronic medical record,EMR)数据库的出现,“表型”一词逐渐用于表示患者群体共有的特征,如一个群体或一组个体所患的疾病或状况[2]。从电子病历中可提取的表型非常广泛,如从实验室数据和肿瘤大小等简单表型到巴塞罗那临床肝癌分期等复杂表型[3]。表型分析(phenotyping)主要是指定义表型并进行验证以确保其准确性和普遍性的过程[2]。表型算法(phenotype algorithm)是指从患者的电子病历中提取特征并将它们组合成一个分类规则,以推断患者是否具有目标表型[4]。这些特征往往涉及如年龄和性别等患者的人口统计信息,诊断、药物、实验室等编码信息,以及能够通过自然语言处理(natural language processing,NLP)从临床自由文本中提取的信息。
随着电子病历数据量的日益增长,越来越多的学者提出可以利用电子病历中的数据进行知识发现[5],从日常诊疗数据中提取患者群体共有特征(即表型分析)能帮助研究人员从电子病历中识别研究目标人群,从而支持进一步的研究分析。电子病历记录了患者在医院内的各种诊疗操作和检验检查信息,属于个人电子健康档案的一部分。电子健康档案(electronic health record,EHR)是一个很广泛的概念,包括了电子病历、体检信息、公共卫生信息等贯穿个人全生命周期的所有健康信息。
为了进一步了解表型分析现状,本文于2021年11 月3 日在中国知网(CNKI)、万方数据知识服务平台两大中文数据库上以“SU%=(表型)*(电子病历)”为检索式进行主题检索,仅得到几篇相关的硕士毕业论文和1 篇2017 年针对糖尿病的表型识别综述。为了增加检全率,继续以“SU%=(表型+表型分析+表型算法)*(电子病历 +电子健康档案)”为检索式再次进行主题检索,结果并没有得到改善。若单独以“表型”一词进行检索,发现更多的研究主要关注基因与表型之间的相互关系,很少有研究关注基于电子病历的表型分析。同一时间,在PubMed 数据库中以“((phenotype[Title/Abstract])OR(phenotyping[Title/Abstract]))AND((EHR[Title/Abstract])OR(electronic medical record[Title/Abstract]))”为检索式进行检索,限定出版日期为2010-2121 年,得到321 篇相关文献。因此本文以英文数据库中的文献为主要的综述对象,通过阅读摘要纳入以表型分析、表型算法开发和评价、电子病历的表型识别和应用为主题的文献,同时排除并非以电子病历为主要数据来源进行表型分析的文献,如基因-表型关联研究、以电子健康档案及其他数据源为原料进行表型分析的研究等。结合参考文献回溯法,共选取53 篇代表文献作为本文的数据基础进行综述。
基于电子病历的表型分析是指通过电子病历中存储的信息识别相应的疾病表型,通常是一个定义表型并验证其准确性和普遍性的过程。但目前尚无完整的基于电子病历的表型分析流程,本文对现有的代表性研究和具有较大影响力的项目的工作流程进行总结,提炼出表型分析的一般流程。
电子病历和基因组学(electronic medical records and genomics,eMERGE)[6-10]是由美国国家人类基因组研究所(National Human Genome Research Institute,NHGRI)资助的项目,旨在开发利用电子病历作为基因组研究工具的方法和探索最佳实践,其工作流程是根据研究的病例选择合适的变量和定义,然后审查变量范围,再对变量的组合和范围进行验证和共享。eMERGE 有多个中心,每个中心侧重研究的表型不同。表型知识库(Phenotype Knowledgebase,PheKB)[11-12]是eMERGE 中的一个中心,是美国范德堡大学为了表型算法的创建、验证和传播而建立的一个表型算法的工作流管理系统和学习中心。在PheKB 上可以查看现有算法、创建新的算法、与他人合作创建或审查算法。PheKB 促进了算法在不同机构、医疗保健系统和临床数据存储库之间的可移植性,并提高了多种研究应用程序的可移植性。有学者将表型算法的验证总结为2 步,首先在本地验证表型算法的准确性,然后经过多中心验证再上传到表型共享机构进行共享[6]。
基于电子病历的表型分析虽然在针对不同表型的具体实现上会有所不同,但基本工作流程都包括表型定义及表型算法开发、验证和共享4 个关键环节(图1)。
图1 基于电子病历的表型分析流程
患者在医院内的医嘱处方、各项检验检查、诊疗结果等均以电子病历的形式存储。目前表型分析常以电子病历为主,根据临床指南确定要识别表型的定义,先从电子健康档案中的结构化数据选定合适的医学指标,然后根据指标建立表型算法,开发完成的表型算法需要与公认的标准进行比较以评价其表现,不断地更新和调整算法取值范围,直到取得一个识别效果最优的规则和代码组合。最后将表型算法在PheKB 中进行单中心、多中心验证,用以评估表型算法的效果。经过验证之后,表型算法将会以伪代码和文档的形式在eMERGE、PheKB等项目中进行共享。研究者可以将共享的表型算法部署在本地的电子病历系统中,生成表型数据库以便进一步的分析。
开展表型分析首先需要确定要研究的表型,然后选择合适的临床指标描述表型,本文将这一过程称为“表型定义”。
在PheKB 的官网上可以访问到目前不同表型的研究进展。PheKB 将目前公开的82 种表型分成疾病和综合征(disease or syndrome)、药物反应-不良反应和疗效(drug response-adverse effect or efficacy)、其他性状(other trait)三大类[13]。其中疾病和综合征最多,共52 种,药物反应-不良反应和疗效有14 种,其他性状仅为9 种[13]。大量的疾病和综合征表型研究集中在糖尿病[14-16]、癌症[17-18]、类风湿性关节炎[19]和卒中[20-22]等疾病上。这些疾病表型都有大量的患者群体,而且电子病历数据较为全面,具有较高的研究价值。针对药物反应-不良反应和疗效的表型包括难治性高血压、药物性肝损伤、类固醇诱导的股骨头坏死等。关于其他性状(如身高、高密度脂蛋白、红细胞指数等)的表型分析还比较少见。
关于疾病表型临床指标和范围的选择,一般来源于相应的临床指南。随着信息技术的发展,可供选择的特征越来越多,有实验室指标、药物信息等电子病历中的结构化数据,也有被记录在临床自由文本中的影像报告、临床记录等信息。为了进一步提高表型的通用性,研究者普遍采用通用的标准化代码进行概念表示。有的学者还采用公开的医学资源进行表型的学习和提取[3]。具体的特征来源如图2 所示。
图2 表型定义的临床特征数据来源
结构化电子病历数据是指以关系表的形式存储的健康诊疗信息数据,能够直接通过结构化查询语言(structured query language,SQL)进行查询。这类数据通常有相应的标准编码方案,主要包括国际疾病分类(International Classification of Diseases,ICD)、用于检验检查的观测指标标识符逻辑命名与编码系统(Logical Observation Identifiers Names and Codes,LOINC)、用于药物的RxNorm、用于跨领域交流的当前程序术语(Current Procedural Terminology,CPT)和用于规范临床术语的医学系统命名法-临床术语(Systematized Nomenclature of Medicine-Clinical Terms,SNOMED-CT)。
判断个体是否有某个确定的疾病表型,最初采用的数据便是判断电子病历中是否含有该疾病的ICD-9 代码[3,12],但临床记录中的ICD 代码主要用于计费而不是研究目的[23],而且ICD 编码并不是由临床医生指定,仅使用ICD 代码进行表型定义通常无法准确找到满足研究条件的人群。为了解决ICD 代码不够准确的问题,有学者引入了药物和多种ICD 编码组合的方式,提高了表型算法的分类效果和一致性[24]。随后越来越多的研究发现,在ICD 的基础上,加入实验室检查、药物、账单等信息能够显著提高表型算法的性能[25]。如在PheKB上共享的算法中,采用ICD-9 代码和用药信息定义痴呆症,采用ICD-9 代码、订单中的药物和实验室检查定义2 型糖尿病,采用实验室检查、ICD-9、CPT-4 代码和药物信息定义红细胞指数[13]。
非结构化电子病历数据是指存储在电子病历中的自由文本,主要包括临床诊疗活动中的各种文档、影像报告、诊断报告、患者主诉等内容。有研究结果显示,非结构化数据占目前可用的医疗保健数据的80%以上[26]。为了利用电子病历中的非结构化数据,自然语言处理技术被引入到电子病历的数据挖掘中,将难以处理的非结构化临床文档转换成结构化的数据[27],使诊断文档、临床记录和影像报告等自由文本能够作为特征纳入到表型定义中。2010 年梅奥诊所(Mayo Clinic)和阿帕奇软件基金会(Apache Software Fundation)发布了临床文本分析知识提取系统(Clinical Text Analysis Knowledge Extraction System,cTAKES)[28]。这是一个专门从临床文本中提取相关概念的自然语言处理系统。向cTAKES 输入自由文本,能够得到文本中相关的医学概念的实体名称及其统一医学语言系统(Unified Medical Language System,UMLS)编码。表型识别中常用的自然语言处理工具还有医学抽取和编码(Medical Extraction and Encoding,MedLEE)。
有学者在ICD-9、药物应用、生命体征、计费代码等结构化数据的基础上,采用自然语言处理技术从入院记录、体格检查、主诉等自由文本中提取诊断信息,结果发现即使是不同数据的简单组合也可以提高表型分析算法的性能[25]。有学者也通过引入自然语言处理系统识别临床文本特征构建白内障表型算法,与单模式方法相比,多模式方法的病例识别效果提高了3 倍[29]。在PheKB 上共享的表型算法中,获取表型算法采用临床诊断记录中的收缩压和舒张压,配合ICD-9、实验室检查数据、用药信息识别难治性高血压[13]。一些eMERGE 中的站点采用自然语言处理技术从自由文本中提取用药信息以提高对痴呆的识别效果[6]。有学者对影像报告在表型识别中的应用进行了总结,如采用X 光诊断报告识别乳腺癌,采用CT 肺血管造影报告对肺栓塞疾病结局进行分类等[27]。
虽然自然语言处理技术能够在表型定义过程中纳入非结构化的电子病历数据,从而获取大量新的特征,但有研究结果显示,不能仅通过句法特征判断患者诊断的语义极性,平均而言,语义阳性的患者为阳性患者的78.1%[30],因此在应用临床自由文本的过程中一定要慎重。
有效地结合诊断代码以外的信息(如症状、药物和实验室检查)已被证明可以改善表型分析效果[24]。有研究者尝试从电子病历之外的信息中获取表型知识,再重新用于电子病历中患者的识别。其中,有两个研究团队均以自然语言处理技术为核心,以统一医学语言系统为标准,对公开的医学数据资源进行概念提取和映射,以提高表型算法的效果,为表型算法的建设提出了一种新的途径[3,31-35]。
2015 年清华大学的研究团队采用自然语言处理技术,将引入的公开的医学数据库如Medscape、维基百科(Wikipedia)、默克手册(Merck Manuals)和MedlinePlus 医学百科全书等作为基础,应用自然语言处理和UMLS 抽取其中的概念,建立了一种新型的高通量自动化的表型算法构建方法。该团队首先开发了表型自动特征提取(automated feature extraction for phenotyping,AFEP)方法,应用自然语言处理技术从公开、可用的资源中自动识别相关表型的特征,以此选择最佳的特征实现自动化表型算法的构建,并在小样本中达到了和基于规则相同的效果。2016 年该团队又在表型自动特征提取框架的基础上添加了对概念来源的加权投票模块,以提高特征筛选效果,开发了代理辅助特征提取(surrogate-assisted feature extraction,SAFE)方法,提高了从公开的医学数据库中提取知识的效果,提高了自动化性能。随后在表型自动特征提取和代理辅助特征提取的基础上添加了语义识别,实现了表型分析的完全自动化,而且不会受到电子病历数据不完整性、歧义性等问题对表型算法效果的负面影响[3,31-33]。
此外,有国外团队也利用公开、可用的资源提取了表型之间的量化关系,建立了PheMap 表型概念知识库。然后在待测试的电子病历中搜索PheMap 知识库中定义的表型相关概念,包括实验室检查、用药信息等,根据这些相关概念计算某患者具有特定表型的概率[34-35]。
表型算法的开发需要在表型定义的基础上进行开发和调整。表型算法定义了与表型有关的临床指标和数值范围的组合方式,并且以人可以理解的描述性文本文档保存[36]。目前表型算法的开发方式主要有3 种。一是基于规则的表型算法开发,这些规则通常由诊断代码、药物处方、实验室检查结果等指标的逻辑组合构成;二是基于机器学习的表型算法开发,需要通过机器学习的方式选择和优化最准确的表型特征的数值组合[33];三是基于深度学习的表型算法开发,采用深度学习模型获得最佳的临床指标和数值范围的组合。相较于机器学习,深度学习能够利用更多的特征和更复杂的算法模型进行学习。不同算法的开发方式有各自的特点,研究者往往会综合利用各种方法以达到最好的识别效果。
基于规则的表型分析是指整个算法以临床指南为依据,采用布尔逻辑的复杂嵌套定义表型[5]。首先临床专家可以阅读一组受试者的电子病历记录并创建一个标注好的数据集,然后由知识工程师生成一个启发式规则,将记录数据映射到研究中每个表型定义中确定的变量,如ICD 代码、用药信息等,用来推断疾病的存在。在标注好的集合的子集上对生成的规则进行测试并反复修改,直到灵敏度和特异性达到某个阈值。有学者根据美国疾病控制预防中心的定义制定了基于规则的表型分析算法,用于识别社区相关的耐甲氧西林金黄色葡萄球菌病例[37]。有学者采用韦恩图的方式进行表型算法开发和验证,将所有的指标划分成一个个小集合,通过组合各种集合的样本数量灵活验证不同代码之间组合的评估效果,提高基于规则的特定临床表型的迭代和移植效率[38]。
基于规则的系统易于解释、实现速度快,并可以在有限的数据集上产生良好的效果[15],具有较高的准确性和泛化性。基于规则开发的表型分析算法更多依赖于目前的临床指南,比较容易理解和解释,但其缺点也比较明显,需要耗费人力反复对规则进行调整,以获得最佳的效果。受限于时间和效率,在大型数据库中采用基于规则的方法很不现实。此外,基于规则的表型算法虽然文档的表面形式存在显著差异,但所使用的底层逻辑更加同质,严重依赖嵌套布尔逻辑、复杂的时间性和无处不在的ICD-9 代码[39]。
基于机器学习的表型算法开发方式是指通过机器学习表型定义中的临床指标的最佳范围和组合,在临床专家标注的训练集上进行训练,寻找最佳的特征组合和范围划分[33],包括有监督的学习和无监督的学习,目前大部分为有监督的学习,关于无监督的学习应用仍比较少。
3.2.1 基于有监督机器学习的表型算法开发
基于有监督的机器学习开发表型算法是指在临床专家标注的训练集中,采用有监督的机器学习算法寻找最佳的指标组合。如有学者采用随机森林的方法来识别高血压[25],有学者采用7种有监督的机器学习算法自动选择合适的划分区间[16],有学者应用6 种机器学习模型和堆叠泛化的方法进行表型算法开发[40],与基于规则的算法相比,该方法有着更好的ROC 曲线下面积(AUC),但基于规则的算法有着较高的特异度[40]。有学者提出了一种结合规则和机器学习的表型分析算法识别2 型糖尿病,能够结合二者的优点[41]。
采用有监督的机器学习方式进行表型算法开发,能够快速地进行特征筛选,在一定程度上提高分类效果,与基于规则的算法相比也有较好的可移植性。
为了获取更加准确的识别率,不可避免地要增加指标或提高表型分析算法的复杂度,但随着临床指标和特征数量的增多,在人工标注训练集有限的情况下会不可避免地造成过拟合,从而降低整个算法的召回率(recall),导致泛化性能变差。有学者采用ICD 的互补特征作为输入的方法(没有直接输入疾病的ICD 代码),虽然该方法能够降低算法的过拟合[21],但有监督学习依然严重依赖于金标准审核和将人工标注的病例集合作为训练集,而获取大的训练集需要消耗大量的人力和时间。
3.2.2 基于无监督机器学习的表型算法开发
基于无监督机器学习开发表型算法是指在没有进行人工标注的数据集上进行训练,采用无监督机器学习算法寻找最优的临床指标组合方式,以实现较好的疾病表型识别效果。如有学者在耐噪学习理论的基础上开发了一种从记录中通过银标准抽取表型的模型,提供了一种替代手动标记的方法,用于为表型统计模型创建训练集[42]。这种方法可以加速大型观察性医疗保健数据集的研究。有学者开发了无监督学习框架PheNorm,能够在不使用金标准标签的情况下进行表型算法开发,与通过银标准抽取表型的模型取得的效果相近[4]。有学者在PheNorm 框架的基础上开发了一种多疾病自动表型分析的方法,能够将电子病历的数据用于多表型的分析中,如全表型组关联分析(PheWAS)[43]。
无监督方法纯粹从数据中发现表型,试图聚合通常一起出现在患者记录中的医学概念,虽然更具可扩展性,但这些方法难以调整,通常依赖于预先定义表型的数量,需要对疾病定义进行手动审查,并且可能无法捕获与不太常见的疾病相关的共现[44]。
深度学习作为一种高效的生物医学文献分类方法,也逐渐被应用在表型分析过程中[45]。如有学者通过利用嵌入医学概念推导表型并测量疾病和患者表征之间的关联,获取接近的疾病表型,开发了一种Phe2vec 算法框架,经过验证取得了与PheKB 项目中共享算法相似的效果[44]。清华大学的团队在表型自动特征提取和代理辅助特征提取的基础上结合电子病历开发了技术框架PheCAP,可以实现自动化的快速的表型识别[3,31-33]。另一方面,深度学习还可以应用于自然语言处理技术中,以提高临床概念词语识别的准确率。
研究者除了增加表型定义的数据源、改进表型算法开发方案之外,还尝试引入数据处理等领域的方法,为表型分析研究提供了新的解决思路,包括采用统计学的方法对表型算法进行优化、改进表型算法过程等。有学者提出了一种基于概率图模型的、从异质性的电子病历数据中学习概率表型的方法,该方法返回每种可能表型的概率,而非绝对的表型分类[46]。有学者对前述研究进行了改进和扩展,利用2 型糖尿病高危儿童的数据库进行模拟研究,发现电子病历中的数据缺失属于一种非随机缺失,采用基于规则的表型分析,缺失的指标往往被认为是正常的指标[47],但这种假设会将潜在的患者排除在外,容易造成大量可用数据丢失,同时还可能导致选择偏倚,从而降低结果的准确度,因此该学者提出了一种贝叶斯隐分类方法(Bayesian latent class),并且利用2 型糖尿病高危儿童的数据库设计了模拟实验,在取得与基于规则的表型分析相似的准确度的前提下大幅度提高了敏感性[47]。有学者从基于拓扑的“患者-患者”网络中识别出了3个不同的2 型糖尿病亚组,并在此基础上进行了基因的关联分析,为表型分析算法开发提供了一种新的思路[14]。
表型算法验证是评价算法在其他数据集中识别表型的准确性的过程。表型算法验证主要分为单中心验证和多中心验证2 步。开发完成的表型算法需要先在本地进行验证,不断调整表型算法,直到阳性预测值达到满意的程度。通过本地验证之后需要将表型算法在其他中心进行验证和调整。目前常用的验证方式主要还是以专业的临床医生通过指南进行的标注作为评判的金标准。也有部分研究是基于已经完成的流行病学研究构建识别病例的表型算法,以病例组和对照组为标准进行验证和调整。
因为表型分析本质是分类问题,所以评价一般都是采用分类相关的指标,如阳性预测值(positive predictive value,PPV)、准确度(accuracy)、敏感度(sensitivity,recall)、特异度(specificity)、F1 分数、ROC 和曲线下面积(AUC)。表型算法验证最关注的还是阳性预测值,又称为查准率(precision)、精确度(precision),是指阳性预测值中真患者的比例。一般要求算法具有较高的阳性预测值,即让表型算法筛选出来的病例尽可能都是真患者,这样才能使后续的研究有实际的意义。
针对不同的表型,验证的目的也不同[48],如痴呆、白内障、2 型糖尿病等疾病类表型的验证重点是厘清疾病诊断判断的标准;如心电图QRS 波、低密度脂蛋白、白细胞计数、红细胞计数,以及身高和血脂等非疾病类表型的验证旨在判断数据是否在合理区间内。有学者总结了6 点关于表型算法验证的经验教训和注意事项,建议将表型算法开发和验证作为一个迭代过程来进行[6]。
开发具有良好扩展性和鲁棒性的表型算法,需要耗费大量的人力资源,因此共享算法可以实现利益最大化。表型算法的共享是指将通过验证的表型算法上传到表型算法共享平台或项目中供其他学者验证和应用。表型算法在经过本地验证后,还需要经过多中心验证才能够进行共享。目前主要的表型算法共享平台主要是PheKB。截至2021 年12 月8 日,PheKB 的官网中共有82 个表型算法通过了验证并公开共享,其中eMERGE 网络项目组贡献了68 个表型算法的开发和验证[13]。此外,在PheKB中还有38 个表型算法处于协作状态,其中包括了7 个测试中的表型算法、8 个尚在开发中的表型算法和4 个验证中的表型算法,剩余的19 个表型算法均为最终版本[13]。
表型分析涉及到学科交叉,目前常采用标准化的医学编码方案进行表型分析算法开发,如ICD-9和ICD-10、用于实验室指标的LOINC、用于药物的RxNorm、用于跨领域交流的CPT,以及用于规范临床术语的SNOMED-CT 等,以解决不同中心对于概念不统一的问题。
有学者指出,目前还没有正式的“表型语言”用于构建电子病历表型算法,也没有通用的实现方法[7]。有学者在研究中观察到,面对同一人群,不同的表型定义会产生不同的结果人群,从而使后续的研究结果和数据解释产生巨大的差异[49],导致表型算法难以较好地移植,从而影响表型分析在更广阔领域的应用。为此,有学者综合了目前常见的表型库,提出了建立一种新型表型库的愿景,并指出新型表型库应能够提供表型建模、更新表型、部署、验证和共享5 个生命周期内的功能,为表型共享研究提供了新的思路[2]。
表型分析作为电子病历数据再利用的基础性工作,利用表型算法准确识别表型后,能够在不同的领域应用电子病历支持临床研究。本文着重总结表型分析在临床研究中直接应用的相关研究,主要归纳为疾病分层、病例自动识别、电子病历数据挖掘3 方面。具体的文献整理如表1 所示。
表1 表型分析在临床研究中直接应用相关研究文献
疾病分层是指通过表型聚类发现不同疾病的本质特征,并且增加对疾病的了解。这种应用在精神类疾病[50]、呼吸系统疾病[1]中较为常见。不同的疾病可能有着相似的疾病表现,研究结果显示,根据表型的不同给予针对性的治疗措施能够提高医疗的效果[1]。根据表型聚类也有助于发现疾病亚型,如采用深度学习算法识别表型的特征将罕见病患者分为不同亚组[51],可以更好地了解疾病的本质。
病例自动识别是指根据表型算法自动从电子病历中识别包含定疾病表型的患者,也是表型分析的主要目的,能够用于流行病学和临床试验的招募,如快速从跨医疗中心的电子病历中识别2 型糖尿病患者[52],还能够用于疾病管理,如直接从电子病历中识别社区相关耐甲氧西林金黄色葡萄球菌病例进行院感控制[37]等。
电子病历数据挖掘则是指将表型算法直接嵌入到电子病历的应用中,如通过一些训练的算法修正电子病历中的身高值[53]、利用电子病历中的数据进行疾病的预测[17]、入院后快速检测溶栓指征[54]等。
随着电子病历数据的迅速增长,越来越多的工作如患者分层、合并症发现、病例描述、揭示基因-疾病关联、药物相互作用、药物警戒甚至精准医疗等都可以建立在表型分析的基础上,表型分析逐渐成为真实世界数据驱动的临床研究和电子病历数据再利用的基础,基于电子病历的自动化表型分析的重要性日益凸显。但目前仍存在以下几方面的问题亟待解决。
首先,基于电子病历的表型算法的有效性有待提高。可以从2 个角度对表型算法进行优化。一是从表型定义角度来看,提高数据的可信度、增加数据来源和类型有助于提高表型算法的效果。如有学者发现部分患者替家人买药,从而在电子病历中记录了错误的用药信息,导致数据可信度降低[30]。此外,还存在部分电子病历数据因为标准变化、手工转录、系统升级等原因造成数据缺失、不规整等问题[6]。因此在应用电子病历进行表型分析前,需要对数据的可信度进行检验。前文提到,采用多中心、多样化数据建立的表型算法比单中心、单类型数据的算法效果好很多,但仍需考虑多样化数据之间的冲突,以及非结构化数据的歧义、缩写等问题。二是从表型算法开发的角度来看,优化表型算法的开发方式与采用基于规则和监督学习相比,采用无监督的机器学习算法能更快速地进行表型识别,但同时也存在受限于最初确定表型的数量和低召回率的问题。
其次,研究成果的传播与共享有待加强。一方面是表型分析研究成果的传播有待加强。有学者试图全面地审查尽可能多的表型分析,但受限于表型一词的模糊性,关于表型的研究很难检索全面[15],本文也同样存在以偏概全的问题。另一方面是算法的传播和共享有待加强。多种标准化编码虽然能解决跨机构概念不同的问题,但不同的标准之间仍存在粒度粗细不同、概念相互重叠及不兼容等问题。针对目前表型分析中的各种问题,有学者综合了目前常见的表型库,提出建立一种新型表型库的愿景,并指出表型库应能够提供表型建模、更新、部署、验证和共享5 个功能,为表型传播和共享研究提供了新的思路[2]。
第三,基于电子病历的表型分析在临床研究中应用的效果有待提升。有学者发现,在应用电子病历表型分析的病例对照研究中,其候选集合会被既不属于控制组定义的、也不属于病例组定义的样本所干扰[55],忽略此类患者的污染将导致对结果的OR值的估计产生偏差。还有学者在研究中提到了此类问题,并提出了相关解决方案,但目前应用表型分析的流行病学相关研究仍然有限[56]。今后的研究应在提高表型分析效果的同时,再增加临床医生、公共卫生研究人员对表型分析的信任度,从而扩大表型分析的应用。
本文以英文数据库为综述对象的数据来源,共选取了53 篇代表性文献,对基于电子病历的表型分析的流程进行了总结,并从表型定义、表型算法开发、表型算法的验证和共享4 个方面对表型分析进行了综述,最后总结梳理了表型分析在临床方面的应用现状,为后续相关研究提供借鉴。
综述结果显示,随着电子病历数据库日益完善,表型分析已成为电子病历数据再利用的基础。表型定义的数据来源越来越多,包括结构化和非结构化电子病历数据、开放医学资源等。表型算法开发的方法逐渐从基于规则开发向无监督学习开发转变,并向着表型算法的自动构建方向发展。但目前仍有很多挑战和困难,今后的研究应继续致力于提高数据的可信度、增加数据来源和类型以提升表型算法的效果,同时还应加强表型分析相关研究的共享和传播,扩大表型分析在临床研究中的应用。