Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ nextflow run nf-core/multiplesequencealign \

<details>
<summary> FAQ: Can I specify the arguments of the tools (tree and aligner)? </summary>
Yes, use the <code>--args_tree</code> and <code>--args_aligner</code> flags. More info: <a href="https://nf-co.re/multiplesequencealign/usage">usage</a> and <a href="https://nf-co.re/multiplesequencealign/parameters">parameters</a>.
Yes, use the <code>--args_guidetree</code> and <code>--args_aligner</code> flags. More info: <a href="https://nf-co.re/multiplesequencealign/usage">usage</a> and <a href="https://nf-co.re/multiplesequencealign/parameters">parameters</a>.
</details>

### CASE 2: Multiple datasets, multiple tools.
Expand Down Expand Up @@ -191,12 +191,12 @@ Please check: <a href="https://nf-co.re/multiplesequencealign/usage/#samplesheet

Each line defines a combination of guide tree and multiple sequence aligner to run with the respective arguments to be used.

The only required field is `aligner`. The fields `tree`, `args_tree` and `args_aligner` are optional and can be left empty.
The only required field is `aligner`. The fields `tree`, `args_guidetree` and `args_aligner` are optional and can be left empty.

A minimal version:

```csv
tree,args_tree,aligner,args_aligner
tree,args_guidetree,aligner,args_aligner
,,FAMSA,
```

Expand All @@ -205,7 +205,7 @@ This will run the FAMSA aligner.
A more complex one:

