自动下载UMLS数据。
项目描述
UMLS Downloader
无需担心UMLS术语服务(UTS)的许可和分发规则 - 只需使用umls_downloader
编写代码,使其能够从以下(非详尽)的资源列表中自动下载内容和使用它
或任何可以通过UTS票证授予系统下载的内容。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代码中获取和传递它。
- 在环境中设置
UMLS_API_KEY
- 创建
~/.config/umls.ini
并在[umls]
节中设置api_key
键。
from umls_downloader import download_umls
# Same path as before
path = download_umls(version="2021AB")
下载最新版本
首先,您需要使用 pip install bioversions
安装 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:
...
此代码使用Python的上下文管理器通过 open_umls()
包装,因此可以更简单地编写为
from umls_downloader import open_umls
with open_umls() as file:
for line in file:
...
这里的 version
和 api_key
参数也适用。
为什么不是API?
UMLS提供API,用于分批访问少量数据。甚至有两个近期的(过去5年)包umls-api
connect-umls
,为它们提供包装。然而,API访问通常受速率限制,难以批量使用,并且速度较慢。对于批量处理UMLS(或任何其他数据库)而言,有必要下载完整数据库转储。
👋 稿件归属
⚖️ 许可证
本包中的代码受MIT许可证许可。
🍪 Cookiecutter
此包是用@audreyfeldroy的cookiecutter包以及@cthoyt的cookiecutter-snekpack模板创建的。
项目详情
下载文件
下载适合您平台的自定义文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
umls_downloader-0.1.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 029194107c4d47bb6615faaa10f17a1f6134540f788c241dc8e3c3b348a26a4d |
|
MD5 | e70d1fb410ac085ac6c2794937d8f5bb |
|
BLAKE2b-256 | 549bc6f27a1eac84438b1c39febf03f43115b10aabef352bb5779461293867a2 |