Skip to content

Initial release#72

Open
KateSakharova wants to merge 286 commits into
mainfrom
dev
Open

Initial release#72
KateSakharova wants to merge 286 commits into
mainfrom
dev

Conversation

@KateSakharova

@KateSakharova KateSakharova commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

nf-core/seqsubmit v1.0.0 — Initial Release

This is the first release of nf-core/seqsubmit, a Nextflow pipeline for submitting sequence data to the European Nucleotide Archive (ENA).

What it does:

The pipeline supports four submission modes via dedicated workflows:

  • mags — Metagenome Assembled Genomes submission (GENOMESUBMIT)
  • bins — Metagenomic bins submission (GENOMESUBMIT)
  • metagenomic_assemblies — Assembly submission (ASSEMBLYSUBMIT)
  • reads — Raw sequencing reads submission (READSUBMIT)

Key features:

  • Automatic study registration with ENA when no existing study accession is provided
  • Support for public and private data submissions, including configurable release dates
  • Coverage calculation from reads when not provided directly (via coverm)
  • Completeness/contamination estimation and taxonomy inference for MAGs/bins (via CheckM2 and CAT_pack) when metadata is incomplete
  • Credentials handled securely via Nextflow secrets (ENA_WEBIN, ENA_WEBIN_PASSWORD)
  • Full nf-core compatibility: runs with conda, Docker, and Singularity

Workflows and modules

  • READSUBMIT — manifest generation and webin-cli submission for raw reads
  • ASSEMBLYSUBMIT — manifest generation and webin-cli submission for metagenomic assemblies
  • GENOMESUBMIT — metadata table generation, genome upload, and webin-cli submission for MAGs/bins
  • Local modules: REGISTERSTUDY, CREATE_READS_MANIFEST, GENERATE_ASSEMBLY_MANIFEST, GENOME_UPLOAD, ENA_WEBIN_CLI_WRAPPER, and supporting utility modules

KateSakharova and others added 30 commits October 28, 2025 22:49
Co-authored-by: Sofia Ochkalova <61541445+ochkalova@users.noreply.github.com>
add nf-core style module for assembly_manifest
* Create VALIDATE_ASSEMBLY

* Pach fastavalidator

* Pach fastavalidator test

* add nf-core fastavalidator with an extra flag for metagenomes

* update gitignore

* fix spaces

* linter fix

* reuse file from nf-test dataset rather than local file

* revert changes to nf-test config

* linter fix

* add secretes to env variables for GI

* aaaaaaaaaaaa

* (╯°□°)╯( ┻━┻)

---------

Co-authored-by: Victoria Cepeda <vickycees@gmail.com>
* Module to register study for assembly uploads

* Module to register study for assembly uploads

* Module to register study for assembly uploads

* Module to register study for assembly uploads

* Module to register study for assembly uploads

* Module to register study for assembly uploads

* Module to register study for assembly uploads

* apply linting

* temporary disable failing test

* update container

---------

Co-authored-by: Sofia Ochkalova <61541445+ochkalova@users.noreply.github.com>
Important! Template update for nf-core/tools v3.5.1
@KateSakharova KateSakharova marked this pull request as ready for review July 1, 2026 20:51
Comment thread assets/samplesheet_genomes.csv
Comment thread nextflow_schema.json Outdated
Comment thread nextflow_schema.json Outdated
Comment thread modules/local/ena_webin_cli_wrapper/main.nf
Comment thread modules/local/create_assembly_metadata_csv/main.nf Outdated
Comment thread modules/local/create_genome_metadata_tsv/main.nf Outdated

@matthdsm matthdsm left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some comments

@vagkaratzas vagkaratzas left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work...just a round of minor comments and questions here and there. ( and ofc, pushing spaces :D )

Comment thread .github/workflows/download_pipeline.yml
Comment thread .github/PULL_REQUEST_TEMPLATE.md
Comment thread .github/PULL_REQUEST_TEMPLATE.md
Comment thread assets/multiqc_config.yml
Comment thread assets/seqsubmit_schema.png
Comment thread subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf
Comment thread subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf
Comment thread CHANGELOG.md
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## v1.0.0dev - [date]
## v1.0.0 - [date]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dont forget to add date before release :D

Comment thread nextflow.config
Comment thread nextflow_schema.json

@jfy133 jfy133 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just need to check nextflow_Schema.json but I have to run to a train now and don'tw ant to lose this review!