```csv
tree,args_tree,aligner,args_aligner
tree,args_guidetree,aligner,args_aligner,
FAMSA, -gt upgma -medoidtree, FAMSA,
, ,TCOFFEE,
FAMSA,,REGRESSIVE,
Expand Down
6 changes: 3 additions & 3 deletions assets/multiqc_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -119,11 +119,11 @@ custom_table_header_config:
hidden: false
namespace: "Alignment"
scale: "Paired"
args_tree:
args_guidetree:
description: "Arguments used to build the tree."
hidden: true
namespace: "Alignment"
args_tree_clean:
args_guidetree_clean:
description: "Arguments used to build the tree."
hidden: true
namespace: "Alignment"
Expand All @@ -145,7 +145,7 @@ table_columns_placement:
summary_stats:
fasta: 90
tree: 150
args_tree: 170
args_guidetree: 170
aligner: 200
args_aligner: 220
n_sequences: 250
Expand Down
65 changes: 41 additions & 24 deletions assets/schema_tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,46 +7,63 @@
"items": {
"type": "object",
"properties": {
"tree": {
"guidetree": {
"type": "string",
"pattern": "^\\S+$",
"errorMessage": "tree name cannot contain spaces and must be a string",
"meta": ["tree"],
"errorMessage": "tree name cannot contain spaces",
"meta": ["guidetree"],
"default": "",
"enum": [
"clustalo_guidetree",
"famsa_guidetree",
"magus_guidetree"
]
},
"args_guidetree": {
"type": "string",
"meta": ["args_guidetree"],
"default": ""
},
"args_tree": {
"treealign": {
"type": "string",
"meta": ["treealign"],
"pattern": "^\\S+$",
"errorMessage": "align name must be provided and cannot contain spaces",
"default": "",
"enum":[
"clustalo_align",
"famsa_align",
"magus_align",
"tcoffee_align"
]
},
"args_treealign": {
"type": "string",
"meta": ["args_tree"],
"meta": ["args_treealign"],
"default": ""
},
"aligner": {
"alignment": {
"type": "string",
"meta": ["aligner"],
"meta": ["alignment"],
"pattern": "^\\S+$",
"enum": [
"CLUSTALO",
"FAMSA",
"KALIGN",
"LEARNMSA",
"MAFFT",
"MAGUS",
"MUSCLE5",
"TCOFFEE",
"REGRESSIVE",
"UPP",
"3DCOFFEE",
"MTMALIGN",
"FOLDMASON"
"clustalo_align",
"famsa_align",
"kalign_align",
"learnmsa_align",
"magus_align",
"muscle5_super5",
"tcoffee_align"
],
"errorMessage": "align name must be provided, has to be a string, cannot contain spaces and must be one of: CLUSTALO, FAMSA, KALIGN, LEARNMSA, MAFFT, MAGUS, MUSCLES, TCOFFEE, REGRESSIVE, UPP, 3DCOFFE, MTMALIGN or FOLDMASON",
"errorMessage": "align name must be provided, has to be a string, cannot contain spaces and must be one of the valid options.",
"default": ""
},
"args_aligner": {
"args_alignment": {
"type": "string",
"meta": ["args_aligner"],
"meta": ["args_alignment"],
"default": ""
}
},
"required": ["aligner"]
"oneOf": [{ "required": ["alignment"] }, { "required": ["guidetree", "treealign"] }]
}
}
10 changes: 10 additions & 0 deletions assets/test_toolsheet.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
guidetree,args_guidetree,treealign,args_treealign,alignment,args_alignment
,,,,clustalo_align,
,,,,famsa_align,
,,,,kalign_align,
,,,,learnmsa_align,
,,,,magus_align,
,,,,muscle5_super5,
,,,,tcoffee_align,
famsa_guidetree,-gt upgma -medoidtree,famsa_align,
famsa_guidetree,,magus_align,
2 changes: 1 addition & 1 deletion assets/toolsheet.csv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
tree,args_tree,aligner,args_aligner
tree,args_guidetree,aligner,args_aligner
FAMSA,,FAMSA,
,,MAFFT,--dpparttree
2 changes: 1 addition & 1 deletion bin/merge_scores.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import sys
import pandas as pd

merging_cols = ["id", "tree", "args_tree", "aligner", "args_aligner"]
merging_cols = ["id", "tree", "args_guidetree", "aligner", "args_aligner"]
scores_files = sys.argv[2:]
outfile = sys.argv[1]

Expand Down
10 changes: 5 additions & 5 deletions bin/shiny_app/shiny_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@
def merge_tree_args(row):
if str(row["tree"]) == "DEFAULT":
return "DEFAULT"
elif str(row["args_tree_clean"]) == "default":
return str(row["tree"]) + " (default)"
elif pd.isna(row["args_tree_clean"]):
return str(row["tree"]) + " (default)"
elif str(row["args_guidetree_clean"]) == "default":
return str(row["guidetree"]) + " (default)"
elif pd.isna(row["args_guidetree_clean"]):
return str(row["guidetree"]) + " (default)"
else:
return str(row["tree"]) + " (" + str(row["args_tree"]) + ")"
return str(row["guidetree"]) + " (" + str(row["args_guidetree"]) + ")"

inputfile["tree_args"] = inputfile.apply(merge_tree_args, axis=1)

Expand Down
89 changes: 33 additions & 56 deletions conf/modules.config
Original file line number Diff line number Diff line change
Expand Up @@ -64,18 +64,18 @@
}

//
// Tree building
// Tree building (guidetree)
//

withName: "CLUSTALO_GUIDETREE|FAMSA_GUIDETREE|MAFFT_GUIDETREE" {
withName: "CLUSTALO_GUIDETREE|FAMSA_GUIDETREE|MAGUS_GUIDETREE" {
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mafft guidetree should be part of the sub workflow
Magus guidetree should not be part of it

tag = {
[
"${meta.id}",
meta.args_tree ? "args: ${meta.args_tree_clean}" : ""
meta.args_guidetree ? "args: ${meta.args_guidetree}" : ""
].join(' ').trim()
}
ext.prefix = { "${meta.id}_${meta.tree}-args-${meta.args_tree_clean}" }
ext.args = { "${meta.args_tree}" == "null" ? '' : "${meta.args_tree}" }
ext.prefix = { "${meta.id}_${meta.guidetree}-args-${meta.args_guidetree_clean}" }
ext.args = { "${meta.args_guidetree}" == "null" ? '' : "${meta.args_guidetree}" }
publishDir = [
path: { "${params.outdir}/trees/${meta.id}" },
mode: params.publish_dir_mode,
Expand All @@ -84,65 +84,42 @@
}

//
// alignments
// Alignment from a tree (treealign)
//

withName: "CREATE_TEMPLATE" {
ext.prefix = { "${meta.id}" }
}
withName: "CLUSTALO_ALIGN|FAMSA_ALIGN|FOLDMASON_ALIGN|KALIGN_ALIGN|MAFFT_ALIGN|MAGUS_ALIGN|MUSCLE5_ALIGN|REGRESSIVE_ALIGN|TCOFFEE_ALIGN|TCOFFEE3D_ALIGN|UPP_ALIGN" {
withName: "NFCORE_MULTIPLESEQUENCEALIGN:MULTIPLESEQUENCEALIGN:MSA_TREEALIGN:CLUSTALO_ALIGN|FAMSA_ALIGN|MAGUS_ALIGN|TCOFFEE_ALIGN"{
tag = {
[
"${meta.id}",
meta.tree ? "tree: ${meta.tree}" : "",
meta.args_tree ? "argstree: ${meta.args_tree}" : "",
meta.args_aligner ? "args: ${meta.args_aligner_clean}" : ""
meta.args_treealign ? "args: ${meta.args_treealign}" : ""
].join(' ').trim()
}
ext.prefix = { "${meta.id}_${meta.tree}-args-${meta.args_tree_clean}_${meta.aligner}-args-${meta.args_aligner_clean}" }
ext.args = { "${meta.args_aligner}" == "null" ? '' : "${meta.args_aligner}" }
if (params.skip_compression || (params.skip_eval && !params.build_consensus)) {
publishDir = [
path: { "${params.outdir}/alignments/${meta.id}" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}
ext.prefix = { "${meta.id}_${meta.treealign}-args-${meta.args_treealign_clean}_${meta.guidetree}-args-${meta.args_guidetree_clean}" }
ext.args = { "${meta.args_treealign}" == "null" ? '' : "${meta.args_treealign}" }
publishDir = [
path: { "${params.outdir}/alignment/${meta.id}" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}

withName: "LEARNMSA_ALIGN" {
tag = {
[
"${meta.id}",
meta.tree ? "tree: ${meta.tree}" : "",
meta.args_tree ? "argstree: ${meta.args_tree}" : "",
meta.args_aligner ? "args: ${meta.args_aligner_clean}" : ""
].join(' ').trim()
}
ext.prefix = { "${meta.id}_${meta.tree}-args-${meta.args_tree_clean}_${meta.aligner}-args-${meta.args_aligner_clean}" }
ext.args = { "${meta.args_aligner}" == "null" ? '' : "${meta.args_aligner}" }
//
// alignments
//

if(params.skip_compression){
publishDir = [
path: { "${params.outdir}/alignments/${meta.id}" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}
withName: "CREATE_TEMPLATE" {
ext.prefix = { "${meta.id}" }
}

withName: "PIGZ_COMPRESS_LEARNMSA"{
withName: "NFCORE_MULTIPLESEQUENCEALIGN:MULTIPLESEQUENCEALIGN:MSA_ALIGNMENT:CLUSTALO_ALIGN|FAMSA_ALIGN|LEARNMSA_ALIGN|KALIGN_ALIGN|MUSCLE5_SUPER5|MAGUS_ALIGN|TCOFFEE_ALIGN" {
tag = {
Comment thread
mirpedrol marked this conversation as resolved.
[
"${meta.id}",
meta.tree ? "tree: ${meta.tree}" : "",
meta.args_tree ? "argstree: ${meta.args_tree}" : "",
meta.args_aligner ? "args: ${meta.args_aligner}" : ""
meta.args_aligner ? "args: ${meta.args_alignment_clean}" : ""
].join(' ').trim()
}
ext.prefix = { "${meta.id}_${meta.tree}-args-${meta.args_tree_clean}_${meta.aligner}-args-${meta.args_aligner_clean}" }
ext.args = { "${meta.args_aligner}" == "null" ? '' : "${meta.args_aligner}" }

ext.prefix = { "${meta.id}_${meta.alignment}-args-${meta.args_alignment_clean}" }
ext.args = { "${meta.args_alignment}" == "null" ? '' : "${meta.args_alignment}" }
publishDir = [
path: { "${params.outdir}/alignments/${meta.id}" },
mode: params.publish_dir_mode,
Expand All @@ -156,11 +133,11 @@
[
"${meta.id}",
meta.tree ? "tree: ${meta.tree}" : "",
meta.args_tree ? "argstree: ${meta.args_tree}" : "",
meta.args_guidetree ? "argstree: ${meta.args_guidetree}" : "",
meta.args_aligner ? "args: ${meta.args_aligner}" : ""
].join(' ').trim()
}
ext.prefix = { "${meta.id}_${meta.tree}-args-${meta.args_tree_clean}_${meta.aligner}-args-${meta.args_aligner_clean}" }
ext.prefix = { "${meta.id}_${meta.guidetree}-args-${meta.args_guidetree_clean}_${meta.alignment ?: meta.treealign}-args-${meta.args_alignment_clean ?: meta.args_treealign_clean}" }
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The name of the files is used as a tag and this info is used for the shiny and final stats. The structure doesn't change so it should work as it is.

ext.args = { "${meta.args_aligner}" == "null" ? '' : "${meta.args_aligner}" }
if(params.skip_compression){
publishDir = [
Expand Down Expand Up @@ -215,21 +192,21 @@
//

withName: 'PARSE_IRMSD' {
ext.prefix = { "${meta.id}_${meta.tree}-args-${meta.args_tree_clean}_${meta.aligner}-args-${meta.args_aligner_clean}_irmsd" }
ext.prefix = { "${meta.id}_${meta.guidetree}-args-${meta.args_guidetree_clean}_${meta.alignment ?: meta.treealign}-args-${meta.args_alignment_clean ?: meta.args_treealign_clean}_irmsd" }
}

withName: 'TCOFFEE_ALNCOMPARE_SP' {
ext.prefix = { "${meta.id}_${meta.tree}-args-${meta.args_tree_clean}_${meta.aligner}-args-${meta.args_aligner_clean}_sp" }
ext.prefix = { "${meta.id}_${meta.guidetree}-args-${meta.args_guidetree_clean}_${meta.alignment ?: meta.treealign}-args-${meta.args_alignment_clean ?: meta.args_treealign_clean}_sp" }
ext.args = "-compare_mode sp"
}

withName: 'TCOFFEE_ALNCOMPARE_TC' {
ext.prefix = { "${meta.id}_${meta.tree}-args-${meta.args_tree_clean}_${meta.aligner}-args-${meta.args_aligner_clean}_tc" }
ext.prefix = { "${meta.id}_${meta.guidetree}-args-${meta.args_guidetree_clean}_${meta.alignment ?: meta.treealign}-args-${meta.args_alignment_clean ?: meta.args_treealign_clean}_tc" }
ext.args = "-compare_mode tc"
}

withName: 'TCOFFEE_IRMSD' {
ext.prefix = { "${meta.id}_${meta.tree}-args-${meta.args_tree_clean}_${meta.aligner}-args-${meta.args_aligner_clean}_irmsd" }
ext.prefix = { "${meta.id}_${meta.guidetree}-args-${meta.args_guidetree_clean}_${meta.alignment ?: meta.treealign}-args-${meta.args_alignment_clean ?: meta.args_treealign_clean}_irmsd" }
publishDir = [
path: { "${params.outdir}/evaluation/${task.process.tokenize(':')[-1].toLowerCase()}" },
mode: params.publish_dir_mode,
Expand All @@ -239,7 +216,7 @@
}

withName: "CALC_GAPS" {
ext.prefix = { "${meta.id}_${meta.tree}-args-${meta.args_tree_clean}_${meta.aligner}-args-${meta.args_aligner_clean}_gaps" }
ext.prefix = { "${meta.id}_${meta.guidetree}-args-${meta.args_guidetree_clean}_${meta.alignment ?: meta.treealign}-args-${meta.args_alignment_clean ?: meta.args_treealign_clean}_gaps" }
}

withName: "CONCAT_IRMSD" {
Expand All @@ -263,7 +240,7 @@
}

withName: 'TCOFFEE_TCS' {
ext.prefix = { "${meta.id}_${meta.tree}-args-${meta.args_tree_clean}_${meta.aligner}-args-${meta.args_aligner_clean}_tcs" }
ext.prefix = { "${meta.id}_${meta.guidetree}-args-${meta.args_guidetree_clean}_${meta.alignment ?: meta.treealign}-args-${meta.args_alignment_clean ?: meta.args_treealign_clean}_tcs" }
publishDir = [
path: { "${params.outdir}/evaluation/${task.process.tokenize(':')[-1].toLowerCase()}" },
mode: params.publish_dir_mode,
Expand Down Expand Up @@ -310,7 +287,7 @@
// Visualization
//
withName: 'FOLDMASON_MSA2LDDTREPORT' {
ext.prefix = { "${meta.id}_${meta.tree}-args-${meta.args_tree_clean}_${meta.aligner}-args-${meta.args_aligner_clean}" }
ext.prefix = { "${meta.id}_${meta.guidetree}-args-${meta.args_guidetree_clean}_${meta.alignment ?: meta.treealign}-args-${meta.args_alignment_clean ?: meta.args_treealign_clean}" }
publishDir = [
path: { "${params.outdir}/reports/visualization" },
mode: params.publish_dir_mode,
Expand Down
Loading
Loading