This will use the "featureCounts" tool from the "subread" package.
-### 1. File header
+# 1. File header
Create a new file "featureCounts.cwl"
class: CommandLineTool
```
-### 2. Command line tool inputs
+# 2. Command line tool inputs
A CommandLineTool describes a single invocation of a command line program.
counts_input_bam: File
```
-### 3. Specifying the program to run
+# 3. Specifying the program to run
Give the name of the program to run in `baseCommand`.
baseCommand: featureCounts
```
-### 4. Command arguments
+# 4. Command arguments
The easiest way to describe the command line is with an `arguments`
section. This takes a comma-separated list of command line arguments.
$(inputs.counts_input_bam)]
```
-### 5. Outputs section
+# 5. Outputs section
In CWL, you must explicitly identify the outputs of a program. This
associates output parameters with specific files, and enables the
glob: featurecounts.tsv
```
-### 6. Running in a container
+# 6. Running in a container
In order to run the tool, it needs to be installed.
Using software containers, a tool can be pre-installed into a
dockerPull: quay.io/biocontainers/subread:1.5.0p3--0
```
-### 7. Running a tool on its own
+# 7. Running a tool on its own
When creating a tool wrapper, it is helpful to run it on its own to test it.
cwl-runner featureCounts.cwl featureCounts.yaml
```
-### 8. Adding it to the workflow
+# 8. Adding it to the workflow
Now that we have confirmed that it works, we can add it to our workflow.
We add it to `steps`, connecting the output of samtools to