Giter Club home page Giter Club logo

bunny's Introduction

Rabix has grown up!

Reproducible Analyses for Bioinformatics is now a reality!

Please see

If you want to see the old documentation for the project please see here

bunny's People

Contributors

adamstruck avatar aleksandarpetrovicsbg avatar bogdang989 avatar buchanae avatar halilozercan avatar ivanbatic avatar markosbg avatar milos-ljubinkovic avatar mr-c avatar pr80ik avatar simonovic86 avatar sinisa88 avatar sivkovic avatar smiljevic avatar starvingmarvin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bunny's Issues

Travis setup

CI should run conformance tests and the extension test suite.

Basic validations

  • Assure workflow is a connected DAG
  • Check required inputs of master job

Backend interface and configuration

  • Backends should register with AMQ configs.
  • Worker should also be extracted as backend
  • SimpleRabixTool backend example

POST to /backends with AMQ JSON config (send/receive/heartbeat queues) to create backend

Fix relative file paths when specifying inputs

When specifying input files through the job JSON file, relative paths should be relative to the location of the inputs JSON file.

When specifying paths directly on the command line, they should be relative to the current working directory.

rabix release structure

Hi there,

it is possible to have the release packaged into a folder with the version number?

So instead of

examples/
examples/dna2protein/
examples/dna2protein/data/
config/
config/development/
config/producetion/
config/test/
examples/README.md
examples/dna2protein/inputs.json
examples/dna2protein/transcribe.cwl.json
examples/dna2protein/dna2protein.cwl.json
examples/dna2protein/README.md
examples/dna2protein/translate.cwl.json
examples/dna2protein/data/input.txt
config/core.properties
config/ftp.properties
config/logback.xml
config/logback-verbose.xml
lib/rabix-backend-local-0.0.1-SNAPSHOT.jar
rabix

something like

