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-12 11:38:15.042366 INFO::Creating output folder.
## 2023-06-12 11:38:15.06992 INFO::Writing function arguments to log file
## Samples with both abundances and metadata: 102
## 2023-06-12 11:38:15.208193 INFO::Summarized Experiment created.
## 2023-06-12 11:38:15.210513 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-12 11:38:22.940089 INFO::Distance matrix with 869 metabolic features created.
## Initiating module detection
## 2023-06-12 11:38:22.944939 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-12 11:38:25.205298 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-12 11:38:29.963016 INFO::Writing function arguments to log file
## 2023-06-12 11:38:29.974791 INFO::Verifying options selected are valid
## 2023-06-12 11:38:30.04985 INFO::Determining format of input files
## 2023-06-12 11:38:30.053705 INFO::Input format is data samples as columns and metadata samples as rows
## 2023-06-12 11:38:30.084212 INFO::Formula for fixed effects: expr ~  diagnosis + age + antibiotics
## 2023-06-12 11:38:30.090414 INFO::Filter data based on min abundance and min prevalence
## 2023-06-12 11:38:30.091579 INFO::Total samples in data: 102
## 2023-06-12 11:38:30.092663 INFO::Min samples required with min abundance for a feature not to be filtered: 0.000000
## 2023-06-12 11:38:30.116283 INFO::Total filtered features: 0
## 2023-06-12 11:38:30.117677 INFO::Filtered feature names from abundance and prevalence filtering:
## 2023-06-12 11:38:30.156592 INFO::Total filtered features with variance filtering: 0
## 2023-06-12 11:38:30.158094 INFO::Filtered feature names from variance filtering:
## 2023-06-12 11:38:30.159182 INFO::Running selected normalization method: NONE
## 2023-06-12 11:38:30.163874 INFO::Applying z-score to standardize continuous metadata
## 2023-06-12 11:38:30.227356 INFO::Running selected transform method: NONE
## 2023-06-12 11:38:30.228822 INFO::Running selected analysis method: LM
## 2023-06-12 11:38:30.241186 INFO::Fitting model to feature number 1, F1
## 2023-06-12 11:38:30.259332 INFO::Fitting model to feature number 2, F2
## 2023-06-12 11:38:30.268986 INFO::Fitting model to feature number 3, F3
## 2023-06-12 11:38:30.277205 INFO::Fitting model to feature number 4, F4
## 2023-06-12 11:38:30.285077 INFO::Fitting model to feature number 5, F5
## 2023-06-12 11:38:30.295124 INFO::Fitting model to feature number 6, F6
## 2023-06-12 11:38:30.302885 INFO::Fitting model to feature number 7, F7
## 2023-06-12 11:38:30.313706 INFO::Fitting model to feature number 8, F8
## 2023-06-12 11:38:30.321133 INFO::Fitting model to feature number 9, F9
## 2023-06-12 11:38:30.330792 INFO::Fitting model to feature number 10, F10
## 2023-06-12 11:38:30.339551 INFO::Fitting model to feature number 11, F11
## 2023-06-12 11:38:30.349863 INFO::Fitting model to feature number 12, F12
## 2023-06-12 11:38:30.357347 INFO::Fitting model to feature number 13, F13
## 2023-06-12 11:38:30.365036 INFO::Fitting model to feature number 14, F14
## 2023-06-12 11:38:30.375153 INFO::Fitting model to feature number 15, F15
## 2023-06-12 11:38:30.382799 INFO::Fitting model to feature number 16, F16
## 2023-06-12 11:38:30.390226 INFO::Fitting model to feature number 17, F17
## 2023-06-12 11:38:30.400107 INFO::Fitting model to feature number 18, F18
## 2023-06-12 11:38:30.408492 INFO::Fitting model to feature number 19, F19
## 2023-06-12 11:38:30.4186 INFO::Fitting model to feature number 20, F20
## 2023-06-12 11:38:30.425139 INFO::Fitting model to feature number 21, F21
## 2023-06-12 11:38:30.433529 INFO::Fitting model to feature number 22, F22
## 2023-06-12 11:38:30.443369 INFO::Fitting model to feature number 23, F23
## 2023-06-12 11:38:30.450454 INFO::Fitting model to feature number 24, F24
## 2023-06-12 11:38:30.460262 INFO::Fitting model to feature number 25, F25
## 2023-06-12 11:38:30.469255 INFO::Fitting model to feature number 26, F26
## 2023-06-12 11:38:30.47588 INFO::Fitting model to feature number 27, F27
## 2023-06-12 11:38:30.48612 INFO::Fitting model to feature number 28, F28
## 2023-06-12 11:38:30.493107 INFO::Fitting model to feature number 29, F29
## 2023-06-12 11:38:30.503 INFO::Fitting model to feature number 30, F30
## 2023-06-12 11:38:30.511426 INFO::Fitting model to feature number 31, F31
## 2023-06-12 11:38:30.51885 INFO::Fitting model to feature number 32, F32
## 2023-06-12 11:38:30.528766 INFO::Fitting model to feature number 33, F33
## 2023-06-12 11:38:30.53594 INFO::Fitting model to feature number 34, F34
## 2023-06-12 11:38:30.54574 INFO::Fitting model to feature number 35, F35
## 2023-06-12 11:38:30.555088 INFO::Fitting model to feature number 36, F36
## 2023-06-12 11:38:30.565015 INFO::Fitting model to feature number 37, F37
## 2023-06-12 11:38:30.571507 INFO::Fitting model to feature number 38, F38
## 2023-06-12 11:38:30.58006 INFO::Fitting model to feature number 39, F39
## 2023-06-12 11:38:30.590781 INFO::Fitting model to feature number 40, F40
## 2023-06-12 11:38:30.597708 INFO::Fitting model to feature number 41, F41
## 2023-06-12 11:38:30.607938 INFO::Fitting model to feature number 42, F43
## 2023-06-12 11:38:30.61695 INFO::Fitting model to feature number 43, F44
## 2023-06-12 11:38:30.622958 INFO::Fitting model to feature number 44, F45
## 2023-06-12 11:38:30.6329 INFO::Fitting model to feature number 45, F46
## 2023-06-12 11:38:30.642014 INFO::Fitting model to feature number 46, F47
## 2023-06-12 11:38:30.651205 INFO::Fitting model to feature number 47, F48
## 2023-06-12 11:38:30.658075 INFO::Fitting model to feature number 48, F49
## 2023-06-12 11:38:30.667972 INFO::Fitting model to feature number 49, F50
## 2023-06-12 11:38:30.676318 INFO::Fitting model to feature number 50, F51
## 2023-06-12 11:38:30.683332 INFO::Fitting model to feature number 51, F52
## 2023-06-12 11:38:30.693756 INFO::Fitting model to feature number 52, F53
## 2023-06-12 11:38:30.701975 INFO::Fitting model to feature number 53, F54
## 2023-06-12 11:38:30.708548 INFO::Fitting model to feature number 54, F55
## 2023-06-12 11:38:30.718071 INFO::Fitting model to feature number 55, F56
## 2023-06-12 11:38:30.728243 INFO::Fitting model to feature number 56, F57
## 2023-06-12 11:38:30.735277 INFO::Fitting model to feature number 57, F58
## 2023-06-12 11:38:30.745117 INFO::Fitting model to feature number 58, F59
## 2023-06-12 11:38:30.753679 INFO::Fitting model to feature number 59, F60
## 2023-06-12 11:38:30.760886 INFO::Fitting model to feature number 60, F63
## 2023-06-12 11:38:30.770249 INFO::Fitting model to feature number 61, F64
## 2023-06-12 11:38:30.779458 INFO::Fitting model to feature number 62, F65
## 2023-06-12 11:38:30.789295 INFO::Fitting model to feature number 63, F66
## 2023-06-12 11:38:30.795383 INFO::Fitting model to feature number 64, F67
## 2023-06-12 11:38:30.804946 INFO::Fitting model to feature number 65, F68
## 2023-06-12 11:38:30.811662 INFO::Fitting model to feature number 66, F69
## 2023-06-12 11:38:30.819473 INFO::Fitting model to feature number 67, F70
## 2023-06-12 11:38:30.826959 INFO::Fitting model to feature number 68, F71
## 2023-06-12 11:38:30.837645 INFO::Fitting model to feature number 69, F72
## 2023-06-12 11:38:30.845178 INFO::Fitting model to feature number 70, F73
## 2023-06-12 11:38:30.852375 INFO::Fitting model to feature number 71, F74
## 2023-06-12 11:38:30.862177 INFO::Fitting model to feature number 72, F76
## 2023-06-12 11:38:30.870008 INFO::Fitting model to feature number 73, F77
## 2023-06-12 11:38:30.87951 INFO::Fitting model to feature number 74, F78
## 2023-06-12 11:38:30.887377 INFO::Fitting model to feature number 75, F79
## 2023-06-12 11:38:30.895554 INFO::Fitting model to feature number 76, F80
## 2023-06-12 11:38:30.90679 INFO::Fitting model to feature number 77, F81
## 2023-06-12 11:38:30.915074 INFO::Fitting model to feature number 78, F82
## 2023-06-12 11:38:30.925273 INFO::Fitting model to feature number 79, F83
## 2023-06-12 11:38:30.932583 INFO::Fitting model to feature number 80, F84
## 2023-06-12 11:38:30.940599 INFO::Fitting model to feature number 81, F85
## 2023-06-12 11:38:30.950571 INFO::Fitting model to feature number 82, F86
## 2023-06-12 11:38:30.958441 INFO::Fitting model to feature number 83, F87
## 2023-06-12 11:38:30.96983 INFO::Fitting model to feature number 84, F88
## 2023-06-12 11:38:30.976462 INFO::Fitting model to feature number 85, F89
## 2023-06-12 11:38:30.986449 INFO::Fitting model to feature number 86, F90
## 2023-06-12 11:38:30.995245 INFO::Fitting model to feature number 87, F91
## 2023-06-12 11:38:31.001763 INFO::Fitting model to feature number 88, F92
## 2023-06-12 11:38:31.012737 INFO::Fitting model to feature number 89, F93
## 2023-06-12 11:38:31.021201 INFO::Fitting model to feature number 90, F94
## 2023-06-12 11:38:31.032011 INFO::Fitting model to feature number 91, F95
## 2023-06-12 11:38:31.039476 INFO::Fitting model to feature number 92, F96
## 2023-06-12 11:38:31.049226 INFO::Fitting model to feature number 93, F97
## 2023-06-12 11:38:31.057433 INFO::Fitting model to feature number 94, F98
## 2023-06-12 11:38:31.067576 INFO::Fitting model to feature number 95, F99
## 2023-06-12 11:38:31.078115 INFO::Fitting model to feature number 96, F100
## 2023-06-12 11:38:31.086261 INFO::Fitting model to feature number 97, F101
## 2023-06-12 11:38:31.096408 INFO::Fitting model to feature number 98, F102
## 2023-06-12 11:38:31.160431 INFO::Fitting model to feature number 99, F103
## 2023-06-12 11:38:31.167306 INFO::Fitting model to feature number 100, F104
## 2023-06-12 11:38:31.177413 INFO::Fitting model to feature number 101, F105
## 2023-06-12 11:38:31.184921 INFO::Fitting model to feature number 102, F106
## 2023-06-12 11:38:31.192035 INFO::Fitting model to feature number 103, F107
## 2023-06-12 11:38:31.20161 INFO::Fitting model to feature number 104, F108
## 2023-06-12 11:38:31.210018 INFO::Fitting model to feature number 105, F109
## 2023-06-12 11:38:31.216621 INFO::Fitting model to feature number 106, F110
## 2023-06-12 11:38:31.226369 INFO::Fitting model to feature number 107, F111
## 2023-06-12 11:38:31.234721 INFO::Fitting model to feature number 108, F112
## 2023-06-12 11:38:31.243865 INFO::Fitting model to feature number 109, F113
## 2023-06-12 11:38:31.254415 INFO::Fitting model to feature number 110, F114
## 2023-06-12 11:38:31.260992 INFO::Fitting model to feature number 111, F115
## 2023-06-12 11:38:31.270929 INFO::Fitting model to feature number 112, F117
## 2023-06-12 11:38:31.280322 INFO::Fitting model to feature number 113, F118
## 2023-06-12 11:38:31.286269 INFO::Fitting model to feature number 114, F119
## 2023-06-12 11:38:31.298327 INFO::Fitting model to feature number 115, F120
## 2023-06-12 11:38:31.30716 INFO::Fitting model to feature number 116, F121
## 2023-06-12 11:38:31.317089 INFO::Fitting model to feature number 117, F122
## 2023-06-12 11:38:31.324105 INFO::Fitting model to feature number 118, F123
## 2023-06-12 11:38:31.335748 INFO::Fitting model to feature number 119, F124
## 2023-06-12 11:38:31.343743 INFO::Fitting model to feature number 120, F125
## 2023-06-12 11:38:31.354203 INFO::Fitting model to feature number 121, F126
## 2023-06-12 11:38:31.36227 INFO::Fitting model to feature number 122, F127
## 2023-06-12 11:38:31.369025 INFO::Fitting model to feature number 123, F128
## 2023-06-12 11:38:31.378879 INFO::Fitting model to feature number 124, F129
## 2023-06-12 11:38:31.387357 INFO::Fitting model to feature number 125, F130
## 2023-06-12 11:38:31.397405 INFO::Fitting model to feature number 126, F131
## 2023-06-12 11:38:31.404307 INFO::Fitting model to feature number 127, F132
## 2023-06-12 11:38:31.4145 INFO::Fitting model to feature number 128, F133
## 2023-06-12 11:38:31.422736 INFO::Fitting model to feature number 129, F134
## 2023-06-12 11:38:31.429328 INFO::Fitting model to feature number 130, F135
## 2023-06-12 11:38:31.440183 INFO::Fitting model to feature number 131, F136
## 2023-06-12 11:38:31.447935 INFO::Fitting model to feature number 132, F137
## 2023-06-12 11:38:31.454914 INFO::Fitting model to feature number 133, F138
## 2023-06-12 11:38:31.464868 INFO::Fitting model to feature number 134, F139
## 2023-06-12 11:38:31.472546 INFO::Fitting model to feature number 135, F140
## 2023-06-12 11:38:31.47986 INFO::Fitting model to feature number 136, F141
## 2023-06-12 11:38:31.489603 INFO::Fitting model to feature number 137, F142
## 2023-06-12 11:38:31.497464 INFO::Fitting model to feature number 138, F143
## 2023-06-12 11:38:31.507276 INFO::Fitting model to feature number 139, F144
## 2023-06-12 11:38:31.516486 INFO::Fitting model to feature number 140, F145
## 2023-06-12 11:38:31.522682 INFO::Fitting model to feature number 141, F146
## 2023-06-12 11:38:31.532503 INFO::Fitting model to feature number 142, F147
## 2023-06-12 11:38:31.542037 INFO::Fitting model to feature number 143, F148
## 2023-06-12 11:38:31.54767 INFO::Fitting model to feature number 144, F149
## 2023-06-12 11:38:31.55773 INFO::Fitting model to feature number 145, F150
## 2023-06-12 11:38:31.566614 INFO::Fitting model to feature number 146, F152
## 2023-06-12 11:38:31.57592 INFO::Fitting model to feature number 147, F153
## 2023-06-12 11:38:31.582538 INFO::Fitting model to feature number 148, F154
## 2023-06-12 11:38:31.591308 INFO::Fitting model to feature number 149, F155
## 2023-06-12 11:38:31.600877 INFO::Fitting model to feature number 150, F156
## 2023-06-12 11:38:31.607675 INFO::Fitting model to feature number 151, F157
## 2023-06-12 11:38:31.614806 INFO::Fitting model to feature number 152, F158
## 2023-06-12 11:38:31.623848 INFO::Fitting model to feature number 153, F159
## 2023-06-12 11:38:31.630109 INFO::Fitting model to feature number 154, F160
## 2023-06-12 11:38:31.639555 INFO::Fitting model to feature number 155, F161
## 2023-06-12 11:38:31.646106 INFO::Fitting model to feature number 156, F162
## 2023-06-12 11:38:31.653291 INFO::Fitting model to feature number 157, F163
## 2023-06-12 11:38:31.662282 INFO::Fitting model to feature number 158, F164
## 2023-06-12 11:38:31.669035 INFO::Fitting model to feature number 159, F165
## 2023-06-12 11:38:31.676378 INFO::Fitting model to feature number 160, F166
## 2023-06-12 11:38:31.68538 INFO::Fitting model to feature number 161, F167
## 2023-06-12 11:38:31.692229 INFO::Fitting model to feature number 162, F168
## 2023-06-12 11:38:31.699814 INFO::Fitting model to feature number 163, F169
## 2023-06-12 11:38:31.708138 INFO::Fitting model to feature number 164, F170
## 2023-06-12 11:38:31.714365 INFO::Fitting model to feature number 165, F171
## 2023-06-12 11:38:31.723794 INFO::Fitting model to feature number 166, F172
## 2023-06-12 11:38:31.731185 INFO::Fitting model to feature number 167, F173
## 2023-06-12 11:38:31.738899 INFO::Fitting model to feature number 168, F174
## 2023-06-12 11:38:31.747502 INFO::Fitting model to feature number 169, F175
## 2023-06-12 11:38:31.754364 INFO::Fitting model to feature number 170, F176
## 2023-06-12 11:38:31.762181 INFO::Fitting model to feature number 171, F177
## 2023-06-12 11:38:31.77087 INFO::Fitting model to feature number 172, F178
## 2023-06-12 11:38:31.77897 INFO::Fitting model to feature number 173, F179
## 2023-06-12 11:38:31.785207 INFO::Fitting model to feature number 174, F180
## 2023-06-12 11:38:31.794826 INFO::Fitting model to feature number 175, F181
## 2023-06-12 11:38:31.804979 INFO::Fitting model to feature number 176, F182
## 2023-06-12 11:38:31.811494 INFO::Fitting model to feature number 177, F183
## 2023-06-12 11:38:31.816735 INFO::Fitting model to feature number 178, F184
## 2023-06-12 11:38:31.826864 INFO::Fitting model to feature number 179, F185
## 2023-06-12 11:38:31.833437 INFO::Fitting model to feature number 180, F186
## 2023-06-12 11:38:31.841298 INFO::Fitting model to feature number 181, F187
## 2023-06-12 11:38:31.849564 INFO::Fitting model to feature number 182, F188
## 2023-06-12 11:38:31.856466 INFO::Fitting model to feature number 183, F189
## 2023-06-12 11:38:31.863914 INFO::Fitting model to feature number 184, F190
## 2023-06-12 11:38:31.871949 INFO::Fitting model to feature number 185, F191
## 2023-06-12 11:38:31.879475 INFO::Fitting model to feature number 186, F192
## 2023-06-12 11:38:31.887997 INFO::Fitting model to feature number 187, F193
## 2023-06-12 11:38:31.897159 INFO::Fitting model to feature number 188, F194
## 2023-06-12 11:38:31.903104 INFO::Fitting model to feature number 189, F195
## 2023-06-12 11:38:31.913392 INFO::Fitting model to feature number 190, F196
## 2023-06-12 11:38:31.920332 INFO::Fitting model to feature number 191, F197
## 2023-06-12 11:38:31.927212 INFO::Fitting model to feature number 192, F198
## 2023-06-12 11:38:31.936761 INFO::Fitting model to feature number 193, F199
## 2023-06-12 11:38:31.944181 INFO::Fitting model to feature number 194, F200
## 2023-06-12 11:38:31.950274 INFO::Fitting model to feature number 195, F201
## 2023-06-12 11:38:31.960092 INFO::Fitting model to feature number 196, F202
## 2023-06-12 11:38:31.966819 INFO::Fitting model to feature number 197, F203
## 2023-06-12 11:38:31.975019 INFO::Fitting model to feature number 198, F204
## 2023-06-12 11:38:31.984235 INFO::Fitting model to feature number 199, F206
## 2023-06-12 11:38:31.989706 INFO::Fitting model to feature number 200, F207
## 2023-06-12 11:38:32.000084 INFO::Fitting model to feature number 201, F208
## 2023-06-12 11:38:32.007567 INFO::Fitting model to feature number 202, F209
## 2023-06-12 11:38:32.015358 INFO::Fitting model to feature number 203, F210
## 2023-06-12 11:38:32.022774 INFO::Fitting model to feature number 204, F211
## 2023-06-12 11:38:32.031145 INFO::Fitting model to feature number 205, F212
## 2023-06-12 11:38:32.038657 INFO::Fitting model to feature number 206, F213
## 2023-06-12 11:38:32.045456 INFO::Fitting model to feature number 207, F214
## 2023-06-12 11:38:32.055245 INFO::Fitting model to feature number 208, F215
## 2023-06-12 11:38:32.064172 INFO::Fitting model to feature number 209, F216
## 2023-06-12 11:38:32.071747 INFO::Fitting model to feature number 210, F217
## 2023-06-12 11:38:32.078792 INFO::Fitting model to feature number 211, F218
## 2023-06-12 11:38:32.087094 INFO::Fitting model to feature number 212, F219
## 2023-06-12 11:38:32.095912 INFO::Fitting model to feature number 213, F220
## 2023-06-12 11:38:32.104298 INFO::Fitting model to feature number 214, F221
## 2023-06-12 11:38:32.110825 INFO::Fitting model to feature number 215, F222
## 2023-06-12 11:38:32.119263 INFO::Fitting model to feature number 216, F223
## 2023-06-12 11:38:32.126704 INFO::Fitting model to feature number 217, F224
## 2023-06-12 11:38:32.134602 INFO::Fitting model to feature number 218, F225
## 2023-06-12 11:38:32.142971 INFO::Fitting model to feature number 219, F226
## 2023-06-12 11:38:32.150404 INFO::Fitting model to feature number 220, F227
## 2023-06-12 11:38:32.161763 INFO::Fitting model to feature number 221, F228
## 2023-06-12 11:38:32.168217 INFO::Fitting model to feature number 222, F229
## 2023-06-12 11:38:32.17652 INFO::Fitting model to feature number 223, F230
## 2023-06-12 11:38:32.184343 INFO::Fitting model to feature number 224, F231
## 2023-06-12 11:38:32.19093 INFO::Fitting model to feature number 225, F232
## 2023-06-12 11:38:32.201005 INFO::Fitting model to feature number 226, F233
## 2023-06-12 11:38:32.207493 INFO::Fitting model to feature number 227, F234
## 2023-06-12 11:38:32.214262 INFO::Fitting model to feature number 228, F235
## 2023-06-12 11:38:32.22674 INFO::Fitting model to feature number 229, F236
## 2023-06-12 11:38:32.233096 INFO::Fitting model to feature number 230, F237
## 2023-06-12 11:38:32.240647 INFO::Fitting model to feature number 231, F238
## 2023-06-12 11:38:32.249124 INFO::Fitting model to feature number 232, F239
## 2023-06-12 11:38:32.255647 INFO::Fitting model to feature number 233, F240
## 2023-06-12 11:38:32.262196 INFO::Fitting model to feature number 234, F241
## 2023-06-12 11:38:32.272269 INFO::Fitting model to feature number 235, F242
## 2023-06-12 11:38:32.278424 INFO::Fitting model to feature number 236, F243
## 2023-06-12 11:38:32.285316 INFO::Fitting model to feature number 237, F244
## 2023-06-12 11:38:32.293696 INFO::Fitting model to feature number 238, F245
## 2023-06-12 11:38:32.299832 INFO::Fitting model to feature number 239, F246
## 2023-06-12 11:38:32.309302 INFO::Fitting model to feature number 240, F247
## 2023-06-12 11:38:32.314839 INFO::Fitting model to feature number 241, F248
## 2023-06-12 11:38:32.324819 INFO::Fitting model to feature number 242, F249
## 2023-06-12 11:38:32.333428 INFO::Fitting model to feature number 243, F250
## 2023-06-12 11:38:32.342316 INFO::Fitting model to feature number 244, F252
## 2023-06-12 11:38:32.349167 INFO::Fitting model to feature number 245, F253
## 2023-06-12 11:38:32.355255 INFO::Fitting model to feature number 246, F254
## 2023-06-12 11:38:32.363522 INFO::Fitting model to feature number 247, F255
## 2023-06-12 11:38:32.371728 INFO::Fitting model to feature number 248, F256
## 2023-06-12 11:38:32.379004 INFO::Fitting model to feature number 249, F257
## 2023-06-12 11:38:32.386393 INFO::Fitting model to feature number 250, F259
## 2023-06-12 11:38:32.395241 INFO::Fitting model to feature number 251, F260
## 2023-06-12 11:38:32.402009 INFO::Fitting model to feature number 252, F261
## 2023-06-12 11:38:32.409786 INFO::Fitting model to feature number 253, F262
## 2023-06-12 11:38:32.416239 INFO::Fitting model to feature number 254, F263
## 2023-06-12 11:38:32.426178 INFO::Fitting model to feature number 255, F264
## 2023-06-12 11:38:32.432805 INFO::Fitting model to feature number 256, F265
## 2023-06-12 11:38:32.438821 INFO::Fitting model to feature number 257, F266
## 2023-06-12 11:38:32.44904 INFO::Fitting model to feature number 258, F267
## 2023-06-12 11:38:32.455702 INFO::Fitting model to feature number 259, F269
## 2023-06-12 11:38:32.462209 INFO::Fitting model to feature number 260, F270
## 2023-06-12 11:38:32.472279 INFO::Fitting model to feature number 261, F271
## 2023-06-12 11:38:32.478721 INFO::Fitting model to feature number 262, F272
## 2023-06-12 11:38:32.485741 INFO::Fitting model to feature number 263, F273
## 2023-06-12 11:38:32.491789 INFO::Fitting model to feature number 264, F274
## 2023-06-12 11:38:32.50142 INFO::Fitting model to feature number 265, F276
## 2023-06-12 11:38:32.509186 INFO::Fitting model to feature number 266, F277
## 2023-06-12 11:38:32.515567 INFO::Fitting model to feature number 267, F278
## 2023-06-12 11:38:32.522391 INFO::Fitting model to feature number 268, F279
## 2023-06-12 11:38:32.530828 INFO::Fitting model to feature number 269, F280
## 2023-06-12 11:38:32.537058 INFO::Fitting model to feature number 270, F281
## 2023-06-12 11:38:32.547818 INFO::Fitting model to feature number 271, F282
## 2023-06-12 11:38:32.554559 INFO::Fitting model to feature number 272, F283
## 2023-06-12 11:38:32.560085 INFO::Fitting model to feature number 273, F284
## 2023-06-12 11:38:32.567615 INFO::Fitting model to feature number 274, F285
## 2023-06-12 11:38:32.576029 INFO::Fitting model to feature number 275, F286
## 2023-06-12 11:38:32.584959 INFO::Fitting model to feature number 276, F287
## 2023-06-12 11:38:32.591238 INFO::Fitting model to feature number 277, F288
## 2023-06-12 11:38:32.599782 INFO::Fitting model to feature number 278, F289
## 2023-06-12 11:38:32.606969 INFO::Fitting model to feature number 279, F290
## 2023-06-12 11:38:32.615437 INFO::Fitting model to feature number 280, F292
## 2023-06-12 11:38:32.622106 INFO::Fitting model to feature number 281, F293
## 2023-06-12 11:38:32.627571 INFO::Fitting model to feature number 282, F294
## 2023-06-12 11:38:32.634553 INFO::Fitting model to feature number 283, F295
## 2023-06-12 11:38:32.643731 INFO::Fitting model to feature number 284, F296
## 2023-06-12 11:38:32.652409 INFO::Fitting model to feature number 285, F297
## 2023-06-12 11:38:32.6601 INFO::Fitting model to feature number 286, F298
## 2023-06-12 11:38:32.668094 INFO::Fitting model to feature number 287, F299
## 2023-06-12 11:38:32.677951 INFO::Fitting model to feature number 288, F300
## 2023-06-12 11:38:32.687634 INFO::Fitting model to feature number 289, F301
## 2023-06-12 11:38:32.69339 INFO::Fitting model to feature number 290, F302
## 2023-06-12 11:38:32.702546 INFO::Fitting model to feature number 291, F303
## 2023-06-12 11:38:32.712636 INFO::Fitting model to feature number 292, F304
## 2023-06-12 11:38:32.71873 INFO::Fitting model to feature number 293, F305
## 2023-06-12 11:38:32.728137 INFO::Fitting model to feature number 294, F306
## 2023-06-12 11:38:32.738302 INFO::Fitting model to feature number 295, F307
## 2023-06-12 11:38:32.744449 INFO::Fitting model to feature number 296, F308
## 2023-06-12 11:38:32.754989 INFO::Fitting model to feature number 297, F309
## 2023-06-12 11:38:32.764297 INFO::Fitting model to feature number 298, F310
## 2023-06-12 11:38:32.774446 INFO::Fitting model to feature number 299, F311
## 2023-06-12 11:38:32.782553 INFO::Fitting model to feature number 300, F312
## 2023-06-12 11:38:32.795226 INFO::Fitting model to feature number 301, F313
## 2023-06-12 11:38:32.801084 INFO::Fitting model to feature number 302, F315
## 2023-06-12 11:38:32.810113 INFO::Fitting model to feature number 303, F316
## 2023-06-12 11:38:32.815873 INFO::Fitting model to feature number 304, F317
## 2023-06-12 11:38:32.824863 INFO::Fitting model to feature number 305, F318
## 2023-06-12 11:38:32.830819 INFO::Fitting model to feature number 306, F319
## 2023-06-12 11:38:32.84038 INFO::Fitting model to feature number 307, F320
## 2023-06-12 11:38:32.848502 INFO::Fitting model to feature number 308, F321
## 2023-06-12 11:38:32.856102 INFO::Fitting model to feature number 309, F322
## 2023-06-12 11:38:32.865761 INFO::Fitting model to feature number 310, F323
## 2023-06-12 11:38:32.874295 INFO::Fitting model to feature number 311, F324
## 2023-06-12 11:38:32.883311 INFO::Fitting model to feature number 312, F325
## 2023-06-12 11:38:32.892252 INFO::Fitting model to feature number 313, F326
## 2023-06-12 11:38:32.900006 INFO::Fitting model to feature number 314, F327
## 2023-06-12 11:38:32.906608 INFO::Fitting model to feature number 315, F328
## 2023-06-12 11:38:32.916604 INFO::Fitting model to feature number 316, F329
## 2023-06-12 11:38:32.925815 INFO::Fitting model to feature number 317, F330
## 2023-06-12 11:38:32.93577 INFO::Fitting model to feature number 318, F331
## 2023-06-12 11:38:32.942368 INFO::Fitting model to feature number 319, F332
## 2023-06-12 11:38:32.953045 INFO::Fitting model to feature number 320, F333
## 2023-06-12 11:38:32.962119 INFO::Fitting model to feature number 321, F334
## 2023-06-12 11:38:32.96991 INFO::Fitting model to feature number 322, F335
## 2023-06-12 11:38:32.980233 INFO::Fitting model to feature number 323, F336
## 2023-06-12 11:38:32.988366 INFO::Fitting model to feature number 324, F337
## 2023-06-12 11:38:32.997686 INFO::Fitting model to feature number 325, F338
## 2023-06-12 11:38:33.006235 INFO::Fitting model to feature number 326, F339
## 2023-06-12 11:38:33.012844 INFO::Fitting model to feature number 327, F340
## 2023-06-12 11:38:33.022728 INFO::Fitting model to feature number 328, F342
## 2023-06-12 11:38:33.03122 INFO::Fitting model to feature number 329, F343
## 2023-06-12 11:38:33.040846 INFO::Fitting model to feature number 330, F344
## 2023-06-12 11:38:33.047919 INFO::Fitting model to feature number 331, F345
## 2023-06-12 11:38:33.055781 INFO::Fitting model to feature number 332, F346
## 2023-06-12 11:38:33.065672 INFO::Fitting model to feature number 333, F347
## 2023-06-12 11:38:33.073175 INFO::Fitting model to feature number 334, F348
## 2023-06-12 11:38:33.08134 INFO::Fitting model to feature number 335, F350
## 2023-06-12 11:38:33.091833 INFO::Fitting model to feature number 336, F351
## 2023-06-12 11:38:33.100275 INFO::Fitting model to feature number 337, F352
## 2023-06-12 11:38:33.110405 INFO::Fitting model to feature number 338, F353
## 2023-06-12 11:38:33.117556 INFO::Fitting model to feature number 339, F355
## 2023-06-12 11:38:33.126103 INFO::Fitting model to feature number 340, F356
## 2023-06-12 11:38:33.133469 INFO::Fitting model to feature number 341, F357
## 2023-06-12 11:38:33.142796 INFO::Fitting model to feature number 342, F358
## 2023-06-12 11:38:33.15299 INFO::Fitting model to feature number 343, F359
## 2023-06-12 11:38:33.159176 INFO::Fitting model to feature number 344, F360
## 2023-06-12 11:38:33.17184 INFO::Fitting model to feature number 345, F361
## 2023-06-12 11:38:33.178521 INFO::Fitting model to feature number 346, F362
## 2023-06-12 11:38:33.183734 INFO::Fitting model to feature number 347, F363
## 2023-06-12 11:38:33.194865 INFO::Fitting model to feature number 348, F364
## 2023-06-12 11:38:33.204043 INFO::Fitting model to feature number 349, F365
## 2023-06-12 11:38:33.213726 INFO::Fitting model to feature number 350, F366
## 2023-06-12 11:38:33.219776 INFO::Fitting model to feature number 351, F367
## 2023-06-12 11:38:33.228763 INFO::Fitting model to feature number 352, F368
## 2023-06-12 11:38:33.238077 INFO::Fitting model to feature number 353, F369
## 2023-06-12 11:38:33.24573 INFO::Fitting model to feature number 354, F370
## 2023-06-12 11:38:33.255825 INFO::Fitting model to feature number 355, F371
## 2023-06-12 11:38:33.264692 INFO::Fitting model to feature number 356, F372
## 2023-06-12 11:38:33.332787 INFO::Fitting model to feature number 357, F373
## 2023-06-12 11:38:33.342349 INFO::Fitting model to feature number 358, F374
## 2023-06-12 11:38:33.350739 INFO::Fitting model to feature number 359, F375
## 2023-06-12 11:38:33.362198 INFO::Fitting model to feature number 360, F376
## 2023-06-12 11:38:33.371683 INFO::Fitting model to feature number 361, F377
## 2023-06-12 11:38:33.37854 INFO::Fitting model to feature number 362, F378
## 2023-06-12 11:38:33.386917 INFO::Fitting model to feature number 363, F379
## 2023-06-12 11:38:33.396626 INFO::Fitting model to feature number 364, F380
## 2023-06-12 11:38:33.403871 INFO::Fitting model to feature number 365, F381
## 2023-06-12 11:38:33.41398 INFO::Fitting model to feature number 366, F382
## 2023-06-12 11:38:33.422221 INFO::Fitting model to feature number 367, F383
## 2023-06-12 11:38:33.429381 INFO::Fitting model to feature number 368, F384
## 2023-06-12 11:38:33.439289 INFO::Fitting model to feature number 369, F386
## 2023-06-12 11:38:33.446891 INFO::Fitting model to feature number 370, F387
## 2023-06-12 11:38:33.45685 INFO::Fitting model to feature number 371, F388
## 2023-06-12 11:38:33.465422 INFO::Fitting model to feature number 372, F389
## 2023-06-12 11:38:33.471871 INFO::Fitting model to feature number 373, F390
## 2023-06-12 11:38:33.481742 INFO::Fitting model to feature number 374, F391
## 2023-06-12 11:38:33.490255 INFO::Fitting model to feature number 375, F392
## 2023-06-12 11:38:33.496944 INFO::Fitting model to feature number 376, F393
## 2023-06-12 11:38:33.50947 INFO::Fitting model to feature number 377, F394
## 2023-06-12 11:38:33.516723 INFO::Fitting model to feature number 378, F395
## 2023-06-12 11:38:33.526526 INFO::Fitting model to feature number 379, F396
## 2023-06-12 11:38:33.535818 INFO::Fitting model to feature number 380, F397
## 2023-06-12 11:38:33.545894 INFO::Fitting model to feature number 381, F398
## 2023-06-12 11:38:33.55197 INFO::Fitting model to feature number 382, F399
## 2023-06-12 11:38:33.56206 INFO::Fitting model to feature number 383, F400
## 2023-06-12 11:38:33.571524 INFO::Fitting model to feature number 384, F401
## 2023-06-12 11:38:33.577173 INFO::Fitting model to feature number 385, F402
## 2023-06-12 11:38:33.588299 INFO::Fitting model to feature number 386, F403
## 2023-06-12 11:38:33.596728 INFO::Fitting model to feature number 387, F404
## 2023-06-12 11:38:33.607495 INFO::Fitting model to feature number 388, F406
## 2023-06-12 11:38:33.614699 INFO::Fitting model to feature number 389, F407
## 2023-06-12 11:38:33.624433 INFO::Fitting model to feature number 390, F408
## 2023-06-12 11:38:33.632923 INFO::Fitting model to feature number 391, F409
## 2023-06-12 11:38:33.639599 INFO::Fitting model to feature number 392, F410
## 2023-06-12 11:38:33.649516 INFO::Fitting model to feature number 393, F411
## 2023-06-12 11:38:33.657851 INFO::Fitting model to feature number 394, F412
## 2023-06-12 11:38:33.664594 INFO::Fitting model to feature number 395, F413
## 2023-06-12 11:38:33.674298 INFO::Fitting model to feature number 396, F414
## 2023-06-12 11:38:33.682514 INFO::Fitting model to feature number 397, F415
## 2023-06-12 11:38:33.692089 INFO::Fitting model to feature number 398, F416
## 2023-06-12 11:38:33.701702 INFO::Fitting model to feature number 399, F417
## 2023-06-12 11:38:33.708158 INFO::Fitting model to feature number 400, F418
## 2023-06-12 11:38:33.718118 INFO::Fitting model to feature number 401, F419
## 2023-06-12 11:38:33.724373 INFO::Fitting model to feature number 402, F420
## 2023-06-12 11:38:33.733239 INFO::Fitting model to feature number 403, F421
## 2023-06-12 11:38:33.742981 INFO::Fitting model to feature number 404, F422
## 2023-06-12 11:38:33.749279 INFO::Fitting model to feature number 405, F423
## 2023-06-12 11:38:33.757806 INFO::Fitting model to feature number 406, F425
## 2023-06-12 11:38:33.767555 INFO::Fitting model to feature number 407, F426
## 2023-06-12 11:38:33.774025 INFO::Fitting model to feature number 408, F428
## 2023-06-12 11:38:33.782859 INFO::Fitting model to feature number 409, F429
## 2023-06-12 11:38:33.795056 INFO::Fitting model to feature number 410, F430
## 2023-06-12 11:38:33.801754 INFO::Fitting model to feature number 411, F431
## 2023-06-12 11:38:33.810332 INFO::Fitting model to feature number 412, F432
## 2023-06-12 11:38:33.820445 INFO::Fitting model to feature number 413, F433
## 2023-06-12 11:38:33.827884 INFO::Fitting model to feature number 414, F434
## 2023-06-12 11:38:33.839889 INFO::Fitting model to feature number 415, F435
## 2023-06-12 11:38:33.846313 INFO::Fitting model to feature number 416, F436
## 2023-06-12 11:38:33.856068 INFO::Fitting model to feature number 417, F437
## 2023-06-12 11:38:33.862518 INFO::Fitting model to feature number 418, F438
## 2023-06-12 11:38:33.870994 INFO::Fitting model to feature number 419, F439
## 2023-06-12 11:38:33.881877 INFO::Fitting model to feature number 420, F440
## 2023-06-12 11:38:33.887664 INFO::Fitting model to feature number 421, F441
## 2023-06-12 11:38:33.896818 INFO::Fitting model to feature number 422, F442
## 2023-06-12 11:38:33.906907 INFO::Fitting model to feature number 423, F443
## 2023-06-12 11:38:33.913188 INFO::Fitting model to feature number 424, F444
## 2023-06-12 11:38:33.921977 INFO::Fitting model to feature number 425, F445
## 2023-06-12 11:38:33.931752 INFO::Fitting model to feature number 426, F446
## 2023-06-12 11:38:33.937969 INFO::Fitting model to feature number 427, F447
## 2023-06-12 11:38:33.950675 INFO::Fitting model to feature number 428, F448
## 2023-06-12 11:38:33.957357 INFO::Fitting model to feature number 429, F449
## 2023-06-12 11:38:33.966215 INFO::Fitting model to feature number 430, F450
## 2023-06-12 11:38:33.97621 INFO::Fitting model to feature number 431, F451
## 2023-06-12 11:38:33.982508 INFO::Fitting model to feature number 432, F452
## 2023-06-12 11:38:33.992428 INFO::Fitting model to feature number 433, F454
## 2023-06-12 11:38:33.999119 INFO::Fitting model to feature number 434, F455
## 2023-06-12 11:38:34.007804 INFO::Fitting model to feature number 435, F456
## 2023-06-12 11:38:34.017308 INFO::Fitting model to feature number 436, F457
## 2023-06-12 11:38:34.02677 INFO::Fitting model to feature number 437, F458
## 2023-06-12 11:38:34.036674 INFO::Fitting model to feature number 438, F459
## 2023-06-12 11:38:34.044461 INFO::Fitting model to feature number 439, F461
## 2023-06-12 11:38:34.051058 INFO::Fitting model to feature number 440, F462
## 2023-06-12 11:38:34.060408 INFO::Fitting model to feature number 441, F463
## 2023-06-12 11:38:34.06753 INFO::Fitting model to feature number 442, F464
## 2023-06-12 11:38:34.075956 INFO::Fitting model to feature number 443, F465
## 2023-06-12 11:38:34.085737 INFO::Fitting model to feature number 444, F466
## 2023-06-12 11:38:34.09277 INFO::Fitting model to feature number 445, F467
## 2023-06-12 11:38:34.101012 INFO::Fitting model to feature number 446, F468
## 2023-06-12 11:38:34.111529 INFO::Fitting model to feature number 447, F469
## 2023-06-12 11:38:34.117756 INFO::Fitting model to feature number 448, F470
## 2023-06-12 11:38:34.127129 INFO::Fitting model to feature number 449, F471
## 2023-06-12 11:38:34.137139 INFO::Fitting model to feature number 450, F474
## 2023-06-12 11:38:34.145712 INFO::Fitting model to feature number 451, F475
## 2023-06-12 11:38:34.155817 INFO::Fitting model to feature number 452, F476
## 2023-06-12 11:38:34.162473 INFO::Fitting model to feature number 453, F477
## 2023-06-12 11:38:34.172624 INFO::Fitting model to feature number 454, F478
## 2023-06-12 11:38:34.182061 INFO::Fitting model to feature number 455, F479
## 2023-06-12 11:38:34.191529 INFO::Fitting model to feature number 456, F480
## 2023-06-12 11:38:34.20158 INFO::Fitting model to feature number 457, F481
## 2023-06-12 11:38:34.207742 INFO::Fitting model to feature number 458, F482
## 2023-06-12 11:38:34.218189 INFO::Fitting model to feature number 459, F483
## 2023-06-12 11:38:34.226219 INFO::Fitting model to feature number 460, F484
## 2023-06-12 11:38:34.235746 INFO::Fitting model to feature number 461, F485
## 2023-06-12 11:38:34.242344 INFO::Fitting model to feature number 462, F486
## 2023-06-12 11:38:34.250045 INFO::Fitting model to feature number 463, F487
## 2023-06-12 11:38:34.257084 INFO::Fitting model to feature number 464, F488
## 2023-06-12 11:38:34.265432 INFO::Fitting model to feature number 465, F489
## 2023-06-12 11:38:34.275384 INFO::Fitting model to feature number 466, F490
## 2023-06-12 11:38:34.28443 INFO::Fitting model to feature number 467, F491
## 2023-06-12 11:38:34.294389 INFO::Fitting model to feature number 468, F492
## 2023-06-12 11:38:34.301239 INFO::Fitting model to feature number 469, F493
## 2023-06-12 11:38:34.311994 INFO::Fitting model to feature number 470, F494
## 2023-06-12 11:38:34.320299 INFO::Fitting model to feature number 471, F495
## 2023-06-12 11:38:34.326528 INFO::Fitting model to feature number 472, F496
## 2023-06-12 11:38:34.336442 INFO::Fitting model to feature number 473, F497
## 2023-06-12 11:38:34.34547 INFO::Fitting model to feature number 474, F498
## 2023-06-12 11:38:34.354862 INFO::Fitting model to feature number 475, F499
## 2023-06-12 11:38:34.362698 INFO::Fitting model to feature number 476, F500
## 2023-06-12 11:38:34.372788 INFO::Fitting model to feature number 477, F501
## 2023-06-12 11:38:34.381515 INFO::Fitting model to feature number 478, F502
## 2023-06-12 11:38:34.388097 INFO::Fitting model to feature number 479, F503
## 2023-06-12 11:38:34.396825 INFO::Fitting model to feature number 480, F504
## 2023-06-12 11:38:34.403166 INFO::Fitting model to feature number 481, F505
## 2023-06-12 11:38:34.416641 INFO::Fitting model to feature number 482, F506
## 2023-06-12 11:38:34.422482 INFO::Fitting model to feature number 483, F507
## 2023-06-12 11:38:34.428205 INFO::Fitting model to feature number 484, F508
## 2023-06-12 11:38:34.438629 INFO::Fitting model to feature number 485, F509
## 2023-06-12 11:38:34.448004 INFO::Fitting model to feature number 486, F510
## 2023-06-12 11:38:34.455212 INFO::Fitting model to feature number 487, F511
## 2023-06-12 11:38:34.46491 INFO::Fitting model to feature number 488, F512
## 2023-06-12 11:38:34.473147 INFO::Fitting model to feature number 489, F513
## 2023-06-12 11:38:34.483062 INFO::Fitting model to feature number 490, F514
## 2023-06-12 11:38:34.490132 INFO::Fitting model to feature number 491, F515
## 2023-06-12 11:38:34.498284 INFO::Fitting model to feature number 492, F516
## 2023-06-12 11:38:34.508672 INFO::Fitting model to feature number 493, F517
## 2023-06-12 11:38:34.515278 INFO::Fitting model to feature number 494, F518
## 2023-06-12 11:38:34.524803 INFO::Fitting model to feature number 495, F519
## 2023-06-12 11:38:34.533515 INFO::Fitting model to feature number 496, F520
## 2023-06-12 11:38:34.540168 INFO::Fitting model to feature number 497, F521
## 2023-06-12 11:38:34.549694 INFO::Fitting model to feature number 498, F522
## 2023-06-12 11:38:34.556633 INFO::Fitting model to feature number 499, F523
## 2023-06-12 11:38:34.566307 INFO::Fitting model to feature number 500, F524
## 2023-06-12 11:38:34.574914 INFO::Fitting model to feature number 501, F525
## 2023-06-12 11:38:34.581557 INFO::Fitting model to feature number 502, F526
## 2023-06-12 11:38:34.590932 INFO::Fitting model to feature number 503, F527
## 2023-06-12 11:38:34.599535 INFO::Fitting model to feature number 504, F528
## 2023-06-12 11:38:34.606302 INFO::Fitting model to feature number 505, F529
## 2023-06-12 11:38:34.615856 INFO::Fitting model to feature number 506, F530
## 2023-06-12 11:38:34.624209 INFO::Fitting model to feature number 507, F531
## 2023-06-12 11:38:34.633607 INFO::Fitting model to feature number 508, F532
## 2023-06-12 11:38:34.642903 INFO::Fitting model to feature number 509, F533
## 2023-06-12 11:38:34.649366 INFO::Fitting model to feature number 510, F534
## 2023-06-12 11:38:34.658196 INFO::Fitting model to feature number 511, F535
## 2023-06-12 11:38:34.668005 INFO::Fitting model to feature number 512, F536
## 2023-06-12 11:38:34.674725 INFO::Fitting model to feature number 513, F537
## 2023-06-12 11:38:34.686685 INFO::Fitting model to feature number 514, F539
## 2023-06-12 11:38:34.693363 INFO::Fitting model to feature number 515, F540
## 2023-06-12 11:38:34.701851 INFO::Fitting model to feature number 516, F541
## 2023-06-12 11:38:34.711547 INFO::Fitting model to feature number 517, F543
## 2023-06-12 11:38:34.721127 INFO::Fitting model to feature number 518, F544
## 2023-06-12 11:38:34.728098 INFO::Fitting model to feature number 519, F545
## 2023-06-12 11:38:34.736383 INFO::Fitting model to feature number 520, F546
## 2023-06-12 11:38:34.746348 INFO::Fitting model to feature number 521, F547
## 2023-06-12 11:38:34.753926 INFO::Fitting model to feature number 522, F548
## 2023-06-12 11:38:34.763576 INFO::Fitting model to feature number 523, F549
## 2023-06-12 11:38:34.770589 INFO::Fitting model to feature number 524, F550
## 2023-06-12 11:38:34.78016 INFO::Fitting model to feature number 525, F551
## 2023-06-12 11:38:34.790471 INFO::Fitting model to feature number 526, F552
## 2023-06-12 11:38:34.798448 INFO::Fitting model to feature number 527, F553
## 2023-06-12 11:38:34.809587 INFO::Fitting model to feature number 528, F554
## 2023-06-12 11:38:34.817086 INFO::Fitting model to feature number 529, F555
## 2023-06-12 11:38:34.82522 INFO::Fitting model to feature number 530, F556
## 2023-06-12 11:38:34.833073 INFO::Fitting model to feature number 531, F557
## 2023-06-12 11:38:34.842441 INFO::Fitting model to feature number 532, F558
## 2023-06-12 11:38:34.850499 INFO::Fitting model to feature number 533, F559
## 2023-06-12 11:38:34.860534 INFO::Fitting model to feature number 534, F560
## 2023-06-12 11:38:34.867689 INFO::Fitting model to feature number 535, F561
## 2023-06-12 11:38:34.877751 INFO::Fitting model to feature number 536, F562
## 2023-06-12 11:38:34.886835 INFO::Fitting model to feature number 537, F563
## 2023-06-12 11:38:34.89637 INFO::Fitting model to feature number 538, F564
## 2023-06-12 11:38:34.904905 INFO::Fitting model to feature number 539, F566
## 2023-06-12 11:38:34.913375 INFO::Fitting model to feature number 540, F567
## 2023-06-12 11:38:34.923105 INFO::Fitting model to feature number 541, F568
## 2023-06-12 11:38:34.931338 INFO::Fitting model to feature number 542, F569
## 2023-06-12 11:38:34.939105 INFO::Fitting model to feature number 543, F570
## 2023-06-12 11:38:34.948894 INFO::Fitting model to feature number 544, F571
## 2023-06-12 11:38:34.957495 INFO::Fitting model to feature number 545, F572
## 2023-06-12 11:38:34.964252 INFO::Fitting model to feature number 546, F573
## 2023-06-12 11:38:34.973775 INFO::Fitting model to feature number 547, F574
## 2023-06-12 11:38:34.9825 INFO::Fitting model to feature number 548, F575
## 2023-06-12 11:38:34.991216 INFO::Fitting model to feature number 549, F576
## 2023-06-12 11:38:35.001112 INFO::Fitting model to feature number 550, F577
## 2023-06-12 11:38:35.010237 INFO::Fitting model to feature number 551, F578
## 2023-06-12 11:38:35.017808 INFO::Fitting model to feature number 552, F579
## 2023-06-12 11:38:35.026557 INFO::Fitting model to feature number 553, F580
## 2023-06-12 11:38:35.033159 INFO::Fitting model to feature number 554, F581
## 2023-06-12 11:38:35.042683 INFO::Fitting model to feature number 555, F582
## 2023-06-12 11:38:35.051242 INFO::Fitting model to feature number 556, F583
## 2023-06-12 11:38:35.060239 INFO::Fitting model to feature number 557, F584
## 2023-06-12 11:38:35.066911 INFO::Fitting model to feature number 558, F585
## 2023-06-12 11:38:35.076596 INFO::Fitting model to feature number 559, F586
## 2023-06-12 11:38:35.084646 INFO::Fitting model to feature number 560, F587
## 2023-06-12 11:38:35.091209 INFO::Fitting model to feature number 561, F588
## 2023-06-12 11:38:35.101331 INFO::Fitting model to feature number 562, F589
## 2023-06-12 11:38:35.109942 INFO::Fitting model to feature number 563, F590
## 2023-06-12 11:38:35.117192 INFO::Fitting model to feature number 564, F591
## 2023-06-12 11:38:35.125337 INFO::Fitting model to feature number 565, F592
## 2023-06-12 11:38:35.132161 INFO::Fitting model to feature number 566, F593
## 2023-06-12 11:38:35.142074 INFO::Fitting model to feature number 567, F594
## 2023-06-12 11:38:35.151394 INFO::Fitting model to feature number 568, F595
## 2023-06-12 11:38:35.157503 INFO::Fitting model to feature number 569, F596
## 2023-06-12 11:38:35.169157 INFO::Fitting model to feature number 570, F597
## 2023-06-12 11:38:35.175971 INFO::Fitting model to feature number 571, F598
## 2023-06-12 11:38:35.184447 INFO::Fitting model to feature number 572, F599
## 2023-06-12 11:38:35.192332 INFO::Fitting model to feature number 573, F600
## 2023-06-12 11:38:35.200327 INFO::Fitting model to feature number 574, F601
## 2023-06-12 11:38:35.207362 INFO::Fitting model to feature number 575, F602
## 2023-06-12 11:38:35.215996 INFO::Fitting model to feature number 576, F603
## 2023-06-12 11:38:35.223453 INFO::Fitting model to feature number 577, F605
## 2023-06-12 11:38:35.231627 INFO::Fitting model to feature number 578, F606
## 2023-06-12 11:38:35.238779 INFO::Fitting model to feature number 579, F607
## 2023-06-12 11:38:35.249187 INFO::Fitting model to feature number 580, F608
## 2023-06-12 11:38:35.256308 INFO::Fitting model to feature number 581, F609
## 2023-06-12 11:38:35.262376 INFO::Fitting model to feature number 582, F610
## 2023-06-12 11:38:35.271982 INFO::Fitting model to feature number 583, F611
## 2023-06-12 11:38:35.278263 INFO::Fitting model to feature number 584, F612
## 2023-06-12 11:38:35.286462 INFO::Fitting model to feature number 585, F613
## 2023-06-12 11:38:35.294264 INFO::Fitting model to feature number 586, F614
## 2023-06-12 11:38:35.302089 INFO::Fitting model to feature number 587, F615
## 2023-06-12 11:38:35.309123 INFO::Fitting model to feature number 588, F616
## 2023-06-12 11:38:35.317122 INFO::Fitting model to feature number 589, F617
## 2023-06-12 11:38:35.323976 INFO::Fitting model to feature number 590, F618
## 2023-06-12 11:38:35.331667 INFO::Fitting model to feature number 591, F619
## 2023-06-12 11:38:35.340293 INFO::Fitting model to feature number 592, F620
## 2023-06-12 11:38:35.346537 INFO::Fitting model to feature number 593, F621
## 2023-06-12 11:38:35.3551 INFO::Fitting model to feature number 594, F622
## 2023-06-12 11:38:35.361912 INFO::Fitting model to feature number 595, F623
## 2023-06-12 11:38:35.368061 INFO::Fitting model to feature number 596, F624
## 2023-06-12 11:38:35.375219 INFO::Fitting model to feature number 597, F625
## 2023-06-12 11:38:35.383589 INFO::Fitting model to feature number 598, F626
## 2023-06-12 11:38:35.391356 INFO::Fitting model to feature number 599, F627
## 2023-06-12 11:38:35.39988 INFO::Fitting model to feature number 600, F628
## 2023-06-12 11:38:35.406259 INFO::Fitting model to feature number 601, F629
## 2023-06-12 11:38:35.414608 INFO::Fitting model to feature number 602, F630
## 2023-06-12 11:38:35.424655 INFO::Fitting model to feature number 603, F631
## 2023-06-12 11:38:35.43147 INFO::Fitting model to feature number 604, F632
## 2023-06-12 11:38:35.438421 INFO::Fitting model to feature number 605, F633
## 2023-06-12 11:38:35.446912 INFO::Fitting model to feature number 606, F634
## 2023-06-12 11:38:35.506073 INFO::Fitting model to feature number 607, F635
## 2023-06-12 11:38:35.513535 INFO::Fitting model to feature number 608, F636
## 2023-06-12 11:38:35.521951 INFO::Fitting model to feature number 609, F637
## 2023-06-12 11:38:35.529832 INFO::Fitting model to feature number 610, F638
## 2023-06-12 11:38:35.537317 INFO::Fitting model to feature number 611, F639
## 2023-06-12 11:38:35.54687 INFO::Fitting model to feature number 612, F640
## 2023-06-12 11:38:35.553424 INFO::Fitting model to feature number 613, F641
## 2023-06-12 11:38:35.561346 INFO::Fitting model to feature number 614, F642
## 2023-06-12 11:38:35.568801 INFO::Fitting model to feature number 615, F643
## 2023-06-12 11:38:35.575395 INFO::Fitting model to feature number 616, F644
## 2023-06-12 11:38:35.583219 INFO::Fitting model to feature number 617, F645
## 2023-06-12 11:38:35.590502 INFO::Fitting model to feature number 618, F646
## 2023-06-12 11:38:35.599161 INFO::Fitting model to feature number 619, F647
## 2023-06-12 11:38:35.6064 INFO::Fitting model to feature number 620, F648
## 2023-06-12 11:38:35.611968 INFO::Fitting model to feature number 621, F649
## 2023-06-12 11:38:35.620946 INFO::Fitting model to feature number 622, F650
## 2023-06-12 11:38:35.629146 INFO::Fitting model to feature number 623, F651
## 2023-06-12 11:38:35.634894 INFO::Fitting model to feature number 624, F652
## 2023-06-12 11:38:35.641599 INFO::Fitting model to feature number 625, F653
## 2023-06-12 11:38:35.651848 INFO::Fitting model to feature number 626, F654
## 2023-06-12 11:38:35.658153 INFO::Fitting model to feature number 627, F655
## 2023-06-12 11:38:35.664664 INFO::Fitting model to feature number 628, F656
## 2023-06-12 11:38:35.674018 INFO::Fitting model to feature number 629, F657
## 2023-06-12 11:38:35.682704 INFO::Fitting model to feature number 630, F658
## 2023-06-12 11:38:35.689373 INFO::Fitting model to feature number 631, F659
## 2023-06-12 11:38:35.69825 INFO::Fitting model to feature number 632, F660
## 2023-06-12 11:38:35.705513 INFO::Fitting model to feature number 633, F661
## 2023-06-12 11:38:35.713592 INFO::Fitting model to feature number 634, F662
## 2023-06-12 11:38:35.721543 INFO::Fitting model to feature number 635, F663
## 2023-06-12 11:38:35.730145 INFO::Fitting model to feature number 636, F664
## 2023-06-12 11:38:35.738672 INFO::Fitting model to feature number 637, F665
## 2023-06-12 11:38:35.750596 INFO::Fitting model to feature number 638, F666
## 2023-06-12 11:38:35.759574 INFO::Fitting model to feature number 639, F667
## 2023-06-12 11:38:35.768629 INFO::Fitting model to feature number 640, F668
## 2023-06-12 11:38:35.776509 INFO::Fitting model to feature number 641, F669
## 2023-06-12 11:38:35.783841 INFO::Fitting model to feature number 642, F670
## 2023-06-12 11:38:35.793387 INFO::Fitting model to feature number 643, F671
## 2023-06-12 11:38:35.800331 INFO::Fitting model to feature number 644, F672
## 2023-06-12 11:38:35.807797 INFO::Fitting model to feature number 645, F673
## 2023-06-12 11:38:35.815289 INFO::Fitting model to feature number 646, F674
## 2023-06-12 11:38:35.8233 INFO::Fitting model to feature number 647, F675
## 2023-06-12 11:38:35.831243 INFO::Fitting model to feature number 648, F676
## 2023-06-12 11:38:35.839583 INFO::Fitting model to feature number 649, F677
## 2023-06-12 11:38:35.846389 INFO::Fitting model to feature number 650, F678
## 2023-06-12 11:38:35.857171 INFO::Fitting model to feature number 651, F679
## 2023-06-12 11:38:35.863827 INFO::Fitting model to feature number 652, F680
## 2023-06-12 11:38:35.873991 INFO::Fitting model to feature number 653, F681
## 2023-06-12 11:38:35.879656 INFO::Fitting model to feature number 654, F682
## 2023-06-12 11:38:35.886712 INFO::Fitting model to feature number 655, F683
## 2023-06-12 11:38:35.894805 INFO::Fitting model to feature number 656, F684
## 2023-06-12 11:38:35.902947 INFO::Fitting model to feature number 657, F685
## 2023-06-12 11:38:35.909531 INFO::Fitting model to feature number 658, F686
## 2023-06-12 11:38:35.916554 INFO::Fitting model to feature number 659, F687
## 2023-06-12 11:38:35.925942 INFO::Fitting model to feature number 660, F688
## 2023-06-12 11:38:35.931834 INFO::Fitting model to feature number 661, F689
## 2023-06-12 11:38:35.940796 INFO::Fitting model to feature number 662, F690
## 2023-06-12 11:38:35.948469 INFO::Fitting model to feature number 663, F691
## 2023-06-12 11:38:35.956297 INFO::Fitting model to feature number 664, F692
## 2023-06-12 11:38:35.964689 INFO::Fitting model to feature number 665, F693
## 2023-06-12 11:38:35.971658 INFO::Fitting model to feature number 666, F694
## 2023-06-12 11:38:35.982604 INFO::Fitting model to feature number 667, F695
## 2023-06-12 11:38:35.988202 INFO::Fitting model to feature number 668, F696
## 2023-06-12 11:38:35.994849 INFO::Fitting model to feature number 669, F697
## 2023-06-12 11:38:36.005022 INFO::Fitting model to feature number 670, F698
## 2023-06-12 11:38:36.012065 INFO::Fitting model to feature number 671, F699
## 2023-06-12 11:38:36.021852 INFO::Fitting model to feature number 672, F700
## 2023-06-12 11:38:36.028491 INFO::Fitting model to feature number 673, F701
## 2023-06-12 11:38:36.036289 INFO::Fitting model to feature number 674, F702
## 2023-06-12 11:38:36.045181 INFO::Fitting model to feature number 675, F704
## 2023-06-12 11:38:36.052539 INFO::Fitting model to feature number 676, F705
## 2023-06-12 11:38:36.061619 INFO::Fitting model to feature number 677, F706
## 2023-06-12 11:38:36.069385 INFO::Fitting model to feature number 678, F707
## 2023-06-12 11:38:36.075845 INFO::Fitting model to feature number 679, F708
## 2023-06-12 11:38:36.084326 INFO::Fitting model to feature number 680, F709
## 2023-06-12 11:38:36.091693 INFO::Fitting model to feature number 681, F710
## 2023-06-12 11:38:36.100454 INFO::Fitting model to feature number 682, F711
## 2023-06-12 11:38:36.107878 INFO::Fitting model to feature number 683, F712
## 2023-06-12 11:38:36.11645 INFO::Fitting model to feature number 684, F713
## 2023-06-12 11:38:36.123763 INFO::Fitting model to feature number 685, F714
## 2023-06-12 11:38:36.130785 INFO::Fitting model to feature number 686, F715
## 2023-06-12 11:38:36.139128 INFO::Fitting model to feature number 687, F716
## 2023-06-12 11:38:36.14584 INFO::Fitting model to feature number 688, F717
## 2023-06-12 11:38:36.152861 INFO::Fitting model to feature number 689, F718
## 2023-06-12 11:38:36.161651 INFO::Fitting model to feature number 690, F719
## 2023-06-12 11:38:36.167887 INFO::Fitting model to feature number 691, F720
## 2023-06-12 11:38:36.180722 INFO::Fitting model to feature number 692, F721
## 2023-06-12 11:38:36.187473 INFO::Fitting model to feature number 693, F722
## 2023-06-12 11:38:36.194759 INFO::Fitting model to feature number 694, F723
## 2023-06-12 11:38:36.204668 INFO::Fitting model to feature number 695, F724
## 2023-06-12 11:38:36.211035 INFO::Fitting model to feature number 696, F725
## 2023-06-12 11:38:36.220746 INFO::Fitting model to feature number 697, F726
## 2023-06-12 11:38:36.22679 INFO::Fitting model to feature number 698, F727
## 2023-06-12 11:38:36.233478 INFO::Fitting model to feature number 699, F728
## 2023-06-12 11:38:36.243435 INFO::Fitting model to feature number 700, F729
## 2023-06-12 11:38:36.250533 INFO::Fitting model to feature number 701, F730
## 2023-06-12 11:38:36.260544 INFO::Fitting model to feature number 702, F731
## 2023-06-12 11:38:36.268112 INFO::Fitting model to feature number 703, F732
## 2023-06-12 11:38:36.273284 INFO::Fitting model to feature number 704, F733
## 2023-06-12 11:38:36.28305 INFO::Fitting model to feature number 705, F734
## 2023-06-12 11:38:36.292062 INFO::Fitting model to feature number 706, F735
## 2023-06-12 11:38:36.30128 INFO::Fitting model to feature number 707, F736
## 2023-06-12 11:38:36.311288 INFO::Fitting model to feature number 708, F737
## 2023-06-12 11:38:36.317955 INFO::Fitting model to feature number 709, F739
## 2023-06-12 11:38:36.327917 INFO::Fitting model to feature number 710, F740
## 2023-06-12 11:38:36.336892 INFO::Fitting model to feature number 711, F741
## 2023-06-12 11:38:36.343684 INFO::Fitting model to feature number 712, F742
## 2023-06-12 11:38:36.353624 INFO::Fitting model to feature number 713, F743
## 2023-06-12 11:38:36.360327 INFO::Fitting model to feature number 714, F744
## 2023-06-12 11:38:36.368618 INFO::Fitting model to feature number 715, F745
## 2023-06-12 11:38:36.378609 INFO::Fitting model to feature number 716, F746
## 2023-06-12 11:38:36.385859 INFO::Fitting model to feature number 717, F747
## 2023-06-12 11:38:36.393566 INFO::Fitting model to feature number 718, F748
## 2023-06-12 11:38:36.403195 INFO::Fitting model to feature number 719, F749
## 2023-06-12 11:38:36.411851 INFO::Fitting model to feature number 720, F750
## 2023-06-12 11:38:36.41792 INFO::Fitting model to feature number 721, F751
## 2023-06-12 11:38:36.429606 INFO::Fitting model to feature number 722, F752
## 2023-06-12 11:38:36.436471 INFO::Fitting model to feature number 723, F753
## 2023-06-12 11:38:36.446342 INFO::Fitting model to feature number 724, F754
## 2023-06-12 11:38:36.455162 INFO::Fitting model to feature number 725, F755
## 2023-06-12 11:38:36.461329 INFO::Fitting model to feature number 726, F756
## 2023-06-12 11:38:36.471195 INFO::Fitting model to feature number 727, F757
## 2023-06-12 11:38:36.480319 INFO::Fitting model to feature number 728, F758
## 2023-06-12 11:38:36.486395 INFO::Fitting model to feature number 729, F759
## 2023-06-12 11:38:36.496524 INFO::Fitting model to feature number 730, F760
## 2023-06-12 11:38:36.505086 INFO::Fitting model to feature number 731, F761
## 2023-06-12 11:38:36.515068 INFO::Fitting model to feature number 732, F762
## 2023-06-12 11:38:36.523292 INFO::Fitting model to feature number 733, F763
## 2023-06-12 11:38:36.530093 INFO::Fitting model to feature number 734, F764
## 2023-06-12 11:38:36.540186 INFO::Fitting model to feature number 735, F765
## 2023-06-12 11:38:36.548993 INFO::Fitting model to feature number 736, F766
## 2023-06-12 11:38:36.558949 INFO::Fitting model to feature number 737, F767
## 2023-06-12 11:38:36.565953 INFO::Fitting model to feature number 738, F768
## 2023-06-12 11:38:36.575833 INFO::Fitting model to feature number 739, F769
## 2023-06-12 11:38:36.584768 INFO::Fitting model to feature number 740, F770
## 2023-06-12 11:38:36.59108 INFO::Fitting model to feature number 741, F771
## 2023-06-12 11:38:36.601192 INFO::Fitting model to feature number 742, F772
## 2023-06-12 11:38:36.609664 INFO::Fitting model to feature number 743, F773
## 2023-06-12 11:38:36.621104 INFO::Fitting model to feature number 744, F774
## 2023-06-12 11:38:36.629132 INFO::Fitting model to feature number 745, F775
## 2023-06-12 11:38:36.637622 INFO::Fitting model to feature number 746, F776
## 2023-06-12 11:38:36.651759 INFO::Fitting model to feature number 747, F777
## 2023-06-12 11:38:36.657259 INFO::Fitting model to feature number 748, F778
## 2023-06-12 11:38:36.667463 INFO::Fitting model to feature number 749, F779
## 2023-06-12 11:38:36.676842 INFO::Fitting model to feature number 750, F780
## 2023-06-12 11:38:36.682731 INFO::Fitting model to feature number 751, F781
## 2023-06-12 11:38:36.69464 INFO::Fitting model to feature number 752, F782
## 2023-06-12 11:38:36.702114 INFO::Fitting model to feature number 753, F783
## 2023-06-12 11:38:36.713424 INFO::Fitting model to feature number 754, F784
## 2023-06-12 11:38:36.720328 INFO::Fitting model to feature number 755, F785
## 2023-06-12 11:38:36.730349 INFO::Fitting model to feature number 756, F786
## 2023-06-12 11:38:36.738437 INFO::Fitting model to feature number 757, F787
## 2023-06-12 11:38:36.746705 INFO::Fitting model to feature number 758, F788
## 2023-06-12 11:38:36.757369 INFO::Fitting model to feature number 759, F789
## 2023-06-12 11:38:36.766445 INFO::Fitting model to feature number 760, F790
## 2023-06-12 11:38:36.775948 INFO::Fitting model to feature number 761, F791
## 2023-06-12 11:38:36.785151 INFO::Fitting model to feature number 762, F792
## 2023-06-12 11:38:36.79106 INFO::Fitting model to feature number 763, F793
## 2023-06-12 11:38:36.800406 INFO::Fitting model to feature number 764, F794
## 2023-06-12 11:38:36.810269 INFO::Fitting model to feature number 765, F795
## 2023-06-12 11:38:36.820082 INFO::Fitting model to feature number 766, F796
## 2023-06-12 11:38:36.829584 INFO::Fitting model to feature number 767, F797
## 2023-06-12 11:38:36.834911 INFO::Fitting model to feature number 768, F798
## 2023-06-12 11:38:36.844786 INFO::Fitting model to feature number 769, F799
## 2023-06-12 11:38:36.854797 INFO::Fitting model to feature number 770, F800
## 2023-06-12 11:38:36.861364 INFO::Fitting model to feature number 771, F801
## 2023-06-12 11:38:36.87102 INFO::Fitting model to feature number 772, F802
## 2023-06-12 11:38:36.879822 INFO::Fitting model to feature number 773, F803
## 2023-06-12 11:38:36.886098 INFO::Fitting model to feature number 774, F804
## 2023-06-12 11:38:36.897611 INFO::Fitting model to feature number 775, F805
## 2023-06-12 11:38:36.905189 INFO::Fitting model to feature number 776, F806
## 2023-06-12 11:38:36.915455 INFO::Fitting model to feature number 777, F808
## 2023-06-12 11:38:36.922528 INFO::Fitting model to feature number 778, F809
## 2023-06-12 11:38:36.930491 INFO::Fitting model to feature number 779, F810
## 2023-06-12 11:38:36.940086 INFO::Fitting model to feature number 780, F811
## 2023-06-12 11:38:36.947878 INFO::Fitting model to feature number 781, F812
## 2023-06-12 11:38:36.955043 INFO::Fitting model to feature number 782, F813
## 2023-06-12 11:38:36.965591 INFO::Fitting model to feature number 783, F814
## 2023-06-12 11:38:36.973064 INFO::Fitting model to feature number 784, F815
## 2023-06-12 11:38:36.983348 INFO::Fitting model to feature number 785, F816
## 2023-06-12 11:38:36.990904 INFO::Fitting model to feature number 786, F817
## 2023-06-12 11:38:37.000907 INFO::Fitting model to feature number 787, F818
## 2023-06-12 11:38:37.008575 INFO::Fitting model to feature number 788, F819
## 2023-06-12 11:38:37.016209 INFO::Fitting model to feature number 789, F820
## 2023-06-12 11:38:37.031492 INFO::Fitting model to feature number 790, F821
## 2023-06-12 11:38:37.038246 INFO::Fitting model to feature number 791, F822
## 2023-06-12 11:38:37.047096 INFO::Fitting model to feature number 792, F823
## 2023-06-12 11:38:37.057081 INFO::Fitting model to feature number 793, F824
## 2023-06-12 11:38:37.062942 INFO::Fitting model to feature number 794, F825
## 2023-06-12 11:38:37.072619 INFO::Fitting model to feature number 795, F826
## 2023-06-12 11:38:37.082114 INFO::Fitting model to feature number 796, F827
## 2023-06-12 11:38:37.088368 INFO::Fitting model to feature number 797, F828
## 2023-06-12 11:38:37.098225 INFO::Fitting model to feature number 798, F829
## 2023-06-12 11:38:37.107348 INFO::Fitting model to feature number 799, F830
## 2023-06-12 11:38:37.117618 INFO::Fitting model to feature number 800, F831
## 2023-06-12 11:38:37.123217 INFO::Fitting model to feature number 801, F832
## 2023-06-12 11:38:37.131643 INFO::Fitting model to feature number 802, F833
## 2023-06-12 11:38:37.138989 INFO::Fitting model to feature number 803, F834
## 2023-06-12 11:38:37.148435 INFO::Fitting model to feature number 804, F835
## 2023-06-12 11:38:37.158674 INFO::Fitting model to feature number 805, F836
## 2023-06-12 11:38:37.168513 INFO::Fitting model to feature number 806, F837
## 2023-06-12 11:38:37.178354 INFO::Fitting model to feature number 807, F838
## 2023-06-12 11:38:37.183949 INFO::Fitting model to feature number 808, F839
## 2023-06-12 11:38:37.193196 INFO::Fitting model to feature number 809, F840
## 2023-06-12 11:38:37.202513 INFO::Fitting model to feature number 810, F841
## 2023-06-12 11:38:37.212306 INFO::Fitting model to feature number 811, F842
## 2023-06-12 11:38:37.217953 INFO::Fitting model to feature number 812, F843
## 2023-06-12 11:38:37.228589 INFO::Fitting model to feature number 813, F844
## 2023-06-12 11:38:37.237833 INFO::Fitting model to feature number 814, F845
## 2023-06-12 11:38:37.248365 INFO::Fitting model to feature number 815, F846
## 2023-06-12 11:38:37.254816 INFO::Fitting model to feature number 816, F847
## 2023-06-12 11:38:37.264632 INFO::Fitting model to feature number 817, F848
## 2023-06-12 11:38:37.274943 INFO::Fitting model to feature number 818, F849
## 2023-06-12 11:38:37.285429 INFO::Fitting model to feature number 819, F850
## 2023-06-12 11:38:37.291331 INFO::Fitting model to feature number 820, F851
## 2023-06-12 11:38:37.301446 INFO::Fitting model to feature number 821, F852
## 2023-06-12 11:38:37.310707 INFO::Fitting model to feature number 822, F853
## 2023-06-12 11:38:37.320639 INFO::Fitting model to feature number 823, F854
## 2023-06-12 11:38:37.327285 INFO::Fitting model to feature number 824, F855
## 2023-06-12 11:38:37.337054 INFO::Fitting model to feature number 825, F856
## 2023-06-12 11:38:37.346791 INFO::Fitting model to feature number 826, F857
## 2023-06-12 11:38:37.352789 INFO::Fitting model to feature number 827, F858
## 2023-06-12 11:38:37.363263 INFO::Fitting model to feature number 828, F859
## 2023-06-12 11:38:37.372106 INFO::Fitting model to feature number 829, F860
## 2023-06-12 11:38:37.378457 INFO::Fitting model to feature number 830, F861
## 2023-06-12 11:38:37.388486 INFO::Fitting model to feature number 831, F862
## 2023-06-12 11:38:37.397311 INFO::Fitting model to feature number 832, F863
## 2023-06-12 11:38:37.407176 INFO::Fitting model to feature number 833, F864
## 2023-06-12 11:38:37.414133 INFO::Fitting model to feature number 834, F865
## 2023-06-12 11:38:37.422541 INFO::Fitting model to feature number 835, F866
## 2023-06-12 11:38:37.429363 INFO::Fitting model to feature number 836, F867
## 2023-06-12 11:38:37.437782 INFO::Fitting model to feature number 837, F868
## 2023-06-12 11:38:37.444901 INFO::Fitting model to feature number 838, F869
## 2023-06-12 11:38:37.45474 INFO::Fitting model to feature number 839, F870
## 2023-06-12 11:38:37.462829 INFO::Fitting model to feature number 840, F871
## 2023-06-12 11:38:37.469957 INFO::Fitting model to feature number 841, F872
## 2023-06-12 11:38:37.481709 INFO::Fitting model to feature number 842, F873
## 2023-06-12 11:38:37.487534 INFO::Fitting model to feature number 843, F874
## 2023-06-12 11:38:37.497306 INFO::Fitting model to feature number 844, F875
## 2023-06-12 11:38:37.506154 INFO::Fitting model to feature number 845, F876
## 2023-06-12 11:38:37.511991 INFO::Fitting model to feature number 846, F877
## 2023-06-12 11:38:37.521595 INFO::Fitting model to feature number 847, F878
## 2023-06-12 11:38:37.529333 INFO::Fitting model to feature number 848, F879
## 2023-06-12 11:38:37.535651 INFO::Fitting model to feature number 849, F880
## 2023-06-12 11:38:37.601928 INFO::Fitting model to feature number 850, F881
## 2023-06-12 11:38:37.608226 INFO::Fitting model to feature number 851, F882
## 2023-06-12 11:38:37.617174 INFO::Fitting model to feature number 852, F883
## 2023-06-12 11:38:37.62668 INFO::Fitting model to feature number 853, F884
## 2023-06-12 11:38:37.632313 INFO::Fitting model to feature number 854, F885
## 2023-06-12 11:38:37.641074 INFO::Fitting model to feature number 855, F886
## 2023-06-12 11:38:37.65039 INFO::Fitting model to feature number 856, F887
## 2023-06-12 11:38:37.657168 INFO::Fitting model to feature number 857, F888
## 2023-06-12 11:38:37.664981 INFO::Fitting model to feature number 858, F889
## 2023-06-12 11:38:37.674416 INFO::Fitting model to feature number 859, F890
## 2023-06-12 11:38:37.681537 INFO::Fitting model to feature number 860, F891
## 2023-06-12 11:38:37.689781 INFO::Fitting model to feature number 861, F892
## 2023-06-12 11:38:37.699587 INFO::Fitting model to feature number 862, F893
## 2023-06-12 11:38:37.706611 INFO::Fitting model to feature number 863, F894
## 2023-06-12 11:38:37.714623 INFO::Fitting model to feature number 864, F895
## 2023-06-12 11:38:37.724545 INFO::Fitting model to feature number 865, F896
## 2023-06-12 11:38:37.730179 INFO::Fitting model to feature number 866, F897
## 2023-06-12 11:38:37.739478 INFO::Fitting model to feature number 867, F898
## 2023-06-12 11:38:37.746738 INFO::Fitting model to feature number 868, F899
## 2023-06-12 11:38:37.755634 INFO::Fitting model to feature number 869, F900
## 2023-06-12 11:38:38.05169 INFO::Counting total values for each feature
## 2023-06-12 11:38:38.264519 INFO::Writing filtered data to file Macarron_output/maaslin2_results/features/filtered_data.tsv
## 2023-06-12 11:38:38.470077 INFO::Writing filtered, normalized data to file Macarron_output/maaslin2_results/features/filtered_data_norm.tsv
## 2023-06-12 11:38:38.664865 INFO::Writing filtered, normalized, transformed data to file Macarron_output/maaslin2_results/features/filtered_data_norm_transformed.tsv
## 2023-06-12 11:38:38.862678 INFO::Writing residuals to file Macarron_output/maaslin2_results/fits/residuals.rds
## 2023-06-12 11:38:38.951793 INFO::Writing fitted values to file Macarron_output/maaslin2_results/fits/fitted.rds
## 2023-06-12 11:38:39.02913 INFO::Writing all results to file (ordered by increasing q-values): Macarron_output/maaslin2_results/all_results.tsv
## 2023-06-12 11:38:39.07006 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-12 11:38:39.092903 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-12 11:38:39.77619 INFO::Writing all prioritized metabolites to file: Macarron_output/prioritized_metabolites_all.csv
## 2023-06-12 11:38:39.79879 INFO::Writing characterizable prioritized metabolites to file: Macarron_output/prioritized_metabolites_characterizable.csv
## 2023-06-12 11:38:39.853981 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 r84266)
## Platform: aarch64-apple-darwin20 (64-bit)
## Running under: macOS Monterey 12.6.1
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRblas.0.dylib 
## LAPACK: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0
## 
## locale:
## [1] C/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## time zone: America/New_York
## tzcode source: internal
## 
## attached base packages:
## [1] stats4    stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] Macarron_1.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.0       matrixStats_0.63.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.0            
##   [7] magrittr_2.0.3          compiler_4.3.0          RSQLite_2.3.1          
##  [10] png_0.1-8               vctrs_0.6.1             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.21          preprocessCore_1.62.1   bit_4.0.5              
##  [22] xfun_0.38               zlibbioc_1.46.0         cachem_1.0.7           
##  [25] jsonlite_1.8.4          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.33           iterators_1.0.14       
##  [43] knitr_1.42              WGCNA_1.72-1            base64enc_0.1-3        
##  [46] Matrix_1.5-4            splines_4.3.0           nnet_7.3-18            
##  [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.20           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.1.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.0-1             tools_4.3.0             robustbase_0.95-1      
##  [79] data.table_1.14.8       mvtnorm_1.1-3           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.1             DEoptimR_1.0-12         gtable_0.3.3           
##  [97] hash_2.2.6.2            logging_0.10-108        dynamicTreeCut_1.63-1  
## [100] sass_0.4.5              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.5              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.