Skip to content

Commit cdd6f63

Browse files
Acquiesce to modelcif_validate being a shell script so the version detection in topic: is same as others | Add the named _msa.tsv from contemporary approach to the RF2NA stub
1 parent 51f92f6 commit cdd6f63

20 files changed

Lines changed: 169 additions & 458 deletions

conf/test_boltz.config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,9 @@ params {
3030
colabfold_db = "${projectDir}/assets/dummy_db_dir"
3131
boltz_db = "${projectDir}/assets/dummy_db_dir"
3232
}
33+
34+
process {
35+
withName: 'MMSEQS_COLABFOLDSEARCH|RUN_BOLTZ' {
36+
container = 'biocontainers/gawk:5.1.0'
37+
}
38+
}

conf/test_colabfold_download.config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,9 @@ params {
3030
use_msa_server = true
3131
input = params.pipelines_testdata_base_path + 'proteinfold/testdata/samplesheet/v2.0/samplesheet.csv'
3232
}
33+
34+
process {
35+
withName: 'ARIA2|UNTAR|COLABFOLD_BATCH' {
36+
container = 'biocontainers/gawk:5.1.0'
37+
}
38+
}

conf/test_colabfold_local.config

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,10 @@ params {
2828
colabfold_db = "${projectDir}/assets/dummy_db_dir"
2929
input = params.pipelines_testdata_base_path + 'proteinfold/testdata/samplesheet/v2.0/samplesheet.csv'
3030
}
31+
32+
process {
33+
withName: 'MMSEQS_COLABFOLDSEARCH|COLABFOLD_BATCH' {
34+
// TODO: consider a container that has mmseqs even in stub so the versions can be captured - KR
35+
container = 'biocontainers/gawk:5.1.0'
36+
}
37+
}

conf/test_split_fasta.config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,9 @@ params {
2929
colabfold_db = "${projectDir}/assets/dummy_db_dir"
3030
input = params.pipelines_testdata_base_path + 'proteinfold/testdata/samplesheet/v2.0/samplesheet_multimer.csv'
3131
}
32+
33+
process {
34+
withName: 'MMSEQS_COLABFOLDSEARCH|COLABFOLD_BATCH' {
35+
container = 'biocontainers/gawk:5.1.0'
36+
}
37+
}

