Add MacSyFinder modules for model management and protein system detection#10074
Add MacSyFinder modules for model management and protein system detection#10074
Conversation
|
@copilot , please take a look at this: https://nf-co.re/docs/tutorials/migrate_to_topics/update_modules and ensure that you use the topic channel to emit the versions, rather than creating the versions.yml |
|
Hi @SPPearce, thanks for pointing this! I've already modified it in my local environment. Could you kindly review this PR? Btw do you know how to fix the error from linter, which tells that md5sun for empty file is found? MSF produces this empty .err files intentionally and I can't change it |
|
to fix the linting error make sure that the file is actually emtpy (with |
|
this PR is also missing snapshot files |
|
Sure, after linting my changes, I will push the snapshots here |
01d681b to
ac2e0d4
Compare
LouisLeNezet
left a comment
There was a problem hiding this comment.
To fix the meta.yml you can use nf-core modules lint --fix module_name
Here is a few comment to improve the process.
|
|
||
| output: | ||
| path "models" , emit: models | ||
| tuple val("${task.process}"), val('macsyfinder'), eval('macsyfinder --version 2>&1 | head -1 | sed "s/^.*MacSyFinder //; s/ .*$//"'), topic: versions, emit: versions_macsyfinder |
There was a problem hiding this comment.
You can simplify by
| tuple val("${task.process}"), val('macsyfinder'), eval('macsyfinder --version 2>&1 | head -1 | sed "s/^.*MacSyFinder //; s/ .*$//"'), topic: versions, emit: versions_macsyfinder | |
| tuple val("${task.process}"), val('macsyfinder'), eval('macsyfinder --version 2>&1 | sed "1!d;s/^.*MacSyFinder //;s/ .*$//"'), topic: versions, emit: versions_macsyfinder |
| """ | ||
| macsyfinder \\ | ||
| --sequence-db ${proteins} \\ | ||
| --db-type ${meta.db_type ?: 'unordered'} \\ |
There was a problem hiding this comment.
This is not something that we usually do.
Is is a necessary input or is it optional.
If so either pass it through external arguments or via a dedicated value channel.
| tuple val("${task.process}"), val('macsyfinder'), eval('macsyfinder --version 2>&1 | head -1 | sed "s/^.*MacSyFinder //; s/ .*$//"'), topic: versions, emit: versions_macsyfinder | ||
| tuple val("${task.process}"), val('hmmer'), eval('hmmsearch -h | grep -o "^# HMMER [0-9.]*" | sed "s/^# HMMER *//"'), topic: versions, emit: versions_hmmer |
There was a problem hiding this comment.
Please improve as recommended above 😉
Co-authored-by: brovolia <40294728+brovolia@users.noreply.github.com>
Co-authored-by: brovolia <40294728+brovolia@users.noreply.github.com>
Co-authored-by: brovolia <40294728+brovolia@users.noreply.github.com>
Co-authored-by: brovolia <40294728+brovolia@users.noreply.github.com>
fc08383 to
9b390f7
Compare
|
I tried with automatic --fix, but it adds me the curly brackets and makes smth weird with my meta.yml. I am stucked here |
The |
Adds support for MacSyFinder, a tool for detecting macromolecular systems in protein datasets using HMM-based similarity search.
Implementation
Two submodules following the tool's workflow:
macsyfinder/download: Fetches models via macsydatamacsyfinder/search: Executes system detectiongembase(default),ordered_replicon,unorderedUsage
include { MACSYFINDER_DOWNLOAD } from './modules/nf-core/macsyfinder/download/main' include { MACSYFINDER_SEARCH } from './modules/nf-core/macsyfinder/search/main' MACSYFINDER_DOWNLOAD('TXSScan') input_ch = Channel.of([ [id: 'sample1', db_type: 'gembase'], file('proteins.faa') ]) MACSYFINDER_SEARCH( input_ch, MACSYFINDER_DOWNLOAD.out.models, 'TXSScan' )Technical Details
macsyfinder:2.1.6from biocontainersWarning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
api.anaconda.org/usr/bin/curl curl -s REDACTED(dns block)get.nextflow.io/usr/bin/curl curl -s REDACTED(dns block)https://api.github.com/repos/gem-pasteur/macsyfinder/usr/bin/curl curl -s REDACTED(http block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.