Transmart的数据转换作业

transmart-packer的Python项目详细描述


Build statuscodecovPyPIPyPI - Downloads

TranSMART运行数据转换作业。

安装

首先使用python3.6+

使虚拟环境安装依赖项
pip install transmart-packer

或来源:

git clone https://github.com/thehyve/transmart-packer.git
cd transmart-packer
pip install .

依赖关系

  • 在本地主机上运行的redis服务器(或更新packer/config.py

运行

从根目录运行:

redis-server

celery -A packer.tasks worker --loglevel=info

transmart-packer

环境变量:

VariableDescription
^{tt2}$The URL of the TranSMART API server
^{tt3}$Keycloak server URL, e.g., ^{tt4}$
^{tt5}$The Keycloak realm, e.g., ^{tt6}$
^{tt7}$The Keycloak client ID (default: ^{tt8}$)
^{tt9}$Redis server URL (default: ^{tt10}$)
^{tt11}$Directory to write export data (default: ^{tt12}$)
^{tt13}$Logging configuration (default: ^{tt14}$)
^{tt15}$URLs to restrict cross-origin requests to (CORS) (default: ^{tt16}$)

一个可选变量verify\u cert可用于指定证书集合文件的路径(.pem) 用于验证http请求。

或者,可以使用docker-compose从代码构建并运行堆栈。

# Downloads redis image and creates image with project dependencies.
docker-compose build

# After build is complete, start via:
docker-compose up

代码更改时,Web服务器将自动重新启动,但芹菜工人不会。 更新芹菜任务逻辑后,需要重新启动Docker容器。

用法

可用的处理程序:

PathDescription
^{tt18}$List all known jobs for this user.
^{tt19}$Create a new job by providing job_type and job_parameters, creates the job and returns a task_id.
^{tt20}$Get status details for a specific task.
^{tt21}$Cancel scheduled or abort a running task.
^{tt22}$Download the data that this task produced.
^{tt23}$Open websocket connection to get live updates on job progress.

在本地主机上启动玩具作业“add” 呼叫http://localhost:8999/jobs/create?job_type=add&job_parameters={%22x%22:500,%22y%22:1501}

开发

成分

Overview of the components of transmart-packer and the interaction with external components.

Transmart Packer组件概述以及与外部组件的交互。

测试

要运行测试套件,我们必须使用上面的命令启动redis服务器和芹菜工人。 然后您可以运行:

python setup.py test

延伸

可以通过在jobs文件夹中添加一个新的芹菜函数并添加 作业注册表的函数。请参阅packer/jobs/example.py了解如何操作。

现有作业

基本出口工作

将Transmart API客户端观察数据帧导出到TSV文件

{"job_type":"basic_export","job_parameters":{"constraint":{"type":"study_name","studyId":"CSR"},"custom_name":"name of the export"}}

病人、诊断、生物源和生物材料出口

将“患者”>;“诊断”>;“生物源”>;“生物材料层次结构”导出为文件的前4列。 其余列是概念。更高层次的概念(例如特定于患者级别的年龄) 分配到特定于较低级别的所有行(例如诊断)

CSR测试研究为例。

{"job_type":"patient_diagnosis_biosource_biomaterial_export","job_parameters":{"constraint":{"type":"study_name","studyId":"CSR"},"custom_name":"name of the export","row_filter":{"type":"patient_set","subjectIds":["P2","P6"]}}}

其中:

  • job_parameters.constraint-任何transmart v2 api constraint 或者是用来从Transmart获取数据的组合。
  • job_parameters.custom_name(可选)-导出作业和输出tsv文件的名称。
  • job_parameters.row_filter(可选)-任意transmart v2 api constraint 或者组合它们来获取键([[[[patient], diagnosis], biosource], biomaterial]),使之成为最终结果。 例如,给定上述研究和查询,只有特定于p2p6的行,患者将最终得到结果表,如p2d2bs2bm2,…行。 请注意,键的长度不必相等。如果只有部分键匹配,则选择一行。例如,p1vsp1d1

许可证

版权所有©2019 The Hyve B.V.

此程序是免费软件:您可以重新分发和/或修改 根据GNU Affero通用公共许可条款 由自由软件基金会出版,或者 许可证,或(由您选择)任何更高版本。

这个程序的发布是希望它能有用, 但没有任何保证;甚至没有 适销性或适合某一特定目的的适销性。见 GNU Affero通用公共许可证了解更多详细信息。

你应该收到一份GNU Affero General Public License 还有这个节目。如果没有,请参阅https://www.gnu.org/licenses/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java OnResizeListener或OnDrawListener或类似的东西   java Orika映射嵌套子列表   保存时java Heroku请求超时代码H12   数据库在Java中出现socket读取超时异常的原因是什么?   java如何更改来自Sqlite数据库的特定数据在Listview中的行颜色   java JAXB解组器无法正确处理XML中的列表   java Android日期时区让我抓狂   java不透明属性在Swing中如何工作?   eclipse从JavaEE代码生成流程图   java如何在Hibernate中从相关表中获取计数   java Glassfish部署了项目的依赖项库   java使内容适合JavaFx中的WebView   java不满意的链接错误libcrypto。所以1.0.0   循环中java数组的使用   java找出哪个包调用服务