1 Abstract

Macarron is a workflow to systematically annotate and prioritize potentially bioactive (and often unannotated) small molecules in microbial community metabolomic datasets. Macarron prioritizes metabolic features as potentially bioactive in a phenotype/condition of interest using a combination of (a) covariance with annotated metabolites, (b) ecological properties such as abundance with respect to covarying annotated compounds, and (c) differential abundance in the phenotype/condition of interest.

If you have questions, please direct it to: Macarron Forum

2 Installation

Macarron requires R version 4.2.0 or higher. Install Bioconductor and then install Macarron:

if(!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("Macarron")

3 Running Macarron

Macarron can be run from the command line or as an R function. Both methods require the same arguments, have the same options, and use the same default settings. The package includes the wrapper Macarron() as well as functions which perform different steps in the Macarron framework.

3.1 Input CSV files

Macarron requires 4 comma-separated, appropriately formatted input files. The files and their formatting constraints are described below.

  1. Metabolic features abundances
    • Must contain features in rows and samples in columns.
    • First column must identify features.
  2. Metabolic features annotations
    • Must contain features in rows and annotations in columns.
    • First column must identify features.
    • Second column must contain either HMDB ID or PubChem Compound Identifier (CID).
    • Third column must contain the name of the metabolite.
    • Fourth column must contain a continuous chemical property such as m/z or RT or shift/ppm.
    • Other annotations such as RT, m/z or other identifiers can be listed column 4 onward.
  3. Sample metadata
    • Must contain samples in rows and metadata in columns.
    • First column must identify samples.
    • Second column must contain categorical metadata relevant to prioritization such as phenotypes, exposures or environments.
  4. Chemical taxonomy
    • First column must contain the HMDB ID or PubChem CID. IDs must be consistent between annotation and taxonomy files.
    • Second and third columns must contain chemical subclass and class of the respective metabolite.

If you do not have the chemical taxonomy file, you can generate this file using the annotation dataframe and Macarron utility decorate_ID (see Advanced Topics).

3.2 Output Files

By default, all files will be stored in a folder named Macarron_output inside the current working directory. The main prioritization results are stored in prioritized_metabolites_all.csv. Another file, prioritized_metabolites_characterizable.csv is a subset of prioritized_metabolites_all.csv and only contains metabolic features which covary with at least one annotated metabolite. The columns in these output files are:

  • Feature_index: Lists the identifier of the metabolic feature found in column 1 of abundance and annotation files.
  • HMDB_ID (or PubChem ID): Public database identifier from column 2 of annotation file (column 1 of annotation dataframe).
  • Metabolite name: From column 2 of annotation dataframe.
  • mz: The continuous numerical chemical property from column 3 of the annotation dataframe.
  • Priority_score: 1 indicates most prioritized. It is the percentile from the meta-rank of AVA, q-value and effect size.
  • Status: Direction of perturbation (differential abundance) in the phenotype (or environment) of interest compared to reference phenotype.
  • Module: ID of the covariance module a metabolic feature is a member of. Module = 0 indicates a singleton i.e., a metabolic feature that is not assigned to any module.
  • Anchor (of a module): Metabolic feature that has the highest abundance in any phenotype.
  • Related_classes: Chemical taxonomy of the annotated features that covary with a metabolic feature.
  • Covaries_with_standard: 1 (yes) and 0 (no). Column specifies if the metabolic feature covaries with at least one annotated (standard) metabolite.
  • AVA: Abundance versus anchor which is a ratio of the highest abundance (in any phenotype) of a metabolic feature and highest abundance of the covarying anchor. Naturally, the AVA of an anchor metabolite is 1.
  • qvalue: Estimated from multivariate linear model using Maaslin2.
  • effect_size
  • Remaining columns from the annotation dataframe are appended.

3.3 Run a demo in R

3.3.1 Using CSV files as inputs

Example (demo) input files can be found under inst/extdata folder of the Macarron source. These files were generated from the PRISM study of stool metabolomes of individuals with inflammatory bowel disease (IBD) and healthy “Control” individuals. Control and IBD are the two phenotypes in this example. Macarron will be applied to prioritize metabolic features with respect to their bioactivity in IBD. Therefore, in this example, the phenotype of interest is “IBD” and the reference phenotype is “Control”. The four input files are demo_abundances.csv, demo_annotations.csv, demo_metadata.csv, and demo_taxonomy.csv.

library(Macarron)
## Loading required package: SummarizedExperiment
## Loading required package: MatrixGenerics
## Loading required package: matrixStats
## 
## Attaching package: 'MatrixGenerics'
## The following objects are masked from 'package:matrixStats':
## 
##     colAlls, colAnyNAs, colAnys, colAvgsPerRowSet, colCollapse,
##     colCounts, colCummaxs, colCummins, colCumprods, colCumsums,
##     colDiffs, colIQRDiffs, colIQRs, colLogSumExps, colMadDiffs,
##     colMads, colMaxs, colMeans2, colMedians, colMins, colOrderStats,
##     colProds, colQuantiles, colRanges, colRanks, colSdDiffs, colSds,
##     colSums2, colTabulates, colVarDiffs, colVars, colWeightedMads,
##     colWeightedMeans, colWeightedMedians, colWeightedSds,
##     colWeightedVars, rowAlls, rowAnyNAs, rowAnys, rowAvgsPerColSet,
##     rowCollapse, rowCounts, rowCummaxs, rowCummins, rowCumprods,
##     rowCumsums, rowDiffs, rowIQRDiffs, rowIQRs, rowLogSumExps,
##     rowMadDiffs, rowMads, rowMaxs, rowMeans2, rowMedians, rowMins,
##     rowOrderStats, rowProds, rowQuantiles, rowRanges, rowRanks,
##     rowSdDiffs, rowSds, rowSums2, rowTabulates, rowVarDiffs, rowVars,
##     rowWeightedMads, rowWeightedMeans, rowWeightedMedians,
##     rowWeightedSds, rowWeightedVars
## Loading required package: GenomicRanges
## Loading required package: stats4
## Loading required package: BiocGenerics
## 
## Attaching package: 'BiocGenerics'
## The following objects are masked from 'package:stats':
## 
##     IQR, mad, sd, var, xtabs
## The following objects are masked from 'package:base':
## 
##     Filter, Find, Map, Position, Reduce, anyDuplicated, aperm, append,
##     as.data.frame, basename, cbind, colnames, dirname, do.call,
##     duplicated, eval, evalq, get, grep, grepl, intersect, is.unsorted,
##     lapply, mapply, match, mget, order, paste, pmax, pmax.int, pmin,
##     pmin.int, rank, rbind, rownames, sapply, setdiff, sort, table,
##     tapply, union, unique, unsplit, which.max, which.min
## Loading required package: S4Vectors
## 
## Attaching package: 'S4Vectors'
## The following objects are masked from 'package:base':
## 
##     I, expand.grid, unname
## Loading required package: IRanges
## Loading required package: GenomeInfoDb
## Loading required package: Biobase
## Welcome to Bioconductor
## 
##     Vignettes contain introductory material; view with
##     'browseVignettes()'. To cite Bioconductor, see
##     'citation("Biobase")', and for packages 'citation("pkgname")'.
## 
## Attaching package: 'Biobase'
## The following object is masked from 'package:MatrixGenerics':
## 
##     rowMedians
## The following objects are masked from 'package:matrixStats':
## 
##     anyMissing, rowMedians
prism_abundances <- system.file(
    'extdata','demo_abundances.csv', package="Macarron")
prism_annotations <-system.file(
    'extdata','demo_annotations.csv', package="Macarron")
prism_metadata <-system.file(
    'extdata','demo_metadata.csv', package="Macarron")
mets_taxonomy <-system.file(
    'extdata','demo_taxonomy.csv', package="Macarron")
prism_prioritized <- Macarron::Macarron(input_abundances = prism_abundances,
                                        input_annotations = prism_annotations,
                                        input_metadata = prism_metadata,
                                        input_taxonomy = mets_taxonomy)
## 2022-11-01 18:16:52.633172 INFO::Creating output folder.
## 2022-11-01 18:16:52.646003 INFO::Writing function arguments to log file
## Samples with both abundances and metadata: 102
## 2022-11-01 18:16:52.710636 INFO::Summarized Experiment created.
## 2022-11-01 18:16:52.712369 INFO::Metadata chosen for prevalence filtering: diagnosis
## 869 features pass chosen minimum prevalence threshold of 0.7.
## Calculating pairwise correlations in phenotype: IBD
## 
## Calculating pairwise correlations in phenotype: Control
## Distance matrix with 869 features created.
## 2022-11-01 18:16:57.863439 INFO::Distance matrix with 869 metabolic features created.
## Initiating module detection
## 2022-11-01 18:16:57.864674 INFO::Minimum module size used for this dataset: 10
## Tree constructed
## Evaluating measures of success
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
## 2022-11-01 18:16:59.245809 INFO::Total number of modules detected: 30
## Initiating AVA calculations
## Finding anchors
## Calculating AVA
## Initiating q-value calculations
## [1] "Creating output folder"
## [1] "Creating output figures folder"
## 2022-11-01 18:17:01.347962 INFO::Writing function arguments to log file
## 2022-11-01 18:17:01.353593 INFO::Verifying options selected are valid
## 2022-11-01 18:17:01.400622 INFO::Determining format of input files
## 2022-11-01 18:17:01.401767 INFO::Input format is data samples as columns and metadata samples as rows
## 2022-11-01 18:17:01.416917 INFO::Formula for fixed effects: expr ~  diagnosis + age + antibiotics
## 2022-11-01 18:17:01.41844 INFO::Filter data based on min abundance and min prevalence
## 2022-11-01 18:17:01.419142 INFO::Total samples in data: 102
## 2022-11-01 18:17:01.419781 INFO::Min samples required with min abundance for a feature not to be filtered: 0.000000
## 2022-11-01 18:17:01.431278 INFO::Total filtered features: 0
## 2022-11-01 18:17:01.432224 INFO::Filtered feature names from abundance and prevalence filtering:
## 2022-11-01 18:17:01.452338 INFO::Total filtered features with variance filtering: 0
## 2022-11-01 18:17:01.453431 INFO::Filtered feature names from variance filtering:
## 2022-11-01 18:17:01.454119 INFO::Running selected normalization method: NONE
## 2022-11-01 18:17:01.454837 INFO::Applying z-score to standardize continuous metadata
## 2022-11-01 18:17:01.486255 INFO::Running selected transform method: NONE
## 2022-11-01 18:17:01.487325 INFO::Running selected analysis method: LM
## 2022-11-01 18:17:01.49282 INFO::Fitting model to feature number 1, F1
## 2022-11-01 18:17:01.503573 INFO::Fitting model to feature number 2, F2
## 2022-11-01 18:17:01.508028 INFO::Fitting model to feature number 3, F3
## 2022-11-01 18:17:01.512403 INFO::Fitting model to feature number 4, F4
## 2022-11-01 18:17:01.516679 INFO::Fitting model to feature number 5, F5
## 2022-11-01 18:17:01.520804 INFO::Fitting model to feature number 6, F6
## 2022-11-01 18:17:01.524655 INFO::Fitting model to feature number 7, F7
## 2022-11-01 18:17:01.528434 INFO::Fitting model to feature number 8, F8
## 2022-11-01 18:17:01.53226 INFO::Fitting model to feature number 9, F9
## 2022-11-01 18:17:01.536031 INFO::Fitting model to feature number 10, F10
## 2022-11-01 18:17:01.539773 INFO::Fitting model to feature number 11, F11
## 2022-11-01 18:17:01.543522 INFO::Fitting model to feature number 12, F12
## 2022-11-01 18:17:01.547124 INFO::Fitting model to feature number 13, F13
## 2022-11-01 18:17:01.550713 INFO::Fitting model to feature number 14, F14
## 2022-11-01 18:17:01.554449 INFO::Fitting model to feature number 15, F15
## 2022-11-01 18:17:01.558133 INFO::Fitting model to feature number 16, F16
## 2022-11-01 18:17:01.566804 INFO::Fitting model to feature number 17, F17
## 2022-11-01 18:17:01.571042 INFO::Fitting model to feature number 18, F18
## 2022-11-01 18:17:01.574941 INFO::Fitting model to feature number 19, F19
## 2022-11-01 18:17:01.578731 INFO::Fitting model to feature number 20, F20
## 2022-11-01 18:17:01.582457 INFO::Fitting model to feature number 21, F21
## 2022-11-01 18:17:01.58616 INFO::Fitting model to feature number 22, F22
## 2022-11-01 18:17:01.589784 INFO::Fitting model to feature number 23, F23
## 2022-11-01 18:17:01.593397 INFO::Fitting model to feature number 24, F24
## 2022-11-01 18:17:01.597096 INFO::Fitting model to feature number 25, F25
## 2022-11-01 18:17:01.600938 INFO::Fitting model to feature number 26, F26
## 2022-11-01 18:17:01.604822 INFO::Fitting model to feature number 27, F27
## 2022-11-01 18:17:01.608671 INFO::Fitting model to feature number 28, F28
## 2022-11-01 18:17:01.612478 INFO::Fitting model to feature number 29, F29
## 2022-11-01 18:17:01.616217 INFO::Fitting model to feature number 30, F30
## 2022-11-01 18:17:01.619906 INFO::Fitting model to feature number 31, F31
## 2022-11-01 18:17:01.623585 INFO::Fitting model to feature number 32, F32
## 2022-11-01 18:17:01.627278 INFO::Fitting model to feature number 33, F33
## 2022-11-01 18:17:01.630939 INFO::Fitting model to feature number 34, F34
## 2022-11-01 18:17:01.634571 INFO::Fitting model to feature number 35, F35
## 2022-11-01 18:17:01.638201 INFO::Fitting model to feature number 36, F36
## 2022-11-01 18:17:01.64187 INFO::Fitting model to feature number 37, F37
## 2022-11-01 18:17:01.645573 INFO::Fitting model to feature number 38, F38
## 2022-11-01 18:17:01.64928 INFO::Fitting model to feature number 39, F39
## 2022-11-01 18:17:01.652882 INFO::Fitting model to feature number 40, F40
## 2022-11-01 18:17:01.656474 INFO::Fitting model to feature number 41, F41
## 2022-11-01 18:17:01.660074 INFO::Fitting model to feature number 42, F43
## 2022-11-01 18:17:01.663583 INFO::Fitting model to feature number 43, F44
## 2022-11-01 18:17:01.667143 INFO::Fitting model to feature number 44, F45
## 2022-11-01 18:17:01.670703 INFO::Fitting model to feature number 45, F46
## 2022-11-01 18:17:01.674255 INFO::Fitting model to feature number 46, F47
## 2022-11-01 18:17:01.67783 INFO::Fitting model to feature number 47, F48
## 2022-11-01 18:17:01.681406 INFO::Fitting model to feature number 48, F49
## 2022-11-01 18:17:01.684983 INFO::Fitting model to feature number 49, F50
## 2022-11-01 18:17:01.688539 INFO::Fitting model to feature number 50, F51
## 2022-11-01 18:17:01.692106 INFO::Fitting model to feature number 51, F52
## 2022-11-01 18:17:01.695688 INFO::Fitting model to feature number 52, F53
## 2022-11-01 18:17:01.699263 INFO::Fitting model to feature number 53, F54
## 2022-11-01 18:17:01.702863 INFO::Fitting model to feature number 54, F55
## 2022-11-01 18:17:01.706456 INFO::Fitting model to feature number 55, F56
## 2022-11-01 18:17:01.71004 INFO::Fitting model to feature number 56, F57
## 2022-11-01 18:17:01.713664 INFO::Fitting model to feature number 57, F58
## 2022-11-01 18:17:01.717307 INFO::Fitting model to feature number 58, F59
## 2022-11-01 18:17:01.720922 INFO::Fitting model to feature number 59, F60
## 2022-11-01 18:17:01.724562 INFO::Fitting model to feature number 60, F63
## 2022-11-01 18:17:01.728246 INFO::Fitting model to feature number 61, F64
## 2022-11-01 18:17:01.731912 INFO::Fitting model to feature number 62, F65
## 2022-11-01 18:17:01.735519 INFO::Fitting model to feature number 63, F66
## 2022-11-01 18:17:01.739135 INFO::Fitting model to feature number 64, F67
## 2022-11-01 18:17:01.742787 INFO::Fitting model to feature number 65, F68
## 2022-11-01 18:17:01.746419 INFO::Fitting model to feature number 66, F69
## 2022-11-01 18:17:01.750075 INFO::Fitting model to feature number 67, F70
## 2022-11-01 18:17:01.753731 INFO::Fitting model to feature number 68, F71
## 2022-11-01 18:17:01.757374 INFO::Fitting model to feature number 69, F72
## 2022-11-01 18:17:01.76103 INFO::Fitting model to feature number 70, F73
## 2022-11-01 18:17:01.764627 INFO::Fitting model to feature number 71, F74
## 2022-11-01 18:17:01.768212 INFO::Fitting model to feature number 72, F76
## 2022-11-01 18:17:01.771837 INFO::Fitting model to feature number 73, F77
## 2022-11-01 18:17:01.775548 INFO::Fitting model to feature number 74, F78
## 2022-11-01 18:17:01.779261 INFO::Fitting model to feature number 75, F79
## 2022-11-01 18:17:01.782973 INFO::Fitting model to feature number 76, F80
## 2022-11-01 18:17:01.786586 INFO::Fitting model to feature number 77, F81
## 2022-11-01 18:17:01.790264 INFO::Fitting model to feature number 78, F82
## 2022-11-01 18:17:01.793888 INFO::Fitting model to feature number 79, F83
## 2022-11-01 18:17:01.797544 INFO::Fitting model to feature number 80, F84
## 2022-11-01 18:17:01.801178 INFO::Fitting model to feature number 81, F85
## 2022-11-01 18:17:01.804825 INFO::Fitting model to feature number 82, F86
## 2022-11-01 18:17:01.808453 INFO::Fitting model to feature number 83, F87
## 2022-11-01 18:17:01.81215 INFO::Fitting model to feature number 84, F88
## 2022-11-01 18:17:01.81587 INFO::Fitting model to feature number 85, F89
## 2022-11-01 18:17:01.819638 INFO::Fitting model to feature number 86, F90
## 2022-11-01 18:17:01.823238 INFO::Fitting model to feature number 87, F91
## 2022-11-01 18:17:01.826803 INFO::Fitting model to feature number 88, F92
## 2022-11-01 18:17:01.830388 INFO::Fitting model to feature number 89, F93
## 2022-11-01 18:17:01.833951 INFO::Fitting model to feature number 90, F94
## 2022-11-01 18:17:01.837517 INFO::Fitting model to feature number 91, F95
## 2022-11-01 18:17:01.841128 INFO::Fitting model to feature number 92, F96
## 2022-11-01 18:17:01.844671 INFO::Fitting model to feature number 93, F97
## 2022-11-01 18:17:01.848261 INFO::Fitting model to feature number 94, F98
## 2022-11-01 18:17:01.851849 INFO::Fitting model to feature number 95, F99
## 2022-11-01 18:17:01.855455 INFO::Fitting model to feature number 96, F100
## 2022-11-01 18:17:01.859085 INFO::Fitting model to feature number 97, F101
## 2022-11-01 18:17:01.862695 INFO::Fitting model to feature number 98, F102
## 2022-11-01 18:17:01.866304 INFO::Fitting model to feature number 99, F103
## 2022-11-01 18:17:01.869888 INFO::Fitting model to feature number 100, F104
## 2022-11-01 18:17:01.873462 INFO::Fitting model to feature number 101, F105
## 2022-11-01 18:17:01.877013 INFO::Fitting model to feature number 102, F106
## 2022-11-01 18:17:01.880544 INFO::Fitting model to feature number 103, F107
## 2022-11-01 18:17:01.884098 INFO::Fitting model to feature number 104, F108
## 2022-11-01 18:17:01.887617 INFO::Fitting model to feature number 105, F109
## 2022-11-01 18:17:01.891171 INFO::Fitting model to feature number 106, F110
## 2022-11-01 18:17:01.894695 INFO::Fitting model to feature number 107, F111
## 2022-11-01 18:17:01.898221 INFO::Fitting model to feature number 108, F112
## 2022-11-01 18:17:01.90168 INFO::Fitting model to feature number 109, F113
## 2022-11-01 18:17:01.938212 INFO::Fitting model to feature number 110, F114
## 2022-11-01 18:17:01.942231 INFO::Fitting model to feature number 111, F115
## 2022-11-01 18:17:01.946006 INFO::Fitting model to feature number 112, F117
## 2022-11-01 18:17:01.949726 INFO::Fitting model to feature number 113, F118
## 2022-11-01 18:17:01.953348 INFO::Fitting model to feature number 114, F119
## 2022-11-01 18:17:01.956842 INFO::Fitting model to feature number 115, F120
## 2022-11-01 18:17:01.96026 INFO::Fitting model to feature number 116, F121
## 2022-11-01 18:17:01.963653 INFO::Fitting model to feature number 117, F122
## 2022-11-01 18:17:01.967029 INFO::Fitting model to feature number 118, F123
## 2022-11-01 18:17:01.970382 INFO::Fitting model to feature number 119, F124
## 2022-11-01 18:17:01.973728 INFO::Fitting model to feature number 120, F125
## 2022-11-01 18:17:01.977075 INFO::Fitting model to feature number 121, F126
## 2022-11-01 18:17:01.980407 INFO::Fitting model to feature number 122, F127
## 2022-11-01 18:17:01.983898 INFO::Fitting model to feature number 123, F128
## 2022-11-01 18:17:01.987308 INFO::Fitting model to feature number 124, F129
## 2022-11-01 18:17:01.990703 INFO::Fitting model to feature number 125, F130
## 2022-11-01 18:17:01.994092 INFO::Fitting model to feature number 126, F131
## 2022-11-01 18:17:01.997539 INFO::Fitting model to feature number 127, F132
## 2022-11-01 18:17:02.000916 INFO::Fitting model to feature number 128, F133
## 2022-11-01 18:17:02.004309 INFO::Fitting model to feature number 129, F134
## 2022-11-01 18:17:02.007702 INFO::Fitting model to feature number 130, F135
## 2022-11-01 18:17:02.011267 INFO::Fitting model to feature number 131, F136
## 2022-11-01 18:17:02.014603 INFO::Fitting model to feature number 132, F137
## 2022-11-01 18:17:02.017952 INFO::Fitting model to feature number 133, F138
## 2022-11-01 18:17:02.021268 INFO::Fitting model to feature number 134, F139
## 2022-11-01 18:17:02.024563 INFO::Fitting model to feature number 135, F140
## 2022-11-01 18:17:02.027887 INFO::Fitting model to feature number 136, F141
## 2022-11-01 18:17:02.031181 INFO::Fitting model to feature number 137, F142
## 2022-11-01 18:17:02.034511 INFO::Fitting model to feature number 138, F143
## 2022-11-01 18:17:02.03781 INFO::Fitting model to feature number 139, F144
## 2022-11-01 18:17:02.041111 INFO::Fitting model to feature number 140, F145
## 2022-11-01 18:17:02.044441 INFO::Fitting model to feature number 141, F146
## 2022-11-01 18:17:02.047807 INFO::Fitting model to feature number 142, F147
## 2022-11-01 18:17:02.051182 INFO::Fitting model to feature number 143, F148
## 2022-11-01 18:17:02.054586 INFO::Fitting model to feature number 144, F149
## 2022-11-01 18:17:02.057969 INFO::Fitting model to feature number 145, F150
## 2022-11-01 18:17:02.061274 INFO::Fitting model to feature number 146, F152
## 2022-11-01 18:17:02.064557 INFO::Fitting model to feature number 147, F153
## 2022-11-01 18:17:02.067956 INFO::Fitting model to feature number 148, F154
## 2022-11-01 18:17:02.07135 INFO::Fitting model to feature number 149, F155
## 2022-11-01 18:17:02.07473 INFO::Fitting model to feature number 150, F156
## 2022-11-01 18:17:02.07809 INFO::Fitting model to feature number 151, F157
## 2022-11-01 18:17:02.081447 INFO::Fitting model to feature number 152, F158
## 2022-11-01 18:17:02.084737 INFO::Fitting model to feature number 153, F159
## 2022-11-01 18:17:02.088061 INFO::Fitting model to feature number 154, F160
## 2022-11-01 18:17:02.091384 INFO::Fitting model to feature number 155, F161
## 2022-11-01 18:17:02.094701 INFO::Fitting model to feature number 156, F162
## 2022-11-01 18:17:02.098032 INFO::Fitting model to feature number 157, F163
## 2022-11-01 18:17:02.101362 INFO::Fitting model to feature number 158, F164
## 2022-11-01 18:17:02.104669 INFO::Fitting model to feature number 159, F165
## 2022-11-01 18:17:02.108004 INFO::Fitting model to feature number 160, F166
## 2022-11-01 18:17:02.111375 INFO::Fitting model to feature number 161, F167
## 2022-11-01 18:17:02.114697 INFO::Fitting model to feature number 162, F168
## 2022-11-01 18:17:02.118074 INFO::Fitting model to feature number 163, F169
## 2022-11-01 18:17:02.121443 INFO::Fitting model to feature number 164, F170
## 2022-11-01 18:17:02.124786 INFO::Fitting model to feature number 165, F171
## 2022-11-01 18:17:02.128176 INFO::Fitting model to feature number 166, F172
## 2022-11-01 18:17:02.131616 INFO::Fitting model to feature number 167, F173
## 2022-11-01 18:17:02.135113 INFO::Fitting model to feature number 168, F174
## 2022-11-01 18:17:02.138623 INFO::Fitting model to feature number 169, F175
## 2022-11-01 18:17:02.142093 INFO::Fitting model to feature number 170, F176
## 2022-11-01 18:17:02.145532 INFO::Fitting model to feature number 171, F177
## 2022-11-01 18:17:02.148953 INFO::Fitting model to feature number 172, F178
## 2022-11-01 18:17:02.15235 INFO::Fitting model to feature number 173, F179
## 2022-11-01 18:17:02.155749 INFO::Fitting model to feature number 174, F180
## 2022-11-01 18:17:02.159093 INFO::Fitting model to feature number 175, F181
## 2022-11-01 18:17:02.162481 INFO::Fitting model to feature number 176, F182
## 2022-11-01 18:17:02.1659 INFO::Fitting model to feature number 177, F183
## 2022-11-01 18:17:02.169299 INFO::Fitting model to feature number 178, F184
## 2022-11-01 18:17:02.172683 INFO::Fitting model to feature number 179, F185
## 2022-11-01 18:17:02.176069 INFO::Fitting model to feature number 180, F186
## 2022-11-01 18:17:02.17946 INFO::Fitting model to feature number 181, F187
## 2022-11-01 18:17:02.182855 INFO::Fitting model to feature number 182, F188
## 2022-11-01 18:17:02.186316 INFO::Fitting model to feature number 183, F189
## 2022-11-01 18:17:02.189836 INFO::Fitting model to feature number 184, F190
## 2022-11-01 18:17:02.193466 INFO::Fitting model to feature number 185, F191
## 2022-11-01 18:17:02.197296 INFO::Fitting model to feature number 186, F192
## 2022-11-01 18:17:02.201019 INFO::Fitting model to feature number 187, F193
## 2022-11-01 18:17:02.204693 INFO::Fitting model to feature number 188, F194
## 2022-11-01 18:17:02.208444 INFO::Fitting model to feature number 189, F195
## 2022-11-01 18:17:02.212236 INFO::Fitting model to feature number 190, F196
## 2022-11-01 18:17:02.215967 INFO::Fitting model to feature number 191, F197
## 2022-11-01 18:17:02.219643 INFO::Fitting model to feature number 192, F198
## 2022-11-01 18:17:02.223346 INFO::Fitting model to feature number 193, F199
## 2022-11-01 18:17:02.22706 INFO::Fitting model to feature number 194, F200
## 2022-11-01 18:17:02.230829 INFO::Fitting model to feature number 195, F201
## 2022-11-01 18:17:02.234567 INFO::Fitting model to feature number 196, F202
## 2022-11-01 18:17:02.238281 INFO::Fitting model to feature number 197, F203
## 2022-11-01 18:17:02.24208 INFO::Fitting model to feature number 198, F204
## 2022-11-01 18:17:02.245821 INFO::Fitting model to feature number 199, F206
## 2022-11-01 18:17:02.249699 INFO::Fitting model to feature number 200, F207
## 2022-11-01 18:17:02.253449 INFO::Fitting model to feature number 201, F208
## 2022-11-01 18:17:02.257204 INFO::Fitting model to feature number 202, F209
## 2022-11-01 18:17:02.260896 INFO::Fitting model to feature number 203, F210
## 2022-11-01 18:17:02.264557 INFO::Fitting model to feature number 204, F211
## 2022-11-01 18:17:02.268203 INFO::Fitting model to feature number 205, F212
## 2022-11-01 18:17:02.271879 INFO::Fitting model to feature number 206, F213
## 2022-11-01 18:17:02.275512 INFO::Fitting model to feature number 207, F214
## 2022-11-01 18:17:02.27915 INFO::Fitting model to feature number 208, F215
## 2022-11-01 18:17:02.282777 INFO::Fitting model to feature number 209, F216
## 2022-11-01 18:17:02.286481 INFO::Fitting model to feature number 210, F217
## 2022-11-01 18:17:02.2903 INFO::Fitting model to feature number 211, F218
## 2022-11-01 18:17:02.293984 INFO::Fitting model to feature number 212, F219
## 2022-11-01 18:17:02.297654 INFO::Fitting model to feature number 213, F220
## 2022-11-01 18:17:02.301408 INFO::Fitting model to feature number 214, F221
## 2022-11-01 18:17:02.305113 INFO::Fitting model to feature number 215, F222
## 2022-11-01 18:17:02.308786 INFO::Fitting model to feature number 216, F223
## 2022-11-01 18:17:02.312653 INFO::Fitting model to feature number 217, F224
## 2022-11-01 18:17:02.316415 INFO::Fitting model to feature number 218, F225
## 2022-11-01 18:17:02.320186 INFO::Fitting model to feature number 219, F226
## 2022-11-01 18:17:02.323779 INFO::Fitting model to feature number 220, F227
## 2022-11-01 18:17:02.327465 INFO::Fitting model to feature number 221, F228
## 2022-11-01 18:17:02.331311 INFO::Fitting model to feature number 222, F229
## 2022-11-01 18:17:02.335066 INFO::Fitting model to feature number 223, F230
## 2022-11-01 18:17:02.338732 INFO::Fitting model to feature number 224, F231
## 2022-11-01 18:17:02.342411 INFO::Fitting model to feature number 225, F232
## 2022-11-01 18:17:02.346077 INFO::Fitting model to feature number 226, F233
## 2022-11-01 18:17:02.349769 INFO::Fitting model to feature number 227, F234
## 2022-11-01 18:17:02.353495 INFO::Fitting model to feature number 228, F235
## 2022-11-01 18:17:02.35716 INFO::Fitting model to feature number 229, F236
## 2022-11-01 18:17:02.360765 INFO::Fitting model to feature number 230, F237
## 2022-11-01 18:17:02.364619 INFO::Fitting model to feature number 231, F238
## 2022-11-01 18:17:02.368513 INFO::Fitting model to feature number 232, F239
## 2022-11-01 18:17:02.372345 INFO::Fitting model to feature number 233, F240
## 2022-11-01 18:17:02.376027 INFO::Fitting model to feature number 234, F241
## 2022-11-01 18:17:02.379687 INFO::Fitting model to feature number 235, F242
## 2022-11-01 18:17:02.383341 INFO::Fitting model to feature number 236, F243
## 2022-11-01 18:17:02.387011 INFO::Fitting model to feature number 237, F244
## 2022-11-01 18:17:02.390806 INFO::Fitting model to feature number 238, F245
## 2022-11-01 18:17:02.394677 INFO::Fitting model to feature number 239, F246
## 2022-11-01 18:17:02.398503 INFO::Fitting model to feature number 240, F247
## 2022-11-01 18:17:02.402272 INFO::Fitting model to feature number 241, F248
## 2022-11-01 18:17:02.406187 INFO::Fitting model to feature number 242, F249
## 2022-11-01 18:17:02.410115 INFO::Fitting model to feature number 243, F250
## 2022-11-01 18:17:02.413792 INFO::Fitting model to feature number 244, F252
## 2022-11-01 18:17:02.41744 INFO::Fitting model to feature number 245, F253
## 2022-11-01 18:17:02.421156 INFO::Fitting model to feature number 246, F254
## 2022-11-01 18:17:02.424785 INFO::Fitting model to feature number 247, F255
## 2022-11-01 18:17:02.428385 INFO::Fitting model to feature number 248, F256
## 2022-11-01 18:17:02.432002 INFO::Fitting model to feature number 249, F257
## 2022-11-01 18:17:02.435646 INFO::Fitting model to feature number 250, F259
## 2022-11-01 18:17:02.439203 INFO::Fitting model to feature number 251, F260
## 2022-11-01 18:17:02.44276 INFO::Fitting model to feature number 252, F261
## 2022-11-01 18:17:02.446329 INFO::Fitting model to feature number 253, F262
## 2022-11-01 18:17:02.449771 INFO::Fitting model to feature number 254, F263
## 2022-11-01 18:17:02.453262 INFO::Fitting model to feature number 255, F264
## 2022-11-01 18:17:02.456737 INFO::Fitting model to feature number 256, F265
## 2022-11-01 18:17:02.460287 INFO::Fitting model to feature number 257, F266
## 2022-11-01 18:17:02.463971 INFO::Fitting model to feature number 258, F267
## 2022-11-01 18:17:02.467567 INFO::Fitting model to feature number 259, F269
## 2022-11-01 18:17:02.471107 INFO::Fitting model to feature number 260, F270
## 2022-11-01 18:17:02.474647 INFO::Fitting model to feature number 261, F271
## 2022-11-01 18:17:02.478111 INFO::Fitting model to feature number 262, F272
## 2022-11-01 18:17:02.481631 INFO::Fitting model to feature number 263, F273
## 2022-11-01 18:17:02.485156 INFO::Fitting model to feature number 264, F274
## 2022-11-01 18:17:02.488668 INFO::Fitting model to feature number 265, F276
## 2022-11-01 18:17:02.492193 INFO::Fitting model to feature number 266, F277
## 2022-11-01 18:17:02.495742 INFO::Fitting model to feature number 267, F278
## 2022-11-01 18:17:02.499302 INFO::Fitting model to feature number 268, F279
## 2022-11-01 18:17:02.502821 INFO::Fitting model to feature number 269, F280
## 2022-11-01 18:17:02.506339 INFO::Fitting model to feature number 270, F281
## 2022-11-01 18:17:02.509914 INFO::Fitting model to feature number 271, F282
## 2022-11-01 18:17:02.513469 INFO::Fitting model to feature number 272, F283
## 2022-11-01 18:17:02.517019 INFO::Fitting model to feature number 273, F284
## 2022-11-01 18:17:02.520609 INFO::Fitting model to feature number 274, F285
## 2022-11-01 18:17:02.524199 INFO::Fitting model to feature number 275, F286
## 2022-11-01 18:17:02.527849 INFO::Fitting model to feature number 276, F287
## 2022-11-01 18:17:02.531481 INFO::Fitting model to feature number 277, F288
## 2022-11-01 18:17:02.535096 INFO::Fitting model to feature number 278, F289
## 2022-11-01 18:17:02.538707 INFO::Fitting model to feature number 279, F290
## 2022-11-01 18:17:02.542423 INFO::Fitting model to feature number 280, F292
## 2022-11-01 18:17:02.546 INFO::Fitting model to feature number 281, F293
## 2022-11-01 18:17:02.549541 INFO::Fitting model to feature number 282, F294
## 2022-11-01 18:17:02.553067 INFO::Fitting model to feature number 283, F295
## 2022-11-01 18:17:02.556571 INFO::Fitting model to feature number 284, F296
## 2022-11-01 18:17:02.560103 INFO::Fitting model to feature number 285, F297
## 2022-11-01 18:17:02.56363 INFO::Fitting model to feature number 286, F298
## 2022-11-01 18:17:02.567152 INFO::Fitting model to feature number 287, F299
## 2022-11-01 18:17:02.570661 INFO::Fitting model to feature number 288, F300
## 2022-11-01 18:17:02.574208 INFO::Fitting model to feature number 289, F301
## 2022-11-01 18:17:02.577754 INFO::Fitting model to feature number 290, F302
## 2022-11-01 18:17:02.581334 INFO::Fitting model to feature number 291, F303
## 2022-11-01 18:17:02.584819 INFO::Fitting model to feature number 292, F304
## 2022-11-01 18:17:02.588304 INFO::Fitting model to feature number 293, F305
## 2022-11-01 18:17:02.591801 INFO::Fitting model to feature number 294, F306
## 2022-11-01 18:17:02.59532 INFO::Fitting model to feature number 295, F307
## 2022-11-01 18:17:02.598847 INFO::Fitting model to feature number 296, F308
## 2022-11-01 18:17:02.602351 INFO::Fitting model to feature number 297, F309
## 2022-11-01 18:17:02.605852 INFO::Fitting model to feature number 298, F310
## 2022-11-01 18:17:02.609353 INFO::Fitting model to feature number 299, F311
## 2022-11-01 18:17:02.61285 INFO::Fitting model to feature number 300, F312
## 2022-11-01 18:17:02.616362 INFO::Fitting model to feature number 301, F313
## 2022-11-01 18:17:02.619879 INFO::Fitting model to feature number 302, F315
## 2022-11-01 18:17:02.623383 INFO::Fitting model to feature number 303, F316
## 2022-11-01 18:17:02.626924 INFO::Fitting model to feature number 304, F317
## 2022-11-01 18:17:02.630455 INFO::Fitting model to feature number 305, F318
## 2022-11-01 18:17:02.633982 INFO::Fitting model to feature number 306, F319
## 2022-11-01 18:17:02.63753 INFO::Fitting model to feature number 307, F320
## 2022-11-01 18:17:02.641036 INFO::Fitting model to feature number 308, F321
## 2022-11-01 18:17:02.644545 INFO::Fitting model to feature number 309, F322
## 2022-11-01 18:17:02.64802 INFO::Fitting model to feature number 310, F323
## 2022-11-01 18:17:02.651541 INFO::Fitting model to feature number 311, F324
## 2022-11-01 18:17:02.655063 INFO::Fitting model to feature number 312, F325
## 2022-11-01 18:17:02.658577 INFO::Fitting model to feature number 313, F326
## 2022-11-01 18:17:02.662091 INFO::Fitting model to feature number 314, F327
## 2022-11-01 18:17:02.665643 INFO::Fitting model to feature number 315, F328
## 2022-11-01 18:17:02.669173 INFO::Fitting model to feature number 316, F329
## 2022-11-01 18:17:02.672666 INFO::Fitting model to feature number 317, F330
## 2022-11-01 18:17:02.676171 INFO::Fitting model to feature number 318, F331
## 2022-11-01 18:17:02.679675 INFO::Fitting model to feature number 319, F332
## 2022-11-01 18:17:02.683167 INFO::Fitting model to feature number 320, F333
## 2022-11-01 18:17:02.686715 INFO::Fitting model to feature number 321, F334
## 2022-11-01 18:17:02.690258 INFO::Fitting model to feature number 322, F335
## 2022-11-01 18:17:02.69379 INFO::Fitting model to feature number 323, F336
## 2022-11-01 18:17:02.697335 INFO::Fitting model to feature number 324, F337
## 2022-11-01 18:17:02.700843 INFO::Fitting model to feature number 325, F338
## 2022-11-01 18:17:02.704322 INFO::Fitting model to feature number 326, F339
## 2022-11-01 18:17:02.707885 INFO::Fitting model to feature number 327, F340
## 2022-11-01 18:17:02.711503 INFO::Fitting model to feature number 328, F342
## 2022-11-01 18:17:02.715204 INFO::Fitting model to feature number 329, F343
## 2022-11-01 18:17:02.719042 INFO::Fitting model to feature number 330, F344
## 2022-11-01 18:17:02.722902 INFO::Fitting model to feature number 331, F345
## 2022-11-01 18:17:02.726736 INFO::Fitting model to feature number 332, F346
## 2022-11-01 18:17:02.730507 INFO::Fitting model to feature number 333, F347
## 2022-11-01 18:17:02.734129 INFO::Fitting model to feature number 334, F348
## 2022-11-01 18:17:02.737748 INFO::Fitting model to feature number 335, F350
## 2022-11-01 18:17:02.741368 INFO::Fitting model to feature number 336, F351
## 2022-11-01 18:17:02.744991 INFO::Fitting model to feature number 337, F352
## 2022-11-01 18:17:02.748611 INFO::Fitting model to feature number 338, F353
## 2022-11-01 18:17:02.752228 INFO::Fitting model to feature number 339, F355
## 2022-11-01 18:17:02.755803 INFO::Fitting model to feature number 340, F356
## 2022-11-01 18:17:02.759382 INFO::Fitting model to feature number 341, F357
## 2022-11-01 18:17:02.762919 INFO::Fitting model to feature number 342, F358
## 2022-11-01 18:17:02.766467 INFO::Fitting model to feature number 343, F359
## 2022-11-01 18:17:02.770007 INFO::Fitting model to feature number 344, F360
## 2022-11-01 18:17:02.773519 INFO::Fitting model to feature number 345, F361
## 2022-11-01 18:17:02.777066 INFO::Fitting model to feature number 346, F362
## 2022-11-01 18:17:02.780606 INFO::Fitting model to feature number 347, F363
## 2022-11-01 18:17:02.784102 INFO::Fitting model to feature number 348, F364
## 2022-11-01 18:17:02.787626 INFO::Fitting model to feature number 349, F365
## 2022-11-01 18:17:02.791159 INFO::Fitting model to feature number 350, F366
## 2022-11-01 18:17:02.794661 INFO::Fitting model to feature number 351, F367
## 2022-11-01 18:17:02.798148 INFO::Fitting model to feature number 352, F368
## 2022-11-01 18:17:02.801615 INFO::Fitting model to feature number 353, F369
## 2022-11-01 18:17:02.805136 INFO::Fitting model to feature number 354, F370
## 2022-11-01 18:17:02.80861 INFO::Fitting model to feature number 355, F371
## 2022-11-01 18:17:02.812115 INFO::Fitting model to feature number 356, F372
## 2022-11-01 18:17:02.815616 INFO::Fitting model to feature number 357, F373
## 2022-11-01 18:17:02.819125 INFO::Fitting model to feature number 358, F374
## 2022-11-01 18:17:02.822635 INFO::Fitting model to feature number 359, F375
## 2022-11-01 18:17:02.826129 INFO::Fitting model to feature number 360, F376
## 2022-11-01 18:17:02.829618 INFO::Fitting model to feature number 361, F377
## 2022-11-01 18:17:02.833118 INFO::Fitting model to feature number 362, F378
## 2022-11-01 18:17:02.836583 INFO::Fitting model to feature number 363, F379
## 2022-11-01 18:17:02.84006 INFO::Fitting model to feature number 364, F380
## 2022-11-01 18:17:02.843544 INFO::Fitting model to feature number 365, F381
## 2022-11-01 18:17:02.847172 INFO::Fitting model to feature number 366, F382
## 2022-11-01 18:17:02.851 INFO::Fitting model to feature number 367, F383
## 2022-11-01 18:17:02.854848 INFO::Fitting model to feature number 368, F384
## 2022-11-01 18:17:02.858564 INFO::Fitting model to feature number 369, F386
## 2022-11-01 18:17:02.862299 INFO::Fitting model to feature number 370, F387
## 2022-11-01 18:17:02.865923 INFO::Fitting model to feature number 371, F388
## 2022-11-01 18:17:02.869499 INFO::Fitting model to feature number 372, F389
## 2022-11-01 18:17:02.873115 INFO::Fitting model to feature number 373, F390
## 2022-11-01 18:17:02.876753 INFO::Fitting model to feature number 374, F391
## 2022-11-01 18:17:02.880446 INFO::Fitting model to feature number 375, F392
## 2022-11-01 18:17:02.884088 INFO::Fitting model to feature number 376, F393
## 2022-11-01 18:17:02.887692 INFO::Fitting model to feature number 377, F394
## 2022-11-01 18:17:02.891329 INFO::Fitting model to feature number 378, F395
## 2022-11-01 18:17:02.894948 INFO::Fitting model to feature number 379, F396
## 2022-11-01 18:17:02.898571 INFO::Fitting model to feature number 380, F397
## 2022-11-01 18:17:02.925307 INFO::Fitting model to feature number 381, F398
## 2022-11-01 18:17:02.929459 INFO::Fitting model to feature number 382, F399
## 2022-11-01 18:17:02.933578 INFO::Fitting model to feature number 383, F400
## 2022-11-01 18:17:02.937698 INFO::Fitting model to feature number 384, F401
## 2022-11-01 18:17:02.941756 INFO::Fitting model to feature number 385, F402
## 2022-11-01 18:17:02.945682 INFO::Fitting model to feature number 386, F403
## 2022-11-01 18:17:02.949667 INFO::Fitting model to feature number 387, F404
## 2022-11-01 18:17:02.953415 INFO::Fitting model to feature number 388, F406
## 2022-11-01 18:17:02.957139 INFO::Fitting model to feature number 389, F407
## 2022-11-01 18:17:02.960804 INFO::Fitting model to feature number 390, F408
## 2022-11-01 18:17:02.964545 INFO::Fitting model to feature number 391, F409
## 2022-11-01 18:17:02.968254 INFO::Fitting model to feature number 392, F410
## 2022-11-01 18:17:02.972007 INFO::Fitting model to feature number 393, F411
## 2022-11-01 18:17:02.975818 INFO::Fitting model to feature number 394, F412
## 2022-11-01 18:17:02.979571 INFO::Fitting model to feature number 395, F413
## 2022-11-01 18:17:02.983394 INFO::Fitting model to feature number 396, F414
## 2022-11-01 18:17:02.987159 INFO::Fitting model to feature number 397, F415
## 2022-11-01 18:17:02.990875 INFO::Fitting model to feature number 398, F416
## 2022-11-01 18:17:02.994524 INFO::Fitting model to feature number 399, F417
## 2022-11-01 18:17:02.998118 INFO::Fitting model to feature number 400, F418
## 2022-11-01 18:17:03.001777 INFO::Fitting model to feature number 401, F419
## 2022-11-01 18:17:03.005456 INFO::Fitting model to feature number 402, F420
## 2022-11-01 18:17:03.009148 INFO::Fitting model to feature number 403, F421
## 2022-11-01 18:17:03.01269 INFO::Fitting model to feature number 404, F422
## 2022-11-01 18:17:03.016199 INFO::Fitting model to feature number 405, F423
## 2022-11-01 18:17:03.019716 INFO::Fitting model to feature number 406, F425
## 2022-11-01 18:17:03.023293 INFO::Fitting model to feature number 407, F426
## 2022-11-01 18:17:03.02684 INFO::Fitting model to feature number 408, F428
## 2022-11-01 18:17:03.030383 INFO::Fitting model to feature number 409, F429
## 2022-11-01 18:17:03.033898 INFO::Fitting model to feature number 410, F430
## 2022-11-01 18:17:03.037416 INFO::Fitting model to feature number 411, F431
## 2022-11-01 18:17:03.040848 INFO::Fitting model to feature number 412, F432
## 2022-11-01 18:17:03.044274 INFO::Fitting model to feature number 413, F433
## 2022-11-01 18:17:03.04769 INFO::Fitting model to feature number 414, F434
## 2022-11-01 18:17:03.05108 INFO::Fitting model to feature number 415, F435
## 2022-11-01 18:17:03.054451 INFO::Fitting model to feature number 416, F436
## 2022-11-01 18:17:03.057851 INFO::Fitting model to feature number 417, F437
## 2022-11-01 18:17:03.061296 INFO::Fitting model to feature number 418, F438
## 2022-11-01 18:17:03.064727 INFO::Fitting model to feature number 419, F439
## 2022-11-01 18:17:03.068204 INFO::Fitting model to feature number 420, F440
## 2022-11-01 18:17:03.071632 INFO::Fitting model to feature number 421, F441
## 2022-11-01 18:17:03.075125 INFO::Fitting model to feature number 422, F442
## 2022-11-01 18:17:03.078646 INFO::Fitting model to feature number 423, F443
## 2022-11-01 18:17:03.082144 INFO::Fitting model to feature number 424, F444
## 2022-11-01 18:17:03.085597 INFO::Fitting model to feature number 425, F445
## 2022-11-01 18:17:03.089036 INFO::Fitting model to feature number 426, F446
## 2022-11-01 18:17:03.092438 INFO::Fitting model to feature number 427, F447
## 2022-11-01 18:17:03.095855 INFO::Fitting model to feature number 428, F448
## 2022-11-01 18:17:03.099323 INFO::Fitting model to feature number 429, F449
## 2022-11-01 18:17:03.10276 INFO::Fitting model to feature number 430, F450
## 2022-11-01 18:17:03.106194 INFO::Fitting model to feature number 431, F451
## 2022-11-01 18:17:03.109589 INFO::Fitting model to feature number 432, F452
## 2022-11-01 18:17:03.113048 INFO::Fitting model to feature number 433, F454
## 2022-11-01 18:17:03.116467 INFO::Fitting model to feature number 434, F455
## 2022-11-01 18:17:03.119851 INFO::Fitting model to feature number 435, F456
## 2022-11-01 18:17:03.123253 INFO::Fitting model to feature number 436, F457
## 2022-11-01 18:17:03.126703 INFO::Fitting model to feature number 437, F458
## 2022-11-01 18:17:03.130179 INFO::Fitting model to feature number 438, F459
## 2022-11-01 18:17:03.133639 INFO::Fitting model to feature number 439, F461
## 2022-11-01 18:17:03.137041 INFO::Fitting model to feature number 440, F462
## 2022-11-01 18:17:03.140356 INFO::Fitting model to feature number 441, F463
## 2022-11-01 18:17:03.143778 INFO::Fitting model to feature number 442, F464
## 2022-11-01 18:17:03.14717 INFO::Fitting model to feature number 443, F465
## 2022-11-01 18:17:03.150562 INFO::Fitting model to feature number 444, F466
## 2022-11-01 18:17:03.153921 INFO::Fitting model to feature number 445, F467
## 2022-11-01 18:17:03.157281 INFO::Fitting model to feature number 446, F468
## 2022-11-01 18:17:03.160633 INFO::Fitting model to feature number 447, F469
## 2022-11-01 18:17:03.163973 INFO::Fitting model to feature number 448, F470
## 2022-11-01 18:17:03.167287 INFO::Fitting model to feature number 449, F471
## 2022-11-01 18:17:03.170608 INFO::Fitting model to feature number 450, F474
## 2022-11-01 18:17:03.173923 INFO::Fitting model to feature number 451, F475
## 2022-11-01 18:17:03.177254 INFO::Fitting model to feature number 452, F476
## 2022-11-01 18:17:03.180606 INFO::Fitting model to feature number 453, F477
## 2022-11-01 18:17:03.183948 INFO::Fitting model to feature number 454, F478
## 2022-11-01 18:17:03.18731 INFO::Fitting model to feature number 455, F479
## 2022-11-01 18:17:03.190707 INFO::Fitting model to feature number 456, F480
## 2022-11-01 18:17:03.194063 INFO::Fitting model to feature number 457, F481
## 2022-11-01 18:17:03.197424 INFO::Fitting model to feature number 458, F482
## 2022-11-01 18:17:03.200759 INFO::Fitting model to feature number 459, F483
## 2022-11-01 18:17:03.204133 INFO::Fitting model to feature number 460, F484
## 2022-11-01 18:17:03.207503 INFO::Fitting model to feature number 461, F485
## 2022-11-01 18:17:03.210876 INFO::Fitting model to feature number 462, F486
## 2022-11-01 18:17:03.214221 INFO::Fitting model to feature number 463, F487
## 2022-11-01 18:17:03.217569 INFO::Fitting model to feature number 464, F488
## 2022-11-01 18:17:03.220932 INFO::Fitting model to feature number 465, F489
## 2022-11-01 18:17:03.224326 INFO::Fitting model to feature number 466, F490
## 2022-11-01 18:17:03.227787 INFO::Fitting model to feature number 467, F491
## 2022-11-01 18:17:03.231177 INFO::Fitting model to feature number 468, F492
## 2022-11-01 18:17:03.234619 INFO::Fitting model to feature number 469, F493
## 2022-11-01 18:17:03.237961 INFO::Fitting model to feature number 470, F494
## 2022-11-01 18:17:03.241311 INFO::Fitting model to feature number 471, F495
## 2022-11-01 18:17:03.244628 INFO::Fitting model to feature number 472, F496
## 2022-11-01 18:17:03.247941 INFO::Fitting model to feature number 473, F497
## 2022-11-01 18:17:03.251269 INFO::Fitting model to feature number 474, F498
## 2022-11-01 18:17:03.25464 INFO::Fitting model to feature number 475, F499
## 2022-11-01 18:17:03.257965 INFO::Fitting model to feature number 476, F500
## 2022-11-01 18:17:03.261276 INFO::Fitting model to feature number 477, F501
## 2022-11-01 18:17:03.264571 INFO::Fitting model to feature number 478, F502
## 2022-11-01 18:17:03.267884 INFO::Fitting model to feature number 479, F503
## 2022-11-01 18:17:03.271198 INFO::Fitting model to feature number 480, F504
## 2022-11-01 18:17:03.27455 INFO::Fitting model to feature number 481, F505
## 2022-11-01 18:17:03.277888 INFO::Fitting model to feature number 482, F506
## 2022-11-01 18:17:03.281305 INFO::Fitting model to feature number 483, F507
## 2022-11-01 18:17:03.284671 INFO::Fitting model to feature number 484, F508
## 2022-11-01 18:17:03.288054 INFO::Fitting model to feature number 485, F509
## 2022-11-01 18:17:03.291488 INFO::Fitting model to feature number 486, F510
## 2022-11-01 18:17:03.294881 INFO::Fitting model to feature number 487, F511
## 2022-11-01 18:17:03.298299 INFO::Fitting model to feature number 488, F512
## 2022-11-01 18:17:03.301663 INFO::Fitting model to feature number 489, F513
## 2022-11-01 18:17:03.305082 INFO::Fitting model to feature number 490, F514
## 2022-11-01 18:17:03.308465 INFO::Fitting model to feature number 491, F515
## 2022-11-01 18:17:03.311923 INFO::Fitting model to feature number 492, F516
## 2022-11-01 18:17:03.315327 INFO::Fitting model to feature number 493, F517
## 2022-11-01 18:17:03.318711 INFO::Fitting model to feature number 494, F518
## 2022-11-01 18:17:03.322098 INFO::Fitting model to feature number 495, F519
## 2022-11-01 18:17:03.325467 INFO::Fitting model to feature number 496, F520
## 2022-11-01 18:17:03.328817 INFO::Fitting model to feature number 497, F521
## 2022-11-01 18:17:03.332201 INFO::Fitting model to feature number 498, F522
## 2022-11-01 18:17:03.335569 INFO::Fitting model to feature number 499, F523
## 2022-11-01 18:17:03.338939 INFO::Fitting model to feature number 500, F524
## 2022-11-01 18:17:03.342335 INFO::Fitting model to feature number 501, F525
## 2022-11-01 18:17:03.345808 INFO::Fitting model to feature number 502, F526
## 2022-11-01 18:17:03.349344 INFO::Fitting model to feature number 503, F527
## 2022-11-01 18:17:03.352837 INFO::Fitting model to feature number 504, F528
## 2022-11-01 18:17:03.356278 INFO::Fitting model to feature number 505, F529
## 2022-11-01 18:17:03.359715 INFO::Fitting model to feature number 506, F530
## 2022-11-01 18:17:03.363164 INFO::Fitting model to feature number 507, F531
## 2022-11-01 18:17:03.366633 INFO::Fitting model to feature number 508, F532
## 2022-11-01 18:17:03.370156 INFO::Fitting model to feature number 509, F533
## 2022-11-01 18:17:03.373588 INFO::Fitting model to feature number 510, F534
## 2022-11-01 18:17:03.377035 INFO::Fitting model to feature number 511, F535
## 2022-11-01 18:17:03.380486 INFO::Fitting model to feature number 512, F536
## 2022-11-01 18:17:03.38395 INFO::Fitting model to feature number 513, F537
## 2022-11-01 18:17:03.387436 INFO::Fitting model to feature number 514, F539
## 2022-11-01 18:17:03.390941 INFO::Fitting model to feature number 515, F540
## 2022-11-01 18:17:03.39453 INFO::Fitting model to feature number 516, F541
## 2022-11-01 18:17:03.398022 INFO::Fitting model to feature number 517, F543
## 2022-11-01 18:17:03.401554 INFO::Fitting model to feature number 518, F544
## 2022-11-01 18:17:03.405061 INFO::Fitting model to feature number 519, F545
## 2022-11-01 18:17:03.40854 INFO::Fitting model to feature number 520, F546
## 2022-11-01 18:17:03.412065 INFO::Fitting model to feature number 521, F547
## 2022-11-01 18:17:03.415575 INFO::Fitting model to feature number 522, F548
## 2022-11-01 18:17:03.419083 INFO::Fitting model to feature number 523, F549
## 2022-11-01 18:17:03.422595 INFO::Fitting model to feature number 524, F550
## 2022-11-01 18:17:03.426089 INFO::Fitting model to feature number 525, F551
## 2022-11-01 18:17:03.429556 INFO::Fitting model to feature number 526, F552
## 2022-11-01 18:17:03.433052 INFO::Fitting model to feature number 527, F553
## 2022-11-01 18:17:03.436532 INFO::Fitting model to feature number 528, F554
## 2022-11-01 18:17:03.439992 INFO::Fitting model to feature number 529, F555
## 2022-11-01 18:17:03.443479 INFO::Fitting model to feature number 530, F556
## 2022-11-01 18:17:03.446985 INFO::Fitting model to feature number 531, F557
## 2022-11-01 18:17:03.450471 INFO::Fitting model to feature number 532, F558
## 2022-11-01 18:17:03.453949 INFO::Fitting model to feature number 533, F559
## 2022-11-01 18:17:03.457413 INFO::Fitting model to feature number 534, F560
## 2022-11-01 18:17:03.460852 INFO::Fitting model to feature number 535, F561
## 2022-11-01 18:17:03.464394 INFO::Fitting model to feature number 536, F562
## 2022-11-01 18:17:03.467976 INFO::Fitting model to feature number 537, F563
## 2022-11-01 18:17:03.47157 INFO::Fitting model to feature number 538, F564
## 2022-11-01 18:17:03.475175 INFO::Fitting model to feature number 539, F566
## 2022-11-01 18:17:03.478849 INFO::Fitting model to feature number 540, F567
## 2022-11-01 18:17:03.482478 INFO::Fitting model to feature number 541, F568
## 2022-11-01 18:17:03.486062 INFO::Fitting model to feature number 542, F569
## 2022-11-01 18:17:03.489615 INFO::Fitting model to feature number 543, F570
## 2022-11-01 18:17:03.493124 INFO::Fitting model to feature number 544, F571
## 2022-11-01 18:17:03.496624 INFO::Fitting model to feature number 545, F572
## 2022-11-01 18:17:03.500147 INFO::Fitting model to feature number 546, F573
## 2022-11-01 18:17:03.503672 INFO::Fitting model to feature number 547, F574
## 2022-11-01 18:17:03.507184 INFO::Fitting model to feature number 548, F575
## 2022-11-01 18:17:03.510702 INFO::Fitting model to feature number 549, F576
## 2022-11-01 18:17:03.514209 INFO::Fitting model to feature number 550, F577
## 2022-11-01 18:17:03.517656 INFO::Fitting model to feature number 551, F578
## 2022-11-01 18:17:03.521177 INFO::Fitting model to feature number 552, F579
## 2022-11-01 18:17:03.524637 INFO::Fitting model to feature number 553, F580
## 2022-11-01 18:17:03.528107 INFO::Fitting model to feature number 554, F581
## 2022-11-01 18:17:03.531596 INFO::Fitting model to feature number 555, F582
## 2022-11-01 18:17:03.535081 INFO::Fitting model to feature number 556, F583
## 2022-11-01 18:17:03.538601 INFO::Fitting model to feature number 557, F584
## 2022-11-01 18:17:03.542066 INFO::Fitting model to feature number 558, F585
## 2022-11-01 18:17:03.545526 INFO::Fitting model to feature number 559, F586
## 2022-11-01 18:17:03.548986 INFO::Fitting model to feature number 560, F587
## 2022-11-01 18:17:03.552409 INFO::Fitting model to feature number 561, F588
## 2022-11-01 18:17:03.555901 INFO::Fitting model to feature number 562, F589
## 2022-11-01 18:17:03.559373 INFO::Fitting model to feature number 563, F590
## 2022-11-01 18:17:03.562927 INFO::Fitting model to feature number 564, F591
## 2022-11-01 18:17:03.566442 INFO::Fitting model to feature number 565, F592
## 2022-11-01 18:17:03.569926 INFO::Fitting model to feature number 566, F593
## 2022-11-01 18:17:03.573391 INFO::Fitting model to feature number 567, F594
## 2022-11-01 18:17:03.576952 INFO::Fitting model to feature number 568, F595
## 2022-11-01 18:17:03.5806 INFO::Fitting model to feature number 569, F596
## 2022-11-01 18:17:03.584206 INFO::Fitting model to feature number 570, F597
## 2022-11-01 18:17:03.587754 INFO::Fitting model to feature number 571, F598
## 2022-11-01 18:17:03.591372 INFO::Fitting model to feature number 572, F599
## 2022-11-01 18:17:03.595001 INFO::Fitting model to feature number 573, F600
## 2022-11-01 18:17:03.598558 INFO::Fitting model to feature number 574, F601
## 2022-11-01 18:17:03.60219 INFO::Fitting model to feature number 575, F602
## 2022-11-01 18:17:03.605798 INFO::Fitting model to feature number 576, F603
## 2022-11-01 18:17:03.609402 INFO::Fitting model to feature number 577, F605
## 2022-11-01 18:17:03.613021 INFO::Fitting model to feature number 578, F606
## 2022-11-01 18:17:03.616645 INFO::Fitting model to feature number 579, F607
## 2022-11-01 18:17:03.620358 INFO::Fitting model to feature number 580, F608
## 2022-11-01 18:17:03.623985 INFO::Fitting model to feature number 581, F609
## 2022-11-01 18:17:03.627562 INFO::Fitting model to feature number 582, F610
## 2022-11-01 18:17:03.631222 INFO::Fitting model to feature number 583, F611
## 2022-11-01 18:17:03.634972 INFO::Fitting model to feature number 584, F612
## 2022-11-01 18:17:03.63873 INFO::Fitting model to feature number 585, F613
## 2022-11-01 18:17:03.642478 INFO::Fitting model to feature number 586, F614
## 2022-11-01 18:17:03.646155 INFO::Fitting model to feature number 587, F615
## 2022-11-01 18:17:03.649763 INFO::Fitting model to feature number 588, F616
## 2022-11-01 18:17:03.653408 INFO::Fitting model to feature number 589, F617
## 2022-11-01 18:17:03.656966 INFO::Fitting model to feature number 590, F618
## 2022-11-01 18:17:03.660679 INFO::Fitting model to feature number 591, F619
## 2022-11-01 18:17:03.664329 INFO::Fitting model to feature number 592, F620
## 2022-11-01 18:17:03.667999 INFO::Fitting model to feature number 593, F621
## 2022-11-01 18:17:03.671594 INFO::Fitting model to feature number 594, F622
## 2022-11-01 18:17:03.675194 INFO::Fitting model to feature number 595, F623
## 2022-11-01 18:17:03.678829 INFO::Fitting model to feature number 596, F624
## 2022-11-01 18:17:03.682468 INFO::Fitting model to feature number 597, F625
## 2022-11-01 18:17:03.685971 INFO::Fitting model to feature number 598, F626
## 2022-11-01 18:17:03.689479 INFO::Fitting model to feature number 599, F627
## 2022-11-01 18:17:03.692992 INFO::Fitting model to feature number 600, F628
## 2022-11-01 18:17:03.69658 INFO::Fitting model to feature number 601, F629
## 2022-11-01 18:17:03.700204 INFO::Fitting model to feature number 602, F630
## 2022-11-01 18:17:03.703811 INFO::Fitting model to feature number 603, F631
## 2022-11-01 18:17:03.707405 INFO::Fitting model to feature number 604, F632
## 2022-11-01 18:17:03.710998 INFO::Fitting model to feature number 605, F633
## 2022-11-01 18:17:03.714676 INFO::Fitting model to feature number 606, F634
## 2022-11-01 18:17:03.718272 INFO::Fitting model to feature number 607, F635
## 2022-11-01 18:17:03.721815 INFO::Fitting model to feature number 608, F636
## 2022-11-01 18:17:03.725339 INFO::Fitting model to feature number 609, F637
## 2022-11-01 18:17:03.728843 INFO::Fitting model to feature number 610, F638
## 2022-11-01 18:17:03.732381 INFO::Fitting model to feature number 611, F639
## 2022-11-01 18:17:03.735806 INFO::Fitting model to feature number 612, F640
## 2022-11-01 18:17:03.739297 INFO::Fitting model to feature number 613, F641
## 2022-11-01 18:17:03.742779 INFO::Fitting model to feature number 614, F642
## 2022-11-01 18:17:03.746309 INFO::Fitting model to feature number 615, F643
## 2022-11-01 18:17:03.749854 INFO::Fitting model to feature number 616, F644
## 2022-11-01 18:17:03.753433 INFO::Fitting model to feature number 617, F645
## 2022-11-01 18:17:03.757007 INFO::Fitting model to feature number 618, F646
## 2022-11-01 18:17:03.760506 INFO::Fitting model to feature number 619, F647
## 2022-11-01 18:17:03.764033 INFO::Fitting model to feature number 620, F648
## 2022-11-01 18:17:03.767535 INFO::Fitting model to feature number 621, F649
## 2022-11-01 18:17:03.771107 INFO::Fitting model to feature number 622, F650
## 2022-11-01 18:17:03.774674 INFO::Fitting model to feature number 623, F651
## 2022-11-01 18:17:03.778322 INFO::Fitting model to feature number 624, F652
## 2022-11-01 18:17:03.781875 INFO::Fitting model to feature number 625, F653
## 2022-11-01 18:17:03.785431 INFO::Fitting model to feature number 626, F654
## 2022-11-01 18:17:03.788996 INFO::Fitting model to feature number 627, F655
## 2022-11-01 18:17:03.792538 INFO::Fitting model to feature number 628, F656
## 2022-11-01 18:17:03.796119 INFO::Fitting model to feature number 629, F657
## 2022-11-01 18:17:03.799684 INFO::Fitting model to feature number 630, F658
## 2022-11-01 18:17:03.803302 INFO::Fitting model to feature number 631, F659
## 2022-11-01 18:17:03.806997 INFO::Fitting model to feature number 632, F660
## 2022-11-01 18:17:03.810568 INFO::Fitting model to feature number 633, F661
## 2022-11-01 18:17:03.81419 INFO::Fitting model to feature number 634, F662
## 2022-11-01 18:17:03.817793 INFO::Fitting model to feature number 635, F663
## 2022-11-01 18:17:03.821352 INFO::Fitting model to feature number 636, F664
## 2022-11-01 18:17:03.824905 INFO::Fitting model to feature number 637, F665
## 2022-11-01 18:17:03.82852 INFO::Fitting model to feature number 638, F666
## 2022-11-01 18:17:03.832202 INFO::Fitting model to feature number 639, F667
## 2022-11-01 18:17:03.835688 INFO::Fitting model to feature number 640, F668
## 2022-11-01 18:17:03.839226 INFO::Fitting model to feature number 641, F669
## 2022-11-01 18:17:03.842924 INFO::Fitting model to feature number 642, F670
## 2022-11-01 18:17:03.846711 INFO::Fitting model to feature number 643, F671
## 2022-11-01 18:17:03.850479 INFO::Fitting model to feature number 644, F672
## 2022-11-01 18:17:03.854213 INFO::Fitting model to feature number 645, F673
## 2022-11-01 18:17:03.857896 INFO::Fitting model to feature number 646, F674
## 2022-11-01 18:17:03.861578 INFO::Fitting model to feature number 647, F675
## 2022-11-01 18:17:03.865247 INFO::Fitting model to feature number 648, F676
## 2022-11-01 18:17:03.868956 INFO::Fitting model to feature number 649, F677
## 2022-11-01 18:17:03.872685 INFO::Fitting model to feature number 650, F678
## 2022-11-01 18:17:03.896237 INFO::Fitting model to feature number 651, F679
## 2022-11-01 18:17:03.900145 INFO::Fitting model to feature number 652, F680
## 2022-11-01 18:17:03.903843 INFO::Fitting model to feature number 653, F681
## 2022-11-01 18:17:03.907506 INFO::Fitting model to feature number 654, F682
## 2022-11-01 18:17:03.911108 INFO::Fitting model to feature number 655, F683
## 2022-11-01 18:17:03.914668 INFO::Fitting model to feature number 656, F684
## 2022-11-01 18:17:03.918209 INFO::Fitting model to feature number 657, F685
## 2022-11-01 18:17:03.921705 INFO::Fitting model to feature number 658, F686
## 2022-11-01 18:17:03.925211 INFO::Fitting model to feature number 659, F687
## 2022-11-01 18:17:03.928684 INFO::Fitting model to feature number 660, F688
## 2022-11-01 18:17:03.932147 INFO::Fitting model to feature number 661, F689
## 2022-11-01 18:17:03.935614 INFO::Fitting model to feature number 662, F690
## 2022-11-01 18:17:03.939076 INFO::Fitting model to feature number 663, F691
## 2022-11-01 18:17:03.942514 INFO::Fitting model to feature number 664, F692
## 2022-11-01 18:17:03.945949 INFO::Fitting model to feature number 665, F693
## 2022-11-01 18:17:03.94937 INFO::Fitting model to feature number 666, F694
## 2022-11-01 18:17:03.952785 INFO::Fitting model to feature number 667, F695
## 2022-11-01 18:17:03.956254 INFO::Fitting model to feature number 668, F696
## 2022-11-01 18:17:03.959784 INFO::Fitting model to feature number 669, F697
## 2022-11-01 18:17:03.963275 INFO::Fitting model to feature number 670, F698
## 2022-11-01 18:17:03.966742 INFO::Fitting model to feature number 671, F699
## 2022-11-01 18:17:03.97013 INFO::Fitting model to feature number 672, F700
## 2022-11-01 18:17:03.973567 INFO::Fitting model to feature number 673, F701
## 2022-11-01 18:17:03.976979 INFO::Fitting model to feature number 674, F702
## 2022-11-01 18:17:03.980374 INFO::Fitting model to feature number 675, F704
## 2022-11-01 18:17:03.983827 INFO::Fitting model to feature number 676, F705
## 2022-11-01 18:17:03.987232 INFO::Fitting model to feature number 677, F706
## 2022-11-01 18:17:03.990638 INFO::Fitting model to feature number 678, F707
## 2022-11-01 18:17:03.994027 INFO::Fitting model to feature number 679, F708
## 2022-11-01 18:17:03.997409 INFO::Fitting model to feature number 680, F709
## 2022-11-01 18:17:04.000847 INFO::Fitting model to feature number 681, F710
## 2022-11-01 18:17:04.004303 INFO::Fitting model to feature number 682, F711
## 2022-11-01 18:17:04.007736 INFO::Fitting model to feature number 683, F712
## 2022-11-01 18:17:04.011098 INFO::Fitting model to feature number 684, F713
## 2022-11-01 18:17:04.014558 INFO::Fitting model to feature number 685, F714
## 2022-11-01 18:17:04.019502 INFO::Fitting model to feature number 686, F715
## 2022-11-01 18:17:04.023035 INFO::Fitting model to feature number 687, F716
## 2022-11-01 18:17:04.02649 INFO::Fitting model to feature number 688, F717
## 2022-11-01 18:17:04.02989 INFO::Fitting model to feature number 689, F718
## 2022-11-01 18:17:04.033258 INFO::Fitting model to feature number 690, F719
## 2022-11-01 18:17:04.036624 INFO::Fitting model to feature number 691, F720
## 2022-11-01 18:17:04.040061 INFO::Fitting model to feature number 692, F721
## 2022-11-01 18:17:04.043484 INFO::Fitting model to feature number 693, F722
## 2022-11-01 18:17:04.046873 INFO::Fitting model to feature number 694, F723
## 2022-11-01 18:17:04.050295 INFO::Fitting model to feature number 695, F724
## 2022-11-01 18:17:04.053765 INFO::Fitting model to feature number 696, F725
## 2022-11-01 18:17:04.057216 INFO::Fitting model to feature number 697, F726
## 2022-11-01 18:17:04.060623 INFO::Fitting model to feature number 698, F727
## 2022-11-01 18:17:04.064089 INFO::Fitting model to feature number 699, F728
## 2022-11-01 18:17:04.067587 INFO::Fitting model to feature number 700, F729
## 2022-11-01 18:17:04.071098 INFO::Fitting model to feature number 701, F730
## 2022-11-01 18:17:04.07469 INFO::Fitting model to feature number 702, F731
## 2022-11-01 18:17:04.078258 INFO::Fitting model to feature number 703, F732
## 2022-11-01 18:17:04.081877 INFO::Fitting model to feature number 704, F733
## 2022-11-01 18:17:04.085465 INFO::Fitting model to feature number 705, F734
## 2022-11-01 18:17:04.089034 INFO::Fitting model to feature number 706, F735
## 2022-11-01 18:17:04.09257 INFO::Fitting model to feature number 707, F736
## 2022-11-01 18:17:04.096095 INFO::Fitting model to feature number 708, F737
## 2022-11-01 18:17:04.099557 INFO::Fitting model to feature number 709, F739
## 2022-11-01 18:17:04.103024 INFO::Fitting model to feature number 710, F740
## 2022-11-01 18:17:04.106505 INFO::Fitting model to feature number 711, F741
## 2022-11-01 18:17:04.110181 INFO::Fitting model to feature number 712, F742
## 2022-11-01 18:17:04.113776 INFO::Fitting model to feature number 713, F743
## 2022-11-01 18:17:04.117325 INFO::Fitting model to feature number 714, F744
## 2022-11-01 18:17:04.120978 INFO::Fitting model to feature number 715, F745
## 2022-11-01 18:17:04.124448 INFO::Fitting model to feature number 716, F746
## 2022-11-01 18:17:04.127936 INFO::Fitting model to feature number 717, F747
## 2022-11-01 18:17:04.131378 INFO::Fitting model to feature number 718, F748
## 2022-11-01 18:17:04.1348 INFO::Fitting model to feature number 719, F749
## 2022-11-01 18:17:04.138238 INFO::Fitting model to feature number 720, F750
## 2022-11-01 18:17:04.141613 INFO::Fitting model to feature number 721, F751
## 2022-11-01 18:17:04.145054 INFO::Fitting model to feature number 722, F752
## 2022-11-01 18:17:04.148523 INFO::Fitting model to feature number 723, F753
## 2022-11-01 18:17:04.151956 INFO::Fitting model to feature number 724, F754
## 2022-11-01 18:17:04.155422 INFO::Fitting model to feature number 725, F755
## 2022-11-01 18:17:04.158953 INFO::Fitting model to feature number 726, F756
## 2022-11-01 18:17:04.162433 INFO::Fitting model to feature number 727, F757
## 2022-11-01 18:17:04.165871 INFO::Fitting model to feature number 728, F758
## 2022-11-01 18:17:04.169329 INFO::Fitting model to feature number 729, F759
## 2022-11-01 18:17:04.172764 INFO::Fitting model to feature number 730, F760
## 2022-11-01 18:17:04.176266 INFO::Fitting model to feature number 731, F761
## 2022-11-01 18:17:04.179786 INFO::Fitting model to feature number 732, F762
## 2022-11-01 18:17:04.183214 INFO::Fitting model to feature number 733, F763
## 2022-11-01 18:17:04.186692 INFO::Fitting model to feature number 734, F764
## 2022-11-01 18:17:04.190152 INFO::Fitting model to feature number 735, F765
## 2022-11-01 18:17:04.193653 INFO::Fitting model to feature number 736, F766
## 2022-11-01 18:17:04.19711 INFO::Fitting model to feature number 737, F767
## 2022-11-01 18:17:04.200508 INFO::Fitting model to feature number 738, F768
## 2022-11-01 18:17:04.203961 INFO::Fitting model to feature number 739, F769
## 2022-11-01 18:17:04.20743 INFO::Fitting model to feature number 740, F770
## 2022-11-01 18:17:04.210938 INFO::Fitting model to feature number 741, F771
## 2022-11-01 18:17:04.214442 INFO::Fitting model to feature number 742, F772
## 2022-11-01 18:17:04.217951 INFO::Fitting model to feature number 743, F773
## 2022-11-01 18:17:04.221455 INFO::Fitting model to feature number 744, F774
## 2022-11-01 18:17:04.22493 INFO::Fitting model to feature number 745, F775
## 2022-11-01 18:17:04.228402 INFO::Fitting model to feature number 746, F776
## 2022-11-01 18:17:04.231876 INFO::Fitting model to feature number 747, F777
## 2022-11-01 18:17:04.235324 INFO::Fitting model to feature number 748, F778
## 2022-11-01 18:17:04.238746 INFO::Fitting model to feature number 749, F779
## 2022-11-01 18:17:04.242179 INFO::Fitting model to feature number 750, F780
## 2022-11-01 18:17:04.245591 INFO::Fitting model to feature number 751, F781
## 2022-11-01 18:17:04.24902 INFO::Fitting model to feature number 752, F782
## 2022-11-01 18:17:04.25243 INFO::Fitting model to feature number 753, F783
## 2022-11-01 18:17:04.255828 INFO::Fitting model to feature number 754, F784
## 2022-11-01 18:17:04.259207 INFO::Fitting model to feature number 755, F785
## 2022-11-01 18:17:04.262566 INFO::Fitting model to feature number 756, F786
## 2022-11-01 18:17:04.265934 INFO::Fitting model to feature number 757, F787
## 2022-11-01 18:17:04.269336 INFO::Fitting model to feature number 758, F788
## 2022-11-01 18:17:04.272666 INFO::Fitting model to feature number 759, F789
## 2022-11-01 18:17:04.276015 INFO::Fitting model to feature number 760, F790
## 2022-11-01 18:17:04.279358 INFO::Fitting model to feature number 761, F791
## 2022-11-01 18:17:04.282757 INFO::Fitting model to feature number 762, F792
## 2022-11-01 18:17:04.286126 INFO::Fitting model to feature number 763, F793
## 2022-11-01 18:17:04.289463 INFO::Fitting model to feature number 764, F794
## 2022-11-01 18:17:04.292783 INFO::Fitting model to feature number 765, F795
## 2022-11-01 18:17:04.296144 INFO::Fitting model to feature number 766, F796
## 2022-11-01 18:17:04.305178 INFO::Fitting model to feature number 767, F797
## 2022-11-01 18:17:04.309414 INFO::Fitting model to feature number 768, F798
## 2022-11-01 18:17:04.313018 INFO::Fitting model to feature number 769, F799
## 2022-11-01 18:17:04.316633 INFO::Fitting model to feature number 770, F800
## 2022-11-01 18:17:04.32024 INFO::Fitting model to feature number 771, F801
## 2022-11-01 18:17:04.323874 INFO::Fitting model to feature number 772, F802
## 2022-11-01 18:17:04.3276 INFO::Fitting model to feature number 773, F803
## 2022-11-01 18:17:04.331243 INFO::Fitting model to feature number 774, F804
## 2022-11-01 18:17:04.334837 INFO::Fitting model to feature number 775, F805
## 2022-11-01 18:17:04.338573 INFO::Fitting model to feature number 776, F806
## 2022-11-01 18:17:04.342155 INFO::Fitting model to feature number 777, F808
## 2022-11-01 18:17:04.345766 INFO::Fitting model to feature number 778, F809
## 2022-11-01 18:17:04.349409 INFO::Fitting model to feature number 779, F810
## 2022-11-01 18:17:04.352966 INFO::Fitting model to feature number 780, F811
## 2022-11-01 18:17:04.356542 INFO::Fitting model to feature number 781, F812
## 2022-11-01 18:17:04.360093 INFO::Fitting model to feature number 782, F813
## 2022-11-01 18:17:04.363602 INFO::Fitting model to feature number 783, F814
## 2022-11-01 18:17:04.367125 INFO::Fitting model to feature number 784, F815
## 2022-11-01 18:17:04.370691 INFO::Fitting model to feature number 785, F816
## 2022-11-01 18:17:04.374412 INFO::Fitting model to feature number 786, F817
## 2022-11-01 18:17:04.378223 INFO::Fitting model to feature number 787, F818
## 2022-11-01 18:17:04.382113 INFO::Fitting model to feature number 788, F819
## 2022-11-01 18:17:04.385962 INFO::Fitting model to feature number 789, F820
## 2022-11-01 18:17:04.389851 INFO::Fitting model to feature number 790, F821
## 2022-11-01 18:17:04.393723 INFO::Fitting model to feature number 791, F822
## 2022-11-01 18:17:04.397534 INFO::Fitting model to feature number 792, F823
## 2022-11-01 18:17:04.401367 INFO::Fitting model to feature number 793, F824
## 2022-11-01 18:17:04.405217 INFO::Fitting model to feature number 794, F825
## 2022-11-01 18:17:04.409083 INFO::Fitting model to feature number 795, F826
## 2022-11-01 18:17:04.41295 INFO::Fitting model to feature number 796, F827
## 2022-11-01 18:17:04.416851 INFO::Fitting model to feature number 797, F828
## 2022-11-01 18:17:04.42069 INFO::Fitting model to feature number 798, F829
## 2022-11-01 18:17:04.424591 INFO::Fitting model to feature number 799, F830
## 2022-11-01 18:17:04.428489 INFO::Fitting model to feature number 800, F831
## 2022-11-01 18:17:04.432358 INFO::Fitting model to feature number 801, F832
## 2022-11-01 18:17:04.436206 INFO::Fitting model to feature number 802, F833
## 2022-11-01 18:17:04.440228 INFO::Fitting model to feature number 803, F834
## 2022-11-01 18:17:04.444136 INFO::Fitting model to feature number 804, F835
## 2022-11-01 18:17:04.448133 INFO::Fitting model to feature number 805, F836
## 2022-11-01 18:17:04.452114 INFO::Fitting model to feature number 806, F837
## 2022-11-01 18:17:04.456028 INFO::Fitting model to feature number 807, F838
## 2022-11-01 18:17:04.459941 INFO::Fitting model to feature number 808, F839
## 2022-11-01 18:17:04.463799 INFO::Fitting model to feature number 809, F840
## 2022-11-01 18:17:04.46761 INFO::Fitting model to feature number 810, F841
## 2022-11-01 18:17:04.471308 INFO::Fitting model to feature number 811, F842
## 2022-11-01 18:17:04.475167 INFO::Fitting model to feature number 812, F843
## 2022-11-01 18:17:04.479115 INFO::Fitting model to feature number 813, F844
## 2022-11-01 18:17:04.482994 INFO::Fitting model to feature number 814, F845
## 2022-11-01 18:17:04.486908 INFO::Fitting model to feature number 815, F846
## 2022-11-01 18:17:04.490726 INFO::Fitting model to feature number 816, F847
## 2022-11-01 18:17:04.494506 INFO::Fitting model to feature number 817, F848
## 2022-11-01 18:17:04.498293 INFO::Fitting model to feature number 818, F849
## 2022-11-01 18:17:04.502027 INFO::Fitting model to feature number 819, F850
## 2022-11-01 18:17:04.505812 INFO::Fitting model to feature number 820, F851
## 2022-11-01 18:17:04.509584 INFO::Fitting model to feature number 821, F852
## 2022-11-01 18:17:04.513381 INFO::Fitting model to feature number 822, F853
## 2022-11-01 18:17:04.517147 INFO::Fitting model to feature number 823, F854
## 2022-11-01 18:17:04.520951 INFO::Fitting model to feature number 824, F855
## 2022-11-01 18:17:04.524758 INFO::Fitting model to feature number 825, F856
## 2022-11-01 18:17:04.528638 INFO::Fitting model to feature number 826, F857
## 2022-11-01 18:17:04.53249 INFO::Fitting model to feature number 827, F858
## 2022-11-01 18:17:04.536346 INFO::Fitting model to feature number 828, F859
## 2022-11-01 18:17:04.540241 INFO::Fitting model to feature number 829, F860
## 2022-11-01 18:17:04.544065 INFO::Fitting model to feature number 830, F861
## 2022-11-01 18:17:04.547814 INFO::Fitting model to feature number 831, F862
## 2022-11-01 18:17:04.551548 INFO::Fitting model to feature number 832, F863
## 2022-11-01 18:17:04.555294 INFO::Fitting model to feature number 833, F864
## 2022-11-01 18:17:04.559045 INFO::Fitting model to feature number 834, F865
## 2022-11-01 18:17:04.562797 INFO::Fitting model to feature number 835, F866
## 2022-11-01 18:17:04.566536 INFO::Fitting model to feature number 836, F867
## 2022-11-01 18:17:04.5703 INFO::Fitting model to feature number 837, F868
## 2022-11-01 18:17:04.574055 INFO::Fitting model to feature number 838, F869
## 2022-11-01 18:17:04.577822 INFO::Fitting model to feature number 839, F870
## 2022-11-01 18:17:04.581558 INFO::Fitting model to feature number 840, F871
## 2022-11-01 18:17:04.585295 INFO::Fitting model to feature number 841, F872
## 2022-11-01 18:17:04.58905 INFO::Fitting model to feature number 842, F873
## 2022-11-01 18:17:04.592807 INFO::Fitting model to feature number 843, F874
## 2022-11-01 18:17:04.596582 INFO::Fitting model to feature number 844, F875
## 2022-11-01 18:17:04.600382 INFO::Fitting model to feature number 845, F876
## 2022-11-01 18:17:04.604178 INFO::Fitting model to feature number 846, F877
## 2022-11-01 18:17:04.607971 INFO::Fitting model to feature number 847, F878
## 2022-11-01 18:17:04.611783 INFO::Fitting model to feature number 848, F879
## 2022-11-01 18:17:04.615633 INFO::Fitting model to feature number 849, F880
## 2022-11-01 18:17:04.619426 INFO::Fitting model to feature number 850, F881
## 2022-11-01 18:17:04.623485 INFO::Fitting model to feature number 851, F882
## 2022-11-01 18:17:04.627531 INFO::Fitting model to feature number 852, F883
## 2022-11-01 18:17:04.631654 INFO::Fitting model to feature number 853, F884
## 2022-11-01 18:17:04.635648 INFO::Fitting model to feature number 854, F885
## 2022-11-01 18:17:04.639529 INFO::Fitting model to feature number 855, F886
## 2022-11-01 18:17:04.643332 INFO::Fitting model to feature number 856, F887
## 2022-11-01 18:17:04.647103 INFO::Fitting model to feature number 857, F888
## 2022-11-01 18:17:04.650863 INFO::Fitting model to feature number 858, F889
## 2022-11-01 18:17:04.654604 INFO::Fitting model to feature number 859, F890
## 2022-11-01 18:17:04.658346 INFO::Fitting model to feature number 860, F891
## 2022-11-01 18:17:04.662145 INFO::Fitting model to feature number 861, F892
## 2022-11-01 18:17:04.665986 INFO::Fitting model to feature number 862, F893
## 2022-11-01 18:17:04.669805 INFO::Fitting model to feature number 863, F894
## 2022-11-01 18:17:04.673581 INFO::Fitting model to feature number 864, F895
## 2022-11-01 18:17:04.677371 INFO::Fitting model to feature number 865, F896
## 2022-11-01 18:17:04.681183 INFO::Fitting model to feature number 866, F897
## 2022-11-01 18:17:04.684969 INFO::Fitting model to feature number 867, F898
## 2022-11-01 18:17:04.68873 INFO::Fitting model to feature number 868, F899
## 2022-11-01 18:17:04.692497 INFO::Fitting model to feature number 869, F900
## 2022-11-01 18:17:04.884709 INFO::Counting total values for each feature
## 2022-11-01 18:17:05.009396 INFO::Writing residuals to file Macarron_output/maaslin2_results/residuals.rds
## 2022-11-01 18:17:05.056826 INFO::Writing fitted values to file Macarron_output/maaslin2_results/fitted.rds
## 2022-11-01 18:17:05.097526 INFO::Writing all results to file (ordered by increasing q-values): Macarron_output/maaslin2_results/all_results.tsv
## 2022-11-01 18:17:05.117618 INFO::Writing the significant results (those which are less than or equal to the threshold of 0.250000 ) to file (ordered by increasing q-values): Macarron_output/maaslin2_results/significant_results.tsv
## 2022-11-01 18:17:05.126863 INFO::Writing heatmap of significant results to file: Macarron_output/maaslin2_results/heatmap.pdf
## Warning in xtfrm.data.frame(x): cannot xtfrm data frames
## Initiating effect size calculations
## Calculating mean abundance in: IBD
## Calculating mean abundance in: Control
## Calculating effect size in: IBD
## Initiating prioritization
## Assigning ranks
## Calculating meta-rank and prioritizing metabolic features

## 2022-11-01 18:17:05.512117 INFO::Writing all prioritized metabolites to file: Macarron_output/prioritized_metabolites_all.csv
## 2022-11-01 18:17:05.523226 INFO::Writing characterizable prioritized metabolites to file: Macarron_output/prioritized_metabolites_characterizable.csv
## 2022-11-01 18:17:05.548952 INFO::Writing highly prioritized metabolites in IBD to file: Macarron_output/highly_prioritized_per_module_in_IBD.csv

3.3.2 Using dataframes as inputs

abundances_df = read.csv(file = prism_abundances, row.names = 1) # setting features as rownames
annotations_df = read.csv(file = prism_annotations, row.names = 1) # setting features as rownames
metadata_df = read.csv(file = prism_metadata, row.names = 1) # setting samples as rownames 
taxonomy_df = read.csv(file = mets_taxonomy)

# Running Macarron
prism_prioritized <- Macarron::Macarron(input_abundances = abundances_df,
                                        input_annotations = annotations_df,
                                        input_metadata = metadata_df,
                                        input_taxonomy = taxonomy_df)

3.3.3 Running Macarron as individual functions

The Macarron::Macarron() function is a wrapper for the Macarron framework. Users can also apply individual functions on the input dataframes to achieve same results as the wrapper with the added benefit of storing output from each function for other analyses. There are seven steps:

# Step 1: Storing input data in a summarized experiment object
prism_mbx <- prepInput(input_abundances = abundances_df,
                       input_annotations = annotations_df,
                       input_metadata = metadata_df)

# Step 2: Creating a distance matrix from pairwise correlations in abundances of metabolic features
prism_w <- makeDisMat(se = prism_mbx)

# Step 3: Finding covariance modules
prism_modules <- findMacMod(se = prism_mbx,
                            w = prism_w,
                            input_taxonomy = taxonomy_df)
# The output is a list containing two dataframes- module assignments and measures of success
# if evaluateMOS=TRUE. To write modules to a separate dataframe, do:
prism_module_assignments <- prism_modules[[1]]
prism_modules_mos <- prism_modules[[2]]

# Step 4: Calculating AVA
prism_ava <- calAVA(se = prism_mbx,
                    mod.assn = prism_modules)

# Step 5: Calculating q-value
prism_qval <- calQval(se = prism_mbx,
                      mod.assn = prism_modules)

# Step 6: Calculating effect size
prism_es <- calES(se = prism_mbx,
                   mac.qval = prism_qval)

# Step 7: Prioritizing metabolic features
prism_prioritized <- prioritize(se = prism_mbx,
                                mod.assn = prism_modules,
                                mac.ava = prism_ava,
                                mac.qval = prism_qval,
                                mac.es = prism_es)
# The output is a list containing two dataframes- all prioritized metabolic features and
# only characterizable metabolic features.
all_prioritized <- prism_prioritized[[1]]
char_prioritized <- prism_prioritized[[2]]

# Step 8 (optional): View only the highly prioritized metabolic features in each module
prism_highly_prioritized <- showBest(prism_prioritized)

Session info from running the demo in R can be displayed with the following command.

sessionInfo()
## R Under development (unstable) (2022-10-25 r83175)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 22.04.1 LTS
## 
## Matrix products: default
## BLAS:   /home/biocbuild/bbs-3.17-bioc/R/lib/libRblas.so
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_GB              LC_COLLATE=C              
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats4    stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] Macarron_1.3.0              SummarizedExperiment_1.29.0
##  [3] Biobase_2.59.0              GenomicRanges_1.51.0       
##  [5] GenomeInfoDb_1.35.0         IRanges_2.33.0             
##  [7] S4Vectors_0.37.0            BiocGenerics_0.45.0        
##  [9] MatrixGenerics_1.11.0       matrixStats_0.62.0         
## [11] BiocStyle_2.27.0           
## 
## loaded via a namespace (and not attached):
##   [1] mnormt_2.1.1           DBI_1.1.3              bitops_1.0-7          
##   [4] pbapply_1.5-0          deldir_1.0-6           gridExtra_2.3         
##   [7] rlang_1.0.6            magrittr_2.0.3         compiler_4.3.0        
##  [10] RSQLite_2.2.18         png_0.1-7              vctrs_0.5.0           
##  [13] stringr_1.4.1          pkgconfig_2.0.3        crayon_1.5.2          
##  [16] fastmap_1.1.0          magick_2.7.3           backports_1.4.1       
##  [19] XVector_0.39.0         utf8_1.2.2             rmarkdown_2.17        
##  [22] preprocessCore_1.61.0  bit_4.0.4              xfun_0.34             
##  [25] zlibbioc_1.45.0        cachem_1.0.6           jsonlite_1.8.3        
##  [28] blob_1.2.3             highr_0.9              DelayedArray_0.25.0   
##  [31] BiocParallel_1.33.0    psych_2.2.9            jpeg_0.1-9            
##  [34] Maaslin2_1.13.0        parallel_4.3.0         cluster_2.1.4         
##  [37] biglm_0.9-2.1          R6_2.5.1               bslib_0.4.0           
##  [40] stringi_1.7.8          RColorBrewer_1.1-3     rpart_4.1.19          
##  [43] jquerylib_0.1.4        Rcpp_1.0.9             bookdown_0.29         
##  [46] assertthat_0.2.1       iterators_1.0.14       knitr_1.40            
##  [49] WGCNA_1.71             base64enc_0.1-3        Matrix_1.5-1          
##  [52] splines_4.3.0          nnet_7.3-18            tidyselect_1.2.0      
##  [55] rstudioapi_0.14        yaml_2.3.6             doParallel_1.0.17     
##  [58] codetools_0.2-18       plyr_1.8.7             lattice_0.20-45       
##  [61] tibble_3.1.8           withr_2.5.0            KEGGREST_1.39.0       
##  [64] evaluate_0.17          foreign_0.8-83         survival_3.4-0        
##  [67] getopt_1.20.3          Biostrings_2.67.0      pillar_1.8.1          
##  [70] BiocManager_1.30.19    checkmate_2.1.0        foreach_1.5.2         
##  [73] lpsymphony_1.27.0      pcaPP_2.0-3            generics_0.1.3        
##  [76] RCurl_1.98-1.9         ggplot2_3.3.6          munsell_0.5.0         
##  [79] scales_1.2.1           glue_1.6.2             pheatmap_1.0.12       
##  [82] Hmisc_4.7-1            tools_4.3.0            interp_1.1-3          
##  [85] robustbase_0.95-0      data.table_1.14.4      mvtnorm_1.1-3         
##  [88] fastcluster_1.2.3      grid_4.3.0             optparse_1.7.3        
##  [91] impute_1.73.0          latticeExtra_0.6-30    AnnotationDbi_1.61.0  
##  [94] colorspace_2.0-3       nlme_3.1-160           GenomeInfoDbData_1.2.9
##  [97] htmlTable_2.4.1        Formula_1.2-4          cli_3.4.1             
## [100] fansi_1.0.3            dplyr_1.0.10           DEoptimR_1.0-11       
## [103] gtable_0.3.1           hash_2.2.6.2           logging_0.10-108      
## [106] dynamicTreeCut_1.63-1  sass_0.4.2             digest_0.6.30         
## [109] htmlwidgets_1.5.4      memoise_2.0.1          htmltools_0.5.3       
## [112] lifecycle_1.0.3        httr_1.4.4             GO.db_3.16.0          
## [115] bit64_4.0.5

