Skip to content

Add DIAMOND blastp subworkflow for protein homology search against NCBI RefSeq - #50

Open
tracelail wants to merge 90 commits into
nf-core:devfrom
tracelail:unfinished-diamond-blastp
Open

tracelail wants to merge 90 commits into
nf-core:devfrom
tracelail:unfinished-diamond-blastp

Conversation

@tracelail

@tracelail tracelail commented Jun 2, 2025 •

Copy link
Copy Markdown

Protein functional annotation at scale demands efficient sequence alignment against large reference databases. BLAST, the traditional tool for this task, is computationally expensive for large datasets. [DIAMOND](https://github.com/bbuchfink/diamond) (Buchfink et al., [Nature Methods 2021](https://doi.org/10.1038/s41592-021-01101-x)) provides BLAST-compatible sensitivity with significantly higher throughput, up to 10,000× faster than BLAST on large protein databases by using a double-indexed alignment algorithm optimized for modern hardware. Adding DIAMOND blastp to proteinannotator enables users to run protein homology searches against the full NCBI RefSeq protein database as part of their functional annotation workflow, which would be impractical with BLAST at scale.

This PR adds [DIAMOND blastp](https://github.com/bbuchfink/diamond) ([Buchfink et al., Nature Methods 2021](https://doi.org/10.1038/s41592-021-01101-x)) to the pipeline, using the existing nf-core diamond/blastp and [diamond/makedb](https://nf-co.re/modules/diamond_makedb/) modules, plus two new local modules:

New local modules:

  • ncbirefseqdownload : Downloads and concatenates NCBI RefSeq protein FASTAs for a specified release category (e.g. complete, other) into a single compressed reference FASTA for use by diamond/makedb
  • diamondpreparetaxa : Extracts NCBI taxonomy files (nodes.dmp, names.dmp) required for taxonomic classification in diamond/makedb, from a local path or remote URL supplied directly to Nextflow's own file staging

New subworkflows:

  • subworkflows/local/diamond : Orchestrates the full DIAMOND pipeline: RefSeq download → taxonomy preparation → DIAMOND_MAKEDB → DIAMOND_BLASTP. Supports all seven DIAMOND output formats (blast, xml, txt, daa, sam, tsv, paf) via params.diamond_outfmt and params.diamond_blast_columns
  • subworkflows/local/functional_annotation — Integrates the DIAMOND subworkflow alongside the existing InterProScan and KOfamScan logic. All three tools are independently gated by their own skip flag (params.skip_diamond, params.skip_interproscan, params.skip_kofamscan); FUNCTIONAL_ANNOTATION passes through all seven of DIAMOND's real output channels (diamond_blast, diamond_xml, diamond_txt, diamond_daa, diamond_sam, diamond_tsv, diamond_paf) rather than hardcoding a single outfmt-specific emit. Consuming these outputs downstream in proteinannotator.nf (e.g. a comparison/reporting step) is left to a follow-up PR.

New parameters (added to nextflow_schema.json and nextflow.config):

  • -skip_diamond — Skip the DIAMOND BLASTP taxonomic classification step entirely (default: false)
  • -refseq_release — NCBI RefSeq release category (default: complete)
  • -taxondmp_zip — URL to NCBI taxonomy dump archive
  • -taxonmap — URL to compressed protein accession-to-taxid map
  • -diamond_outfmt — Output format code (default: 6, tabular)
  • -diamond_blast_columns — Optional column list for tabular output

Testing:

All new local modules have nf-test test suites with both live and stub tests:

The diamond subworkflow is tested end-to-end using a miniature mini_prot.accession2taxid.gz taxon map and a small test_refseq.fasta. Tests cover five scenarios:

  • Live run with tabular output (outfmt 6, no columns)
  • Stub: outfmt 6, no columns
  • Stub: outfmt 6, with custom columns
  • Stub: outfmt 0 (pairwise BLAST format)
  • Stub: two-sample input, regression-testing a fixed channel cardinality bug (DIAMOND_MAKEDB's output now correctly broadcasts to every sample via .first(), rather than pairing positionally and silently dropping any sample beyond the first)

The functional_annotation subworkflow is tested with skip_interproscan = true and skip_diamond = false for DIAMOND-focused tests (live and stub), confirming the DIAMOND path runs correctly independently. Pre-existing InterProScan- and KOfamScan-focused tests now set skip_diamond = true, since they were previously running the full DIAMOND pipeline unconditionally despite being unrelated to what they test.

All stub tests are tagged CI for fast pipeline CI runs. Live module tests require -profile docker and are tagged accordingly. All local-module and subworkflow live tests, including the DIAMOND-focused paths in diamond and functional_annotation, have been run and verified under real -profile docker execution.

PR checklist

  • This comment contains a description of changes (with reason).
  • If you've fixed a bug or added code that should be tested, add tests!
  • If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/proteinannotator/tree/master/.github/CONTRIBUTING.md)
  • If necessary, also make a PR on the nf-core/proteinannotator branch on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository.
  • Make sure your code lints (nf-core pipelines lint).
  • Ensure the test suite passes (e.g. nf-test test */local --profile=~test,docker for all new local tests).
  • Check for unexpected warnings in debug mode (nf-test test */local --profile=~test,docker,debug).
  • Usage Documentation in docs/usage.md is updated.
  • Output Documentation in docs/output.md is updated.
  • CHANGELOG.md is updated.
  • README.md is updated (including new tool citations and authors/contributors).

@nf-core-bot

nf-core-bot commented Jun 2, 2025 •

Copy link
Copy Markdown
Member

Warning

Newer version of the nf-core template is available.

Your pipeline is using an old version of the nf-core template: 3.3.1.
Please update your pipeline to the latest version.

For more documentation on how to update your pipeline, please see the nf-core documentation and Synchronisation documentation.

@olgabot olgabot mentioned this pull request Jun 24, 2025
1 of 11 tasks

@olgabot olgabot 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.

Turns out I had started this review a while ago... But here are a bunch of suggestions that will hopefully deal with the container issues.

Comment thread .vscode/settings.json Resolved
Comment thread .nf-test.log Resolved
Comment thread CITATIONS.md Resolved
Comment thread docs/output.md Resolved
Comment thread docs/output.md Resolved
tracelail and others added 5 commits July 28, 2025 12:21
@tracelail

Copy link
Copy Markdown
Author

quite a few non nf-core stuff around that need to be fixed..the latest dev should be merged in this branch and conflicts should be resolved.

Non-nf-core stuff and merge conflicts: done.

I was wondring if this should stay under the functional_annotation subworkflow, or become its own derive_taxonomy subworkflow (or something like that) that is currently missing from the pipeline and this seems to fill that gap.

On functional_annotation vs its own derive_taxonomy subworkflow: keeping it under functional_annotation for now, will revisit with @olgabot since she's the one who set up this structure originally.

when finalized and before merging, the metro map should be updated accordingly (I can do that)

Metro map: good catch, you're right. Checked and DIAMOND isn't in it (neither is KOfamScan). There's also a tool for this now, nf-metro, converts Nextflow's dag output into the metro map style directly, in case that's useful. You'd mentioned you're happy to handle the update yourself, so deferring to you on that unless you'd rather I take a pass at it (haven't done this myself).

@vagkaratzas

Copy link
Copy Markdown
Collaborator

@tracelail can you resolve the last file conflict so I can hopefully go through the PR once more on Monday?

@tracelail

Copy link
Copy Markdown
Author

@tracelail can you resolve the last file conflict so I can hopefully go through the PR once more on Monday?

Resolved!

@github-actions

github-actions Bot commented Sep 7, 2026 •

Copy link
Copy Markdown

nf-core pipelines lint overall result: Passed ✅

Posted for pipeline commit 7b86f4b

+| ✅ 239 tests passed       |+
#| ❔  10 tests were ignored |#
Details

❔ Tests ignored:

  • files_exist - File is ignored: .github/workflows/ci.yml
  • files_exist - File is ignored: conf/igenomes.config
  • files_exist - File is ignored: conf/igenomes_ignored.config
  • files_exist - File is ignored: .github/workflows/linting_comment.yml
  • files_unchanged - File ignored due to lint config: .github/PULL_REQUEST_TEMPLATE.md
  • files_unchanged - File ignored due to lint config: .github/workflows/branch.yml
  • files_unchanged - File ignored due to lint config: .github/workflows/linting.yml
  • files_unchanged - File ignored due to lint config: assets/nf-core-proteinannotator_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-proteinannotator_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-proteinannotator_logo_dark.png

✅ Tests passed:

Run details

  • nf-core/tools version 4.1.0
  • Run at 2026-09-28 01:04:45

@vagkaratzas

Copy link
Copy Markdown
Collaborator

@tracelail you are still not a member of the nf-core github organization. Can you request that through the github-invitations slack channel?
I started the CI workflow tests, but when you become a member they will be starting automatically so you can debug faster ;)

@github-actions

github-actions Bot commented Sep 7, 2026 •

Copy link
Copy Markdown

❌ nf-test failed with latest Nextflow version

Note

Tests with Nextflow's latest version failed but it will not cause a CI workflow failure.
Please check if the failure is expected with newer (edge-)releases of Nextflow or if it needs fixing.

  • ❌ docker | latest-everything | Shard 6/7

See the full run for details.

@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.

Left another round of comments. These, along with the failing tests will hopefully guide you a bit better now.

Comment thread nextflow.config Resolved
when {
process {
"""
input[0] = "file://${moduleTestDir}/mini_taxdump.tar.gz"

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.

The proper way to do this is to push this file at: https://github.com/nf-core/test-datasets/tree/proteinannotator/testdata

Take a look into the rest of the local subworkflows for inspiration (e.g., functional_annotation nf-tests)

process "DIAMONDPREPARETAXA"

tag "modules"
tag "modules_"

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.

Suggested change
tag "modules_"

not a legit tag

Comment thread README.md Resolved
Comment thread README.md Resolved
Comment on lines +25 to +27
assert process.trace.tasks().size() == 1
assert process.out.refseq_fasta.size() == 1
assert snapshot(process.out).match()

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.

Suggested change
assert process.trace.tasks().size() == 1
assert process.out.refseq_fasta.size() == 1
assert snapshot(process.out).match()
{ assert snapshot(sanitizeOutput(process.out)).match() }

try using sanitizeOutput instead, which is the new standard way in nf-core assertions. This also covers the tool versions, which do not show anywhere in the snapshot atm. You will have to reproduce the snapshots.

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.

Update the rest of the test assertions accordingly as well


test("Should download ncbi refseq 'other' zipped protein fasta -- stub") {
tag "stub"
tag "CI"

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.

Remove these tag "CI" throughout

Comment on lines +7 to +11
tag "modules"
tag "modules_"
tag "ncbirefseqdownload"
tag "diamond"
tag "diamond_local"

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.

Suggested change
tag "modules"
tag "modules_"
tag "ncbirefseqdownload"
tag "diamond"
tag "diamond_local"
tag "modules"
tag "ncbirefseqdownload"

no diamond tool or diamond_local is called. update like this across

tags should include:
tag "modules" by default and then a tag for each module that is executed

description: NCBI taxonomy names file containing taxon names
pattern: "names.dmp"

- versions_curl:

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.

out of sync, should contain the new topic versions channel with the proper tool (tar)

- Remove genome/igenomes_base/igenomes_ignore from nextflow.config;
  stray template params not in schema (fixes schema_params lint failures)
- Add enum constraint to refseq_release (14 valid NCBI RefSeq divisions)
- Add format: file-path to taxondmp_zip/taxonmap
- Remove redundant default: false from skip_diamond schema entry
  (matches convention of other skip_* params; default lives in nextflow.config)
- Rewrite diamondpreparetaxa meta.yml to match actual main.nf: tar (not
  untar/diamond), path input type, topic-channel versions
- Trim unused grep/lbzip2 deps from diamondpreparetaxa environment.yml
- Remove stray <h1> from README.md
- Update usage.md with refseq_release valid values
- Clean up test tags across diamondpreparetaxa, ncbirefseqdownload,
  diamond, and functional_annotation tests (remove tag "modules_",
  stray tag "CI", mismatched tool tags)
@tracelail

tracelail commented Sep 8, 2026 •

Copy link
Copy Markdown
Author

Shard 6/7 has failed twice now with identical No space left on device . once at 06:19:39, once at 23:36:53, both on this branch.

Looking into it, it seems structural rather than flaky: tests/default.nf.test (the full -profile test run) always lands on shard 6, since sharding splits by file and there are only 6 test files across 7 shards. That test downloads every domain + functional annotation database and container concurrently (Pfam, FunFam, metagRoot, NMPfams, InterProScan, KOfamScan, refseq, taxdump), so it's by far the heaviest job in the suite.

I don't believe have visibility into the runner's disk config or whether this is a known issue. @vagkaratzas: do you know what I should do here, or who'd be the right person to flag it to?

(Used Claude to help investigate the logs and draft this comment.)

@vagkaratzas

Copy link
Copy Markdown
Collaborator

Shard 6/7 has failed twice now with identical No space left on device . once at 06:19:39, once at 23:36:53, both on this branch.

Looking into it, it seems structural rather than flaky: tests/default.nf.test (the full -profile test run) always lands on shard 6, since sharding splits by file and there are only 6 test files across 7 shards. That test downloads every domain + functional annotation database and container concurrently (Pfam, FunFam, metagRoot, NMPfams, InterProScan, KOfamScan, refseq, taxdump), so it's by far the heaviest job in the suite.

I don't believe have visibility into the runner's disk config or whether this is a known issue. @vagkaratzas: do you know what I should do here, or who'd be the right person to flag it to?

(Used Claude to help investigate the logs and draft this comment.)

By now, I've used Claude that much, that I can feel its "watermark" in code, text, video and audio..no worries :p

The problem happens in NFCORE_PROTEINANNOTATOR:PROTEINANNOTATOR:FUNCTIONAL_ANNOTATION:DIAMOND:NCBIREFSEQDOWNLOAD (download_refseq). The best solution would be to create a subset of that database to download, that has a couple of hits for your test data.

Tests should always run with the minimal viable data possible, so try to create that subset file and host it in the test-datasets proteinannotator branch along with the rest!

Fast and accurate ;)

@vagkaratzas

Copy link
Copy Markdown
Collaborator

Hi @tracelail !

Now with the test data up, this should be close to completion, right?

Looking into a 1.2.0 release soon with the Added KOfamScan for KEGG Ortholog functional annotation, and an InterProScan bug fix (along with the template merge).

Would be nice to have this completed by then, otherwise we could push this to an upcoming 1.3.0 release.

@tracelail

Copy link
Copy Markdown
Author

Hi @tracelail !

Now with the test data up, this should be close to completion, right?

Looking into a 1.2.0 release soon with the Added KOfamScan for KEGG Ortholog functional annotation, and an InterProScan bug fix (along with the template merge).

Would be nice to have this completed by then, otherwise we could push this to an upcoming 1.3.0 release.

I hope so! I am looking to resubmit for review by Monday at the latest.

@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.

Thanks for all the work on this, @tracelail — CI is green and the test fixtures from nf-core/test-datasets#2287 are wired in correctly for -profile test. There are still a few things to address before merging, mostly around what happens on real (non-test) runs, plus some leftovers from the dev merge. Details are in the inline comments; summary below.

Blocking

  1. DIAMOND must be opt-in: skip_diamond should default to true. Without -profile test, the defaults (refseq_release = 'complete', full prot.accession2taxid.gz) mean every run downloads ~97 GB of RefSeq protein FASTAs (1,907 files in refseq/release/complete/, measured today) plus ~12 GB for the accession2taxid map, then rebuilds the DB from scratch. Please flip the default in nextflow.config + nextflow_schema.json, and add a > [!WARNING] block in the DIAMOND section of docs/usage.md stating these sizes (similar to the InterProScan note), suggesting smaller releases (e.g. viral, bacteria) where appropriate.
  2. No way to reuse a built database. Every other DB in the pipeline has a "download or use existing local path" option. Please add a diamond_db param (path to an existing .dmnd); when set, skip NCBIREFSEQDOWNLOAD / DIAMONDPREPARETAXA / DIAMOND_MAKEDB. Then users can feed back the published downloaded_dbs/diamond/refseq.dmnd.
  3. Raw downloads are published to outdir. NCBIREFSEQDOWNLOAD and DIAMONDPREPARETAXA fall through to the default publishDir, so the whole RefSeq FASTA (another ~97 GB) lands in ncbirefseqdownload/ (see tests/default.nf.test.snap). Please disable publishing for both.
  4. CHANGELOG: the entry was added under the already-released v1.1.0 section, and 7 old 2025 entries were brought back by the merge. Please drop those and add one line under v1.2.0dev → Added in the current format, plus DIAMOND in the Dependencies table.
  5. docs/usage.md InterProScan section got broken by the merge (stray sentence, DIAMOND section inserted in the middle of it, and an "Updating the pipeline" block with InterProScan 5.72 that contradicts the 5.59-91.0 requirement). Please restore it from dev and place ### DIAMOND after it.
  6. subworkflows/local/functional_annotation/meta.yml: keywords moved into components, and original authors moved under maintainers. Please only append diamond to components and the new people to authors/maintainers.

Should fix

  1. ncbirefseqdownload: zcat | gzip recompression (use cat, concatenated gzip is valid gzip), process_low label for a ~97 GB job, apptainer missing from the container check, unpinned ca-certificates, browser user-agent spoofing towards NCBI, and the rclone sync branch (the one real users hit) is not covered by any test.
  2. Local module meta.yml files are out of sync with main.nf (versions.yml vs topic, missing refseq_fasta_url input, taxondmp_zip typed as string while it is a path input). diamondpreparetaxa container doesn't match its environment.yml.
  3. Params/schema: taxondmp_zip is a .tar.gz not a zip; params lack a diamond_ prefix unlike kofamscan_*/interproscan_*; wrong mimetypes; empty "default" on the group object; "taxonomic classification" wording is only true for outfmt 102. refseq_fasta_url is undocumented in usage.md.
  4. Tests: pipeline-level DIAMOND outputs are all empty files (md5 d41d8…) because the mini RefSeq has no homologs of the samplesheet proteins — a follow-up test-datasets PR adding a few homologous sequences (+ accession2taxid rows) would make this meaningful. functional_annotation test snapshots a non-existent workflow.out.versions. Minor path/tag inconsistencies inline.

Minor

  1. Unrelated changes (.vscode/ removal, nft-utils bump, ro-crate regen) — fine if intentional, but ideally separate.
  2. Please also cite the 2021 DIAMOND paper (Buchfink, Reuter, Drost, Nat Methods 2021, doi:10.1038/s41592-021-01101-x) in CITATIONS.md.
  3. diamond/makedb (2.1.16) and diamond/blastp (2.1.23) use different DIAMOND versions; worth aligning.
  4. Still open from the previous round: should DIAMOND live under functional_annotation or become its own taxonomy-oriented subworkflow? Since the taxonomy files are only useful for staxids/sscinames/LCA output, a separate subworkflow may be cleaner.

Comment thread nextflow.config
kofamscan_ko_list = null

// DIAMOND options
skip_diamond = false

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.

Blocking: please default this to true. Without -profile test, the current defaults download ~97 GB of RefSeq complete protein FASTAs + ~12 GB prot.accession2taxid.gz on every run and rebuild the DB from scratch. DIAMOND should be opt-in (same change needed in nextflow_schema.json).

Comment thread nextflow.config

// DIAMOND options
skip_diamond = false
refseq_release = 'complete'

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.

Related: please add a diamond_db param (existing .dmnd) next to these; when set, skip download/makedb entirely so the published downloaded_dbs/diamond/refseq.dmnd can be reused, like the InterProScan/KOfam *_db options.

Also consider prefixing these params with diamond_ (diamond_refseq_release, diamond_taxonmap, diamond_taxdump) for consistency with kofamscan_* / interproscan_*. taxondmp_zip is a .tar.gz, not a zip.

Comment thread conf/modules.config
]
}

withName: 'NFCORE_PROTEINANNOTATOR:PROTEINANNOTATOR:FUNCTIONAL_ANNOTATION:DIAMOND:DIAMOND_MAKEDB' {

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.

NCBIREFSEQDOWNLOAD and DIAMONDPREPARETAXA have no override here, so they fall back to the default publishDir. That publishes the full RefSeq FASTA (~97 GB for complete) to outdir/ncbirefseqdownload/ and the taxdump files to outdir/diamondpreparetaxa/ (visible in tests/default.nf.test.snap). Please add withName blocks with publishDir = [ enabled: false ] for both.

Comment thread CHANGELOG.md

- [[PR #52](https://github.com/nf-core/proteinannotator/pull/52)] Add option to turn off InterProScan for testing
- [[PR #51](https://github.com/nf-core/proteinannotator/pull/51)] Update to nf-core/tools v3.3.1
- [[PR #50](https://github.com/nf-core/proteinannotator/pull/50)] Add DIAMOND subworkflow to run [Diamond](https://github.com/bbuchfink/diamond)

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.

This landed under the released v1.1.0 section, and lines 31-38 re-add old 2025 entries from the dev merge. Please remove these 8 lines and add a single entry under v1.2.0dev → Added, in the current style:

- [#50](https://github.com/nf-core/proteinannotator/pull/50) - Added DIAMOND blastp homology search against NCBI RefSeq (opt-in via `--skip_diamond false`). (by @tracelail)

and add diamond to the Dependencies table.

Comment thread docs/usage.md

### InterProScan

Running [InterProScan](https://interproscan-docs.readthedocs.io/) requires a pre-prepared input database. You can provided this as one of two options:

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.

Merge leftover: this sentence contradicts the paragraph below (the DB is auto-downloaded by default) and has a typo. Please restore the InterProScan section from dev.

tag "diamond/makedb"
tag "diamond/blastp"

def testdata = 'https://raw.githubusercontent.com/nf-core/test-datasets/proteinannotator/testdata/diamond/'

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.

Please use params.pipelines_testdata_base_path + 'testdata/diamond/' instead of hard-coding the URL. Minor: indentation of the test on line 72 is off.

Comment thread tests/nextflow.config
aws.client.anonymous = true

process {
withName: NCBIREFSEQDOWNLOAD {

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.

Likely redundant: conf/test.config already caps resources via resourceLimits.

ch_taxonnodes,
ch_taxonnames
)
ch_diamond_db = DIAMOND_MAKEDB.out.db.first()

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.

Harmless, but the upstream processes only take values, so db is already a value channel and .first() is a no-op.

Comment thread CITATIONS.md

- [DIAMOND](https://github.com/bbuchfink/diamond)

> Buchfink B, Xie C, Huson DH, "Fast and sensitive protein alignment using DIAMOND", Nature Methods 12, 59-60 (2015). doi:10.1038/nmeth.3176

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.

Please also add the 2021 paper: Buchfink B, Reuter K, Drost HG, "Sensitive protein alignments at tree-of-life scale using DIAMOND", Nature Methods 18, 366-368 (2021). doi:10.1038/s41592-021-01101-x

"K25926.hmm:md5,0f5e05441ef0fa21de35a39d70f8de6b",
"metagroot_test.hmm.gz:md5,d23de95bf39fb6e27ffb266ce61ac98e",
"nmpfamsdb_test.hmm.gz:md5,ad7a094618ccfdaeed1c03e93f6abf1e",
"T1024.refseq.txt:md5,d41d8cd98f00b204e9800998ecf8427e",

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.

All DIAMOND outputs at pipeline level are empty files (md5 d41d8…): the mini RefSeq has no homologs of the samplesheet proteins. A follow-up test-datasets PR adding a few homologous sequences (+ accession2taxid rows) would make this test meaningful.

Note that once skip_diamond defaults to true, conf/test.config should set skip_diamond = false so the pipeline test keeps covering DIAMOND.

@vagkaratzas

Copy link
Copy Markdown
Collaborator

@tracelail let me know if the raised points make sense, and/or if you need help with any.

@tracelail

Copy link
Copy Markdown
Author

@tracelail let me know if the raised points make sense, and/or if you need help with any.

Yes all of the comments make sense. Recent bandwidth is low so changes are slow.

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.

7 participants