rabix-0.6.0-alpha/*

and it is also possible to pack the rabix command line as executable?

What do you think?

Tool default files are relative to input file rather then workflow file

Default files referenced from the workflow seem to be found relative to the input file rather then the workflow file. The reference implementation does to opposite. Because the workflows and input files are in the same folder in the conformance test, this behavior probably isn't noticed in testing.

Example workflow (in the same directory put a README.md file)

class: CommandLineTool
cwlVersion: v1.0
hints:
  DockerRequirement:
    dockerPull: ubuntu

baseCommand: [md5sum]
inputs:
  script:
    type: File
    default:
      class: File
      location: README.md
    inputBinding:
      position: 1

stdout: out.txt

outputs:
  checksum:
    type: File
    outputBinding:
      glob: out.txt

Create an empty dictionary file named empty_input.json
If empty_input.json is in the same directory as the workflow, the command
java -jar rabix/lib/rabix-backend-local.jar default_file.cwl empty_input.json will work.
But if it is move to tmp/empty_input.json then the command java -jar rabix/lib/rabix-backend-local.jar default_file.cwl tmp/empty_input.json will fail because

$ cat tmp/4983a396-9289-41c9-996b-9c0f4c8e516b/root/job.err.log
md5sum: /Users/ellrott/workspaces/gaea-bmeg/tmp/README.md: No such file or directory

Symbolic link to the binary does not work

It's not possible to symlink the binary right now:

mattions@apollo:bin$ ls -l
total 4020
lrwxrwxrwx 1 mattions mattions      48 Dec 12 13:54 rabix -> /home/mattions/SBG/Progs/rabix-0.7.0-alpha/rabix

mattions@apollo:bin$ rabix
Error: Unable to access jarfile /home/mattions/bin/lib/rabix-backend-local.jar

bunny vs python version of rabix

Hi,
Just confused by bunny project. My understranding rabix is implemented in python for CWL specification. Why there is a bunny of java version under rabix? What's the value of bunny while there is already a more matured python version. It looks to me that python version should be continued and now almost dead. Will python version be deprecated and replaced by bunny?

TES backend

Based on the Task Execution Schema spec by GA4GH.

Leftover items for initial version:

  • Include in build (backend.tes.url config var)
  • Remaining conformance tests (10 failing atm)
  • Make a project on ci.commonwl.org

Bindings example implementation

Create second bindings/protocol implementation "SimpleRabixTool" to demonstrate multiple protocols.

These should be simple command line templates that do not declare input ports and have a single output port "stdout" which reports a file.

Example:

#rabix:SimpleRabixTool
grep $(pattern) $(infile) > stdout.txt

is it possible to use js expression engine to create files in the same way on SB?

would this work?

"fileDef":
{
"fileContent": {
"class": "Expression",
"script": "'#!/bin/bash \n\\n#/samtools/samtools view -H '+$job.inputs.bam.path+' > header.sam \n\\n\n\\n#filter for q20 \n\\n/samtools/samtools view -q 20 -b '+$job.inputs.bam.path+' > filtered.bam \n\\n\n\\n#cat header.sam filtered.bam > result.sam';\n",
"engine": "#cwl-js-engine"
},
"filename": "filter_for_q20.sh"
}

baseCmd entries

In dna2protein.cwl.json file under example data folder, there is empty baseCmd item, this is not defined in CWL schema, should this be removed? @gaurav-kaushik

Add support for Docker-for-Mac

Hi,

New docker for Mac uses OS X Hypervisor.framework for virtualization, instead of external virtualization programs.

I tried bunny 0.6.4 with it and it gets stuck on pulling an image (manually pulling from shell works). Docker for Mac exposes the docker API on a socket in /var/tmp/docker.sock.

Reporting progress on CLI

rabix/rabix#145

Debug logs should only be printed with -v flag. Otherwise, info messages should go to stderr with messages for each step:

  • Started
  • Pulling docker image
  • Running command line
  • Finished

Also, usage string and error messages should go to stderr.

Separate common file operations from Bindings to helper

These methods have to be moved to helper.

Set getInputFiles(Job job) throws BindingException;
Set getOutputFiles(Job job, boolean onlyVisiblePorts) throws BindingException; // TODO remove onlyVisiblePorts
Job updateInputFiles(Job job, FileTransformer fileTransformer) throws BindingException;
Job updateOutputFiles(Job job, FileTransformer fileTransformer) throws BindingException;
Map<String, Object> translateFile(FileValue fileValue);
DataType getDataTypeFromValue(Object input);
List getFilesFromValue(Object input);
Object updateFileValues(Object input, FileTransformer fileTransformer)

These two methods have to be changed to use common file/directory values.

Job mapInputFilePaths(Job job, FilePathMapper fileMapper) throws BindingException;
Job mapOutputFilePaths(Job job, FilePathMapper fileMapper) throws BindingException;

Glob with "directory_name/!(*.meta)" not supported

On SBG platform we have Decompressor application which extracts files from the input archive to decompressed_files directory. The App has the following glob: decompressed_files/!(*.meta)
which seems that is not supported in rabix-0.6.6-alpha release. cwl.output.json is empty when files in decompressed_files directory exist.

Bunny hangs when trying to execute example

Hi, trying to run the example from the README, running into an issue here:

rjhb451:rabix spanglry$ ./rabix examples/dna2protein/dna2protein.cwl.json examples/dna2protein/inputs.json
[2016-12-01 15:25:22.280] Pulling docker image rfranklin/pythondev

It gets to this point and hangs indefinitely (I have had it running in the background while I do other stuff, up to half an hour now). I thought this might be my issue, but I can pull and run other docker images fine.

Any thoughts? Thanks!

READ.ME

./rabix.sh -a example/grep-app.json -i example/grep-inputs.json is not valid anymore.

Tools with no input ports

Not the highest priority but tools that have no input ports might be causing an issue. I have a tool which simply creates a .csv file which is input to another tool. Works on SBG platform but maybe not locally with bunny.

Issue is solved by putting the csv files in the second tool's wrapper.

Thanks

Dave

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.