Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FastQC #92

Merged
merged 41 commits into from
Sep 3, 2024
Merged
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
ad9e1be
Starting Component
tgaspe Jul 18, 2024
52a2328
Creating Files
tgaspe Jul 18, 2024
17b0638
update on config file
tgaspe Jul 18, 2024
0900ab4
Merge remote-tracking branch 'upstream/main' into FastQC
tgaspe Jul 19, 2024
a41da62
Update on test.sh
tgaspe Jul 19, 2024
d9720c1
Update on config
tgaspe Jul 19, 2024
f89e24a
Update script.sh
tgaspe Jul 19, 2024
ad9ec27
Update on script.sh
tgaspe Jul 19, 2024
72c3ab9
trying to figure multiple: true
tgaspe Jul 19, 2024
8be954c
Update on script.sh
tgaspe Jul 22, 2024
0ba691b
Update on script
tgaspe Jul 22, 2024
948edb8
Adding some tests
tgaspe Jul 22, 2024
a2adb17
More tests
tgaspe Jul 22, 2024
03a32c5
Update on script.sh
tgaspe Jul 22, 2024
ffcb97e
Added more tests
tgaspe Jul 23, 2024
4bcad98
Small Changes
tgaspe Jul 24, 2024
7313e05
Update test.sh
tgaspe Jul 24, 2024
258a9e6
Update on Script and Test
tgaspe Jul 24, 2024
1260e24
Added one more test
tgaspe Jul 24, 2024
c33f795
Removed test_data dir
tgaspe Jul 24, 2024
d8b1a75
More description
tgaspe Jul 24, 2024
11191fe
Update CHANGELOG.md
tgaspe Jul 24, 2024
eb16c4f
Update on config and script
tgaspe Jul 24, 2024
ba9fa75
Bug Fixed
tgaspe Aug 1, 2024
2b8dac6
unset_if_false
tgaspe Aug 20, 2024
5ef0e77
Updating Tests
tgaspe Aug 20, 2024
6b11fb9
Update script.sh
tgaspe Aug 20, 2024
f2fd3aa
debugging
tgaspe Aug 20, 2024
7a827a9
Minor changes
tgaspe Aug 21, 2024
084a7c4
Update config.vsh.yaml
tgaspe Aug 21, 2024
cd30b83
Update config.vsh.yaml
tgaspe Aug 21, 2024
0661bd5
Required Changes
tgaspe Aug 22, 2024
98811ef
Update config.vsh.yaml
tgaspe Aug 22, 2024
5c3ed84
Adding extra links
tgaspe Aug 22, 2024
03f7f74
tmpdir bug
tgaspe Aug 22, 2024
21ccd26
Updating tests
tgaspe Aug 22, 2024
4c8beab
minor changes
tgaspe Aug 22, 2024
7c79352
Adding extra output options
tgaspe Aug 22, 2024
9239468
minor change
tgaspe Aug 22, 2024
b99876d
Update script.sh
tgaspe Aug 23, 2024
48103cb
small change in config
tgaspe Aug 23, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@

