跳转到主要内容

FISS的友好伴侣

项目描述

dalmatian

Build Status

FISS的忠实伴侣。

dalmatian是一个通过Pandas数据框与Firecloud交互的高级函数集合。

安装

pip install firecloud-dalmatian

需求

FireCloud使用Google Cloud SDK(https://cloud.google.com/sdk/)来管理授权。要使用dalmatian,您必须安装SDK并在本地登录

gcloud auth application-default login

示例

Dalmatian提供了WorkspaceManager类,用于与FireCloud工作区交互。

import dalmatian
wm = dalmatian.WorkspaceManager("namespace/workspace")

创建和管理工作区

创建工作区

wm.create_workspace()

上传样本和样本属性(例如,BAM路径)。属性必须以以下形式的pandas DataFrame提供

  • 索引必须命名为'sample_id',并包含样本ID
  • 数据框必须包含'participant_id'列
  • 如果提供了'sample_set_id'列,将生成相应的样本集
wm.upload_samples(attributes_df, add_participant_samples=True)

如果 add_participant_samples=True,则一个参与者的所有样本都存储在 participant.samples_ 中。

添加或更新工作区属性

attr = {
    'attribute_name':'gs://attribute_path',
}
wm.update_attributes(attr)

获取样本、样本集、参与者的属性

samples_df = wm.get_samples()
sets_df = wm.get_sample_sets()
participants_df = wm.get_participants()

创建或更新集合

wm.update_sample_set('all_samples', samples_df.index)
wm.update_participant_set('all_participants', participant_df.index)

从工作区复制/移动数据

samples_df = wm.get_samples()
dalmatian.gs_copy(samples_df[attribute_name], dest_path)
dalmatian.gs_move(samples_df[attribute_name], dest_path)

克隆工作区

wm2 = dalmatian.WorkspaceManager(namespace2, workspace2)
wm2.create_workspace(wm)

运行作业

提交作业

wm.create_submission("config_namespace/config_name", sample_id, 'sample', use_callcache=True)
wm.create_submission("config_namespace/config_name", sample_set_id, 'sample_set', expression='this.samples', use_callcache=True)
wm.create_submission("config_namespace/config_name", participant_id, 'participant', expression='this.samples_', use_callcache=True)

监控作业

wm.get_submission_status()

获取运行时统计信息(包括成本估算)

status_df = wm.get_sample_status(config_name)
workflow_status_df, task_dfs = wm.get_stats(status_df)

重新运行失败的作业(对于样本集)

status_df = wm.get_sample_set_status(config_name)
print(status_df['status'].value_counts())  # list sample statuses
wm.update_sample_set('reruns', status_df[status_df['status']=='Failed'].index)
wm.create_submission(config_namespace, config_name, sample_set_id, 'reruns', expression=this.samples, use_callcache=True)

内容

包括以下列出的附加FireCloud工具

workflow_time
create_workspace
delete_workspace
upload_samples
upload_participants
update_participant_samples
update_attributes
get_submission_status
get_storage
get_stats
publish_config
get_samples
get_sample_sets
update_sample_set
delete_sample_set
update_configuration
check_configuration
get_google_metadata
parse_google_stats
calculate_google_cost
list_methods
get_method
get_method_version
list_configs
get_config
get_config_version
print_methods
print_configs
get_wdl
compare_wdls
compare_wdl
redact_outdated_method_versions
update_method
get_vm_cost

用法

某些功能依赖于已安装的 gsutil

当使用PY3时,这可能会创建需要多个可访问Python安装的潜在问题。

通过为gsutil Python定义一个 env 变量来解决这个问题

# replace path with path to local python 2.7 path.
# if using pyenv the following should work
# (assuming of course 2.7.12 is installed)
export CLOUDSDK_PYTHON=/usr/local/var/pyenv/versions/2.7.12/bin/python

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

firecloud-dalmatian-0.0.18.tar.gz (149.1 kB 查看散列)

上传时间

构建分布

firecloud_dalmatian-0.0.18-py3-none-any.whl (38.0 kB 查看散列)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面