modules/local/mmseqs_colabfoldsearch/main.nf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ process MMSEQS_COLABFOLDSEARCH {
1313
output:
1414
tuple val(meta), path("**.a3m"), emit: a3m
1515
tuple val("${task.process}"), val('colabfold_search'), eval("pip list | grep \"^colabfold\" | awk '{print \\\$2}' 2>/dev/null || echo \"unknown\""), emit: versions_colabfold_search, topic: versions
16-
tuple val("${task.process}"), val('mmseqs'), eval("mmseqs version"), emit: versions_mmseqs, topic: versions
16+
tuple val("${task.process}"), val('mmseqs'), eval("mmseqs version 2>/dev/null || echo \"unknown\""), emit: versions_mmseqs, topic: versions
1717

1818
when:
1919
task.ext.when == null || task.ext.when

modules/local/modelcif_validate/main.nf

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,37 +8,37 @@ process MODELCIF_VALIDATE {
88
tuple val(meta), path(mmcif)
99

1010
output:
11-
tuple val(meta), path(mmcif), emit: modelcif
12-
tuple val("${task.process}"), val('modelcif'), eval("python3 -c \"import modelcif; print(modelcif.__version__)\""), emit: versions_modelcif, topic: versions
11+
tuple val(meta), path(mmcif), emit: modelcif
12+
tuple val("${task.process}"), val('modelcif'), eval("python3 -c \"import modelcif; print(modelcif.__version__)\" 2>/dev/null || echo \"unknown\""), emit: versions_modelcif, topic: versions
1313
tuple val("${task.process}"), val('python'), eval("python3 --version | sed 's/Python //g'"), emit: versions_python, topic: versions
1414

1515
when:
1616
task.ext.when == null || task.ext.when
1717

1818
script:
1919
"""
20-
#!/usr/bin/env python3
21-
import warnings
22-
import modelcif.reader
23-
import sys
24-
25-
files = "${mmcif}".split()
26-
for f in files:
27-
with warnings.catch_warnings():
28-
warnings.filterwarnings('error')
29-
with open(f) as fh:
30-
systems = modelcif.reader.read(fh)
31-
if not systems:
32-
raise ValueError(f"No ModelCIF data blocks found in {f}")
33-
for system in systems:
34-
if not system.entities:
35-
raise ValueError(f"ModelCIF system in {f} has no entities")
36-
if not system.protocols:
37-
raise ValueError(f"ModelCIF system in {f} has no modeling protocol (missing _ma_protocol_step)")
38-
if not system.model_groups:
39-
raise ValueError(f"ModelCIF system in {f} has no model groups (missing _ma_model_group / _ma_model_list)")
40-
print(f'py-modelcif validation passed: {f}', file=sys.stderr)
41-
20+
python3 <<'EOF'
21+
import warnings
22+
import modelcif.reader
23+
import sys
24+
import modelcif
25+
26+
files = "${mmcif}".split()
27+
for f in files:
28+
with warnings.catch_warnings():
29+
warnings.filterwarnings('error')
30+
with open(f) as fh:
31+
systems = modelcif.reader.read(fh)
32+
if not systems:
33+
raise ValueError(f"No ModelCIF data blocks found in {f}")
34+
for system in systems:
35+
if not system.entities:
36+
raise ValueError(f"ModelCIF system in {f} has no entities")
37+
if not system.protocols:
38+
raise ValueError(f"ModelCIF system in {f} has no modeling protocol (missing _ma_protocol_step)")
39+
if not system.model_groups:
40+
raise ValueError(f"ModelCIF system in {f} has no model groups (missing _ma_model_group / _ma_model_list)")
41+
print(f'py-modelcif validation passed: {f}', file=sys.stderr)
42+
EOF
4243
"""
43-
4444
}

modules/local/run_rosettafold2na/main.nf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ PY
125125
touch "${meta.id}_rosettafold2na.pdb"
126126
touch raw/model_00.pdb
127127
touch "${meta.id}_plddt_mqc.tsv"
128+
touch "${meta.id}_rosettafold2na_msa.tsv"
128129
touch "${meta.id}_0_pae.tsv"
129130
"""
130131
}

tests/alphafold2_download.nf.test.snap

Lines changed: 4 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,6 @@
22
"-profile test_alphafold2_download": {
33
"content": [
44
25,
5-
{
6-
"ARIA2": {
7-
"aria2": "1.36.0"
8-
},
9-
"ARIA2_PDB_SEQRES": {
10-
"aria2": "1.36.0"
11-
},
12-
"COMBINE_UNIPROT": {
13-
"sed": 4.7
14-
},
15-
"DOWNLOAD_PDBMMCIF": {
16-
"sed": 4.9,
17-
"rsync": "3.3.0"
18-
},
19-
"GENERATE_REPORT": {
20-
"python": "3.12.7",
21-
"generate_report.py": "Python 3.12.7"
22-
},
23-
"RUN_ALPHAFOLD2": {
24-
"python": "3.11.14",
25-
"alphafold2": "unknown",
26-
"jax": "0.4.26",
27-
"jaxlib": "0.4.26",
28-
"numpy": "1.24.3",
29-
"biopython": 1.79
30-
},
31-
"Workflow": {
32-
"nf-core/proteinfold": "v2.1.0dev"
33-
}
34-
},
355
[
366
"DBs",
377
"DBs/alphafold2",
@@ -86,10 +56,8 @@
8656
"multiqc/multiqc_plots/.stub",
8757
"multiqc/multiqc_report.html",
8858
"pipeline_info",
89-
"pipeline_info/nf_core_proteinfold_software_mqc_versions.yml",
9059
"reports",
91-
"reports/T1024_alphafold2_report.html",
92-
"reports/T1026_alphafold2_report.html"
60+
"reports/test_alphafold2_report.html"
9361
],
9462
[
9563
"mgy_clusters.fa:md5,d41d8cd98f00b204e9800998ecf8427e",
@@ -132,14 +100,13 @@
132100
"T1026.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
133101
".stub:md5,d41d8cd98f00b204e9800998ecf8427e",
134102
".stub:md5,d41d8cd98f00b204e9800998ecf8427e",
135-
"T1024_alphafold2_report.html:md5,d41d8cd98f00b204e9800998ecf8427e",
136-
"T1026_alphafold2_report.html:md5,d41d8cd98f00b204e9800998ecf8427e"
103+
"test_alphafold2_report.html:md5,d41d8cd98f00b204e9800998ecf8427e"
137104
]
138105
],
139-
"timestamp": "2026-05-29T12:01:54.780944659",
106+
"timestamp": "2026-05-25T17:08:38.940859781",
140107
"meta": {
141108
"nf-test": "0.9.5",
142-
"nextflow": "26.04.0"
109+
"nextflow": "25.10.4"
143110
}
144111
}
145112
}

tests/alphafold2_split.nf.test.snap

Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,6 @@
22
"-profile test_alphafold2_split": {
33
"content": [
44
7,
5-
{
6-
"GENERATE_REPORT": {
7-
"python": "3.12.7",
8-
"generate_report.py": "Python 3.12.7"
9-
},
10-
"RUN_ALPHAFOLD2_MSA": {
11-
"python": "3.11.14",
12-
"alphafold2": "unknown",
13-
"numpy": "1.24.3",
14-
"biopython": 1.79
15-
},
16-
"RUN_ALPHAFOLD2_PRED": {
17-
"python": "3.11.14",
18-
"alphafold2": "unknown",
19-
"jax": "0.4.26",
20-
"jaxlib": "0.4.26",
21-
"numpy": "1.24.3",
22-
"biopython": 1.79
23-
},
24-
"Workflow": {
25-
"nf-core/proteinfold": "v2.1.0dev"
26-
}
27-
},
285
[
296
"alphafold2",
307
"alphafold2/split_msa_prediction",
@@ -62,10 +39,8 @@
6239
"multiqc/multiqc_plots/.stub",
6340
"multiqc/multiqc_report.html",
6441
"pipeline_info",
65-
"pipeline_info/nf_core_proteinfold_software_mqc_versions.yml",
6642
"reports",
67-
"reports/T1024_alphafold2_report.html",
68-
"reports/T1026_alphafold2_report.html"
43+
"reports/test_alphafold2_report.html"
6944
],
7045
[
7146
"T1024_alphafold2_msa.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
@@ -90,14 +65,13 @@
9065
"T1026.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
9166
".stub:md5,d41d8cd98f00b204e9800998ecf8427e",
9267
".stub:md5,d41d8cd98f00b204e9800998ecf8427e",
93-
"T1024_alphafold2_report.html:md5,d41d8cd98f00b204e9800998ecf8427e",
94-
"T1026_alphafold2_report.html:md5,d41d8cd98f00b204e9800998ecf8427e"
68+
"test_alphafold2_report.html:md5,d41d8cd98f00b204e9800998ecf8427e"
9569
]
9670
],
97-
"timestamp": "2026-05-29T12:02:08.331526798",
71+
"timestamp": "2026-05-25T17:08:55.525675542",
9872
"meta": {
9973
"nf-test": "0.9.5",
100-
"nextflow": "26.04.0"
74+
"nextflow": "25.10.4"
10175
}
10276
}
10377
}

tests/alphafold3.nf.test.snap

Lines changed: 30 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,13 @@
11
{
22
"-profile test_alphafold3_standard": {
33
"content": [
4-
9,
5-
{
6-
"FASTA_TO_ALPHAFOLD3_JSON": {
7-
"python": "3.13.7"
8-
},
9-
"GENERATE_REPORT": {
10-
"python": "3.12.7",
11-
"generate_report.py": "Python 3.12.7"
12-
},
13-
"RUN_ALPHAFOLD3_DATAPIPELINE": {
14-
"python": "3.11.12",
15-
"alphafold3": "unknown",
16-
"hmmer": 3.4
17-
},
18-
"RUN_ALPHAFOLD3_INFERENCE": {
19-
"python": "3.11.12",
20-
"alphafold3": "unknown",
21-
"jax": "0.4.34",
22-
"jaxlib": "0.4.34",
23-
"numpy": "2.1.3",
24-
"biopython": 1.85,
25-
"rdkit": "2024.03.5"
26-
},
27-
"Workflow": {
28-
"nf-core/proteinfold": "v2.1.0dev"
29-
}
30-
},
4+
11,
315
[
326
"alphafold3",
337
"alphafold3/T1024",
348
"alphafold3/T1024/T1024_alphafold3_msa.tsv",
359
"alphafold3/T1024/T1024_chainwise_ipsae.tsv",
3610
"alphafold3/T1024/T1024_chainwise_iptm.tsv",
37-
"alphafold3/T1024/T1024_data.json",
3811
"alphafold3/T1024/T1024_ipsae.tsv",
3912
"alphafold3/T1024/T1024_iptm.tsv",
4013
"alphafold3/T1024/T1024_plddt.tsv",
@@ -45,7 +18,6 @@
4518
"alphafold3/T1026/T1026_alphafold3_msa.tsv",
4619
"alphafold3/T1026/T1026_chainwise_ipsae.tsv",
4720
"alphafold3/T1026/T1026_chainwise_iptm.tsv",
48-
"alphafold3/T1026/T1026_data.json",
4921
"alphafold3/T1026/T1026_ipsae.tsv",
5022
"alphafold3/T1026/T1026_iptm.tsv",
5123
"alphafold3/T1026/T1026_plddt.tsv",
@@ -54,27 +26,37 @@
5426
"alphafold3/T1026/paes/T1026_0_pae.tsv",
5527
"alphafold3/top_ranked_structures",
5628
"alphafold3/top_ranked_structures/T1024.cif",
29+
"alphafold3/top_ranked_structures/T1024.pdb",
5730
"alphafold3/top_ranked_structures/T1026.cif",
31+
"alphafold3/top_ranked_structures/T1026.pdb",
5832
"fasta",
5933
"fasta/T1024.json",
6034
"fasta/T1026.json",
35+
"mmcif2pdb",
36+
"mmcif2pdb/T1024_ranked_1.cif.pdb",
37+
"mmcif2pdb/T1024_ranked_2.cif.pdb",
38+
"mmcif2pdb/T1024_ranked_3.cif.pdb",
39+
"mmcif2pdb/T1024_ranked_4.cif.pdb",
40+
"mmcif2pdb/T1024_ranked_5.cif.pdb",
41+
"mmcif2pdb/T1026_ranked_1.cif.pdb",
42+
"mmcif2pdb/T1026_ranked_2.cif.pdb",
43+
"mmcif2pdb/T1026_ranked_3.cif.pdb",
44+
"mmcif2pdb/T1026_ranked_4.cif.pdb",
45+
"mmcif2pdb/T1026_ranked_5.cif.pdb",
6146
"multiqc",
6247
"multiqc/multiqc_data",
6348
"multiqc/multiqc_data/.stub",
6449
"multiqc/multiqc_plots",
6550
"multiqc/multiqc_plots/.stub",
6651
"multiqc/multiqc_report.html",
6752
"pipeline_info",
68-
"pipeline_info/nf_core_proteinfold_software_mqc_versions.yml",
6953
"reports",
70-
"reports/T1024_alphafold3_report.html",
71-
"reports/T1026_alphafold3_report.html"
54+
"reports/test_alphafold2_report.html"
7255
],
7356
[
7457
"T1024_alphafold3_msa.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
7558
"T1024_chainwise_ipsae.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
7659
"T1024_chainwise_iptm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
77-
"T1024_data.json:md5,d41d8cd98f00b204e9800998ecf8427e",
7860
"T1024_ipsae.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
7961
"T1024_iptm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
8062
"T1024_plddt.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
@@ -83,26 +65,36 @@
8365
"T1026_alphafold3_msa.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
8466
"T1026_chainwise_ipsae.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
8567
"T1026_chainwise_iptm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
86-
"T1026_data.json:md5,d41d8cd98f00b204e9800998ecf8427e",
8768
"T1026_ipsae.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
8869
"T1026_iptm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
8970
"T1026_plddt.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
9071
"T1026_ptm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
9172
"T1026_0_pae.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
9273
"T1024.cif:md5,d41d8cd98f00b204e9800998ecf8427e",
74+
"T1024.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
9375
"T1026.cif:md5,d41d8cd98f00b204e9800998ecf8427e",
76+
"T1026.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
9477
"T1024.json:md5,d41d8cd98f00b204e9800998ecf8427e",
9578
"T1026.json:md5,d41d8cd98f00b204e9800998ecf8427e",
79+
"T1024_ranked_1.cif.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
80+
"T1024_ranked_2.cif.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
81+
"T1024_ranked_3.cif.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
82+
"T1024_ranked_4.cif.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
83+
"T1024_ranked_5.cif.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
84+
"T1026_ranked_1.cif.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
85+
"T1026_ranked_2.cif.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
86+
"T1026_ranked_3.cif.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
87+
"T1026_ranked_4.cif.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
88+
"T1026_ranked_5.cif.pdb:md5,d41d8cd98f00b204e9800998ecf8427e",
9689
".stub:md5,d41d8cd98f00b204e9800998ecf8427e",
9790
".stub:md5,d41d8cd98f00b204e9800998ecf8427e",
98-
"T1024_alphafold3_report.html:md5,d41d8cd98f00b204e9800998ecf8427e",
99-
"T1026_alphafold3_report.html:md5,d41d8cd98f00b204e9800998ecf8427e"
91+
"test_alphafold2_report.html:md5,d41d8cd98f00b204e9800998ecf8427e"
10092
]
10193
],
102-
"timestamp": "2026-05-29T12:02:22.195461228",
94+
"timestamp": "2026-05-25T17:09:14.982490984",
10395
"meta": {
10496
"nf-test": "0.9.5",
105-
"nextflow": "26.04.0"
97+
"nextflow": "25.10.4"
10698
}
10799
}
108100
}

0 commit comments

Comments
 (0)