3.4 Advanced Topics

3.4.1 Generating the input chemical taxonomy file

The input taxonomy dataframe can be generated using the input metabolic features annotation dataframe using Macarron::decorateID(). This function annotates an HMDB ID or a PubChem CID with the chemical class and subclass of the metabolite.

taxonomy_df <- decorateID(input_annotations = annotations_df)
write.csv(taxonomy_df, file="demo_taxonomy.csv", row.names = FALSE)

3.4.2 Accessory output files

3.4.2.1 Macarron.log

A record of all chosen parameters and steps that were followed during execution.

3.4.2.2 modules_measures_of_success.csv

This file provides information about the properties of covariance modules used in the analysis. By default, modules are generated using a minimum module size (MMS) (argument: min_module_size) equal to cube root of the total number of prevalent metabolic features. Macarron evaluates 9 measures of success (MOS) that collectively capture the “correctness” and chemical homogeneity of the modules. The MOS are as follows:

  • Total modules: Number of modules.
  • Singletons: Number of metabolic features that were not assigned to any module at MMS.
  • % Annotated modules: Percentage of modules that contained at least one annotated metabolic feature.
  • % Consistent assignments: Percentage of times the same metabolic feature was assigned to the same module e.g. if three metabolic features represent glucose, they should all be in the same module. This percentage must be high.
  • Max classes per module: The highest number of chemical classes observed in any module. This is evaluated using the chemical taxonomy of covarying annotated features.
  • 90p classes per module: 90th percentile of classes per module; captures the chemical homogeneity of the modules.
  • Max subclasses per module: The highest number of chemical subclasses observed in any module.
  • 90p subclasses per module: 90th percentile of subclasses per module; captures the chemical homogeneity of the modules.
  • % Features in HAM: Macarron first finds homogeneously annoted modules (HAMs): These are modules in which >75% annotated features have the same chemical class indicating that they are chemically homogeneous. It then calculates how many features the HAMs account for.

