Skip to main content

Firecloud API bindings and FISS CLI

Project description

=======================================================================
1. Description
=======================================================================

FISS -- (Fi)reCloud (S)ervice (S)elector

FISS is a programmatic interface to FireCloud (FC), providing a set of low- and
high-level Python bindings to the FireCloud API, as well as UNIX bindings for
command line usage. By wrapping the FireCloud RESTful API in this manner, our
hope is to provide an interface that resonates more closely with the majority of
expected FC users--supporting interaction with FC in memes familiar to them, as
biomedical researchers & informaticians rather than database or web programmers

Like legacy FISS, the (Fi)rehose (S)ervice (S)selector that was created for
internal use at the Broad Institute, FISSFC aims to be:

fast compared to navigating screens & menus in the GUI,
importing/exporting files manually, etc
programmatic can be used in analysis scripts, UNIX cli, cron jobs etc
iterable easily repeat commands across workspaces, entity sets,
workflows, and even project domains
simple to use don't have to learn FC internal abstractions, or code
directly to the RESTful interface (e.g. in curl)
understandable clear & consistent semantics, for FC novice or expert
extensible users can customize how it works, without permission
(or needing development assistance) from the author!
portable Python 2 and 3 implementation, UNIX shell
idiomatic allows FireCloud to be combined with the power of UNIX
self-documenting (well, almost!) in addition to the --help flag, usage
statements are provided for most methods when they're
called with no args; the -F flag can display the body
of any method, and -l flag lists all available methods

https://software.broadinstitute.org/firecloud/
https://github.com/broadinstitute/fiss

=======================================================================
2. Contents
=======================================================================
1. Description
2. Contents
3. Requirements
4. Unix command line
5. Low-level interface
6. High-level interface
7. User configuration

=======================================================================
3. Requirements
=======================================================================

Install this package via pip:
% pip install firecloud

Or download the source and install with setup.py:
% python setup.py install

FISS depends on several additional Python software packages, as listed in
setup.py; typically the entire installation process (including loading of
packages) takes only a few minutes.

**Note: FireCloud encryts all web traffic with TLSv1.2. Some versions of
python will not function correctly, and must be recompiled with openssl
v1.02 or later. If recompiling is not an option, there is also a
dockerized version of the tool available on docker hub
(https://hub.docker.com/r/broadgdac/fiss/).

% docker pull broadgdac/fiss

=======================================================================
4. UNIX command line interface
=======================================================================

After installation your the 'fissfc' executable should be findable in your
$PATH. Type 'fissfc --help' for more details on how to use this utility
in a UNIX setting.

Note that if you are running on a Google VM, executing 'pip install' as an
unprivileged user (i.e. not sudo) will result in the package being installed
to a directory named $HOME/.local, so you will need to ensure $HOME/.local/bin
is in your $PATH (e.g. by setting it in your Bash login script) so that
the fissfc binary can be found.

=======================================================================
5. Low-Level API
=======================================================================

The low-level API provides a direct one-to-one mapping between the
RESTful API of FireCloud and methods in the Python interpreter. It
also provides conveniences like automatic header creation, paging,
and debug settings (e.g. verbosity) across the entire API. To access
the low-level API simply import into a Python interpreter: for example

import firecloud.api as fapi

After importing, you can see what low level methods are available via

dir(fapi)

and for detailed documentation simply use the Python help system:

help(fapi)

Finally, note that interactive documentation for the FireCloud RESTful API
(sometimes referred to as the Orchestration Layer) can be found online at

https://api.firecloud.org

=======================================================================
6. High-Level Classes
=======================================================================

To access the high-level interface import the 'fiss' module, e.g.

from firecloud import fiss

and use the dir() and help() Python as shown above.

=======================================================================
7. User configuration
=======================================================================

The behavior of FISS can be tailored by writing a configuration file,
e.g. to give default values for the project and workspace parameters
that are common to many operations with FireCloud. This would make it
easier to use the UNIX command line interface by allowing the --project
and --workspace flags to be omitted.

By default FISS will look for a user-specific configuration file at

$HOME/.fissconfig

For example, developers within the Broad Genome Data Analysis Center (GDAC)
use a configuration file like

[DEFAULT]
project=broad-firecloud-gdac
workspace=dev
method_ns=broadgdac

To inspect your runtime configuration, simply issue the config command:

linux% fissfc config
debug False
entity_type sample_set
...


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-0.16.14.tar.gz (44.0 kB view details)

Uploaded Source

Built Distribution

firecloud-0.16.14-py2-none-any.whl (46.6 kB view details)

Uploaded Python 2

File details

Details for the file firecloud-0.16.14.tar.gz.

File metadata

  • Download URL: firecloud-0.16.14.tar.gz
  • Upload date:
  • Size: 44.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for firecloud-0.16.14.tar.gz
Algorithm Hash digest
SHA256 e3d83fb6b71236f61b33c732756f7236ad185e94616df0596851cef0a23834d9
MD5 1a7fc27ca4d50432348ade7376946261
BLAKE2b-256 aa0ea3b446c83bd585610e5c4c6c445abc5f053d4a9da4a1900a5a2e050e871b

See more details on using hashes here.

File details

Details for the file firecloud-0.16.14-py2-none-any.whl.

File metadata

File hashes

Hashes for firecloud-0.16.14-py2-none-any.whl
Algorithm Hash digest
SHA256 0bf82a6917732ba28a38a0e700e3b217a53bfc24d0c17e3842d02e631e9b9dc3
MD5 f1ea50a9132b53761e8987d00c02cfa3
BLAKE2b-256 2a1972451a554a770ba3f97a7fd6483ea46d0ccc1236d42964e49b304b49bfe2

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