nf-core / nf-core/seqsubmit

Add tests for --is_private flag for different kinds of data

Open
#80 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Nextflow
Stars
18
Forks
8
PR merge metrics
No merged PRs in 30d

Description

Difficulty: Easy

Why this matters: ENA (European Nucleotide Archive) lets you build a submission on top of data that isn't public yet, as long as your Webin account has access to it. The pipeline supports this through --is_private. There's currently no automated test covering this for any of the three submission types (reads, metagenomic assemblies, MAGs/bins), so a bug in this part of the pipeline could slip through unnoticed.

Some terms: ENA (European Nucleotide Archive) is the public repository this pipeline submits data to. Webin is ENA's account and authentication system, you need a Webin account to submit anything, and registration is free and self-service. "Private data" means data that has been submitted to ENA but isn't publicly visible yet, only accessible to the Webin account that submitted it (or one it's been shared with). docs/usage.md has a "Data privacy" section with a table of the different combinations (public/private source data, public/private submission) and which flags each one needs, that table is the best starting point.

Skills / experience: nf-test: creation and running of tests (see the nf-core nf-test testing guide if this is new to you).

Suggested approach:

  1. Read the "Data privacy" section of docs/usage.md closely, this is the main reference for what --is_private does and when it's needed.
  2. For each of the three data types (reads, metagenomic assemblies, MAGs/bins), add a test that references private source data with --is_private set. No need to also test private vs public submission visibility, just focus on getting private source data covered for all three types.
  3. ** ⭐ You'll need actual private test data already submitted under a Webin test account for this, check with a maintainer whether suitable private accessions already exist, or if you need to submit some first.**
  4. Add a conf/test_*.config per data type and a sample sheet that uses registered private accessions, following the pattern of the existing ones.
  5. Add a matching tests/*.nf.test per data type.
  6. Also worth testing the failure case: private source data referenced without --is_private should fail, as described in the docs table.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Data privacy section of docs/usage.md, then inspect existing conf/test_.config, sample sheets, and tests/.nf.test patterns for reads, metagenomic assemblies, and MAGs/bins. Ask a maintainer about suitable private Webin accessions before creating the tests. Done means each data type covers private source data with --is_private and the documented failure case without it.

Written by the indexing model from the issue text.

Assessment

Domain
testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.