diff --git a/en/references/judges/index.md b/en/references/judges/index.md index 301668b0d..cf7cacb56 100644 --- a/en/references/judges/index.md +++ b/en/references/judges/index.md @@ -45,6 +45,12 @@ It does render the Markdown code of a student and can be useful to manually eval **Get started** [Documentation](https://github.com/dodona-edu/judge-markdown) \ **Created by:** [Team Dodona](mailto:dodona@ugent.be) +## Nextflow +The Nextflow judge uses CodeNarc to lint workflows and also checks the existence of produced files.\ +**Programming languages:** Nextflow\ +**Get started** [Git repo](https://github.com/dodona-edu/judge-nextflow), [examples](https://github.com/Bond-009/dodona-nextflow-exercises) \ +**Created by:** [Lode Willems](mailto:bits@vib.be) + ## Prolog Prolog is a judge that can be used for exercises on the Prolog programming language. It supports PLUnit, QuickCheck and simple input output tests.\ diff --git a/en/references/judges/nextflow-judge/index.md b/en/references/judges/nextflow-judge/index.md new file mode 100644 index 000000000..8481b5545 --- /dev/null +++ b/en/references/judges/nextflow-judge/index.md @@ -0,0 +1,47 @@ +--- +title: "Nextflow judge" +description: "Nextflow judge" +order: 7 +--- +# Nextflow judge + +The Nextflow judge annotates the submitted code using CodeNarc, executes the submitted script and optionally checks the existence of directories and files. +The following bioinformatics tools are available by default: +* FastQC +* MultiQC +* Trimmomatic. + +Also available are Perl and Python3. + +## Configuration + +The judge configuration is split between multiple files. + +Passing extra argument to Nextflow can be accomplished by modifying the exercises `config.json`: +```json +{ + "evaluation": { + "nextflow_arguments": "--reads /dev/null" + } +} +``` + +A `judge.json` configuration file inside of the `evaluation` directory that contains a JSON array of JSON objects. +Each object represents either a file or a directory, this is specified by the `type` property. +The object contains a `path` property which contains the expected location of the file/directory. + +An example `judge.json`: +```json +[ + { "type": "directory", "path": "work" }, + { "type": "file", "path": "ggal_gut_1_fastqc.html" }, + { "type": "file", "path": "ggal_gut_1_fastqc.zip" }, + { "type": "file", "path": "ggal_gut_2_fastqc.html" }, + { "type": "file", "path": "ggal_gut_2_fastqc.zip" }, + { "type": "directory", "path": "multiqc" }, + { "type": "file", "path": "multiqc/multiqc_report.html" } +] +``` + +### Scripts +Due to limited resources available to the judge, it isn't always possible to run the tools required for an exercise. To work around this limitation, I suggest you create a dummy script that emulates the behaviour of the required tool, this script should be placed inside of the `resources/bin` directory of the exercise.