Skip to content
Merged
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Enhancements & fixes

- [[PR ##573](https://github.com/nf-core/proteinfold/pull/573)] - Adds affiliations for UNSW Structural Biology Facility (SBF).
- [[PR #573](https://github.com/nf-core/proteinfold/pull/573)] - Adds affiliations for UNSW Structural Biology Facility (SBF).
- [[PR #588](https://github.com/nf-core/proteinfold/pulls/588)] - Add `--random_seed` for AF2, Boltz, and ColabFold, removing and replacing `--alphafold2_random_seed`.
- [[PR #597](https://github.com/nf-core/proteinfold/pull/249)] - Update pipeline template to [nf-core/tools 4.0.2](https://github.com/nf-core/tools/releases/tag/4.0.2).
- [[#598](https://github.com/nf-core/proteinfold/issues/598)] - Remove workflow JSON generation.
- [[#600](https://github.com/nf-core/proteinfold/issues/600)] - Fix multiqc reports publication and centralize the config in `modules.config`.

| Old parameter | New parameter |
| -------------------------- | --------------- |
Expand Down
2 changes: 1 addition & 1 deletion bin/extract_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ def extract_structs_plddt_to_tsv(name, structures):
plddt_rows = [["Positions"] + rank_names]
res_id_col = list(range(len(plddt_cols[0])))
plddt_rows.extend(zip(res_id_col, *plddt_cols)) # Combine lists column-wise to make rows
write_tsv(f"{name}_plddt.tsv", plddt_rows)
write_tsv(f"{name}_plddt_mqc.tsv", plddt_rows)

def read_pkl(name, pkl_files):
"""
Expand Down
1 change: 1 addition & 0 deletions conf/modules.config
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ process {
}

withName: 'MULTIQC' {
ext.prefix = { "${meta.model}" }
ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' }
publishDir = [
path: { "${params.outdir}/multiqc" },
Expand Down
12 changes: 4 additions & 8 deletions conf/modules_alphafold2.config
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,6 @@ process {
saveAs: { filename -> filename.equals('versions.yml') ? null : filename },
]
}
withName: 'NFCORE_PROTEINFOLD:POST_PROCESSING:MULTIQC' {
publishDir = [
path: { "${params.outdir}/multiqc" },
mode: 'copy',
saveAs: { filename -> filename.equals('versions.yml') ? null : "alphafold2_$filename" }
]
}

// Configure UNTAR/GUNZIP processes to use correct directory names
withName: '.*ARIA2_ALPHAFOLD2_PARAMS:UNTAR' {
ext.prefix = { "${params.alphafold2_params_prefix}" }
Expand Down Expand Up @@ -104,6 +96,8 @@ process {
saveAs: { filename ->
if(filename.endsWith('_pae.tsv')){
"paes/$filename"
} else if(filename.endsWith('_plddt_mqc.tsv')){
filename.replaceAll(/_plddt_mqc\.tsv$/, '_plddt.tsv')
} else { filename }
},
pattern: '*.tsv'
Expand Down Expand Up @@ -161,6 +155,8 @@ process {
saveAs: { filename ->
if(filename.endsWith('_pae.tsv')){
"paes/$filename"
} else if(filename.endsWith('_plddt_mqc.tsv')){
filename.replaceAll(/_plddt_mqc\.tsv$/, '_plddt.tsv')
} else { filename }
},
pattern: '*.tsv'
Expand Down
10 changes: 2 additions & 8 deletions conf/modules_alphafold3.config
Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,6 @@ process {
},
]
}
withName: 'NFCORE_PROTEINFOLD:ALPHAFOLD3:MULTIQC' {
publishDir = [
path: { "${params.outdir}/multiqc" },
mode: 'copy',
saveAs: { filename -> filename.equals('versions.yml') ? null : "alphafold3_$filename" }
]
}
}

//
Expand All @@ -97,7 +90,8 @@ process {
[
path: { "${params.outdir}/alphafold3/${meta.id}" },
mode: 'copy',
pattern: '*_plddt.tsv'
saveAs: { filename -> filename.replaceAll(/_plddt_mqc\.tsv$/, '_plddt.tsv') },
pattern: '*_plddt_mqc.tsv'
],
[
path: { "${params.outdir}/alphafold3/${meta.id}" },
Expand Down
12 changes: 2 additions & 10 deletions conf/modules_boltz.config
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ process {
[
path: { "${params.outdir}/boltz/${meta.id}" },
mode: 'copy',
pattern: '*_plddt.tsv'
saveAs: { filename -> filename.replaceAll(/_plddt_mqc\.tsv$/, '_plddt.tsv') },
pattern: '*_plddt_mqc.tsv'
],
[
path: { "${params.outdir}/boltz/${meta.id}" },
Expand Down Expand Up @@ -110,15 +111,6 @@ process {
],
]
}

withName: 'NFCORE_PROTEINFOLD:BOLTZ:MULTIQC' {
publishDir = [
path: { "${params.outdir}/multiqc" },
mode: 'copy',
saveAs: { filename -> filename.equals('versions.yml') ? null : "boltz_$filename" }
]
}

withName: 'BOLTZ_FASTA|MULTIFASTA_TO_CSV|SPLIT_MSA' {
cpus = 1
memory = 2.GB
Expand Down
10 changes: 2 additions & 8 deletions conf/modules_colabfold.config
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,6 @@
*/

process {
withName: 'NFCORE_PROTEINFOLD:COLABFOLD:MULTIQC' {
publishDir = [
path: { "${params.outdir}/multiqc" },
mode: 'copy',
saveAs: { filename -> filename.equals('versions.yml') ? null : "colabfold_$filename" }
]
}

// Configure UNTAR processes to use correct directory names
withName: '.*ARIA2_COLABFOLD_PARAMS:UNTAR' {
ext.prefix = { "${params.colabfold_params_prefix}" }
Expand Down Expand Up @@ -52,6 +44,8 @@ process {
saveAs: { filename ->
if(filename.endsWith('_pae.tsv')){
"paes/$filename"
} else if(filename.endsWith('_plddt_mqc.tsv')){
filename.replaceAll(/_plddt_mqc\.tsv$/, '_plddt.tsv')
} else { filename }
},
pattern: '*.tsv'
Expand Down
12 changes: 2 additions & 10 deletions conf/modules_esmfold.config
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ process {
[
path: { "${params.outdir}/esmfold/${meta.id}" },
mode: 'copy',
pattern: '*_plddt.tsv'
saveAs: { filename -> filename.replaceAll(/_plddt_mqc\.tsv$/, '_plddt.tsv') },
pattern: '*_plddt_mqc.tsv'
],
[
path: { "${params.outdir}/esmfold/top_ranked_structures" },
Expand All @@ -40,13 +41,4 @@ process {
]
]
}

withName: 'NFCORE_PROTEINFOLD:ESMFOLD:MULTIQC' {
publishDir = [
path: { "${params.outdir}/multiqc" },
mode: 'copy',
saveAs: { filename -> filename.equals('versions.yml') ? null : "esmfold_$filename" }
]
}

}
11 changes: 2 additions & 9 deletions conf/modules_helixfold3.config
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,8 @@ process {
[
path: { "${params.outdir}/helixfold3/${meta.id}" },
mode: 'copy',
pattern: '*_plddt.tsv'
saveAs: { filename -> filename.replaceAll(/_plddt_mqc\.tsv$/, '_plddt.tsv') },
pattern: '*_plddt_mqc.tsv'
],
[
path: { "${params.outdir}/helixfold3/${meta.id}" },
Expand Down Expand Up @@ -155,12 +156,4 @@ process {
]
]
}

withName: 'NFCORE_PROTEINFOLD:HELIXFOLD3:MULTIQC' {
publishDir = [
path: { "${params.outdir}/multiqc" },
mode: 'copy',
saveAs: { filename -> filename.equals('versions.yml') ? null : "helixfold3_$filename" }
]
}
}
11 changes: 2 additions & 9 deletions conf/modules_rosettafold2na.config
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ process {
[
path: { "${params.outdir}/rosettafold2na/${meta.id}" },
mode: 'copy',
pattern: '*_plddt.tsv'
saveAs: { filename -> filename.replaceAll(/_plddt_mqc\.tsv$/, '_plddt.tsv') },
pattern: '*_plddt_mqc.tsv'
],
[
path: { "${params.outdir}/rosettafold2na/${meta.id}" },
Expand Down Expand Up @@ -74,12 +75,4 @@ process {
]
]
}

withName: 'NFCORE_PROTEINFOLD:ROSETTAFOLD2NA:MULTIQC' {
publishDir = [
path: { "${params.outdir}/multiqc" },
mode: 'copy',
saveAs: { filename -> filename.equals('versions.yml') ? null : "rosettafold2na_$filename" }
]
}
}
11 changes: 2 additions & 9 deletions conf/modules_rosettafold_all_atom.config
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ process {
[
path: { "${params.outdir}/rosettafold_all_atom/${meta.id}" },
mode: 'copy',
pattern: '*_plddt.tsv'
saveAs: { filename -> filename.replaceAll(/_plddt_mqc\.tsv$/, '_plddt.tsv') },
pattern: '*_plddt_mqc.tsv'
],
[
path: { "${params.outdir}/rosettafold_all_atom/${meta.id}" },
Expand Down Expand Up @@ -54,14 +55,6 @@ process {
]
}

withName: 'NFCORE_PROTEINFOLD:ROSETTAFOLD_ALL_ATOM:MULTIQC' {
publishDir = [
path: { "${params.outdir}/multiqc" },
mode: 'copy',
saveAs: { filename -> filename.equals('versions.yml') ? null : "rosettafold_all_atom_$filename" }
]
}

// Configure UNTAR processes to use correct directory names
withName: '.*PREPARE_ROSETTAFOLD_ALL_ATOM_DBS:ARIA2_WEIGHTS:ARIA2' {
publishDir = [
Expand Down
22 changes: 11 additions & 11 deletions modules/local/colabfold_batch/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,16 @@ process COLABFOLD_BATCH {
val numRec

output:
path ("raw/**") , emit: raw
tuple val(meta), path ("${meta.id}_colabfold.pdb") , emit: top_ranked_pdb
tuple val(meta), path ("raw/*relaxed_rank_*.pdb") , emit: pdb
tuple val(meta), path ("${meta.id}_colabfold_msa.tsv") , emit: msa
tuple val(meta), path ("${meta.id}_plddt.tsv") , emit: multiqc
tuple val(meta), path ("${meta.id}_*_pae.tsv") , optional: true, emit: paes
tuple val(meta), path ("${meta.id}_0_pae.tsv") , optional: true, emit: pae
tuple val(meta), path ("${meta.id}_ptm.tsv") , optional: true, emit: ptms
tuple val(meta), path ("${meta.id}_iptm.tsv") , optional: true, emit: iptms
path "versions.yml" , emit: versions
path ("raw/**") , emit: raw
tuple val(meta), path ("${meta.id}_colabfold.pdb") , emit: top_ranked_pdb
tuple val(meta), path ("raw/*relaxed_rank_*.pdb") , emit: pdb
tuple val(meta), path ("${meta.id}_colabfold_msa.tsv"), emit: msa
tuple val(meta), path ("${meta.id}_plddt_mqc.tsv") , emit: multiqc
tuple val(meta), path ("${meta.id}_*_pae.tsv") , optional: true, emit: paes
tuple val(meta), path ("${meta.id}_0_pae.tsv") , optional: true, emit: pae
tuple val(meta), path ("${meta.id}_ptm.tsv") , optional: true, emit: ptms
tuple val(meta), path ("${meta.id}_iptm.tsv") , optional: true, emit: iptms
path "versions.yml" , emit: versions

when:
task.ext.when == null || task.ext.when
Expand Down Expand Up @@ -84,7 +84,7 @@ process COLABFOLD_BATCH {
touch ./raw/${meta.id}_scores_rank.json
touch ./${meta.id}_0_pae.tsv
touch ./${meta.id}_ptm.tsv
touch ./${meta.id}_plddt.tsv
touch ./${meta.id}_plddt_mqc.tsv
touch ./${meta.id}_colabfold_msa.tsv

cat <<-END_VERSIONS > versions.yml
Expand Down
22 changes: 11 additions & 11 deletions modules/local/run_alphafold2/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,17 @@ process RUN_ALPHAFOLD2 {
path ('uniprot/*')

output:
path ("raw/**") , emit: raw
tuple val(meta), path ("${meta.id}_alphafold2.pdb") , emit: top_ranked_pdb
tuple val(meta), path ("raw/ranked*.pdb") , emit: pdb
tuple val(meta), path ("${meta.id}_plddt.tsv") , emit: multiqc
tuple val(meta), path ("${meta.id}_alphafold2_msa.tsv") , emit: msa
path ("raw/**") , emit: raw
tuple val(meta), path ("${meta.id}_alphafold2.pdb") , emit: top_ranked_pdb
tuple val(meta), path ("raw/ranked*.pdb") , emit: pdb
tuple val(meta), path ("${meta.id}_plddt_mqc.tsv") , emit: multiqc
tuple val(meta), path ("${meta.id}_alphafold2_msa.tsv"), emit: msa
// Note: alphafold2_model_preset == "monomer" the pae file won't exist, thus the optional
tuple val(meta), path ("${meta.id}_*_pae.tsv") , optional: true, emit: paes
tuple val(meta), path ("${meta.id}_0_pae.tsv") , optional: true, emit: pae
tuple val(meta), path ("${meta.id}_ptm.tsv") , optional: true, emit: ptms
tuple val(meta), path ("${meta.id}_iptm.tsv") , optional: true, emit: iptms
path "versions.yml" , emit: versions
tuple val(meta), path ("${meta.id}_*_pae.tsv") , optional: true, emit: paes
tuple val(meta), path ("${meta.id}_0_pae.tsv") , optional: true, emit: pae
tuple val(meta), path ("${meta.id}_ptm.tsv") , optional: true, emit: ptms
tuple val(meta), path ("${meta.id}_iptm.tsv") , optional: true, emit: iptms
path "versions.yml" , emit: versions

when:
task.ext.when == null || task.ext.when
Expand Down Expand Up @@ -98,7 +98,7 @@ process RUN_ALPHAFOLD2 {
stub:
"""
touch "${meta.id}_alphafold2.pdb"
touch "${meta.id}_plddt.tsv"
touch "${meta.id}_plddt_mqc.tsv"
touch "${meta.id}_alphafold2_msa.tsv"
touch "${meta.id}_0_pae.tsv"
touch "${meta.id}_ptm.tsv"
Expand Down
22 changes: 11 additions & 11 deletions modules/local/run_alphafold2_pred/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,17 @@ process RUN_ALPHAFOLD2_PRED {
path ('uniprot/*')

output:
path ("raw/**") , emit: raw
tuple val(meta), path ("${meta.id}_alphafold2.pdb") , emit: top_ranked_pdb
tuple val(meta), path ("raw/ranked*.pdb") , emit: pdb
tuple val(meta), path ("${meta.id}_alphafold2_msa.tsv") , emit: msa
tuple val(meta), path ("${meta.id}_plddt.tsv") , emit: multiqc
path ("raw/**") , emit: raw
tuple val(meta), path ("${meta.id}_alphafold2.pdb") , emit: top_ranked_pdb
tuple val(meta), path ("raw/ranked*.pdb") , emit: pdb
tuple val(meta), path ("${meta.id}_alphafold2_msa.tsv"), emit: msa
tuple val(meta), path ("${meta.id}_plddt_mqc.tsv") , emit: multiqc
//Note: alphafold2_model_preset == "monomer" the pae file won't exist.
tuple val(meta), path ("${meta.id}_*_pae.tsv") , optional: true, emit: paes
tuple val(meta), path ("${meta.id}_0_pae.tsv") , optional: true, emit: pae
tuple val(meta), path ("${meta.id}_ptm.tsv") , optional: true, emit: ptms
tuple val(meta), path ("${meta.id}_iptm.tsv") , optional: true, emit: iptms
path "versions.yml" , emit: versions
tuple val(meta), path ("${meta.id}_*_pae.tsv") , optional: true, emit: paes
tuple val(meta), path ("${meta.id}_0_pae.tsv") , optional: true, emit: pae
tuple val(meta), path ("${meta.id}_ptm.tsv") , optional: true, emit: ptms
tuple val(meta), path ("${meta.id}_iptm.tsv") , optional: true, emit: iptms
path "versions.yml" , emit: versions

when:
task.ext.when == null || task.ext.when
Expand Down Expand Up @@ -77,7 +77,7 @@ process RUN_ALPHAFOLD2_PRED {
stub:
"""
touch "${meta.id}_alphafold2.pdb"
touch "${meta.id}_plddt.tsv"
touch "${meta.id}_plddt_mqc.tsv"
touch "${meta.id}_alphafold2_msa.tsv"
touch "${meta.id}_0_pae.tsv"
mkdir "raw/"
Expand Down
20 changes: 10 additions & 10 deletions modules/local/run_alphafold3/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ process RUN_ALPHAFOLD3 {
path "uniprot/*"

output:
path ("raw/**") , emit: raw
tuple val(meta), path ("${meta.id}_alphafold3.cif") , emit: top_ranked_cif
tuple val(meta), path ("raw/*ranked_*.cif") , emit: cif
tuple val(meta), path ("${meta.id}_plddt.tsv") , emit: multiqc
tuple val(meta), path ("${meta.id}_alphafold3_msa.tsv") , emit: msa
tuple val(meta), path ("${meta.id}_0_pae.tsv") , emit: pae
tuple val(meta), path ("${meta.id}_ptm.tsv") , emit: ptms
tuple val(meta), path ("${meta.id}_iptm.tsv") , optional: true, emit: iptms
path "versions.yml" , emit: versions
path ("raw/**") , emit: raw
tuple val(meta), path ("${meta.id}_alphafold3.cif") , emit: top_ranked_cif
tuple val(meta), path ("raw/*ranked_*.cif") , emit: cif
tuple val(meta), path ("${meta.id}_plddt_mqc.tsv") , emit: multiqc
tuple val(meta), path ("${meta.id}_alphafold3_msa.tsv"), emit: msa
tuple val(meta), path ("${meta.id}_0_pae.tsv") , emit: pae
tuple val(meta), path ("${meta.id}_ptm.tsv") , emit: ptms
tuple val(meta), path ("${meta.id}_iptm.tsv") , optional: true, emit: iptms
path "versions.yml" , emit: versions

when:
task.ext.when == null || task.ext.when
Expand Down Expand Up @@ -129,7 +129,7 @@ process RUN_ALPHAFOLD3 {
touch raw/${prefix}_ranked_3.cif
touch raw/${prefix}_ranked_4.cif
touch raw/${prefix}_ranked_5.cif
touch ${prefix}_plddt.tsv
touch ${prefix}_plddt_mqc.tsv
touch ${prefix}_alphafold3_msa.tsv
touch ${prefix}_0_pae.tsv
touch ${prefix}_ptm.tsv
Expand Down
Loading
Loading