用于使用ucumapi验证cdisc sdtm.lb和adam.adlb的python库
pyucum的Python项目详细描述
脓肿
Sam Tomioka
pyucum可用于从lborresu
和lbstresu
生成ucum单位,验证ucum单位,并使用ucum api将lborresu
中的结果转换为lbstresu
中的结果。它被更新为使用给定的loinc值来确定在基于摩尔单位的结果转换中使用的适当分子量。此工具与cdisc sdtm.lb和adam.adlb一起工作良好。
<H2>1。背景
由于以下几个原因,科学单位的验证和从报告单位到标准单位的转换一直是数据科学面临的挑战:
- 需要一个查找表,其中包含所有可能的测量输入和输出单位、测量名称(例如葡萄糖、重量等)、换算系数、摩尔重量等。
- 查找表中的度量值名称和传入数据必须匹配
- 输入的单位必须在查找表中
- 查找表的维护必须与标准术语更新同步
- 除了劳动数据科学审查外,还需要仔细的医学审查 还有更多… < > >
- numpy>;=1.15.0
- 熊猫>;=0.23.0
- tqdm>;=4.32.2
- Seaborn>;=0.9.0
- matplotlib>;=3.1.1
ucum list
是ucum单元的列表(不是cdisc sdtm ct单元!)待验证url
用于api服务。- 目前,https://ucum.nlm.nih.gov/ucum-service/v1/来自度量单位(ucum)资源的统一代码不提供基于loinc的结果转换。版本服务。
- 如果需要基于loinc的转换,请使用http://xml4phamaserver.com:8080/ucumservice2/rest" rel="nofollow">http://xml4phamaserver.com:8080/ucumservice2/rest从xml4pharma
初始评估(2019-02-20)是在Restapi上完成的,该Restapi可通过统一度量单位(UCUM)资源代码获得,调查结果总结如下这里
第二次评估(2019-05-05)是在Jozef Aerts提供的Restapi测试版本上完成的,网址为:xml4pharmaxml4pharma。研究结果在这里进行了总结
第三次评估(2019-05-25)是在jozef aerts提供的restapi更新测试版本上完成的,网址是:xml4phama。自从第二次评估完成以来,jozef aerts通过实现了一些改进。
- 它将分析物的分子量换算成摩尔浓度和质量浓度,以便于实验室结果的转换、标准实验室结果的验证和供应商提供的LOINC代码。
- 返回消息包含用于转换的mw。
以前,有一种与loinc相关的错误消息。例如,
< Buff行情>错误信息"错误:LOINC代码x x x-x没有mw值或LOINC代码无效"
更新的服务返回与loinc相关的错误消息
- 无效的LOINC代码xxxx
- 找不到LOINC零件号lpxxxx的MW,LOINC代码yyyy
此更新允许我们在不浏览loinc的情况下调查问题。 < > >
loinc部件的mw列表已扩展。
< > >
尽管存在这些挑战,查找表方法仍然是许多公司验证单元和转换的标准方法。考虑到更系统的方法,不需要使用实验室测试名称[1],但一些单位依赖于特定实验室测试的摩尔重量和/或离子价,因此这种方法不能解决问题。监管机构要求发起人使用标准化单位进行报告和分析[2]。PMDA要求所有报告和分析使用国际单位[3,4]。需求的差异迫使我们对一些增加了额外复杂性的测量保持特定于区域的转换。
jozef aerts所讨论的方法使用restapi,restapi可通过美国国家医学图书馆(nlm)[5]维护的统一度量单位(ucum)资源代码获得。好处是显而易见的,我们可以潜在地消除实验室转换查找表的维护。以下是他们对自己的评价。
< Buff行情>统一计量单位代码(ucum)是一个代码系统,旨在包括国际科学、工程和商业中同时使用的所有计量单位。其目的是促进数量及其单位之间的明确的电子通信。重点是电子通信,而不是人与人之间的通信。计量单位统一代码的一个典型应用是电子数据交换(EDI)协议,但没有什么能阻止它在其他类型的机器通信中使用。
ucum是符合iso 11240的标准,并已用于icsr e2b提交给采用iche2b(r3)的监管机构。fda需要ucum代码用于evaers icsr e2b(r3)提交文件,产品标签内容中的剂量强度和药品注册和药品上市。ucum代码已被hl7采用。 <H2>2。安装
要安装,
pip install pyucum
需要以下软件包
或resu2ucum(df_u,模式)
这将采用包含lborresu
和lbstresu
的数据框架,以及要传递以生成ucum单位的正则表达式。它返回带转换单位的数据帧和转换单位列表。
尽管cdisc发布了一个可下载的cdisc单元和ucum映射xlsx文件,因为cdisc单元不包括临床实验室/生物分析/pk供应商使用的所有报告单元,所以该工具不会使用它。在使用转换重启之前,正则表达式和ucum单元有效性服务用于转换和验证实验室供应商提供的单元。
示例:
frompyucumimport*patterns=[("%","%25"),("\A[xX]?10[^E]","10*"),("IU","%5BIU%5D"),("\Anan",""),("\ANONE",""),("\A[rR][Aa][Tt][Ii][Oo]",""),("\ApH",""),("Eq[l]?","eq"),("\ATI/L","TR/L"),#update T to TR("\AGI/L","GA/L"),#update G to GA("V/V","L/L"),("[a-z]{0,4}/HPF","/%5BHPF%5D"),("[a-z]{0,4}/LPF","/%5BLPF%5D"),("fraction of 1","1"),("sec","s"),("1.73m2","%7B1.73_m2%7D"),("\AG/L","GA/L")]dfconverted,ucumlist=orresu2ucum(df1,patterns)<H3>3.2。使用ucum服务验证单元
ucumverify(ucumlist,url)
示例:
frompyucumimport*url='http://xml4pharmaserver.com:8080/UCUMService2/rest'#url=https://ucum.nlm.nih.gov/ucum-service/v1/ucumVerify(ucumlist,url)
输出:
['g/dL = true', 'mg/dL = true', 'ng/mL = true', '10*3/uL = true', '%25 = true', '10*6/uL = true', '10*3/mm3 = true', 'meq/L = true', 'mL/min = true', 'ng/L = true', 'ng/dL = true', 'u%5BIU%5D/mL = true',<H3>3.3。将lborresu中的结果转换为lbstresu中的结果
转换单元()
示例:
frompyucumimport*findings,full,response=convert_unit(nodupdf,url,patterns,loinconly=0)findings[(findings['fromucum'].notnull())]输出:
要查看其他实用程序,请转到此处的示例 <H2>3。ucum和xml4pharma api服务的验证
第三次评估的结果总结如下