ambarishK / bio-cwl-tools

Home Page:https://github.com/common-workflow-library/bio-cwl-tools#styleguide

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Goals: to collect and collaboratively maintain CWL CommandLineTool descriptions of any biology/life-sciences related applications.

All Contributors Build Status

Non-goals: software packaging or containerization, go to https://biocontainers.pro for that

All CWL tool descriptions are licensed under the Apache 2.0 license. The underlying tools are under one or more Free and Open Source Software licenses.

Styleguide

Naming Tools πŸ“›

Tools should follow the convention of being prefixed by the parent tool name and Camelcase like so i.e. BWA-Mem.cwl or BWA-Index.cwl

Tool Feature Requirements πŸ†•

The first 3 lines of tool wrappers should be as follows. Our CI/CD system checks for these so make sure to include them so they can be merged into the repo.

#!/usr/bin/env cwl-runner
cwlVersion: v1.0
class: CommandLineTool

The first line allows the tool to be run as a single command. The second specifies the cwl version.

IMPORTANT! We are using cwlVersion v1.0 unless a v1.1 feature is needed.

Making Files Executable ✴️

Files should be marked as executable before being added

chmod +x tool.cwl

Requirements & Hints Section 🧾

There is a requirements section which handles settings for the runner config. Docker containers should be from biocontainers.pro if possible and placed in the hints section.

requirements:
  InlineJavascriptRequirement: {}
hints:
  DockerRequirement:
    dockerPull: "quay.io/biocontainers/bwa:0.7.17--ha92aebf_3"

Validation βœ…

Tools need to be free of warning when running with

cwltool --validate

Adding Tools To The Repository βž•

Please add tools via pull requests to the repository. Our CI/CD runs validation against the tools and will soon support doing unit tests on the individual tools.

Descriptions πŸ“ƒ

Tool descriptions should be motivated by a real world use of this tool in a workflow. The description should focus on a single way of using the tool. Signs that a tool description is including too much: lots of javascript; complicated data structures; every single flag is listed.

Schema Description

If you use schema.org annotations, specify the schema using the RDF version: $schemas: [ http://schema.org/version/latest/schema.rdf ]

However, don't use s:mainEntity, put that information under hints as a SoftwareRequirement

Contributors ✨

Thanks goes to these wonderful people (emoji key):


KerstenBreuer

πŸ’»

Peter Amstutz

πŸ€”

Michael Kotliar

πŸ€” πŸ’»

pvanheus

πŸ’»

medcelerate

πŸ€”

stain

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!

About

https://github.com/common-workflow-library/bio-cwl-tools#styleguide

License:Apache License 2.0


Languages

Language:Common Workflow Language 99.5%Language:Python 0.5%