1 Abstract

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

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

2 Installation

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

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

3 Running Macarron

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

3.1 Input CSV files

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

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

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

3.2 Output Files

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

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

3.3 Run a demo in R

3.3.1 Using CSV files as inputs

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

library(Macarron)
## Loading required package: SummarizedExperiment
## Loading required package: MatrixGenerics
## Loading required package: matrixStats
## 
## Attaching package: 'MatrixGenerics'
## The following objects are masked from 'package:matrixStats':
## 
##     colAlls, colAnyNAs, colAnys, colAvgsPerRowSet, colCollapse,
##     colCounts, colCummaxs, colCummins, colCumprods, colCumsums,
##     colDiffs, colIQRDiffs, colIQRs, colLogSumExps, colMadDiffs,
##     colMads, colMaxs, colMeans2, colMedians, colMins, colOrderStats,
##     colProds, colQuantiles, colRanges, colRanks, colSdDiffs, colSds,
##     colSums2, colTabulates, colVarDiffs, colVars, colWeightedMads,
##     colWeightedMeans, colWeightedMedians, colWeightedSds,
##     colWeightedVars, rowAlls, rowAnyNAs, rowAnys, rowAvgsPerColSet,
##     rowCollapse, rowCounts, rowCummaxs, rowCummins, rowCumprods,
##     rowCumsums, rowDiffs, rowIQRDiffs, rowIQRs, rowLogSumExps,
##     rowMadDiffs, rowMads, rowMaxs, rowMeans2, rowMedians, rowMins,
##     rowOrderStats, rowProds, rowQuantiles, rowRanges, rowRanks,
##     rowSdDiffs, rowSds, rowSums2, rowTabulates, rowVarDiffs, rowVars,
##     rowWeightedMads, rowWeightedMeans, rowWeightedMedians,
##     rowWeightedSds, rowWeightedVars
## Loading required package: GenomicRanges
## Loading required package: stats4
## Loading required package: BiocGenerics
## 
## Attaching package: 'BiocGenerics'
## The following objects are masked from 'package:stats':
## 
##     IQR, mad, sd, var, xtabs
## The following objects are masked from 'package:base':
## 
##     Filter, Find, Map, Position, Reduce, anyDuplicated, aperm, append,
##     as.data.frame, basename, cbind, colnames, dirname, do.call,
##     duplicated, eval, evalq, get, grep, grepl, intersect, is.unsorted,
##     lapply, mapply, match, mget, order, paste, pmax, pmax.int, pmin,
##     pmin.int, rank, rbind, rownames, sapply, setdiff, sort, table,
##     tapply, union, unique, unsplit, which.max, which.min
## Loading required package: S4Vectors
## 
## Attaching package: 'S4Vectors'
## The following object is masked from 'package:utils':
## 
##     findMatches
## The following objects are masked from 'package:base':
## 
##     I, expand.grid, unname
## Loading required package: IRanges
## Loading required package: GenomeInfoDb
## Loading required package: Biobase
## Welcome to Bioconductor
## 
##     Vignettes contain introductory material; view with
##     'browseVignettes()'. To cite Bioconductor, see
##     'citation("Biobase")', and for packages 'citation("pkgname")'.
## 
## Attaching package: 'Biobase'
## The following object is masked from 'package:MatrixGenerics':
## 
##     rowMedians
## The following objects are masked from 'package:matrixStats':
## 
##     anyMissing, rowMedians
prism_abundances <- system.file(
    'extdata','demo_abundances.csv', package="Macarron")
prism_annotations <-system.file(
    'extdata','demo_annotations.csv', package="Macarron")
prism_metadata <-system.file(
    'extdata','demo_metadata.csv', package="Macarron")
mets_taxonomy <-system.file(
    'extdata','demo_taxonomy.csv', package="Macarron")
prism_prioritized <- Macarron::Macarron(input_abundances = prism_abundances,
                                        input_annotations = prism_annotations,
                                        input_metadata = prism_metadata,
                                        input_taxonomy = mets_taxonomy)
