Merge pull request #63 from drpatelh/master

Add docs and tests for all samtools commands
This commit is contained in:
Harshil Patel 2020-08-07 15:40:03 +01:00 committed by GitHub
commit bd98988f23
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
53 changed files with 2162 additions and 450 deletions

30
.github/workflows/samtools_flagstat.yml vendored Normal file
View file

@ -0,0 +1,30 @@
name: samtools_flagstat
on:
push:
paths:
- software/samtools/flagstat/**
- .github/workflows/samtools_flagstat.yml
- tests
pull_request:
paths:
- software/samtools/flagstat/**
- .github/workflows/samtools_flagstat.yml
- tests
jobs:
ci_test:
runs-on: ubuntu-latest
env:
NXF_ANSI_LOG: false
steps:
- uses: actions/checkout@v2
- name: Install Nextflow
run: |
export NXF_VER="20.07.1"
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
# Test the module
- run: nextflow run ./software/samtools/flagstat/test/ -profile docker

30
.github/workflows/samtools_idxstats.yml vendored Normal file
View file

@ -0,0 +1,30 @@
name: samtools_idxstats
on:
push:
paths:
- software/samtools/idxstats/**
- .github/workflows/samtools_idxstats.yml
- tests
pull_request:
paths:
- software/samtools/idxstats/**
- .github/workflows/samtools_idxstats.yml
- tests
jobs:
ci_test:
runs-on: ubuntu-latest
env:
NXF_ANSI_LOG: false
steps:
- uses: actions/checkout@v2
- name: Install Nextflow
run: |
export NXF_VER="20.07.1"
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
# Test the module
- run: nextflow run ./software/samtools/idxstats/test/ -profile docker

30
.github/workflows/samtools_index.yml vendored Normal file
View file

@ -0,0 +1,30 @@
name: samtools_index
on:
push:
paths:
- software/samtools/index/**
- .github/workflows/samtools_index.yml
- tests
pull_request:
paths:
- software/samtools/index/**
- .github/workflows/samtools_index.yml
- tests
jobs:
ci_test:
runs-on: ubuntu-latest
env:
NXF_ANSI_LOG: false
steps:
- uses: actions/checkout@v2
- name: Install Nextflow
run: |
export NXF_VER="20.07.1"
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
# Test the module
- run: nextflow run ./software/samtools/index/test/ -profile docker

30
.github/workflows/samtools_sort.yml vendored Normal file
View file

@ -0,0 +1,30 @@
name: samtools_sort
on:
push:
paths:
- software/samtools/sort/**
- .github/workflows/samtools_sort.yml
- tests
pull_request:
paths:
- software/samtools/sort/**
- .github/workflows/samtools_sort.yml
- tests
jobs:
ci_test:
runs-on: ubuntu-latest
env:
NXF_ANSI_LOG: false
steps:
- uses: actions/checkout@v2
- name: Install Nextflow
run: |
export NXF_VER="20.07.1"
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
# Test the module
- run: nextflow run ./software/samtools/sort/test/ -profile docker

30
.github/workflows/samtools_stats.yml vendored Normal file
View file

@ -0,0 +1,30 @@
name: samtools_stats
on:
push:
paths:
- software/samtools/stats/**
- .github/workflows/samtools_stats.yml
- tests
pull_request:
paths:
- software/samtools/stats/**
- .github/workflows/samtools_stats.yml
- tests
jobs:
ci_test:
runs-on: ubuntu-latest
env:
NXF_ANSI_LOG: false
steps:
- uses: actions/checkout@v2
- name: Install Nextflow
run: |
export NXF_VER="20.07.1"
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
# Test the module
- run: nextflow run ./software/samtools/stats/test/ -profile docker

View file

@ -4,74 +4,75 @@ name: software_tool
## TODO nf-core: Add a description and keywords ## TODO nf-core: Add a description and keywords
description: Run FastQC on sequenced reads description: Run FastQC on sequenced reads
keywords: keywords:
- Quality Control - quality control
- QC - qc
- Adapters - adapters
- fastq
tools: tools:
## TODO nf-core: Change the name of "software_tool" below ## TODO nf-core: Change the name of "software" below
- software_tool: - software:
## TODO nf-core: Add a description and other details for the tool below ## TODO nf-core: Add a description and other details for the software below
description: | description: |
FastQC gives general quality metrics about your reads. FastQC gives general quality metrics about your reads.
It provides information about the quality score distribution It provides information about the quality score distribution
across your reads, the per base sequence content (%A/C/G/T). across your reads, the per base sequence content (%A/C/G/T).
You get information about adapter contamination and other You get information about adapter contamination and other
overrepresented sequences. overrepresented sequences.
homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/
documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/ documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/
## TODO nf-core: If you are using any additional "params" in the main.nf script of the module add them below ## TODO nf-core: If you are using any additional "params" in the main.nf script of the module add them below
params: params:
- outdir: - outdir:
type: string type: string
description: | description: |
The pipeline's output directory. By default, the module will The pipeline's output directory. By default, the module will
output files into `$params.outdir/<SOFTWARE>` output files into `$params.outdir/<SOFTWARE>`
- publish_dir_mode: - publish_dir_mode:
type: string type: string
description: | description: |
Value for the Nextflow `publishDir` mode parameter. Value for the Nextflow `publishDir` mode parameter.
Available: symlink, rellink, link, copy, copyNoFollow, move. Available: symlink, rellink, link, copy, copyNoFollow, move.
- conda: - conda:
type: boolean type: boolean
description: | description: |
Run the module with Conda using the software specified Run the module with Conda using the software specified
via the `conda` directive via the `conda` directive
## TODO nf-core: Add a description of all of the variables used as input ## TODO nf-core: Add a description of all of the variables used as input
input: input:
- meta: - meta:
type: map type: map
description: | description: |
Groovy Map containing sample information Groovy Map containing sample information
e.g. [ id:'test', single_end:false ] e.g. [ id:'test', single_end:false ]
- reads: - reads:
type: file type: file
description: | description: |
List of input FastQ files of size 1 and 2 for single-end and paired-end data, List of input FastQ files of size 1 and 2 for single-end and paired-end data,
respectively. respectively.
- options: - options:
type: map type: map
description: | description: |
Groovy Map containing module options for passing command-line arguments and Groovy Map containing module options for passing command-line arguments and
output file paths. output file paths.
## TODO nf-core: Add a description of all of the variables used as output ## TODO nf-core: Add a description of all of the variables used as output
output: output:
- meta: - meta:
type: map type: map
description: | description: |
Groovy Map containing sample information Groovy Map containing sample information
e.g. [ id:'test', single_end:false ] e.g. [ id:'test', single_end:false ]
- html: - html:
type: file type: file
description: FastQC report description: FastQC report
pattern: "*_fastqc.html" pattern: "*_{fastqc.html}"
- zip: - zip:
type: file type: file
description: FastQC report archive description: FastQC report archive
pattern: "*_fastqc.zip" pattern: "*_{fastqc.zip}"
- version: - version:
type: file type: file
description: File containing software version description: File containing software version
pattern: "*.version.txt" pattern: "*.{version.txt}"
## TODO nf-core: Add your GitHub username below ## TODO nf-core: Add your GitHub username below
authors: authors:
- "@your_github_username" - "@your_github_username"

View file

@ -1,20 +1,20 @@
params { params {
outdir = "output/" outdir = "output/"
publish_dir_mode = "copy" publish_dir_mode = "copy"
conda = false conda = false
} }
profiles { profiles {
conda { conda {
params.conda = true params.conda = true
} }
docker { docker {
docker.enabled = true docker.enabled = true
docker.runOptions = '-u \$(id -u):\$(id -g)' docker.runOptions = '-u \$(id -u):\$(id -g)'
} }
singularity { singularity {
singularity.enabled = true singularity.enabled = true
singularity.autoMounts = true singularity.autoMounts = true
} }
} }

View file

@ -1,52 +1,52 @@
name: bwa_index name: bwa_index
description: Create BWA index for reference genome description: Create BWA index for reference genome
keywords: keywords:
- index - index
- fasta - fasta
- genome - genome
- reference
tools: tools:
- bwa: - bwa:
description: | description: |
BWA is a software package for mapping DNA sequences against BWA is a software package for mapping DNA sequences against
a large reference genome, such as the human genome. a large reference genome, such as the human genome.
homepage: http://bio-bwa.sourceforge.net/ homepage: http://bio-bwa.sourceforge.net/
documentation: http://www.htslib.org/doc/samtools.html documentation: http://www.htslib.org/doc/samtools.html
arxiv: arXiv:1303.3997 arxiv: arXiv:1303.3997
params: params:
- outdir: - outdir:
type: string type: string
description: | description: |
The pipeline's output directory. By default, the module will The pipeline's output directory. By default, the module will
output files into `$params.outdir/<SOFTWARE>` output files into `$params.outdir/<SOFTWARE>`
- publish_dir_mode: - publish_dir_mode:
type: string type: string
description: | description: |
Value for the Nextflow `publishDir` mode parameter. Value for the Nextflow `publishDir` mode parameter.
Available: symlink, rellink, link, copy, copyNoFollow, move. Available: symlink, rellink, link, copy, copyNoFollow, move.
- conda: - conda:
type: boolean type: boolean
description: | description: |
Run the module with Conda using the software specified Run the module with Conda using the software specified
via the `conda` directive via the `conda` directive
input: input:
- fasta: - fasta:
type: file type: file
description: | description: Input genome fasta file
Input genome fasta file - options:
- options: type: map
type: map description: |
description: | Groovy Map containing module options for passing command-line arguments and
Groovy Map containing module options for passing command-line arguments and output file paths.
output file paths.
output: output:
- index: - index:
type: file type: file
description: BWA genome index files description: BWA genome index files
pattern: "*.{fasta}.{amb,ann,bwt,pac,sa}" pattern: "*.{amb,ann,bwt,pac,sa}"
- version: - version:
type: file type: file
description: File containing software version description: File containing software version
pattern: "*.version.txt" pattern: "*.{version.txt}"
authors: authors:
- "@drpatelh" - "@drpatelh"
- "@maxulysse" - "@maxulysse"

View file

@ -1,20 +1,20 @@
params { params {
outdir = "output/" outdir = "output/"
publish_dir_mode = "copy" publish_dir_mode = "copy"
conda = false conda = false
} }
profiles { profiles {
conda { conda {
params.conda = true params.conda = true
} }
docker { docker {
docker.enabled = true docker.enabled = true
docker.runOptions = '-u \$(id -u):\$(id -g)' docker.runOptions = '-u \$(id -u):\$(id -g)'
} }
singularity { singularity {
singularity.enabled = true singularity.enabled = true
singularity.autoMounts = true singularity.autoMounts = true
} }
} }

View file

@ -1,68 +1,69 @@
name: bwa_mem name: bwa_mem
description: Performs fastq alignment to a fasta reference using BWA description: Performs fastq alignment to a fasta reference using BWA
keywords: keywords:
- mem - mem
- bwa - bwa
- alignment - alignment
- map - map
- fastq
- bam
- sam
tools: tools:
- bwa: - bwa:
description: | description: |
BWA is a software package for mapping DNA sequences against BWA is a software package for mapping DNA sequences against
a large reference genome, such as the human genome. a large reference genome, such as the human genome.
homepage: http://bio-bwa.sourceforge.net/ homepage: http://bio-bwa.sourceforge.net/
documentation: http://www.htslib.org/doc/samtools.html documentation: http://www.htslib.org/doc/samtools.html
arxiv: arXiv:1303.3997 arxiv: arXiv:1303.3997
params: params:
- outdir: - outdir:
type: string type: string
description: | description: |
The pipeline's output directory. By default, the module will The pipeline's output directory. By default, the module will
output files into `$params.outdir/<SOFTWARE>` output files into `$params.outdir/<SOFTWARE>`
- publish_dir_mode: - publish_dir_mode:
type: string type: string
description: | description: |
Value for the Nextflow `publishDir` mode parameter. Value for the Nextflow `publishDir` mode parameter.
Available: symlink, rellink, link, copy, copyNoFollow, move. Available: symlink, rellink, link, copy, copyNoFollow, move.
- conda: - conda:
type: boolean type: boolean
description: | description: |
Run the module with Conda using the software specified Run the module with Conda using the software specified
via the `conda` directive via the `conda` directive
input: input:
- meta: - meta:
type: map type: map
description: | description: |
Groovy Map containing sample information Groovy Map containing sample information
e.g. [ id:'test', single_end:false ] e.g. [ id:'test', single_end:false ]
- reads: - reads:
type: file type: file
description: | description: |
List of input FastQ files of size 1 and 2 for single-end and paired-end data, List of input FastQ files of size 1 and 2 for single-end and paired-end data,
respectively. respectively.
- index: - index:
type: file type: file
description: | description: BWA genome index files
BWA genome index files pattern: "*.{amb,ann,bwt,pac,sa}"
pattern: "*.{amb,ann,bwt,pac,sa}" - fasta:
- fasta: type: file
type: file description: Input genome fasta file
description: | - options:
Input genome fasta file type: map
- options: description: |
type: map Groovy Map containing module options for passing command-line arguments and
description: | output file paths.
Groovy Map containing module options for passing command-line arguments and
output file paths.
output: output:
- bam: - bam:
type: file type: file
description: Output BAM file containing read alignments description: Output BAM file containing read alignments
pattern: "*.bam" pattern: "*.{bam}"
- version: - version:
type: file type: file
description: File containing software version description: File containing software version
pattern: "*.version.txt" pattern: "*.{version.txt}"
authors: authors:
- "@drpatelh" - "@drpatelh"
- "@jeremy1805" - "@jeremy1805"

View file

@ -1,20 +1,20 @@
params { params {
outdir = "output/" outdir = "output/"
publish_dir_mode = "copy" publish_dir_mode = "copy"
conda = false conda = false
} }
profiles { profiles {
conda { conda {
params.conda = true params.conda = true
} }
docker { docker {
docker.enabled = true docker.enabled = true
docker.runOptions = '-u \$(id -u):\$(id -g)' docker.runOptions = '-u \$(id -u):\$(id -g)'
} }
singularity { singularity {
singularity.enabled = true singularity.enabled = true
singularity.autoMounts = true singularity.autoMounts = true
} }
} }

View file

@ -1,71 +1,72 @@
name: fastqc name: fastqc
description: Run FastQC on sequenced reads description: Run FastQC on sequenced reads
keywords: keywords:
- quality control - quality control
- qc - qc
- adapters - adapters
- fastq
tools: tools:
- fastqc: - fastqc:
description: | description: |
FastQC gives general quality metrics about your reads. FastQC gives general quality metrics about your reads.
It provides information about the quality score distribution It provides information about the quality score distribution
across your reads, the per base sequence content (%A/C/G/T). across your reads, the per base sequence content (%A/C/G/T).
You get information about adapter contamination and other You get information about adapter contamination and other
overrepresented sequences. overrepresented sequences.
homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/
documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/ documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/
params: params:
- outdir: - outdir:
type: string type: string
description: | description: |
The pipeline's output directory. By default, the module will The pipeline's output directory. By default, the module will
output files into `$params.outdir/<SOFTWARE>` output files into `$params.outdir/<SOFTWARE>`
- publish_dir_mode: - publish_dir_mode:
type: string type: string
description: | description: |
Value for the Nextflow `publishDir` mode parameter. Value for the Nextflow `publishDir` mode parameter.
Available: symlink, rellink, link, copy, copyNoFollow, move. Available: symlink, rellink, link, copy, copyNoFollow, move.
- conda: - conda:
type: boolean type: boolean
description: | description: |
Run the module with Conda using the software specified Run the module with Conda using the software specified
via the `conda` directive via the `conda` directive
input: input:
- meta: - meta:
type: map type: map
description: | description: |
Groovy Map containing sample information Groovy Map containing sample information
e.g. [ id:'test', single_end:false ] e.g. [ id:'test', single_end:false ]
- reads: - reads:
type: file type: file
description: | description: |
List of input FastQ files of size 1 and 2 for single-end and paired-end data, List of input FastQ files of size 1 and 2 for single-end and paired-end data,
respectively. respectively.
- options: - options:
type: map type: map
description: | description: |
Groovy Map containing module options for passing command-line arguments and Groovy Map containing module options for passing command-line arguments and
output file paths. output file paths.
output: output:
- meta: - meta:
type: map type: map
description: | description: |
Groovy Map containing sample information Groovy Map containing sample information
e.g. [ id:'test', single_end:false ] e.g. [ id:'test', single_end:false ]
- html: - html:
type: file type: file
description: FastQC report description: FastQC report
pattern: "*_fastqc.html" pattern: "*_{fastqc.html}"
- zip: - zip:
type: file type: file
description: FastQC report archive description: FastQC report archive
pattern: "*_fastqc.zip" pattern: "*_{fastqc.zip}"
- version: - version:
type: file type: file
description: File containing software version description: File containing software version
pattern: "*.version.txt" pattern: "*.{version.txt}"
authors: authors:
- "@drpatelh" - "@drpatelh"
- "@grst" - "@grst"
- "@ewels" - "@ewels"
- "@FelixKrueger" - "@FelixKrueger"

View file

@ -1,20 +1,20 @@
params { params {
outdir = "output/" outdir = "output/"
publish_dir_mode = "copy" publish_dir_mode = "copy"
conda = false conda = false
} }
profiles { profiles {
conda { conda {
params.conda = true params.conda = true
} }
docker { docker {
docker.enabled = true docker.enabled = true
docker.runOptions = '-u \$(id -u):\$(id -g)' docker.runOptions = '-u \$(id -u):\$(id -g)'
} }
singularity { singularity {
singularity.enabled = true singularity.enabled = true
singularity.autoMounts = true singularity.autoMounts = true
} }
} }

View file

@ -0,0 +1,69 @@
name: samtools_flagstat
description: Counts the number of alignments in a BAM/CRAM/SAM file for each FLAG type
keywords:
- stats
- mapping
- counts
- bam
- sam
- cram
tools:
- samtools:
description: |
SAMtools is a set of utilities for interacting with and post-processing
short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li.
These files are generated as output by short read aligners like BWA.
homepage: http://www.htslib.org/
documentation: hhttp://www.htslib.org/doc/samtools.html
doi: 10.1093/bioinformatics/btp352
params:
- outdir:
type: string
description: |
The pipeline's output directory. By default, the module will
output files into `$params.outdir/<SOFTWARE>`
- publish_dir_mode:
type: string
description: |
Value for the Nextflow `publishDir` mode parameter.
Available: symlink, rellink, link, copy, copyNoFollow, move.
- conda:
type: boolean
description: |
Run the module with Conda using the software specified
via the `conda` directive
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- bam:
type: file
description: BAM/CRAM/SAM file
pattern: "*.{bam,cram,sam}"
- bai:
type: file
description: Index for BAM/CRAM/SAM file
pattern: "*.{bai,crai,sai}"
- options:
type: map
description: |
Groovy Map containing module options for passing command-line arguments and
output file paths.
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- flagstat:
type: file
description: File containing samtools flagstat output
pattern: "*.{flagstat}"
- version:
type: file
description: File containing software version
pattern: "*.{version.txt}"
authors:
- "@drpatelh"

View file

@ -0,0 +1 @@
../../../../../tests/data/bam/test.paired_end.sorted.bam

View file

@ -0,0 +1 @@
../../../../../tests/data/bam/test.paired_end.sorted.bam.bai

View file

@ -0,0 +1,19 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { SAMTOOLS_FLAGSTAT } from '../main.nf'
workflow test {
def input = []
input = [ [ id:'test', single_end:false ], // meta map
file("${baseDir}/input/test.paired_end.sorted.bam", checkIfExists: true),
file("${baseDir}/input/test.paired_end.sorted.bam.bai", checkIfExists: true) ]
SAMTOOLS_FLAGSTAT ( input, [:] )
}
workflow {
test()
}

View file

@ -0,0 +1,20 @@
params {
outdir = "output/"
publish_dir_mode = "copy"
conda = false
}
profiles {
conda {
params.conda = true
}
docker {
docker.enabled = true
docker.runOptions = '-u \$(id -u):\$(id -g)'
}
singularity {
singularity.enabled = true
singularity.autoMounts = true
}
}

View file

@ -0,0 +1,13 @@
20000 + 0 in total (QC-passed reads + QC-failed reads)
0 + 0 secondary
0 + 0 supplementary
0 + 0 duplicates
20000 + 0 mapped (100.00% : N/A)
20000 + 0 paired in sequencing
10000 + 0 read1
10000 + 0 read2
20000 + 0 properly paired (100.00% : N/A)
20000 + 0 with itself and mate mapped
0 + 0 singletons (0.00% : N/A)
0 + 0 with mate mapped to a different chr
0 + 0 with mate mapped to a different chr (mapQ>=5)

View file

@ -0,0 +1,70 @@
name: samtools_idxstats
description: Reports alignment summary statistics for a BAM/CRAM/SAM file
keywords:
- stats
- mapping
- counts
- chromosome
- bam
- sam
- cram
tools:
- samtools:
description: |
SAMtools is a set of utilities for interacting with and post-processing
short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li.
These files are generated as output by short read aligners like BWA.
homepage: http://www.htslib.org/
documentation: hhttp://www.htslib.org/doc/samtools.html
doi: 10.1093/bioinformatics/btp352
params:
- outdir:
type: string
description: |
The pipeline's output directory. By default, the module will
output files into `$params.outdir/<SOFTWARE>`
- publish_dir_mode:
type: string
description: |
Value for the Nextflow `publishDir` mode parameter.
Available: symlink, rellink, link, copy, copyNoFollow, move.
- conda:
type: boolean
description: |
Run the module with Conda using the software specified
via the `conda` directive
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- bam:
type: file
description: BAM/CRAM/SAM file
pattern: "*.{bam,cram,sam}"
- bai:
type: file
description: Index for BAM/CRAM/SAM file
pattern: "*.{bai,crai,sai}"
- options:
type: map
description: |
Groovy Map containing module options for passing command-line arguments and
output file paths.
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- idxstats:
type: file
description: File containing samtools idxstats output
pattern: "*.{idxstats}"
- version:
type: file
description: File containing software version
pattern: "*.{version.txt}"
authors:
- "@drpatelh"

View file

@ -0,0 +1 @@
../../../../../tests/data/bam/test.paired_end.sorted.bam

View file

@ -0,0 +1 @@
../../../../../tests/data/bam/test.paired_end.sorted.bam.bai

View file

@ -0,0 +1,19 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { SAMTOOLS_IDXSTATS } from '../main.nf'
workflow test {
def input = []
input = [ [ id:'test', single_end:false ], // meta map
file("${baseDir}/input/test.paired_end.sorted.bam", checkIfExists: true),
file("${baseDir}/input/test.paired_end.sorted.bam.bai", checkIfExists: true) ]
SAMTOOLS_IDXSTATS ( input, [:] )
}
workflow {
test()
}

View file

@ -0,0 +1,20 @@
params {
outdir = "output/"
publish_dir_mode = "copy"
conda = false
}
profiles {
conda {
params.conda = true
}
docker {
docker.enabled = true
docker.runOptions = '-u \$(id -u):\$(id -g)'
}
singularity {
singularity.enabled = true
singularity.autoMounts = true
}
}

View file

@ -0,0 +1,2 @@
gi|170079663|ref|NC_010473.1| 4686137 20000 0
* 0 0 0

View file

@ -1,7 +1,10 @@
name: samtools index name: samtools_index
description: index a BAM or CRAM file description: Index SAM/BAM/CRAM file
keywords: keywords:
- index - index
- bam
- sam
- cram
tools: tools:
- samtools: - samtools:
description: | description: |
@ -11,17 +14,51 @@ tools:
homepage: http://www.htslib.org/ homepage: http://www.htslib.org/
documentation: hhttp://www.htslib.org/doc/samtools.html documentation: hhttp://www.htslib.org/doc/samtools.html
doi: 10.1093/bioinformatics/btp352 doi: 10.1093/bioinformatics/btp352
params:
- outdir:
type: string
description: |
The pipeline's output directory. By default, the module will
output files into `$params.outdir/<SOFTWARE>`
- publish_dir_mode:
type: string
description: |
Value for the Nextflow `publishDir` mode parameter.
Available: symlink, rellink, link, copy, copyNoFollow, move.
- conda:
type: boolean
description: |
Run the module with Conda using the software specified
via the `conda` directive
input: input:
- - meta:
- input: type: map
type: file description: |
description: Input BAM or CRAM file Groovy Map containing sample information
pattern: "*.{bam,cram}" e.g. [ id:'test', single_end:false ]
- bam:
type: file
description: BAM/CRAM/SAM file
pattern: "*.{bam,cram,sam}"
- options:
type: map
description: |
Groovy Map containing module options for passing command-line arguments and
output file paths.
output: output:
- - meta:
- index: type: map
type: file description: |
description: BAM or CRAM index file Groovy Map containing sample information
pattern: "*.{bai}" e.g. [ id:'test', single_end:false ]
- bai:
type: file
description: BAM/CRAM/SAM index file
pattern: "*.{bai,crai,sai}"
- version:
type: file
description: File containing software version
pattern: "*.{version.txt}"
authors: authors:
- "@drpatelh"
- "@ewels" - "@ewels"

View file

@ -0,0 +1 @@
../../../../../tests/data/bam/test.paired_end.sorted.bam

23
software/samtools/index/test/main.nf Normal file → Executable file
View file

@ -1,13 +1,18 @@
#!/usr/bin/env nextflow #!/usr/bin/env nextflow
echo true
cheers = Channel.from 'Bonjour', 'Ciao', 'Hello', 'Hola' nextflow.enable.dsl = 2
process sayHello { include { SAMTOOLS_INDEX } from '../main.nf'
input:
val x from cheers workflow test {
script:
""" def input = []
echo '$x world!' input = [ [ id:'test', single_end:false ], // meta map
""" file("${baseDir}/input/test.paired_end.sorted.bam", checkIfExists: true) ]
SAMTOOLS_INDEX ( input, [:] )
}
workflow {
test()
} }

View file

@ -1,2 +1,20 @@
docker.enabled = true
params.outdir = './results' params {
outdir = "output/"
publish_dir_mode = "copy"
conda = false
}
profiles {
conda {
params.conda = true
}
docker {
docker.enabled = true
docker.runOptions = '-u \$(id -u):\$(id -g)'
}
singularity {
singularity.enabled = true
singularity.autoMounts = true
}
}

View file

@ -1,7 +1,10 @@
name: samtools sort name: samtools_sort
description: Sort a BAM or CRAM file description: Sort SAM/BAM/CRAM file
keywords: keywords:
- sort - sort
- bam
- sam
- cram
tools: tools:
- samtools: - samtools:
description: | description: |
@ -11,17 +14,51 @@ tools:
homepage: http://www.htslib.org/ homepage: http://www.htslib.org/
documentation: hhttp://www.htslib.org/doc/samtools.html documentation: hhttp://www.htslib.org/doc/samtools.html
doi: 10.1093/bioinformatics/btp352 doi: 10.1093/bioinformatics/btp352
params:
- outdir:
type: string
description: |
The pipeline's output directory. By default, the module will
output files into `$params.outdir/<SOFTWARE>`
- publish_dir_mode:
type: string
description: |
Value for the Nextflow `publishDir` mode parameter.
Available: symlink, rellink, link, copy, copyNoFollow, move.
- conda:
type: boolean
description: |
Run the module with Conda using the software specified
via the `conda` directive
input: input:
- - meta:
- input: type: map
type: file description: |
description: Input BAM or CRAM file Groovy Map containing sample information
pattern: "*.{bam,cram}" e.g. [ id:'test', single_end:false ]
- bam:
type: file
description: BAM/CRAM/SAM file
pattern: "*.{bam,cram,sam}"
- options:
type: map
description: |
Groovy Map containing module options for passing command-line arguments and
output file paths.
output: output:
- - meta:
- sorted_file: type: map
type: file description: |
description: Sorted BAM or CRAM file Groovy Map containing sample information
pattern: "*.{bam,cram}" e.g. [ id:'test', single_end:false ]
- bam:
type: file
description: Sorted BAM/CRAM/SAM file
pattern: "*.{bam,cram,sam}"
- version:
type: file
description: File containing software version
pattern: "*.{version.txt}"
authors: authors:
- "@drpatelh"
- "@ewels" - "@ewels"

View file

@ -0,0 +1 @@
../../../../../tests/data/bam/test.paired_end.name.sorted.bam

23
software/samtools/sort/test/main.nf Normal file → Executable file
View file

@ -1,13 +1,18 @@
#!/usr/bin/env nextflow #!/usr/bin/env nextflow
echo true
cheers = Channel.from 'Bonjour', 'Ciao', 'Hello', 'Hola' nextflow.enable.dsl = 2
process sayHello { include { SAMTOOLS_SORT } from '../main.nf'
input:
val x from cheers workflow test {
script:
""" def input = []
echo '$x world!' input = [ [ id:'test', single_end:false ], // meta map
""" file("${baseDir}/input/test.paired_end.name.sorted.bam", checkIfExists: true) ]
SAMTOOLS_SORT ( input, [:] )
}
workflow {
test()
} }

View file

@ -1,2 +1,20 @@
docker.enabled = true
params.outdir = './results' params {
outdir = "output/"
publish_dir_mode = "copy"
conda = false
}
profiles {
conda {
params.conda = true
}
docker {
docker.enabled = true
docker.runOptions = '-u \$(id -u):\$(id -g)'
}
singularity {
singularity.enabled = true
singularity.autoMounts = true
}
}

Binary file not shown.

View file

@ -0,0 +1,68 @@
name: samtools_stats
description: Produces comprehensive statistics from SAM/BAM/CRAM file
keywords:
- statistics
- counts
- bam
- sam
- cram
tools:
- samtools:
description: |
SAMtools is a set of utilities for interacting with and post-processing
short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li.
These files are generated as output by short read aligners like BWA.
homepage: http://www.htslib.org/
documentation: hhttp://www.htslib.org/doc/samtools.html
doi: 10.1093/bioinformatics/btp352
params:
- outdir:
type: string
description: |
The pipeline's output directory. By default, the module will
output files into `$params.outdir/<SOFTWARE>`
- publish_dir_mode:
type: string
description: |
Value for the Nextflow `publishDir` mode parameter.
Available: symlink, rellink, link, copy, copyNoFollow, move.
- conda:
type: boolean
description: |
Run the module with Conda using the software specified
via the `conda` directive
input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- bam:
type: file
description: BAM/CRAM/SAM file
pattern: "*.{bam,cram,sam}"
- bai:
type: file
description: Index for BAM/CRAM/SAM file
pattern: "*.{bai,crai,sai}"
- options:
type: map
description: |
Groovy Map containing module options for passing command-line arguments and
output file paths.
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- stats:
type: file
description: File containing samtools stats output
pattern: "*.{stats}"
- version:
type: file
description: File containing software version
pattern: "*.{version.txt}"
authors:
- "@drpatelh"

View file

@ -0,0 +1 @@
../../../../../tests/data/bam/test.paired_end.sorted.bam

View file

@ -0,0 +1 @@
../../../../../tests/data/bam/test.paired_end.sorted.bam.bai

View file

@ -0,0 +1,19 @@
#!/usr/bin/env nextflow
nextflow.enable.dsl = 2
include { SAMTOOLS_STATS } from '../main.nf'
workflow test {
def input = []
input = [ [ id:'test', single_end:false ], // meta map
file("${baseDir}/input/test.paired_end.sorted.bam", checkIfExists: true),
file("${baseDir}/input/test.paired_end.sorted.bam.bai", checkIfExists: true) ]
SAMTOOLS_STATS ( input, [:] )
}
workflow {
test()
}

View file

@ -0,0 +1,20 @@
params {
outdir = "output/"
publish_dir_mode = "copy"
conda = false
}
profiles {
conda {
params.conda = true
}
docker {
docker.enabled = true
docker.runOptions = '-u \$(id -u):\$(id -g)'
}
singularity {
singularity.enabled = true
singularity.autoMounts = true
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,97 +1,98 @@
name: trimgalore name: trimgalore
description: Trim FastQ files using Trim Galore! description: Trim FastQ files using Trim Galore!
keywords: keywords:
- trimming - trimming
- adapters - adapters
- sequencing adapters - sequencing adapters
- fastq
tools: tools:
- trimgalore: - trimgalore:
description: | description: |
A wrapper tool around Cutadapt and FastQC to consistently apply quality A wrapper tool around Cutadapt and FastQC to consistently apply quality
and adapter trimming to FastQ files, with some extra functionality for and adapter trimming to FastQ files, with some extra functionality for
MspI-digested RRBS-type (Reduced Representation Bisufite-Seq) libraries. MspI-digested RRBS-type (Reduced Representation Bisufite-Seq) libraries.
homepage: https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/ homepage: https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/
documentation: https://github.com/FelixKrueger/TrimGalore/blob/master/Docs/Trim_Galore_User_Guide.md documentation: https://github.com/FelixKrueger/TrimGalore/blob/master/Docs/Trim_Galore_User_Guide.md
params: params:
- outdir: - outdir:
type: string type: string
description: | description: |
The pipeline's output directory. By default, the module will The pipeline's output directory. By default, the module will
output files into `$params.outdir/<SOFTWARE>` output files into `$params.outdir/<SOFTWARE>`
- publish_dir_mode: - publish_dir_mode:
type: string type: string
description: | description: |
Value for the Nextflow `publishDir` mode parameter. Value for the Nextflow `publishDir` mode parameter.
Available: symlink, rellink, link, copy, copyNoFollow, move. Available: symlink, rellink, link, copy, copyNoFollow, move.
- conda: - conda:
type: boolean type: boolean
description: | description: |
Run the module with Conda using the software specified Run the module with Conda using the software specified
via the `conda` directive via the `conda` directive
- clip_r1: - clip_r1:
type: integer type: integer
description: | description: |
Instructs Trim Galore to remove bp from the 5' end of read 1 Instructs Trim Galore to remove bp from the 5' end of read 1
(or single-end reads) (or single-end reads)
- clip_r2: - clip_r2:
type: integer type: integer
description: | description: |
Instructs Trim Galore to remove bp from the 5' end of read 2 Instructs Trim Galore to remove bp from the 5' end of read 2
(paired-end reads only) (paired-end reads only)
- three_prime_clip_r1: - three_prime_clip_r1:
type: integer type: integer
description: | description: |
Instructs Trim Galore to remove bp from the 3' end of read 1 Instructs Trim Galore to remove bp from the 3' end of read 1
AFTER adapter/quality trimming has been performed AFTER adapter/quality trimming has been performed
- three_prime_clip_r2: - three_prime_clip_r2:
type: integer type: integer
description: | description: |
Instructs Trim Galore to re move bp from the 3' end of read 2 Instructs Trim Galore to re move bp from the 3' end of read 2
AFTER adapter/quality trimming has been performed AFTER adapter/quality trimming has been performed
input: input:
- meta: - meta:
type: map type: map
description: | description: |
Groovy Map containing sample information Groovy Map containing sample information
e.g. [ id:'test', single_end:false ] e.g. [ id:'test', single_end:false ]
- reads: - reads:
type: file type: file
description: | description: |
List of input FastQ files of size 1 and 2 for single-end and paired-end data, List of input FastQ files of size 1 and 2 for single-end and paired-end data,
respectively. respectively.
- options: - options:
type: map type: map
description: | description: |
Groovy Map containing module options for passing command-line arguments and Groovy Map containing module options for passing command-line arguments and
output file paths. output file paths.
output: output:
- meta: - meta:
type: map type: map
description: | description: |
Groovy Map containing sample information Groovy Map containing sample information
e.g. [ id:'test', single_end:false ] e.g. [ id:'test', single_end:false ]
- reads: - reads:
type: file type: file
description: | description: |
List of input adapter trimmed FastQ files of size 1 and 2 for List of input adapter trimmed FastQ files of size 1 and 2 for
single-end and paired-end data, respectively. single-end and paired-end data, respectively.
pattern: "*.fq.gz" pattern: "*.{fq.gz}"
- html: - html:
type: file type: file
description: FastQC report (optional) description: FastQC report (optional)
pattern: "*_fastqc.html" pattern: "*_{fastqc.html}"
- zip: - zip:
type: file type: file
description: FastQC report archive (optional) description: FastQC report archive (optional)
pattern: "*_fastqc.zip" pattern: "*_{fastqc.zip}"
- log: - log:
type: file type: file
description: Trim Galore! trimming report description: Trim Galore! trimming report
pattern: "*report.txt" pattern: "*_{report.txt}"
- version: - version:
type: file type: file
description: File containing software version description: File containing software version
pattern: "*.version.txt" pattern: "*.{version.txt}"
authors: authors:
- "@drpatelh" - "@drpatelh"
- "@ewels" - "@ewels"

View file

@ -1,25 +1,25 @@
params { params {
outdir = "output/" outdir = "output/"
publish_dir_mode = "copy" publish_dir_mode = "copy"
conda = false conda = false
clip_r1 = 0 clip_r1 = 0
clip_r2 = 0 clip_r2 = 0
three_prime_clip_r1 = 0 three_prime_clip_r1 = 0
three_prime_clip_r2 = 0 three_prime_clip_r2 = 0
} }
profiles { profiles {
conda { conda {
params.conda = true params.conda = true
} }
docker { docker {
docker.enabled = true docker.enabled = true
docker.runOptions = '-u \$(id -u):\$(id -g)' docker.runOptions = '-u \$(id -u):\$(id -g)'
} }
singularity { singularity {
singularity.enabled = true singularity.enabled = true
singularity.autoMounts = true singularity.autoMounts = true
} }
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tests/data/fastq/dna/Ecoli_DNA_R1.fastq.gz Normal file → Executable file

Binary file not shown.

BIN
tests/data/fastq/dna/Ecoli_DNA_R2.fastq.gz Normal file → Executable file

Binary file not shown.

View file

@ -1,14 +0,0 @@
#!/usr/bin/env nextflow
nextflow.preview.dsl = 2
cheers = Channel.from 'Bonjour', 'Ciao', 'Hello', 'Hola'
process check_output {
input:
val x from cheers
script:
"""
echo '$x world!'
"""
}