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如何在mybatis中捕获SQLException   java Spring XML自动连线记录器不确定目标类名   JavaSpringDataJPA:使用联接表进行排序和分页   JAVA循环的lang.NullPointerException数组   带Jetty和空密码的java双向SSL   当对象为类型时,java在tableview上显示图像   如何在GWT中从javascript到java获取返回类型“any”?(泛型类型传递)   java从ListView Android中的微调器获取选定值   java缓冲图像中较小的图像被裁剪,我如何解决这个问题?   java Spring MVC 3.1:使用SimpleUrlHandlerMapping和通用基本控制器时的问题   java在每次调用时生成唯一的随机数   java libGDX:在屏幕上移动多边形   java TextView未在应用程序中居中,但在match_约束中居中   在python中重复运行同一java函数的最佳方式是什么?