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
Release history Release notifications | RSS feed
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)
Built Distributions
File details
Details for the file firecloud-dalmatian-0.0.1.tar.gz
.
File metadata
- Download URL: firecloud-dalmatian-0.0.1.tar.gz
- Upload date:
- Size: 17.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6785f761e9fa14e8c9c6bc9997f6cca496ef0a73ecd634649807c8a1fb92dcd |
|
MD5 | fb4da90a1383277a48cc372c0895e3a8 |
|
BLAKE2b-256 | af35fb0112219d2c7a4cc71fee0d4c424c881975865d0685770d3a380eafe8f1 |
File details
Details for the file firecloud_dalmatian-0.0.1-py3.6.egg
.
File metadata
- Download URL: firecloud_dalmatian-0.0.1-py3.6.egg
- Upload date:
- Size: 71.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | de7fa7f3f8615bc6abd67e6efd0d8c42adab69526d798d583484a8ceb3a4a721 |
|
MD5 | a0000d8c18eb988ddbff115555ff425e |
|
BLAKE2b-256 | 9a0a4768ae27ea2dcc606bdb848c8ecaa14f5694815cca9db55291890161e822 |
File details
Details for the file firecloud_dalmatian-0.0.1-py2.py3-none-any.whl
.
File metadata
- Download URL: firecloud_dalmatian-0.0.1-py2.py3-none-any.whl
- Upload date:
- Size: 32.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 589ac0ddb10e7995b1b4b1ca1337bc2505e72cc83c74b1d518c2ad674349229c |
|
MD5 | de3f8e0a24077378e4461e29256e46a5 |
|
BLAKE2b-256 | fe47141025ed764cafcd4547b0d0b976d7131166997e480e912c5d0038371e88 |