"GA4GH 变异表示规范 (VRS) 参考实现 (https://github.com/ga4gh/vrs-python/)"
项目描述
vrs-python
vrs-python 为 GA4GH 变异表示规范 (VRS) 提供Python语言支持。GA4GH 变异表示规范 (VRS)。
此存储库包含多个相关组件
-
ga4gh.core 包 Python 语言对 GA4GH 中某些新兴标准的支持。最终,此包应移至独立的仓库。
-
ga4gh.vrs 包 Python 语言对 VRS 的支持。
-
ga4gh.vrs.extras 包 Python 语言对附加功能的支持,包括与其他变异格式之间的转换和类似功能的 REST 服务。
ga4gh.vrs.extras
需要访问以下所述的辅助数据。 -
Jupyter 笔记本 以易于阅读的笔记本形式展示
ga4gh.vrs
和ga4gh.vrs.extras
的功能。
VRS-Python 和 VRS 版本对应关系
ga4gh/vrs-python 仓库将 ga4gh/vrs 仓库作为 git 子模块嵌入,因此 PyPi 上的每个 ga4gh.vrs 包都嵌入了一个特定的 VRS 版本。包之间的对应关系可以总结如下
vrs-python 分支 | vrs 分支 |
---|---|
主分支 | 主分支 |
0.6 | 1.1 |
0.7 | 1.2 |
0.8 | 1.3 |
0.9 | metaschema-update |
⚠ 开发者:请参阅下面的开发部分,了解使用子模块的建议(以及避免给其他人造成问题的建议)!
安装
使用 pip 安装
pip install 'ga4gh.vrs[extras]'
参数 [extras]
告诉 pip 安装满足 ga4gh.vrs.extras
包依赖的包。
安装 ga4gh.vrs.extras 的依赖项
ga4gh.vrs.extras 模块本身不是 VR 规范的一部分。它们与 ga4gh.vrs 一起打包,以方便开发和安装。这些模块直接和间接依赖于外部序列、转录本和基因组-转录本比对的数据源。本节建议一种安装提供这些数据的 biocommons 工具的方法。
docker volume create --name=uta_vol
docker volume create --name=seqrepo_vol
docker-compose up
这将启动三个容器
- seqrepo:将 seqrepo 下载到 docker 卷中并退出
- seqrepo-rest-service:在 seqrepo 上的 REST 服务(localhost:5000)
- uta:转录本和比对的数据库(localhost:5432)
检查容器是否正在运行
$ docker ps
CONTAINER ID IMAGE // NAMES
86e872ab0c69 biocommons/seqrepo-rest-service:latest // vrs-python_seqrepo-rest-service_1
a40576b8cf1f biocommons/uta:uta_20180821 // vrs-python_uta_1
根据您的网络和主机,第一次运行可能需要 5-15 分钟,以便下载和安装数据。后续启动应该是瞬间的。
您可以通过以下方式测试 UTA 和 seqrepo 安装
snafu$ psql -XAt postgres://anonymous@localhost/uta -c 'select count(*) from transcript'
249909
它不起作用!
以下是一些您可以尝试的事情。
-
一次启动一个服务。例如,如果您尚未下载 seqrepo,您可能会看到以下内容
snafu$ docker-compose up seqrepo-rest-service Starting vrs-python_seqrepo-rest-service_1 ... done Attaching to vrs-python_seqrepo-rest-service_1 seqrepo-rest-service_1 | 2022-07-26 15:59:59 snafu seqrepo_rest_service.__main__[1] INFO Using seqrepo_dir='/usr/local/share/seqrepo/2021-01-29' from command line ⋮ seqrepo-rest-service_1 | OSError: Unable to open SeqRepo directory /usr/local/share/seqrepo/2021-01-29 vrs-python_seqrepo-rest-service_1 exited with code 1
运行笔记本
按照上述方法安装后,输入
$ source venv/3.7/bin/activate
$ jupyter notebook --notebook-dir notebooks/
以下 jupyter 扩展建议但不是必需的
$ pip install jupyter_contrib_nbextensions
$ jupyter contrib nbextension install --user
$ jupyter nbextension enable toc2/main
在 Terra 平台上运行笔记本
Terra 是由 Broad Institute、Microsoft 和 Verily 开发的生物医学研究云平台。该平台包括预配置的环境,可提供用户友好的访问各种在生物信息学中常用的应用程序,包括 Jupyter Notebook。
我们在 Terra 中创建了一个公开的 VRS-demo-notebooks
工作空间,其中包含演示笔记本以及如何以最小设置运行它们的说明。要开始,请参阅 VRS-demo-notebooks
工作空间或此存储库中的 Terra.ipynb
笔记本。
开发
子模块!
vrs-python 将 vrs 作为子模块嵌入。当检出 vrs-python 并切换分支时,确保子模块正确跟踪 vrs-python 非常重要。推荐的做法是 git config --global submodule.recurse true
。 如果您不设置 submodule.recurse,开发人员和审阅者必须非常小心,以免意外升级或降级与 vrs-python 相关的架构。
另请参阅 misc/githooks/
。
开发安装
在 https://github.com/ga4gh/vrs-python/ 处分此仓库。
$ git clone --recurse-submodules git@github.com:YOUR_GITHUB_ID/vrs-python.git
$ cd vrs-python
$ make devready
预提交
我们使用 pre-commit 检查代码风格。
在首次提交前,运行
$ pre-commit install
测试
此包实现了 ga4gh.core 和 ga4gh.vrs 的典型单元测试。此包还在 tests/validation/ 目录中实现了 vrs(vrs/validation)的合规性测试。
$ make test
同时开发 VRS(模式)
如果您想与 vrs-python 一起开发 VRS 模式,对于大多数用户来说,推荐的方法是分叉并克隆 ga4gh/vrs
仓库,然后设置 VRS_SCHEMA_DIR
环境变量以使用替代的模式位置。
安全注意事项(来自 GA4GH 安全团队)
对规范本身进行了独立的安全审查。此实现按原样提供,不提供任何安全保证。在它可用于安全关键应用之前,需要独立的安全审查。如果您将此代码集成到您的应用程序中,安排安全审计的责任和风险由您自行承担。
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。