* `agat/agat_convert_sp_gff2gtf`: convert any GTF/GFF file into a proper GTF file (PR #76).

* `fastqc`: High throughput sequence quality control analysis tool (PR #92).

## MINOR CHANGES

* `busco` components: update BUSCO to `5.7.1` (PR #72).
Expand Down
182 changes: 182 additions & 0 deletions src/fastqc/config.vsh.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
name: fastqc
namespace: fastqc
tgaspe marked this conversation as resolved.
Show resolved Hide resolved
description: FastQC - A high throughput sequence QC analysis tool.
keywords: [Quality control, BAM, SAM, FASTQ]
links:
repository: https://github.com/s-andrews/FastQC
license: GPL-3.0, Apache-2.0
authors:
- __merge__: /src/_authors/theodoro_gasperin.yaml
roles: [ author, maintainer ]

argument_groups:
- name: Inputs
arguments:
- name: --input
type: file
direction: input
multiple: true
description: FASTQ file(s) to be analyzed.
required: true
example: input.fq

- name: Outputs
arguments:
tgaspe marked this conversation as resolved.
Show resolved Hide resolved
- name: --html
type: file
direction: output
multiple: true
description: |
Create the HTML report of the results.
'*' wild card must be provided in the output file name.
Wild card will be replaced by the input basename.
example: example_*.html

- name: --zip
type: file
direction: output
multiple: true
description: |
Create the zip file(s) containing: html report, data, images, icons, summary, etc.
'*' wild card must be provided in the output file name.
Wild card will be replaced by the input basename.
example: example_*.zip

- name: Options
arguments:
- name: --casava
type: boolean_true
description: |
Files come from raw casava output. Files in the same sample
group (differing only by the group number) will be analysed
as a set rather than individually. Sequences with the filter
flag set in the header will be excluded from the analysis.
Files must have the same names given to them by casava
(including being gzipped and ending with .gz) otherwise they
won't be grouped together correctly.

- name: --nano
type: boolean_true
description: |
Files come from nanopore sequences and are in fast5 format. In
this mode you can pass in directories to process and the program
will take in all fast5 files within those directories and produce
a single output file from the sequences found in all files.

- name: --nofilter
type: boolean_true
description: |
If running with --casava then don't remove read flagged by
casava as poor quality when performing the QC analysis.

- name: --extract
type: boolean_true
description: |
If set then the zipped output file will be uncompressed in
the same directory after it has been created. By default
this option will be set if fastqc is run in non-interactive
mode.

- name: --noextract
type: boolean_true
description: |
Do not uncompress the output file after creating it.
You should set this option if you do not wish to uncompress
the output when running in non-interactive mode.

- name: --nogroup
type: boolean_true
description: |
Disable grouping of bases for reads >50bp.
All reports will show data for every base in the read.
WARNING: Using this option will cause fastqc to crash
and burn if you use it on really long reads, and your
plots may end up a ridiculous size. You have been warned!

- name: --min_length
type: integer
description: |
Sets an artificial lower limit on the length of the
sequence to be shown in the report. As long as you
set this to a value greater or equal to your longest
read length then this will be the sequence length used
to create your read groups. This can be useful for making
directly comparable statistics from datasets with somewhat
variable read lengths.
example: 0

- name: --format
alternatives: -f
type: string
description: |
Bypasses the normal sequence file format detection and
forces the program to use the specified format.
Valid formats are bam, sam, bam_mapped, sam_mapped, and fastq.
example: bam

- name: --contaminants
alternatives: -c
type: file
description: |
Specifies a non-default file which contains the list
of contaminants to screen overrepresented sequences against.
The file must contain sets of named contaminants in the form
name[tab]sequence. Lines prefixed with a hash will be ignored.
example: contaminants.txt

- name: --adapters
alternatives: -a
type: file
description: |
Specifies a non-default file which contains the list of
adapter sequences which will be explicitly searched against
the library. The file must contain sets of named adapters
in the form name[tab]sequence. Lines prefixed with a hash will be ignored.
example: adapters.txt

- name: --limits
alternatives: -l
type: file
description: |
Specifies a non-default file which contains
a set of criteria which will be used to determine
the warn/error limits for the various modules.
This file can also be used to selectively remove
some modules from the output altogether. The format
needs to mirror the default limits.txt file found in
the Configuration folder.
example: limits.txt

- name: --kmers
alternatives: -k
type: integer
description: |
Specifies the length of Kmer to look for in the Kmer
content module. Specified Kmer length must be between
2 and 10. Default length is 7 if not specified.
example: 7

- name: --quiet
alternatives: -q
type: boolean_true
description: |
Suppress all progress messages on stdout and only report errors.

resources:
- type: bash_script
path: script.sh
test_resources:
- type: bash_script
path: test.sh

engines:
- type: docker
image: biocontainers/fastqc:v0.11.9_cv8
setup:
- type: docker
run: |
fastqc --version > /var/software_versions.txt
tgaspe marked this conversation as resolved.
Show resolved Hide resolved

runners:
- type: executable
- type: nextflow
tgaspe marked this conversation as resolved.
Show resolved Hide resolved
125 changes: 125 additions & 0 deletions src/fastqc/help.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
```bash
fastqc --help
```

FastQC - A high throughput sequence QC analysis tool

SYNOPSIS

fastqc seqfile1 seqfile2 .. seqfileN

fastqc [-o output dir] [--(no)extract] [-f fastq|bam|sam]
[-c contaminant file] seqfile1 .. seqfileN

DESCRIPTION

FastQC reads a set of sequence files and produces from each one a quality
control report consisting of a number of different modules, each one of
which will help to identify a different potential type of problem in your
data.

If no files to process are specified on the command line then the program
will start as an interactive graphical application. If files are provided
on the command line then the program will run with no user interaction
required. In this mode it is suitable for inclusion into a standardised
analysis pipeline.

The options for the program as as follows:

-h --help Print this help file and exit

-v --version Print the version of the program and exit

-o --outdir Create all output files in the specified output directory.
Please note that this directory must exist as the program
will not create it. If this option is not set then the
output file for each sequence file is created in the same
directory as the sequence file which was processed.

--casava Files come from raw casava output. Files in the same sample
group (differing only by the group number) will be analysed
as a set rather than individually. Sequences with the filter
flag set in the header will be excluded from the analysis.
Files must have the same names given to them by casava
(including being gzipped and ending with .gz) otherwise they
won't be grouped together correctly.

--nano Files come from nanopore sequences and are in fast5 format. In
this mode you can pass in directories to process and the program
will take in all fast5 files within those directories and produce
a single output file from the sequences found in all files.

--nofilter If running with --casava then don't remove read flagged by
casava as poor quality when performing the QC analysis.

--extract If set then the zipped output file will be uncompressed in
the same directory after it has been created. By default
this option will be set if fastqc is run in non-interactive
mode.

-j --java Provides the full path to the java binary you want to use to
launch fastqc. If not supplied then java is assumed to be in
your path.

--noextract Do not uncompress the output file after creating it. You
should set this option if you do not wish to uncompress
the output when running in non-interactive mode.

--nogroup Disable grouping of bases for reads >50bp. All reports will
show data for every base in the read. WARNING: Using this
option will cause fastqc to crash and burn if you use it on
really long reads, and your plots may end up a ridiculous size.
You have been warned!

--min_length Sets an artificial lower limit on the length of the sequence
to be shown in the report. As long as you set this to a value
greater or equal to your longest read length then this will be
the sequence length used to create your read groups. This can
be useful for making directly comaparable statistics from
datasets with somewhat variable read lengths.

-f --format Bypasses the normal sequence file format detection and
forces the program to use the specified format. Valid
formats are bam,sam,bam_mapped,sam_mapped and fastq

-t --threads Specifies the number of files which can be processed
simultaneously. Each thread will be allocated 250MB of
memory so you shouldn't run more threads than your
available memory will cope with, and not more than
6 threads on a 32 bit machine

-c Specifies a non-default file which contains the list of
--contaminants contaminants to screen overrepresented sequences against.
The file must contain sets of named contaminants in the
form name[tab]sequence. Lines prefixed with a hash will
be ignored.

-a Specifies a non-default file which contains the list of
--adapters adapter sequences which will be explicity searched against
the library. The file must contain sets of named adapters
in the form name[tab]sequence. Lines prefixed with a hash
will be ignored.

-l Specifies a non-default file which contains a set of criteria
--limits which will be used to determine the warn/error limits for the
various modules. This file can also be used to selectively
remove some modules from the output all together. The format
needs to mirror the default limits.txt file found in the
Configuration folder.

-k --kmers Specifies the length of Kmer to look for in the Kmer content
module. Specified Kmer length must be between 2 and 10. Default
length is 7 if not specified.

-q --quiet Supress all progress messages on stdout and only report errors.

-d --dir Selects a directory to be used for temporary files written when
generating report images. Defaults to system temp directory if
not specified.

BUGS

Any bugs in fastqc should be reported either to [email protected]
or in www.bioinformatics.babraham.ac.uk/bugzilla/


Loading