-
Requirements
-
Python 3.6+
-
virtualenv
-
- Ubuntu:
pip install --user pipenv
Note: don't use
pip3
. Things installed withpip3
don't end up inPATH
, so it won't work.
(Yes, I know this is confusing. I just told you to use Python 3. But that's the way things are).- MacOS:
brew install pipenv
-
- Ubuntu:
You probably already have it. You can check with:
which watch
- MacOS:
brew install watch
-
-
Clone this repo.
-
Run
./init
-
Create a symlink to the executable somewhere in your
$PATH
:ln -svf "$(pipenv --venv)/bin/wes" "somewhere/in/PATH"
(or: edit
./install
and run it)
-
Requirements
- Existing virtual environment (Python 3.6+)
-
Pip install this repository
pip install -e git+https://github.com/EMBL-EBI-TSI/WesCli#egg=WesCli
Here's what you can do so far:
- Run a workflow on a single site:
wes run examples/hashsplitter/remote_input.yaml
- Run a workflow on a multiple sites:
wes run examples/hashsplitter/site_input_multi.yaml
- Get status of the most recently run workflow:
wes status
- Watch the status of the most recently run workflow:
wes status --watch
-
Browse the workspace:
$ wes get https://wes-tes-example.tsi.ebi.ac.uk/data/tmp/ YO15EZ/ (file://data/tmp/YO15EZ/) Z9BNOH/ (file://data/tmp/Z9BNOH/) ZE4HDH/ (file://data/tmp/ZE4HDH/) Hello.txt (file://data/tmp/Hello.txt)
-
Get the contents of a file:
$ wes get https://wes-tes-example.tsi.ebi.ac.uk/data/tmp/Hello.txt Hello, world!
-
Upload a file (with a name preserved):
wes upload README.md https://wes-tes-example.tsi.ebi.ac.uk/data/tmp/ wes get https://wes-tes-example.tsi.ebi.ac.uk/data/tmp/README.md
-
Upload a file (with a chosen file name):
wes upload README.md https://wes-tes-example.tsi.ebi.ac.uk/data/tmp/readthis.md wes get https://wes-tes-example.tsi.ebi.ac.uk/data/tmp/readthis.md
-
Download a file (with a optional progress bar):
wes download -p https://wes-tes-example.tsi.ebi.ac.uk/data/tmp/Hello.txt
-
Download a file (with option to specify download location and filename):
wes download --destination ./examples/readthis.md https://wes-tes-example.tsi.ebi.ac.uk/data/tmp/README.md
-
Download a file (with option to specify filename):
wes download --destination readthis.md https://wes-tes-example.tsi.ebi.ac.uk/data/tmp/README.md
The argument to wes run
must be a yaml file with a specific format. You can find some examples here.
You can:
-
Run a workflow on a single site:
workflow: 'https://github.com/fgypas/cwl-example-workflows/blob/master/hashsplitter-workflow.cwl' input: input: class: File location: file:///data/tmp/README.md sites: - url: https://wes-tes-example.tsi.ebi.ac.uk/ga4gh/wes/v1
-
Run a workflow on multiple sites, with the same input:
Just add more items to
sites
:workflow: 'https://github.com/fgypas/cwl-example-workflows/blob/master/hashsplitter-workflow.cwl' input: input: class: File location: file:///data/tmp/README.md sites: - url: https://wes-tes-example1.tsi.ebi.ac.uk/ga4gh/wes/v1 - url: https://wes-tes-example2.tsi.ebi.ac.uk/ga4gh/wes/v1 - url: https://wes-tes-example3.tsi.ebi.ac.uk/ga4gh/wes/v1
-
Run a workflow on multiple sites, with different inputs:
workflow: 'https://github.com/fgypas/cwl-example-workflows/blob/master/hashsplitter-workflow.cwl' input: input: class: File location: $input sites: - url: https://wes-tes-example1/ga4gh/wes/v1 inputParams: { input: 'file:///tmp/hashSplitterInput/test1.txt' } - url: https://wes-tes-example2/ga4gh/wes/v1 inputParams: { input: 'file:///tmp/hashSplitterInput/test2.txt' }
Notice that the value of
location
changed to$input
.
$input
is a variable -- the value of which must be provided for each site in theinputParams
attribute.