## 2023-10-24 17:44:59.391311 INFO::Creating output folder.
## 2023-10-24 17:44:59.402807 INFO::Writing function arguments to log file
## Samples with both abundances and metadata: 102
## 2023-10-24 17:44:59.459099 INFO::Summarized Experiment created.
## 2023-10-24 17:44:59.46056 INFO::Metadata chosen for prevalence filtering: diagnosis
## 869 features pass chosen minimum prevalence threshold of 0.7.
## Calculating pairwise correlations in phenotype: IBD
## 
## Calculating pairwise correlations in phenotype: Control
## Distance matrix with 869 features created.
## 2023-10-24 17:45:04.464996 INFO::Distance matrix with 869 metabolic features created.
## Initiating module detection
## 2023-10-24 17:45:04.466251 INFO::Minimum module size used for this dataset: 10
## Tree constructed
## Evaluating measures of success
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
## 2023-10-24 17:45:05.959329 INFO::Total number of modules detected: 30
## Initiating AVA calculations
## Finding anchors
## Calculating AVA
## Initiating q-value calculations
## [1] "Creating output folder"
## [1] "Creating output feature tables folder"
## [1] "Creating output fits folder"
## [1] "Creating output figures folder"
## 2023-10-24 17:45:08.267078 INFO::Writing function arguments to log file
## 2023-10-24 17:45:08.272455 INFO::Verifying options selected are valid
## 2023-10-24 17:45:08.315463 INFO::Determining format of input files
## 2023-10-24 17:45:08.316462 INFO::Input format is data samples as columns and metadata samples as rows
## 2023-10-24 17:45:08.351362 INFO::Formula for fixed effects: expr ~  diagnosis + age + antibiotics
## 2023-10-24 17:45:08.353019 INFO::Filter data based on min abundance and min prevalence
## 2023-10-24 17:45:08.353698 INFO::Total samples in data: 102
## 2023-10-24 17:45:08.354305 INFO::Min samples required with min abundance for a feature not to be filtered: 0.000000
## 2023-10-24 17:45:08.366103 INFO::Total filtered features: 0
## 2023-10-24 17:45:08.366911 INFO::Filtered feature names from abundance and prevalence filtering:
## 2023-10-24 17:45:08.385357 INFO::Total filtered features with variance filtering: 0
## 2023-10-24 17:45:08.386287 INFO::Filtered feature names from variance filtering:
## 2023-10-24 17:45:08.386922 INFO::Running selected normalization method: NONE
## 2023-10-24 17:45:08.387601 INFO::Applying z-score to standardize continuous metadata
## 2023-10-24 17:45:08.415908 INFO::Running selected transform method: NONE
## 2023-10-24 17:45:08.416883 INFO::Running selected analysis method: LM
## 2023-10-24 17:45:08.423967 INFO::Fitting model to feature number 1, F1
## 2023-10-24 17:45:08.434543 INFO::Fitting model to feature number 2, F2
## 2023-10-24 17:45:08.43821 INFO::Fitting model to feature number 3, F3
## 2023-10-24 17:45:08.441746 INFO::Fitting model to feature number 4, F4
## 2023-10-24 17:45:08.445172 INFO::Fitting model to feature number 5, F5
## 2023-10-24 17:45:08.448584 INFO::Fitting model to feature number 6, F6
## 2023-10-24 17:45:08.451928 INFO::Fitting model to feature number 7, F7
## 2023-10-24 17:45:08.455237 INFO::Fitting model to feature number 8, F8
## 2023-10-24 17:45:08.45852 INFO::Fitting model to feature number 9, F9
## 2023-10-24 17:45:08.461851 INFO::Fitting model to feature number 10, F10
## 2023-10-24 17:45:08.465124 INFO::Fitting model to feature number 11, F11
## 2023-10-24 17:45:08.468377 INFO::Fitting model to feature number 12, F12
## 2023-10-24 17:45:08.471684 INFO::Fitting model to feature number 13, F13
## 2023-10-24 17:45:08.474937 INFO::Fitting model to feature number 14, F14
## 2023-10-24 17:45:08.478231 INFO::Fitting model to feature number 15, F15
## 2023-10-24 17:45:08.481494 INFO::Fitting model to feature number 16, F16
## 2023-10-24 17:45:08.484782 INFO::Fitting model to feature number 17, F17
## 2023-10-24 17:45:08.488065 INFO::Fitting model to feature number 18, F18
## 2023-10-24 17:45:08.491328 INFO::Fitting model to feature number 19, F19
## 2023-10-24 17:45:08.494628 INFO::Fitting model to feature number 20, F20
## 2023-10-24 17:45:08.498011 INFO::Fitting model to feature number 21, F21
## 2023-10-24 17:45:08.501293 INFO::Fitting model to feature number 22, F22
## 2023-10-24 17:45:08.504558 INFO::Fitting model to feature number 23, F23
## 2023-10-24 17:45:08.507805 INFO::Fitting model to feature number 24, F24
## 2023-10-24 17:45:08.511049 INFO::Fitting model to feature number 25, F25
## 2023-10-24 17:45:08.514333 INFO::Fitting model to feature number 26, F26
## 2023-10-24 17:45:08.5176 INFO::Fitting model to feature number 27, F27
## 2023-10-24 17:45:08.520892 INFO::Fitting model to feature number 28, F28
## 2023-10-24 17:45:08.524162 INFO::Fitting model to feature number 29, F29
## 2023-10-24 17:45:08.527411 INFO::Fitting model to feature number 30, F30
## 2023-10-24 17:45:08.530722 INFO::Fitting model to feature number 31, F31
## 2023-10-24 17:45:08.534086 INFO::Fitting model to feature number 32, F32
## 2023-10-24 17:45:08.537426 INFO::Fitting model to feature number 33, F33
## 2023-10-24 17:45:08.540712 INFO::Fitting model to feature number 34, F34
## 2023-10-24 17:45:08.543995 INFO::Fitting model to feature number 35, F35
## 2023-10-24 17:45:08.547317 INFO::Fitting model to feature number 36, F36
## 2023-10-24 17:45:08.550768 INFO::Fitting model to feature number 37, F37
## 2023-10-24 17:45:08.554136 INFO::Fitting model to feature number 38, F38
## 2023-10-24 17:45:08.557459 INFO::Fitting model to feature number 39, F39
## 2023-10-24 17:45:08.560752 INFO::Fitting model to feature number 40, F40
## 2023-10-24 17:45:08.564047 INFO::Fitting model to feature number 41, F41
## 2023-10-24 17:45:08.567239 INFO::Fitting model to feature number 42, F43
## 2023-10-24 17:45:08.570488 INFO::Fitting model to feature number 43, F44
## 2023-10-24 17:45:08.573752 INFO::Fitting model to feature number 44, F45
## 2023-10-24 17:45:08.577018 INFO::Fitting model to feature number 45, F46
## 2023-10-24 17:45:08.58032 INFO::Fitting model to feature number 46, F47
## 2023-10-24 17:45:08.583639 INFO::Fitting model to feature number 47, F48
## 2023-10-24 17:45:08.586922 INFO::Fitting model to feature number 48, F49
## 2023-10-24 17:45:08.590229 INFO::Fitting model to feature number 49, F50
## 2023-10-24 17:45:08.593536 INFO::Fitting model to feature number 50, F51
## 2023-10-24 17:45:08.596835 INFO::Fitting model to feature number 51, F52
## 2023-10-24 17:45:08.600134 INFO::Fitting model to feature number 52, F53
## 2023-10-24 17:45:08.603453 INFO::Fitting model to feature number 53, F54
## 2023-10-24 17:45:08.606788 INFO::Fitting model to feature number 54, F55
## 2023-10-24 17:45:08.61015 INFO::Fitting model to feature number 55, F56
## 2023-10-24 17:45:08.613455 INFO::Fitting model to feature number 56, F57
## 2023-10-24 17:45:08.616738 INFO::Fitting model to feature number 57, F58
## 2023-10-24 17:45:08.620032 INFO::Fitting model to feature number 58, F59
## 2023-10-24 17:45:08.623307 INFO::Fitting model to feature number 59, F60
## 2023-10-24 17:45:08.626595 INFO::Fitting model to feature number 60, F63
## 2023-10-24 17:45:08.629916 INFO::Fitting model to feature number 61, F64
## 2023-10-24 17:45:08.63319 INFO::Fitting model to feature number 62, F65
## 2023-10-24 17:45:08.63645 INFO::Fitting model to feature number 63, F66
## 2023-10-24 17:45:08.639731 INFO::Fitting model to feature number 64, F67
## 2023-10-24 17:45:08.643092 INFO::Fitting model to feature number 65, F68
## 2023-10-24 17:45:08.646382 INFO::Fitting model to feature number 66, F69
## 2023-10-24 17:45:08.649739 INFO::Fitting model to feature number 67, F70
## 2023-10-24 17:45:08.653105 INFO::Fitting model to feature number 68, F71
## 2023-10-24 17:45:08.656459 INFO::Fitting model to feature number 69, F72
## 2023-10-24 17:45:08.659822 INFO::Fitting model to feature number 70, F73
## 2023-10-24 17:45:08.663226 INFO::Fitting model to feature number 71, F74
## 2023-10-24 17:45:08.666613 INFO::Fitting model to feature number 72, F76
## 2023-10-24 17:45:08.669987 INFO::Fitting model to feature number 73, F77
## 2023-10-24 17:45:08.673343 INFO::Fitting model to feature number 74, F78
## 2023-10-24 17:45:08.676715 INFO::Fitting model to feature number 75, F79
## 2023-10-24 17:45:08.680064 INFO::Fitting model to feature number 76, F80
## 2023-10-24 17:45:08.683437 INFO::Fitting model to feature number 77, F81
## 2023-10-24 17:45:08.686818 INFO::Fitting model to feature number 78, F82
## 2023-10-24 17:45:08.6902 INFO::Fitting model to feature number 79, F83
## 2023-10-24 17:45:08.693584 INFO::Fitting model to feature number 80, F84
## 2023-10-24 17:45:08.696949 INFO::Fitting model to feature number 81, F85
## 2023-10-24 17:45:08.700298 INFO::Fitting model to feature number 82, F86
## 2023-10-24 17:45:08.703652 INFO::Fitting model to feature number 83, F87
## 2023-10-24 17:45:08.707006 INFO::Fitting model to feature number 84, F88
## 2023-10-24 17:45:08.71038 INFO::Fitting model to feature number 85, F89
## 2023-10-24 17:45:08.713732 INFO::Fitting model to feature number 86, F90
## 2023-10-24 17:45:08.71711 INFO::Fitting model to feature number 87, F91
## 2023-10-24 17:45:08.720473 INFO::Fitting model to feature number 88, F92
## 2023-10-24 17:45:08.723882 INFO::Fitting model to feature number 89, F93
## 2023-10-24 17:45:08.727262 INFO::Fitting model to feature number 90, F94
## 2023-10-24 17:45:08.730649 INFO::Fitting model to feature number 91, F95
## 2023-10-24 17:45:08.734035 INFO::Fitting model to feature number 92, F96
## 2023-10-24 17:45:08.737396 INFO::Fitting model to feature number 93, F97
## 2023-10-24 17:45:08.740752 INFO::Fitting model to feature number 94, F98
## 2023-10-24 17:45:08.744089 INFO::Fitting model to feature number 95, F99
## 2023-10-24 17:45:08.747507 INFO::Fitting model to feature number 96, F100
## 2023-10-24 17:45:08.750899 INFO::Fitting model to feature number 97, F101
## 2023-10-24 17:45:08.754309 INFO::Fitting model to feature number 98, F102
## 2023-10-24 17:45:08.757694 INFO::Fitting model to feature number 99, F103
## 2023-10-24 17:45:08.761093 INFO::Fitting model to feature number 100, F104
## 2023-10-24 17:45:08.764424 INFO::Fitting model to feature number 101, F105
## 2023-10-24 17:45:08.767877 INFO::Fitting model to feature number 102, F106
## 2023-10-24 17:45:08.771577 INFO::Fitting model to feature number 103, F107
## 2023-10-24 17:45:08.775388 INFO::Fitting model to feature number 104, F108
## 2023-10-24 17:45:08.779098 INFO::Fitting model to feature number 105, F109
## 2023-10-24 17:45:08.783104 INFO::Fitting model to feature number 106, F110
## 2023-10-24 17:45:08.786897 INFO::Fitting model to feature number 107, F111
## 2023-10-24 17:45:08.790565 INFO::Fitting model to feature number 108, F112
## 2023-10-24 17:45:08.794298 INFO::Fitting model to feature number 109, F113
## 2023-10-24 17:45:08.79806 INFO::Fitting model to feature number 110, F114
## 2023-10-24 17:45:08.801978 INFO::Fitting model to feature number 111, F115
## 2023-10-24 17:45:08.805992 INFO::Fitting model to feature number 112, F117
## 2023-10-24 17:45:08.81008 INFO::Fitting model to feature number 113, F118
## 2023-10-24 17:45:08.813998 INFO::Fitting model to feature number 114, F119
## 2023-10-24 17:45:08.817978 INFO::Fitting model to feature number 115, F120
## 2023-10-24 17:45:08.821662 INFO::Fitting model to feature number 116, F121
## 2023-10-24 17:45:08.825359 INFO::Fitting model to feature number 117, F122
## 2023-10-24 17:45:08.829158 INFO::Fitting model to feature number 118, F123
## 2023-10-24 17:45:08.832901 INFO::Fitting model to feature number 119, F124
## 2023-10-24 17:45:08.836624 INFO::Fitting model to feature number 120, F125
## 2023-10-24 17:45:08.840483 INFO::Fitting model to feature number 121, F126
## 2023-10-24 17:45:08.84436 INFO::Fitting model to feature number 122, F127
## 2023-10-24 17:45:08.848119 INFO::Fitting model to feature number 123, F128
## 2023-10-24 17:45:08.852032 INFO::Fitting model to feature number 124, F129
## 2023-10-24 17:45:08.855834 INFO::Fitting model to feature number 125, F130
## 2023-10-24 17:45:08.859626 INFO::Fitting model to feature number 126, F131
## 2023-10-24 17:45:08.86338 INFO::Fitting model to feature number 127, F132
## 2023-10-24 17:45:08.866909 INFO::Fitting model to feature number 128, F133
## 2023-10-24 17:45:08.870365 INFO::Fitting model to feature number 129, F134
## 2023-10-24 17:45:08.87378 INFO::Fitting model to feature number 130, F135
## 2023-10-24 17:45:08.877178 INFO::Fitting model to feature number 131, F136
## 2023-10-24 17:45:08.880514 INFO::Fitting model to feature number 132, F137
## 2023-10-24 17:45:08.883976 INFO::Fitting model to feature number 133, F138
## 2023-10-24 17:45:08.887432 INFO::Fitting model to feature number 134, F139
## 2023-10-24 17:45:08.890874 INFO::Fitting model to feature number 135, F140
## 2023-10-24 17:45:08.89428 INFO::Fitting model to feature number 136, F141
## 2023-10-24 17:45:08.897714 INFO::Fitting model to feature number 137, F142
## 2023-10-24 17:45:08.901115 INFO::Fitting model to feature number 138, F143
## 2023-10-24 17:45:08.904536 INFO::Fitting model to feature number 139, F144
## 2023-10-24 17:45:08.907947 INFO::Fitting model to feature number 140, F145
## 2023-10-24 17:45:08.91136 INFO::Fitting model to feature number 141, F146
## 2023-10-24 17:45:08.914759 INFO::Fitting model to feature number 142, F147
## 2023-10-24 17:45:08.918168 INFO::Fitting model to feature number 143, F148
## 2023-10-24 17:45:08.921583 INFO::Fitting model to feature number 144, F149
## 2023-10-24 17:45:08.925033 INFO::Fitting model to feature number 145, F150
## 2023-10-24 17:45:08.928437 INFO::Fitting model to feature number 146, F152
## 2023-10-24 17:45:08.931867 INFO::Fitting model to feature number 147, F153
## 2023-10-24 17:45:08.935268 INFO::Fitting model to feature number 148, F154
## 2023-10-24 17:45:08.938676 INFO::Fitting model to feature number 149, F155
## 2023-10-24 17:45:08.942061 INFO::Fitting model to feature number 150, F156
## 2023-10-24 17:45:08.945448 INFO::Fitting model to feature number 151, F157
## 2023-10-24 17:45:08.948851 INFO::Fitting model to feature number 152, F158
## 2023-10-24 17:45:08.952227 INFO::Fitting model to feature number 153, F159
## 2023-10-24 17:45:08.955632 INFO::Fitting model to feature number 154, F160
## 2023-10-24 17:45:08.959026 INFO::Fitting model to feature number 155, F161
## 2023-10-24 17:45:08.96245 INFO::Fitting model to feature number 156, F162
## 2023-10-24 17:45:08.965897 INFO::Fitting model to feature number 157, F163
## 2023-10-24 17:45:08.969306 INFO::Fitting model to feature number 158, F164
## 2023-10-24 17:45:08.972672 INFO::Fitting model to feature number 159, F165
## 2023-10-24 17:45:08.976022 INFO::Fitting model to feature number 160, F166
## 2023-10-24 17:45:08.979458 INFO::Fitting model to feature number 161, F167
## 2023-10-24 17:45:08.98287 INFO::Fitting model to feature number 162, F168
## 2023-10-24 17:45:08.986311 INFO::Fitting model to feature number 163, F169
## 2023-10-24 17:45:08.98973 INFO::Fitting model to feature number 164, F170
## 2023-10-24 17:45:08.993149 INFO::Fitting model to feature number 165, F171
## 2023-10-24 17:45:08.99659 INFO::Fitting model to feature number 166, F172
## 2023-10-24 17:45:08.999973 INFO::Fitting model to feature number 167, F173
## 2023-10-24 17:45:09.003377 INFO::Fitting model to feature number 168, F174
## 2023-10-24 17:45:09.00678 INFO::Fitting model to feature number 169, F175
## 2023-10-24 17:45:09.010196 INFO::Fitting model to feature number 170, F176
## 2023-10-24 17:45:09.013601 INFO::Fitting model to feature number 171, F177
## 2023-10-24 17:45:09.017023 INFO::Fitting model to feature number 172, F178
## 2023-10-24 17:45:09.020432 INFO::Fitting model to feature number 173, F179
## 2023-10-24 17:45:09.023869 INFO::Fitting model to feature number 174, F180
## 2023-10-24 17:45:09.027269 INFO::Fitting model to feature number 175, F181
## 2023-10-24 17:45:09.030684 INFO::Fitting model to feature number 176, F182
## 2023-10-24 17:45:09.034117 INFO::Fitting model to feature number 177, F183
## 2023-10-24 17:45:09.037537 INFO::Fitting model to feature number 178, F184
## 2023-10-24 17:45:09.040954 INFO::Fitting model to feature number 179, F185
## 2023-10-24 17:45:09.044381 INFO::Fitting model to feature number 180, F186
## 2023-10-24 17:45:09.047812 INFO::Fitting model to feature number 181, F187
## 2023-10-24 17:45:09.051225 INFO::Fitting model to feature number 182, F188
## 2023-10-24 17:45:09.054645 INFO::Fitting model to feature number 183, F189
## 2023-10-24 17:45:09.058094 INFO::Fitting model to feature number 184, F190
## 2023-10-24 17:45:09.061532 INFO::Fitting model to feature number 185, F191
## 2023-10-24 17:45:09.064947 INFO::Fitting model to feature number 186, F192
## 2023-10-24 17:45:09.068354 INFO::Fitting model to feature number 187, F193
## 2023-10-24 17:45:09.071761 INFO::Fitting model to feature number 188, F194
## 2023-10-24 17:45:09.075235 INFO::Fitting model to feature number 189, F195
## 2023-10-24 17:45:09.098986 INFO::Fitting model to feature number 190, F196
## 2023-10-24 17:45:09.102667 INFO::Fitting model to feature number 191, F197
## 2023-10-24 17:45:09.106056 INFO::Fitting model to feature number 192, F198
## 2023-10-24 17:45:09.109387 INFO::Fitting model to feature number 193, F199
## 2023-10-24 17:45:09.112701 INFO::Fitting model to feature number 194, F200
## 2023-10-24 17:45:09.115974 INFO::Fitting model to feature number 195, F201
## 2023-10-24 17:45:09.119266 INFO::Fitting model to feature number 196, F202
## 2023-10-24 17:45:09.1226 INFO::Fitting model to feature number 197, F203
## 2023-10-24 17:45:09.125874 INFO::Fitting model to feature number 198, F204
## 2023-10-24 17:45:09.129143 INFO::Fitting model to feature number 199, F206
## 2023-10-24 17:45:09.132398 INFO::Fitting model to feature number 200, F207
## 2023-10-24 17:45:09.135648 INFO::Fitting model to feature number 201, F208
## 2023-10-24 17:45:09.138885 INFO::Fitting model to feature number 202, F209
## 2023-10-24 17:45:09.142154 INFO::Fitting model to feature number 203, F210
## 2023-10-24 17:45:09.145394 INFO::Fitting model to feature number 204, F211
## 2023-10-24 17:45:09.148643 INFO::Fitting model to feature number 205, F212
## 2023-10-24 17:45:09.15187 INFO::Fitting model to feature number 206, F213
## 2023-10-24 17:45:09.155097 INFO::Fitting model to feature number 207, F214
## 2023-10-24 17:45:09.158331 INFO::Fitting model to feature number 208, F215
## 2023-10-24 17:45:09.161546 INFO::Fitting model to feature number 209, F216
## 2023-10-24 17:45:09.168582 INFO::Fitting model to feature number 210, F217
## 2023-10-24 17:45:09.172842 INFO::Fitting model to feature number 211, F218
## 2023-10-24 17:45:09.176557 INFO::Fitting model to feature number 212, F219
## 2023-10-24 17:45:09.180165 INFO::Fitting model to feature number 213, F220
## 2023-10-24 17:45:09.183783 INFO::Fitting model to feature number 214, F221
## 2023-10-24 17:45:09.187406 INFO::Fitting model to feature number 215, F222
## 2023-10-24 17:45:09.191098 INFO::Fitting model to feature number 216, F223
## 2023-10-24 17:45:09.19476 INFO::Fitting model to feature number 217, F224
## 2023-10-24 17:45:09.198393 INFO::Fitting model to feature number 218, F225
## 2023-10-24 17:45:09.202025 INFO::Fitting model to feature number 219, F226
## 2023-10-24 17:45:09.205663 INFO::Fitting model to feature number 220, F227
## 2023-10-24 17:45:09.209285 INFO::Fitting model to feature number 221, F228
## 2023-10-24 17:45:09.212876 INFO::Fitting model to feature number 222, F229
## 2023-10-24 17:45:09.216476 INFO::Fitting model to feature number 223, F230
## 2023-10-24 17:45:09.220136 INFO::Fitting model to feature number 224, F231
## 2023-10-24 17:45:09.223827 INFO::Fitting model to feature number 225, F232
## 2023-10-24 17:45:09.22751 INFO::Fitting model to feature number 226, F233
## 2023-10-24 17:45:09.231102 INFO::Fitting model to feature number 227, F234
## 2023-10-24 17:45:09.234722 INFO::Fitting model to feature number 228, F235
## 2023-10-24 17:45:09.23837 INFO::Fitting model to feature number 229, F236
## 2023-10-24 17:45:09.241965 INFO::Fitting model to feature number 230, F237
## 2023-10-24 17:45:09.245585 INFO::Fitting model to feature number 231, F238
## 2023-10-24 17:45:09.249237 INFO::Fitting model to feature number 232, F239
## 2023-10-24 17:45:09.252979 INFO::Fitting model to feature number 233, F240
## 2023-10-24 17:45:09.256645 INFO::Fitting model to feature number 234, F241
## 2023-10-24 17:45:09.260341 INFO::Fitting model to feature number 235, F242
## 2023-10-24 17:45:09.264033 INFO::Fitting model to feature number 236, F243
## 2023-10-24 17:45:09.267626 INFO::Fitting model to feature number 237, F244
## 2023-10-24 17:45:09.27123 INFO::Fitting model to feature number 238, F245
## 2023-10-24 17:45:09.274891 INFO::Fitting model to feature number 239, F246
## 2023-10-24 17:45:09.278533 INFO::Fitting model to feature number 240, F247
## 2023-10-24 17:45:09.282336 INFO::Fitting model to feature number 241, F248
## 2023-10-24 17:45:09.286061 INFO::Fitting model to feature number 242, F249
## 2023-10-24 17:45:09.289676 INFO::Fitting model to feature number 243, F250
## 2023-10-24 17:45:09.29334 INFO::Fitting model to feature number 244, F252
## 2023-10-24 17:45:09.296983 INFO::Fitting model to feature number 245, F253
## 2023-10-24 17:45:09.300589 INFO::Fitting model to feature number 246, F254
## 2023-10-24 17:45:09.304245 INFO::Fitting model to feature number 247, F255
## 2023-10-24 17:45:09.307888 INFO::Fitting model to feature number 248, F256
## 2023-10-24 17:45:09.311603 INFO::Fitting model to feature number 249, F257
## 2023-10-24 17:45:09.315309 INFO::Fitting model to feature number 250, F259
## 2023-10-24 17:45:09.319041 INFO::Fitting model to feature number 251, F260
## 2023-10-24 17:45:09.322695 INFO::Fitting model to feature number 252, F261
## 2023-10-24 17:45:09.32638 INFO::Fitting model to feature number 253, F262
## 2023-10-24 17:45:09.330067 INFO::Fitting model to feature number 254, F263
## 2023-10-24 17:45:09.333791 INFO::Fitting model to feature number 255, F264
## 2023-10-24 17:45:09.337473 INFO::Fitting model to feature number 256, F265
## 2023-10-24 17:45:09.341104 INFO::Fitting model to feature number 257, F266
## 2023-10-24 17:45:09.344712 INFO::Fitting model to feature number 258, F267
## 2023-10-24 17:45:09.348285 INFO::Fitting model to feature number 259, F269
## 2023-10-24 17:45:09.351815 INFO::Fitting model to feature number 260, F270
## 2023-10-24 17:45:09.355394 INFO::Fitting model to feature number 261, F271
## 2023-10-24 17:45:09.358962 INFO::Fitting model to feature number 262, F272
## 2023-10-24 17:45:09.362546 INFO::Fitting model to feature number 263, F273
## 2023-10-24 17:45:09.366095 INFO::Fitting model to feature number 264, F274
## 2023-10-24 17:45:09.369577 INFO::Fitting model to feature number 265, F276
## 2023-10-24 17:45:09.373124 INFO::Fitting model to feature number 266, F277
## 2023-10-24 17:45:09.376638 INFO::Fitting model to feature number 267, F278
## 2023-10-24 17:45:09.380128 INFO::Fitting model to feature number 268, F279
## 2023-10-24 17:45:09.383665 INFO::Fitting model to feature number 269, F280
## 2023-10-24 17:45:09.387197 INFO::Fitting model to feature number 270, F281
## 2023-10-24 17:45:09.390657 INFO::Fitting model to feature number 271, F282
## 2023-10-24 17:45:09.394177 INFO::Fitting model to feature number 272, F283
## 2023-10-24 17:45:09.397706 INFO::Fitting model to feature number 273, F284
## 2023-10-24 17:45:09.401291 INFO::Fitting model to feature number 274, F285
## 2023-10-24 17:45:09.404833 INFO::Fitting model to feature number 275, F286
## 2023-10-24 17:45:09.408348 INFO::Fitting model to feature number 276, F287
## 2023-10-24 17:45:09.411879 INFO::Fitting model to feature number 277, F288
## 2023-10-24 17:45:09.415404 INFO::Fitting model to feature number 278, F289
## 2023-10-24 17:45:09.418905 INFO::Fitting model to feature number 279, F290
## 2023-10-24 17:45:09.422429 INFO::Fitting model to feature number 280, F292
## 2023-10-24 17:45:09.42597 INFO::Fitting model to feature number 281, F293
## 2023-10-24 17:45:09.429507 INFO::Fitting model to feature number 282, F294
## 2023-10-24 17:45:09.43297 INFO::Fitting model to feature number 283, F295
## 2023-10-24 17:45:09.436408 INFO::Fitting model to feature number 284, F296
## 2023-10-24 17:45:09.439926 INFO::Fitting model to feature number 285, F297
## 2023-10-24 17:45:09.443423 INFO::Fitting model to feature number 286, F298
## 2023-10-24 17:45:09.446947 INFO::Fitting model to feature number 287, F299
## 2023-10-24 17:45:09.450479 INFO::Fitting model to feature number 288, F300
## 2023-10-24 17:45:09.454002 INFO::Fitting model to feature number 289, F301
## 2023-10-24 17:45:09.457568 INFO::Fitting model to feature number 290, F302
## 2023-10-24 17:45:09.461119 INFO::Fitting model to feature number 291, F303
## 2023-10-24 17:45:09.464711 INFO::Fitting model to feature number 292, F304
## 2023-10-24 17:45:09.468195 INFO::Fitting model to feature number 293, F305
## 2023-10-24 17:45:09.471723 INFO::Fitting model to feature number 294, F306
## 2023-10-24 17:45:09.475216 INFO::Fitting model to feature number 295, F307
## 2023-10-24 17:45:09.478695 INFO::Fitting model to feature number 296, F308
## 2023-10-24 17:45:09.482211 INFO::Fitting model to feature number 297, F309
## 2023-10-24 17:45:09.485732 INFO::Fitting model to feature number 298, F310
## 2023-10-24 17:45:09.489251 INFO::Fitting model to feature number 299, F311
## 2023-10-24 17:45:09.492766 INFO::Fitting model to feature number 300, F312
## 2023-10-24 17:45:09.496342 INFO::Fitting model to feature number 301, F313
## 2023-10-24 17:45:09.499992 INFO::Fitting model to feature number 302, F315
## 2023-10-24 17:45:09.50353 INFO::Fitting model to feature number 303, F316
## 2023-10-24 17:45:09.507086 INFO::Fitting model to feature number 304, F317
## 2023-10-24 17:45:09.510642 INFO::Fitting model to feature number 305, F318
## 2023-10-24 17:45:09.51418 INFO::Fitting model to feature number 306, F319
## 2023-10-24 17:45:09.517703 INFO::Fitting model to feature number 307, F320
## 2023-10-24 17:45:09.521247 INFO::Fitting model to feature number 308, F321
## 2023-10-24 17:45:09.524721 INFO::Fitting model to feature number 309, F322
## 2023-10-24 17:45:09.52832 INFO::Fitting model to feature number 310, F323
## 2023-10-24 17:45:09.531905 INFO::Fitting model to feature number 311, F324
## 2023-10-24 17:45:09.53546 INFO::Fitting model to feature number 312, F325
## 2023-10-24 17:45:09.539027 INFO::Fitting model to feature number 313, F326
## 2023-10-24 17:45:09.542365 INFO::Fitting model to feature number 314, F327
## 2023-10-24 17:45:09.545688 INFO::Fitting model to feature number 315, F328
## 2023-10-24 17:45:09.549019 INFO::Fitting model to feature number 316, F329
## 2023-10-24 17:45:09.55237 INFO::Fitting model to feature number 317, F330
## 2023-10-24 17:45:09.555779 INFO::Fitting model to feature number 318, F331
## 2023-10-24 17:45:09.559146 INFO::Fitting model to feature number 319, F332
## 2023-10-24 17:45:09.562503 INFO::Fitting model to feature number 320, F333
## 2023-10-24 17:45:09.565851 INFO::Fitting model to feature number 321, F334
## 2023-10-24 17:45:09.569161 INFO::Fitting model to feature number 322, F335
## 2023-10-24 17:45:09.572505 INFO::Fitting model to feature number 323, F336
## 2023-10-24 17:45:09.575812 INFO::Fitting model to feature number 324, F337
## 2023-10-24 17:45:09.579104 INFO::Fitting model to feature number 325, F338
## 2023-10-24 17:45:09.582411 INFO::Fitting model to feature number 326, F339
## 2023-10-24 17:45:09.585685 INFO::Fitting model to feature number 327, F340
## 2023-10-24 17:45:09.588946 INFO::Fitting model to feature number 328, F342
## 2023-10-24 17:45:09.592222 INFO::Fitting model to feature number 329, F343
## 2023-10-24 17:45:09.595502 INFO::Fitting model to feature number 330, F344
## 2023-10-24 17:45:09.598766 INFO::Fitting model to feature number 331, F345
## 2023-10-24 17:45:09.602097 INFO::Fitting model to feature number 332, F346
## 2023-10-24 17:45:09.605429 INFO::Fitting model to feature number 333, F347
## 2023-10-24 17:45:09.608759 INFO::Fitting model to feature number 334, F348
## 2023-10-24 17:45:09.612121 INFO::Fitting model to feature number 335, F350
## 2023-10-24 17:45:09.615477 INFO::Fitting model to feature number 336, F351
## 2023-10-24 17:45:09.618757 INFO::Fitting model to feature number 337, F352
## 2023-10-24 17:45:09.622094 INFO::Fitting model to feature number 338, F353
## 2023-10-24 17:45:09.625407 INFO::Fitting model to feature number 339, F355
## 2023-10-24 17:45:09.628695 INFO::Fitting model to feature number 340, F356
## 2023-10-24 17:45:09.631991 INFO::Fitting model to feature number 341, F357
## 2023-10-24 17:45:09.635287 INFO::Fitting model to feature number 342, F358
## 2023-10-24 17:45:09.638631 INFO::Fitting model to feature number 343, F359
## 2023-10-24 17:45:09.641976 INFO::Fitting model to feature number 344, F360
## 2023-10-24 17:45:09.645372 INFO::Fitting model to feature number 345, F361
## 2023-10-24 17:45:09.648953 INFO::Fitting model to feature number 346, F362
## 2023-10-24 17:45:09.652538 INFO::Fitting model to feature number 347, F363
## 2023-10-24 17:45:09.656102 INFO::Fitting model to feature number 348, F364
## 2023-10-24 17:45:09.659665 INFO::Fitting model to feature number 349, F365
## 2023-10-24 17:45:09.663235 INFO::Fitting model to feature number 350, F366
## 2023-10-24 17:45:09.666804 INFO::Fitting model to feature number 351, F367
## 2023-10-24 17:45:09.670355 INFO::Fitting model to feature number 352, F368
## 2023-10-24 17:45:09.673923 INFO::Fitting model to feature number 353, F369
## 2023-10-24 17:45:09.677508 INFO::Fitting model to feature number 354, F370
## 2023-10-24 17:45:09.681087 INFO::Fitting model to feature number 355, F371
## 2023-10-24 17:45:09.68465 INFO::Fitting model to feature number 356, F372
## 2023-10-24 17:45:09.688244 INFO::Fitting model to feature number 357, F373
## 2023-10-24 17:45:09.691829 INFO::Fitting model to feature number 358, F374
## 2023-10-24 17:45:09.695445 INFO::Fitting model to feature number 359, F375
## 2023-10-24 17:45:09.699046 INFO::Fitting model to feature number 360, F376
## 2023-10-24 17:45:09.702608 INFO::Fitting model to feature number 361, F377
## 2023-10-24 17:45:09.706157 INFO::Fitting model to feature number 362, F378
## 2023-10-24 17:45:09.70973 INFO::Fitting model to feature number 363, F379
## 2023-10-24 17:45:09.713285 INFO::Fitting model to feature number 364, F380
## 2023-10-24 17:45:09.716841 INFO::Fitting model to feature number 365, F381
## 2023-10-24 17:45:09.720394 INFO::Fitting model to feature number 366, F382
## 2023-10-24 17:45:09.723961 INFO::Fitting model to feature number 367, F383
## 2023-10-24 17:45:09.727529 INFO::Fitting model to feature number 368, F384
## 2023-10-24 17:45:09.731097 INFO::Fitting model to feature number 369, F386
## 2023-10-24 17:45:09.734662 INFO::Fitting model to feature number 370, F387
## 2023-10-24 17:45:09.738207 INFO::Fitting model to feature number 371, F388
## 2023-10-24 17:45:09.741782 INFO::Fitting model to feature number 372, F389
## 2023-10-24 17:45:09.745338 INFO::Fitting model to feature number 373, F390
## 2023-10-24 17:45:09.748884 INFO::Fitting model to feature number 374, F391
## 2023-10-24 17:45:09.75242 INFO::Fitting model to feature number 375, F392
## 2023-10-24 17:45:09.755987 INFO::Fitting model to feature number 376, F393
## 2023-10-24 17:45:09.759589 INFO::Fitting model to feature number 377, F394
## 2023-10-24 17:45:09.763159 INFO::Fitting model to feature number 378, F395
## 2023-10-24 17:45:09.766733 INFO::Fitting model to feature number 379, F396
## 2023-10-24 17:45:09.77033 INFO::Fitting model to feature number 380, F397
## 2023-10-24 17:45:09.773897 INFO::Fitting model to feature number 381, F398
## 2023-10-24 17:45:09.777442 INFO::Fitting model to feature number 382, F399
## 2023-10-24 17:45:09.781007 INFO::Fitting model to feature number 383, F400
## 2023-10-24 17:45:09.78455 INFO::Fitting model to feature number 384, F401
## 2023-10-24 17:45:09.788067 INFO::Fitting model to feature number 385, F402
## 2023-10-24 17:45:09.791336 INFO::Fitting model to feature number 386, F403
## 2023-10-24 17:45:09.794608 INFO::Fitting model to feature number 387, F404
## 2023-10-24 17:45:09.797947 INFO::Fitting model to feature number 388, F406
## 2023-10-24 17:45:09.80127 INFO::Fitting model to feature number 389, F407
## 2023-10-24 17:45:09.804589 INFO::Fitting model to feature number 390, F408
## 2023-10-24 17:45:09.807901 INFO::Fitting model to feature number 391, F409
## 2023-10-24 17:45:09.811243 INFO::Fitting model to feature number 392, F410
## 2023-10-24 17:45:09.814609 INFO::Fitting model to feature number 393, F411
## 2023-10-24 17:45:09.817935 INFO::Fitting model to feature number 394, F412
## 2023-10-24 17:45:09.82128 INFO::Fitting model to feature number 395, F413
## 2023-10-24 17:45:09.824641 INFO::Fitting model to feature number 396, F414
## 2023-10-24 17:45:09.827973 INFO::Fitting model to feature number 397, F415
## 2023-10-24 17:45:09.831325 INFO::Fitting model to feature number 398, F416
## 2023-10-24 17:45:09.834681 INFO::Fitting model to feature number 399, F417
## 2023-10-24 17:45:09.838059 INFO::Fitting model to feature number 400, F418
## 2023-10-24 17:45:09.841358 INFO::Fitting model to feature number 401, F419
## 2023-10-24 17:45:09.844664 INFO::Fitting model to feature number 402, F420
## 2023-10-24 17:45:09.847935 INFO::Fitting model to feature number 403, F421
## 2023-10-24 17:45:09.851255 INFO::Fitting model to feature number 404, F422
## 2023-10-24 17:45:09.854626 INFO::Fitting model to feature number 405, F423
## 2023-10-24 17:45:09.857937 INFO::Fitting model to feature number 406, F425
## 2023-10-24 17:45:09.861226 INFO::Fitting model to feature number 407, F426
## 2023-10-24 17:45:09.86451 INFO::Fitting model to feature number 408, F428
## 2023-10-24 17:45:09.867793 INFO::Fitting model to feature number 409, F429
## 2023-10-24 17:45:09.871068 INFO::Fitting model to feature number 410, F430
## 2023-10-24 17:45:09.874342 INFO::Fitting model to feature number 411, F431
## 2023-10-24 17:45:09.87764 INFO::Fitting model to feature number 412, F432
## 2023-10-24 17:45:09.880943 INFO::Fitting model to feature number 413, F433
## 2023-10-24 17:45:09.884249 INFO::Fitting model to feature number 414, F434
## 2023-10-24 17:45:09.887557 INFO::Fitting model to feature number 415, F435
## 2023-10-24 17:45:09.89088 INFO::Fitting model to feature number 416, F436
## 2023-10-24 17:45:09.894194 INFO::Fitting model to feature number 417, F437
## 2023-10-24 17:45:09.897562 INFO::Fitting model to feature number 418, F438
## 2023-10-24 17:45:09.900905 INFO::Fitting model to feature number 419, F439
## 2023-10-24 17:45:09.904342 INFO::Fitting model to feature number 420, F440
## 2023-10-24 17:45:09.907814 INFO::Fitting model to feature number 421, F441
## 2023-10-24 17:45:09.911264 INFO::Fitting model to feature number 422, F442
## 2023-10-24 17:45:09.944799 INFO::Fitting model to feature number 423, F443
## 2023-10-24 17:45:09.948873 INFO::Fitting model to feature number 424, F444
## 2023-10-24 17:45:09.952621 INFO::Fitting model to feature number 425, F445
## 2023-10-24 17:45:09.956251 INFO::Fitting model to feature number 426, F446
## 2023-10-24 17:45:09.959845 INFO::Fitting model to feature number 427, F447
## 2023-10-24 17:45:09.963428 INFO::Fitting model to feature number 428, F448
## 2023-10-24 17:45:09.966961 INFO::Fitting model to feature number 429, F449
## 2023-10-24 17:45:09.970467 INFO::Fitting model to feature number 430, F450
## 2023-10-24 17:45:09.973992 INFO::Fitting model to feature number 431, F451
## 2023-10-24 17:45:09.977535 INFO::Fitting model to feature number 432, F452
## 2023-10-24 17:45:09.981099 INFO::Fitting model to feature number 433, F454
## 2023-10-24 17:45:09.984649 INFO::Fitting model to feature number 434, F455
## 2023-10-24 17:45:09.988184 INFO::Fitting model to feature number 435, F456
## 2023-10-24 17:45:09.991711 INFO::Fitting model to feature number 436, F457
## 2023-10-24 17:45:09.995275 INFO::Fitting model to feature number 437, F458
## 2023-10-24 17:45:09.998865 INFO::Fitting model to feature number 438, F459
## 2023-10-24 17:45:10.002358 INFO::Fitting model to feature number 439, F461
## 2023-10-24 17:45:10.005889 INFO::Fitting model to feature number 440, F462
## 2023-10-24 17:45:10.009431 INFO::Fitting model to feature number 441, F463
## 2023-10-24 17:45:10.012954 INFO::Fitting model to feature number 442, F464
## 2023-10-24 17:45:10.016465 INFO::Fitting model to feature number 443, F465
## 2023-10-24 17:45:10.019766 INFO::Fitting model to feature number 444, F466
## 2023-10-24 17:45:10.023059 INFO::Fitting model to feature number 445, F467
## 2023-10-24 17:45:10.026347 INFO::Fitting model to feature number 446, F468
## 2023-10-24 17:45:10.029658 INFO::Fitting model to feature number 447, F469
## 2023-10-24 17:45:10.033011 INFO::Fitting model to feature number 448, F470
## 2023-10-24 17:45:10.036339 INFO::Fitting model to feature number 449, F471
## 2023-10-24 17:45:10.0397 INFO::Fitting model to feature number 450, F474
## 2023-10-24 17:45:10.043126 INFO::Fitting model to feature number 451, F475
## 2023-10-24 17:45:10.046462 INFO::Fitting model to feature number 452, F476
## 2023-10-24 17:45:10.049795 INFO::Fitting model to feature number 453, F477
## 2023-10-24 17:45:10.053111 INFO::Fitting model to feature number 454, F478
## 2023-10-24 17:45:10.056414 INFO::Fitting model to feature number 455, F479
## 2023-10-24 17:45:10.059764 INFO::Fitting model to feature number 456, F480
## 2023-10-24 17:45:10.06307 INFO::Fitting model to feature number 457, F481
## 2023-10-24 17:45:10.066386 INFO::Fitting model to feature number 458, F482
## 2023-10-24 17:45:10.069649 INFO::Fitting model to feature number 459, F483
## 2023-10-24 17:45:10.072922 INFO::Fitting model to feature number 460, F484
## 2023-10-24 17:45:10.076188 INFO::Fitting model to feature number 461, F485
## 2023-10-24 17:45:10.079408 INFO::Fitting model to feature number 462, F486
## 2023-10-24 17:45:10.082655 INFO::Fitting model to feature number 463, F487
## 2023-10-24 17:45:10.085923 INFO::Fitting model to feature number 464, F488
## 2023-10-24 17:45:10.089195 INFO::Fitting model to feature number 465, F489
## 2023-10-24 17:45:10.092502 INFO::Fitting model to feature number 466, F490
## 2023-10-24 17:45:10.095812 INFO::Fitting model to feature number 467, F491
## 2023-10-24 17:45:10.099118 INFO::Fitting model to feature number 468, F492
## 2023-10-24 17:45:10.102448 INFO::Fitting model to feature number 469, F493
## 2023-10-24 17:45:10.105747 INFO::Fitting model to feature number 470, F494
## 2023-10-24 17:45:10.10906 INFO::Fitting model to feature number 471, F495
## 2023-10-24 17:45:10.11234 INFO::Fitting model to feature number 472, F496
## 2023-10-24 17:45:10.115583 INFO::Fitting model to feature number 473, F497
## 2023-10-24 17:45:10.118901 INFO::Fitting model to feature number 474, F498
## 2023-10-24 17:45:10.122207 INFO::Fitting model to feature number 475, F499
## 2023-10-24 17:45:10.125517 INFO::Fitting model to feature number 476, F500
## 2023-10-24 17:45:10.12887 INFO::Fitting model to feature number 477, F501
## 2023-10-24 17:45:10.132204 INFO::Fitting model to feature number 478, F502
## 2023-10-24 17:45:10.135555 INFO::Fitting model to feature number 479, F503
## 2023-10-24 17:45:10.138888 INFO::Fitting model to feature number 480, F504
## 2023-10-24 17:45:10.142232 INFO::Fitting model to feature number 481, F505
## 2023-10-24 17:45:10.145549 INFO::Fitting model to feature number 482, F506
## 2023-10-24 17:45:10.148884 INFO::Fitting model to feature number 483, F507
## 2023-10-24 17:45:10.15218 INFO::Fitting model to feature number 484, F508
## 2023-10-24 17:45:10.155473 INFO::Fitting model to feature number 485, F509
## 2023-10-24 17:45:10.158763 INFO::Fitting model to feature number 486, F510
## 2023-10-24 17:45:10.162049 INFO::Fitting model to feature number 487, F511
## 2023-10-24 17:45:10.165334 INFO::Fitting model to feature number 488, F512
## 2023-10-24 17:45:10.168598 INFO::Fitting model to feature number 489, F513
## 2023-10-24 17:45:10.171859 INFO::Fitting model to feature number 490, F514
## 2023-10-24 17:45:10.175152 INFO::Fitting model to feature number 491, F515
## 2023-10-24 17:45:10.178439 INFO::Fitting model to feature number 492, F516
## 2023-10-24 17:45:10.181714 INFO::Fitting model to feature number 493, F517
## 2023-10-24 17:45:10.184925 INFO::Fitting model to feature number 494, F518
## 2023-10-24 17:45:10.188213 INFO::Fitting model to feature number 495, F519
## 2023-10-24 17:45:10.191511 INFO::Fitting model to feature number 496, F520
## 2023-10-24 17:45:10.194802 INFO::Fitting model to feature number 497, F521
## 2023-10-24 17:45:10.19809 INFO::Fitting model to feature number 498, F522
## 2023-10-24 17:45:10.201382 INFO::Fitting model to feature number 499, F523
## 2023-10-24 17:45:10.204646 INFO::Fitting model to feature number 500, F524
## 2023-10-24 17:45:10.207911 INFO::Fitting model to feature number 501, F525
## 2023-10-24 17:45:10.211154 INFO::Fitting model to feature number 502, F526
## 2023-10-24 17:45:10.214486 INFO::Fitting model to feature number 503, F527
## 2023-10-24 17:45:10.217814 INFO::Fitting model to feature number 504, F528
## 2023-10-24 17:45:10.221138 INFO::Fitting model to feature number 505, F529
## 2023-10-24 17:45:10.224433 INFO::Fitting model to feature number 506, F530
## 2023-10-24 17:45:10.227731 INFO::Fitting model to feature number 507, F531
## 2023-10-24 17:45:10.231023 INFO::Fitting model to feature number 508, F532
## 2023-10-24 17:45:10.23426 INFO::Fitting model to feature number 509, F533
## 2023-10-24 17:45:10.23757 INFO::Fitting model to feature number 510, F534
## 2023-10-24 17:45:10.240896 INFO::Fitting model to feature number 511, F535
## 2023-10-24 17:45:10.244197 INFO::Fitting model to feature number 512, F536
## 2023-10-24 17:45:10.247536 INFO::Fitting model to feature number 513, F537
## 2023-10-24 17:45:10.250818 INFO::Fitting model to feature number 514, F539
## 2023-10-24 17:45:10.254143 INFO::Fitting model to feature number 515, F540
## 2023-10-24 17:45:10.257476 INFO::Fitting model to feature number 516, F541
## 2023-10-24 17:45:10.260788 INFO::Fitting model to feature number 517, F543
## 2023-10-24 17:45:10.26407 INFO::Fitting model to feature number 518, F544
## 2023-10-24 17:45:10.267366 INFO::Fitting model to feature number 519, F545
## 2023-10-24 17:45:10.270643 INFO::Fitting model to feature number 520, F546
## 2023-10-24 17:45:10.273956 INFO::Fitting model to feature number 521, F547
## 2023-10-24 17:45:10.277249 INFO::Fitting model to feature number 522, F548
## 2023-10-24 17:45:10.280567 INFO::Fitting model to feature number 523, F549
## 2023-10-24 17:45:10.283846 INFO::Fitting model to feature number 524, F550
## 2023-10-24 17:45:10.287185 INFO::Fitting model to feature number 525, F551
## 2023-10-24 17:45:10.290421 INFO::Fitting model to feature number 526, F552
## 2023-10-24 17:45:10.293705 INFO::Fitting model to feature number 527, F553
## 2023-10-24 17:45:10.296987 INFO::Fitting model to feature number 528, F554
## 2023-10-24 17:45:10.300261 INFO::Fitting model to feature number 529, F555
## 2023-10-24 17:45:10.303539 INFO::Fitting model to feature number 530, F556
## 2023-10-24 17:45:10.306842 INFO::Fitting model to feature number 531, F557
## 2023-10-24 17:45:10.310097 INFO::Fitting model to feature number 532, F558
## 2023-10-24 17:45:10.313443 INFO::Fitting model to feature number 533, F559
## 2023-10-24 17:45:10.31685 INFO::Fitting model to feature number 534, F560
## 2023-10-24 17:45:10.320205 INFO::Fitting model to feature number 535, F561
## 2023-10-24 17:45:10.323529 INFO::Fitting model to feature number 536, F562
## 2023-10-24 17:45:10.32687 INFO::Fitting model to feature number 537, F563
## 2023-10-24 17:45:10.330196 INFO::Fitting model to feature number 538, F564
## 2023-10-24 17:45:10.333511 INFO::Fitting model to feature number 539, F566
## 2023-10-24 17:45:10.336809 INFO::Fitting model to feature number 540, F567
## 2023-10-24 17:45:10.340103 INFO::Fitting model to feature number 541, F568
## 2023-10-24 17:45:10.343339 INFO::Fitting model to feature number 542, F569
## 2023-10-24 17:45:10.346696 INFO::Fitting model to feature number 543, F570
## 2023-10-24 17:45:10.350063 INFO::Fitting model to feature number 544, F571
## 2023-10-24 17:45:10.353501 INFO::Fitting model to feature number 545, F572
## 2023-10-24 17:45:10.357016 INFO::Fitting model to feature number 546, F573
## 2023-10-24 17:45:10.360443 INFO::Fitting model to feature number 547, F574
## 2023-10-24 17:45:10.364036 INFO::Fitting model to feature number 548, F575
## 2023-10-24 17:45:10.367522 INFO::Fitting model to feature number 549, F576
## 2023-10-24 17:45:10.371001 INFO::Fitting model to feature number 550, F577
## 2023-10-24 17:45:10.374437 INFO::Fitting model to feature number 551, F578
## 2023-10-24 17:45:10.377873 INFO::Fitting model to feature number 552, F579
## 2023-10-24 17:45:10.381346 INFO::Fitting model to feature number 553, F580
## 2023-10-24 17:45:10.384786 INFO::Fitting model to feature number 554, F581
## 2023-10-24 17:45:10.38823 INFO::Fitting model to feature number 555, F582
## 2023-10-24 17:45:10.391748 INFO::Fitting model to feature number 556, F583
## 2023-10-24 17:45:10.395116 INFO::Fitting model to feature number 557, F584
## 2023-10-24 17:45:10.398427 INFO::Fitting model to feature number 558, F585
## 2023-10-24 17:45:10.401791 INFO::Fitting model to feature number 559, F586
## 2023-10-24 17:45:10.405109 INFO::Fitting model to feature number 560, F587
## 2023-10-24 17:45:10.408381 INFO::Fitting model to feature number 561, F588
## 2023-10-24 17:45:10.411696 INFO::Fitting model to feature number 562, F589
## 2023-10-24 17:45:10.414994 INFO::Fitting model to feature number 563, F590
## 2023-10-24 17:45:10.418362 INFO::Fitting model to feature number 564, F591
## 2023-10-24 17:45:10.421692 INFO::Fitting model to feature number 565, F592
## 2023-10-24 17:45:10.42503 INFO::Fitting model to feature number 566, F593
## 2023-10-24 17:45:10.428356 INFO::Fitting model to feature number 567, F594
## 2023-10-24 17:45:10.431678 INFO::Fitting model to feature number 568, F595
## 2023-10-24 17:45:10.435008 INFO::Fitting model to feature number 569, F596
## 2023-10-24 17:45:10.438301 INFO::Fitting model to feature number 570, F597
## 2023-10-24 17:45:10.441586 INFO::Fitting model to feature number 571, F598
## 2023-10-24 17:45:10.444875 INFO::Fitting model to feature number 572, F599
## 2023-10-24 17:45:10.448136 INFO::Fitting model to feature number 573, F600
## 2023-10-24 17:45:10.451421 INFO::Fitting model to feature number 574, F601
## 2023-10-24 17:45:10.454771 INFO::Fitting model to feature number 575, F602
## 2023-10-24 17:45:10.458133 INFO::Fitting model to feature number 576, F603
## 2023-10-24 17:45:10.461529 INFO::Fitting model to feature number 577, F605
## 2023-10-24 17:45:10.464972 INFO::Fitting model to feature number 578, F606
## 2023-10-24 17:45:10.468255 INFO::Fitting model to feature number 579, F607
## 2023-10-24 17:45:10.471594 INFO::Fitting model to feature number 580, F608
## 2023-10-24 17:45:10.47492 INFO::Fitting model to feature number 581, F609
## 2023-10-24 17:45:10.478243 INFO::Fitting model to feature number 582, F610
## 2023-10-24 17:45:10.481596 INFO::Fitting model to feature number 583, F611
## 2023-10-24 17:45:10.484946 INFO::Fitting model to feature number 584, F612
## 2023-10-24 17:45:10.488257 INFO::Fitting model to feature number 585, F613
## 2023-10-24 17:45:10.491586 INFO::Fitting model to feature number 586, F614
## 2023-10-24 17:45:10.494915 INFO::Fitting model to feature number 587, F615
## 2023-10-24 17:45:10.498245 INFO::Fitting model to feature number 588, F616
## 2023-10-24 17:45:10.501579 INFO::Fitting model to feature number 589, F617
## 2023-10-24 17:45:10.504917 INFO::Fitting model to feature number 590, F618
## 2023-10-24 17:45:10.508216 INFO::Fitting model to feature number 591, F619
## 2023-10-24 17:45:10.511531 INFO::Fitting model to feature number 592, F620
## 2023-10-24 17:45:10.514845 INFO::Fitting model to feature number 593, F621
## 2023-10-24 17:45:10.518159 INFO::Fitting model to feature number 594, F622
## 2023-10-24 17:45:10.521491 INFO::Fitting model to feature number 595, F623
## 2023-10-24 17:45:10.524811 INFO::Fitting model to feature number 596, F624
## 2023-10-24 17:45:10.528143 INFO::Fitting model to feature number 597, F625
## 2023-10-24 17:45:10.531481 INFO::Fitting model to feature number 598, F626
## 2023-10-24 17:45:10.534834 INFO::Fitting model to feature number 599, F627
## 2023-10-24 17:45:10.538176 INFO::Fitting model to feature number 600, F628
## 2023-10-24 17:45:10.541525 INFO::Fitting model to feature number 601, F629
## 2023-10-24 17:45:10.544817 INFO::Fitting model to feature number 602, F630
## 2023-10-24 17:45:10.548167 INFO::Fitting model to feature number 603, F631
## 2023-10-24 17:45:10.551535 INFO::Fitting model to feature number 604, F632
## 2023-10-24 17:45:10.554913 INFO::Fitting model to feature number 605, F633
## 2023-10-24 17:45:10.558305 INFO::Fitting model to feature number 606, F634
## 2023-10-24 17:45:10.561738 INFO::Fitting model to feature number 607, F635
## 2023-10-24 17:45:10.565172 INFO::Fitting model to feature number 608, F636
## 2023-10-24 17:45:10.568619 INFO::Fitting model to feature number 609, F637
## 2023-10-24 17:45:10.572061 INFO::Fitting model to feature number 610, F638
## 2023-10-24 17:45:10.575499 INFO::Fitting model to feature number 611, F639
## 2023-10-24 17:45:10.578892 INFO::Fitting model to feature number 612, F640
## 2023-10-24 17:45:10.582286 INFO::Fitting model to feature number 613, F641
## 2023-10-24 17:45:10.585677 INFO::Fitting model to feature number 614, F642
## 2023-10-24 17:45:10.589048 INFO::Fitting model to feature number 615, F643
## 2023-10-24 17:45:10.592426 INFO::Fitting model to feature number 616, F644
## 2023-10-24 17:45:10.595863 INFO::Fitting model to feature number 617, F645
## 2023-10-24 17:45:10.599334 INFO::Fitting model to feature number 618, F646
## 2023-10-24 17:45:10.60304 INFO::Fitting model to feature number 619, F647
## 2023-10-24 17:45:10.606918 INFO::Fitting model to feature number 620, F648
## 2023-10-24 17:45:10.61067 INFO::Fitting model to feature number 621, F649
## 2023-10-24 17:45:10.614403 INFO::Fitting model to feature number 622, F650
## 2023-10-24 17:45:10.618152 INFO::Fitting model to feature number 623, F651
## 2023-10-24 17:45:10.621846 INFO::Fitting model to feature number 624, F652
## 2023-10-24 17:45:10.625544 INFO::Fitting model to feature number 625, F653
## 2023-10-24 17:45:10.629213 INFO::Fitting model to feature number 626, F654
## 2023-10-24 17:45:10.632908 INFO::Fitting model to feature number 627, F655
## 2023-10-24 17:45:10.63659 INFO::Fitting model to feature number 628, F656
## 2023-10-24 17:45:10.640247 INFO::Fitting model to feature number 629, F657
## 2023-10-24 17:45:10.643929 INFO::Fitting model to feature number 630, F658
## 2023-10-24 17:45:10.647598 INFO::Fitting model to feature number 631, F659
## 2023-10-24 17:45:10.651304 INFO::Fitting model to feature number 632, F660
## 2023-10-24 17:45:10.655017 INFO::Fitting model to feature number 633, F661
## 2023-10-24 17:45:10.658717 INFO::Fitting model to feature number 634, F662
## 2023-10-24 17:45:10.662421 INFO::Fitting model to feature number 635, F663
## 2023-10-24 17:45:10.66599 INFO::Fitting model to feature number 636, F664
## 2023-10-24 17:45:10.669673 INFO::Fitting model to feature number 637, F665
## 2023-10-24 17:45:10.673389 INFO::Fitting model to feature number 638, F666
## 2023-10-24 17:45:10.677194 INFO::Fitting model to feature number 639, F667
## 2023-10-24 17:45:10.680991 INFO::Fitting model to feature number 640, F668
## 2023-10-24 17:45:10.6847 INFO::Fitting model to feature number 641, F669
## 2023-10-24 17:45:10.688365 INFO::Fitting model to feature number 642, F670
## 2023-10-24 17:45:10.692026 INFO::Fitting model to feature number 643, F671
## 2023-10-24 17:45:10.695729 INFO::Fitting model to feature number 644, F672
## 2023-10-24 17:45:10.699382 INFO::Fitting model to feature number 645, F673
## 2023-10-24 17:45:10.703115 INFO::Fitting model to feature number 646, F674
## 2023-10-24 17:45:10.706854 INFO::Fitting model to feature number 647, F675
## 2023-10-24 17:45:10.710608 INFO::Fitting model to feature number 648, F676
## 2023-10-24 17:45:10.732281 INFO::Fitting model to feature number 649, F677
## 2023-10-24 17:45:10.736153 INFO::Fitting model to feature number 650, F678
## 2023-10-24 17:45:10.739898 INFO::Fitting model to feature number 651, F679
## 2023-10-24 17:45:10.743484 INFO::Fitting model to feature number 652, F680
## 2023-10-24 17:45:10.747012 INFO::Fitting model to feature number 653, F681
## 2023-10-24 17:45:10.750509 INFO::Fitting model to feature number 654, F682
## 2023-10-24 17:45:10.754006 INFO::Fitting model to feature number 655, F683
## 2023-10-24 17:45:10.757481 INFO::Fitting model to feature number 656, F684
## 2023-10-24 17:45:10.76095 INFO::Fitting model to feature number 657, F685
## 2023-10-24 17:45:10.764408 INFO::Fitting model to feature number 658, F686
## 2023-10-24 17:45:10.767869 INFO::Fitting model to feature number 659, F687
## 2023-10-24 17:45:10.771263 INFO::Fitting model to feature number 660, F688
## 2023-10-24 17:45:10.774657 INFO::Fitting model to feature number 661, F689
## 2023-10-24 17:45:10.778156 INFO::Fitting model to feature number 662, F690
## 2023-10-24 17:45:10.78187 INFO::Fitting model to feature number 663, F691
## 2023-10-24 17:45:10.785505 INFO::Fitting model to feature number 664, F692
## 2023-10-24 17:45:10.789112 INFO::Fitting model to feature number 665, F693
## 2023-10-24 17:45:10.792746 INFO::Fitting model to feature number 666, F694
## 2023-10-24 17:45:10.796415 INFO::Fitting model to feature number 667, F695
## 2023-10-24 17:45:10.80003 INFO::Fitting model to feature number 668, F696
## 2023-10-24 17:45:10.803517 INFO::Fitting model to feature number 669, F697
## 2023-10-24 17:45:10.806947 INFO::Fitting model to feature number 670, F698
## 2023-10-24 17:45:10.810285 INFO::Fitting model to feature number 671, F699
## 2023-10-24 17:45:10.813675 INFO::Fitting model to feature number 672, F700
## 2023-10-24 17:45:10.81707 INFO::Fitting model to feature number 673, F701
## 2023-10-24 17:45:10.820424 INFO::Fitting model to feature number 674, F702
## 2023-10-24 17:45:10.823813 INFO::Fitting model to feature number 675, F704
## 2023-10-24 17:45:10.827203 INFO::Fitting model to feature number 676, F705
## 2023-10-24 17:45:10.830611 INFO::Fitting model to feature number 677, F706
## 2023-10-24 17:45:10.833918 INFO::Fitting model to feature number 678, F707
## 2023-10-24 17:45:10.837377 INFO::Fitting model to feature number 679, F708
## 2023-10-24 17:45:10.840697 INFO::Fitting model to feature number 680, F709
## 2023-10-24 17:45:10.843997 INFO::Fitting model to feature number 681, F710
## 2023-10-24 17:45:10.84732 INFO::Fitting model to feature number 682, F711
## 2023-10-24 17:45:10.85065 INFO::Fitting model to feature number 683, F712
## 2023-10-24 17:45:10.853973 INFO::Fitting model to feature number 684, F713
## 2023-10-24 17:45:10.857327 INFO::Fitting model to feature number 685, F714
## 2023-10-24 17:45:10.860647 INFO::Fitting model to feature number 686, F715
## 2023-10-24 17:45:10.86391 INFO::Fitting model to feature number 687, F716
## 2023-10-24 17:45:10.867179 INFO::Fitting model to feature number 688, F717
## 2023-10-24 17:45:10.870462 INFO::Fitting model to feature number 689, F718
## 2023-10-24 17:45:10.873761 INFO::Fitting model to feature number 690, F719
## 2023-10-24 17:45:10.877028 INFO::Fitting model to feature number 691, F720
## 2023-10-24 17:45:10.880265 INFO::Fitting model to feature number 692, F721
## 2023-10-24 17:45:10.886348 INFO::Fitting model to feature number 693, F722
## 2023-10-24 17:45:10.889636 INFO::Fitting model to feature number 694, F723
## 2023-10-24 17:45:10.892901 INFO::Fitting model to feature number 695, F724
## 2023-10-24 17:45:10.896138 INFO::Fitting model to feature number 696, F725
## 2023-10-24 17:45:10.899393 INFO::Fitting model to feature number 697, F726
## 2023-10-24 17:45:10.902667 INFO::Fitting model to feature number 698, F727
## 2023-10-24 17:45:10.90595 INFO::Fitting model to feature number 699, F728
## 2023-10-24 17:45:10.909209 INFO::Fitting model to feature number 700, F729
## 2023-10-24 17:45:10.912413 INFO::Fitting model to feature number 701, F730
## 2023-10-24 17:45:10.915649 INFO::Fitting model to feature number 702, F731
## 2023-10-24 17:45:10.9189 INFO::Fitting model to feature number 703, F732
## 2023-10-24 17:45:10.922143 INFO::Fitting model to feature number 704, F733
## 2023-10-24 17:45:10.92537 INFO::Fitting model to feature number 705, F734
## 2023-10-24 17:45:10.928615 INFO::Fitting model to feature number 706, F735
## 2023-10-24 17:45:10.931852 INFO::Fitting model to feature number 707, F736
## 2023-10-24 17:45:10.935053 INFO::Fitting model to feature number 708, F737
## 2023-10-24 17:45:10.938329 INFO::Fitting model to feature number 709, F739
## 2023-10-24 17:45:10.9416 INFO::Fitting model to feature number 710, F740
## 2023-10-24 17:45:10.944799 INFO::Fitting model to feature number 711, F741
## 2023-10-24 17:45:10.948006 INFO::Fitting model to feature number 712, F742
## 2023-10-24 17:45:10.951278 INFO::Fitting model to feature number 713, F743
## 2023-10-24 17:45:10.954546 INFO::Fitting model to feature number 714, F744
## 2023-10-24 17:45:10.957812 INFO::Fitting model to feature number 715, F745
## 2023-10-24 17:45:10.961066 INFO::Fitting model to feature number 716, F746
## 2023-10-24 17:45:10.96429 INFO::Fitting model to feature number 717, F747
## 2023-10-24 17:45:10.967516 INFO::Fitting model to feature number 718, F748
## 2023-10-24 17:45:10.970768 INFO::Fitting model to feature number 719, F749
## 2023-10-24 17:45:10.974055 INFO::Fitting model to feature number 720, F750
## 2023-10-24 17:45:10.977324 INFO::Fitting model to feature number 721, F751
## 2023-10-24 17:45:10.980606 INFO::Fitting model to feature number 722, F752
## 2023-10-24 17:45:10.983809 INFO::Fitting model to feature number 723, F753
## 2023-10-24 17:45:10.987055 INFO::Fitting model to feature number 724, F754
## 2023-10-24 17:45:10.990293 INFO::Fitting model to feature number 725, F755
## 2023-10-24 17:45:10.993529 INFO::Fitting model to feature number 726, F756
## 2023-10-24 17:45:10.996783 INFO::Fitting model to feature number 727, F757
## 2023-10-24 17:45:10.999965 INFO::Fitting model to feature number 728, F758
## 2023-10-24 17:45:11.003129 INFO::Fitting model to feature number 729, F759
## 2023-10-24 17:45:11.006303 INFO::Fitting model to feature number 730, F760
## 2023-10-24 17:45:11.009543 INFO::Fitting model to feature number 731, F761
## 2023-10-24 17:45:11.012762 INFO::Fitting model to feature number 732, F762
## 2023-10-24 17:45:11.015974 INFO::Fitting model to feature number 733, F763
## 2023-10-24 17:45:11.019188 INFO::Fitting model to feature number 734, F764
## 2023-10-24 17:45:11.022433 INFO::Fitting model to feature number 735, F765
## 2023-10-24 17:45:11.025673 INFO::Fitting model to feature number 736, F766
## 2023-10-24 17:45:11.028892 INFO::Fitting model to feature number 737, F767
## 2023-10-24 17:45:11.032111 INFO::Fitting model to feature number 738, F768
## 2023-10-24 17:45:11.035325 INFO::Fitting model to feature number 739, F769
## 2023-10-24 17:45:11.03855 INFO::Fitting model to feature number 740, F770
## 2023-10-24 17:45:11.041762 INFO::Fitting model to feature number 741, F771
## 2023-10-24 17:45:11.044968 INFO::Fitting model to feature number 742, F772
## 2023-10-24 17:45:11.048173 INFO::Fitting model to feature number 743, F773
## 2023-10-24 17:45:11.05141 INFO::Fitting model to feature number 744, F774
## 2023-10-24 17:45:11.054574 INFO::Fitting model to feature number 745, F775
## 2023-10-24 17:45:11.057786 INFO::Fitting model to feature number 746, F776
## 2023-10-24 17:45:11.061018 INFO::Fitting model to feature number 747, F777
## 2023-10-24 17:45:11.06424 INFO::Fitting model to feature number 748, F778
## 2023-10-24 17:45:11.067466 INFO::Fitting model to feature number 749, F779
## 2023-10-24 17:45:11.070711 INFO::Fitting model to feature number 750, F780
## 2023-10-24 17:45:11.073962 INFO::Fitting model to feature number 751, F781
## 2023-10-24 17:45:11.0772 INFO::Fitting model to feature number 752, F782
## 2023-10-24 17:45:11.08044 INFO::Fitting model to feature number 753, F783
## 2023-10-24 17:45:11.083715 INFO::Fitting model to feature number 754, F784
## 2023-10-24 17:45:11.087003 INFO::Fitting model to feature number 755, F785
## 2023-10-24 17:45:11.090308 INFO::Fitting model to feature number 756, F786
## 2023-10-24 17:45:11.093655 INFO::Fitting model to feature number 757, F787
## 2023-10-24 17:45:11.096976 INFO::Fitting model to feature number 758, F788
## 2023-10-24 17:45:11.100308 INFO::Fitting model to feature number 759, F789
## 2023-10-24 17:45:11.103697 INFO::Fitting model to feature number 760, F790
## 2023-10-24 17:45:11.107065 INFO::Fitting model to feature number 761, F791
## 2023-10-24 17:45:11.110398 INFO::Fitting model to feature number 762, F792
## 2023-10-24 17:45:11.113693 INFO::Fitting model to feature number 763, F793
## 2023-10-24 17:45:11.116997 INFO::Fitting model to feature number 764, F794
## 2023-10-24 17:45:11.120273 INFO::Fitting model to feature number 765, F795
## 2023-10-24 17:45:11.123574 INFO::Fitting model to feature number 766, F796
## 2023-10-24 17:45:11.126865 INFO::Fitting model to feature number 767, F797
## 2023-10-24 17:45:11.13018 INFO::Fitting model to feature number 768, F798
## 2023-10-24 17:45:11.133464 INFO::Fitting model to feature number 769, F799
## 2023-10-24 17:45:11.136734 INFO::Fitting model to feature number 770, F800
## 2023-10-24 17:45:11.140006 INFO::Fitting model to feature number 771, F801
## 2023-10-24 17:45:11.143307 INFO::Fitting model to feature number 772, F802
## 2023-10-24 17:45:11.146594 INFO::Fitting model to feature number 773, F803
## 2023-10-24 17:45:11.149937 INFO::Fitting model to feature number 774, F804
## 2023-10-24 17:45:11.153207 INFO::Fitting model to feature number 775, F805
## 2023-10-24 17:45:11.156535 INFO::Fitting model to feature number 776, F806
## 2023-10-24 17:45:11.159786 INFO::Fitting model to feature number 777, F808
## 2023-10-24 17:45:11.163031 INFO::Fitting model to feature number 778, F809
## 2023-10-24 17:45:11.166292 INFO::Fitting model to feature number 779, F810
## 2023-10-24 17:45:11.169576 INFO::Fitting model to feature number 780, F811
## 2023-10-24 17:45:11.172875 INFO::Fitting model to feature number 781, F812
## 2023-10-24 17:45:11.176203 INFO::Fitting model to feature number 782, F813
## 2023-10-24 17:45:11.179667 INFO::Fitting model to feature number 783, F814
## 2023-10-24 17:45:11.182908 INFO::Fitting model to feature number 784, F815
## 2023-10-24 17:45:11.18625 INFO::Fitting model to feature number 785, F816
## 2023-10-24 17:45:11.189522 INFO::Fitting model to feature number 786, F817
## 2023-10-24 17:45:11.192788 INFO::Fitting model to feature number 787, F818
## 2023-10-24 17:45:11.196098 INFO::Fitting model to feature number 788, F819
## 2023-10-24 17:45:11.199395 INFO::Fitting model to feature number 789, F820
## 2023-10-24 17:45:11.202791 INFO::Fitting model to feature number 790, F821
## 2023-10-24 17:45:11.206079 INFO::Fitting model to feature number 791, F822
## 2023-10-24 17:45:11.209412 INFO::Fitting model to feature number 792, F823
## 2023-10-24 17:45:11.212733 INFO::Fitting model to feature number 793, F824
## 2023-10-24 17:45:11.216094 INFO::Fitting model to feature number 794, F825
## 2023-10-24 17:45:11.219453 INFO::Fitting model to feature number 795, F826
## 2023-10-24 17:45:11.222847 INFO::Fitting model to feature number 796, F827
## 2023-10-24 17:45:11.226255 INFO::Fitting model to feature number 797, F828
## 2023-10-24 17:45:11.229865 INFO::Fitting model to feature number 798, F829
## 2023-10-24 17:45:11.233585 INFO::Fitting model to feature number 799, F830
## 2023-10-24 17:45:11.237258 INFO::Fitting model to feature number 800, F831
## 2023-10-24 17:45:11.241047 INFO::Fitting model to feature number 801, F832
## 2023-10-24 17:45:11.244801 INFO::Fitting model to feature number 802, F833
## 2023-10-24 17:45:11.248809 INFO::Fitting model to feature number 803, F834
## 2023-10-24 17:45:11.252825 INFO::Fitting model to feature number 804, F835
## 2023-10-24 17:45:11.25618 INFO::Fitting model to feature number 805, F836
## 2023-10-24 17:45:11.25953 INFO::Fitting model to feature number 806, F837
## 2023-10-24 17:45:11.262857 INFO::Fitting model to feature number 807, F838
## 2023-10-24 17:45:11.266206 INFO::Fitting model to feature number 808, F839
## 2023-10-24 17:45:11.269551 INFO::Fitting model to feature number 809, F840
## 2023-10-24 17:45:11.272892 INFO::Fitting model to feature number 810, F841
## 2023-10-24 17:45:11.276169 INFO::Fitting model to feature number 811, F842
## 2023-10-24 17:45:11.279504 INFO::Fitting model to feature number 812, F843
## 2023-10-24 17:45:11.282835 INFO::Fitting model to feature number 813, F844
## 2023-10-24 17:45:11.286223 INFO::Fitting model to feature number 814, F845
## 2023-10-24 17:45:11.289585 INFO::Fitting model to feature number 815, F846
## 2023-10-24 17:45:11.292953 INFO::Fitting model to feature number 816, F847
## 2023-10-24 17:45:11.29633 INFO::Fitting model to feature number 817, F848
## 2023-10-24 17:45:11.299709 INFO::Fitting model to feature number 818, F849
## 2023-10-24 17:45:11.303081 INFO::Fitting model to feature number 819, F850
## 2023-10-24 17:45:11.306463 INFO::Fitting model to feature number 820, F851
## 2023-10-24 17:45:11.309828 INFO::Fitting model to feature number 821, F852
## 2023-10-24 17:45:11.313174 INFO::Fitting model to feature number 822, F853
## 2023-10-24 17:45:11.316504 INFO::Fitting model to feature number 823, F854
## 2023-10-24 17:45:11.31988 INFO::Fitting model to feature number 824, F855
## 2023-10-24 17:45:11.323207 INFO::Fitting model to feature number 825, F856
## 2023-10-24 17:45:11.326454 INFO::Fitting model to feature number 826, F857
## 2023-10-24 17:45:11.329773 INFO::Fitting model to feature number 827, F858
## 2023-10-24 17:45:11.333102 INFO::Fitting model to feature number 828, F859
## 2023-10-24 17:45:11.336403 INFO::Fitting model to feature number 829, F860
## 2023-10-24 17:45:11.339735 INFO::Fitting model to feature number 830, F861
## 2023-10-24 17:45:11.343096 INFO::Fitting model to feature number 831, F862
## 2023-10-24 17:45:11.346446 INFO::Fitting model to feature number 832, F863
## 2023-10-24 17:45:11.349808 INFO::Fitting model to feature number 833, F864
## 2023-10-24 17:45:11.353184 INFO::Fitting model to feature number 834, F865
## 2023-10-24 17:45:11.356586 INFO::Fitting model to feature number 835, F866
## 2023-10-24 17:45:11.360005 INFO::Fitting model to feature number 836, F867
## 2023-10-24 17:45:11.363384 INFO::Fitting model to feature number 837, F868
## 2023-10-24 17:45:11.366836 INFO::Fitting model to feature number 838, F869
## 2023-10-24 17:45:11.370281 INFO::Fitting model to feature number 839, F870
## 2023-10-24 17:45:11.373711 INFO::Fitting model to feature number 840, F871
## 2023-10-24 17:45:11.377115 INFO::Fitting model to feature number 841, F872
## 2023-10-24 17:45:11.380432 INFO::Fitting model to feature number 842, F873
## 2023-10-24 17:45:11.383806 INFO::Fitting model to feature number 843, F874
## 2023-10-24 17:45:11.38714 INFO::Fitting model to feature number 844, F875
## 2023-10-24 17:45:11.390481 INFO::Fitting model to feature number 845, F876
## 2023-10-24 17:45:11.393831 INFO::Fitting model to feature number 846, F877
## 2023-10-24 17:45:11.397153 INFO::Fitting model to feature number 847, F878
## 2023-10-24 17:45:11.40047 INFO::Fitting model to feature number 848, F879
## 2023-10-24 17:45:11.403798 INFO::Fitting model to feature number 849, F880
## 2023-10-24 17:45:11.407156 INFO::Fitting model to feature number 850, F881
## 2023-10-24 17:45:11.41048 INFO::Fitting model to feature number 851, F882
## 2023-10-24 17:45:11.413812 INFO::Fitting model to feature number 852, F883
## 2023-10-24 17:45:11.417162 INFO::Fitting model to feature number 853, F884
## 2023-10-24 17:45:11.420511 INFO::Fitting model to feature number 854, F885
## 2023-10-24 17:45:11.423898 INFO::Fitting model to feature number 855, F886
## 2023-10-24 17:45:11.427272 INFO::Fitting model to feature number 856, F887
## 2023-10-24 17:45:11.430655 INFO::Fitting model to feature number 857, F888
## 2023-10-24 17:45:11.434035 INFO::Fitting model to feature number 858, F889
## 2023-10-24 17:45:11.43741 INFO::Fitting model to feature number 859, F890
## 2023-10-24 17:45:11.440782 INFO::Fitting model to feature number 860, F891
## 2023-10-24 17:45:11.444173 INFO::Fitting model to feature number 861, F892
## 2023-10-24 17:45:11.447585 INFO::Fitting model to feature number 862, F893
## 2023-10-24 17:45:11.451004 INFO::Fitting model to feature number 863, F894
## 2023-10-24 17:45:11.454376 INFO::Fitting model to feature number 864, F895
## 2023-10-24 17:45:11.45784 INFO::Fitting model to feature number 865, F896
## 2023-10-24 17:45:11.461255 INFO::Fitting model to feature number 866, F897
## 2023-10-24 17:45:11.464709 INFO::Fitting model to feature number 867, F898
## 2023-10-24 17:45:11.513881 INFO::Fitting model to feature number 868, F899
## 2023-10-24 17:45:11.518082 INFO::Fitting model to feature number 869, F900
## 2023-10-24 17:45:11.676809 INFO::Counting total values for each feature
## 2023-10-24 17:45:11.794302 INFO::Writing filtered data to file Macarron_output/maaslin2_results/features/filtered_data.tsv
## 2023-10-24 17:45:11.941251 INFO::Writing filtered, normalized data to file Macarron_output/maaslin2_results/features/filtered_data_norm.tsv
## 2023-10-24 17:45:12.086611 INFO::Writing filtered, normalized, transformed data to file Macarron_output/maaslin2_results/features/filtered_data_norm_transformed.tsv
## 2023-10-24 17:45:12.231021 INFO::Writing residuals to file Macarron_output/maaslin2_results/fits/residuals.rds
## 2023-10-24 17:45:12.279085 INFO::Writing fitted values to file Macarron_output/maaslin2_results/fits/fitted.rds
## 2023-10-24 17:45:12.319553 INFO::Writing all results to file (ordered by increasing q-values): Macarron_output/maaslin2_results/all_results.tsv
## 2023-10-24 17:45:12.340413 INFO::Writing the significant results (those which are less than or equal to the threshold of 0.250000 ) to file (ordered by increasing q-values): Macarron_output/maaslin2_results/significant_results.tsv
## 2023-10-24 17:45:12.349866 INFO::Writing heatmap of significant results to file: Macarron_output/maaslin2_results/heatmap.pdf
## Initiating effect size calculations
## Calculating mean abundance in: IBD
## Calculating mean abundance in: Control
## Calculating effect size in: IBD
## Initiating prioritization
## Assigning ranks
## Calculating meta-rank and prioritizing metabolic features
## 2023-10-24 17:45:12.699357 INFO::Writing all prioritized metabolites to file: Macarron_output/prioritized_metabolites_all.csv
## 2023-10-24 17:45:12.710574 INFO::Writing characterizable prioritized metabolites to file: Macarron_output/prioritized_metabolites_characterizable.csv
## 2023-10-24 17:45:12.737525 INFO::Writing highly prioritized metabolites in IBD to file: Macarron_output/highly_prioritized_per_module_in_IBD.csv

