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-06-08 17:09:50.357136 INFO::Creating output folder.
## 2023-06-08 17:09:50.369962 INFO::Writing function arguments to log file
## Samples with both abundances and metadata: 102
## 2023-06-08 17:09:50.430781 INFO::Summarized Experiment created.
## 2023-06-08 17:09:50.432315 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-06-08 17:09:54.91342 INFO::Distance matrix with 869 metabolic features created.
## Initiating module detection
## 2023-06-08 17:09:54.914592 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-06-08 17:09:56.329615 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-06-08 17:09:58.432998 INFO::Writing function arguments to log file
## 2023-06-08 17:09:58.438333 INFO::Verifying options selected are valid
## 2023-06-08 17:09:58.481198 INFO::Determining format of input files
## 2023-06-08 17:09:58.482215 INFO::Input format is data samples as columns and metadata samples as rows
## 2023-06-08 17:09:58.498253 INFO::Formula for fixed effects: expr ~  diagnosis + age + antibiotics
## 2023-06-08 17:09:58.499768 INFO::Filter data based on min abundance and min prevalence
## 2023-06-08 17:09:58.500445 INFO::Total samples in data: 102
## 2023-06-08 17:09:58.501066 INFO::Min samples required with min abundance for a feature not to be filtered: 0.000000
## 2023-06-08 17:09:58.512975 INFO::Total filtered features: 0
## 2023-06-08 17:09:58.513961 INFO::Filtered feature names from abundance and prevalence filtering:
## 2023-06-08 17:09:58.534454 INFO::Total filtered features with variance filtering: 0
## 2023-06-08 17:09:58.535499 INFO::Filtered feature names from variance filtering:
## 2023-06-08 17:09:58.53617 INFO::Running selected normalization method: NONE
## 2023-06-08 17:09:58.536877 INFO::Applying z-score to standardize continuous metadata
## 2023-06-08 17:09:58.570174 INFO::Running selected transform method: NONE
## 2023-06-08 17:09:58.571116 INFO::Running selected analysis method: LM
## 2023-06-08 17:09:58.576846 INFO::Fitting model to feature number 1, F1
## 2023-06-08 17:09:58.587491 INFO::Fitting model to feature number 2, F2
## 2023-06-08 17:09:58.591425 INFO::Fitting model to feature number 3, F3
## 2023-06-08 17:09:58.595303 INFO::Fitting model to feature number 4, F4
## 2023-06-08 17:09:58.599058 INFO::Fitting model to feature number 5, F5
## 2023-06-08 17:09:58.602683 INFO::Fitting model to feature number 6, F6
## 2023-06-08 17:09:58.606282 INFO::Fitting model to feature number 7, F7
## 2023-06-08 17:09:58.609876 INFO::Fitting model to feature number 8, F8
## 2023-06-08 17:09:58.613461 INFO::Fitting model to feature number 9, F9
## 2023-06-08 17:09:58.616966 INFO::Fitting model to feature number 10, F10
## 2023-06-08 17:09:58.620444 INFO::Fitting model to feature number 11, F11
## 2023-06-08 17:09:58.62389 INFO::Fitting model to feature number 12, F12
## 2023-06-08 17:09:58.627364 INFO::Fitting model to feature number 13, F13
## 2023-06-08 17:09:58.630851 INFO::Fitting model to feature number 14, F14
## 2023-06-08 17:09:58.634342 INFO::Fitting model to feature number 15, F15
## 2023-06-08 17:09:58.637951 INFO::Fitting model to feature number 16, F16
## 2023-06-08 17:09:58.641462 INFO::Fitting model to feature number 17, F17
## 2023-06-08 17:09:58.644938 INFO::Fitting model to feature number 18, F18
## 2023-06-08 17:09:58.648401 INFO::Fitting model to feature number 19, F19
## 2023-06-08 17:09:58.651865 INFO::Fitting model to feature number 20, F20
## 2023-06-08 17:09:58.655352 INFO::Fitting model to feature number 21, F21
## 2023-06-08 17:09:58.65886 INFO::Fitting model to feature number 22, F22
## 2023-06-08 17:09:58.662404 INFO::Fitting model to feature number 23, F23
## 2023-06-08 17:09:58.665916 INFO::Fitting model to feature number 24, F24
## 2023-06-08 17:09:58.669334 INFO::Fitting model to feature number 25, F25
## 2023-06-08 17:09:58.672841 INFO::Fitting model to feature number 26, F26
## 2023-06-08 17:09:58.676354 INFO::Fitting model to feature number 27, F27
## 2023-06-08 17:09:58.679891 INFO::Fitting model to feature number 28, F28
## 2023-06-08 17:09:58.683399 INFO::Fitting model to feature number 29, F29
## 2023-06-08 17:09:58.686857 INFO::Fitting model to feature number 30, F30
## 2023-06-08 17:09:58.690287 INFO::Fitting model to feature number 31, F31
## 2023-06-08 17:09:58.693707 INFO::Fitting model to feature number 32, F32
## 2023-06-08 17:09:58.697189 INFO::Fitting model to feature number 33, F33
## 2023-06-08 17:09:58.70065 INFO::Fitting model to feature number 34, F34
## 2023-06-08 17:09:58.704056 INFO::Fitting model to feature number 35, F35
## 2023-06-08 17:09:58.707488 INFO::Fitting model to feature number 36, F36
## 2023-06-08 17:09:58.71091 INFO::Fitting model to feature number 37, F37
## 2023-06-08 17:09:58.714385 INFO::Fitting model to feature number 38, F38
## 2023-06-08 17:09:58.717829 INFO::Fitting model to feature number 39, F39
## 2023-06-08 17:09:58.721295 INFO::Fitting model to feature number 40, F40
## 2023-06-08 17:09:58.724775 INFO::Fitting model to feature number 41, F41
## 2023-06-08 17:09:58.728285 INFO::Fitting model to feature number 42, F43
## 2023-06-08 17:09:58.731783 INFO::Fitting model to feature number 43, F44
## 2023-06-08 17:09:58.735368 INFO::Fitting model to feature number 44, F45
## 2023-06-08 17:09:58.739001 INFO::Fitting model to feature number 45, F46
## 2023-06-08 17:09:58.742492 INFO::Fitting model to feature number 46, F47
## 2023-06-08 17:09:58.745979 INFO::Fitting model to feature number 47, F48
## 2023-06-08 17:09:58.749483 INFO::Fitting model to feature number 48, F49
## 2023-06-08 17:09:58.752928 INFO::Fitting model to feature number 49, F50
## 2023-06-08 17:09:58.756345 INFO::Fitting model to feature number 50, F51
## 2023-06-08 17:09:58.759772 INFO::Fitting model to feature number 51, F52
## 2023-06-08 17:09:58.763202 INFO::Fitting model to feature number 52, F53
## 2023-06-08 17:09:58.766629 INFO::Fitting model to feature number 53, F54
## 2023-06-08 17:09:58.770107 INFO::Fitting model to feature number 54, F55
## 2023-06-08 17:09:58.773605 INFO::Fitting model to feature number 55, F56
## 2023-06-08 17:09:58.777049 INFO::Fitting model to feature number 56, F57
## 2023-06-08 17:09:58.780484 INFO::Fitting model to feature number 57, F58
## 2023-06-08 17:09:58.783897 INFO::Fitting model to feature number 58, F59
## 2023-06-08 17:09:58.78736 INFO::Fitting model to feature number 59, F60
## 2023-06-08 17:09:58.790793 INFO::Fitting model to feature number 60, F63
## 2023-06-08 17:09:58.794238 INFO::Fitting model to feature number 61, F64
## 2023-06-08 17:09:58.797675 INFO::Fitting model to feature number 62, F65
## 2023-06-08 17:09:58.801111 INFO::Fitting model to feature number 63, F66
## 2023-06-08 17:09:58.804574 INFO::Fitting model to feature number 64, F67
## 2023-06-08 17:09:58.80803 INFO::Fitting model to feature number 65, F68
## 2023-06-08 17:09:58.811554 INFO::Fitting model to feature number 66, F69
## 2023-06-08 17:09:58.814993 INFO::Fitting model to feature number 67, F70
## 2023-06-08 17:09:58.818409 INFO::Fitting model to feature number 68, F71
## 2023-06-08 17:09:58.821842 INFO::Fitting model to feature number 69, F72
## 2023-06-08 17:09:58.825275 INFO::Fitting model to feature number 70, F73
## 2023-06-08 17:09:58.828732 INFO::Fitting model to feature number 71, F74
## 2023-06-08 17:09:58.832155 INFO::Fitting model to feature number 72, F76
## 2023-06-08 17:09:58.835589 INFO::Fitting model to feature number 73, F77
## 2023-06-08 17:09:58.839009 INFO::Fitting model to feature number 74, F78
## 2023-06-08 17:09:58.842467 INFO::Fitting model to feature number 75, F79
## 2023-06-08 17:09:58.845906 INFO::Fitting model to feature number 76, F80
## 2023-06-08 17:09:58.849415 INFO::Fitting model to feature number 77, F81
## 2023-06-08 17:09:58.852892 INFO::Fitting model to feature number 78, F82
## 2023-06-08 17:09:58.8563 INFO::Fitting model to feature number 79, F83
## 2023-06-08 17:09:58.859728 INFO::Fitting model to feature number 80, F84
## 2023-06-08 17:09:58.863135 INFO::Fitting model to feature number 81, F85
## 2023-06-08 17:09:58.866541 INFO::Fitting model to feature number 82, F86
## 2023-06-08 17:09:58.869944 INFO::Fitting model to feature number 83, F87
## 2023-06-08 17:09:58.873342 INFO::Fitting model to feature number 84, F88
## 2023-06-08 17:09:58.876816 INFO::Fitting model to feature number 85, F89
## 2023-06-08 17:09:58.880211 INFO::Fitting model to feature number 86, F90
## 2023-06-08 17:09:58.883664 INFO::Fitting model to feature number 87, F91
## 2023-06-08 17:09:58.887102 INFO::Fitting model to feature number 88, F92
## 2023-06-08 17:09:58.890541 INFO::Fitting model to feature number 89, F93
## 2023-06-08 17:09:58.899427 INFO::Fitting model to feature number 90, F94
## 2023-06-08 17:09:58.903806 INFO::Fitting model to feature number 91, F95
## 2023-06-08 17:09:58.907483 INFO::Fitting model to feature number 92, F96
## 2023-06-08 17:09:58.911102 INFO::Fitting model to feature number 93, F97
## 2023-06-08 17:09:58.91467 INFO::Fitting model to feature number 94, F98
## 2023-06-08 17:09:58.91828 INFO::Fitting model to feature number 95, F99
## 2023-06-08 17:09:58.921831 INFO::Fitting model to feature number 96, F100
## 2023-06-08 17:09:58.925366 INFO::Fitting model to feature number 97, F101
## 2023-06-08 17:09:58.958263 INFO::Fitting model to feature number 98, F102
## 2023-06-08 17:09:58.96215 INFO::Fitting model to feature number 99, F103
## 2023-06-08 17:09:58.965747 INFO::Fitting model to feature number 100, F104
## 2023-06-08 17:09:58.969214 INFO::Fitting model to feature number 101, F105
## 2023-06-08 17:09:58.972603 INFO::Fitting model to feature number 102, F106
## 2023-06-08 17:09:58.975924 INFO::Fitting model to feature number 103, F107
## 2023-06-08 17:09:58.97924 INFO::Fitting model to feature number 104, F108
## 2023-06-08 17:09:58.982563 INFO::Fitting model to feature number 105, F109
## 2023-06-08 17:09:58.985878 INFO::Fitting model to feature number 106, F110
## 2023-06-08 17:09:58.9892 INFO::Fitting model to feature number 107, F111
## 2023-06-08 17:09:58.992509 INFO::Fitting model to feature number 108, F112
## 2023-06-08 17:09:58.995764 INFO::Fitting model to feature number 109, F113
## 2023-06-08 17:09:58.999043 INFO::Fitting model to feature number 110, F114
## 2023-06-08 17:09:59.002333 INFO::Fitting model to feature number 111, F115
## 2023-06-08 17:09:59.005594 INFO::Fitting model to feature number 112, F117
## 2023-06-08 17:09:59.008843 INFO::Fitting model to feature number 113, F118
## 2023-06-08 17:09:59.012067 INFO::Fitting model to feature number 114, F119
## 2023-06-08 17:09:59.015295 INFO::Fitting model to feature number 115, F120
## 2023-06-08 17:09:59.018561 INFO::Fitting model to feature number 116, F121
## 2023-06-08 17:09:59.021834 INFO::Fitting model to feature number 117, F122
## 2023-06-08 17:09:59.025183 INFO::Fitting model to feature number 118, F123
## 2023-06-08 17:09:59.028451 INFO::Fitting model to feature number 119, F124
## 2023-06-08 17:09:59.03171 INFO::Fitting model to feature number 120, F125
## 2023-06-08 17:09:59.034945 INFO::Fitting model to feature number 121, F126
## 2023-06-08 17:09:59.038221 INFO::Fitting model to feature number 122, F127
## 2023-06-08 17:09:59.04147 INFO::Fitting model to feature number 123, F128
## 2023-06-08 17:09:59.044723 INFO::Fitting model to feature number 124, F129
## 2023-06-08 17:09:59.047983 INFO::Fitting model to feature number 125, F130
## 2023-06-08 17:09:59.051214 INFO::Fitting model to feature number 126, F131
## 2023-06-08 17:09:59.054541 INFO::Fitting model to feature number 127, F132
## 2023-06-08 17:09:59.057816 INFO::Fitting model to feature number 128, F133
## 2023-06-08 17:09:59.06108 INFO::Fitting model to feature number 129, F134
## 2023-06-08 17:09:59.064317 INFO::Fitting model to feature number 130, F135
## 2023-06-08 17:09:59.067583 INFO::Fitting model to feature number 131, F136
## 2023-06-08 17:09:59.070814 INFO::Fitting model to feature number 132, F137
## 2023-06-08 17:09:59.074089 INFO::Fitting model to feature number 133, F138
## 2023-06-08 17:09:59.077352 INFO::Fitting model to feature number 134, F139
## 2023-06-08 17:09:59.080647 INFO::Fitting model to feature number 135, F140
## 2023-06-08 17:09:59.083888 INFO::Fitting model to feature number 136, F141
## 2023-06-08 17:09:59.087153 INFO::Fitting model to feature number 137, F142
## 2023-06-08 17:09:59.090697 INFO::Fitting model to feature number 138, F143
## 2023-06-08 17:09:59.094019 INFO::Fitting model to feature number 139, F144
## 2023-06-08 17:09:59.097287 INFO::Fitting model to feature number 140, F145
## 2023-06-08 17:09:59.100578 INFO::Fitting model to feature number 141, F146
## 2023-06-08 17:09:59.103895 INFO::Fitting model to feature number 142, F147
## 2023-06-08 17:09:59.107196 INFO::Fitting model to feature number 143, F148
## 2023-06-08 17:09:59.110557 INFO::Fitting model to feature number 144, F149
## 2023-06-08 17:09:59.113815 INFO::Fitting model to feature number 145, F150
## 2023-06-08 17:09:59.11708 INFO::Fitting model to feature number 146, F152
## 2023-06-08 17:09:59.120305 INFO::Fitting model to feature number 147, F153
## 2023-06-08 17:09:59.12349 INFO::Fitting model to feature number 148, F154
## 2023-06-08 17:09:59.12675 INFO::Fitting model to feature number 149, F155
## 2023-06-08 17:09:59.130038 INFO::Fitting model to feature number 150, F156
## 2023-06-08 17:09:59.133299 INFO::Fitting model to feature number 151, F157
## 2023-06-08 17:09:59.136543 INFO::Fitting model to feature number 152, F158
## 2023-06-08 17:09:59.139807 INFO::Fitting model to feature number 153, F159
## 2023-06-08 17:09:59.143037 INFO::Fitting model to feature number 154, F160
## 2023-06-08 17:09:59.146307 INFO::Fitting model to feature number 155, F161
## 2023-06-08 17:09:59.149536 INFO::Fitting model to feature number 156, F162
## 2023-06-08 17:09:59.152754 INFO::Fitting model to feature number 157, F163
## 2023-06-08 17:09:59.155975 INFO::Fitting model to feature number 158, F164
## 2023-06-08 17:09:59.159203 INFO::Fitting model to feature number 159, F165
## 2023-06-08 17:09:59.162482 INFO::Fitting model to feature number 160, F166
## 2023-06-08 17:09:59.165751 INFO::Fitting model to feature number 161, F167
## 2023-06-08 17:09:59.169019 INFO::Fitting model to feature number 162, F168
## 2023-06-08 17:09:59.172256 INFO::Fitting model to feature number 163, F169
## 2023-06-08 17:09:59.175459 INFO::Fitting model to feature number 164, F170
## 2023-06-08 17:09:59.178724 INFO::Fitting model to feature number 165, F171
## 2023-06-08 17:09:59.182062 INFO::Fitting model to feature number 166, F172
## 2023-06-08 17:09:59.185305 INFO::Fitting model to feature number 167, F173
## 2023-06-08 17:09:59.188561 INFO::Fitting model to feature number 168, F174
## 2023-06-08 17:09:59.191765 INFO::Fitting model to feature number 169, F175
## 2023-06-08 17:09:59.195003 INFO::Fitting model to feature number 170, F176
## 2023-06-08 17:09:59.19824 INFO::Fitting model to feature number 171, F177
## 2023-06-08 17:09:59.201494 INFO::Fitting model to feature number 172, F178
## 2023-06-08 17:09:59.204715 INFO::Fitting model to feature number 173, F179
## 2023-06-08 17:09:59.207924 INFO::Fitting model to feature number 174, F180
## 2023-06-08 17:09:59.211212 INFO::Fitting model to feature number 175, F181
## 2023-06-08 17:09:59.214483 INFO::Fitting model to feature number 176, F182
## 2023-06-08 17:09:59.217753 INFO::Fitting model to feature number 177, F183
## 2023-06-08 17:09:59.221043 INFO::Fitting model to feature number 178, F184
## 2023-06-08 17:09:59.224272 INFO::Fitting model to feature number 179, F185
## 2023-06-08 17:09:59.227569 INFO::Fitting model to feature number 180, F186
## 2023-06-08 17:09:59.230869 INFO::Fitting model to feature number 181, F187
## 2023-06-08 17:09:59.234089 INFO::Fitting model to feature number 182, F188
## 2023-06-08 17:09:59.237392 INFO::Fitting model to feature number 183, F189
## 2023-06-08 17:09:59.240683 INFO::Fitting model to feature number 184, F190
## 2023-06-08 17:09:59.243935 INFO::Fitting model to feature number 185, F191
## 2023-06-08 17:09:59.247228 INFO::Fitting model to feature number 186, F192
## 2023-06-08 17:09:59.25054 INFO::Fitting model to feature number 187, F193
## 2023-06-08 17:09:59.253796 INFO::Fitting model to feature number 188, F194
## 2023-06-08 17:09:59.257089 INFO::Fitting model to feature number 189, F195
## 2023-06-08 17:09:59.26032 INFO::Fitting model to feature number 190, F196
## 2023-06-08 17:09:59.263595 INFO::Fitting model to feature number 191, F197
## 2023-06-08 17:09:59.266867 INFO::Fitting model to feature number 192, F198
## 2023-06-08 17:09:59.270175 INFO::Fitting model to feature number 193, F199
## 2023-06-08 17:09:59.273516 INFO::Fitting model to feature number 194, F200
## 2023-06-08 17:09:59.276852 INFO::Fitting model to feature number 195, F201
## 2023-06-08 17:09:59.280115 INFO::Fitting model to feature number 196, F202
## 2023-06-08 17:09:59.283452 INFO::Fitting model to feature number 197, F203
## 2023-06-08 17:09:59.286747 INFO::Fitting model to feature number 198, F204
## 2023-06-08 17:09:59.290035 INFO::Fitting model to feature number 199, F206
## 2023-06-08 17:09:59.293319 INFO::Fitting model to feature number 200, F207
## 2023-06-08 17:09:59.296584 INFO::Fitting model to feature number 201, F208
## 2023-06-08 17:09:59.299858 INFO::Fitting model to feature number 202, F209
## 2023-06-08 17:09:59.303204 INFO::Fitting model to feature number 203, F210
## 2023-06-08 17:09:59.306521 INFO::Fitting model to feature number 204, F211
## 2023-06-08 17:09:59.309858 INFO::Fitting model to feature number 205, F212
## 2023-06-08 17:09:59.313193 INFO::Fitting model to feature number 206, F213
## 2023-06-08 17:09:59.316518 INFO::Fitting model to feature number 207, F214
## 2023-06-08 17:09:59.319815 INFO::Fitting model to feature number 208, F215
## 2023-06-08 17:09:59.323108 INFO::Fitting model to feature number 209, F216
## 2023-06-08 17:09:59.326452 INFO::Fitting model to feature number 210, F217
## 2023-06-08 17:09:59.32977 INFO::Fitting model to feature number 211, F218
## 2023-06-08 17:09:59.333061 INFO::Fitting model to feature number 212, F219
## 2023-06-08 17:09:59.336353 INFO::Fitting model to feature number 213, F220
## 2023-06-08 17:09:59.339662 INFO::Fitting model to feature number 214, F221
## 2023-06-08 17:09:59.342982 INFO::Fitting model to feature number 215, F222
## 2023-06-08 17:09:59.346301 INFO::Fitting model to feature number 216, F223
## 2023-06-08 17:09:59.349718 INFO::Fitting model to feature number 217, F224
## 2023-06-08 17:09:59.353043 INFO::Fitting model to feature number 218, F225
## 2023-06-08 17:09:59.356293 INFO::Fitting model to feature number 219, F226
## 2023-06-08 17:09:59.35962 INFO::Fitting model to feature number 220, F227
## 2023-06-08 17:09:59.362952 INFO::Fitting model to feature number 221, F228
## 2023-06-08 17:09:59.366267 INFO::Fitting model to feature number 222, F229
## 2023-06-08 17:09:59.369585 INFO::Fitting model to feature number 223, F230
## 2023-06-08 17:09:59.372889 INFO::Fitting model to feature number 224, F231
## 2023-06-08 17:09:59.376176 INFO::Fitting model to feature number 225, F232
## 2023-06-08 17:09:59.379494 INFO::Fitting model to feature number 226, F233
## 2023-06-08 17:09:59.382791 INFO::Fitting model to feature number 227, F234
## 2023-06-08 17:09:59.386109 INFO::Fitting model to feature number 228, F235
## 2023-06-08 17:09:59.389461 INFO::Fitting model to feature number 229, F236
## 2023-06-08 17:09:59.392857 INFO::Fitting model to feature number 230, F237
## 2023-06-08 17:09:59.396175 INFO::Fitting model to feature number 231, F238
## 2023-06-08 17:09:59.399536 INFO::Fitting model to feature number 232, F239
## 2023-06-08 17:09:59.402912 INFO::Fitting model to feature number 233, F240
## 2023-06-08 17:09:59.406366 INFO::Fitting model to feature number 234, F241
## 2023-06-08 17:09:59.410162 INFO::Fitting model to feature number 235, F242
## 2023-06-08 17:09:59.413715 INFO::Fitting model to feature number 236, F243
## 2023-06-08 17:09:59.417304 INFO::Fitting model to feature number 237, F244
## 2023-06-08 17:09:59.421039 INFO::Fitting model to feature number 238, F245
## 2023-06-08 17:09:59.424911 INFO::Fitting model to feature number 239, F246
## 2023-06-08 17:09:59.428595 INFO::Fitting model to feature number 240, F247
## 2023-06-08 17:09:59.43195 INFO::Fitting model to feature number 241, F248
## 2023-06-08 17:09:59.435323 INFO::Fitting model to feature number 242, F249
## 2023-06-08 17:09:59.438698 INFO::Fitting model to feature number 243, F250
## 2023-06-08 17:09:59.442085 INFO::Fitting model to feature number 244, F252
## 2023-06-08 17:09:59.445464 INFO::Fitting model to feature number 245, F253
## 2023-06-08 17:09:59.448827 INFO::Fitting model to feature number 246, F254
## 2023-06-08 17:09:59.452163 INFO::Fitting model to feature number 247, F255
## 2023-06-08 17:09:59.455559 INFO::Fitting model to feature number 248, F256
## 2023-06-08 17:09:59.458897 INFO::Fitting model to feature number 249, F257
## 2023-06-08 17:09:59.462256 INFO::Fitting model to feature number 250, F259
## 2023-06-08 17:09:59.465602 INFO::Fitting model to feature number 251, F260
## 2023-06-08 17:09:59.468912 INFO::Fitting model to feature number 252, F261
## 2023-06-08 17:09:59.472226 INFO::Fitting model to feature number 253, F262
## 2023-06-08 17:09:59.475542 INFO::Fitting model to feature number 254, F263
## 2023-06-08 17:09:59.478868 INFO::Fitting model to feature number 255, F264
## 2023-06-08 17:09:59.482208 INFO::Fitting model to feature number 256, F265
## 2023-06-08 17:09:59.485653 INFO::Fitting model to feature number 257, F266
## 2023-06-08 17:09:59.489125 INFO::Fitting model to feature number 258, F267
## 2023-06-08 17:09:59.492577 INFO::Fitting model to feature number 259, F269
## 2023-06-08 17:09:59.49605 INFO::Fitting model to feature number 260, F270
## 2023-06-08 17:09:59.499538 INFO::Fitting model to feature number 261, F271
## 2023-06-08 17:09:59.50301 INFO::Fitting model to feature number 262, F272
## 2023-06-08 17:09:59.506541 INFO::Fitting model to feature number 263, F273
## 2023-06-08 17:09:59.510006 INFO::Fitting model to feature number 264, F274
## 2023-06-08 17:09:59.513474 INFO::Fitting model to feature number 265, F276
## 2023-06-08 17:09:59.51692 INFO::Fitting model to feature number 266, F277
## 2023-06-08 17:09:59.520326 INFO::Fitting model to feature number 267, F278
## 2023-06-08 17:09:59.523767 INFO::Fitting model to feature number 268, F279
## 2023-06-08 17:09:59.527211 INFO::Fitting model to feature number 269, F280
## 2023-06-08 17:09:59.530714 INFO::Fitting model to feature number 270, F281
## 2023-06-08 17:09:59.534225 INFO::Fitting model to feature number 271, F282
## 2023-06-08 17:09:59.537774 INFO::Fitting model to feature number 272, F283
## 2023-06-08 17:09:59.541321 INFO::Fitting model to feature number 273, F284
## 2023-06-08 17:09:59.544756 INFO::Fitting model to feature number 274, F285
## 2023-06-08 17:09:59.548156 INFO::Fitting model to feature number 275, F286
## 2023-06-08 17:09:59.551636 INFO::Fitting model to feature number 276, F287
## 2023-06-08 17:09:59.555094 INFO::Fitting model to feature number 277, F288
## 2023-06-08 17:09:59.558578 INFO::Fitting model to feature number 278, F289
## 2023-06-08 17:09:59.561987 INFO::Fitting model to feature number 279, F290
## 2023-06-08 17:09:59.565471 INFO::Fitting model to feature number 280, F292
## 2023-06-08 17:09:59.568976 INFO::Fitting model to feature number 281, F293
## 2023-06-08 17:09:59.572478 INFO::Fitting model to feature number 282, F294
## 2023-06-08 17:09:59.575898 INFO::Fitting model to feature number 283, F295
## 2023-06-08 17:09:59.57932 INFO::Fitting model to feature number 284, F296
## 2023-06-08 17:09:59.582702 INFO::Fitting model to feature number 285, F297
## 2023-06-08 17:09:59.586157 INFO::Fitting model to feature number 286, F298
## 2023-06-08 17:09:59.589564 INFO::Fitting model to feature number 287, F299
## 2023-06-08 17:09:59.592979 INFO::Fitting model to feature number 288, F300
## 2023-06-08 17:09:59.596338 INFO::Fitting model to feature number 289, F301
## 2023-06-08 17:09:59.599711 INFO::Fitting model to feature number 290, F302
## 2023-06-08 17:09:59.603106 INFO::Fitting model to feature number 291, F303
## 2023-06-08 17:09:59.606495 INFO::Fitting model to feature number 292, F304
## 2023-06-08 17:09:59.609879 INFO::Fitting model to feature number 293, F305
## 2023-06-08 17:09:59.613256 INFO::Fitting model to feature number 294, F306
## 2023-06-08 17:09:59.616603 INFO::Fitting model to feature number 295, F307
## 2023-06-08 17:09:59.619939 INFO::Fitting model to feature number 296, F308
## 2023-06-08 17:09:59.623324 INFO::Fitting model to feature number 297, F309
## 2023-06-08 17:09:59.626726 INFO::Fitting model to feature number 298, F310
## 2023-06-08 17:09:59.630098 INFO::Fitting model to feature number 299, F311
## 2023-06-08 17:09:59.633464 INFO::Fitting model to feature number 300, F312
## 2023-06-08 17:09:59.636819 INFO::Fitting model to feature number 301, F313
## 2023-06-08 17:09:59.640168 INFO::Fitting model to feature number 302, F315
## 2023-06-08 17:09:59.64358 INFO::Fitting model to feature number 303, F316
## 2023-06-08 17:09:59.647042 INFO::Fitting model to feature number 304, F317
## 2023-06-08 17:09:59.650548 INFO::Fitting model to feature number 305, F318
## 2023-06-08 17:09:59.653975 INFO::Fitting model to feature number 306, F319
## 2023-06-08 17:09:59.657438 INFO::Fitting model to feature number 307, F320
## 2023-06-08 17:09:59.660793 INFO::Fitting model to feature number 308, F321
## 2023-06-08 17:09:59.664129 INFO::Fitting model to feature number 309, F322
## 2023-06-08 17:09:59.667445 INFO::Fitting model to feature number 310, F323
## 2023-06-08 17:09:59.670758 INFO::Fitting model to feature number 311, F324
## 2023-06-08 17:09:59.674067 INFO::Fitting model to feature number 312, F325
## 2023-06-08 17:09:59.677415 INFO::Fitting model to feature number 313, F326
## 2023-06-08 17:09:59.68077 INFO::Fitting model to feature number 314, F327
## 2023-06-08 17:09:59.684073 INFO::Fitting model to feature number 315, F328
## 2023-06-08 17:09:59.687429 INFO::Fitting model to feature number 316, F329
## 2023-06-08 17:09:59.690763 INFO::Fitting model to feature number 317, F330
## 2023-06-08 17:09:59.694147 INFO::Fitting model to feature number 318, F331
## 2023-06-08 17:09:59.697517 INFO::Fitting model to feature number 319, F332
## 2023-06-08 17:09:59.700809 INFO::Fitting model to feature number 320, F333
## 2023-06-08 17:09:59.704139 INFO::Fitting model to feature number 321, F334
## 2023-06-08 17:09:59.707505 INFO::Fitting model to feature number 322, F335
## 2023-06-08 17:09:59.710841 INFO::Fitting model to feature number 323, F336
## 2023-06-08 17:09:59.714218 INFO::Fitting model to feature number 324, F337
## 2023-06-08 17:09:59.717638 INFO::Fitting model to feature number 325, F338
## 2023-06-08 17:09:59.721056 INFO::Fitting model to feature number 326, F339
## 2023-06-08 17:09:59.724429 INFO::Fitting model to feature number 327, F340
## 2023-06-08 17:09:59.727809 INFO::Fitting model to feature number 328, F342
## 2023-06-08 17:09:59.731202 INFO::Fitting model to feature number 329, F343
## 2023-06-08 17:09:59.734628 INFO::Fitting model to feature number 330, F344
## 2023-06-08 17:09:59.737983 INFO::Fitting model to feature number 331, F345
## 2023-06-08 17:09:59.741345 INFO::Fitting model to feature number 332, F346
## 2023-06-08 17:09:59.744706 INFO::Fitting model to feature number 333, F347
## 2023-06-08 17:09:59.748059 INFO::Fitting model to feature number 334, F348
## 2023-06-08 17:09:59.751429 INFO::Fitting model to feature number 335, F350
## 2023-06-08 17:09:59.75483 INFO::Fitting model to feature number 336, F351
## 2023-06-08 17:09:59.758243 INFO::Fitting model to feature number 337, F352
## 2023-06-08 17:09:59.761666 INFO::Fitting model to feature number 338, F353
## 2023-06-08 17:09:59.765067 INFO::Fitting model to feature number 339, F355
## 2023-06-08 17:09:59.768478 INFO::Fitting model to feature number 340, F356
## 2023-06-08 17:09:59.771861 INFO::Fitting model to feature number 341, F357
## 2023-06-08 17:09:59.775245 INFO::Fitting model to feature number 342, F358
## 2023-06-08 17:09:59.778626 INFO::Fitting model to feature number 343, F359
## 2023-06-08 17:09:59.782026 INFO::Fitting model to feature number 344, F360
## 2023-06-08 17:09:59.785494 INFO::Fitting model to feature number 345, F361
## 2023-06-08 17:09:59.788993 INFO::Fitting model to feature number 346, F362
## 2023-06-08 17:09:59.792446 INFO::Fitting model to feature number 347, F363
## 2023-06-08 17:09:59.795915 INFO::Fitting model to feature number 348, F364
## 2023-06-08 17:09:59.799412 INFO::Fitting model to feature number 349, F365
## 2023-06-08 17:09:59.802913 INFO::Fitting model to feature number 350, F366
## 2023-06-08 17:09:59.80651 INFO::Fitting model to feature number 351, F367
## 2023-06-08 17:09:59.810003 INFO::Fitting model to feature number 352, F368
## 2023-06-08 17:09:59.813475 INFO::Fitting model to feature number 353, F369
## 2023-06-08 17:09:59.816925 INFO::Fitting model to feature number 354, F370
## 2023-06-08 17:09:59.820412 INFO::Fitting model to feature number 355, F371
## 2023-06-08 17:09:59.84429 INFO::Fitting model to feature number 356, F372
## 2023-06-08 17:09:59.848397 INFO::Fitting model to feature number 357, F373
## 2023-06-08 17:09:59.85217 INFO::Fitting model to feature number 358, F374
## 2023-06-08 17:09:59.855849 INFO::Fitting model to feature number 359, F375
## 2023-06-08 17:09:59.859466 INFO::Fitting model to feature number 360, F376
## 2023-06-08 17:09:59.863165 INFO::Fitting model to feature number 361, F377
## 2023-06-08 17:09:59.866728 INFO::Fitting model to feature number 362, F378
## 2023-06-08 17:09:59.870266 INFO::Fitting model to feature number 363, F379
## 2023-06-08 17:09:59.873791 INFO::Fitting model to feature number 364, F380
## 2023-06-08 17:09:59.877383 INFO::Fitting model to feature number 365, F381
## 2023-06-08 17:09:59.880795 INFO::Fitting model to feature number 366, F382
## 2023-06-08 17:09:59.884181 INFO::Fitting model to feature number 367, F383
## 2023-06-08 17:09:59.887724 INFO::Fitting model to feature number 368, F384
## 2023-06-08 17:09:59.891173 INFO::Fitting model to feature number 369, F386
## 2023-06-08 17:09:59.894576 INFO::Fitting model to feature number 370, F387
## 2023-06-08 17:09:59.898 INFO::Fitting model to feature number 371, F388
## 2023-06-08 17:09:59.901404 INFO::Fitting model to feature number 372, F389
## 2023-06-08 17:09:59.904749 INFO::Fitting model to feature number 373, F390
## 2023-06-08 17:09:59.908059 INFO::Fitting model to feature number 374, F391
## 2023-06-08 17:09:59.911385 INFO::Fitting model to feature number 375, F392
## 2023-06-08 17:09:59.914758 INFO::Fitting model to feature number 376, F393
## 2023-06-08 17:09:59.91811 INFO::Fitting model to feature number 377, F394
## 2023-06-08 17:09:59.921478 INFO::Fitting model to feature number 378, F395
## 2023-06-08 17:09:59.924848 INFO::Fitting model to feature number 379, F396
## 2023-06-08 17:09:59.928176 INFO::Fitting model to feature number 380, F397
## 2023-06-08 17:09:59.93153 INFO::Fitting model to feature number 381, F398
## 2023-06-08 17:09:59.934879 INFO::Fitting model to feature number 382, F399
## 2023-06-08 17:09:59.938285 INFO::Fitting model to feature number 383, F400
## 2023-06-08 17:09:59.941685 INFO::Fitting model to feature number 384, F401
## 2023-06-08 17:09:59.945062 INFO::Fitting model to feature number 385, F402
## 2023-06-08 17:09:59.948432 INFO::Fitting model to feature number 386, F403
## 2023-06-08 17:09:59.951835 INFO::Fitting model to feature number 387, F404
## 2023-06-08 17:09:59.955163 INFO::Fitting model to feature number 388, F406
## 2023-06-08 17:09:59.958518 INFO::Fitting model to feature number 389, F407
## 2023-06-08 17:09:59.961845 INFO::Fitting model to feature number 390, F408
## 2023-06-08 17:09:59.965179 INFO::Fitting model to feature number 391, F409
## 2023-06-08 17:09:59.968528 INFO::Fitting model to feature number 392, F410
## 2023-06-08 17:09:59.971897 INFO::Fitting model to feature number 393, F411
## 2023-06-08 17:09:59.975325 INFO::Fitting model to feature number 394, F412
## 2023-06-08 17:09:59.978724 INFO::Fitting model to feature number 395, F413
## 2023-06-08 17:09:59.982087 INFO::Fitting model to feature number 396, F414
## 2023-06-08 17:09:59.985473 INFO::Fitting model to feature number 397, F415
## 2023-06-08 17:09:59.988765 INFO::Fitting model to feature number 398, F416
## 2023-06-08 17:09:59.992045 INFO::Fitting model to feature number 399, F417
## 2023-06-08 17:09:59.995346 INFO::Fitting model to feature number 400, F418
## 2023-06-08 17:09:59.998642 INFO::Fitting model to feature number 401, F419
## 2023-06-08 17:10:00.001874 INFO::Fitting model to feature number 402, F420
## 2023-06-08 17:10:00.005168 INFO::Fitting model to feature number 403, F421
## 2023-06-08 17:10:00.008472 INFO::Fitting model to feature number 404, F422
## 2023-06-08 17:10:00.011759 INFO::Fitting model to feature number 405, F423
## 2023-06-08 17:10:00.015047 INFO::Fitting model to feature number 406, F425
## 2023-06-08 17:10:00.018335 INFO::Fitting model to feature number 407, F426
## 2023-06-08 17:10:00.021661 INFO::Fitting model to feature number 408, F428
## 2023-06-08 17:10:00.02494 INFO::Fitting model to feature number 409, F429
## 2023-06-08 17:10:00.028275 INFO::Fitting model to feature number 410, F430
## 2023-06-08 17:10:00.031659 INFO::Fitting model to feature number 411, F431
## 2023-06-08 17:10:00.034994 INFO::Fitting model to feature number 412, F432
## 2023-06-08 17:10:00.038337 INFO::Fitting model to feature number 413, F433
## 2023-06-08 17:10:00.041665 INFO::Fitting model to feature number 414, F434
## 2023-06-08 17:10:00.045036 INFO::Fitting model to feature number 415, F435
## 2023-06-08 17:10:00.048258 INFO::Fitting model to feature number 416, F436
## 2023-06-08 17:10:00.051521 INFO::Fitting model to feature number 417, F437
## 2023-06-08 17:10:00.054772 INFO::Fitting model to feature number 418, F438
## 2023-06-08 17:10:00.058063 INFO::Fitting model to feature number 419, F439
## 2023-06-08 17:10:00.061352 INFO::Fitting model to feature number 420, F440
## 2023-06-08 17:10:00.064686 INFO::Fitting model to feature number 421, F441
## 2023-06-08 17:10:00.067992 INFO::Fitting model to feature number 422, F442
## 2023-06-08 17:10:00.071341 INFO::Fitting model to feature number 423, F443
## 2023-06-08 17:10:00.074677 INFO::Fitting model to feature number 424, F444
## 2023-06-08 17:10:00.07801 INFO::Fitting model to feature number 425, F445
## 2023-06-08 17:10:00.081388 INFO::Fitting model to feature number 426, F446
## 2023-06-08 17:10:00.084748 INFO::Fitting model to feature number 427, F447
## 2023-06-08 17:10:00.088022 INFO::Fitting model to feature number 428, F448
## 2023-06-08 17:10:00.091296 INFO::Fitting model to feature number 429, F449
## 2023-06-08 17:10:00.094641 INFO::Fitting model to feature number 430, F450
## 2023-06-08 17:10:00.097934 INFO::Fitting model to feature number 431, F451
## 2023-06-08 17:10:00.101283 INFO::Fitting model to feature number 432, F452
## 2023-06-08 17:10:00.104644 INFO::Fitting model to feature number 433, F454
## 2023-06-08 17:10:00.107971 INFO::Fitting model to feature number 434, F455
## 2023-06-08 17:10:00.111324 INFO::Fitting model to feature number 435, F456
## 2023-06-08 17:10:00.114635 INFO::Fitting model to feature number 436, F457
## 2023-06-08 17:10:00.118018 INFO::Fitting model to feature number 437, F458
## 2023-06-08 17:10:00.121389 INFO::Fitting model to feature number 438, F459
## 2023-06-08 17:10:00.124703 INFO::Fitting model to feature number 439, F461
## 2023-06-08 17:10:00.128 INFO::Fitting model to feature number 440, F462
## 2023-06-08 17:10:00.131363 INFO::Fitting model to feature number 441, F463
## 2023-06-08 17:10:00.134696 INFO::Fitting model to feature number 442, F464
## 2023-06-08 17:10:00.138058 INFO::Fitting model to feature number 443, F465
## 2023-06-08 17:10:00.141389 INFO::Fitting model to feature number 444, F466
## 2023-06-08 17:10:00.144806 INFO::Fitting model to feature number 445, F467
## 2023-06-08 17:10:00.148145 INFO::Fitting model to feature number 446, F468
## 2023-06-08 17:10:00.151656 INFO::Fitting model to feature number 447, F469
## 2023-06-08 17:10:00.15523 INFO::Fitting model to feature number 448, F470
## 2023-06-08 17:10:00.158712 INFO::Fitting model to feature number 449, F471
## 2023-06-08 17:10:00.162215 INFO::Fitting model to feature number 450, F474
## 2023-06-08 17:10:00.16573 INFO::Fitting model to feature number 451, F475
## 2023-06-08 17:10:00.169116 INFO::Fitting model to feature number 452, F476
## 2023-06-08 17:10:00.17253 INFO::Fitting model to feature number 453, F477
## 2023-06-08 17:10:00.175884 INFO::Fitting model to feature number 454, F478
## 2023-06-08 17:10:00.17935 INFO::Fitting model to feature number 455, F479
## 2023-06-08 17:10:00.182736 INFO::Fitting model to feature number 456, F480
## 2023-06-08 17:10:00.18614 INFO::Fitting model to feature number 457, F481
## 2023-06-08 17:10:00.189604 INFO::Fitting model to feature number 458, F482
## 2023-06-08 17:10:00.193112 INFO::Fitting model to feature number 459, F483
## 2023-06-08 17:10:00.196649 INFO::Fitting model to feature number 460, F484
## 2023-06-08 17:10:00.200125 INFO::Fitting model to feature number 461, F485
## 2023-06-08 17:10:00.203626 INFO::Fitting model to feature number 462, F486
## 2023-06-08 17:10:00.207145 INFO::Fitting model to feature number 463, F487
## 2023-06-08 17:10:00.21068 INFO::Fitting model to feature number 464, F488
## 2023-06-08 17:10:00.21422 INFO::Fitting model to feature number 465, F489
## 2023-06-08 17:10:00.217738 INFO::Fitting model to feature number 466, F490
## 2023-06-08 17:10:00.221226 INFO::Fitting model to feature number 467, F491
## 2023-06-08 17:10:00.224795 INFO::Fitting model to feature number 468, F492
## 2023-06-08 17:10:00.228319 INFO::Fitting model to feature number 469, F493
## 2023-06-08 17:10:00.231832 INFO::Fitting model to feature number 470, F494
## 2023-06-08 17:10:00.235334 INFO::Fitting model to feature number 471, F495
## 2023-06-08 17:10:00.238923 INFO::Fitting model to feature number 472, F496
## 2023-06-08 17:10:00.242481 INFO::Fitting model to feature number 473, F497
## 2023-06-08 17:10:00.246019 INFO::Fitting model to feature number 474, F498
## 2023-06-08 17:10:00.249604 INFO::Fitting model to feature number 475, F499
## 2023-06-08 17:10:00.253062 INFO::Fitting model to feature number 476, F500
## 2023-06-08 17:10:00.256568 INFO::Fitting model to feature number 477, F501
## 2023-06-08 17:10:00.260056 INFO::Fitting model to feature number 478, F502
## 2023-06-08 17:10:00.263555 INFO::Fitting model to feature number 479, F503
## 2023-06-08 17:10:00.26699 INFO::Fitting model to feature number 480, F504
## 2023-06-08 17:10:00.270432 INFO::Fitting model to feature number 481, F505
## 2023-06-08 17:10:00.27393 INFO::Fitting model to feature number 482, F506
## 2023-06-08 17:10:00.277276 INFO::Fitting model to feature number 483, F507
## 2023-06-08 17:10:00.280594 INFO::Fitting model to feature number 484, F508
## 2023-06-08 17:10:00.283885 INFO::Fitting model to feature number 485, F509
## 2023-06-08 17:10:00.287228 INFO::Fitting model to feature number 486, F510
## 2023-06-08 17:10:00.290606 INFO::Fitting model to feature number 487, F511
## 2023-06-08 17:10:00.293981 INFO::Fitting model to feature number 488, F512
## 2023-06-08 17:10:00.297429 INFO::Fitting model to feature number 489, F513
## 2023-06-08 17:10:00.300826 INFO::Fitting model to feature number 490, F514
## 2023-06-08 17:10:00.304171 INFO::Fitting model to feature number 491, F515
## 2023-06-08 17:10:00.307616 INFO::Fitting model to feature number 492, F516
## 2023-06-08 17:10:00.311029 INFO::Fitting model to feature number 493, F517
## 2023-06-08 17:10:00.314418 INFO::Fitting model to feature number 494, F518
## 2023-06-08 17:10:00.3178 INFO::Fitting model to feature number 495, F519
## 2023-06-08 17:10:00.321164 INFO::Fitting model to feature number 496, F520
## 2023-06-08 17:10:00.324594 INFO::Fitting model to feature number 497, F521
## 2023-06-08 17:10:00.327979 INFO::Fitting model to feature number 498, F522
## 2023-06-08 17:10:00.331495 INFO::Fitting model to feature number 499, F523
## 2023-06-08 17:10:00.335135 INFO::Fitting model to feature number 500, F524
## 2023-06-08 17:10:00.338727 INFO::Fitting model to feature number 501, F525
## 2023-06-08 17:10:00.342259 INFO::Fitting model to feature number 502, F526
## 2023-06-08 17:10:00.345818 INFO::Fitting model to feature number 503, F527
## 2023-06-08 17:10:00.349391 INFO::Fitting model to feature number 504, F528
## 2023-06-08 17:10:00.352982 INFO::Fitting model to feature number 505, F529
## 2023-06-08 17:10:00.356581 INFO::Fitting model to feature number 506, F530
## 2023-06-08 17:10:00.360011 INFO::Fitting model to feature number 507, F531
## 2023-06-08 17:10:00.36358 INFO::Fitting model to feature number 508, F532
## 2023-06-08 17:10:00.367165 INFO::Fitting model to feature number 509, F533
## 2023-06-08 17:10:00.370816 INFO::Fitting model to feature number 510, F534
## 2023-06-08 17:10:00.374593 INFO::Fitting model to feature number 511, F535
## 2023-06-08 17:10:00.378115 INFO::Fitting model to feature number 512, F536
## 2023-06-08 17:10:00.381628 INFO::Fitting model to feature number 513, F537
## 2023-06-08 17:10:00.385149 INFO::Fitting model to feature number 514, F539
## 2023-06-08 17:10:00.388641 INFO::Fitting model to feature number 515, F540
## 2023-06-08 17:10:00.392014 INFO::Fitting model to feature number 516, F541
## 2023-06-08 17:10:00.395346 INFO::Fitting model to feature number 517, F543
## 2023-06-08 17:10:00.398696 INFO::Fitting model to feature number 518, F544
## 2023-06-08 17:10:00.402063 INFO::Fitting model to feature number 519, F545
## 2023-06-08 17:10:00.405471 INFO::Fitting model to feature number 520, F546
## 2023-06-08 17:10:00.40892 INFO::Fitting model to feature number 521, F547
## 2023-06-08 17:10:00.412292 INFO::Fitting model to feature number 522, F548
## 2023-06-08 17:10:00.415707 INFO::Fitting model to feature number 523, F549
## 2023-06-08 17:10:00.419234 INFO::Fitting model to feature number 524, F550
## 2023-06-08 17:10:00.422688 INFO::Fitting model to feature number 525, F551
## 2023-06-08 17:10:00.426122 INFO::Fitting model to feature number 526, F552
## 2023-06-08 17:10:00.429548 INFO::Fitting model to feature number 527, F553
## 2023-06-08 17:10:00.432943 INFO::Fitting model to feature number 528, F554
## 2023-06-08 17:10:00.436333 INFO::Fitting model to feature number 529, F555
## 2023-06-08 17:10:00.439756 INFO::Fitting model to feature number 530, F556
## 2023-06-08 17:10:00.443193 INFO::Fitting model to feature number 531, F557
## 2023-06-08 17:10:00.446587 INFO::Fitting model to feature number 532, F558
## 2023-06-08 17:10:00.449953 INFO::Fitting model to feature number 533, F559
## 2023-06-08 17:10:00.453409 INFO::Fitting model to feature number 534, F560
## 2023-06-08 17:10:00.456853 INFO::Fitting model to feature number 535, F561
## 2023-06-08 17:10:00.460472 INFO::Fitting model to feature number 536, F562
## 2023-06-08 17:10:00.464012 INFO::Fitting model to feature number 537, F563
## 2023-06-08 17:10:00.467589 INFO::Fitting model to feature number 538, F564
## 2023-06-08 17:10:00.47121 INFO::Fitting model to feature number 539, F566
## 2023-06-08 17:10:00.474782 INFO::Fitting model to feature number 540, F567
## 2023-06-08 17:10:00.478468 INFO::Fitting model to feature number 541, F568
## 2023-06-08 17:10:00.482103 INFO::Fitting model to feature number 542, F569
## 2023-06-08 17:10:00.485651 INFO::Fitting model to feature number 543, F570
## 2023-06-08 17:10:00.489191 INFO::Fitting model to feature number 544, F571
## 2023-06-08 17:10:00.492591 INFO::Fitting model to feature number 545, F572
## 2023-06-08 17:10:00.49596 INFO::Fitting model to feature number 546, F573
## 2023-06-08 17:10:00.499354 INFO::Fitting model to feature number 547, F574
## 2023-06-08 17:10:00.502789 INFO::Fitting model to feature number 548, F575
## 2023-06-08 17:10:00.5062 INFO::Fitting model to feature number 549, F576
## 2023-06-08 17:10:00.509648 INFO::Fitting model to feature number 550, F577
## 2023-06-08 17:10:00.513127 INFO::Fitting model to feature number 551, F578
## 2023-06-08 17:10:00.516622 INFO::Fitting model to feature number 552, F579
## 2023-06-08 17:10:00.520019 INFO::Fitting model to feature number 553, F580
## 2023-06-08 17:10:00.523458 INFO::Fitting model to feature number 554, F581
## 2023-06-08 17:10:00.526965 INFO::Fitting model to feature number 555, F582
## 2023-06-08 17:10:00.530432 INFO::Fitting model to feature number 556, F583
## 2023-06-08 17:10:00.533855 INFO::Fitting model to feature number 557, F584
## 2023-06-08 17:10:00.53728 INFO::Fitting model to feature number 558, F585
## 2023-06-08 17:10:00.540815 INFO::Fitting model to feature number 559, F586
## 2023-06-08 17:10:00.544212 INFO::Fitting model to feature number 560, F587
## 2023-06-08 17:10:00.547561 INFO::Fitting model to feature number 561, F588
## 2023-06-08 17:10:00.550957 INFO::Fitting model to feature number 562, F589
## 2023-06-08 17:10:00.554344 INFO::Fitting model to feature number 563, F590
## 2023-06-08 17:10:00.557724 INFO::Fitting model to feature number 564, F591
## 2023-06-08 17:10:00.561263 INFO::Fitting model to feature number 565, F592
## 2023-06-08 17:10:00.564817 INFO::Fitting model to feature number 566, F593
## 2023-06-08 17:10:00.568204 INFO::Fitting model to feature number 567, F594
## 2023-06-08 17:10:00.571625 INFO::Fitting model to feature number 568, F595
## 2023-06-08 17:10:00.574964 INFO::Fitting model to feature number 569, F596
## 2023-06-08 17:10:00.578389 INFO::Fitting model to feature number 570, F597
## 2023-06-08 17:10:00.581757 INFO::Fitting model to feature number 571, F598
## 2023-06-08 17:10:00.585184 INFO::Fitting model to feature number 572, F599
## 2023-06-08 17:10:00.588533 INFO::Fitting model to feature number 573, F600
## 2023-06-08 17:10:00.591862 INFO::Fitting model to feature number 574, F601
## 2023-06-08 17:10:00.595206 INFO::Fitting model to feature number 575, F602
## 2023-06-08 17:10:00.598613 INFO::Fitting model to feature number 576, F603
## 2023-06-08 17:10:00.601963 INFO::Fitting model to feature number 577, F605
## 2023-06-08 17:10:00.60531 INFO::Fitting model to feature number 578, F606
## 2023-06-08 17:10:00.60865 INFO::Fitting model to feature number 579, F607
## 2023-06-08 17:10:00.611966 INFO::Fitting model to feature number 580, F608
## 2023-06-08 17:10:00.615303 INFO::Fitting model to feature number 581, F609
## 2023-06-08 17:10:00.618672 INFO::Fitting model to feature number 582, F610
## 2023-06-08 17:10:00.622068 INFO::Fitting model to feature number 583, F611
## 2023-06-08 17:10:00.625416 INFO::Fitting model to feature number 584, F612
## 2023-06-08 17:10:00.628765 INFO::Fitting model to feature number 585, F613
## 2023-06-08 17:10:00.632097 INFO::Fitting model to feature number 586, F614
## 2023-06-08 17:10:00.635495 INFO::Fitting model to feature number 587, F615
## 2023-06-08 17:10:00.63885 INFO::Fitting model to feature number 588, F616
## 2023-06-08 17:10:00.642182 INFO::Fitting model to feature number 589, F617
## 2023-06-08 17:10:00.645524 INFO::Fitting model to feature number 590, F618
## 2023-06-08 17:10:00.648864 INFO::Fitting model to feature number 591, F619
## 2023-06-08 17:10:00.652183 INFO::Fitting model to feature number 592, F620
## 2023-06-08 17:10:00.655532 INFO::Fitting model to feature number 593, F621
## 2023-06-08 17:10:00.658964 INFO::Fitting model to feature number 594, F622
## 2023-06-08 17:10:00.662387 INFO::Fitting model to feature number 595, F623
## 2023-06-08 17:10:00.665765 INFO::Fitting model to feature number 596, F624
## 2023-06-08 17:10:00.669183 INFO::Fitting model to feature number 597, F625
## 2023-06-08 17:10:00.672561 INFO::Fitting model to feature number 598, F626
## 2023-06-08 17:10:00.675904 INFO::Fitting model to feature number 599, F627
## 2023-06-08 17:10:00.679239 INFO::Fitting model to feature number 600, F628
## 2023-06-08 17:10:00.682577 INFO::Fitting model to feature number 601, F629
## 2023-06-08 17:10:00.685926 INFO::Fitting model to feature number 602, F630
## 2023-06-08 17:10:00.689277 INFO::Fitting model to feature number 603, F631
## 2023-06-08 17:10:00.692707 INFO::Fitting model to feature number 604, F632
## 2023-06-08 17:10:00.696213 INFO::Fitting model to feature number 605, F633
## 2023-06-08 17:10:00.720157 INFO::Fitting model to feature number 606, F634
## 2023-06-08 17:10:00.724836 INFO::Fitting model to feature number 607, F635
## 2023-06-08 17:10:00.729045 INFO::Fitting model to feature number 608, F636
## 2023-06-08 17:10:00.733061 INFO::Fitting model to feature number 609, F637
## 2023-06-08 17:10:00.736878 INFO::Fitting model to feature number 610, F638
## 2023-06-08 17:10:00.740587 INFO::Fitting model to feature number 611, F639
## 2023-06-08 17:10:00.744191 INFO::Fitting model to feature number 612, F640
## 2023-06-08 17:10:00.747671 INFO::Fitting model to feature number 613, F641
## 2023-06-08 17:10:00.751151 INFO::Fitting model to feature number 614, F642
## 2023-06-08 17:10:00.754601 INFO::Fitting model to feature number 615, F643
## 2023-06-08 17:10:00.758043 INFO::Fitting model to feature number 616, F644
## 2023-06-08 17:10:00.761445 INFO::Fitting model to feature number 617, F645
## 2023-06-08 17:10:00.764874 INFO::Fitting model to feature number 618, F646
## 2023-06-08 17:10:00.768314 INFO::Fitting model to feature number 619, F647
## 2023-06-08 17:10:00.771949 INFO::Fitting model to feature number 620, F648
## 2023-06-08 17:10:00.775397 INFO::Fitting model to feature number 621, F649
## 2023-06-08 17:10:00.778826 INFO::Fitting model to feature number 622, F650
## 2023-06-08 17:10:00.782233 INFO::Fitting model to feature number 623, F651
## 2023-06-08 17:10:00.785608 INFO::Fitting model to feature number 624, F652
## 2023-06-08 17:10:00.788941 INFO::Fitting model to feature number 625, F653
## 2023-06-08 17:10:00.792208 INFO::Fitting model to feature number 626, F654
## 2023-06-08 17:10:00.795518 INFO::Fitting model to feature number 627, F655
## 2023-06-08 17:10:00.79881 INFO::Fitting model to feature number 628, F656
## 2023-06-08 17:10:00.802144 INFO::Fitting model to feature number 629, F657
## 2023-06-08 17:10:00.805484 INFO::Fitting model to feature number 630, F658
## 2023-06-08 17:10:00.808782 INFO::Fitting model to feature number 631, F659
## 2023-06-08 17:10:00.81204 INFO::Fitting model to feature number 632, F660
## 2023-06-08 17:10:00.81536 INFO::Fitting model to feature number 633, F661
## 2023-06-08 17:10:00.818643 INFO::Fitting model to feature number 634, F662
## 2023-06-08 17:10:00.821928 INFO::Fitting model to feature number 635, F663
## 2023-06-08 17:10:00.82521 INFO::Fitting model to feature number 636, F664
## 2023-06-08 17:10:00.828479 INFO::Fitting model to feature number 637, F665
## 2023-06-08 17:10:00.831719 INFO::Fitting model to feature number 638, F666
## 2023-06-08 17:10:00.834965 INFO::Fitting model to feature number 639, F667
## 2023-06-08 17:10:00.838254 INFO::Fitting model to feature number 640, F668
## 2023-06-08 17:10:00.841475 INFO::Fitting model to feature number 641, F669
## 2023-06-08 17:10:00.844729 INFO::Fitting model to feature number 642, F670
## 2023-06-08 17:10:00.847964 INFO::Fitting model to feature number 643, F671
## 2023-06-08 17:10:00.851233 INFO::Fitting model to feature number 644, F672
## 2023-06-08 17:10:00.854401 INFO::Fitting model to feature number 645, F673
## 2023-06-08 17:10:00.857629 INFO::Fitting model to feature number 646, F674
## 2023-06-08 17:10:00.860822 INFO::Fitting model to feature number 647, F675
## 2023-06-08 17:10:00.86404 INFO::Fitting model to feature number 648, F676
## 2023-06-08 17:10:00.867285 INFO::Fitting model to feature number 649, F677
## 2023-06-08 17:10:00.870533 INFO::Fitting model to feature number 650, F678
## 2023-06-08 17:10:00.873755 INFO::Fitting model to feature number 651, F679
## 2023-06-08 17:10:00.877038 INFO::Fitting model to feature number 652, F680
## 2023-06-08 17:10:00.880243 INFO::Fitting model to feature number 653, F681
## 2023-06-08 17:10:00.883469 INFO::Fitting model to feature number 654, F682
## 2023-06-08 17:10:00.886746 INFO::Fitting model to feature number 655, F683
## 2023-06-08 17:10:00.889966 INFO::Fitting model to feature number 656, F684
## 2023-06-08 17:10:00.893195 INFO::Fitting model to feature number 657, F685
## 2023-06-08 17:10:00.896425 INFO::Fitting model to feature number 658, F686
## 2023-06-08 17:10:00.899645 INFO::Fitting model to feature number 659, F687
## 2023-06-08 17:10:00.902884 INFO::Fitting model to feature number 660, F688
## 2023-06-08 17:10:00.90616 INFO::Fitting model to feature number 661, F689
## 2023-06-08 17:10:00.909436 INFO::Fitting model to feature number 662, F690
## 2023-06-08 17:10:00.912695 INFO::Fitting model to feature number 663, F691
## 2023-06-08 17:10:00.915911 INFO::Fitting model to feature number 664, F692
## 2023-06-08 17:10:00.919199 INFO::Fitting model to feature number 665, F693
## 2023-06-08 17:10:00.922481 INFO::Fitting model to feature number 666, F694
## 2023-06-08 17:10:00.925718 INFO::Fitting model to feature number 667, F695
## 2023-06-08 17:10:00.928954 INFO::Fitting model to feature number 668, F696
## 2023-06-08 17:10:00.932195 INFO::Fitting model to feature number 669, F697
## 2023-06-08 17:10:00.935448 INFO::Fitting model to feature number 670, F698
## 2023-06-08 17:10:00.938695 INFO::Fitting model to feature number 671, F699
## 2023-06-08 17:10:00.941947 INFO::Fitting model to feature number 672, F700
## 2023-06-08 17:10:00.945213 INFO::Fitting model to feature number 673, F701
## 2023-06-08 17:10:00.948469 INFO::Fitting model to feature number 674, F702
## 2023-06-08 17:10:00.951646 INFO::Fitting model to feature number 675, F704
## 2023-06-08 17:10:00.954876 INFO::Fitting model to feature number 676, F705
## 2023-06-08 17:10:00.958173 INFO::Fitting model to feature number 677, F706
## 2023-06-08 17:10:00.961394 INFO::Fitting model to feature number 678, F707
## 2023-06-08 17:10:00.964622 INFO::Fitting model to feature number 679, F708
## 2023-06-08 17:10:00.967828 INFO::Fitting model to feature number 680, F709
## 2023-06-08 17:10:00.971058 INFO::Fitting model to feature number 681, F710
## 2023-06-08 17:10:00.974281 INFO::Fitting model to feature number 682, F711
## 2023-06-08 17:10:00.977554 INFO::Fitting model to feature number 683, F712
## 2023-06-08 17:10:00.980829 INFO::Fitting model to feature number 684, F713
## 2023-06-08 17:10:00.984053 INFO::Fitting model to feature number 685, F714
## 2023-06-08 17:10:00.9873 INFO::Fitting model to feature number 686, F715
## 2023-06-08 17:10:00.990505 INFO::Fitting model to feature number 687, F716
## 2023-06-08 17:10:00.993781 INFO::Fitting model to feature number 688, F717
## 2023-06-08 17:10:00.997018 INFO::Fitting model to feature number 689, F718
## 2023-06-08 17:10:01.000227 INFO::Fitting model to feature number 690, F719
## 2023-06-08 17:10:01.003457 INFO::Fitting model to feature number 691, F720
## 2023-06-08 17:10:01.006711 INFO::Fitting model to feature number 692, F721
## 2023-06-08 17:10:01.009961 INFO::Fitting model to feature number 693, F722
## 2023-06-08 17:10:01.013199 INFO::Fitting model to feature number 694, F723
## 2023-06-08 17:10:01.016512 INFO::Fitting model to feature number 695, F724
## 2023-06-08 17:10:01.019738 INFO::Fitting model to feature number 696, F725
## 2023-06-08 17:10:01.023001 INFO::Fitting model to feature number 697, F726
## 2023-06-08 17:10:01.026272 INFO::Fitting model to feature number 698, F727
## 2023-06-08 17:10:01.029592 INFO::Fitting model to feature number 699, F728
## 2023-06-08 17:10:01.032886 INFO::Fitting model to feature number 700, F729
## 2023-06-08 17:10:01.036173 INFO::Fitting model to feature number 701, F730
## 2023-06-08 17:10:01.039464 INFO::Fitting model to feature number 702, F731
## 2023-06-08 17:10:01.042727 INFO::Fitting model to feature number 703, F732
## 2023-06-08 17:10:01.045992 INFO::Fitting model to feature number 704, F733
## 2023-06-08 17:10:01.049255 INFO::Fitting model to feature number 705, F734
## 2023-06-08 17:10:01.052526 INFO::Fitting model to feature number 706, F735
## 2023-06-08 17:10:01.055755 INFO::Fitting model to feature number 707, F736
## 2023-06-08 17:10:01.059047 INFO::Fitting model to feature number 708, F737
## 2023-06-08 17:10:01.062323 INFO::Fitting model to feature number 709, F739
## 2023-06-08 17:10:01.065611 INFO::Fitting model to feature number 710, F740
## 2023-06-08 17:10:01.068871 INFO::Fitting model to feature number 711, F741
## 2023-06-08 17:10:01.072104 INFO::Fitting model to feature number 712, F742
## 2023-06-08 17:10:01.075378 INFO::Fitting model to feature number 713, F743
## 2023-06-08 17:10:01.078652 INFO::Fitting model to feature number 714, F744
## 2023-06-08 17:10:01.081893 INFO::Fitting model to feature number 715, F745
## 2023-06-08 17:10:01.085144 INFO::Fitting model to feature number 716, F746
## 2023-06-08 17:10:01.088369 INFO::Fitting model to feature number 717, F747
## 2023-06-08 17:10:01.091672 INFO::Fitting model to feature number 718, F748
## 2023-06-08 17:10:01.094964 INFO::Fitting model to feature number 719, F749
## 2023-06-08 17:10:01.098206 INFO::Fitting model to feature number 720, F750
## 2023-06-08 17:10:01.101467 INFO::Fitting model to feature number 721, F751
## 2023-06-08 17:10:01.104743 INFO::Fitting model to feature number 722, F752
## 2023-06-08 17:10:01.108027 INFO::Fitting model to feature number 723, F753
## 2023-06-08 17:10:01.111351 INFO::Fitting model to feature number 724, F754
## 2023-06-08 17:10:01.114725 INFO::Fitting model to feature number 725, F755
## 2023-06-08 17:10:01.118041 INFO::Fitting model to feature number 726, F756
## 2023-06-08 17:10:01.121374 INFO::Fitting model to feature number 727, F757
## 2023-06-08 17:10:01.124679 INFO::Fitting model to feature number 728, F758
## 2023-06-08 17:10:01.127929 INFO::Fitting model to feature number 729, F759
## 2023-06-08 17:10:01.131207 INFO::Fitting model to feature number 730, F760
## 2023-06-08 17:10:01.134479 INFO::Fitting model to feature number 731, F761
## 2023-06-08 17:10:01.137779 INFO::Fitting model to feature number 732, F762
## 2023-06-08 17:10:01.141066 INFO::Fitting model to feature number 733, F763
## 2023-06-08 17:10:01.144319 INFO::Fitting model to feature number 734, F764
## 2023-06-08 17:10:01.147599 INFO::Fitting model to feature number 735, F765
## 2023-06-08 17:10:01.150873 INFO::Fitting model to feature number 736, F766
## 2023-06-08 17:10:01.154204 INFO::Fitting model to feature number 737, F767
## 2023-06-08 17:10:01.15756 INFO::Fitting model to feature number 738, F768
## 2023-06-08 17:10:01.160914 INFO::Fitting model to feature number 739, F769
## 2023-06-08 17:10:01.164246 INFO::Fitting model to feature number 740, F770
## 2023-06-08 17:10:01.167633 INFO::Fitting model to feature number 741, F771
## 2023-06-08 17:10:01.170985 INFO::Fitting model to feature number 742, F772
## 2023-06-08 17:10:01.174334 INFO::Fitting model to feature number 743, F773
## 2023-06-08 17:10:01.177634 INFO::Fitting model to feature number 744, F774
## 2023-06-08 17:10:01.180935 INFO::Fitting model to feature number 745, F775
## 2023-06-08 17:10:01.184188 INFO::Fitting model to feature number 746, F776
## 2023-06-08 17:10:01.187644 INFO::Fitting model to feature number 747, F777
## 2023-06-08 17:10:01.190975 INFO::Fitting model to feature number 748, F778
## 2023-06-08 17:10:01.194315 INFO::Fitting model to feature number 749, F779
## 2023-06-08 17:10:01.197663 INFO::Fitting model to feature number 750, F780
## 2023-06-08 17:10:01.200984 INFO::Fitting model to feature number 751, F781
## 2023-06-08 17:10:01.204279 INFO::Fitting model to feature number 752, F782
## 2023-06-08 17:10:01.207586 INFO::Fitting model to feature number 753, F783
## 2023-06-08 17:10:01.210962 INFO::Fitting model to feature number 754, F784
## 2023-06-08 17:10:01.214288 INFO::Fitting model to feature number 755, F785
## 2023-06-08 17:10:01.217629 INFO::Fitting model to feature number 756, F786
## 2023-06-08 17:10:01.220951 INFO::Fitting model to feature number 757, F787
## 2023-06-08 17:10:01.224248 INFO::Fitting model to feature number 758, F788
## 2023-06-08 17:10:01.227568 INFO::Fitting model to feature number 759, F789
## 2023-06-08 17:10:01.230891 INFO::Fitting model to feature number 760, F790
## 2023-06-08 17:10:01.234264 INFO::Fitting model to feature number 761, F791
## 2023-06-08 17:10:01.23764 INFO::Fitting model to feature number 762, F792
## 2023-06-08 17:10:01.240991 INFO::Fitting model to feature number 763, F793
## 2023-06-08 17:10:01.244356 INFO::Fitting model to feature number 764, F794
## 2023-06-08 17:10:01.247734 INFO::Fitting model to feature number 765, F795
## 2023-06-08 17:10:01.251068 INFO::Fitting model to feature number 766, F796
## 2023-06-08 17:10:01.254423 INFO::Fitting model to feature number 767, F797
## 2023-06-08 17:10:01.257764 INFO::Fitting model to feature number 768, F798
## 2023-06-08 17:10:01.261117 INFO::Fitting model to feature number 769, F799
## 2023-06-08 17:10:01.264503 INFO::Fitting model to feature number 770, F800
## 2023-06-08 17:10:01.267857 INFO::Fitting model to feature number 771, F801
## 2023-06-08 17:10:01.271214 INFO::Fitting model to feature number 772, F802
## 2023-06-08 17:10:01.274565 INFO::Fitting model to feature number 773, F803
## 2023-06-08 17:10:01.277912 INFO::Fitting model to feature number 774, F804
## 2023-06-08 17:10:01.281265 INFO::Fitting model to feature number 775, F805
## 2023-06-08 17:10:01.284625 INFO::Fitting model to feature number 776, F806
## 2023-06-08 17:10:01.287958 INFO::Fitting model to feature number 777, F808
## 2023-06-08 17:10:01.291333 INFO::Fitting model to feature number 778, F809
## 2023-06-08 17:10:01.294769 INFO::Fitting model to feature number 779, F810
## 2023-06-08 17:10:01.298227 INFO::Fitting model to feature number 780, F811
## 2023-06-08 17:10:01.301738 INFO::Fitting model to feature number 781, F812
## 2023-06-08 17:10:01.305156 INFO::Fitting model to feature number 782, F813
## 2023-06-08 17:10:01.308604 INFO::Fitting model to feature number 783, F814
## 2023-06-08 17:10:01.312017 INFO::Fitting model to feature number 784, F815
## 2023-06-08 17:10:01.315417 INFO::Fitting model to feature number 785, F816
## 2023-06-08 17:10:01.318842 INFO::Fitting model to feature number 786, F817
## 2023-06-08 17:10:01.322277 INFO::Fitting model to feature number 787, F818
## 2023-06-08 17:10:01.325758 INFO::Fitting model to feature number 788, F819
## 2023-06-08 17:10:01.329198 INFO::Fitting model to feature number 789, F820
## 2023-06-08 17:10:01.332603 INFO::Fitting model to feature number 790, F821
## 2023-06-08 17:10:01.335977 INFO::Fitting model to feature number 791, F822
## 2023-06-08 17:10:01.339372 INFO::Fitting model to feature number 792, F823
## 2023-06-08 17:10:01.342775 INFO::Fitting model to feature number 793, F824
## 2023-06-08 17:10:01.346175 INFO::Fitting model to feature number 794, F825
## 2023-06-08 17:10:01.34954 INFO::Fitting model to feature number 795, F826
## 2023-06-08 17:10:01.352898 INFO::Fitting model to feature number 796, F827
## 2023-06-08 17:10:01.356258 INFO::Fitting model to feature number 797, F828
## 2023-06-08 17:10:01.359701 INFO::Fitting model to feature number 798, F829
## 2023-06-08 17:10:01.363118 INFO::Fitting model to feature number 799, F830
## 2023-06-08 17:10:01.36656 INFO::Fitting model to feature number 800, F831
## 2023-06-08 17:10:01.369995 INFO::Fitting model to feature number 801, F832
## 2023-06-08 17:10:01.373517 INFO::Fitting model to feature number 802, F833
## 2023-06-08 17:10:01.376914 INFO::Fitting model to feature number 803, F834
## 2023-06-08 17:10:01.380311 INFO::Fitting model to feature number 804, F835
## 2023-06-08 17:10:01.383721 INFO::Fitting model to feature number 805, F836
## 2023-06-08 17:10:01.387174 INFO::Fitting model to feature number 806, F837
## 2023-06-08 17:10:01.390594 INFO::Fitting model to feature number 807, F838
## 2023-06-08 17:10:01.394002 INFO::Fitting model to feature number 808, F839
## 2023-06-08 17:10:01.397437 INFO::Fitting model to feature number 809, F840
## 2023-06-08 17:10:01.400868 INFO::Fitting model to feature number 810, F841
## 2023-06-08 17:10:01.404259 INFO::Fitting model to feature number 811, F842
## 2023-06-08 17:10:01.407665 INFO::Fitting model to feature number 812, F843
## 2023-06-08 17:10:01.411103 INFO::Fitting model to feature number 813, F844
## 2023-06-08 17:10:01.414527 INFO::Fitting model to feature number 814, F845
## 2023-06-08 17:10:01.417945 INFO::Fitting model to feature number 815, F846
## 2023-06-08 17:10:01.421373 INFO::Fitting model to feature number 816, F847
## 2023-06-08 17:10:01.424829 INFO::Fitting model to feature number 817, F848
## 2023-06-08 17:10:01.42821 INFO::Fitting model to feature number 818, F849
## 2023-06-08 17:10:01.431682 INFO::Fitting model to feature number 819, F850
## 2023-06-08 17:10:01.435119 INFO::Fitting model to feature number 820, F851
## 2023-06-08 17:10:01.438566 INFO::Fitting model to feature number 821, F852
## 2023-06-08 17:10:01.441997 INFO::Fitting model to feature number 822, F853
## 2023-06-08 17:10:01.4455 INFO::Fitting model to feature number 823, F854
## 2023-06-08 17:10:01.448941 INFO::Fitting model to feature number 824, F855
## 2023-06-08 17:10:01.452336 INFO::Fitting model to feature number 825, F856
## 2023-06-08 17:10:01.455798 INFO::Fitting model to feature number 826, F857
## 2023-06-08 17:10:01.459241 INFO::Fitting model to feature number 827, F858
## 2023-06-08 17:10:01.462708 INFO::Fitting model to feature number 828, F859
## 2023-06-08 17:10:01.466109 INFO::Fitting model to feature number 829, F860
## 2023-06-08 17:10:01.469488 INFO::Fitting model to feature number 830, F861
## 2023-06-08 17:10:01.472895 INFO::Fitting model to feature number 831, F862
## 2023-06-08 17:10:01.476279 INFO::Fitting model to feature number 832, F863
## 2023-06-08 17:10:01.479671 INFO::Fitting model to feature number 833, F864
## 2023-06-08 17:10:01.483036 INFO::Fitting model to feature number 834, F865
## 2023-06-08 17:10:01.486458 INFO::Fitting model to feature number 835, F866
## 2023-06-08 17:10:01.489887 INFO::Fitting model to feature number 836, F867
## 2023-06-08 17:10:01.493266 INFO::Fitting model to feature number 837, F868
## 2023-06-08 17:10:01.496632 INFO::Fitting model to feature number 838, F869
## 2023-06-08 17:10:01.499984 INFO::Fitting model to feature number 839, F870
## 2023-06-08 17:10:01.503367 INFO::Fitting model to feature number 840, F871
## 2023-06-08 17:10:01.506746 INFO::Fitting model to feature number 841, F872
## 2023-06-08 17:10:01.510158 INFO::Fitting model to feature number 842, F873
## 2023-06-08 17:10:01.513507 INFO::Fitting model to feature number 843, F874
## 2023-06-08 17:10:01.51686 INFO::Fitting model to feature number 844, F875
## 2023-06-08 17:10:01.520192 INFO::Fitting model to feature number 845, F876
## 2023-06-08 17:10:01.523662 INFO::Fitting model to feature number 846, F877
## 2023-06-08 17:10:01.527098 INFO::Fitting model to feature number 847, F878
## 2023-06-08 17:10:01.548133 INFO::Fitting model to feature number 848, F879
## 2023-06-08 17:10:01.551911 INFO::Fitting model to feature number 849, F880
## 2023-06-08 17:10:01.555446 INFO::Fitting model to feature number 850, F881
## 2023-06-08 17:10:01.558931 INFO::Fitting model to feature number 851, F882
## 2023-06-08 17:10:01.562354 INFO::Fitting model to feature number 852, F883
## 2023-06-08 17:10:01.565732 INFO::Fitting model to feature number 853, F884
## 2023-06-08 17:10:01.569104 INFO::Fitting model to feature number 854, F885
## 2023-06-08 17:10:01.572473 INFO::Fitting model to feature number 855, F886
## 2023-06-08 17:10:01.575785 INFO::Fitting model to feature number 856, F887
## 2023-06-08 17:10:01.579117 INFO::Fitting model to feature number 857, F888
## 2023-06-08 17:10:01.582523 INFO::Fitting model to feature number 858, F889
## 2023-06-08 17:10:01.585919 INFO::Fitting model to feature number 859, F890
## 2023-06-08 17:10:01.589303 INFO::Fitting model to feature number 860, F891
## 2023-06-08 17:10:01.592703 INFO::Fitting model to feature number 861, F892
## 2023-06-08 17:10:01.596052 INFO::Fitting model to feature number 862, F893
## 2023-06-08 17:10:01.599385 INFO::Fitting model to feature number 863, F894
## 2023-06-08 17:10:01.602703 INFO::Fitting model to feature number 864, F895
## 2023-06-08 17:10:01.605992 INFO::Fitting model to feature number 865, F896
## 2023-06-08 17:10:01.60927 INFO::Fitting model to feature number 866, F897
## 2023-06-08 17:10:01.612545 INFO::Fitting model to feature number 867, F898
## 2023-06-08 17:10:01.615817 INFO::Fitting model to feature number 868, F899
## 2023-06-08 17:10:01.619145 INFO::Fitting model to feature number 869, F900
## 2023-06-08 17:10:01.792582 INFO::Counting total values for each feature
## 2023-06-08 17:10:01.921504 INFO::Writing filtered data to file Macarron_output/maaslin2_results/features/filtered_data.tsv
## 2023-06-08 17:10:02.061049 INFO::Writing filtered, normalized data to file Macarron_output/maaslin2_results/features/filtered_data_norm.tsv
## 2023-06-08 17:10:02.201238 INFO::Writing filtered, normalized, transformed data to file Macarron_output/maaslin2_results/features/filtered_data_norm_transformed.tsv
## 2023-06-08 17:10:02.341019 INFO::Writing residuals to file Macarron_output/maaslin2_results/fits/residuals.rds
## 2023-06-08 17:10:02.389307 INFO::Writing fitted values to file Macarron_output/maaslin2_results/fits/fitted.rds
## 2023-06-08 17:10:02.430083 INFO::Writing all results to file (ordered by increasing q-values): Macarron_output/maaslin2_results/all_results.tsv
## 2023-06-08 17:10:02.450484 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-06-08 17:10:02.4597 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-06-08 17:10:02.792284 INFO::Writing all prioritized metabolites to file: Macarron_output/prioritized_metabolites_all.csv
## 2023-06-08 17:10:02.803181 INFO::Writing characterizable prioritized metabolites to file: Macarron_output/prioritized_metabolites_characterizable.csv
## 2023-06-08 17:10:02.829991 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.0 RC (2023-04-13 r84269)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 22.04.2 LTS
## 
## Matrix products: default
## BLAS:   /home/biocbuild/bbs-3.17-bioc/R/lib/libRblas.so 
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_GB              LC_COLLATE=C              
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## time zone: America/New_York
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats4    stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] Macarron_1.4.0              SummarizedExperiment_1.30.2
##  [3] Biobase_2.60.0              GenomicRanges_1.52.0       
##  [5] GenomeInfoDb_1.36.0         IRanges_2.34.0             
##  [7] S4Vectors_0.38.1            BiocGenerics_0.46.0        
##  [9] MatrixGenerics_1.12.1       matrixStats_1.0.0          
## [11] BiocStyle_2.28.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-0           gridExtra_2.3           rlang_1.1.1            
##   [7] magrittr_2.0.3          compiler_4.3.0          RSQLite_2.3.1          
##  [10] png_0.1-8               vctrs_0.6.2             stringr_1.5.0          
##  [13] pkgconfig_2.0.3         crayon_1.5.2            fastmap_1.1.1          
##  [16] backports_1.4.1         XVector_0.40.0          utf8_1.2.3             
##  [19] rmarkdown_2.22          preprocessCore_1.62.1   bit_4.0.5              
##  [22] xfun_0.39               zlibbioc_1.46.0         cachem_1.0.8           
##  [25] jsonlite_1.8.5          blob_1.2.4              DelayedArray_0.26.3    
##  [28] BiocParallel_1.34.2     psych_2.3.3             Maaslin2_1.14.1        
##  [31] parallel_4.3.0          cluster_2.1.4           biglm_0.9-2.1          
##  [34] R6_2.5.1                RColorBrewer_1.1-3      bslib_0.4.2            
##  [37] stringi_1.7.12          rpart_4.1.19            jquerylib_0.1.4        
##  [40] Rcpp_1.0.10             bookdown_0.34           iterators_1.0.14       
##  [43] knitr_1.43              WGCNA_1.72-1            base64enc_0.1-3        
##  [46] Matrix_1.5-4.1          splines_4.3.0           nnet_7.3-19            
##  [49] tidyselect_1.2.0        rstudioapi_0.14         yaml_2.3.7             
##  [52] doParallel_1.0.17       codetools_0.2-19        plyr_1.8.8             
##  [55] lattice_0.21-8          tibble_3.2.1            withr_2.5.0            
##  [58] KEGGREST_1.40.0         evaluate_0.21           foreign_0.8-84         
##  [61] survival_3.5-5          getopt_1.20.3           Biostrings_2.68.1      
##  [64] pillar_1.9.0            BiocManager_1.30.20     checkmate_2.2.0        
##  [67] foreach_1.5.2           pcaPP_2.0-3             generics_0.1.3         
##  [70] RCurl_1.98-1.12         ggplot2_3.4.2           munsell_0.5.0          
##  [73] scales_1.2.1            glue_1.6.2              pheatmap_1.0.12        
##  [76] Hmisc_5.1-0             tools_4.3.0             robustbase_0.95-1      
##  [79] data.table_1.14.8       mvtnorm_1.2-2           fastcluster_1.2.3      
##  [82] grid_4.3.0              optparse_1.7.3          impute_1.74.1          
##  [85] AnnotationDbi_1.62.1    colorspace_2.1-0        nlme_3.1-162           
##  [88] GenomeInfoDbData_1.2.10 htmlTable_2.4.1         Formula_1.2-5          
##  [91] cli_3.6.1               fansi_1.0.4             S4Arrays_1.0.4         
##  [94] dplyr_1.1.2             DEoptimR_1.0-13         gtable_0.3.3           
##  [97] hash_2.2.6.2            logging_0.10-108        dynamicTreeCut_1.63-1  
## [100] sass_0.4.6              digest_0.6.31           htmlwidgets_1.6.2      
## [103] memoise_2.0.1           htmltools_0.5.5         lifecycle_1.0.3        
## [106] httr_1.4.6              GO.db_3.17.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.