3.4.2.3 Maaslin2 results

This folder contains the Maaslin2 log file (maaslin2.log), significant associations found by Maaslin2 (significant_results.tsv) and the linear model residuals file (residuals.rds). For more information, see Maaslin2.

3.4.3 Changing defaults

3.4.3.1 Filtering metabolic features based on prevalence

Ideally, at least 50% metabolic features must be retained after prevalence filtering. By default, Macarron uses the union of metabolic features observed (non-zero abundance) in at least 70% samples of any phenotype for further analysis. This prevalence threshold may be high for some metabolomics datasets and can be changed using the min_prevalence argument.

prism_prioritized <- Macarron::Macarron(input_abundances = abundances_df,
                                        input_annotations = annotations_df,
                                        input_metadata = metadata_df,
                                        input_taxonomy = taxonomy_df,
                                        min_prevalence = 0.5)
# or
prism_w <- makeDisMat(se = prism_mbx,
                      min_prevalence = 0.5)

3.4.4 Minimum module size

By default, cube root of the total number of prevalent features is used as the minimum module size (MMS) (argument: min_module_size) for module detection and generation. We expect this to work for most real world datasets. To determine if the modules are optimal for further analysis, Macarron evaluates several measures of success (MOS) as described above. In addition to evaluating MOS for modules generated using the default MMS, Macarron also evaluates MOS for MMS values that are larger (MMS+5, MMS+10) and smaller (MMS-5, MMS-10) than the default MMS. If you find that the MOS improve with larger or smaller MMS, you may change the default accordingly. For more details about module detection, please see WGCNA and dynamicTreeCut.

