Transmart的数据转换作业
transmart-packer的Python项目详细描述
为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
环境变量:
Variable | Description |
---|---|
^{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容器。
用法
可用的处理程序:
Path | Description |
---|---|
^{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}。
开发
成分
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]),使之成为最终结果。 例如,给定上述研究和查询,只有特定于p2和p6的行,患者将最终得到结果表,如p2,d2,bs2,bm2,…行。 请注意,键的长度不必相等。如果只有部分键匹配,则选择一行。例如,p1vsp1,d1
许可证
版权所有©2019 The Hyve B.V.
此程序是免费软件:您可以重新分发和/或修改 根据GNU Affero通用公共许可条款 由自由软件基金会出版,或者 许可证,或(由您选择)任何更高版本。
这个程序的发布是希望它能有用, 但没有任何保证;甚至没有 适销性或适合某一特定目的的适销性。见 GNU Affero通用公共许可证了解更多详细信息。
你应该收到一份GNU Affero General Public License 还有这个节目。如果没有,请参阅https://www.gnu.org/licenses/。