Skip to main content

自动下载 UMLS 数据。

项目描述

UMLS 下载器

测试 文件状态 派皮 PyPI - Python 版本 PyPI - 许可证 代码风格:黑色

不要担心UMLS 术语服务 (UTS) 许可和分发规则 - 只需用于 umls_downloader编写知道如何从以下(非详尽的)资源列表中下载内容并自动使用它的代码:

或任何可以通过悉尼科技大学门票授予 系统下载的内容。没有可通过 UTS 获得的集中内容列表,因此欢迎通过问题跟踪器提出额外资源的建议。

完整的文档可在umls-downloader.readthedocs.io 获得

安装

$ pip install umls_downloader

下载特定版本的 UMLS

import os
from umls_downloader import download_umls

# Get this from https://uts.nlm.nih.gov/uts/edit-profile
api_key = ...

path = download_umls(version="2021AB", api_key=api_key)

# This is where it gets downloaded: ~/.data/bio/umls/2021AB/umls-2021AB-mrconso.zip
expected_path = os.path.join(
    os.path.expanduser("~"), ".data", "umls", "2021AB",
    "umls-2021AB-mrconso.zip",
)
assert expected_path == path.as_posix()

下载一次后,它很智能,无需再次下载。它会pystow自动存储在~/.data/bio/umls目录中。

文档中提供了完整的函数列表 。

自动配置 UTS 凭证

有两种方法可以自动设置用户名和密码,这样您就不必担心获取它并在您的 python 代码中传递它:

  1. 设置UMLS_API_KEY在环境中
  2. 在部分中创建~/.config/umls.ini并设置[umls]一个api_key键。
from umls_downloader import download_umls

# Same path as before
path = download_umls(version="2021AB")

下载最新版本

首先,您必须安装bioversions with pip install bioversions,它的工作是查找许多数据库的最新版本。然后,您可以通过省略version关键字参数来稍微修改前面的代码:

from umls_downloader import download_umls

# Same path as before (as of November 21st, 2021)
path = download_umls()

下载并打开文件

UMLS 文件是压缩的,因此它通常带有以下样板代码:

import zipfile
from umls_downloader import download_umls

path = download_umls()
with zipfile.ZipFile(path) as zip_file:
    with zip_file.open("MRCONSO.RRF", mode="r") as file:
        for line in file:
            ...

这个确切的代码是open_umls()用 Python 的上下文管理器包装的,所以它可以更简单地写成:

from umls_downloader import open_umls

with open_umls() as file:
    for line in file:
        ...

versionapi_key论点在这里也适用。

为什么不是 API?

UMLS 提供了一次 访问微小数据的API 。甚至有两个最近(过去 5 年)的包提供了一个包装器。但是,API 访问通常受到速率限制、难以批量使用且速度慢。为了批量使用 UMLS(或任何其他数据库),有必要下载完整的数据库转储。umls-api connect-umls