Comment thread .github/PULL_REQUEST_TEMPLATE.md
Comment thread .github/PULL_REQUEST_TEMPLATE.md
Comment thread assets/samplesheet_genomes.csv
},
"assembly_software": {
"type": "string",
"description": "Tool name and version that was used to assemble data"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have a preference for formatting of this on the ENA to reduce differences in : MEGAHIT, MEGAhit, megaHIT, megahit, MeGaHiT??

},
"binning_software": {
"type": "string",
"description": "Tool name and version that was used to bin data"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have a preference for formatting of this on the ENA to reduce differences in : MEGAHIT, MEGAhit, megaHIT, megahit, MeGaHiT??

Comment thread .nf-core.yml
Comment thread main.nf
SEQSUBMIT (
samplesheet
)
// Depending on the input type (mags/bins, metagenomic_assemblies, or reads), one or another workflow will be triggered

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a blocker at this stage, but unless you have a very strong reason to, I would suggest resurrecting seqsubmit.nf and putting this logic there, and hav this main.nf just be an entry into that.

I expect you are going to have horrible template merges in the future because of this... so I won't block this release and it is ultimately up to you, but just wanted to give a warning

Comment thread README.md

Make sure you update commands above with your authorised credentials.

## Input samplesheets

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the ## input samplesheets section is rather redundant with usage.md maybe consider removing this and asking users t ogo and refer to the relevaqnt section there instead? This would make the README simpler and you don't have to maintain the same info twice

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the suggestion, James!
I checked other nf-core pipelines and usually this section contains small example with links to usage doc.
I agree that our README is bigger than needed, so I decreased this section to only show examples.
Changes were made in #83

From the other side, in the PR above I added 2 new sections to README: lImitations and scalability, which maybe belong to other doc as well. What do you think?

Comment thread README.md
```csv
sample,fastq_1,fastq_2
CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz
### Data privacy

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is again too detailed for README< I would move this to usage.md

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I agree. I moved this to usage.md in #83

Comment thread README.md
| Bins generated from private reads and assemblies. Bins should remain private for 2 years after submission. User **has access** via Webin account | private | private | `--is_private`, `--release_date YYYY-MM-DD` (+2 years) | SUCCESS |
| MAGs generated from private reads and assemblies. MAGs should be public after submission. User **does not have access** to the reads and assemblies via Webin account | private | public | – | ERROR (submission can only reference accessible data) |

### Database setup (`CheckM2` and `CAT_pack`)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And these bits

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one is already quite slim and doesn't contain much infomation... I would keep it in here to highlight the need for additional DBs

@jfy133 jfy133 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And last comment :)

OVerall looks very good and very clean! Main things overall are just a few inconsistencies and docs/interface suggeostions, but nothing that will delay the release majorly :)

Comment thread nextflow_schema.json
Comment thread nextflow_schema.json
Comment thread nextflow_schema.json
"type": "string",
"description": "CAT_pack database ID for download",
"help": "There are two options available: nr (default) NCBI non-redundant protein database and gtdb (Genome Taxonomy Database (GTDB) proteins). We use NCBI proteins because ENA supports only NCBI format of taxonomy for submission",
"fa_icon": "fas fa-users-cog",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you use the schema builder, you should be able to press the cog at the end of the row of the parameter, and can specify a drop down list of valud options using a pipe separated list.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note if ENA only supports nr I would maybe just remove this parameter for now

Comment thread nextflow_schema.json
Comment thread nextflow_schema.json
Comment thread nextflow_schema.json
Comment thread nextflow_schema.json
"default": null,
"description": "Type of upload",
"help_text": "Different types of data require specific upload steps. That mode controls what upload workflow to run depending on type of data (mags/bins/metagenomic_assemblies/reads)",
"enum": ["mags", "bins", "metagenomic_assemblies", "reads"]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK you do know about this, then I would suggest remove the catpack ID option entirely if you can't change it

Comment thread nextflow_schema.json
"type": "boolean",
"description": "Use that flag if you are referring to private data in ENA",
"default": false,
"help": "This flag is used during metadata fetch steps. If you are referring to private data (project/reads/assembly) set to True. That flag does NOT regulate privacy of your submission data (check --release_date)"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"help": "This flag is used during metadata fetch steps. If you are referring to private data (project/reads/assembly) set to True. That flag does NOT regulate privacy of your submission data (check --release_date)"
"help": "This flag is used during metadata fetch steps. Specify if you are referring to private data (project/reads/assembly). That flag does NOT regulate privacy of your submission data (check --release_date)"

I wouldn't say to 'set to true' as the default use of a boolean parameter is that by providing it is implicity true (as in you don't normally go --is_private=true you would just give --is_private

Comment thread nextflow_schema.json
Comment thread nextflow_schema.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.