Dotfiles¶
Several dotfiles (files prefixed by a single .
, as in .status
) are
created at the beginning of every nextflow process that has the following
placeholder (see Create process template):
process myProcess {
{% include "post.txt" ignore missing %}
(...)
}
The actual script that creates the dotfiles is found in
assemblerflow/bin
, is called set_dotfiles.sh
and executes the
following command:
touch .status .warning .fail .report.json .versions
Status¶
The .status
file simply stores a string with the run status of the process.
The supported status are:
pass
: The process finished successfullyfail
: The process ran without unexpected issues but failed due to some quality control checkerror
: The process exited with an unexpected error.
Warning¶
The .warning
file stores any warnings that may occur during the execution
of the process. There is no particular format for the warning messages other
than that each individual warning should be in a separate line.
Fail¶
The .fail
file stores any fail messages that may occur during the
execution of the process. When this occurs, the .status
channel must have
the fail
string as well. As in the warning dotfile, there is no
particular format for the fail message.
Report JSON¶
The .report.json
file stores any information from a given process that is
deemed worthy of being reported and displayed at the end of the pipeline.
Any information can be stored in this file, as long as it is in JSON format,
but there are a couple of recommendations that are necessary to follow
for them to be processed by a reporting web app (Currently hosted at
report-nf). However, if
data processing will be performed with custom scripts, feel free to specify
your own format.
Information for tables¶
Information meant to be displayed in tables should be in the following format:
json_dic = {
"tableRow": [
{"header": "Raw BP",
"value": chars,
"table": "assembly",
"columnBar": True},
}
This means that the chars
variable that is created during the execution
of the process should appear as a table entry with the specified header
and value
. The table
key specifies in which table of the reports
it will appear and the columnBar
key informs the report generator to
create a bar column in that particular cell.
Information for plots¶
Information meant to be displayed in plots should be in the following format:
json_dic = {
"plotData": {
"size_dist": size_dist
}
}
This is a simple key:value pair, where the key is the ID of the plot in the
reports and the size_dist
contains the plot data that was gathered
for a particular process.
Other information¶
Other than tables and plots, which have a somewhat predefined format, there is not particular format for other information. They will simply store the data of interest to report and it will be the job of a downstream report app to process that data into an actual visual report.
Versions¶
The .version
dotfile should contain a list of JSON objects with the
version information of the programs used in any given process. There are
only two required key:value pairs:
program
: String with the name of the software/script/templateversion
: String with the version of said software.
As an example:
version = {
"program": "abricate"
"version": "0.3.7"
}
Key:value pairs with other metadata can be included at will for downstream processing.