Skip to content

Configuration

scilo can be customized via a configuration file written in TOML.

Locations

The configuration file specified by the -c/--config command line argument will be loaded into scilo. If this argument is not provided, then scilo will look for a configuration file in these locations, in order of precedence:

  1. ${PROJECT_ROOT}/.config/scilo/config.toml,
  2. Depending on your operating system:
    1. $HOME/.config/scilo/config.toml (Linux),
    2. $HOME/Library/Application Support/scilo/config.toml (macOS), or
    3. C:\Users\{USERNAME}\AppData\Roaming\scilo\config.toml (Windows)

If multiple of these configuration files are found, the options stack in order of priority. For example, if code_results_subdir_regex is set in both files #1 and #2, then the value written in #1 is used. If it is listed in #3 but not in #1, the value in #3 is used.

Options specified in files #1 and #2 are project-specific and will apply only to the project they're located in. Since file #3 is a file in the user's directory, these options will apply to all projects (unless explicitly overruled by a project-specific configuration file).

If the -c/--config argument is provided, all other locations are ignored.

Options

These are the following options that can be set in a configuration file.

code_results_subdir_regex

All subdirectories within the code and results directories much match this string. This must be a valid regular expression. scilo will fail if this regular expression does not successfully compile. By default, the naming scheme is YYYY-mm-dd_kebab-case-short-title.

Default:

code_results_subdir_regex = "2\\d{3}-(0[1-9]|1[0-2])-([0-2][0-9]|3[0-1])_[A-Za-z-]+"

lints

An array of strings containing the names of the checks that should be performed when running the lint subcommand. By default, all lints are included. See Lints for a complete list.

Default:

lints = [
    "code_results_subdir_pairing",
    "code_results_subdir_regex",
    "code_subdir_readmes",
    "code_subdir_workflows",
    "data_subdir_readmes",
    "root_dirs",
    "root_files",
]

readme_names

An array of strings for acceptable file names for the README in a directory. By default, each subdirectory in the code and data directories should have a README.

Default:

readme_names = [
    "README.md",
    "README.org",
    "README.txt",
    "README",
]

root_dirs

A table of the root directories.

Default:

[root_dirs]
code = "code"
data = "data"
docs = "docs"
external = "pkgs"
results = "results"

root_files

An array of required files at the project root.

Default:

root_files = [ ]

workflow_names

An array of strings for acceptable file names for the workflow file in a directory. By default, each subdirectory in the code directory should have a workflow file.

Default:

workflow_names = [
    "Snakefile",
    "_targets.R",
    "main.cwl",
    "main.nf",
    "main.pipe",
    "main.w",
    "main.wdl",
    "Makefile",
]