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 object is masked from 'package:utils':
## 
##     findMatches
## 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)
## 2023-10-24 17:37:12.507984 INFO::Creating output folder.
## 2023-10-24 17:37:12.524404 INFO::Writing function arguments to log file
## Samples with both abundances and metadata: 102
## 2023-10-24 17:37:12.59373 INFO::Summarized Experiment created.
## 2023-10-24 17:37:12.595568 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.
## 2023-10-24 17:37:17.846994 INFO::Distance matrix with 869 metabolic features created.
## Initiating module detection
## 2023-10-24 17:37:17.848327 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.
## 2023-10-24 17:37:19.380437 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 feature tables folder"
## [1] "Creating output fits folder"
## [1] "Creating output figures folder"
## 2023-10-24 17:37:21.855588 INFO::Writing function arguments to log file
## 2023-10-24 17:37:21.865551 INFO::Verifying options selected are valid
## 2023-10-24 17:37:21.922182 INFO::Determining format of input files
## 2023-10-24 17:37:21.923364 INFO::Input format is data samples as columns and metadata samples as rows
## 2023-10-24 17:37:21.965308 INFO::Formula for fixed effects: expr ~  diagnosis + age + antibiotics
## 2023-10-24 17:37:21.967111 INFO::Filter data based on min abundance and min prevalence
## 2023-10-24 17:37:21.96801 INFO::Total samples in data: 102
## 2023-10-24 17:37:21.968778 INFO::Min samples required with min abundance for a feature not to be filtered: 0.000000
## 2023-10-24 17:37:21.983223 INFO::Total filtered features: 0
## 2023-10-24 17:37:21.984519 INFO::Filtered feature names from abundance and prevalence filtering:
## 2023-10-24 17:37:22.005605 INFO::Total filtered features with variance filtering: 0
## 2023-10-24 17:37:22.006716 INFO::Filtered feature names from variance filtering:
## 2023-10-24 17:37:22.00752 INFO::Running selected normalization method: NONE
## 2023-10-24 17:37:22.008319 INFO::Applying z-score to standardize continuous metadata
## 2023-10-24 17:37:22.039225 INFO::Running selected transform method: NONE
## 2023-10-24 17:37:22.040505 INFO::Running selected analysis method: LM
## 2023-10-24 17:37:22.048812 INFO::Fitting model to feature number 1, F1
## 2023-10-24 17:37:22.062158 INFO::Fitting model to feature number 2, F2
## 2023-10-24 17:37:22.066028 INFO::Fitting model to feature number 3, F3
## 2023-10-24 17:37:22.069887 INFO::Fitting model to feature number 4, F4
## 2023-10-24 17:37:22.073993 INFO::Fitting model to feature number 5, F5
## 2023-10-24 17:37:22.078603 INFO::Fitting model to feature number 6, F6
## 2023-10-24 17:37:22.082525 INFO::Fitting model to feature number 7, F7
## 2023-10-24 17:37:22.086225 INFO::Fitting model to feature number 8, F8
## 2023-10-24 17:37:22.091219 INFO::Fitting model to feature number 9, F9
## 2023-10-24 17:37:22.096208 INFO::Fitting model to feature number 10, F10
## 2023-10-24 17:37:22.101093 INFO::Fitting model to feature number 11, F11
## 2023-10-24 17:37:22.107016 INFO::Fitting model to feature number 12, F12
## 2023-10-24 17:37:22.111695 INFO::Fitting model to feature number 13, F13
## 2023-10-24 17:37:22.116191 INFO::Fitting model to feature number 14, F14
## 2023-10-24 17:37:22.120276 INFO::Fitting model to feature number 15, F15
## 2023-10-24 17:37:22.124117 INFO::Fitting model to feature number 16, F16
## 2023-10-24 17:37:22.12792 INFO::Fitting model to feature number 17, F17
## 2023-10-24 17:37:22.133488 INFO::Fitting model to feature number 18, F18
## 2023-10-24 17:37:22.138539 INFO::Fitting model to feature number 19, F19
## 2023-10-24 17:37:22.142745 INFO::Fitting model to feature number 20, F20
## 2023-10-24 17:37:22.148053 INFO::Fitting model to feature number 21, F21
## 2023-10-24 17:37:22.151853 INFO::Fitting model to feature number 22, F22
## 2023-10-24 17:37:22.155527 INFO::Fitting model to feature number 23, F23
## 2023-10-24 17:37:22.16049 INFO::Fitting model to feature number 24, F24
## 2023-10-24 17:37:22.166149 INFO::Fitting model to feature number 25, F25
## 2023-10-24 17:37:22.172789 INFO::Fitting model to feature number 26, F26
## 2023-10-24 17:37:22.177833 INFO::Fitting model to feature number 27, F27
## 2023-10-24 17:37:22.181397 INFO::Fitting model to feature number 28, F28
## 2023-10-24 17:37:22.18634 INFO::Fitting model to feature number 29, F29
## 2023-10-24 17:37:22.191022 INFO::Fitting model to feature number 30, F30
## 2023-10-24 17:37:22.194698 INFO::Fitting model to feature number 31, F31
## 2023-10-24 17:37:22.198284 INFO::Fitting model to feature number 32, F32
## 2023-10-24 17:37:22.20296 INFO::Fitting model to feature number 33, F33
## 2023-10-24 17:37:22.208511 INFO::Fitting model to feature number 34, F34
## 2023-10-24 17:37:22.213195 INFO::Fitting model to feature number 35, F35
## 2023-10-24 17:37:22.218983 INFO::Fitting model to feature number 36, F36
## 2023-10-24 17:37:22.224788 INFO::Fitting model to feature number 37, F37
## 2023-10-24 17:37:22.229588 INFO::Fitting model to feature number 38, F38
## 2023-10-24 17:37:22.233473 INFO::Fitting model to feature number 39, F39
## 2023-10-24 17:37:22.238061 INFO::Fitting model to feature number 40, F40
## 2023-10-24 17:37:22.242988 INFO::Fitting model to feature number 41, F41
## 2023-10-24 17:37:22.247528 INFO::Fitting model to feature number 42, F43
## 2023-10-24 17:37:22.252226 INFO::Fitting model to feature number 43, F44
## 2023-10-24 17:37:22.255814 INFO::Fitting model to feature number 44, F45
## 2023-10-24 17:37:22.259295 INFO::Fitting model to feature number 45, F46
## 2023-10-24 17:37:22.262787 INFO::Fitting model to feature number 46, F47
## 2023-10-24 17:37:22.266814 INFO::Fitting model to feature number 47, F48
## 2023-10-24 17:37:22.270798 INFO::Fitting model to feature number 48, F49
## 2023-10-24 17:37:22.275531 INFO::Fitting model to feature number 49, F50
## 2023-10-24 17:37:22.280157 INFO::Fitting model to feature number 50, F51
## 2023-10-24 17:37:22.285211 INFO::Fitting model to feature number 51, F52
## 2023-10-24 17:37:22.288929 INFO::Fitting model to feature number 52, F53
## 2023-10-24 17:37:22.292915 INFO::Fitting model to feature number 53, F54
## 2023-10-24 17:37:22.296532 INFO::Fitting model to feature number 54, F55
## 2023-10-24 17:37:22.300662 INFO::Fitting model to feature number 55, F56
## 2023-10-24 17:37:22.30575 INFO::Fitting model to feature number 56, F57
## 2023-10-24 17:37:22.310963 INFO::Fitting model to feature number 57, F58
## 2023-10-24 17:37:22.317254 INFO::Fitting model to feature number 58, F59
## 2023-10-24 17:37:22.322761 INFO::Fitting model to feature number 59, F60
## 2023-10-24 17:37:22.328423 INFO::Fitting model to feature number 60, F63
## 2023-10-24 17:37:22.333347 INFO::Fitting model to feature number 61, F64
## 2023-10-24 17:37:22.338701 INFO::Fitting model to feature number 62, F65
## 2023-10-24 17:37:22.344006 INFO::Fitting model to feature number 63, F66
## 2023-10-24 17:37:22.34899 INFO::Fitting model to feature number 64, F67
## 2023-10-24 17:37:22.354326 INFO::Fitting model to feature number 65, F68
## 2023-10-24 17:37:22.359813 INFO::Fitting model to feature number 66, F69
## 2023-10-24 17:37:22.364882 INFO::Fitting model to feature number 67, F70
## 2023-10-24 17:37:22.37008 INFO::Fitting model to feature number 68, F71
## 2023-10-24 17:37:22.375145 INFO::Fitting model to feature number 69, F72
## 2023-10-24 17:37:22.379399 INFO::Fitting model to feature number 70, F73
## 2023-10-24 17:37:22.383557 INFO::Fitting model to feature number 71, F74
## 2023-10-24 17:37:22.388145 INFO::Fitting model to feature number 72, F76
## 2023-10-24 17:37:22.392984 INFO::Fitting model to feature number 73, F77
## 2023-10-24 17:37:22.396472 INFO::Fitting model to feature number 74, F78
## 2023-10-24 17:37:22.401971 INFO::Fitting model to feature number 75, F79
## 2023-10-24 17:37:22.407441 INFO::Fitting model to feature number 76, F80
## 2023-10-24 17:37:22.411847 INFO::Fitting model to feature number 77, F81
## 2023-10-24 17:37:22.416008 INFO::Fitting model to feature number 78, F82
## 2023-10-24 17:37:22.419989 INFO::Fitting model to feature number 79, F83
## 2023-10-24 17:37:22.424338 INFO::Fitting model to feature number 80, F84
## 2023-10-24 17:37:22.427733 INFO::Fitting model to feature number 81, F85
## 2023-10-24 17:37:22.431555 INFO::Fitting model to feature number 82, F86
## 2023-10-24 17:37:22.436347 INFO::Fitting model to feature number 83, F87
## 2023-10-24 17:37:22.440872 INFO::Fitting model to feature number 84, F88
## 2023-10-24 17:37:22.445562 INFO::Fitting model to feature number 85, F89
## 2023-10-24 17:37:22.450556 INFO::Fitting model to feature number 86, F90
## 2023-10-24 17:37:22.455864 INFO::Fitting model to feature number 87, F91
## 2023-10-24 17:37:22.460776 INFO::Fitting model to feature number 88, F92
## 2023-10-24 17:37:22.466278 INFO::Fitting model to feature number 89, F93
## 2023-10-24 17:37:22.470986 INFO::Fitting model to feature number 90, F94
## 2023-10-24 17:37:22.474999 INFO::Fitting model to feature number 91, F95
## 2023-10-24 17:37:22.479346 INFO::Fitting model to feature number 92, F96
## 2023-10-24 17:37:22.483808 INFO::Fitting model to feature number 93, F97
## 2023-10-24 17:37:22.488623 INFO::Fitting model to feature number 94, F98
## 2023-10-24 17:37:22.492613 INFO::Fitting model to feature number 95, F99
## 2023-10-24 17:37:22.497965 INFO::Fitting model to feature number 96, F100
## 2023-10-24 17:37:22.502923 INFO::Fitting model to feature number 97, F101
## 2023-10-24 17:37:22.508185 INFO::Fitting model to feature number 98, F102
## 2023-10-24 17:37:22.512679 INFO::Fitting model to feature number 99, F103
## 2023-10-24 17:37:22.51666 INFO::Fitting model to feature number 100, F104
## 2023-10-24 17:37:22.521909 INFO::Fitting model to feature number 101, F105
## 2023-10-24 17:37:22.526968 INFO::Fitting model to feature number 102, F106
## 2023-10-24 17:37:22.531109 INFO::Fitting model to feature number 103, F107
## 2023-10-24 17:37:22.535236 INFO::Fitting model to feature number 104, F108
## 2023-10-24 17:37:22.539864 INFO::Fitting model to feature number 105, F109
## 2023-10-24 17:37:22.544593 INFO::Fitting model to feature number 106, F110
## 2023-10-24 17:37:22.550288 INFO::Fitting model to feature number 107, F111
## 2023-10-24 17:37:22.555593 INFO::Fitting model to feature number 108, F112
## 2023-10-24 17:37:22.559619 INFO::Fitting model to feature number 109, F113
## 2023-10-24 17:37:22.564016 INFO::Fitting model to feature number 110, F114
## 2023-10-24 17:37:22.568547 INFO::Fitting model to feature number 111, F115
## 2023-10-24 17:37:22.573092 INFO::Fitting model to feature number 112, F117
## 2023-10-24 17:37:22.577504 INFO::Fitting model to feature number 113, F118
## 2023-10-24 17:37:22.582162 INFO::Fitting model to feature number 114, F119
## 2023-10-24 17:37:22.58767 INFO::Fitting model to feature number 115, F120
## 2023-10-24 17:37:22.592226 INFO::Fitting model to feature number 116, F121
## 2023-10-24 17:37:22.597197 INFO::Fitting model to feature number 117, F122
## 2023-10-24 17:37:22.600598 INFO::Fitting model to feature number 118, F123
## 2023-10-24 17:37:22.60413 INFO::Fitting model to feature number 119, F124
## 2023-10-24 17:37:22.607673 INFO::Fitting model to feature number 120, F125
## 2023-10-24 17:37:22.612422 INFO::Fitting model to feature number 121, F126
## 2023-10-24 17:37:22.617621 INFO::Fitting model to feature number 122, F127
## 2023-10-24 17:37:22.622711 INFO::Fitting model to feature number 123, F128
## 2023-10-24 17:37:22.626607 INFO::Fitting model to feature number 124, F129
## 2023-10-24 17:37:22.631329 INFO::Fitting model to feature number 125, F130
## 2023-10-24 17:37:22.634854 INFO::Fitting model to feature number 126, F131
## 2023-10-24 17:37:22.638779 INFO::Fitting model to feature number 127, F132
## 2023-10-24 17:37:22.642658 INFO::Fitting model to feature number 128, F133
## 2023-10-24 17:37:22.646143 INFO::Fitting model to feature number 129, F134
## 2023-10-24 17:37:22.649658 INFO::Fitting model to feature number 130, F135
## 2023-10-24 17:37:22.653654 INFO::Fitting model to feature number 131, F136
## 2023-10-24 17:37:22.659224 INFO::Fitting model to feature number 132, F137
## 2023-10-24 17:37:22.664787 INFO::Fitting model to feature number 133, F138
## 2023-10-24 17:37:22.670038 INFO::Fitting model to feature number 134, F139
## 2023-10-24 17:37:22.673784 INFO::Fitting model to feature number 135, F140
## 2023-10-24 17:37:22.677579 INFO::Fitting model to feature number 136, F141
## 2023-10-24 17:37:22.682387 INFO::Fitting model to feature number 137, F142
## 2023-10-24 17:37:22.687466 INFO::Fitting model to feature number 138, F143
## 2023-10-24 17:37:22.692436 INFO::Fitting model to feature number 139, F144
## 2023-10-24 17:37:22.697932 INFO::Fitting model to feature number 140, F145
## 2023-10-24 17:37:22.702724 INFO::Fitting model to feature number 141, F146
## 2023-10-24 17:37:22.707096 INFO::Fitting model to feature number 142, F147
## 2023-10-24 17:37:22.711477 INFO::Fitting model to feature number 143, F148
## 2023-10-24 17:37:22.716035 INFO::Fitting model to feature number 144, F149
## 2023-10-24 17:37:22.72081 INFO::Fitting model to feature number 145, F150
## 2023-10-24 17:37:22.726208 INFO::Fitting model to feature number 146, F152
## 2023-10-24 17:37:22.731434 INFO::Fitting model to feature number 147, F153
## 2023-10-24 17:37:22.736719 INFO::Fitting model to feature number 148, F154
## 2023-10-24 17:37:22.740838 INFO::Fitting model to feature number 149, F155
## 2023-10-24 17:37:22.74626 INFO::Fitting model to feature number 150, F156
## 2023-10-24 17:37:22.750983 INFO::Fitting model to feature number 151, F157
## 2023-10-24 17:37:22.755462 INFO::Fitting model to feature number 152, F158
## 2023-10-24 17:37:22.760078 INFO::Fitting model to feature number 153, F159
## 2023-10-24 17:37:22.764103 INFO::Fitting model to feature number 154, F160
## 2023-10-24 17:37:22.769006 INFO::Fitting model to feature number 155, F161
## 2023-10-24 17:37:22.773371 INFO::Fitting model to feature number 156, F162
## 2023-10-24 17:37:22.77886 INFO::Fitting model to feature number 157, F163
## 2023-10-24 17:37:22.782676 INFO::Fitting model to feature number 158, F164
## 2023-10-24 17:37:22.786712 INFO::Fitting model to feature number 159, F165
## 2023-10-24 17:37:22.791858 INFO::Fitting model to feature number 160, F166
## 2023-10-24 17:37:22.79686 INFO::Fitting model to feature number 161, F167
## 2023-10-24 17:37:22.801911 INFO::Fitting model to feature number 162, F168
## 2023-10-24 17:37:22.806439 INFO::Fitting model to feature number 163, F169
## 2023-10-24 17:37:22.810945 INFO::Fitting model to feature number 164, F170
## 2023-10-24 17:37:22.815514 INFO::Fitting model to feature number 165, F171
## 2023-10-24 17:37:22.819542 INFO::Fitting model to feature number 166, F172
## 2023-10-24 17:37:22.825479 INFO::Fitting model to feature number 167, F173
## 2023-10-24 17:37:22.830696 INFO::Fitting model to feature number 168, F174
## 2023-10-24 17:37:22.83433 INFO::Fitting model to feature number 169, F175
## 2023-10-24 17:37:22.839211 INFO::Fitting model to feature number 170, F176
## 2023-10-24 17:37:22.843322 INFO::Fitting model to feature number 171, F177
## 2023-10-24 17:37:22.848426 INFO::Fitting model to feature number 172, F178
## 2023-10-24 17:37:22.852168 INFO::Fitting model to feature number 173, F179
## 2023-10-24 17:37:22.857602 INFO::Fitting model to feature number 174, F180
## 2023-10-24 17:37:22.862587 INFO::Fitting model to feature number 175, F181
## 2023-10-24 17:37:22.867997 INFO::Fitting model to feature number 176, F182
## 2023-10-24 17:37:22.873267 INFO::Fitting model to feature number 177, F183
## 2023-10-24 17:37:22.878961 INFO::Fitting model to feature number 178, F184
## 2023-10-24 17:37:22.882731 INFO::Fitting model to feature number 179, F185
## 2023-10-24 17:37:22.887338 INFO::Fitting model to feature number 180, F186
## 2023-10-24 17:37:22.890979 INFO::Fitting model to feature number 181, F187
## 2023-10-24 17:37:22.895336 INFO::Fitting model to feature number 182, F188
## 2023-10-24 17:37:22.899647 INFO::Fitting model to feature number 183, F189
## 2023-10-24 17:37:22.905017 INFO::Fitting model to feature number 184, F190
## 2023-10-24 17:37:22.910781 INFO::Fitting model to feature number 185, F191
## 2023-10-24 17:37:22.915077 INFO::Fitting model to feature number 186, F192
## 2023-10-24 17:37:22.920028 INFO::Fitting model to feature number 187, F193
## 2023-10-24 17:37:22.924442 INFO::Fitting model to feature number 188, F194
## 2023-10-24 17:37:22.928519 INFO::Fitting model to feature number 189, F195
## 2023-10-24 17:37:22.93274 INFO::Fitting model to feature number 190, F196
## 2023-10-24 17:37:22.937751 INFO::Fitting model to feature number 191, F197
## 2023-10-24 17:37:22.943357 INFO::Fitting model to feature number 192, F198
## 2023-10-24 17:37:22.948228 INFO::Fitting model to feature number 193, F199
## 2023-10-24 17:37:22.953648 INFO::Fitting model to feature number 194, F200
## 2023-10-24 17:37:22.959363 INFO::Fitting model to feature number 195, F201
## 2023-10-24 17:37:22.964977 INFO::Fitting model to feature number 196, F202
## 2023-10-24 17:37:22.970292 INFO::Fitting model to feature number 197, F203
## 2023-10-24 17:37:22.974243 INFO::Fitting model to feature number 198, F204
## 2023-10-24 17:37:22.978751 INFO::Fitting model to feature number 199, F206
## 2023-10-24 17:37:22.982314 INFO::Fitting model to feature number 200, F207
## 2023-10-24 17:37:22.988176 INFO::Fitting model to feature number 201, F208
## 2023-10-24 17:37:22.993754 INFO::Fitting model to feature number 202, F209
## 2023-10-24 17:37:22.999109 INFO::Fitting model to feature number 203, F210
## 2023-10-24 17:37:23.004707 INFO::Fitting model to feature number 204, F211
## 2023-10-24 17:37:23.00981 INFO::Fitting model to feature number 205, F212
## 2023-10-24 17:37:23.013776 INFO::Fitting model to feature number 206, F213
## 2023-10-24 17:37:23.019023 INFO::Fitting model to feature number 207, F214
## 2023-10-24 17:37:23.025066 INFO::Fitting model to feature number 208, F215
## 2023-10-24 17:37:23.030843 INFO::Fitting model to feature number 209, F216
## 2023-10-24 17:37:23.03659 INFO::Fitting model to feature number 210, F217
## 2023-10-24 17:37:23.042402 INFO::Fitting model to feature number 211, F218
## 2023-10-24 17:37:23.04802 INFO::Fitting model to feature number 212, F219
## 2023-10-24 17:37:23.053072 INFO::Fitting model to feature number 213, F220
## 2023-10-24 17:37:23.05864 INFO::Fitting model to feature number 214, F221
## 2023-10-24 17:37:23.063451 INFO::Fitting model to feature number 215, F222
## 2023-10-24 17:37:23.068645 INFO::Fitting model to feature number 216, F223
## 2023-10-24 17:37:23.072985 INFO::Fitting model to feature number 217, F224
## 2023-10-24 17:37:23.076734 INFO::Fitting model to feature number 218, F225
## 2023-10-24 17:37:23.081061 INFO::Fitting model to feature number 219, F226
## 2023-10-24 17:37:23.087492 INFO::Fitting model to feature number 220, F227
## 2023-10-24 17:37:23.129687 INFO::Fitting model to feature number 221, F228
## 2023-10-24 17:37:23.134938 INFO::Fitting model to feature number 222, F229
## 2023-10-24 17:37:23.139866 INFO::Fitting model to feature number 223, F230
## 2023-10-24 17:37:23.145631 INFO::Fitting model to feature number 224, F231
## 2023-10-24 17:37:23.151247 INFO::Fitting model to feature number 225, F232
## 2023-10-24 17:37:23.15608 INFO::Fitting model to feature number 226, F233
## 2023-10-24 17:37:23.160959 INFO::Fitting model to feature number 227, F234
## 2023-10-24 17:37:23.165446 INFO::Fitting model to feature number 228, F235
## 2023-10-24 17:37:23.170271 INFO::Fitting model to feature number 229, F236
## 2023-10-24 17:37:23.175364 INFO::Fitting model to feature number 230, F237
## 2023-10-24 17:37:23.180807 INFO::Fitting model to feature number 231, F238
## 2023-10-24 17:37:23.185903 INFO::Fitting model to feature number 232, F239
## 2023-10-24 17:37:23.191112 INFO::Fitting model to feature number 233, F240
## 2023-10-24 17:37:23.196133 INFO::Fitting model to feature number 234, F241
## 2023-10-24 17:37:23.200823 INFO::Fitting model to feature number 235, F242
## 2023-10-24 17:37:23.205935 INFO::Fitting model to feature number 236, F243
## 2023-10-24 17:37:23.211006 INFO::Fitting model to feature number 237, F244
## 2023-10-24 17:37:23.216354 INFO::Fitting model to feature number 238, F245
## 2023-10-24 17:37:23.221442 INFO::Fitting model to feature number 239, F246
## 2023-10-24 17:37:23.226458 INFO::Fitting model to feature number 240, F247
## 2023-10-24 17:37:23.231403 INFO::Fitting model to feature number 241, F248
## 2023-10-24 17:37:23.236446 INFO::Fitting model to feature number 242, F249
## 2023-10-24 17:37:23.241546 INFO::Fitting model to feature number 243, F250
## 2023-10-24 17:37:23.246054 INFO::Fitting model to feature number 244, F252
## 2023-10-24 17:37:23.250363 INFO::Fitting model to feature number 245, F253
## 2023-10-24 17:37:23.254499 INFO::Fitting model to feature number 246, F254
## 2023-10-24 17:37:23.259681 INFO::Fitting model to feature number 247, F255
## 2023-10-24 17:37:23.263704 INFO::Fitting model to feature number 248, F256
## 2023-10-24 17:37:23.267565 INFO::Fitting model to feature number 249, F257
## 2023-10-24 17:37:23.272515 INFO::Fitting model to feature number 250, F259
## 2023-10-24 17:37:23.277592 INFO::Fitting model to feature number 251, F260
## 2023-10-24 17:37:23.283408 INFO::Fitting model to feature number 252, F261
## 2023-10-24 17:37:23.287618 INFO::Fitting model to feature number 253, F262
## 2023-10-24 17:37:23.29271 INFO::Fitting model to feature number 254, F263
## 2023-10-24 17:37:23.296372 INFO::Fitting model to feature number 255, F264
## 2023-10-24 17:37:23.30026 INFO::Fitting model to feature number 256, F265
## 2023-10-24 17:37:23.30375 INFO::Fitting model to feature number 257, F266
## 2023-10-24 17:37:23.307836 INFO::Fitting model to feature number 258, F267
## 2023-10-24 17:37:23.31295 INFO::Fitting model to feature number 259, F269
## 2023-10-24 17:37:23.316712 INFO::Fitting model to feature number 260, F270
## 2023-10-24 17:37:23.321922 INFO::Fitting model to feature number 261, F271
## 2023-10-24 17:37:23.32721 INFO::Fitting model to feature number 262, F272
## 2023-10-24 17:37:23.332602 INFO::Fitting model to feature number 263, F273
## 2023-10-24 17:37:23.337859 INFO::Fitting model to feature number 264, F274
## 2023-10-24 17:37:23.343164 INFO::Fitting model to feature number 265, F276
## 2023-10-24 17:37:23.347572 INFO::Fitting model to feature number 266, F277
## 2023-10-24 17:37:23.352825 INFO::Fitting model to feature number 267, F278
## 2023-10-24 17:37:23.3568 INFO::Fitting model to feature number 268, F279
## 2023-10-24 17:37:23.361098 INFO::Fitting model to feature number 269, F280
## 2023-10-24 17:37:23.365453 INFO::Fitting model to feature number 270, F281
## 2023-10-24 17:37:23.369696 INFO::Fitting model to feature number 271, F282
## 2023-10-24 17:37:23.374869 INFO::Fitting model to feature number 272, F283
## 2023-10-24 17:37:23.380208 INFO::Fitting model to feature number 273, F284
## 2023-10-24 17:37:23.385037 INFO::Fitting model to feature number 274, F285
## 2023-10-24 17:37:23.389396 INFO::Fitting model to feature number 275, F286
## 2023-10-24 17:37:23.39334 INFO::Fitting model to feature number 276, F287
## 2023-10-24 17:37:23.396832 INFO::Fitting model to feature number 277, F288
## 2023-10-24 17:37:23.402333 INFO::Fitting model to feature number 278, F289
## 2023-10-24 17:37:23.407539 INFO::Fitting model to feature number 279, F290
## 2023-10-24 17:37:23.413107 INFO::Fitting model to feature number 280, F292
## 2023-10-24 17:37:23.418758 INFO::Fitting model to feature number 281, F293
## 2023-10-24 17:37:23.423398 INFO::Fitting model to feature number 282, F294
## 2023-10-24 17:37:23.427203 INFO::Fitting model to feature number 283, F295
## 2023-10-24 17:37:23.431072 INFO::Fitting model to feature number 284, F296
## 2023-10-24 17:37:23.435712 INFO::Fitting model to feature number 285, F297
## 2023-10-24 17:37:23.440025 INFO::Fitting model to feature number 286, F298
## 2023-10-24 17:37:23.445644 INFO::Fitting model to feature number 287, F299
## 2023-10-24 17:37:23.45077 INFO::Fitting model to feature number 288, F300
## 2023-10-24 17:37:23.455136 INFO::Fitting model to feature number 289, F301
## 2023-10-24 17:37:23.459895 INFO::Fitting model to feature number 290, F302
## 2023-10-24 17:37:23.464814 INFO::Fitting model to feature number 291, F303
## 2023-10-24 17:37:23.47 INFO::Fitting model to feature number 292, F304
## 2023-10-24 17:37:23.474741 INFO::Fitting model to feature number 293, F305
## 2023-10-24 17:37:23.479147 INFO::Fitting model to feature number 294, F306
## 2023-10-24 17:37:23.484562 INFO::Fitting model to feature number 295, F307
## 2023-10-24 17:37:23.489794 INFO::Fitting model to feature number 296, F308
## 2023-10-24 17:37:23.495407 INFO::Fitting model to feature number 297, F309
## 2023-10-24 17:37:23.500755 INFO::Fitting model to feature number 298, F310
## 2023-10-24 17:37:23.505464 INFO::Fitting model to feature number 299, F311
## 2023-10-24 17:37:23.509939 INFO::Fitting model to feature number 300, F312
## 2023-10-24 17:37:23.513335 INFO::Fitting model to feature number 301, F313
## 2023-10-24 17:37:23.5167 INFO::Fitting model to feature number 302, F315
## 2023-10-24 17:37:23.520042 INFO::Fitting model to feature number 303, F316
## 2023-10-24 17:37:23.524284 INFO::Fitting model to feature number 304, F317
## 2023-10-24 17:37:23.529184 INFO::Fitting model to feature number 305, F318
## 2023-10-24 17:37:23.534097 INFO::Fitting model to feature number 306, F319
## 2023-10-24 17:37:23.538182 INFO::Fitting model to feature number 307, F320
## 2023-10-24 17:37:23.543668 INFO::Fitting model to feature number 308, F321
## 2023-10-24 17:37:23.548569 INFO::Fitting model to feature number 309, F322
## 2023-10-24 17:37:23.553585 INFO::Fitting model to feature number 310, F323
## 2023-10-24 17:37:23.558171 INFO::Fitting model to feature number 311, F324
## 2023-10-24 17:37:23.562691 INFO::Fitting model to feature number 312, F325
## 2023-10-24 17:37:23.566524 INFO::Fitting model to feature number 313, F326
## 2023-10-24 17:37:23.570847 INFO::Fitting model to feature number 314, F327
## 2023-10-24 17:37:23.575942 INFO::Fitting model to feature number 315, F328
## 2023-10-24 17:37:23.580966 INFO::Fitting model to feature number 316, F329
## 2023-10-24 17:37:23.585754 INFO::Fitting model to feature number 317, F330
## 2023-10-24 17:37:23.590428 INFO::Fitting model to feature number 318, F331
## 2023-10-24 17:37:23.595292 INFO::Fitting model to feature number 319, F332
## 2023-10-24 17:37:23.599528 INFO::Fitting model to feature number 320, F333
## 2023-10-24 17:37:23.60346 INFO::Fitting model to feature number 321, F334
## 2023-10-24 17:37:23.608535 INFO::Fitting model to feature number 322, F335
## 2023-10-24 17:37:23.612873 INFO::Fitting model to feature number 323, F336
## 2023-10-24 17:37:23.618259 INFO::Fitting model to feature number 324, F337
## 2023-10-24 17:37:23.623748 INFO::Fitting model to feature number 325, F338
## 2023-10-24 17:37:23.628091 INFO::Fitting model to feature number 326, F339
## 2023-10-24 17:37:23.632942 INFO::Fitting model to feature number 327, F340
## 2023-10-24 17:37:23.63816 INFO::Fitting model to feature number 328, F342
## 2023-10-24 17:37:23.644855 INFO::Fitting model to feature number 329, F343
## 2023-10-24 17:37:23.64868 INFO::Fitting model to feature number 330, F344
## 2023-10-24 17:37:23.652873 INFO::Fitting model to feature number 331, F345
## 2023-10-24 17:37:23.657327 INFO::Fitting model to feature number 332, F346
## 2023-10-24 17:37:23.662536 INFO::Fitting model to feature number 333, F347
## 2023-10-24 17:37:23.666914 INFO::Fitting model to feature number 334, F348
## 2023-10-24 17:37:23.671266 INFO::Fitting model to feature number 335, F350
## 2023-10-24 17:37:23.675624 INFO::Fitting model to feature number 336, F351
## 2023-10-24 17:37:23.679781 INFO::Fitting model to feature number 337, F352
## 2023-10-24 17:37:23.683858 INFO::Fitting model to feature number 338, F353
## 2023-10-24 17:37:23.688438 INFO::Fitting model to feature number 339, F355
## 2023-10-24 17:37:23.692846 INFO::Fitting model to feature number 340, F356
## 2023-10-24 17:37:23.698633 INFO::Fitting model to feature number 341, F357
## 2023-10-24 17:37:23.70443 INFO::Fitting model to feature number 342, F358
## 2023-10-24 17:37:23.710471 INFO::Fitting model to feature number 343, F359
## 2023-10-24 17:37:23.716455 INFO::Fitting model to feature number 344, F360
## 2023-10-24 17:37:23.722381 INFO::Fitting model to feature number 345, F361
## 2023-10-24 17:37:23.727592 INFO::Fitting model to feature number 346, F362
## 2023-10-24 17:37:23.732306 INFO::Fitting model to feature number 347, F363
## 2023-10-24 17:37:23.737539 INFO::Fitting model to feature number 348, F364
## 2023-10-24 17:37:23.74292 INFO::Fitting model to feature number 349, F365
## 2023-10-24 17:37:23.748379 INFO::Fitting model to feature number 350, F366
## 2023-10-24 17:37:23.752894 INFO::Fitting model to feature number 351, F367
## 2023-10-24 17:37:23.757007 INFO::Fitting model to feature number 352, F368
## 2023-10-24 17:37:23.762353 INFO::Fitting model to feature number 353, F369
## 2023-10-24 17:37:23.767146 INFO::Fitting model to feature number 354, F370
## 2023-10-24 17:37:23.772083 INFO::Fitting model to feature number 355, F371
## 2023-10-24 17:37:23.778187 INFO::Fitting model to feature number 356, F372
## 2023-10-24 17:37:23.783892 INFO::Fitting model to feature number 357, F373
## 2023-10-24 17:37:23.788771 INFO::Fitting model to feature number 358, F374
## 2023-10-24 17:37:23.794344 INFO::Fitting model to feature number 359, F375
## 2023-10-24 17:37:23.799067 INFO::Fitting model to feature number 360, F376
## 2023-10-24 17:37:23.804911 INFO::Fitting model to feature number 361, F377
## 2023-10-24 17:37:23.809993 INFO::Fitting model to feature number 362, F378
## 2023-10-24 17:37:23.815703 INFO::Fitting model to feature number 363, F379
## 2023-10-24 17:37:23.821189 INFO::Fitting model to feature number 364, F380
## 2023-10-24 17:37:23.825285 INFO::Fitting model to feature number 365, F381
## 2023-10-24 17:37:23.829316 INFO::Fitting model to feature number 366, F382
## 2023-10-24 17:37:23.833645 INFO::Fitting model to feature number 367, F383
## 2023-10-24 17:37:23.839099 INFO::Fitting model to feature number 368, F384
## 2023-10-24 17:37:23.844298 INFO::Fitting model to feature number 369, F386
## 2023-10-24 17:37:23.849798 INFO::Fitting model to feature number 370, F387
## 2023-10-24 17:37:23.85546 INFO::Fitting model to feature number 371, F388
## 2023-10-24 17:37:23.860775 INFO::Fitting model to feature number 372, F389
## 2023-10-24 17:37:23.864859 INFO::Fitting model to feature number 373, F390
## 2023-10-24 17:37:23.870732 INFO::Fitting model to feature number 374, F391
## 2023-10-24 17:37:23.876866 INFO::Fitting model to feature number 375, F392
## 2023-10-24 17:37:23.881553 INFO::Fitting model to feature number 376, F393
## 2023-10-24 17:37:23.887491 INFO::Fitting model to feature number 377, F394
## 2023-10-24 17:37:23.89326 INFO::Fitting model to feature number 378, F395
## 2023-10-24 17:37:23.898592 INFO::Fitting model to feature number 379, F396
## 2023-10-24 17:37:23.903611 INFO::Fitting model to feature number 380, F397
## 2023-10-24 17:37:23.909014 INFO::Fitting model to feature number 381, F398
## 2023-10-24 17:37:23.914056 INFO::Fitting model to feature number 382, F399
## 2023-10-24 17:37:23.91893 INFO::Fitting model to feature number 383, F400
## 2023-10-24 17:37:23.922931 INFO::Fitting model to feature number 384, F401
## 2023-10-24 17:37:23.928074 INFO::Fitting model to feature number 385, F402
## 2023-10-24 17:37:23.933684 INFO::Fitting model to feature number 386, F403
## 2023-10-24 17:37:23.939193 INFO::Fitting model to feature number 387, F404
## 2023-10-24 17:37:23.944623 INFO::Fitting model to feature number 388, F406
## 2023-10-24 17:37:23.949205 INFO::Fitting model to feature number 389, F407
## 2023-10-24 17:37:23.954581 INFO::Fitting model to feature number 390, F408
## 2023-10-24 17:37:23.959933 INFO::Fitting model to feature number 391, F409
## 2023-10-24 17:37:23.965381 INFO::Fitting model to feature number 392, F410
## 2023-10-24 17:37:23.970857 INFO::Fitting model to feature number 393, F411
## 2023-10-24 17:37:23.976212 INFO::Fitting model to feature number 394, F412
## 2023-10-24 17:37:23.981817 INFO::Fitting model to feature number 395, F413
## 2023-10-24 17:37:23.987508 INFO::Fitting model to feature number 396, F414
## 2023-10-24 17:37:23.993279 INFO::Fitting model to feature number 397, F415
## 2023-10-24 17:37:23.998758 INFO::Fitting model to feature number 398, F416
## 2023-10-24 17:37:24.00446 INFO::Fitting model to feature number 399, F417
## 2023-10-24 17:37:24.009872 INFO::Fitting model to feature number 400, F418
## 2023-10-24 17:37:24.014853 INFO::Fitting model to feature number 401, F419
## 2023-10-24 17:37:24.019813 INFO::Fitting model to feature number 402, F420
## 2023-10-24 17:37:24.024978 INFO::Fitting model to feature number 403, F421
## 2023-10-24 17:37:24.030304 INFO::Fitting model to feature number 404, F422
## 2023-10-24 17:37:24.035167 INFO::Fitting model to feature number 405, F423
## 2023-10-24 17:37:24.040054 INFO::Fitting model to feature number 406, F425
## 2023-10-24 17:37:24.044779 INFO::Fitting model to feature number 407, F426
## 2023-10-24 17:37:24.049734 INFO::Fitting model to feature number 408, F428
## 2023-10-24 17:37:24.054717 INFO::Fitting model to feature number 409, F429
## 2023-10-24 17:37:24.059502 INFO::Fitting model to feature number 410, F430
## 2023-10-24 17:37:24.06433 INFO::Fitting model to feature number 411, F431
## 2023-10-24 17:37:24.069461 INFO::Fitting model to feature number 412, F432
## 2023-10-24 17:37:24.074827 INFO::Fitting model to feature number 413, F433
## 2023-10-24 17:37:24.080181 INFO::Fitting model to feature number 414, F434
## 2023-10-24 17:37:24.08492 INFO::Fitting model to feature number 415, F435
## 2023-10-24 17:37:24.088739 INFO::Fitting model to feature number 416, F436
## 2023-10-24 17:37:24.093409 INFO::Fitting model to feature number 417, F437
## 2023-10-24 17:37:24.09913 INFO::Fitting model to feature number 418, F438
## 2023-10-24 17:37:24.10322 INFO::Fitting model to feature number 419, F439
## 2023-10-24 17:37:24.106914 INFO::Fitting model to feature number 420, F440
## 2023-10-24 17:37:24.110496 INFO::Fitting model to feature number 421, F441
## 2023-10-24 17:37:24.114141 INFO::Fitting model to feature number 422, F442
## 2023-10-24 17:37:24.117799 INFO::Fitting model to feature number 423, F443
## 2023-10-24 17:37:24.121609 INFO::Fitting model to feature number 424, F444
## 2023-10-24 17:37:24.126529 INFO::Fitting model to feature number 425, F445
## 2023-10-24 17:37:24.131719 INFO::Fitting model to feature number 426, F446
## 2023-10-24 17:37:24.135714 INFO::Fitting model to feature number 427, F447
## 2023-10-24 17:37:24.14078 INFO::Fitting model to feature number 428, F448
## 2023-10-24 17:37:24.146194 INFO::Fitting model to feature number 429, F449
## 2023-10-24 17:37:24.151604 INFO::Fitting model to feature number 430, F450
## 2023-10-24 17:37:24.156861 INFO::Fitting model to feature number 431, F451
## 2023-10-24 17:37:24.162647 INFO::Fitting model to feature number 432, F452
## 2023-10-24 17:37:24.16803 INFO::Fitting model to feature number 433, F454
## 2023-10-24 17:37:24.173509 INFO::Fitting model to feature number 434, F455
## 2023-10-24 17:37:24.179344 INFO::Fitting model to feature number 435, F456
## 2023-10-24 17:37:24.184954 INFO::Fitting model to feature number 436, F457
## 2023-10-24 17:37:24.190774 INFO::Fitting model to feature number 437, F458
## 2023-10-24 17:37:24.196526 INFO::Fitting model to feature number 438, F459
## 2023-10-24 17:37:24.201499 INFO::Fitting model to feature number 439, F461
## 2023-10-24 17:37:24.207035 INFO::Fitting model to feature number 440, F462
## 2023-10-24 17:37:24.211935 INFO::Fitting model to feature number 441, F463
## 2023-10-24 17:37:24.215775 INFO::Fitting model to feature number 442, F464
## 2023-10-24 17:37:24.221247 INFO::Fitting model to feature number 443, F465
## 2023-10-24 17:37:24.224936 INFO::Fitting model to feature number 444, F466
## 2023-10-24 17:37:24.228767 INFO::Fitting model to feature number 445, F467
## 2023-10-24 17:37:24.232552 INFO::Fitting model to feature number 446, F468
## 2023-10-24 17:37:24.236374 INFO::Fitting model to feature number 447, F469
## 2023-10-24 17:37:24.241781 INFO::Fitting model to feature number 448, F470
## 2023-10-24 17:37:24.245814 INFO::Fitting model to feature number 449, F471
## 2023-10-24 17:37:24.250028 INFO::Fitting model to feature number 450, F474
## 2023-10-24 17:37:24.255223 INFO::Fitting model to feature number 451, F475
## 2023-10-24 17:37:24.261012 INFO::Fitting model to feature number 452, F476
## 2023-10-24 17:37:24.265494 INFO::Fitting model to feature number 453, F477
## 2023-10-24 17:37:24.269888 INFO::Fitting model to feature number 454, F478
## 2023-10-24 17:37:24.274905 INFO::Fitting model to feature number 455, F479
## 2023-10-24 17:37:24.278838 INFO::Fitting model to feature number 456, F480
## 2023-10-24 17:37:24.282697 INFO::Fitting model to feature number 457, F481
## 2023-10-24 17:37:24.288048 INFO::Fitting model to feature number 458, F482
## 2023-10-24 17:37:24.292056 INFO::Fitting model to feature number 459, F483
## 2023-10-24 17:37:24.296804 INFO::Fitting model to feature number 460, F484
## 2023-10-24 17:37:24.302315 INFO::Fitting model to feature number 461, F485
## 2023-10-24 17:37:24.307289 INFO::Fitting model to feature number 462, F486
## 2023-10-24 17:37:24.34381 INFO::Fitting model to feature number 463, F487
## 2023-10-24 17:37:24.348188 INFO::Fitting model to feature number 464, F488
## 2023-10-24 17:37:24.352929 INFO::Fitting model to feature number 465, F489
## 2023-10-24 17:37:24.358354 INFO::Fitting model to feature number 466, F490
## 2023-10-24 17:37:24.363927 INFO::Fitting model to feature number 467, F491
## 2023-10-24 17:37:24.369802 INFO::Fitting model to feature number 468, F492
## 2023-10-24 17:37:24.375283 INFO::Fitting model to feature number 469, F493
## 2023-10-24 17:37:24.379954 INFO::Fitting model to feature number 470, F494
## 2023-10-24 17:37:24.383391 INFO::Fitting model to feature number 471, F495
## 2023-10-24 17:37:24.38792 INFO::Fitting model to feature number 472, F496
## 2023-10-24 17:37:24.392474 INFO::Fitting model to feature number 473, F497
## 2023-10-24 17:37:24.397516 INFO::Fitting model to feature number 474, F498
## 2023-10-24 17:37:24.402727 INFO::Fitting model to feature number 475, F499
## 2023-10-24 17:37:24.407241 INFO::Fitting model to feature number 476, F500
## 2023-10-24 17:37:24.412113 INFO::Fitting model to feature number 477, F501
## 2023-10-24 17:37:24.416706 INFO::Fitting model to feature number 478, F502
## 2023-10-24 17:37:24.421135 INFO::Fitting model to feature number 479, F503
## 2023-10-24 17:37:24.426202 INFO::Fitting model to feature number 480, F504
## 2023-10-24 17:37:24.43072 INFO::Fitting model to feature number 481, F505
## 2023-10-24 17:37:24.434509 INFO::Fitting model to feature number 482, F506
## 2023-10-24 17:37:24.43938 INFO::Fitting model to feature number 483, F507
## 2023-10-24 17:37:24.444183 INFO::Fitting model to feature number 484, F508
## 2023-10-24 17:37:24.448875 INFO::Fitting model to feature number 485, F509
## 2023-10-24 17:37:24.452817 INFO::Fitting model to feature number 486, F510
## 2023-10-24 17:37:24.457089 INFO::Fitting model to feature number 487, F511
## 2023-10-24 17:37:24.462458 INFO::Fitting model to feature number 488, F512
## 2023-10-24 17:37:24.467866 INFO::Fitting model to feature number 489, F513
## 2023-10-24 17:37:24.471449 INFO::Fitting model to feature number 490, F514
## 2023-10-24 17:37:24.474917 INFO::Fitting model to feature number 491, F515
## 2023-10-24 17:37:24.478417 INFO::Fitting model to feature number 492, F516
## 2023-10-24 17:37:24.481927 INFO::Fitting model to feature number 493, F517
## 2023-10-24 17:37:24.486302 INFO::Fitting model to feature number 494, F518
## 2023-10-24 17:37:24.491305 INFO::Fitting model to feature number 495, F519
## 2023-10-24 17:37:24.496504 INFO::Fitting model to feature number 496, F520
## 2023-10-24 17:37:24.502045 INFO::Fitting model to feature number 497, F521
## 2023-10-24 17:37:24.507791 INFO::Fitting model to feature number 498, F522
## 2023-10-24 17:37:24.513188 INFO::Fitting model to feature number 499, F523
## 2023-10-24 17:37:24.518551 INFO::Fitting model to feature number 500, F524
## 2023-10-24 17:37:24.523646 INFO::Fitting model to feature number 501, F525
## 2023-10-24 17:37:24.527934 INFO::Fitting model to feature number 502, F526
## 2023-10-24 17:37:24.532766 INFO::Fitting model to feature number 503, F527
## 2023-10-24 17:37:24.537956 INFO::Fitting model to feature number 504, F528
## 2023-10-24 17:37:24.54288 INFO::Fitting model to feature number 505, F529
## 2023-10-24 17:37:24.548613 INFO::Fitting model to feature number 506, F530
## 2023-10-24 17:37:24.553666 INFO::Fitting model to feature number 507, F531
## 2023-10-24 17:37:24.559115 INFO::Fitting model to feature number 508, F532
## 2023-10-24 17:37:24.563549 INFO::Fitting model to feature number 509, F533
## 2023-10-24 17:37:24.56844 INFO::Fitting model to feature number 510, F534
## 2023-10-24 17:37:24.573591 INFO::Fitting model to feature number 511, F535
## 2023-10-24 17:37:24.57754 INFO::Fitting model to feature number 512, F536
## 2023-10-24 17:37:24.581378 INFO::Fitting model to feature number 513, F537
## 2023-10-24 17:37:24.585154 INFO::Fitting model to feature number 514, F539
## 2023-10-24 17:37:24.590046 INFO::Fitting model to feature number 515, F540
## 2023-10-24 17:37:24.595401 INFO::Fitting model to feature number 516, F541
## 2023-10-24 17:37:24.601186 INFO::Fitting model to feature number 517, F543
## 2023-10-24 17:37:24.606738 INFO::Fitting model to feature number 518, F544
## 2023-10-24 17:37:24.611697 INFO::Fitting model to feature number 519, F545
## 2023-10-24 17:37:24.617109 INFO::Fitting model to feature number 520, F546
## 2023-10-24 17:37:24.622913 INFO::Fitting model to feature number 521, F547
## 2023-10-24 17:37:24.628564 INFO::Fitting model to feature number 522, F548
## 2023-10-24 17:37:24.633699 INFO::Fitting model to feature number 523, F549
## 2023-10-24 17:37:24.638951 INFO::Fitting model to feature number 524, F550
## 2023-10-24 17:37:24.644174 INFO::Fitting model to feature number 525, F551
## 2023-10-24 17:37:24.648671 INFO::Fitting model to feature number 526, F552
## 2023-10-24 17:37:24.653058 INFO::Fitting model to feature number 527, F553
## 2023-10-24 17:37:24.657986 INFO::Fitting model to feature number 528, F554
## 2023-10-24 17:37:24.663417 INFO::Fitting model to feature number 529, F555
## 2023-10-24 17:37:24.668802 INFO::Fitting model to feature number 530, F556
## 2023-10-24 17:37:24.673986 INFO::Fitting model to feature number 531, F557
## 2023-10-24 17:37:24.679677 INFO::Fitting model to feature number 532, F558
## 2023-10-24 17:37:24.684071 INFO::Fitting model to feature number 533, F559
## 2023-10-24 17:37:24.68938 INFO::Fitting model to feature number 534, F560
## 2023-10-24 17:37:24.693871 INFO::Fitting model to feature number 535, F561
## 2023-10-24 17:37:24.698456 INFO::Fitting model to feature number 536, F562
## 2023-10-24 17:37:24.703256 INFO::Fitting model to feature number 537, F563
## 2023-10-24 17:37:24.708634 INFO::Fitting model to feature number 538, F564
## 2023-10-24 17:37:24.712127 INFO::Fitting model to feature number 539, F566
## 2023-10-24 17:37:24.715649 INFO::Fitting model to feature number 540, F567
## 2023-10-24 17:37:24.719845 INFO::Fitting model to feature number 541, F568
## 2023-10-24 17:37:24.724647 INFO::Fitting model to feature number 542, F569
## 2023-10-24 17:37:24.730284 INFO::Fitting model to feature number 543, F570
## 2023-10-24 17:37:24.735601 INFO::Fitting model to feature number 544, F571
## 2023-10-24 17:37:24.740606 INFO::Fitting model to feature number 545, F572
## 2023-10-24 17:37:24.744368 INFO::Fitting model to feature number 546, F573
## 2023-10-24 17:37:24.749422 INFO::Fitting model to feature number 547, F574
## 2023-10-24 17:37:24.754676 INFO::Fitting model to feature number 548, F575
## 2023-10-24 17:37:24.758763 INFO::Fitting model to feature number 549, F576
## 2023-10-24 17:37:24.763602 INFO::Fitting model to feature number 550, F577
## 2023-10-24 17:37:24.76868 INFO::Fitting model to feature number 551, F578
## 2023-10-24 17:37:24.773539 INFO::Fitting model to feature number 552, F579
## 2023-10-24 17:37:24.778585 INFO::Fitting model to feature number 553, F580
## 2023-10-24 17:37:24.783683 INFO::Fitting model to feature number 554, F581
## 2023-10-24 17:37:24.789041 INFO::Fitting model to feature number 555, F582
## 2023-10-24 17:37:24.794088 INFO::Fitting model to feature number 556, F583
## 2023-10-24 17:37:24.798869 INFO::Fitting model to feature number 557, F584
## 2023-10-24 17:37:24.803963 INFO::Fitting model to feature number 558, F585
## 2023-10-24 17:37:24.809284 INFO::Fitting model to feature number 559, F586
## 2023-10-24 17:37:24.814691 INFO::Fitting model to feature number 560, F587
## 2023-10-24 17:37:24.820117 INFO::Fitting model to feature number 561, F588
## 2023-10-24 17:37:24.825957 INFO::Fitting model to feature number 562, F589
## 2023-10-24 17:37:24.83164 INFO::Fitting model to feature number 563, F590
## 2023-10-24 17:37:24.83679 INFO::Fitting model to feature number 564, F591
## 2023-10-24 17:37:24.841644 INFO::Fitting model to feature number 565, F592
## 2023-10-24 17:37:24.847346 INFO::Fitting model to feature number 566, F593
## 2023-10-24 17:37:24.852785 INFO::Fitting model to feature number 567, F594
## 2023-10-24 17:37:24.858158 INFO::Fitting model to feature number 568, F595
## 2023-10-24 17:37:24.86357 INFO::Fitting model to feature number 569, F596
## 2023-10-24 17:37:24.868828 INFO::Fitting model to feature number 570, F597
## 2023-10-24 17:37:24.873995 INFO::Fitting model to feature number 571, F598
## 2023-10-24 17:37:24.877613 INFO::Fitting model to feature number 572, F599
## 2023-10-24 17:37:24.881278 INFO::Fitting model to feature number 573, F600
## 2023-10-24 17:37:24.884861 INFO::Fitting model to feature number 574, F601
## 2023-10-24 17:37:24.888602 INFO::Fitting model to feature number 575, F602
## 2023-10-24 17:37:24.892218 INFO::Fitting model to feature number 576, F603
## 2023-10-24 17:37:24.895688 INFO::Fitting model to feature number 577, F605
## 2023-10-24 17:37:24.899073 INFO::Fitting model to feature number 578, F606
## 2023-10-24 17:37:24.902637 INFO::Fitting model to feature number 579, F607
## 2023-10-24 17:37:24.90609 INFO::Fitting model to feature number 580, F608
## 2023-10-24 17:37:24.909519 INFO::Fitting model to feature number 581, F609
## 2023-10-24 17:37:24.91454 INFO::Fitting model to feature number 582, F610
## 2023-10-24 17:37:24.920031 INFO::Fitting model to feature number 583, F611
## 2023-10-24 17:37:24.923753 INFO::Fitting model to feature number 584, F612
## 2023-10-24 17:37:24.928701 INFO::Fitting model to feature number 585, F613
## 2023-10-24 17:37:24.933567 INFO::Fitting model to feature number 586, F614
## 2023-10-24 17:37:24.938512 INFO::Fitting model to feature number 587, F615
## 2023-10-24 17:37:24.943255 INFO::Fitting model to feature number 588, F616
## 2023-10-24 17:37:24.948141 INFO::Fitting model to feature number 589, F617
## 2023-10-24 17:37:24.953343 INFO::Fitting model to feature number 590, F618
## 2023-10-24 17:37:24.958249 INFO::Fitting model to feature number 591, F619
## 2023-10-24 17:37:24.963514 INFO::Fitting model to feature number 592, F620
## 2023-10-24 17:37:24.96811 INFO::Fitting model to feature number 593, F621
## 2023-10-24 17:37:24.973257 INFO::Fitting model to feature number 594, F622
## 2023-10-24 17:37:24.978496 INFO::Fitting model to feature number 595, F623
## 2023-10-24 17:37:24.982786 INFO::Fitting model to feature number 596, F624
## 2023-10-24 17:37:24.987047 INFO::Fitting model to feature number 597, F625
## 2023-10-24 17:37:24.991091 INFO::Fitting model to feature number 598, F626
## 2023-10-24 17:37:24.995625 INFO::Fitting model to feature number 599, F627
## 2023-10-24 17:37:25.000365 INFO::Fitting model to feature number 600, F628
## 2023-10-24 17:37:25.005302 INFO::Fitting model to feature number 601, F629
## 2023-10-24 17:37:25.010403 INFO::Fitting model to feature number 602, F630
## 2023-10-24 17:37:25.0156 INFO::Fitting model to feature number 603, F631
## 2023-10-24 17:37:25.020454 INFO::Fitting model to feature number 604, F632
## 2023-10-24 17:37:25.025269 INFO::Fitting model to feature number 605, F633
## 2023-10-24 17:37:25.030833 INFO::Fitting model to feature number 606, F634
## 2023-10-24 17:37:25.036456 INFO::Fitting model to feature number 607, F635
## 2023-10-24 17:37:25.041491 INFO::Fitting model to feature number 608, F636
## 2023-10-24 17:37:25.046901 INFO::Fitting model to feature number 609, F637
## 2023-10-24 17:37:25.052326 INFO::Fitting model to feature number 610, F638
## 2023-10-24 17:37:25.057771 INFO::Fitting model to feature number 611, F639
## 2023-10-24 17:37:25.062685 INFO::Fitting model to feature number 612, F640
## 2023-10-24 17:37:25.066577 INFO::Fitting model to feature number 613, F641
## 2023-10-24 17:37:25.071354 INFO::Fitting model to feature number 614, F642
## 2023-10-24 17:37:25.076681 INFO::Fitting model to feature number 615, F643
## 2023-10-24 17:37:25.081809 INFO::Fitting model to feature number 616, F644
## 2023-10-24 17:37:25.087032 INFO::Fitting model to feature number 617, F645
## 2023-10-24 17:37:25.092594 INFO::Fitting model to feature number 618, F646
## 2023-10-24 17:37:25.098109 INFO::Fitting model to feature number 619, F647
## 2023-10-24 17:37:25.103573 INFO::Fitting model to feature number 620, F648
## 2023-10-24 17:37:25.109567 INFO::Fitting model to feature number 621, F649
## 2023-10-24 17:37:25.115642 INFO::Fitting model to feature number 622, F650
## 2023-10-24 17:37:25.12096 INFO::Fitting model to feature number 623, F651
## 2023-10-24 17:37:25.12689 INFO::Fitting model to feature number 624, F652
## 2023-10-24 17:37:25.132544 INFO::Fitting model to feature number 625, F653
## 2023-10-24 17:37:25.138471 INFO::Fitting model to feature number 626, F654
## 2023-10-24 17:37:25.144249 INFO::Fitting model to feature number 627, F655
## 2023-10-24 17:37:25.149731 INFO::Fitting model to feature number 628, F656
## 2023-10-24 17:37:25.155203 INFO::Fitting model to feature number 629, F657
## 2023-10-24 17:37:25.161161 INFO::Fitting model to feature number 630, F658
## 2023-10-24 17:37:25.166419 INFO::Fitting model to feature number 631, F659
## 2023-10-24 17:37:25.172591 INFO::Fitting model to feature number 632, F660
## 2023-10-24 17:37:25.177101 INFO::Fitting model to feature number 633, F661
## 2023-10-24 17:37:25.182041 INFO::Fitting model to feature number 634, F662
## 2023-10-24 17:37:25.187431 INFO::Fitting model to feature number 635, F663
## 2023-10-24 17:37:25.19286 INFO::Fitting model to feature number 636, F664
## 2023-10-24 17:37:25.198103 INFO::Fitting model to feature number 637, F665
## 2023-10-24 17:37:25.203441 INFO::Fitting model to feature number 638, F666
## 2023-10-24 17:37:25.208434 INFO::Fitting model to feature number 639, F667
## 2023-10-24 17:37:25.214438 INFO::Fitting model to feature number 640, F668
## 2023-10-24 17:37:25.220312 INFO::Fitting model to feature number 641, F669
## 2023-10-24 17:37:25.225771 INFO::Fitting model to feature number 642, F670
## 2023-10-24 17:37:25.231123 INFO::Fitting model to feature number 643, F671
## 2023-10-24 17:37:25.236801 INFO::Fitting model to feature number 644, F672
## 2023-10-24 17:37:25.242649 INFO::Fitting model to feature number 645, F673
## 2023-10-24 17:37:25.248446 INFO::Fitting model to feature number 646, F674
## 2023-10-24 17:37:25.254429 INFO::Fitting model to feature number 647, F675
## 2023-10-24 17:37:25.260203 INFO::Fitting model to feature number 648, F676
## 2023-10-24 17:37:25.265189 INFO::Fitting model to feature number 649, F677
## 2023-10-24 17:37:25.270466 INFO::Fitting model to feature number 650, F678
## 2023-10-24 17:37:25.276187 INFO::Fitting model to feature number 651, F679
## 2023-10-24 17:37:25.28203 INFO::Fitting model to feature number 652, F680
## 2023-10-24 17:37:25.287784 INFO::Fitting model to feature number 653, F681
## 2023-10-24 17:37:25.292661 INFO::Fitting model to feature number 654, F682
## 2023-10-24 17:37:25.298019 INFO::Fitting model to feature number 655, F683
## 2023-10-24 17:37:25.303978 INFO::Fitting model to feature number 656, F684
## 2023-10-24 17:37:25.309704 INFO::Fitting model to feature number 657, F685
## 2023-10-24 17:37:25.315424 INFO::Fitting model to feature number 658, F686
## 2023-10-24 17:37:25.319663 INFO::Fitting model to feature number 659, F687
## 2023-10-24 17:37:25.324522 INFO::Fitting model to feature number 660, F688
## 2023-10-24 17:37:25.329082 INFO::Fitting model to feature number 661, F689
## 2023-10-24 17:37:25.33398 INFO::Fitting model to feature number 662, F690
## 2023-10-24 17:37:25.339802 INFO::Fitting model to feature number 663, F691
## 2023-10-24 17:37:25.345169 INFO::Fitting model to feature number 664, F692
## 2023-10-24 17:37:25.350621 INFO::Fitting model to feature number 665, F693
## 2023-10-24 17:37:25.35565 INFO::Fitting model to feature number 666, F694
## 2023-10-24 17:37:25.360845 INFO::Fitting model to feature number 667, F695
## 2023-10-24 17:37:25.366015 INFO::Fitting model to feature number 668, F696
## 2023-10-24 17:37:25.371897 INFO::Fitting model to feature number 669, F697
## 2023-10-24 17:37:25.377956 INFO::Fitting model to feature number 670, F698
## 2023-10-24 17:37:25.38417 INFO::Fitting model to feature number 671, F699
## 2023-10-24 17:37:25.38989 INFO::Fitting model to feature number 672, F700
## 2023-10-24 17:37:25.396572 INFO::Fitting model to feature number 673, F701
## 2023-10-24 17:37:25.403173 INFO::Fitting model to feature number 674, F702
## 2023-10-24 17:37:25.408288 INFO::Fitting model to feature number 675, F704
## 2023-10-24 17:37:25.412752 INFO::Fitting model to feature number 676, F705
## 2023-10-24 17:37:25.418756 INFO::Fitting model to feature number 677, F706
## 2023-10-24 17:37:25.423592 INFO::Fitting model to feature number 678, F707
## 2023-10-24 17:37:25.429374 INFO::Fitting model to feature number 679, F708
## 2023-10-24 17:37:25.434842 INFO::Fitting model to feature number 680, F709
## 2023-10-24 17:37:25.440853 INFO::Fitting model to feature number 681, F710
## 2023-10-24 17:37:25.446809 INFO::Fitting model to feature number 682, F711
## 2023-10-24 17:37:25.451432 INFO::Fitting model to feature number 683, F712
## 2023-10-24 17:37:25.456837 INFO::Fitting model to feature number 684, F713
## 2023-10-24 17:37:25.46307 INFO::Fitting model to feature number 685, F714
## 2023-10-24 17:37:25.468993 INFO::Fitting model to feature number 686, F715
## 2023-10-24 17:37:25.474442 INFO::Fitting model to feature number 687, F716
## 2023-10-24 17:37:25.47994 INFO::Fitting model to feature number 688, F717
## 2023-10-24 17:37:25.484856 INFO::Fitting model to feature number 689, F718
## 2023-10-24 17:37:25.488985 INFO::Fitting model to feature number 690, F719
## 2023-10-24 17:37:25.492939 INFO::Fitting model to feature number 691, F720
## 2023-10-24 17:37:25.497868 INFO::Fitting model to feature number 692, F721
## 2023-10-24 17:37:25.50334 INFO::Fitting model to feature number 693, F722
## 2023-10-24 17:37:25.508494 INFO::Fitting model to feature number 694, F723
## 2023-10-24 17:37:25.514395 INFO::Fitting model to feature number 695, F724
## 2023-10-24 17:37:25.519378 INFO::Fitting model to feature number 696, F725
## 2023-10-24 17:37:25.524102 INFO::Fitting model to feature number 697, F726
## 2023-10-24 17:37:25.529206 INFO::Fitting model to feature number 698, F727
## 2023-10-24 17:37:25.534509 INFO::Fitting model to feature number 699, F728
## 2023-10-24 17:37:25.539061 INFO::Fitting model to feature number 700, F729
## 2023-10-24 17:37:25.54471 INFO::Fitting model to feature number 701, F730
## 2023-10-24 17:37:25.549629 INFO::Fitting model to feature number 702, F731
## 2023-10-24 17:37:25.553679 INFO::Fitting model to feature number 703, F732
## 2023-10-24 17:37:25.589703 INFO::Fitting model to feature number 704, F733
## 2023-10-24 17:37:25.59532 INFO::Fitting model to feature number 705, F734
## 2023-10-24 17:37:25.599425 INFO::Fitting model to feature number 706, F735
## 2023-10-24 17:37:25.60461 INFO::Fitting model to feature number 707, F736
## 2023-10-24 17:37:25.609445 INFO::Fitting model to feature number 708, F737
## 2023-10-24 17:37:25.61422 INFO::Fitting model to feature number 709, F739
## 2023-10-24 17:37:25.618533 INFO::Fitting model to feature number 710, F740
## 2023-10-24 17:37:25.623377 INFO::Fitting model to feature number 711, F741
## 2023-10-24 17:37:25.628745 INFO::Fitting model to feature number 712, F742
## 2023-10-24 17:37:25.634439 INFO::Fitting model to feature number 713, F743
## 2023-10-24 17:37:25.640039 INFO::Fitting model to feature number 714, F744
## 2023-10-24 17:37:25.644726 INFO::Fitting model to feature number 715, F745
## 2023-10-24 17:37:25.650049 INFO::Fitting model to feature number 716, F746
## 2023-10-24 17:37:25.65579 INFO::Fitting model to feature number 717, F747
## 2023-10-24 17:37:25.661229 INFO::Fitting model to feature number 718, F748
## 2023-10-24 17:37:25.666518 INFO::Fitting model to feature number 719, F749
## 2023-10-24 17:37:25.67197 INFO::Fitting model to feature number 720, F750
## 2023-10-24 17:37:25.677003 INFO::Fitting model to feature number 721, F751
## 2023-10-24 17:37:25.682026 INFO::Fitting model to feature number 722, F752
## 2023-10-24 17:37:25.687794 INFO::Fitting model to feature number 723, F753
## 2023-10-24 17:37:25.692936 INFO::Fitting model to feature number 724, F754
## 2023-10-24 17:37:25.698202 INFO::Fitting model to feature number 725, F755
## 2023-10-24 17:37:25.703427 INFO::Fitting model to feature number 726, F756
## 2023-10-24 17:37:25.707867 INFO::Fitting model to feature number 727, F757
## 2023-10-24 17:37:25.712507 INFO::Fitting model to feature number 728, F758
## 2023-10-24 17:37:25.716869 INFO::Fitting model to feature number 729, F759
## 2023-10-24 17:37:25.721431 INFO::Fitting model to feature number 730, F760
## 2023-10-24 17:37:25.726759 INFO::Fitting model to feature number 731, F761
## 2023-10-24 17:37:25.731863 INFO::Fitting model to feature number 732, F762
## 2023-10-24 17:37:25.736638 INFO::Fitting model to feature number 733, F763
## 2023-10-24 17:37:25.741889 INFO::Fitting model to feature number 734, F764
## 2023-10-24 17:37:25.747006 INFO::Fitting model to feature number 735, F765
## 2023-10-24 17:37:25.751471 INFO::Fitting model to feature number 736, F766
## 2023-10-24 17:37:25.755209 INFO::Fitting model to feature number 737, F767
## 2023-10-24 17:37:25.760011 INFO::Fitting model to feature number 738, F768
## 2023-10-24 17:37:25.765512 INFO::Fitting model to feature number 739, F769
## 2023-10-24 17:37:25.770844 INFO::Fitting model to feature number 740, F770
## 2023-10-24 17:37:25.775959 INFO::Fitting model to feature number 741, F771
## 2023-10-24 17:37:25.781094 INFO::Fitting model to feature number 742, F772
## 2023-10-24 17:37:25.78595 INFO::Fitting model to feature number 743, F773
## 2023-10-24 17:37:25.791465 INFO::Fitting model to feature number 744, F774
## 2023-10-24 17:37:25.796716 INFO::Fitting model to feature number 745, F775
## 2023-10-24 17:37:25.802065 INFO::Fitting model to feature number 746, F776
## 2023-10-24 17:37:25.807425 INFO::Fitting model to feature number 747, F777
## 2023-10-24 17:37:25.812784 INFO::Fitting model to feature number 748, F778
## 2023-10-24 17:37:25.817879 INFO::Fitting model to feature number 749, F779
## 2023-10-24 17:37:25.822742 INFO::Fitting model to feature number 750, F780
## 2023-10-24 17:37:25.828029 INFO::Fitting model to feature number 751, F781
## 2023-10-24 17:37:25.832208 INFO::Fitting model to feature number 752, F782
## 2023-10-24 17:37:25.83717 INFO::Fitting model to feature number 753, F783
## 2023-10-24 17:37:25.842153 INFO::Fitting model to feature number 754, F784
## 2023-10-24 17:37:25.846077 INFO::Fitting model to feature number 755, F785
## 2023-10-24 17:37:25.851002 INFO::Fitting model to feature number 756, F786
## 2023-10-24 17:37:25.855913 INFO::Fitting model to feature number 757, F787
## 2023-10-24 17:37:25.861126 INFO::Fitting model to feature number 758, F788
## 2023-10-24 17:37:25.865953 INFO::Fitting model to feature number 759, F789
## 2023-10-24 17:37:25.869887 INFO::Fitting model to feature number 760, F790
## 2023-10-24 17:37:25.875766 INFO::Fitting model to feature number 761, F791
## 2023-10-24 17:37:25.880665 INFO::Fitting model to feature number 762, F792
## 2023-10-24 17:37:25.884401 INFO::Fitting model to feature number 763, F793
## 2023-10-24 17:37:25.888892 INFO::Fitting model to feature number 764, F794
## 2023-10-24 17:37:25.893682 INFO::Fitting model to feature number 765, F795
## 2023-10-24 17:37:25.898609 INFO::Fitting model to feature number 766, F796
## 2023-10-24 17:37:25.902755 INFO::Fitting model to feature number 767, F797
## 2023-10-24 17:37:25.908491 INFO::Fitting model to feature number 768, F798
## 2023-10-24 17:37:25.913525 INFO::Fitting model to feature number 769, F799
## 2023-10-24 17:37:25.918186 INFO::Fitting model to feature number 770, F800
## 2023-10-24 17:37:25.923262 INFO::Fitting model to feature number 771, F801
## 2023-10-24 17:37:25.928627 INFO::Fitting model to feature number 772, F802
## 2023-10-24 17:37:25.934067 INFO::Fitting model to feature number 773, F803
## 2023-10-24 17:37:25.938427 INFO::Fitting model to feature number 774, F804
## 2023-10-24 17:37:25.943749 INFO::Fitting model to feature number 775, F805
## 2023-10-24 17:37:25.948554 INFO::Fitting model to feature number 776, F806
## 2023-10-24 17:37:25.95351 INFO::Fitting model to feature number 777, F808
## 2023-10-24 17:37:25.958456 INFO::Fitting model to feature number 778, F809
## 2023-10-24 17:37:25.962845 INFO::Fitting model to feature number 779, F810
## 2023-10-24 17:37:25.968155 INFO::Fitting model to feature number 780, F811
## 2023-10-24 17:37:25.973095 INFO::Fitting model to feature number 781, F812
## 2023-10-24 17:37:25.978579 INFO::Fitting model to feature number 782, F813
## 2023-10-24 17:37:25.984068 INFO::Fitting model to feature number 783, F814
## 2023-10-24 17:37:25.990033 INFO::Fitting model to feature number 784, F815
## 2023-10-24 17:37:25.996335 INFO::Fitting model to feature number 785, F816
## 2023-10-24 17:37:26.001925 INFO::Fitting model to feature number 786, F817
## 2023-10-24 17:37:26.007118 INFO::Fitting model to feature number 787, F818
## 2023-10-24 17:37:26.012815 INFO::Fitting model to feature number 788, F819
## 2023-10-24 17:37:26.018035 INFO::Fitting model to feature number 789, F820
## 2023-10-24 17:37:26.023503 INFO::Fitting model to feature number 790, F821
## 2023-10-24 17:37:26.029383 INFO::Fitting model to feature number 791, F822
## 2023-10-24 17:37:26.035278 INFO::Fitting model to feature number 792, F823
## 2023-10-24 17:37:26.04099 INFO::Fitting model to feature number 793, F824
## 2023-10-24 17:37:26.045633 INFO::Fitting model to feature number 794, F825
## 2023-10-24 17:37:26.050383 INFO::Fitting model to feature number 795, F826
## 2023-10-24 17:37:26.054971 INFO::Fitting model to feature number 796, F827
## 2023-10-24 17:37:26.060332 INFO::Fitting model to feature number 797, F828
## 2023-10-24 17:37:26.065882 INFO::Fitting model to feature number 798, F829
## 2023-10-24 17:37:26.071193 INFO::Fitting model to feature number 799, F830
## 2023-10-24 17:37:26.075112 INFO::Fitting model to feature number 800, F831
## 2023-10-24 17:37:26.079572 INFO::Fitting model to feature number 801, F832
## 2023-10-24 17:37:26.084495 INFO::Fitting model to feature number 802, F833
## 2023-10-24 17:37:26.090011 INFO::Fitting model to feature number 803, F834
## 2023-10-24 17:37:26.095671 INFO::Fitting model to feature number 804, F835
## 2023-10-24 17:37:26.10147 INFO::Fitting model to feature number 805, F836
## 2023-10-24 17:37:26.107091 INFO::Fitting model to feature number 806, F837
## 2023-10-24 17:37:26.112415 INFO::Fitting model to feature number 807, F838
## 2023-10-24 17:37:26.116978 INFO::Fitting model to feature number 808, F839
## 2023-10-24 17:37:26.122149 INFO::Fitting model to feature number 809, F840
## 2023-10-24 17:37:26.127945 INFO::Fitting model to feature number 810, F841
## 2023-10-24 17:37:26.133474 INFO::Fitting model to feature number 811, F842
## 2023-10-24 17:37:26.138639 INFO::Fitting model to feature number 812, F843
## 2023-10-24 17:37:26.144222 INFO::Fitting model to feature number 813, F844
## 2023-10-24 17:37:26.150385 INFO::Fitting model to feature number 814, F845
## 2023-10-24 17:37:26.15612 INFO::Fitting model to feature number 815, F846
## 2023-10-24 17:37:26.160597 INFO::Fitting model to feature number 816, F847
## 2023-10-24 17:37:26.165874 INFO::Fitting model to feature number 817, F848
## 2023-10-24 17:37:26.171136 INFO::Fitting model to feature number 818, F849
## 2023-10-24 17:37:26.176994 INFO::Fitting model to feature number 819, F850
## 2023-10-24 17:37:26.182956 INFO::Fitting model to feature number 820, F851
## 2023-10-24 17:37:26.188711 INFO::Fitting model to feature number 821, F852
## 2023-10-24 17:37:26.193788 INFO::Fitting model to feature number 822, F853
## 2023-10-24 17:37:26.199384 INFO::Fitting model to feature number 823, F854
## 2023-10-24 17:37:26.205217 INFO::Fitting model to feature number 824, F855
## 2023-10-24 17:37:26.210881 INFO::Fitting model to feature number 825, F856
## 2023-10-24 17:37:26.215271 INFO::Fitting model to feature number 826, F857
## 2023-10-24 17:37:26.221125 INFO::Fitting model to feature number 827, F858
## 2023-10-24 17:37:26.226479 INFO::Fitting model to feature number 828, F859
## 2023-10-24 17:37:26.231255 INFO::Fitting model to feature number 829, F860
## 2023-10-24 17:37:26.236681 INFO::Fitting model to feature number 830, F861
## 2023-10-24 17:37:26.241359 INFO::Fitting model to feature number 831, F862
## 2023-10-24 17:37:26.245564 INFO::Fitting model to feature number 832, F863
## 2023-10-24 17:37:26.250036 INFO::Fitting model to feature number 833, F864
## 2023-10-24 17:37:26.255373 INFO::Fitting model to feature number 834, F865
## 2023-10-24 17:37:26.259992 INFO::Fitting model to feature number 835, F866
## 2023-10-24 17:37:26.264319 INFO::Fitting model to feature number 836, F867
## 2023-10-24 17:37:26.269716 INFO::Fitting model to feature number 837, F868
## 2023-10-24 17:37:26.275266 INFO::Fitting model to feature number 838, F869
## 2023-10-24 17:37:26.281147 INFO::Fitting model to feature number 839, F870
## 2023-10-24 17:37:26.286061 INFO::Fitting model to feature number 840, F871
## 2023-10-24 17:37:26.291432 INFO::Fitting model to feature number 841, F872
## 2023-10-24 17:37:26.297269 INFO::Fitting model to feature number 842, F873
## 2023-10-24 17:37:26.302758 INFO::Fitting model to feature number 843, F874
## 2023-10-24 17:37:26.308567 INFO::Fitting model to feature number 844, F875
## 2023-10-24 17:37:26.314847 INFO::Fitting model to feature number 845, F876
## 2023-10-24 17:37:26.319452 INFO::Fitting model to feature number 846, F877
## 2023-10-24 17:37:26.324234 INFO::Fitting model to feature number 847, F878
## 2023-10-24 17:37:26.330185 INFO::Fitting model to feature number 848, F879
## 2023-10-24 17:37:26.336909 INFO::Fitting model to feature number 849, F880
## 2023-10-24 17:37:26.342359 INFO::Fitting model to feature number 850, F881
## 2023-10-24 17:37:26.348349 INFO::Fitting model to feature number 851, F882
## 2023-10-24 17:37:26.353759 INFO::Fitting model to feature number 852, F883
## 2023-10-24 17:37:26.359503 INFO::Fitting model to feature number 853, F884
## 2023-10-24 17:37:26.365133 INFO::Fitting model to feature number 854, F885
## 2023-10-24 17:37:26.370868 INFO::Fitting model to feature number 855, F886
## 2023-10-24 17:37:26.376439 INFO::Fitting model to feature number 856, F887
## 2023-10-24 17:37:26.381985 INFO::Fitting model to feature number 857, F888
## 2023-10-24 17:37:26.389396 INFO::Fitting model to feature number 858, F889
## 2023-10-24 17:37:26.395953 INFO::Fitting model to feature number 859, F890
## 2023-10-24 17:37:26.401893 INFO::Fitting model to feature number 860, F891
## 2023-10-24 17:37:26.407698 INFO::Fitting model to feature number 861, F892
## 2023-10-24 17:37:26.415376 INFO::Fitting model to feature number 862, F893
## 2023-10-24 17:37:26.421093 INFO::Fitting model to feature number 863, F894
## 2023-10-24 17:37:26.426957 INFO::Fitting model to feature number 864, F895
## 2023-10-24 17:37:26.432356 INFO::Fitting model to feature number 865, F896
## 2023-10-24 17:37:26.437758 INFO::Fitting model to feature number 866, F897
## 2023-10-24 17:37:26.443998 INFO::Fitting model to feature number 867, F898
## 2023-10-24 17:37:26.448724 INFO::Fitting model to feature number 868, F899
## 2023-10-24 17:37:26.45476 INFO::Fitting model to feature number 869, F900
## 2023-10-24 17:37:26.741169 INFO::Counting total values for each feature
## 2023-10-24 17:37:26.886329 INFO::Writing filtered data to file Macarron_output/maaslin2_results/features/filtered_data.tsv
## 2023-10-24 17:37:27.029963 INFO::Writing filtered, normalized data to file Macarron_output/maaslin2_results/features/filtered_data_norm.tsv
## 2023-10-24 17:37:27.173012 INFO::Writing filtered, normalized, transformed data to file Macarron_output/maaslin2_results/features/filtered_data_norm_transformed.tsv
## 2023-10-24 17:37:27.311982 INFO::Writing residuals to file Macarron_output/maaslin2_results/fits/residuals.rds
## 2023-10-24 17:37:27.361203 INFO::Writing fitted values to file Macarron_output/maaslin2_results/fits/fitted.rds
## 2023-10-24 17:37:27.40398 INFO::Writing all results to file (ordered by increasing q-values): Macarron_output/maaslin2_results/all_results.tsv
## 2023-10-24 17:37:27.433449 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
## 2023-10-24 17:37:27.446954 INFO::Writing heatmap of significant results to file: Macarron_output/maaslin2_results/heatmap.pdf
## 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
## 2023-10-24 17:37:27.885623 INFO::Writing all prioritized metabolites to file: Macarron_output/prioritized_metabolites_all.csv
## 2023-10-24 17:37:27.897115 INFO::Writing characterizable prioritized metabolites to file: Macarron_output/prioritized_metabolites_characterizable.csv
## 2023-10-24 17:37:27.929526 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 version 4.3.1 Patched (2023-06-17 r84564)
## Platform: x86_64-apple-darwin20 (64-bit)
## Running under: macOS Monterey 12.6.5
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/lib/libRblas.0.dylib 
## LAPACK: /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0
## 
## locale:
## [1] C/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## time zone: America/New_York
## tzcode source: internal
## 
## attached base packages:
## [1] stats4    stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] Macarron_1.6.0              SummarizedExperiment_1.32.0
##  [3] Biobase_2.62.0              GenomicRanges_1.54.0       
##  [5] GenomeInfoDb_1.38.0         IRanges_2.36.0             
##  [7] S4Vectors_0.40.0            BiocGenerics_0.48.0        
##  [9] MatrixGenerics_1.14.0       matrixStats_1.0.0          
## [11] BiocStyle_2.30.0           
## 
## loaded via a namespace (and not attached):
##   [1] mnormt_2.1.1            DBI_1.1.3               bitops_1.0-7           
##   [4] pbapply_1.7-2           gridExtra_2.3           rlang_1.1.1            
##   [7] magrittr_2.0.3          compiler_4.3.1          RSQLite_2.3.1          
##  [10] png_0.1-8               vctrs_0.6.4             stringr_1.5.0          
##  [13] pkgconfig_2.0.3         crayon_1.5.2            fastmap_1.1.1          
##  [16] backports_1.4.1         XVector_0.42.0          utf8_1.2.4             
##  [19] rmarkdown_2.25          preprocessCore_1.64.0   bit_4.0.5              
##  [22] xfun_0.40               zlibbioc_1.48.0         cachem_1.0.8           
##  [25] jsonlite_1.8.7          blob_1.2.4              DelayedArray_0.28.0    
##  [28] BiocParallel_1.36.0     psych_2.3.9             Maaslin2_1.16.0        
##  [31] parallel_4.3.1          cluster_2.1.4           biglm_0.9-2.1          
##  [34] R6_2.5.1                RColorBrewer_1.1-3      stringi_1.7.12         
##  [37] bslib_0.5.1             rpart_4.1.21            jquerylib_0.1.4        
##  [40] Rcpp_1.0.11             bookdown_0.36           iterators_1.0.14       
##  [43] knitr_1.44              WGCNA_1.72-1            base64enc_0.1-3        
##  [46] Matrix_1.6-1.1          splines_4.3.1           nnet_7.3-19            
##  [49] tidyselect_1.2.0        rstudioapi_0.15.0       abind_1.4-5            
##  [52] yaml_2.3.7              doParallel_1.0.17       codetools_0.2-19       
##  [55] plyr_1.8.9              lattice_0.22-5          tibble_3.2.1           
##  [58] withr_2.5.1             KEGGREST_1.42.0         evaluate_0.22          
##  [61] foreign_0.8-85          survival_3.5-7          getopt_1.20.4          
##  [64] Biostrings_2.70.0       pillar_1.9.0            BiocManager_1.30.22    
##  [67] checkmate_2.2.0         foreach_1.5.2           pcaPP_2.0-3            
##  [70] generics_0.1.3          RCurl_1.98-1.12         ggplot2_3.4.4          
##  [73] munsell_0.5.0           scales_1.2.1            glue_1.6.2             
##  [76] pheatmap_1.0.12         Hmisc_5.1-1             tools_4.3.1            
##  [79] robustbase_0.99-0       data.table_1.14.8       mvtnorm_1.2-3          
##  [82] fastcluster_1.2.3       grid_4.3.1              optparse_1.7.3         
##  [85] impute_1.76.0           AnnotationDbi_1.64.0    colorspace_2.1-0       
##  [88] nlme_3.1-163            GenomeInfoDbData_1.2.11 htmlTable_2.4.1        
##  [91] Formula_1.2-5           cli_3.6.1               fansi_1.0.5            
##  [94] S4Arrays_1.2.0          dplyr_1.1.3             DEoptimR_1.1-3         
##  [97] gtable_0.3.4            hash_2.2.6.3            logging_0.10-108       
## [100] dynamicTreeCut_1.63-1   sass_0.4.7              digest_0.6.33          
## [103] SparseArray_1.2.0       htmlwidgets_1.6.2       memoise_2.0.1          
## [106] htmltools_0.5.6.1       lifecycle_1.0.3         httr_1.4.7             
## [109] GO.db_3.18.0            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.