# See MOS of modules generated using default
prism_modules <- findMacMod(se = prism_mbx,
                            w = prism_w,
                            input_taxonomy = taxonomy_df)
prism_modules_mos <- prism_modules[[2]]
View(prism_modules_mos)

# Change MMS
prism_modules <- findMacMod(se = prism_mbx,
                            w = prism_w,
                            input_taxonomy = taxonomy_df,
                            min_module_size = 10)

3.4.5 Specifying fixed effects, random effects and reference

Macarron uses Maaslin2 for determining the q-value of differential abundance in a phenotype of interest. For default execution, the phenotype of interest must be a category in column 1 of the metadata dataframe e.g. IBD in diagnosis in the demo. This is also the column that is picked by the metadata_variable argument for identifying the main phenotypes/conditions in any dataset (see Macarron.log file). Further, in the default execution, all columns in the metadata table are considered as fixed effects and the alphabetically first categorical variable in each covariate with two categories is considered as the reference. Maaslin2 requires reference categories to be explicitly defined for all categorical metadata with more than two categories. Defaults can be changed with the arguments fixed_effects, random_effects and reference. In the demo example, fixed effects and reference can be defined as follows:

prism_qval <- calQval(se = prism_mbx,
                      mod.assn = prism_modules,
                      metadata_variable = "diagnosis",
                      fixed_effects = c("diagnosis","age","antibiotics"),
                      reference = c("diagnosis,Control";"antibiotics,No"))

4 Command line invocation

The package source contains a script MacarronCMD.R in inst/scripts to invoke Macarron in the command line using Rscript. The inst/scripts folder also contains a README file that comprehensively documents the usage of the script.