metaboigniter
nf-core/metaboigniter
Pre-processing of mass spectrometry-based metabolomics data
Key tools
Run it
nfclaw run metaboigniter --input samplesheet.csv --outdir results -profile dockernextflow run pipelines/metaboigniter/upstream -profile docker --input samplesheet.csv --outdir resultsnfclaw run metaboigniter --demo --outdir results # adds the upstream test profile (-profile test,docker)Inputs
| column | type | required | allowed values | constraints |
|---|---|---|---|---|
sample | string | yes | matches ^\S+$ | |
type | string | yes | matches ^\S+$ | |
level | string | yes | MS1, MS2, MS12 | |
msfile | string (file path) | yes | matches ^\S+\.mzML |
--input must match ^\S+\.csv$.
The samplesheet is a CSV with this header (the columns the schema requires); fill each value per the table above and reference.md (no example value is invented here):
sample,type,level,msfileFrom data files. --input may also be the data files — a directory (searched recursively), a quoted glob, or files (--input once per file) — from which nfclaw writes this samplesheet: sample from file names; msfile from files matching their patterns, by sample name. Set the required columns no file determines with --sheet-set COLUMN=VALUE (a constant or a {sample}/{lane} template): type (matching ^\S+$); level (one of MS1, MS2, MS12). Preview it with --check; a run records it in <outdir>/provenance/ for replay.
Resources
Resource requests follow the pipeline's configs and selected profiles. nf-core's resource labels often assume a server — a single step can request far more memory than a workstation has, and retry rules can increase requests. If a run fails with Process requirement exceeds available memory (or CPUs), cap every request, and every retry, at what this machine actually has:
nfclaw run metaboigniter --input samplesheet.csv --outdir results -profile docker \ --limit-cpus 4 --limit-memory 15.GBnfclaw turns those into Nextflow's process.resourceLimits and passes them as a -c config — the mechanism nf-core prescribes for exactly this (docs). Set them to the machine's real capacity. --limit-time DURATION also caps how long any one task may run: a task that needs longer is stopped, and so is every retry, so set it only as a deliberate ceiling, never as a guess at how long the analysis takes. The generated config is kept in <outdir>/provenance/, so commands.sh replays the run under the same ceiling.
Nextflow engine
This release declares nextflowVersion = '!>=23.04.0'.
To pin this release's declared minimum engine — useful when a newer Nextflow has incompatible config parsing:
nfclaw run metaboigniter ... --nxf-ver 23.04.0--nxf-ver is recorded in <outdir>/provenance/, so the replay uses the same engine. See known-issues.
Nextflow 23.04.0 predates process.resourceLimits (24.04.0), so --limit-* cannot be combined with this pin — nfclaw refuses it rather than run without the ceiling; cap resources with the release's own --max-cpus, --max-memory, --max-time instead.
Demo
nfclaw run metaboigniter --demo --outdir results # adds the upstream test profile (-profile test,docker)Samplesheet
A CSV with this header (the columns the schema requires). Fill each value per the constraints below.
sample,type,level,msfile| Column | Type | Required | Allowed / constraints |
|---|---|---|---|
sample | string | required | matches ^\S+$ |
type | string | required | matches ^\S+$ |
level | string | required | MS1MS2MS12 |
msfile | string (file path) | required | matches ^\S+\.mzML |
Required parameters
--inputstring (file path)Path to comma-separated file containing information about the samples in the experiment.
Constraint · matches ^\S+\.csv$
--outdirstring (directory path)The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.
Parameter explorer
229 parameters · 10 groupsEvery parameter from the pinned nextflow_schema.json. nfclaw checks explicit values before launch; complex rules use the pinned pipeline's runtime validation. Search, filter by group, and expand any parameter for its default, allowed values and constraints.
79 parameters · 150 hidden
Alignment And Linking16
whether to only allow the same adduct for linking (Identical), also allow linking features with adduct-free ones, or disregard adducts (Any).
whether to disallow charge mismatches (Identical), allow to link charge zero (i.e., unknown charge state) with every charge state, or disregard charges (Any).
m/z tolerance (in ppm or Da)
Width of RT tolerance window (sec)
The maximal number of peaks/features to be considered per map. To use all, set to '-1'.
Unit of m/z tolerance
Number of partitions in m/z space
Never pair features with larger m/z distance (unit defined by 'unit')
Unit of the 'max_difference' parameter
Never pair features with a larger RT distance (in seconds).
false [default]: pairing requires equal charge state (or at least one unknown charge '0'); true: Pairing irrespective of charge state
Maximum of m/z deviation of corresponding elements in different maps. This condition applies to the pairs considered in hashing.
Maximum number of elements considered in each map (selected by intensity). Use this to reduce the running time and to disregard weak signals during alignment. For using all points, set this to -1.
Whether or not to internally warp feature RTs using LOWESS transformation before linking (reported RTs in results will always be the original RTs)
m/z tolerance (in ppm or Da)
Width of RT tolerance window (sec)
Annotation15
possible negative adducts for adduct detection in the format of adduct:charge:probablity
possible positive adducts for adduct detection in the format of adduct:charge:probablity
Maximal possible charge
Minimal possible charge
Maximal range of charges for a single analyte, i.e. observing q1=[5,6,7] implies span=3. Setting this to 1 will only find adduct variants of the same charge
Enable the intensity filter, which will only allow edges between two equally charged features if the intensity of the feature with less likely adducts is smaller than that of the other feature. It is not used for features of different charge.
Maximum allowed mass tolerance per feature. Defines a symmetric tolerance window around the feature. When looking at possible feature pairs, the allowed feature-wise errors are combined for consideration of possible adduct shifts. For ppm tolerances, each window is based on the respective observed feature mz (instead of putative experimental mzs causing the observed one)!
Limits allowed adduct compositions and changes between compositions in the underlying graph optimization problem by introducing a probability-based threshold: the minority bound sets the maximum count of the least probable adduct (according to 'potential_adducts' param) within a charge variant with maximum charge only containing the most likely adduct otherwise. E.g., for 'charge_max' 4 and 'max_minority_bound' 2 with most probable adduct being H+ and least probable adduct being Na+, this will allow adduct compositions of '2(H+),2(Na+)' but not of '1(H+),3(Na+)'. Further, adduct compositions/changes less likely than '2(H+),2(Na+)' will be discarded as well.
Maximal number of neutral adducts(q=0) allowed. Add them in the 'potential_adducts' section!
Minimum overlap of the convex hull' RT intersection measured against the union from two features (if CHs are given)
Try different values of charge for each feature according to the above settings ('heuristic' [does not test all charges, just the likely ones] or 'all' ), or leave feature charge untouched ('feature').
Maximum allowed RT difference between between two co-features, after adduct shifts have been accounted for (if you do not have any adduct shifts, this value should be equal to 'retention_max_diff', otherwise it should be smaller!)
Maximum allowed RT difference between any two features if their relation shall be determined
Unit of the 'max_difference' parameter
Prune the considered adduct transitions by transition probabilities.
Generic Controls5
If set to true, identification will be performed. Remember to set identification specific parameters
Set wether the MS2 collections have been done on all the MS1 data. If there is a separate MS2 file, set to separate
If set, the linking will be performed in parallel, see nr_partitions in linking
Polarity of the data
If set to true, requantification will be performed
Generic options1
Custom MultiQC yaml file containing HTML including a methods description.
Input Output options4
Email address for completion summary.
Path to comma-separated file containing information about the samples in the experiment.
MultiQC report title. Printed as page header, used for filename if not otherwise specified.
The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.
Mapping And Identification20
If set, detected adduct will be used in identification
mz tolerance (ppm) for finding C13
rt tolerance for finding C13
If set, MS2Query will be run
If set SIRIUS will run
E-mail for your SIRIUS account.
Search structures in the Union of the given databases db-name1,db-name2,db-name3. If no database is given all possible molecular formulas will be respected (no database is used). Example: possible DBs: ALL,BIO,PUBCHEM,MESH,HMDB,KNAPSACK,CHEBI,PUBMED,KEGG,HSDB,MACONDA,METACYC,GNPS,ZINCBIO,UNDP,YMDB,PLANTCYC,NORMAN,ADDITIONAL,PUBCHEMANNOTATIONBIO,PUBCHEMANNOTATIONDRUG,PUBCHEMANNOTATIONSAFETYANDTOXIC,PUBCHEMANNOTATIONFOOD,KEGGMINE,ECOCYCMINE,YMDBMINE
Password for your SIRIUS account.
If set, FingerID will be run. This has to be run together with run_sirius
If set, passatutto will be run
The number of formula candidates in the SIRIUS output
Minimum number of candidates in the output for each ionization. Set to force output of results for each possible ionization, even if not part of highest ranked results.
Search formulas in the Union of the given databases db-name1,db-name2,db-name3. If no database is given all possible molecular formulas will be respected (no database is used). Example: possible DBs: ALL,BIO,PUBCHEM,MESH,HMDB,KNAPSACK,CHEBI,PUBMED,KEGG,HSDB,MACONDA,METACYC,GNPS,ZINCBIO,UNDP,YMDB,PLANTCYC,NORMAN,ADDITIONAL,PUBCHEMANNOTATIONBIO,PUBCHEMANNOTATIONDRUG,PUBCHEMANNOTATIONSAFETYANDTOXIC,PUBCHEMANNOTATIONFOOD,KEGGMINE,ECOCYCMINE,YMDBMINE
the iontype/adduct of the MS/MS data. Example: [M+H]+, [M-H]-, [M+Cl]-, [M+Na]+, [M]+. You can also provide a comma separated list of adducts.
Disable recalibration of input spectra
Maximum allowed mass deviation in ppm for decomposing masses (ppm)
Maximum allowed mass deviation in ppm for decomposing masses in MS2 (ppm).If not specified, the same value as for the MS1 is used.
Name of the configuration profile
If set, SIRIUS will be run in parallel. See mgf_splitmgf_pyopenms parameter for segmentation
For running MS2 mapping in parallel set this higher than 1
Quantification12
Expected chromatographic peak width (in seconds).
Minimum signal-to-noise a mass trace should have.
Intensity threshold below which peaks are regarded as noise.
Enable splitting of isobaric mass traces by chromatographic peak detection. Disable for direct injection.
Enable filtering of unlikely peak widths. The fixed setting filters out mass traces outside the [min_fwhm, max_fwhm] interval (set parameters accordingly!). The auto setting filters with the 5 and 95% quantiles of the peak width distribution.
Require sufficient overlap in RT while assembling mass traces. Disable for direct injection data..
Remove/score candidate assemblies based on isotope intensities. SVM isotope models for metabolites were trained with either 2% or 5% RMS error. For peptides, an averagine cosine scoring is used. Select the appropriate noise model according to the quality of measurement or MS device.
Use the 13C isotope peak position (~1.003355 Da) as the expected shift in m/z for isotope mass traces (highly recommended for lipidomics!). Disable for general metabolites (as described in Kenar et al. 2014, MCP.).
Allowed mass deviation (in ppm).
Method of quantification for mass traces. For LC data 'area' is recommended, 'median' for direct injection data. 'max_height' simply uses the most intense peak in the trace.
Enables dynamic re-estimation of m/z variance during mass trace collection stage.
Minimal signal-to-noise ratio for a peak to be picked (0.0 disables SNT estimation!)
Re Quantification6
Expected elution peak width in seconds, for smoothing (Gauss filter). Also determines the RT extration window, unless set explicitly via 'extract:rt_window'.
Alternative initial parameters for fitting through method of moments.
Maximum number of iterations for EMG fitting.
m/z window size for chromatogram extraction (unit: ppm if 1 or greater, else Da/Th)
Number of isotopes to include in each peptide assay.
Type of elution model to fit to features
Outputs
Results land in --outdir; the files and directory layout depend on the selected workflow, parameters and publication settings. Run metadata is normally placed in <outdir>/pipeline_info/ (execution report, software versions), when those outputs are enabled. The pinned tree includes MultiQC support; a report is produced only when its workflow step runs. nfclaw run also writes <outdir>/provenance/ with the exact params file and the run log, <outdir>/provenance/logs/run.log — the whole launch, whose last line states the outcome (Nextflow's own log is <outdir>/.nextflow.log); unless --no-provenance it adds a run manifest (pinned version, commit and exact command), input/output SHA-256 checksums, and a replayable commands.sh.
The exact output files and directory layout for this release are documented upstream: github.com/nf-core/metaboigniter/blob/2.0.1/docs/output.md
Check a run — in the foreground or the background — with nfclaw status <outdir>: success, still running, how it ended (with the error), or stopped without an outcome; exit 0 success, 3 running, 1 otherwise.