hello¶
We will run a command that prints hello world through Tibanna. To do this, we just need to prepare for a job description json and run tibanna.
Job description¶
To run the pipeline on a specific input file using Tibanna, we need to create an job description file for each execution (or a dictionary object if you’re using Tibanna as a python module).
The job description for running shell commands requires command
and container_image
fields. The former is a list of commands and the latter is the Docker image name. Here, we use ubuntu:20.04
image and use an echo
command. Notice that double-quotes are escaped inside the command string. We’re passing an environment variable $NAME
through the field input_env
. Also notice that the environment variable’s $
sign is prefixed with an escaped backslash in the command
string.
In the following example, the output file hello.txt
in the same directory is copied to the output bucket my-tibanna-test-bucket
as some_sub_dirname/my_first_hello.txt
.
This json can be found at https://github.com/4dn-dcic/tibanna/blob/master/examples/hello/hello_shell_input.json
{ "args": { "container_image": "ubuntu:20.04", "command": ["echo \"Hello world, \\$NAME!\" > hello.txt"], "language": "shell", "input_files": {}, "secondary_files": {}, "input_parameters": {}, "input_env": {"NAME": "Soo"}, "output_S3_bucket": "my-tibanna-test-bucket", "output_target": { "file:///data1/shell/hello.txt": "some_sub_dirname/my_first_hello.txt" }, "secondary_output_target": {} }, "config": { "ebs_size": 10, "instance_type": "t3.micro", "EBS_optimized": true, "password": "whateverpasswordworks", "log_bucket": "my-tibanna-test-bucket" } }
Tibanna run¶
To run Tibanna,
- Sign up for AWS
- Install and configure
awscli
- Install Tibanna on your local machine
see Installation
- Deploy Tibanna (link it to the AWS account)
see Installation
Run workflow as below.
cd tibanna tibanna run_workflow --input-json=examples/hello/hello_shell_input.json
Check status
tibanna stat
Check output file
Let’s try downloading the output file to check the content.
aws s3 cp s3://my-tibanna-test-bucket/some_sub_dirname/my_first_hello.txt .
The output file
my_first_hello.txt
would look as below.Hello world, Soo!