diff --git a/modules/nf-core/foldmason/createdb/environment.yml b/modules/nf-core/foldmason/createdb/environment.yml new file mode 100644 index 00000000000..80d4dd371d9 --- /dev/null +++ b/modules/nf-core/foldmason/createdb/environment.yml @@ -0,0 +1,5 @@ +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::foldmason=2.7bd21ed diff --git a/modules/nf-core/foldmason/createdb/main.nf b/modules/nf-core/foldmason/createdb/main.nf new file mode 100644 index 00000000000..c54b45f3f06 --- /dev/null +++ b/modules/nf-core/foldmason/createdb/main.nf @@ -0,0 +1,47 @@ +process FOLDMASON_CREATEDB { + tag "$meta.id" + label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a8/a88d162c3f39a1518d48c3faec235e6fcde750586da868b62fc5f0a08a89aa9d/data' : + 'community.wave.seqera.io/library/foldmason:2.7bd21ed--e7f739473ad6578d' }" + + input: + tuple val(meta) , path(structures) + + output: + tuple val(meta), path("${prefix}*"), emit: db + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + """ + foldmason createdb \\ + ${structures} \\ + ${prefix} \\ + $args \\ + --threads $task.cpus + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + foldmason: \$(foldmason | grep "foldmason Version:" | cut -d":" -f 2 | awk '{\$1=\$1;print}') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + foldmason: \$(foldmason | grep "foldmason Version:" | cut -d":" -f 2 | awk '{\$1=\$1;print}') + END_VERSIONS + """ +} diff --git a/modules/nf-core/foldmason/createdb/meta.yml b/modules/nf-core/foldmason/createdb/meta.yml new file mode 100644 index 00000000000..fd47efe2f90 --- /dev/null +++ b/modules/nf-core/foldmason/createdb/meta.yml @@ -0,0 +1,48 @@ +name: "foldmason_createdb" +description: Creates a database for Foldmason. +keywords: + - alignment + - MSA + - genomics + - structure +tools: + - "foldmason": + description: "Multiple Protein Structure Alignment at Scale with FoldMason" + homepage: "https://github.com/steineggerlab/foldmason" + documentation: "https://github.com/steineggerlab/foldmason" + tool_dev_url: "https://github.com/steineggerlab/foldmason" + doi: "10.1101/2024.08.01.606130" + licence: ["GPL v3"] + identifier: biotools:foldmason + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - structures: + type: file + description: Input protein structures in `PDB` or `mmCIF` format. + pattern: "*.{pdb,mmcif}" + +output: + - db: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "${prefix}*": + type: file + description: All database files created by Foldmason + pattern: "*" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@luisas" +maintainers: + - "@luisas" diff --git a/modules/nf-core/foldmason/createdb/tests/main.nf.test b/modules/nf-core/foldmason/createdb/tests/main.nf.test new file mode 100644 index 00000000000..9ac567a7504 --- /dev/null +++ b/modules/nf-core/foldmason/createdb/tests/main.nf.test @@ -0,0 +1,66 @@ +nextflow_process { + + name "Test Process FOLDMASON_CREATEDB" + script "../main.nf" + process "FOLDMASON_CREATEDB" + + tag "modules" + tag "modules_nfcore" + tag "foldmason" + tag "foldmason/createdb" + tag "untar" + + setup { + + run("UNTAR") { + script "../../../../../modules/nf-core/untar/main.nf" + process { + """ + archive = file("https://raw.githubusercontent.com/nf-core/test-datasets/multiplesequencealign/testdata/af2_structures/seatoxin-ref.tar.gz", checkIfExists: true) + input[0] = Channel.of(tuple([id:'test'], archive)) + """ + } + } + } + + test("seatoxin") { + + when { + + process { + """ + input[0] = UNTAR.out.untar.map { meta,dir -> [meta, file(dir).listFiles().collect()]} + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("seatoxin - stub ") { + + when { + + process { + """ + input[0] = UNTAR.out.untar.map { meta,dir -> [meta, file(dir).listFiles().collect()]} + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/foldmason/createdb/tests/main.nf.test.snap b/modules/nf-core/foldmason/createdb/tests/main.nf.test.snap new file mode 100644 index 00000000000..dce5175dc90 --- /dev/null +++ b/modules/nf-core/foldmason/createdb/tests/main.nf.test.snap @@ -0,0 +1,128 @@ +{ + "seatoxin - stub ": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + [ + "test:md5,941321067eae439b4a8ccf6425d84751", + "test.dbtype:md5,f1d3ff8443297732862df21dc4e57262", + "test.index:md5,8d3c65fcda8b216fff2f1eb2c4dcc015", + "test.lookup:md5,83047fddf9b6fbaa99f00cdf5a7dd274", + "test.source:md5,7968a6cb6577ead230c31910380af948", + "test_ca:md5,2738c516c1a15238a5c62c4ba6dee0b9", + "test_ca.dbtype:md5,3fd85f9ee7ca8882c8caa747d0eef0b3", + "test_ca.index:md5,cfdf544c3aa6d7e2034e4a01dac1d0ba", + "test_h:md5,ab9ce99a99fc6ba6a98c4460410b6a16", + "test_h.dbtype:md5,740bab4f9ec8808aedb68d6b1281aeb2", + "test_h.index:md5,dc7c33ddb6a3dc54ad033120ef4c9af4", + "test_ss:md5,75d329b63c0383c3e43090ba89238e14", + "test_ss.dbtype:md5,f1d3ff8443297732862df21dc4e57262", + "test_ss.index:md5,8d3c65fcda8b216fff2f1eb2c4dcc015" + ] + ] + ], + "1": [ + "versions.yml:md5,6ebe56979a45b356d374cfc65c8a2b45" + ], + "db": [ + [ + { + "id": "test" + }, + [ + "test:md5,941321067eae439b4a8ccf6425d84751", + "test.dbtype:md5,f1d3ff8443297732862df21dc4e57262", + "test.index:md5,8d3c65fcda8b216fff2f1eb2c4dcc015", + "test.lookup:md5,83047fddf9b6fbaa99f00cdf5a7dd274", + "test.source:md5,7968a6cb6577ead230c31910380af948", + "test_ca:md5,2738c516c1a15238a5c62c4ba6dee0b9", + "test_ca.dbtype:md5,3fd85f9ee7ca8882c8caa747d0eef0b3", + "test_ca.index:md5,cfdf544c3aa6d7e2034e4a01dac1d0ba", + "test_h:md5,ab9ce99a99fc6ba6a98c4460410b6a16", + "test_h.dbtype:md5,740bab4f9ec8808aedb68d6b1281aeb2", + "test_h.index:md5,dc7c33ddb6a3dc54ad033120ef4c9af4", + "test_ss:md5,75d329b63c0383c3e43090ba89238e14", + "test_ss.dbtype:md5,f1d3ff8443297732862df21dc4e57262", + "test_ss.index:md5,8d3c65fcda8b216fff2f1eb2c4dcc015" + ] + ] + ], + "versions": [ + "versions.yml:md5,6ebe56979a45b356d374cfc65c8a2b45" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-09T15:11:27.426024133" + }, + "seatoxin": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + [ + "test:md5,941321067eae439b4a8ccf6425d84751", + "test.dbtype:md5,f1d3ff8443297732862df21dc4e57262", + "test.index:md5,8d3c65fcda8b216fff2f1eb2c4dcc015", + "test.lookup:md5,83047fddf9b6fbaa99f00cdf5a7dd274", + "test.source:md5,7968a6cb6577ead230c31910380af948", + "test_ca:md5,2738c516c1a15238a5c62c4ba6dee0b9", + "test_ca.dbtype:md5,3fd85f9ee7ca8882c8caa747d0eef0b3", + "test_ca.index:md5,cfdf544c3aa6d7e2034e4a01dac1d0ba", + "test_h:md5,ab9ce99a99fc6ba6a98c4460410b6a16", + "test_h.dbtype:md5,740bab4f9ec8808aedb68d6b1281aeb2", + "test_h.index:md5,dc7c33ddb6a3dc54ad033120ef4c9af4", + "test_ss:md5,75d329b63c0383c3e43090ba89238e14", + "test_ss.dbtype:md5,f1d3ff8443297732862df21dc4e57262", + "test_ss.index:md5,8d3c65fcda8b216fff2f1eb2c4dcc015" + ] + ] + ], + "1": [ + "versions.yml:md5,6ebe56979a45b356d374cfc65c8a2b45" + ], + "db": [ + [ + { + "id": "test" + }, + [ + "test:md5,941321067eae439b4a8ccf6425d84751", + "test.dbtype:md5,f1d3ff8443297732862df21dc4e57262", + "test.index:md5,8d3c65fcda8b216fff2f1eb2c4dcc015", + "test.lookup:md5,83047fddf9b6fbaa99f00cdf5a7dd274", + "test.source:md5,7968a6cb6577ead230c31910380af948", + "test_ca:md5,2738c516c1a15238a5c62c4ba6dee0b9", + "test_ca.dbtype:md5,3fd85f9ee7ca8882c8caa747d0eef0b3", + "test_ca.index:md5,cfdf544c3aa6d7e2034e4a01dac1d0ba", + "test_h:md5,ab9ce99a99fc6ba6a98c4460410b6a16", + "test_h.dbtype:md5,740bab4f9ec8808aedb68d6b1281aeb2", + "test_h.index:md5,dc7c33ddb6a3dc54ad033120ef4c9af4", + "test_ss:md5,75d329b63c0383c3e43090ba89238e14", + "test_ss.dbtype:md5,f1d3ff8443297732862df21dc4e57262", + "test_ss.index:md5,8d3c65fcda8b216fff2f1eb2c4dcc015" + ] + ] + ], + "versions": [ + "versions.yml:md5,6ebe56979a45b356d374cfc65c8a2b45" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-09T15:11:15.375341633" + } +} \ No newline at end of file diff --git a/modules/nf-core/foldmason/easymsa/environment.yml b/modules/nf-core/foldmason/easymsa/environment.yml index 64a5b3671d4..fa2909a9491 100644 --- a/modules/nf-core/foldmason/easymsa/environment.yml +++ b/modules/nf-core/foldmason/easymsa/environment.yml @@ -1,8 +1,6 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda dependencies: - - bioconda::foldmason=1.763a428 + - bioconda::foldmason=2.7bd21ed - conda-forge::pigz=2.8 diff --git a/modules/nf-core/foldmason/easymsa/main.nf b/modules/nf-core/foldmason/easymsa/main.nf index bb1737f05ef..b4870da0d10 100644 --- a/modules/nf-core/foldmason/easymsa/main.nf +++ b/modules/nf-core/foldmason/easymsa/main.nf @@ -3,7 +3,10 @@ process FOLDMASON_EASYMSA { label 'process_medium' conda "${moduleDir}/environment.yml" - container "community.wave.seqera.io/library/foldmason_pigz:54849036d93c89ed" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'oras://community.wave.seqera.io/library/foldmason_pigz:d8dfffbc768abe03': + 'community.wave.seqera.io/library/foldmason_pigz:88809eb5649534b0' }" + input: tuple val(meta) , path(pdbs) diff --git a/modules/nf-core/foldmason/easymsa/tests/main.nf.test.snap b/modules/nf-core/foldmason/easymsa/tests/main.nf.test.snap index 384d2021284..4951f29bff3 100644 --- a/modules/nf-core/foldmason/easymsa/tests/main.nf.test.snap +++ b/modules/nf-core/foldmason/easymsa/tests/main.nf.test.snap @@ -19,7 +19,7 @@ ] ], "2": [ - "versions.yml:md5,da4694171d1b0bb9559f7049334126ed" + "versions.yml:md5,a29f8390ef8ef7b90ad85d99589d97e6" ], "msa_3di": [ [ @@ -38,7 +38,7 @@ ] ], "versions": [ - "versions.yml:md5,da4694171d1b0bb9559f7049334126ed" + "versions.yml:md5,a29f8390ef8ef7b90ad85d99589d97e6" ] } ], @@ -46,7 +46,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.2" }, - "timestamp": "2024-12-04T10:56:12.836231763" + "timestamp": "2024-12-09T15:22:29.135105042" }, "Test on seatoxin dataset - uncompressed": { "content": [ @@ -68,7 +68,7 @@ ] ], "2": [ - "versions.yml:md5,da4694171d1b0bb9559f7049334126ed" + "versions.yml:md5,a29f8390ef8ef7b90ad85d99589d97e6" ], "msa_3di": [ [ @@ -87,7 +87,7 @@ ] ], "versions": [ - "versions.yml:md5,da4694171d1b0bb9559f7049334126ed" + "versions.yml:md5,a29f8390ef8ef7b90ad85d99589d97e6" ] } ], @@ -95,7 +95,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.2" }, - "timestamp": "2024-12-04T10:55:41.89060384" + "timestamp": "2024-12-09T15:21:46.797852094" }, "Test on seatoxin dataset - compressed": { "content": [ @@ -117,7 +117,7 @@ ] ], "2": [ - "versions.yml:md5,da4694171d1b0bb9559f7049334126ed" + "versions.yml:md5,a29f8390ef8ef7b90ad85d99589d97e6" ], "msa_3di": [ [ @@ -136,7 +136,7 @@ ] ], "versions": [ - "versions.yml:md5,da4694171d1b0bb9559f7049334126ed" + "versions.yml:md5,a29f8390ef8ef7b90ad85d99589d97e6" ] } ], @@ -144,7 +144,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.2" }, - "timestamp": "2024-12-04T10:55:52.135344443" + "timestamp": "2024-12-09T15:21:58.958099076" }, "Test on seatoxin dataset - guide_tree": { "content": [ @@ -154,7 +154,7 @@ { "id": "test" }, - "test_3di.fa:md5,46fa911158bb736c054dfad0378832b4" + "test_3di.fa:md5,7c591bb57218fc00fdcb0b48306afc08" ] ], "1": [ @@ -162,18 +162,18 @@ { "id": "test" }, - "test_aa.fa:md5,7ada48f0152342787a46505b9e8a2fae" + "test_aa.fa:md5,e18523697101ff5d474ce4b6d0188731" ] ], "2": [ - "versions.yml:md5,da4694171d1b0bb9559f7049334126ed" + "versions.yml:md5,a29f8390ef8ef7b90ad85d99589d97e6" ], "msa_3di": [ [ { "id": "test" }, - "test_3di.fa:md5,46fa911158bb736c054dfad0378832b4" + "test_3di.fa:md5,7c591bb57218fc00fdcb0b48306afc08" ] ], "msa_aa": [ @@ -181,11 +181,11 @@ { "id": "test" }, - "test_aa.fa:md5,7ada48f0152342787a46505b9e8a2fae" + "test_aa.fa:md5,e18523697101ff5d474ce4b6d0188731" ] ], "versions": [ - "versions.yml:md5,da4694171d1b0bb9559f7049334126ed" + "versions.yml:md5,a29f8390ef8ef7b90ad85d99589d97e6" ] } ], @@ -193,6 +193,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.2" }, - "timestamp": "2024-12-04T10:56:02.473496089" + "timestamp": "2024-12-09T15:22:11.0778334" } } \ No newline at end of file