3.3.2 Using dataframes as inputs

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

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

3.3.3 Running Macarron as individual functions

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

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

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

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

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

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

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

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

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

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

sessionInfo()
## R version 4.3.1 (2023-06-16)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 22.04.3 LTS
## 
## Matrix products: default
## BLAS:   /home/biocbuild/bbs-3.18-bioc/R/lib/libRblas.so 
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_GB              LC_COLLATE=C              
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## time zone: America/New_York
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats4    stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] Macarron_1.6.0              SummarizedExperiment_1.32.0
##  [3] Biobase_2.62.0              GenomicRanges_1.54.0       
##  [5] GenomeInfoDb_1.38.0         IRanges_2.36.0             
##  [7] S4Vectors_0.40.0            BiocGenerics_0.48.0        
##  [9] MatrixGenerics_1.14.0       matrixStats_1.0.0          
## [11] BiocStyle_2.30.0           
## 
## loaded via a namespace (and not attached):
##   [1] mnormt_2.1.1            DBI_1.1.3               bitops_1.0-7           
##   [4] pbapply_1.7-2           gridExtra_2.3           rlang_1.1.1            
##   [7] magrittr_2.0.3          compiler_4.3.1          RSQLite_2.3.1          
##  [10] png_0.1-8               vctrs_0.6.4             stringr_1.5.0          
##  [13] pkgconfig_2.0.3         crayon_1.5.2            fastmap_1.1.1          
##  [16] backports_1.4.1         XVector_0.42.0          utf8_1.2.4             
##  [19] rmarkdown_2.25          preprocessCore_1.64.0   bit_4.0.5              
##  [22] xfun_0.40               zlibbioc_1.48.0         cachem_1.0.8           
##  [25] jsonlite_1.8.7          blob_1.2.4              DelayedArray_0.28.0    
##  [28] BiocParallel_1.36.0     psych_2.3.9             Maaslin2_1.16.0        
##  [31] parallel_4.3.1          cluster_2.1.4           biglm_0.9-2.1          
##  [34] R6_2.5.1                RColorBrewer_1.1-3      stringi_1.7.12         
##  [37] bslib_0.5.1             rpart_4.1.21            jquerylib_0.1.4        
##  [40] Rcpp_1.0.11             bookdown_0.36           iterators_1.0.14       
##  [43] knitr_1.44              WGCNA_1.72-1            base64enc_0.1-3        
##  [46] Matrix_1.6-1.1          splines_4.3.1           nnet_7.3-19            
##  [49] tidyselect_1.2.0        rstudioapi_0.15.0       abind_1.4-5            
##  [52] yaml_2.3.7              doParallel_1.0.17       codetools_0.2-19       
##  [55] plyr_1.8.9              lattice_0.22-5          tibble_3.2.1           
##  [58] withr_2.5.1             KEGGREST_1.42.0         evaluate_0.22          
##  [61] foreign_0.8-85          survival_3.5-7          getopt_1.20.4          
##  [64] Biostrings_2.70.0       pillar_1.9.0            BiocManager_1.30.22    
##  [67] checkmate_2.2.0         foreach_1.5.2           pcaPP_2.0-3            
##  [70] generics_0.1.3          RCurl_1.98-1.12         ggplot2_3.4.4          
##  [73] munsell_0.5.0           scales_1.2.1            glue_1.6.2             
##  [76] pheatmap_1.0.12         Hmisc_5.1-1             tools_4.3.1            
##  [79] robustbase_0.99-0       data.table_1.14.8       mvtnorm_1.2-3          
##  [82] fastcluster_1.2.3       grid_4.3.1              optparse_1.7.3         
##  [85] impute_1.76.0           AnnotationDbi_1.64.0    colorspace_2.1-0       
##  [88] nlme_3.1-163            GenomeInfoDbData_1.2.11 htmlTable_2.4.1        
##  [91] Formula_1.2-5           cli_3.6.1               fansi_1.0.5            
##  [94] S4Arrays_1.2.0          dplyr_1.1.3             DEoptimR_1.1-3         
##  [97] gtable_0.3.4            hash_2.2.6.3            logging_0.10-108       
## [100] dynamicTreeCut_1.63-1   sass_0.4.7              digest_0.6.33          
## [103] SparseArray_1.2.0       htmlwidgets_1.6.2       memoise_2.0.1          
## [106] htmltools_0.5.6.1       lifecycle_1.0.3         httr_1.4.7             
## [109] GO.db_3.18.0            bit64_4.0.5

3.4 Advanced Topics

3.4.1 Generating the input chemical taxonomy file

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

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

3.4.2 Accessory output files

3.4.2.1 Macarron.log

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

3.4.2.2 modules_measures_of_success.csv

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

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

3.4.2.3 Maaslin2 results

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

3.4.3 Changing defaults

3.4.3.1 Filtering metabolic features based on prevalence

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

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

3.4.4 Minimum module size

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

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

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

3.4.5 Specifying fixed effects, random effects and reference

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

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

4 Command line invocation

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