Skip to main content

A friendly companion for FISS

Project description


## dalmatian

[Fiss'](https://github.com/broadinstitute/fiss) faithful companion.

dalmatian is a collection of high-level companion functions for
Firecloud and FISS.

### Install

Instructions: See INSTALL in the repository.

### Requirements

FireCloud uses the Google Cloud SDK (https://cloud.google.com/sdk/) to manage authorization. To use dalmatian, you must install the SDK and login locally with

```
gcloud auth application-default login

```
### Examples
Dalmatian provides the WorkspaceManager class for interacting with FireCloud workspaces.
```
import dalmatian
wm = dalmatian.WorkspaceManager(namespace, workspace)
```

Create the workspace:
```
wm.create_workspace()
```

Upload samples and sample attributes (e.g., BAM paths). The attributes must be provided as a pandas DataFrame, in the following form:
* the index must be named 'sample_id', and contain the sample IDs
* the dataframe must contain the column 'participant_id'
* if a 'sample_set_id' columns is provided, the corresponding sample sets will be generated
```
wm.upload_samples(attributes_df, add_participant_samples=True)
```
If `add_participant_samples=True`, all samples of a participant are stored in `participant.samples_`.

Add or update workspace attributes:
```
attr = {
'attribute_name':'gs://attribute_path',
}
wm.update_attributes(attr)
```

Get attributes on samples, sample sets, participants:
```
samples_df = wm.get_samples()
sets_df = wm.get_sample_sets()
participants_df = wm.get_participants()
```

Create or update sets:
```
wm.update_sample_set('all_samples', samples_df.index)
wm.update_participant_set('all_participants', participant_df.index)
```

Submit jobs:
```
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)
```

Monitor jobs:
```
wm.get_submission_status()
```

Get runtime statistics (including cost estimates):
```
status_df = wm.get_sample_status(config_name)
workflow_status_df, task_dfs = wm.get_stats(status_df)
```

Copy/move data from workspace:
```
samples_df = wm.get_samples()
dalmatian.gs_copy(samples_df[attibute_name], dest_path)
dalmatian.gs_move(samples_df[attibute_name], dest_path)
```

Clone a workspace:
```
wm2 = dalmatian.WorkspaceManager(namespace2, workspace2)
wm2.create_workspace(wm)
```


### Contents

Including additional FireCloud Tools (enumerated below)

```
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
```


### Usage

Some functionality depends on the installed `gsutil`.

When using PY3 this creates a potential issue of requiring multiple accessible python installs.

Remediate this issue by defining an `env` variable for gsutil python

```
# 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
```


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

firecloud-dalmatian-0.0.1.tar.gz (17.6 kB view details)

Uploaded Source

Built Distributions

firecloud_dalmatian-0.0.1-py3.6.egg (71.9 kB view details)

Uploaded Source

firecloud_dalmatian-0.0.1-py2.py3-none-any.whl (32.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file firecloud-dalmatian-0.0.1.tar.gz.

File metadata

File hashes

Hashes for firecloud-dalmatian-0.0.1.tar.gz
Algorithm Hash digest
SHA256 d6785f761e9fa14e8c9c6bc9997f6cca496ef0a73ecd634649807c8a1fb92dcd
MD5 fb4da90a1383277a48cc372c0895e3a8
BLAKE2b-256 af35fb0112219d2c7a4cc71fee0d4c424c881975865d0685770d3a380eafe8f1

See more details on using hashes here.

File details

Details for the file firecloud_dalmatian-0.0.1-py3.6.egg.

File metadata

File hashes

Hashes for firecloud_dalmatian-0.0.1-py3.6.egg
Algorithm Hash digest
SHA256 de7fa7f3f8615bc6abd67e6efd0d8c42adab69526d798d583484a8ceb3a4a721
MD5 a0000d8c18eb988ddbff115555ff425e
BLAKE2b-256 9a0a4768ae27ea2dcc606bdb848c8ecaa14f5694815cca9db55291890161e822

See more details on using hashes here.

File details

Details for the file firecloud_dalmatian-0.0.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for firecloud_dalmatian-0.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 589ac0ddb10e7995b1b4b1ca1337bc2505e72cc83c74b1d518c2ad674349229c
MD5 de3f8e0a24077378e4461e29256e46a5
BLAKE2b-256 fe47141025ed764cafcd4547b0d0b976d7131166997e480e912c5d0038371e88

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page