Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
16 changes: 4 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,6 @@

## Introduction

**nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home).
Currently, the pipeline supports four submission modes, each routed to a dedicated workflow and requiring its own input samplesheet structure:

- `mags` for Metagenome Assembled Genomes (MAGs) submission with `GENOMESUBMIT` workflow
- `bins` for bins submission with `GENOMESUBMIT` workflow
- `metagenomic_assemblies` for assembly submission with `ASSEMBLYSUBMIT` workflow
- `reads` for raw sequencing reads submission with `READSUBMIT` workflow

![seqsubmit workflow diagram](docs/images/seqsubmit_schema.png)

**nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home).
Expand Down Expand Up @@ -68,7 +60,7 @@ Each workflow has its own samplesheet structure, prerequisites, and limitations
Example:

```csv
sample,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description
id,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description
illumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLUMINA,Illumina HiSeq 2000,GENOMIC,RANDOM,WGS,500,HiSeq_library_001,Illumina sequencing of sample XYZ
```

Expand All @@ -79,7 +71,7 @@ See the [`reads` mode section](docs/usage.md#samplesheet-input) of the usage doc
Example:

```csv
sample,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version
id,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version
assembly_1,data/contigs_1.fasta.gz,data/reads_1.fastq.gz,data/reads_2.fastq.gz,,ERR011322,SPAdes,3.15.5
assembly_2,data/contigs_2.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9
```
Expand All @@ -91,8 +83,8 @@ See the [`metagenomic_assemblies` mode section](docs/usage.md#samplesheet-input-
Example:

```csv
sample,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage
lachnospira_eligens,data/bin_lachnospira_eligens.fa.gz,SRR24458089,,,spades_v3.15.5,metabat2_v2.6,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,No,marine,cable_bacteria,marine_sediment,No,d__Bacteria;p__Proteobacteria;s__unclassified_Proteobacteria
id,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage
lachnospira_eligens,data/bin_lachnospira_eligens.fa.gz,SRR24458089,,,spades_v3.15.5,metabat2_v2.6,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,false,marine,cable_bacteria,marine_sediment,false,d__Bacteria;p__Proteobacteria;s__unclassified_Proteobacteria
```

See the [`mags` and `bins` modes section](docs/usage.md#samplesheet-input-2) of the usage documentation for the full list of required and optional columns.
Expand Down
2 changes: 1 addition & 1 deletion assets/multiqc_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ sp:
genome_metadata:
fn_re: ".*genomes_metadata.tsv$"
sample_registration:
fn_re: '.*registered\.*\.tsv$'
fn_re: '.*registered.*\.tsv$'
submission_results_genomes:
fn_re: 'genomes_accessions\.tsv$'
submission_results_assemblies:
Expand Down
25 changes: 16 additions & 9 deletions assets/schema_input_assembly.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@
"items": {
"type": "object",
"properties": {
"sample": {
"id": {
"type": "string",
"pattern": "^\\S+$",
"errorMessage": "Sample must be provided and cannot contain spaces",
"description": "Unique assembly identifier",
"errorMessage": "ID must be provided and cannot contain spaces",
"meta": ["id"]
},
"fasta": {
Expand Down Expand Up @@ -50,43 +51,49 @@
"maxLength": 0
}
],
"default": null,
"errorMessage": "FASTQ file for reverse reads must have extension '.fq' or '.fastq' (optionally gzipped)",
"description": "Reverse reads FASTQ file if paired-end. Leave empty for single-end reads"
},
"coverage": {
"anyOf": [
{
"type": "number",
"minimum": 0
"exclusiveMinimum": 0
},
{
"type": "string",
"maxLength": 0
}
],
"default": null,
"errorMessage": "Coverage must be a positive number or empty",
"description": "Estimated value of assembly coverage"
"description": "Estimated value of assembly coverage",
"meta": ["coverage"]
},
"run_accession": {
"type": "string",
"pattern": "^\\S+$",
"errorMessage": "Accession must be provided and cannot contain spaces",
"description": "Accession of the run used to generate the assembly"
"description": "Accession of the run used to generate the assembly",
"meta": ["run_accession"]
},
"assembler": {
"type": "string",
"pattern": "^\\S+$",
"errorMessage": "Assembler must be provided and cannot contain spaces",
"description": "Name of the assembler software used to generate the assembly, e.g. MEGAHIT, SPAdes, metaSPAdes, Flye, etc"
"description": "Name of the assembler software used to generate the assembly, e.g. MEGAHIT, SPAdes, metaSPAdes, Flye, etc",
"meta": ["assembler"]
},
"assembler_version": {
"anyOf": [{ "type": "string" }, { "type": "number" }],
"pattern": "^\\S+$",
"errorMessage": "Assembler version must be provided and cannot contain spaces",
"description": "Version of the assembler software used to generate the assembly, e.g 1.0.0"
"description": "Version of the assembler software used to generate the assembly, e.g 1.0.0",
"meta": ["assembler_version"]
}
},
"required": ["sample", "fasta", "run_accession", "assembler", "assembler_version"],
"required": ["id", "fasta", "run_accession", "assembler", "assembler_version"],
"anyOf": [
{
"properties": {
Expand All @@ -101,7 +108,7 @@
"properties": {
"coverage": {
"type": "number",
"minimum": 0
"exclusiveMinimum": 0
}
},
"required": ["coverage"]
Expand Down
111 changes: 83 additions & 28 deletions assets/schema_input_genome.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@
"items": {
"type": "object",
"properties": {
"sample": {
"id": {
"type": "string",
"pattern": "^\\S+$",
"errorMessage": "Sample name must be provided and cannot contain spaces",
"description": "Unique mag/bin identifier",
"errorMessage": "ID must be provided and cannot contain spaces",
"meta": ["id"]
},
"fasta": {
Expand All @@ -23,7 +24,8 @@
},
"accession": {
"type": "string",
"description": "Run or assembly ENA accession"
"description": "Run or assembly ENA accession",
"meta": ["accession"]
},
"fastq_1": {
"anyOf": [
Expand All @@ -38,6 +40,7 @@
"maxLength": 0
}
],
"default": null,
"errorMessage": "FASTQ file must have extension '.fq' or '.fastq' (optionally gzipped)",
"description": "Forward reads if paired-end or single-end reads FASTQ file"
},
Expand All @@ -54,74 +57,126 @@
"maxLength": 0
}
],
"default": null,
"errorMessage": "FASTQ file for reverse reads must have extension '.fq' or '.fastq' (optionally gzipped)",
"description": "Reverse reads FASTQ file if paired-end. Leave empty for single-end reads"
},
"assembly_software": {
"type": "string",
"description": "Tool name and version that was used to assemble data, e.g. MEGAHIT_v1.0, SPAdes_v4.0.0, metaSPAdes_v3.15.0"
"description": "Tool name and version that was used to assemble data, e.g. MEGAHIT_v1.0, SPAdes_v4.0.0, metaSPAdes_v3.15.0",
"meta": ["assembly_software"]
},
"binning_software": {
"type": "string",
"description": "Tool name and version that was used to bin data, e.g. MetaBAT2, VAMB, MaxBin2, CONCOCT, SemiBin2, COMEBin, etc"
"description": "Tool name and version that was used to bin data, e.g. MetaBAT2, VAMB, MaxBin2, CONCOCT, SemiBin2, COMEBin, etc",
"meta": ["binning_software"]
},
"binning_parameters": {
"type": "string",
"description": "Arguments used to bin data different from default, e.g. -min_contig_length 1000"
"description": "Arguments used to bin data different from default, e.g. -min_contig_length 1000",
"meta": ["binning_parameters"]
},
"stats_generation_software": {
"type": "string",
"description": "Tool(s) used to estimate completeness and contamination"
"default": null,
"description": "Tool(s) used to estimate completeness and contamination",
"meta": ["stats_generation_software"]
},
"completeness": {
"type": "number",
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 100
},
{
"type": "string",
"maxLength": 0
}
],
"default": null,
"description": "MAG/bin completeness score: the ratio of observed single-copy marker genes to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined",
"exclusiveMinimum": 0,
"exclusiveMaximum": 100
"meta": ["completeness"]
},
"contamination": {
"type": "number",
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 100
},
{
"type": "string",
"maxLength": 0
}
],
"default": null,
"description": "MAG/bin contamination score: the ratio of observed single-copy marker genes in ≥2 copies to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined",
"exclusiveMinimum": 0,
"exclusiveMaximum": 100
"meta": ["contamination"]
},
"genome_coverage": {
"type": "number",
"description": "MAG/bin coverage value"
"anyOf": [
{
"type": "number",
"exclusiveMinimum": 0
},
{
"type": "string",
"maxLength": 0
}
],
"default": null,
"description": "MAG/bin coverage value",
"meta": ["genome_coverage"]
},
"metagenome": {
"type": "string",
"description": "ENA accepted metagenome name. It needs to be listed in the taxonomy tree https://www.ebi.ac.uk/ena/browser/view/408169?show=tax-tree (you might need to press \"Tax tree - Show\" in the right most section of the page). Full list can also be found https://github.com/EBI-Metagenomics/genome_uploader/blob/main/genomeuploader/constants.py#L22"
"description": "ENA accepted metagenome name. It needs to be listed in the taxonomy tree https://www.ebi.ac.uk/ena/browser/view/408169?show=tax-tree (you might need to press \"Tax tree - Show\" in the right most section of the page). Full list can also be found https://github.com/EBI-Metagenomics/genome_uploader/blob/main/genomeuploader/constants.py#L22",
"meta": ["metagenome"]
},
"co-assembly": {
"type": "string",
"description": "'Yes' if data was co-assembled, 'No' otherwise. Options: 'Yes' or 'No'",
"enum": ["Yes", "No"]
"type": "boolean",
"description": "'true' if data was co-assembled, 'false' otherwise",
"meta": ["co_assembly"]
},
"broad_environment": {
"type": "string",
"description": "Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS"
"description": "Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS",
"meta": ["broad_environment"]
},
"local_environment": {
"type": "string",
"description": "Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for \"broad-scale environmental context\". Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS"
"description": "Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for \"broad-scale environmental context\". Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS",
"meta": ["local_environment"]
},
"environmental_medium": {
"type": "string",
"description": "Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS"
"description": "Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS",
"meta": ["environmental_medium"]
},
"RNA_presence": {
"type": "string",
"description": "Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: 'Yes' or 'No'.",
"enum": ["Yes", "No"]
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"maxLength": 0
}
],
"default": null,
"description": "Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: true/false",
"meta": ["RNA_presence"]
},
"NCBI_lineage": {
"type": "string",
"description": "full NCBI lineage - format: x;y;z. For example, the lineage for E. coli can be: 'Bacteria;Pseudomonadati;Pseudomonadota;Gammaproteobacteria;Enterobacterales;Enterobacteriaceae;Escherichia' or '2;1224;1236;91347;543;561;562'. For more info check https://www.ncbi.nlm.nih.gov/datasets/docs/v2/data-processing/taxonomy-processing/taxonomy/"
"default": null,
"description": "Full NCBI lineage - format: x;y;z. For example, the lineage for E. coli can be: 'Bacteria;Pseudomonadati;Pseudomonadota;Gammaproteobacteria;Enterobacterales;Enterobacteriaceae;Escherichia' or '2;1224;1236;91347;543;561;562'. For more info check https://www.ncbi.nlm.nih.gov/datasets/docs/v2/data-processing/taxonomy-processing/taxonomy/",
"meta": ["NCBI_lineage"]
}
},
"required": [
"sample",
"id",
"fasta",
"accession",
"assembly_software",
Expand All @@ -147,7 +202,7 @@
"properties": {
"genome_coverage": {
"type": "number",
"minimum": 0
"exclusiveMinimum": 0
}
},
"required": ["genome_coverage"]
Expand Down
Loading
Loading