1 Abstract

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

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

2 Installation

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

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

3 Running Macarron

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

3.1 Input CSV files

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

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

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

3.2 Output Files

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

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

3.3 Run a demo in R

3.3.1 Using CSV files as inputs

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

library(Macarron)
## Loading required package: SummarizedExperiment
## Loading required package: MatrixGenerics
## Loading required package: matrixStats
## 
## Attaching package: 'MatrixGenerics'
## The following objects are masked from 'package:matrixStats':
## 
##     colAlls, colAnyNAs, colAnys, colAvgsPerRowSet, colCollapse,
##     colCounts, colCummaxs, colCummins, colCumprods, colCumsums,
##     colDiffs, colIQRDiffs, colIQRs, colLogSumExps, colMadDiffs,
##     colMads, colMaxs, colMeans2, colMedians, colMins, colOrderStats,
##     colProds, colQuantiles, colRanges, colRanks, colSdDiffs, colSds,
##     colSums2, colTabulates, colVarDiffs, colVars, colWeightedMads,
##     colWeightedMeans, colWeightedMedians, colWeightedSds,
##     colWeightedVars, rowAlls, rowAnyNAs, rowAnys, rowAvgsPerColSet,
##     rowCollapse, rowCounts, rowCummaxs, rowCummins, rowCumprods,
##     rowCumsums, rowDiffs, rowIQRDiffs, rowIQRs, rowLogSumExps,
##     rowMadDiffs, rowMads, rowMaxs, rowMeans2, rowMedians, rowMins,
##     rowOrderStats, rowProds, rowQuantiles, rowRanges, rowRanks,
##     rowSdDiffs, rowSds, rowSums2, rowTabulates, rowVarDiffs, rowVars,
##     rowWeightedMads, rowWeightedMeans, rowWeightedMedians,
##     rowWeightedSds, rowWeightedVars
## Loading required package: GenomicRanges
## Loading required package: stats4
## Loading required package: BiocGenerics
## 
## Attaching package: 'BiocGenerics'
## The following objects are masked from 'package:stats':
## 
##     IQR, mad, sd, var, xtabs
## The following objects are masked from 'package:base':
## 
##     Filter, Find, Map, Position, Reduce, anyDuplicated, aperm, append,
##     as.data.frame, basename, cbind, colnames, dirname, do.call,
##     duplicated, eval, evalq, get, grep, grepl, intersect, is.unsorted,
##     lapply, mapply, match, mget, order, paste, pmax, pmax.int, pmin,
##     pmin.int, rank, rbind, rownames, sapply, setdiff, sort, table,
##     tapply, union, unique, unsplit, which.max, which.min
## Loading required package: S4Vectors
## 
## Attaching package: 'S4Vectors'
## The following object is masked from 'package:utils':
## 
##     findMatches
## The following objects are masked from 'package:base':
## 
##     I, expand.grid, unname
## Loading required package: IRanges
## Loading required package: GenomeInfoDb
## Loading required package: Biobase
## Welcome to Bioconductor
## 
##     Vignettes contain introductory material; view with
##     'browseVignettes()'. To cite Bioconductor, see
##     'citation("Biobase")', and for packages 'citation("pkgname")'.
## 
## Attaching package: 'Biobase'
## The following object is masked from 'package:MatrixGenerics':
## 
##     rowMedians
## The following objects are masked from 'package:matrixStats':
## 
##     anyMissing, rowMedians
prism_abundances <- system.file(
    'extdata','demo_abundances.csv', package="Macarron")
prism_annotations <-system.file(
    'extdata','demo_annotations.csv', package="Macarron")
prism_metadata <-system.file(
    'extdata','demo_metadata.csv', package="Macarron")
mets_taxonomy <-system.file(
    'extdata','demo_taxonomy.csv', package="Macarron")
prism_prioritized <- Macarron::Macarron(input_abundances = prism_abundances,
                                        input_annotations = prism_annotations,
                                        input_metadata = prism_metadata,
                                        input_taxonomy = mets_taxonomy)
## 2023-06-13 19:06:50.293318 INFO::Creating output folder.
## 2023-06-13 19:06:50.414058 INFO::Writing function arguments to log file
## Samples with both abundances and metadata: 102
## 2023-06-13 19:06:50.658143 INFO::Summarized Experiment created.
## 2023-06-13 19:06:50.662137 INFO::Metadata chosen for prevalence filtering: diagnosis
## 869 features pass chosen minimum prevalence threshold of 0.7.
## Calculating pairwise correlations in phenotype: IBD
## 
## Calculating pairwise correlations in phenotype: Control
## Distance matrix with 869 features created.
## 2023-06-13 19:07:01.709015 INFO::Distance matrix with 869 metabolic features created.
## Initiating module detection
## 2023-06-13 19:07:01.711426 INFO::Minimum module size used for this dataset: 10
## Tree constructed
## Evaluating measures of success
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
## 2023-06-13 19:07:04.47223 INFO::Total number of modules detected: 30
## Initiating AVA calculations
## Finding anchors
## Calculating AVA
## Initiating q-value calculations
## [1] "Creating output folder"
## [1] "Creating output feature tables folder"
## [1] "Creating output fits folder"
## [1] "Creating output figures folder"
## 2023-06-13 19:07:10.404217 INFO::Writing function arguments to log file
## 2023-06-13 19:07:10.420646 INFO::Verifying options selected are valid
## 2023-06-13 19:07:10.519222 INFO::Determining format of input files
## 2023-06-13 19:07:10.521373 INFO::Input format is data samples as columns and metadata samples as rows
## 2023-06-13 19:07:10.574226 INFO::Formula for fixed effects: expr ~  diagnosis + age + antibiotics
## 2023-06-13 19:07:10.577907 INFO::Filter data based on min abundance and min prevalence
## 2023-06-13 19:07:10.579895 INFO::Total samples in data: 102
## 2023-06-13 19:07:10.581669 INFO::Min samples required with min abundance for a feature not to be filtered: 0.000000
## 2023-06-13 19:07:10.61706 INFO::Total filtered features: 0
## 2023-06-13 19:07:10.619371 INFO::Filtered feature names from abundance and prevalence filtering:
## 2023-06-13 19:07:10.682791 INFO::Total filtered features with variance filtering: 0
## 2023-06-13 19:07:10.684936 INFO::Filtered feature names from variance filtering:
## 2023-06-13 19:07:10.686757 INFO::Running selected normalization method: NONE
## 2023-06-13 19:07:10.688751 INFO::Applying z-score to standardize continuous metadata
## 2023-06-13 19:07:10.749092 INFO::Running selected transform method: NONE
## 2023-06-13 19:07:10.751563 INFO::Running selected analysis method: LM
## 2023-06-13 19:07:10.76503 INFO::Fitting model to feature number 1, F1
## 2023-06-13 19:07:10.789244 INFO::Fitting model to feature number 2, F2
## 2023-06-13 19:07:10.799362 INFO::Fitting model to feature number 3, F3
## 2023-06-13 19:07:10.80889 INFO::Fitting model to feature number 4, F4
## 2023-06-13 19:07:10.818556 INFO::Fitting model to feature number 5, F5
## 2023-06-13 19:07:10.828343 INFO::Fitting model to feature number 6, F6
## 2023-06-13 19:07:10.837274 INFO::Fitting model to feature number 7, F7
## 2023-06-13 19:07:10.848173 INFO::Fitting model to feature number 8, F8
## 2023-06-13 19:07:10.857262 INFO::Fitting model to feature number 9, F9
## 2023-06-13 19:07:10.866156 INFO::Fitting model to feature number 10, F10
## 2023-06-13 19:07:10.875585 INFO::Fitting model to feature number 11, F11
## 2023-06-13 19:07:10.884856 INFO::Fitting model to feature number 12, F12
## 2023-06-13 19:07:10.894824 INFO::Fitting model to feature number 13, F13
## 2023-06-13 19:07:10.905455 INFO::Fitting model to feature number 14, F14
## 2023-06-13 19:07:10.915512 INFO::Fitting model to feature number 15, F15
## 2023-06-13 19:07:10.924685 INFO::Fitting model to feature number 16, F16
## 2023-06-13 19:07:10.933616 INFO::Fitting model to feature number 17, F17
## 2023-06-13 19:07:10.942242 INFO::Fitting model to feature number 18, F18
## 2023-06-13 19:07:10.952024 INFO::Fitting model to feature number 19, F19
## 2023-06-13 19:07:10.962143 INFO::Fitting model to feature number 20, F20
## 2023-06-13 19:07:10.971815 INFO::Fitting model to feature number 21, F21
## 2023-06-13 19:07:10.981305 INFO::Fitting model to feature number 22, F22
## 2023-06-13 19:07:10.991854 INFO::Fitting model to feature number 23, F23
## 2023-06-13 19:07:11.001647 INFO::Fitting model to feature number 24, F24
## 2023-06-13 19:07:11.011029 INFO::Fitting model to feature number 25, F25
## 2023-06-13 19:07:11.021247 INFO::Fitting model to feature number 26, F26
## 2023-06-13 19:07:11.030785 INFO::Fitting model to feature number 27, F27
## 2023-06-13 19:07:11.040665 INFO::Fitting model to feature number 28, F28
## 2023-06-13 19:07:11.050253 INFO::Fitting model to feature number 29, F29
## 2023-06-13 19:07:11.060137 INFO::Fitting model to feature number 30, F30
## 2023-06-13 19:07:11.07249 INFO::Fitting model to feature number 31, F31
## 2023-06-13 19:07:11.081699 INFO::Fitting model to feature number 32, F32
## 2023-06-13 19:07:11.092608 INFO::Fitting model to feature number 33, F33
## 2023-06-13 19:07:11.102375 INFO::Fitting model to feature number 34, F34
## 2023-06-13 19:07:11.111919 INFO::Fitting model to feature number 35, F35
## 2023-06-13 19:07:11.121712 INFO::Fitting model to feature number 36, F36
## 2023-06-13 19:07:11.131175 INFO::Fitting model to feature number 37, F37
## 2023-06-13 19:07:11.140159 INFO::Fitting model to feature number 38, F38
## 2023-06-13 19:07:11.14936 INFO::Fitting model to feature number 39, F39
## 2023-06-13 19:07:11.158915 INFO::Fitting model to feature number 40, F40
## 2023-06-13 19:07:11.169437 INFO::Fitting model to feature number 41, F41
## 2023-06-13 19:07:11.179191 INFO::Fitting model to feature number 42, F43
## 2023-06-13 19:07:11.189176 INFO::Fitting model to feature number 43, F44
## 2023-06-13 19:07:11.199163 INFO::Fitting model to feature number 44, F45
## 2023-06-13 19:07:11.208801 INFO::Fitting model to feature number 45, F46
## 2023-06-13 19:07:11.218405 INFO::Fitting model to feature number 46, F47
## 2023-06-13 19:07:11.22952 INFO::Fitting model to feature number 47, F48
## 2023-06-13 19:07:11.239843 INFO::Fitting model to feature number 48, F49
## 2023-06-13 19:07:11.24921 INFO::Fitting model to feature number 49, F50
## 2023-06-13 19:07:11.258365 INFO::Fitting model to feature number 50, F51
## 2023-06-13 19:07:11.269424 INFO::Fitting model to feature number 51, F52
## 2023-06-13 19:07:11.279495 INFO::Fitting model to feature number 52, F53
## 2023-06-13 19:07:11.290516 INFO::Fitting model to feature number 53, F54
## 2023-06-13 19:07:11.300741 INFO::Fitting model to feature number 54, F55
## 2023-06-13 19:07:11.311083 INFO::Fitting model to feature number 55, F56
## 2023-06-13 19:07:11.321691 INFO::Fitting model to feature number 56, F57
## 2023-06-13 19:07:11.332218 INFO::Fitting model to feature number 57, F58
## 2023-06-13 19:07:11.344159 INFO::Fitting model to feature number 58, F59
## 2023-06-13 19:07:11.353697 INFO::Fitting model to feature number 59, F60
## 2023-06-13 19:07:11.362936 INFO::Fitting model to feature number 60, F63
## 2023-06-13 19:07:11.372789 INFO::Fitting model to feature number 61, F64
## 2023-06-13 19:07:11.382341 INFO::Fitting model to feature number 62, F65
## 2023-06-13 19:07:11.392199 INFO::Fitting model to feature number 63, F66
## 2023-06-13 19:07:11.402138 INFO::Fitting model to feature number 64, F67
## 2023-06-13 19:07:11.411486 INFO::Fitting model to feature number 65, F68
## 2023-06-13 19:07:11.420995 INFO::Fitting model to feature number 66, F69
## 2023-06-13 19:07:11.430926 INFO::Fitting model to feature number 67, F70
## 2023-06-13 19:07:11.441347 INFO::Fitting model to feature number 68, F71
## 2023-06-13 19:07:11.450543 INFO::Fitting model to feature number 69, F72
## 2023-06-13 19:07:11.459671 INFO::Fitting model to feature number 70, F73
## 2023-06-13 19:07:11.468733 INFO::Fitting model to feature number 71, F74
## 2023-06-13 19:07:11.479999 INFO::Fitting model to feature number 72, F76
## 2023-06-13 19:07:11.489461 INFO::Fitting model to feature number 73, F77
## 2023-06-13 19:07:11.500056 INFO::Fitting model to feature number 74, F78
## 2023-06-13 19:07:11.509527 INFO::Fitting model to feature number 75, F79
## 2023-06-13 19:07:11.518873 INFO::Fitting model to feature number 76, F80
## 2023-06-13 19:07:11.529194 INFO::Fitting model to feature number 77, F81
## 2023-06-13 19:07:11.539172 INFO::Fitting model to feature number 78, F82
## 2023-06-13 19:07:11.548724 INFO::Fitting model to feature number 79, F83
## 2023-06-13 19:07:11.55831 INFO::Fitting model to feature number 80, F84
## 2023-06-13 19:07:11.568087 INFO::Fitting model to feature number 81, F85
## 2023-06-13 19:07:11.581364 INFO::Fitting model to feature number 82, F86
## 2023-06-13 19:07:11.591388 INFO::Fitting model to feature number 83, F87
## 2023-06-13 19:07:11.600546 INFO::Fitting model to feature number 84, F88
## 2023-06-13 19:07:11.609487 INFO::Fitting model to feature number 85, F89
## 2023-06-13 19:07:11.618781 INFO::Fitting model to feature number 86, F90
## 2023-06-13 19:07:11.628009 INFO::Fitting model to feature number 87, F91
## 2023-06-13 19:07:11.637425 INFO::Fitting model to feature number 88, F92
## 2023-06-13 19:07:11.647083 INFO::Fitting model to feature number 89, F93
## 2023-06-13 19:07:11.657153 INFO::Fitting model to feature number 90, F94
## 2023-06-13 19:07:11.666723 INFO::Fitting model to feature number 91, F95
## 2023-06-13 19:07:11.676241 INFO::Fitting model to feature number 92, F96
## 2023-06-13 19:07:11.68547 INFO::Fitting model to feature number 93, F97
## 2023-06-13 19:07:11.694916 INFO::Fitting model to feature number 94, F98
## 2023-06-13 19:07:11.704852 INFO::Fitting model to feature number 95, F99
## 2023-06-13 19:07:11.715236 INFO::Fitting model to feature number 96, F100
## 2023-06-13 19:07:11.765929 INFO::Fitting model to feature number 97, F101
## 2023-06-13 19:07:11.775183 INFO::Fitting model to feature number 98, F102
## 2023-06-13 19:07:11.783176 INFO::Fitting model to feature number 99, F103
## 2023-06-13 19:07:11.791131 INFO::Fitting model to feature number 100, F104
## 2023-06-13 19:07:11.799906 INFO::Fitting model to feature number 101, F105
## 2023-06-13 19:07:11.810417 INFO::Fitting model to feature number 102, F106
## 2023-06-13 19:07:11.822096 INFO::Fitting model to feature number 103, F107
## 2023-06-13 19:07:11.831999 INFO::Fitting model to feature number 104, F108
## 2023-06-13 19:07:11.882346 INFO::Fitting model to feature number 105, F109
## 2023-06-13 19:07:11.891603 INFO::Fitting model to feature number 106, F110
## 2023-06-13 19:07:11.901014 INFO::Fitting model to feature number 107, F111
## 2023-06-13 19:07:11.910499 INFO::Fitting model to feature number 108, F112
## 2023-06-13 19:07:11.920186 INFO::Fitting model to feature number 109, F113
## 2023-06-13 19:07:11.929441 INFO::Fitting model to feature number 110, F114
## 2023-06-13 19:07:11.938067 INFO::Fitting model to feature number 111, F115
## 2023-06-13 19:07:11.949803 INFO::Fitting model to feature number 112, F117
## 2023-06-13 19:07:11.958535 INFO::Fitting model to feature number 113, F118
## 2023-06-13 19:07:11.968309 INFO::Fitting model to feature number 114, F119
## 2023-06-13 19:07:11.976767 INFO::Fitting model to feature number 115, F120
## 2023-06-13 19:07:11.985838 INFO::Fitting model to feature number 116, F121
## 2023-06-13 19:07:11.996216 INFO::Fitting model to feature number 117, F122
## 2023-06-13 19:07:12.005105 INFO::Fitting model to feature number 118, F123
## 2023-06-13 19:07:12.013854 INFO::Fitting model to feature number 119, F124
## 2023-06-13 19:07:12.023134 INFO::Fitting model to feature number 120, F125
## 2023-06-13 19:07:12.032227 INFO::Fitting model to feature number 121, F126
## 2023-06-13 19:07:12.041025 INFO::Fitting model to feature number 122, F127
## 2023-06-13 19:07:12.04994 INFO::Fitting model to feature number 123, F128
## 2023-06-13 19:07:12.058909 INFO::Fitting model to feature number 124, F129
## 2023-06-13 19:07:12.06797 INFO::Fitting model to feature number 125, F130
## 2023-06-13 19:07:12.117697 INFO::Fitting model to feature number 126, F131
## 2023-06-13 19:07:12.127546 INFO::Fitting model to feature number 127, F132
## 2023-06-13 19:07:12.137017 INFO::Fitting model to feature number 128, F133
## 2023-06-13 19:07:12.1469 INFO::Fitting model to feature number 129, F134
## 2023-06-13 19:07:12.155869 INFO::Fitting model to feature number 130, F135
## 2023-06-13 19:07:12.164375 INFO::Fitting model to feature number 131, F136
## 2023-06-13 19:07:12.172757 INFO::Fitting model to feature number 132, F137
## 2023-06-13 19:07:12.221868 INFO::Fitting model to feature number 133, F138
## 2023-06-13 19:07:12.23074 INFO::Fitting model to feature number 134, F139
## 2023-06-13 19:07:12.239289 INFO::Fitting model to feature number 135, F140
## 2023-06-13 19:07:12.247889 INFO::Fitting model to feature number 136, F141
## 2023-06-13 19:07:12.256483 INFO::Fitting model to feature number 137, F142
## 2023-06-13 19:07:12.265152 INFO::Fitting model to feature number 138, F143
## 2023-06-13 19:07:12.273699 INFO::Fitting model to feature number 139, F144
## 2023-06-13 19:07:12.284556 INFO::Fitting model to feature number 140, F145
## 2023-06-13 19:07:12.29329 INFO::Fitting model to feature number 141, F146
## 2023-06-13 19:07:12.302337 INFO::Fitting model to feature number 142, F147
## 2023-06-13 19:07:12.311315 INFO::Fitting model to feature number 143, F148
## 2023-06-13 19:07:12.320279 INFO::Fitting model to feature number 144, F149
## 2023-06-13 19:07:12.329244 INFO::Fitting model to feature number 145, F150
## 2023-06-13 19:07:12.338073 INFO::Fitting model to feature number 146, F152
## 2023-06-13 19:07:12.346313 INFO::Fitting model to feature number 147, F153
## 2023-06-13 19:07:12.355463 INFO::Fitting model to feature number 148, F154
## 2023-06-13 19:07:12.364675 INFO::Fitting model to feature number 149, F155
## 2023-06-13 19:07:12.375236 INFO::Fitting model to feature number 150, F156
## 2023-06-13 19:07:12.387823 INFO::Fitting model to feature number 151, F157
## 2023-06-13 19:07:12.398464 INFO::Fitting model to feature number 152, F158
## 2023-06-13 19:07:12.407388 INFO::Fitting model to feature number 153, F159
## 2023-06-13 19:07:12.457488 INFO::Fitting model to feature number 154, F160
## 2023-06-13 19:07:12.465382 INFO::Fitting model to feature number 155, F161
## 2023-06-13 19:07:12.473967 INFO::Fitting model to feature number 156, F162
## 2023-06-13 19:07:12.484776 INFO::Fitting model to feature number 157, F163
## 2023-06-13 19:07:12.494124 INFO::Fitting model to feature number 158, F164
## 2023-06-13 19:07:12.503235 INFO::Fitting model to feature number 159, F165
## 2023-06-13 19:07:12.511974 INFO::Fitting model to feature number 160, F166
## 2023-06-13 19:07:12.521277 INFO::Fitting model to feature number 161, F167
## 2023-06-13 19:07:12.53118 INFO::Fitting model to feature number 162, F168
## 2023-06-13 19:07:12.542628 INFO::Fitting model to feature number 163, F169
## 2023-06-13 19:07:12.551306 INFO::Fitting model to feature number 164, F170
## 2023-06-13 19:07:12.559827 INFO::Fitting model to feature number 165, F171
## 2023-06-13 19:07:12.568221 INFO::Fitting model to feature number 166, F172
## 2023-06-13 19:07:12.577155 INFO::Fitting model to feature number 167, F173
## 2023-06-13 19:07:12.586565 INFO::Fitting model to feature number 168, F174
## 2023-06-13 19:07:12.596324 INFO::Fitting model to feature number 169, F175
## 2023-06-13 19:07:12.60646 INFO::Fitting model to feature number 170, F176
## 2023-06-13 19:07:12.614904 INFO::Fitting model to feature number 171, F177
## 2023-06-13 19:07:12.626776 INFO::Fitting model to feature number 172, F178
## 2023-06-13 19:07:12.639868 INFO::Fitting model to feature number 173, F179
## 2023-06-13 19:07:12.649168 INFO::Fitting model to feature number 174, F180
## 2023-06-13 19:07:12.658371 INFO::Fitting model to feature number 175, F181
## 2023-06-13 19:07:12.668102 INFO::Fitting model to feature number 176, F182
## 2023-06-13 19:07:12.676797 INFO::Fitting model to feature number 177, F183
## 2023-06-13 19:07:12.685624 INFO::Fitting model to feature number 178, F184
## 2023-06-13 19:07:12.695144 INFO::Fitting model to feature number 179, F185
## 2023-06-13 19:07:12.706173 INFO::Fitting model to feature number 180, F186
## 2023-06-13 19:07:12.714959 INFO::Fitting model to feature number 181, F187
## 2023-06-13 19:07:12.725522 INFO::Fitting model to feature number 182, F188
## 2023-06-13 19:07:12.736034 INFO::Fitting model to feature number 183, F189
## 2023-06-13 19:07:12.748035 INFO::Fitting model to feature number 184, F190
## 2023-06-13 19:07:12.758076 INFO::Fitting model to feature number 185, F191
## 2023-06-13 19:07:12.769006 INFO::Fitting model to feature number 186, F192
## 2023-06-13 19:07:12.780141 INFO::Fitting model to feature number 187, F193
## 2023-06-13 19:07:12.790799 INFO::Fitting model to feature number 188, F194
## 2023-06-13 19:07:12.800262 INFO::Fitting model to feature number 189, F195
## 2023-06-13 19:07:12.811556 INFO::Fitting model to feature number 190, F196
## 2023-06-13 19:07:12.821671 INFO::Fitting model to feature number 191, F197
## 2023-06-13 19:07:12.832675 INFO::Fitting model to feature number 192, F198
## 2023-06-13 19:07:12.843935 INFO::Fitting model to feature number 193, F199
## 2023-06-13 19:07:12.852712 INFO::Fitting model to feature number 194, F200
## 2023-06-13 19:07:12.863223 INFO::Fitting model to feature number 195, F201
## 2023-06-13 19:07:12.87255 INFO::Fitting model to feature number 196, F202
## 2023-06-13 19:07:12.881955 INFO::Fitting model to feature number 197, F203
## 2023-06-13 19:07:12.89132 INFO::Fitting model to feature number 198, F204
## 2023-06-13 19:07:12.902026 INFO::Fitting model to feature number 199, F206
## 2023-06-13 19:07:12.911807 INFO::Fitting model to feature number 200, F207
## 2023-06-13 19:07:12.920883 INFO::Fitting model to feature number 201, F208
## 2023-06-13 19:07:12.931538 INFO::Fitting model to feature number 202, F209
## 2023-06-13 19:07:12.941082 INFO::Fitting model to feature number 203, F210
## 2023-06-13 19:07:12.95029 INFO::Fitting model to feature number 204, F211
## 2023-06-13 19:07:12.959972 INFO::Fitting model to feature number 205, F212
## 2023-06-13 19:07:12.970007 INFO::Fitting model to feature number 206, F213
## 2023-06-13 19:07:12.979028 INFO::Fitting model to feature number 207, F214
## 2023-06-13 19:07:12.988128 INFO::Fitting model to feature number 208, F215
## 2023-06-13 19:07:12.997869 INFO::Fitting model to feature number 209, F216
## 2023-06-13 19:07:13.006936 INFO::Fitting model to feature number 210, F217
## 2023-06-13 19:07:13.016313 INFO::Fitting model to feature number 211, F218
## 2023-06-13 19:07:13.0254 INFO::Fitting model to feature number 212, F219
## 2023-06-13 19:07:13.03457 INFO::Fitting model to feature number 213, F220
## 2023-06-13 19:07:13.044546 INFO::Fitting model to feature number 214, F221
## 2023-06-13 19:07:13.05688 INFO::Fitting model to feature number 215, F222
## 2023-06-13 19:07:13.067049 INFO::Fitting model to feature number 216, F223
## 2023-06-13 19:07:13.075978 INFO::Fitting model to feature number 217, F224
## 2023-06-13 19:07:13.086021 INFO::Fitting model to feature number 218, F225
## 2023-06-13 19:07:13.094298 INFO::Fitting model to feature number 219, F226
## 2023-06-13 19:07:13.102569 INFO::Fitting model to feature number 220, F227
## 2023-06-13 19:07:13.111645 INFO::Fitting model to feature number 221, F228
## 2023-06-13 19:07:13.11999 INFO::Fitting model to feature number 222, F229
## 2023-06-13 19:07:13.128659 INFO::Fitting model to feature number 223, F230
## 2023-06-13 19:07:13.138223 INFO::Fitting model to feature number 224, F231
## 2023-06-13 19:07:13.147094 INFO::Fitting model to feature number 225, F232
## 2023-06-13 19:07:13.156178 INFO::Fitting model to feature number 226, F233
## 2023-06-13 19:07:13.165777 INFO::Fitting model to feature number 227, F234
## 2023-06-13 19:07:13.174433 INFO::Fitting model to feature number 228, F235
## 2023-06-13 19:07:13.183514 INFO::Fitting model to feature number 229, F236
## 2023-06-13 19:07:13.193042 INFO::Fitting model to feature number 230, F237
## 2023-06-13 19:07:13.203635 INFO::Fitting model to feature number 231, F238
## 2023-06-13 19:07:13.214166 INFO::Fitting model to feature number 232, F239
## 2023-06-13 19:07:13.223635 INFO::Fitting model to feature number 233, F240
## 2023-06-13 19:07:13.232742 INFO::Fitting model to feature number 234, F241
## 2023-06-13 19:07:13.24181 INFO::Fitting model to feature number 235, F242
## 2023-06-13 19:07:13.250835 INFO::Fitting model to feature number 236, F243
## 2023-06-13 19:07:13.26066 INFO::Fitting model to feature number 237, F244
## 2023-06-13 19:07:13.270497 INFO::Fitting model to feature number 238, F245
## 2023-06-13 19:07:13.279431 INFO::Fitting model to feature number 239, F246
## 2023-06-13 19:07:13.328471 INFO::Fitting model to feature number 240, F247
## 2023-06-13 19:07:13.338617 INFO::Fitting model to feature number 241, F248
## 2023-06-13 19:07:13.348563 INFO::Fitting model to feature number 242, F249
## 2023-06-13 19:07:13.35813 INFO::Fitting model to feature number 243, F250
## 2023-06-13 19:07:13.367164 INFO::Fitting model to feature number 244, F252
## 2023-06-13 19:07:13.376238 INFO::Fitting model to feature number 245, F253
## 2023-06-13 19:07:13.386127 INFO::Fitting model to feature number 246, F254
## 2023-06-13 19:07:13.398466 INFO::Fitting model to feature number 247, F255
## 2023-06-13 19:07:13.407794 INFO::Fitting model to feature number 248, F256
## 2023-06-13 19:07:13.416393 INFO::Fitting model to feature number 249, F257
## 2023-06-13 19:07:13.465888 INFO::Fitting model to feature number 250, F259
## 2023-06-13 19:07:13.473954 INFO::Fitting model to feature number 251, F260
## 2023-06-13 19:07:13.48196 INFO::Fitting model to feature number 252, F261
## 2023-06-13 19:07:13.490391 INFO::Fitting model to feature number 253, F262
## 2023-06-13 19:07:13.499466 INFO::Fitting model to feature number 254, F263
## 2023-06-13 19:07:13.507907 INFO::Fitting model to feature number 255, F264
## 2023-06-13 19:07:13.516402 INFO::Fitting model to feature number 256, F265
## 2023-06-13 19:07:13.525317 INFO::Fitting model to feature number 257, F266
## 2023-06-13 19:07:13.534273 INFO::Fitting model to feature number 258, F267
## 2023-06-13 19:07:13.543139 INFO::Fitting model to feature number 259, F269
## 2023-06-13 19:07:13.55223 INFO::Fitting model to feature number 260, F270
## 2023-06-13 19:07:13.561154 INFO::Fitting model to feature number 261, F271
## 2023-06-13 19:07:13.56994 INFO::Fitting model to feature number 262, F272
## 2023-06-13 19:07:13.579256 INFO::Fitting model to feature number 263, F273
## 2023-06-13 19:07:13.588832 INFO::Fitting model to feature number 264, F274
## 2023-06-13 19:07:13.59802 INFO::Fitting model to feature number 265, F276
## 2023-06-13 19:07:13.607027 INFO::Fitting model to feature number 266, F277
## 2023-06-13 19:07:13.616145 INFO::Fitting model to feature number 267, F278
## 2023-06-13 19:07:13.625534 INFO::Fitting model to feature number 268, F279
## 2023-06-13 19:07:13.634816 INFO::Fitting model to feature number 269, F280
## 2023-06-13 19:07:13.643805 INFO::Fitting model to feature number 270, F281
## 2023-06-13 19:07:13.652493 INFO::Fitting model to feature number 271, F282
## 2023-06-13 19:07:13.661447 INFO::Fitting model to feature number 272, F283
## 2023-06-13 19:07:13.670706 INFO::Fitting model to feature number 273, F284
## 2023-06-13 19:07:13.679528 INFO::Fitting model to feature number 274, F285
## 2023-06-13 19:07:13.688458 INFO::Fitting model to feature number 275, F286
## 2023-06-13 19:07:13.697417 INFO::Fitting model to feature number 276, F287
## 2023-06-13 19:07:13.706766 INFO::Fitting model to feature number 277, F288
## 2023-06-13 19:07:13.717131 INFO::Fitting model to feature number 278, F289
## 2023-06-13 19:07:13.726253 INFO::Fitting model to feature number 279, F290
## 2023-06-13 19:07:13.734883 INFO::Fitting model to feature number 280, F292
## 2023-06-13 19:07:13.743592 INFO::Fitting model to feature number 281, F293
## 2023-06-13 19:07:13.752385 INFO::Fitting model to feature number 282, F294
## 2023-06-13 19:07:13.761873 INFO::Fitting model to feature number 283, F295
## 2023-06-13 19:07:13.770788 INFO::Fitting model to feature number 284, F296
## 2023-06-13 19:07:13.779687 INFO::Fitting model to feature number 285, F297
## 2023-06-13 19:07:13.788883 INFO::Fitting model to feature number 286, F298
## 2023-06-13 19:07:13.798467 INFO::Fitting model to feature number 287, F299
## 2023-06-13 19:07:13.807659 INFO::Fitting model to feature number 288, F300
## 2023-06-13 19:07:13.816117 INFO::Fitting model to feature number 289, F301
## 2023-06-13 19:07:13.824868 INFO::Fitting model to feature number 290, F302
## 2023-06-13 19:07:13.833631 INFO::Fitting model to feature number 291, F303
## 2023-06-13 19:07:13.843182 INFO::Fitting model to feature number 292, F304
## 2023-06-13 19:07:13.852343 INFO::Fitting model to feature number 293, F305
## 2023-06-13 19:07:13.860974 INFO::Fitting model to feature number 294, F306
## 2023-06-13 19:07:13.870084 INFO::Fitting model to feature number 295, F307
## 2023-06-13 19:07:13.879041 INFO::Fitting model to feature number 296, F308
## 2023-06-13 19:07:13.888072 INFO::Fitting model to feature number 297, F309
## 2023-06-13 19:07:13.897337 INFO::Fitting model to feature number 298, F310
## 2023-06-13 19:07:13.90694 INFO::Fitting model to feature number 299, F311
## 2023-06-13 19:07:13.916912 INFO::Fitting model to feature number 300, F312
## 2023-06-13 19:07:13.92792 INFO::Fitting model to feature number 301, F313
## 2023-06-13 19:07:13.937493 INFO::Fitting model to feature number 302, F315
## 2023-06-13 19:07:13.949067 INFO::Fitting model to feature number 303, F316
## 2023-06-13 19:07:13.959868 INFO::Fitting model to feature number 304, F317
## 2023-06-13 19:07:13.968573 INFO::Fitting model to feature number 305, F318
## 2023-06-13 19:07:13.978238 INFO::Fitting model to feature number 306, F319
## 2023-06-13 19:07:13.988799 INFO::Fitting model to feature number 307, F320
## 2023-06-13 19:07:13.999418 INFO::Fitting model to feature number 308, F321
## 2023-06-13 19:07:14.00919 INFO::Fitting model to feature number 309, F322
## 2023-06-13 19:07:14.018124 INFO::Fitting model to feature number 310, F323
## 2023-06-13 19:07:14.028179 INFO::Fitting model to feature number 311, F324
## 2023-06-13 19:07:14.040055 INFO::Fitting model to feature number 312, F325
## 2023-06-13 19:07:14.051376 INFO::Fitting model to feature number 313, F326
## 2023-06-13 19:07:14.06044 INFO::Fitting model to feature number 314, F327
## 2023-06-13 19:07:14.069067 INFO::Fitting model to feature number 315, F328
## 2023-06-13 19:07:14.078704 INFO::Fitting model to feature number 316, F329
## 2023-06-13 19:07:14.087837 INFO::Fitting model to feature number 317, F330
## 2023-06-13 19:07:14.097905 INFO::Fitting model to feature number 318, F331
## 2023-06-13 19:07:14.107839 INFO::Fitting model to feature number 319, F332
## 2023-06-13 19:07:14.117156 INFO::Fitting model to feature number 320, F333
## 2023-06-13 19:07:14.126409 INFO::Fitting model to feature number 321, F334
## 2023-06-13 19:07:14.136718 INFO::Fitting model to feature number 322, F335
## 2023-06-13 19:07:14.146131 INFO::Fitting model to feature number 323, F336
## 2023-06-13 19:07:14.15662 INFO::Fitting model to feature number 324, F337
## 2023-06-13 19:07:14.166987 INFO::Fitting model to feature number 325, F338
## 2023-06-13 19:07:14.17812 INFO::Fitting model to feature number 326, F339
## 2023-06-13 19:07:14.191799 INFO::Fitting model to feature number 327, F340
## 2023-06-13 19:07:14.201655 INFO::Fitting model to feature number 328, F342
## 2023-06-13 19:07:14.211459 INFO::Fitting model to feature number 329, F343
## 2023-06-13 19:07:14.221791 INFO::Fitting model to feature number 330, F344
## 2023-06-13 19:07:14.231644 INFO::Fitting model to feature number 331, F345
## 2023-06-13 19:07:14.241149 INFO::Fitting model to feature number 332, F346
## 2023-06-13 19:07:14.252103 INFO::Fitting model to feature number 333, F347
## 2023-06-13 19:07:14.262815 INFO::Fitting model to feature number 334, F348
## 2023-06-13 19:07:14.272251 INFO::Fitting model to feature number 335, F350
## 2023-06-13 19:07:14.281147 INFO::Fitting model to feature number 336, F351
## 2023-06-13 19:07:14.295761 INFO::Fitting model to feature number 337, F352
## 2023-06-13 19:07:14.307344 INFO::Fitting model to feature number 338, F353
## 2023-06-13 19:07:14.317929 INFO::Fitting model to feature number 339, F355
## 2023-06-13 19:07:14.328091 INFO::Fitting model to feature number 340, F356
## 2023-06-13 19:07:14.339064 INFO::Fitting model to feature number 341, F357
## 2023-06-13 19:07:14.352357 INFO::Fitting model to feature number 342, F358
## 2023-06-13 19:07:14.363394 INFO::Fitting model to feature number 343, F359
## 2023-06-13 19:07:14.374486 INFO::Fitting model to feature number 344, F360
## 2023-06-13 19:07:14.384929 INFO::Fitting model to feature number 345, F361
## 2023-06-13 19:07:14.39467 INFO::Fitting model to feature number 346, F362
## 2023-06-13 19:07:14.404859 INFO::Fitting model to feature number 347, F363
## 2023-06-13 19:07:14.416526 INFO::Fitting model to feature number 348, F364
## 2023-06-13 19:07:14.428401 INFO::Fitting model to feature number 349, F365
## 2023-06-13 19:07:14.437943 INFO::Fitting model to feature number 350, F366
## 2023-06-13 19:07:14.447745 INFO::Fitting model to feature number 351, F367
## 2023-06-13 19:07:14.459067 INFO::Fitting model to feature number 352, F368
## 2023-06-13 19:07:14.469722 INFO::Fitting model to feature number 353, F369
## 2023-06-13 19:07:14.480364 INFO::Fitting model to feature number 354, F370
## 2023-06-13 19:07:14.557876 INFO::Fitting model to feature number 355, F371
## 2023-06-13 19:07:14.567164 INFO::Fitting model to feature number 356, F372
## 2023-06-13 19:07:14.578467 INFO::Fitting model to feature number 357, F373
## 2023-06-13 19:07:14.586963 INFO::Fitting model to feature number 358, F374
## 2023-06-13 19:07:14.59779 INFO::Fitting model to feature number 359, F375
## 2023-06-13 19:07:14.608384 INFO::Fitting model to feature number 360, F376
## 2023-06-13 19:07:14.618328 INFO::Fitting model to feature number 361, F377
## 2023-06-13 19:07:14.629997 INFO::Fitting model to feature number 362, F378
## 2023-06-13 19:07:14.640135 INFO::Fitting model to feature number 363, F379
## 2023-06-13 19:07:14.649866 INFO::Fitting model to feature number 364, F380
## 2023-06-13 19:07:14.659813 INFO::Fitting model to feature number 365, F381
## 2023-06-13 19:07:14.672386 INFO::Fitting model to feature number 366, F382
## 2023-06-13 19:07:14.680873 INFO::Fitting model to feature number 367, F383
## 2023-06-13 19:07:14.690105 INFO::Fitting model to feature number 368, F384
## 2023-06-13 19:07:14.699671 INFO::Fitting model to feature number 369, F386
## 2023-06-13 19:07:14.709499 INFO::Fitting model to feature number 370, F387
## 2023-06-13 19:07:14.722613 INFO::Fitting model to feature number 371, F388
## 2023-06-13 19:07:14.731996 INFO::Fitting model to feature number 372, F389
## 2023-06-13 19:07:14.781946 INFO::Fitting model to feature number 373, F390
## 2023-06-13 19:07:14.792436 INFO::Fitting model to feature number 374, F391
## 2023-06-13 19:07:14.805626 INFO::Fitting model to feature number 375, F392
## 2023-06-13 19:07:14.813862 INFO::Fitting model to feature number 376, F393
## 2023-06-13 19:07:14.824708 INFO::Fitting model to feature number 377, F394
## 2023-06-13 19:07:14.834761 INFO::Fitting model to feature number 378, F395
## 2023-06-13 19:07:14.842296 INFO::Fitting model to feature number 379, F396
## 2023-06-13 19:07:14.852027 INFO::Fitting model to feature number 380, F397
## 2023-06-13 19:07:14.862513 INFO::Fitting model to feature number 381, F398
## 2023-06-13 19:07:14.872808 INFO::Fitting model to feature number 382, F399
## 2023-06-13 19:07:14.883709 INFO::Fitting model to feature number 383, F400
## 2023-06-13 19:07:14.89457 INFO::Fitting model to feature number 384, F401
## 2023-06-13 19:07:14.905206 INFO::Fitting model to feature number 385, F402
## 2023-06-13 19:07:14.915371 INFO::Fitting model to feature number 386, F403
## 2023-06-13 19:07:14.92366 INFO::Fitting model to feature number 387, F404
## 2023-06-13 19:07:14.93319 INFO::Fitting model to feature number 388, F406
## 2023-06-13 19:07:14.943408 INFO::Fitting model to feature number 389, F407
## 2023-06-13 19:07:14.953466 INFO::Fitting model to feature number 390, F408
## 2023-06-13 19:07:14.994069 INFO::Fitting model to feature number 391, F409
## 2023-06-13 19:07:15.004525 INFO::Fitting model to feature number 392, F410
## 2023-06-13 19:07:15.014144 INFO::Fitting model to feature number 393, F411
## 2023-06-13 19:07:15.024657 INFO::Fitting model to feature number 394, F412
## 2023-06-13 19:07:15.034202 INFO::Fitting model to feature number 395, F413
## 2023-06-13 19:07:15.045593 INFO::Fitting model to feature number 396, F414
## 2023-06-13 19:07:15.054502 INFO::Fitting model to feature number 397, F415
## 2023-06-13 19:07:15.063171 INFO::Fitting model to feature number 398, F416
## 2023-06-13 19:07:15.072035 INFO::Fitting model to feature number 399, F417
## 2023-06-13 19:07:15.082935 INFO::Fitting model to feature number 400, F418
## 2023-06-13 19:07:15.093123 INFO::Fitting model to feature number 401, F419
## 2023-06-13 19:07:15.103489 INFO::Fitting model to feature number 402, F420
## 2023-06-13 19:07:15.113083 INFO::Fitting model to feature number 403, F421
## 2023-06-13 19:07:15.123699 INFO::Fitting model to feature number 404, F422
## 2023-06-13 19:07:15.134205 INFO::Fitting model to feature number 405, F423
## 2023-06-13 19:07:15.143779 INFO::Fitting model to feature number 406, F425
## 2023-06-13 19:07:15.152024 INFO::Fitting model to feature number 407, F426
## 2023-06-13 19:07:15.161324 INFO::Fitting model to feature number 408, F428
## 2023-06-13 19:07:15.209044 INFO::Fitting model to feature number 409, F429
## 2023-06-13 19:07:15.219886 INFO::Fitting model to feature number 410, F430
## 2023-06-13 19:07:15.229788 INFO::Fitting model to feature number 411, F431
## 2023-06-13 19:07:15.239394 INFO::Fitting model to feature number 412, F432
## 2023-06-13 19:07:15.248792 INFO::Fitting model to feature number 413, F433
## 2023-06-13 19:07:15.260067 INFO::Fitting model to feature number 414, F434
## 2023-06-13 19:07:15.26891 INFO::Fitting model to feature number 415, F435
## 2023-06-13 19:07:15.280502 INFO::Fitting model to feature number 416, F436
## 2023-06-13 19:07:15.289349 INFO::Fitting model to feature number 417, F437
## 2023-06-13 19:07:15.298299 INFO::Fitting model to feature number 418, F438
## 2023-06-13 19:07:15.308314 INFO::Fitting model to feature number 419, F439
## 2023-06-13 19:07:15.316924 INFO::Fitting model to feature number 420, F440
## 2023-06-13 19:07:15.325716 INFO::Fitting model to feature number 421, F441
## 2023-06-13 19:07:15.334604 INFO::Fitting model to feature number 422, F442
## 2023-06-13 19:07:15.343497 INFO::Fitting model to feature number 423, F443
## 2023-06-13 19:07:15.352206 INFO::Fitting model to feature number 424, F444
## 2023-06-13 19:07:15.361589 INFO::Fitting model to feature number 425, F445
## 2023-06-13 19:07:15.371092 INFO::Fitting model to feature number 426, F446
## 2023-06-13 19:07:15.380339 INFO::Fitting model to feature number 427, F447
## 2023-06-13 19:07:15.390114 INFO::Fitting model to feature number 428, F448
## 2023-06-13 19:07:15.400106 INFO::Fitting model to feature number 429, F449
## 2023-06-13 19:07:15.451237 INFO::Fitting model to feature number 430, F450
## 2023-06-13 19:07:15.459913 INFO::Fitting model to feature number 431, F451
## 2023-06-13 19:07:15.469362 INFO::Fitting model to feature number 432, F452
## 2023-06-13 19:07:15.478473 INFO::Fitting model to feature number 433, F454
## 2023-06-13 19:07:15.487464 INFO::Fitting model to feature number 434, F455
## 2023-06-13 19:07:15.497092 INFO::Fitting model to feature number 435, F456
## 2023-06-13 19:07:15.508667 INFO::Fitting model to feature number 436, F457
## 2023-06-13 19:07:15.517324 INFO::Fitting model to feature number 437, F458
## 2023-06-13 19:07:15.527104 INFO::Fitting model to feature number 438, F459
## 2023-06-13 19:07:15.537809 INFO::Fitting model to feature number 439, F461
## 2023-06-13 19:07:15.546905 INFO::Fitting model to feature number 440, F462
## 2023-06-13 19:07:15.5555 INFO::Fitting model to feature number 441, F463
## 2023-06-13 19:07:15.564561 INFO::Fitting model to feature number 442, F464
## 2023-06-13 19:07:15.573229 INFO::Fitting model to feature number 443, F465
## 2023-06-13 19:07:15.581976 INFO::Fitting model to feature number 444, F466
## 2023-06-13 19:07:15.591069 INFO::Fitting model to feature number 445, F467
## 2023-06-13 19:07:15.602246 INFO::Fitting model to feature number 446, F468
## 2023-06-13 19:07:15.612444 INFO::Fitting model to feature number 447, F469
## 2023-06-13 19:07:15.622555 INFO::Fitting model to feature number 448, F470
## 2023-06-13 19:07:15.636121 INFO::Fitting model to feature number 449, F471
## 2023-06-13 19:07:15.64647 INFO::Fitting model to feature number 450, F474
## 2023-06-13 19:07:15.655794 INFO::Fitting model to feature number 451, F475
## 2023-06-13 19:07:15.664506 INFO::Fitting model to feature number 452, F476
## 2023-06-13 19:07:15.674568 INFO::Fitting model to feature number 453, F477
## 2023-06-13 19:07:15.683095 INFO::Fitting model to feature number 454, F478
## 2023-06-13 19:07:15.691835 INFO::Fitting model to feature number 455, F479
## 2023-06-13 19:07:15.701511 INFO::Fitting model to feature number 456, F480
## 2023-06-13 19:07:15.712575 INFO::Fitting model to feature number 457, F481
## 2023-06-13 19:07:15.723464 INFO::Fitting model to feature number 458, F482
## 2023-06-13 19:07:15.733426 INFO::Fitting model to feature number 459, F483
## 2023-06-13 19:07:15.742336 INFO::Fitting model to feature number 460, F484
## 2023-06-13 19:07:15.752024 INFO::Fitting model to feature number 461, F485
## 2023-06-13 19:07:15.762202 INFO::Fitting model to feature number 462, F486
## 2023-06-13 19:07:15.774335 INFO::Fitting model to feature number 463, F487
## 2023-06-13 19:07:15.785061 INFO::Fitting model to feature number 464, F488
## 2023-06-13 19:07:15.796756 INFO::Fitting model to feature number 465, F489
## 2023-06-13 19:07:15.806772 INFO::Fitting model to feature number 466, F490
## 2023-06-13 19:07:15.817224 INFO::Fitting model to feature number 467, F491
## 2023-06-13 19:07:15.827436 INFO::Fitting model to feature number 468, F492
## 2023-06-13 19:07:15.83964 INFO::Fitting model to feature number 469, F493
## 2023-06-13 19:07:15.849868 INFO::Fitting model to feature number 470, F494
## 2023-06-13 19:07:15.861428 INFO::Fitting model to feature number 471, F495
## 2023-06-13 19:07:15.871185 INFO::Fitting model to feature number 472, F496
## 2023-06-13 19:07:15.880346 INFO::Fitting model to feature number 473, F497
## 2023-06-13 19:07:15.891581 INFO::Fitting model to feature number 474, F498
## 2023-06-13 19:07:15.901839 INFO::Fitting model to feature number 475, F499
## 2023-06-13 19:07:15.91172 INFO::Fitting model to feature number 476, F500
## 2023-06-13 19:07:15.922523 INFO::Fitting model to feature number 477, F501
## 2023-06-13 19:07:15.932247 INFO::Fitting model to feature number 478, F502
## 2023-06-13 19:07:15.941859 INFO::Fitting model to feature number 479, F503
## 2023-06-13 19:07:15.951552 INFO::Fitting model to feature number 480, F504
## 2023-06-13 19:07:15.960191 INFO::Fitting model to feature number 481, F505
## 2023-06-13 19:07:15.969786 INFO::Fitting model to feature number 482, F506
## 2023-06-13 19:07:15.978559 INFO::Fitting model to feature number 483, F507
## 2023-06-13 19:07:15.987515 INFO::Fitting model to feature number 484, F508
## 2023-06-13 19:07:15.998007 INFO::Fitting model to feature number 485, F509
## 2023-06-13 19:07:16.007199 INFO::Fitting model to feature number 486, F510
## 2023-06-13 19:07:16.016329 INFO::Fitting model to feature number 487, F511
## 2023-06-13 19:07:16.026176 INFO::Fitting model to feature number 488, F512
## 2023-06-13 19:07:16.03577 INFO::Fitting model to feature number 489, F513
## 2023-06-13 19:07:16.046763 INFO::Fitting model to feature number 490, F514
## 2023-06-13 19:07:16.058102 INFO::Fitting model to feature number 491, F515
## 2023-06-13 19:07:16.069169 INFO::Fitting model to feature number 492, F516
## 2023-06-13 19:07:16.080558 INFO::Fitting model to feature number 493, F517
## 2023-06-13 19:07:16.0917 INFO::Fitting model to feature number 494, F518
## 2023-06-13 19:07:16.103002 INFO::Fitting model to feature number 495, F519
## 2023-06-13 19:07:16.112255 INFO::Fitting model to feature number 496, F520
## 2023-06-13 19:07:16.121884 INFO::Fitting model to feature number 497, F521
## 2023-06-13 19:07:16.131189 INFO::Fitting model to feature number 498, F522
## 2023-06-13 19:07:16.140891 INFO::Fitting model to feature number 499, F523
## 2023-06-13 19:07:16.150148 INFO::Fitting model to feature number 500, F524
## 2023-06-13 19:07:16.159944 INFO::Fitting model to feature number 501, F525
## 2023-06-13 19:07:16.171752 INFO::Fitting model to feature number 502, F526
## 2023-06-13 19:07:16.180381 INFO::Fitting model to feature number 503, F527
## 2023-06-13 19:07:16.190268 INFO::Fitting model to feature number 504, F528
## 2023-06-13 19:07:16.199668 INFO::Fitting model to feature number 505, F529
## 2023-06-13 19:07:16.20982 INFO::Fitting model to feature number 506, F530
## 2023-06-13 19:07:16.219882 INFO::Fitting model to feature number 507, F531
## 2023-06-13 19:07:16.229268 INFO::Fitting model to feature number 508, F532
## 2023-06-13 19:07:16.240294 INFO::Fitting model to feature number 509, F533
## 2023-06-13 19:07:16.251344 INFO::Fitting model to feature number 510, F534
## 2023-06-13 19:07:16.260983 INFO::Fitting model to feature number 511, F535
## 2023-06-13 19:07:16.271413 INFO::Fitting model to feature number 512, F536
## 2023-06-13 19:07:16.280803 INFO::Fitting model to feature number 513, F537
## 2023-06-13 19:07:16.289324 INFO::Fitting model to feature number 514, F539
## 2023-06-13 19:07:16.298739 INFO::Fitting model to feature number 515, F540
## 2023-06-13 19:07:16.308732 INFO::Fitting model to feature number 516, F541
## 2023-06-13 19:07:16.31787 INFO::Fitting model to feature number 517, F543
## 2023-06-13 19:07:16.328091 INFO::Fitting model to feature number 518, F544
## 2023-06-13 19:07:16.337974 INFO::Fitting model to feature number 519, F545
## 2023-06-13 19:07:16.347396 INFO::Fitting model to feature number 520, F546
## 2023-06-13 19:07:16.357181 INFO::Fitting model to feature number 521, F547
## 2023-06-13 19:07:16.40704 INFO::Fitting model to feature number 522, F548
## 2023-06-13 19:07:16.41601 INFO::Fitting model to feature number 523, F549
## 2023-06-13 19:07:16.426049 INFO::Fitting model to feature number 524, F550
## 2023-06-13 19:07:16.435287 INFO::Fitting model to feature number 525, F551
## 2023-06-13 19:07:16.445041 INFO::Fitting model to feature number 526, F552
## 2023-06-13 19:07:16.454217 INFO::Fitting model to feature number 527, F553
## 2023-06-13 19:07:16.463459 INFO::Fitting model to feature number 528, F554
## 2023-06-13 19:07:16.473626 INFO::Fitting model to feature number 529, F555
## 2023-06-13 19:07:16.483393 INFO::Fitting model to feature number 530, F556
## 2023-06-13 19:07:16.495173 INFO::Fitting model to feature number 531, F557
## 2023-06-13 19:07:16.504996 INFO::Fitting model to feature number 532, F558
## 2023-06-13 19:07:16.51395 INFO::Fitting model to feature number 533, F559
## 2023-06-13 19:07:16.52286 INFO::Fitting model to feature number 534, F560
## 2023-06-13 19:07:16.53225 INFO::Fitting model to feature number 535, F561
## 2023-06-13 19:07:16.542971 INFO::Fitting model to feature number 536, F562
## 2023-06-13 19:07:16.552565 INFO::Fitting model to feature number 537, F563
## 2023-06-13 19:07:16.562127 INFO::Fitting model to feature number 538, F564
## 2023-06-13 19:07:16.571587 INFO::Fitting model to feature number 539, F566
## 2023-06-13 19:07:16.580767 INFO::Fitting model to feature number 540, F567
## 2023-06-13 19:07:16.590071 INFO::Fitting model to feature number 541, F568
## 2023-06-13 19:07:16.599332 INFO::Fitting model to feature number 542, F569
## 2023-06-13 19:07:16.608434 INFO::Fitting model to feature number 543, F570
## 2023-06-13 19:07:16.617618 INFO::Fitting model to feature number 544, F571
## 2023-06-13 19:07:16.626887 INFO::Fitting model to feature number 545, F572
## 2023-06-13 19:07:16.636517 INFO::Fitting model to feature number 546, F573
## 2023-06-13 19:07:16.646217 INFO::Fitting model to feature number 547, F574
## 2023-06-13 19:07:16.655877 INFO::Fitting model to feature number 548, F575
## 2023-06-13 19:07:16.665293 INFO::Fitting model to feature number 549, F576
## 2023-06-13 19:07:16.674898 INFO::Fitting model to feature number 550, F577
## 2023-06-13 19:07:16.684377 INFO::Fitting model to feature number 551, F578
## 2023-06-13 19:07:16.69423 INFO::Fitting model to feature number 552, F579
## 2023-06-13 19:07:16.703499 INFO::Fitting model to feature number 553, F580
## 2023-06-13 19:07:16.713127 INFO::Fitting model to feature number 554, F581
## 2023-06-13 19:07:16.723143 INFO::Fitting model to feature number 555, F582
## 2023-06-13 19:07:16.733104 INFO::Fitting model to feature number 556, F583
## 2023-06-13 19:07:16.742807 INFO::Fitting model to feature number 557, F584
## 2023-06-13 19:07:16.752034 INFO::Fitting model to feature number 558, F585
## 2023-06-13 19:07:16.760802 INFO::Fitting model to feature number 559, F586
## 2023-06-13 19:07:16.77001 INFO::Fitting model to feature number 560, F587
## 2023-06-13 19:07:16.77925 INFO::Fitting model to feature number 561, F588
## 2023-06-13 19:07:16.788333 INFO::Fitting model to feature number 562, F589
## 2023-06-13 19:07:16.797097 INFO::Fitting model to feature number 563, F590
## 2023-06-13 19:07:16.806265 INFO::Fitting model to feature number 564, F591
## 2023-06-13 19:07:16.815191 INFO::Fitting model to feature number 565, F592
## 2023-06-13 19:07:16.823929 INFO::Fitting model to feature number 566, F593
## 2023-06-13 19:07:16.832474 INFO::Fitting model to feature number 567, F594
## 2023-06-13 19:07:16.841405 INFO::Fitting model to feature number 568, F595
## 2023-06-13 19:07:16.850411 INFO::Fitting model to feature number 569, F596
## 2023-06-13 19:07:16.859612 INFO::Fitting model to feature number 570, F597
## 2023-06-13 19:07:16.868709 INFO::Fitting model to feature number 571, F598
## 2023-06-13 19:07:16.878312 INFO::Fitting model to feature number 572, F599
## 2023-06-13 19:07:16.887439 INFO::Fitting model to feature number 573, F600
## 2023-06-13 19:07:16.896566 INFO::Fitting model to feature number 574, F601
## 2023-06-13 19:07:16.90478 INFO::Fitting model to feature number 575, F602
## 2023-06-13 19:07:16.914046 INFO::Fitting model to feature number 576, F603
## 2023-06-13 19:07:16.922827 INFO::Fitting model to feature number 577, F605
## 2023-06-13 19:07:16.932642 INFO::Fitting model to feature number 578, F606
## 2023-06-13 19:07:16.942177 INFO::Fitting model to feature number 579, F607
## 2023-06-13 19:07:16.951654 INFO::Fitting model to feature number 580, F608
## 2023-06-13 19:07:16.960525 INFO::Fitting model to feature number 581, F609
## 2023-06-13 19:07:16.969389 INFO::Fitting model to feature number 582, F610
## 2023-06-13 19:07:16.978126 INFO::Fitting model to feature number 583, F611
## 2023-06-13 19:07:16.986957 INFO::Fitting model to feature number 584, F612
## 2023-06-13 19:07:16.996095 INFO::Fitting model to feature number 585, F613
## 2023-06-13 19:07:17.004926 INFO::Fitting model to feature number 586, F614
## 2023-06-13 19:07:17.014082 INFO::Fitting model to feature number 587, F615
## 2023-06-13 19:07:17.02297 INFO::Fitting model to feature number 588, F616
## 2023-06-13 19:07:17.035165 INFO::Fitting model to feature number 589, F617
## 2023-06-13 19:07:17.044276 INFO::Fitting model to feature number 590, F618
## 2023-06-13 19:07:17.054442 INFO::Fitting model to feature number 591, F619
## 2023-06-13 19:07:17.063914 INFO::Fitting model to feature number 592, F620
## 2023-06-13 19:07:17.072799 INFO::Fitting model to feature number 593, F621
## 2023-06-13 19:07:17.084118 INFO::Fitting model to feature number 594, F622
## 2023-06-13 19:07:17.094583 INFO::Fitting model to feature number 595, F623
## 2023-06-13 19:07:17.104977 INFO::Fitting model to feature number 596, F624
## 2023-06-13 19:07:17.114608 INFO::Fitting model to feature number 597, F625
## 2023-06-13 19:07:17.123659 INFO::Fitting model to feature number 598, F626
## 2023-06-13 19:07:17.132985 INFO::Fitting model to feature number 599, F627
## 2023-06-13 19:07:17.142254 INFO::Fitting model to feature number 600, F628
## 2023-06-13 19:07:17.1522 INFO::Fitting model to feature number 601, F629
## 2023-06-13 19:07:17.1625 INFO::Fitting model to feature number 602, F630
## 2023-06-13 19:07:17.171903 INFO::Fitting model to feature number 603, F631
## 2023-06-13 19:07:17.180904 INFO::Fitting model to feature number 604, F632
## 2023-06-13 19:07:17.239144 INFO::Fitting model to feature number 605, F633
## 2023-06-13 19:07:17.248468 INFO::Fitting model to feature number 606, F634
## 2023-06-13 19:07:17.25975 INFO::Fitting model to feature number 607, F635
## 2023-06-13 19:07:17.270643 INFO::Fitting model to feature number 608, F636
## 2023-06-13 19:07:17.280875 INFO::Fitting model to feature number 609, F637
## 2023-06-13 19:07:17.28933 INFO::Fitting model to feature number 610, F638
## 2023-06-13 19:07:17.298073 INFO::Fitting model to feature number 611, F639
## 2023-06-13 19:07:17.307588 INFO::Fitting model to feature number 612, F640
## 2023-06-13 19:07:17.3179 INFO::Fitting model to feature number 613, F641
## 2023-06-13 19:07:17.328118 INFO::Fitting model to feature number 614, F642
## 2023-06-13 19:07:17.338186 INFO::Fitting model to feature number 615, F643
## 2023-06-13 19:07:17.347169 INFO::Fitting model to feature number 616, F644
## 2023-06-13 19:07:17.356058 INFO::Fitting model to feature number 617, F645
## 2023-06-13 19:07:17.365053 INFO::Fitting model to feature number 618, F646
## 2023-06-13 19:07:17.374146 INFO::Fitting model to feature number 619, F647
## 2023-06-13 19:07:17.383214 INFO::Fitting model to feature number 620, F648
## 2023-06-13 19:07:17.391958 INFO::Fitting model to feature number 621, F649
## 2023-06-13 19:07:17.400451 INFO::Fitting model to feature number 622, F650
## 2023-06-13 19:07:17.409318 INFO::Fitting model to feature number 623, F651
## 2023-06-13 19:07:17.418732 INFO::Fitting model to feature number 624, F652
## 2023-06-13 19:07:17.4277 INFO::Fitting model to feature number 625, F653
## 2023-06-13 19:07:17.437256 INFO::Fitting model to feature number 626, F654
## 2023-06-13 19:07:17.446024 INFO::Fitting model to feature number 627, F655
## 2023-06-13 19:07:17.454864 INFO::Fitting model to feature number 628, F656
## 2023-06-13 19:07:17.463591 INFO::Fitting model to feature number 629, F657
## 2023-06-13 19:07:17.472616 INFO::Fitting model to feature number 630, F658
## 2023-06-13 19:07:17.481141 INFO::Fitting model to feature number 631, F659
## 2023-06-13 19:07:17.48951 INFO::Fitting model to feature number 632, F660
## 2023-06-13 19:07:17.497918 INFO::Fitting model to feature number 633, F661
## 2023-06-13 19:07:17.506327 INFO::Fitting model to feature number 634, F662
## 2023-06-13 19:07:17.514663 INFO::Fitting model to feature number 635, F663
## 2023-06-13 19:07:17.523127 INFO::Fitting model to feature number 636, F664
## 2023-06-13 19:07:17.532395 INFO::Fitting model to feature number 637, F665
## 2023-06-13 19:07:17.541731 INFO::Fitting model to feature number 638, F666
## 2023-06-13 19:07:17.550108 INFO::Fitting model to feature number 639, F667
## 2023-06-13 19:07:17.559572 INFO::Fitting model to feature number 640, F668
## 2023-06-13 19:07:17.568899 INFO::Fitting model to feature number 641, F669
## 2023-06-13 19:07:17.577508 INFO::Fitting model to feature number 642, F670
## 2023-06-13 19:07:17.586582 INFO::Fitting model to feature number 643, F671
## 2023-06-13 19:07:17.595281 INFO::Fitting model to feature number 644, F672
## 2023-06-13 19:07:17.604671 INFO::Fitting model to feature number 645, F673
## 2023-06-13 19:07:17.613544 INFO::Fitting model to feature number 646, F674
## 2023-06-13 19:07:17.622487 INFO::Fitting model to feature number 647, F675
## 2023-06-13 19:07:17.632169 INFO::Fitting model to feature number 648, F676
## 2023-06-13 19:07:17.641067 INFO::Fitting model to feature number 649, F677
## 2023-06-13 19:07:17.652114 INFO::Fitting model to feature number 650, F678
## 2023-06-13 19:07:17.66225 INFO::Fitting model to feature number 651, F679
## 2023-06-13 19:07:17.671118 INFO::Fitting model to feature number 652, F680
## 2023-06-13 19:07:17.680377 INFO::Fitting model to feature number 653, F681
## 2023-06-13 19:07:17.692153 INFO::Fitting model to feature number 654, F682
## 2023-06-13 19:07:17.702066 INFO::Fitting model to feature number 655, F683
## 2023-06-13 19:07:17.710767 INFO::Fitting model to feature number 656, F684
## 2023-06-13 19:07:17.719898 INFO::Fitting model to feature number 657, F685
## 2023-06-13 19:07:17.730385 INFO::Fitting model to feature number 658, F686
## 2023-06-13 19:07:17.739878 INFO::Fitting model to feature number 659, F687
## 2023-06-13 19:07:17.749398 INFO::Fitting model to feature number 660, F688
## 2023-06-13 19:07:17.759271 INFO::Fitting model to feature number 661, F689
## 2023-06-13 19:07:17.768809 INFO::Fitting model to feature number 662, F690
## 2023-06-13 19:07:17.777684 INFO::Fitting model to feature number 663, F691
## 2023-06-13 19:07:17.789882 INFO::Fitting model to feature number 664, F692
## 2023-06-13 19:07:17.801729 INFO::Fitting model to feature number 665, F693
## 2023-06-13 19:07:17.810764 INFO::Fitting model to feature number 666, F694
## 2023-06-13 19:07:17.819707 INFO::Fitting model to feature number 667, F695
## 2023-06-13 19:07:17.829628 INFO::Fitting model to feature number 668, F696
## 2023-06-13 19:07:17.838632 INFO::Fitting model to feature number 669, F697
## 2023-06-13 19:07:17.8475 INFO::Fitting model to feature number 670, F698
## 2023-06-13 19:07:17.858235 INFO::Fitting model to feature number 671, F699
## 2023-06-13 19:07:17.866184 INFO::Fitting model to feature number 672, F700
## 2023-06-13 19:07:17.874468 INFO::Fitting model to feature number 673, F701
## 2023-06-13 19:07:17.883164 INFO::Fitting model to feature number 674, F702
## 2023-06-13 19:07:17.892037 INFO::Fitting model to feature number 675, F704
## 2023-06-13 19:07:17.901576 INFO::Fitting model to feature number 676, F705
## 2023-06-13 19:07:17.911122 INFO::Fitting model to feature number 677, F706
## 2023-06-13 19:07:17.921289 INFO::Fitting model to feature number 678, F707
## 2023-06-13 19:07:17.930252 INFO::Fitting model to feature number 679, F708
## 2023-06-13 19:07:17.94032 INFO::Fitting model to feature number 680, F709
## 2023-06-13 19:07:17.950409 INFO::Fitting model to feature number 681, F710
## 2023-06-13 19:07:17.959482 INFO::Fitting model to feature number 682, F711
## 2023-06-13 19:07:17.968977 INFO::Fitting model to feature number 683, F712
## 2023-06-13 19:07:17.980293 INFO::Fitting model to feature number 684, F713
## 2023-06-13 19:07:17.990202 INFO::Fitting model to feature number 685, F714
## 2023-06-13 19:07:18.000463 INFO::Fitting model to feature number 686, F715
## 2023-06-13 19:07:18.009865 INFO::Fitting model to feature number 687, F716
## 2023-06-13 19:07:18.020399 INFO::Fitting model to feature number 688, F717
## 2023-06-13 19:07:18.029544 INFO::Fitting model to feature number 689, F718
## 2023-06-13 19:07:18.039181 INFO::Fitting model to feature number 690, F719
## 2023-06-13 19:07:18.04788 INFO::Fitting model to feature number 691, F720
## 2023-06-13 19:07:18.056955 INFO::Fitting model to feature number 692, F721
## 2023-06-13 19:07:18.065704 INFO::Fitting model to feature number 693, F722
## 2023-06-13 19:07:18.074649 INFO::Fitting model to feature number 694, F723
## 2023-06-13 19:07:18.085461 INFO::Fitting model to feature number 695, F724
## 2023-06-13 19:07:18.095769 INFO::Fitting model to feature number 696, F725
## 2023-06-13 19:07:18.104737 INFO::Fitting model to feature number 697, F726
## 2023-06-13 19:07:18.113276 INFO::Fitting model to feature number 698, F727
## 2023-06-13 19:07:18.122397 INFO::Fitting model to feature number 699, F728
## 2023-06-13 19:07:18.13124 INFO::Fitting model to feature number 700, F729
## 2023-06-13 19:07:18.140615 INFO::Fitting model to feature number 701, F730
## 2023-06-13 19:07:18.151122 INFO::Fitting model to feature number 702, F731
## 2023-06-13 19:07:18.162858 INFO::Fitting model to feature number 703, F732
## 2023-06-13 19:07:18.171229 INFO::Fitting model to feature number 704, F733
## 2023-06-13 19:07:18.18015 INFO::Fitting model to feature number 705, F734
## 2023-06-13 19:07:18.188936 INFO::Fitting model to feature number 706, F735
## 2023-06-13 19:07:18.198022 INFO::Fitting model to feature number 707, F736
## 2023-06-13 19:07:18.206473 INFO::Fitting model to feature number 708, F737
## 2023-06-13 19:07:18.215252 INFO::Fitting model to feature number 709, F739
## 2023-06-13 19:07:18.2243 INFO::Fitting model to feature number 710, F740
## 2023-06-13 19:07:18.233899 INFO::Fitting model to feature number 711, F741
## 2023-06-13 19:07:18.243102 INFO::Fitting model to feature number 712, F742
## 2023-06-13 19:07:18.252673 INFO::Fitting model to feature number 713, F743
## 2023-06-13 19:07:18.262086 INFO::Fitting model to feature number 714, F744
## 2023-06-13 19:07:18.271151 INFO::Fitting model to feature number 715, F745
## 2023-06-13 19:07:18.280277 INFO::Fitting model to feature number 716, F746
## 2023-06-13 19:07:18.289664 INFO::Fitting model to feature number 717, F747
## 2023-06-13 19:07:18.299225 INFO::Fitting model to feature number 718, F748
## 2023-06-13 19:07:18.309203 INFO::Fitting model to feature number 719, F749
## 2023-06-13 19:07:18.320724 INFO::Fitting model to feature number 720, F750
## 2023-06-13 19:07:18.335063 INFO::Fitting model to feature number 721, F751
## 2023-06-13 19:07:18.347087 INFO::Fitting model to feature number 722, F752
## 2023-06-13 19:07:18.357017 INFO::Fitting model to feature number 723, F753
## 2023-06-13 19:07:18.365996 INFO::Fitting model to feature number 724, F754
## 2023-06-13 19:07:18.374376 INFO::Fitting model to feature number 725, F755
## 2023-06-13 19:07:18.383295 INFO::Fitting model to feature number 726, F756
## 2023-06-13 19:07:18.391781 INFO::Fitting model to feature number 727, F757
## 2023-06-13 19:07:18.400336 INFO::Fitting model to feature number 728, F758
## 2023-06-13 19:07:18.409177 INFO::Fitting model to feature number 729, F759
## 2023-06-13 19:07:18.417812 INFO::Fitting model to feature number 730, F760
## 2023-06-13 19:07:18.426058 INFO::Fitting model to feature number 731, F761
## 2023-06-13 19:07:18.43551 INFO::Fitting model to feature number 732, F762
## 2023-06-13 19:07:18.444443 INFO::Fitting model to feature number 733, F763
## 2023-06-13 19:07:18.453372 INFO::Fitting model to feature number 734, F764
## 2023-06-13 19:07:18.462126 INFO::Fitting model to feature number 735, F765
## 2023-06-13 19:07:18.470809 INFO::Fitting model to feature number 736, F766
## 2023-06-13 19:07:18.479018 INFO::Fitting model to feature number 737, F767
## 2023-06-13 19:07:18.488011 INFO::Fitting model to feature number 738, F768
## 2023-06-13 19:07:18.497318 INFO::Fitting model to feature number 739, F769
## 2023-06-13 19:07:18.506064 INFO::Fitting model to feature number 740, F770
## 2023-06-13 19:07:18.514846 INFO::Fitting model to feature number 741, F771
## 2023-06-13 19:07:18.524108 INFO::Fitting model to feature number 742, F772
## 2023-06-13 19:07:18.533842 INFO::Fitting model to feature number 743, F773
## 2023-06-13 19:07:18.542979 INFO::Fitting model to feature number 744, F774
## 2023-06-13 19:07:18.551963 INFO::Fitting model to feature number 745, F775
## 2023-06-13 19:07:18.560863 INFO::Fitting model to feature number 746, F776
## 2023-06-13 19:07:18.569683 INFO::Fitting model to feature number 747, F777
## 2023-06-13 19:07:18.580433 INFO::Fitting model to feature number 748, F778
## 2023-06-13 19:07:18.589954 INFO::Fitting model to feature number 749, F779
## 2023-06-13 19:07:18.599536 INFO::Fitting model to feature number 750, F780
## 2023-06-13 19:07:18.609207 INFO::Fitting model to feature number 751, F781
## 2023-06-13 19:07:18.61921 INFO::Fitting model to feature number 752, F782
## 2023-06-13 19:07:18.629204 INFO::Fitting model to feature number 753, F783
## 2023-06-13 19:07:18.638309 INFO::Fitting model to feature number 754, F784
## 2023-06-13 19:07:18.648063 INFO::Fitting model to feature number 755, F785
## 2023-06-13 19:07:18.657964 INFO::Fitting model to feature number 756, F786
## 2023-06-13 19:07:18.667052 INFO::Fitting model to feature number 757, F787
## 2023-06-13 19:07:18.676737 INFO::Fitting model to feature number 758, F788
## 2023-06-13 19:07:18.686125 INFO::Fitting model to feature number 759, F789
## 2023-06-13 19:07:18.695433 INFO::Fitting model to feature number 760, F790
## 2023-06-13 19:07:18.704412 INFO::Fitting model to feature number 761, F791
## 2023-06-13 19:07:18.713414 INFO::Fitting model to feature number 762, F792
## 2023-06-13 19:07:18.721992 INFO::Fitting model to feature number 763, F793
## 2023-06-13 19:07:18.730946 INFO::Fitting model to feature number 764, F794
## 2023-06-13 19:07:18.741885 INFO::Fitting model to feature number 765, F795
## 2023-06-13 19:07:18.753704 INFO::Fitting model to feature number 766, F796
## 2023-06-13 19:07:18.762974 INFO::Fitting model to feature number 767, F797
## 2023-06-13 19:07:18.772597 INFO::Fitting model to feature number 768, F798
## 2023-06-13 19:07:18.78178 INFO::Fitting model to feature number 769, F799
## 2023-06-13 19:07:18.790512 INFO::Fitting model to feature number 770, F800
## 2023-06-13 19:07:18.79996 INFO::Fitting model to feature number 771, F801
## 2023-06-13 19:07:18.809155 INFO::Fitting model to feature number 772, F802
## 2023-06-13 19:07:18.817765 INFO::Fitting model to feature number 773, F803
## 2023-06-13 19:07:18.827478 INFO::Fitting model to feature number 774, F804
## 2023-06-13 19:07:18.837383 INFO::Fitting model to feature number 775, F805
## 2023-06-13 19:07:18.848486 INFO::Fitting model to feature number 776, F806
## 2023-06-13 19:07:18.858219 INFO::Fitting model to feature number 777, F808
## 2023-06-13 19:07:18.867166 INFO::Fitting model to feature number 778, F809
## 2023-06-13 19:07:18.877566 INFO::Fitting model to feature number 779, F810
## 2023-06-13 19:07:18.887241 INFO::Fitting model to feature number 780, F811
## 2023-06-13 19:07:18.896679 INFO::Fitting model to feature number 781, F812
## 2023-06-13 19:07:18.947896 INFO::Fitting model to feature number 782, F813
## 2023-06-13 19:07:18.958285 INFO::Fitting model to feature number 783, F814
## 2023-06-13 19:07:18.967613 INFO::Fitting model to feature number 784, F815
## 2023-06-13 19:07:18.97837 INFO::Fitting model to feature number 785, F816
## 2023-06-13 19:07:18.988757 INFO::Fitting model to feature number 786, F817
## 2023-06-13 19:07:18.99782 INFO::Fitting model to feature number 787, F818
## 2023-06-13 19:07:19.007019 INFO::Fitting model to feature number 788, F819
## 2023-06-13 19:07:19.018139 INFO::Fitting model to feature number 789, F820
## 2023-06-13 19:07:19.032093 INFO::Fitting model to feature number 790, F821
## 2023-06-13 19:07:19.041794 INFO::Fitting model to feature number 791, F822
## 2023-06-13 19:07:19.052589 INFO::Fitting model to feature number 792, F823
## 2023-06-13 19:07:19.061824 INFO::Fitting model to feature number 793, F824
## 2023-06-13 19:07:19.071439 INFO::Fitting model to feature number 794, F825
## 2023-06-13 19:07:19.080619 INFO::Fitting model to feature number 795, F826
## 2023-06-13 19:07:19.089394 INFO::Fitting model to feature number 796, F827
## 2023-06-13 19:07:19.09896 INFO::Fitting model to feature number 797, F828
## 2023-06-13 19:07:19.110065 INFO::Fitting model to feature number 798, F829
## 2023-06-13 19:07:19.122356 INFO::Fitting model to feature number 799, F830
## 2023-06-13 19:07:19.131328 INFO::Fitting model to feature number 800, F831
## 2023-06-13 19:07:19.140311 INFO::Fitting model to feature number 801, F832
## 2023-06-13 19:07:19.15074 INFO::Fitting model to feature number 802, F833
## 2023-06-13 19:07:19.161344 INFO::Fitting model to feature number 803, F834
## 2023-06-13 19:07:19.170825 INFO::Fitting model to feature number 804, F835
## 2023-06-13 19:07:19.1798 INFO::Fitting model to feature number 805, F836
## 2023-06-13 19:07:19.189247 INFO::Fitting model to feature number 806, F837
## 2023-06-13 19:07:19.199718 INFO::Fitting model to feature number 807, F838
## 2023-06-13 19:07:19.209038 INFO::Fitting model to feature number 808, F839
## 2023-06-13 19:07:19.217869 INFO::Fitting model to feature number 809, F840
## 2023-06-13 19:07:19.227447 INFO::Fitting model to feature number 810, F841
## 2023-06-13 19:07:19.239165 INFO::Fitting model to feature number 811, F842
## 2023-06-13 19:07:19.251448 INFO::Fitting model to feature number 812, F843
## 2023-06-13 19:07:19.261585 INFO::Fitting model to feature number 813, F844
## 2023-06-13 19:07:19.274968 INFO::Fitting model to feature number 814, F845
## 2023-06-13 19:07:19.286828 INFO::Fitting model to feature number 815, F846
## 2023-06-13 19:07:19.298865 INFO::Fitting model to feature number 816, F847
## 2023-06-13 19:07:19.309308 INFO::Fitting model to feature number 817, F848
## 2023-06-13 19:07:19.359816 INFO::Fitting model to feature number 818, F849
## 2023-06-13 19:07:19.368878 INFO::Fitting model to feature number 819, F850
## 2023-06-13 19:07:19.379859 INFO::Fitting model to feature number 820, F851
## 2023-06-13 19:07:19.389052 INFO::Fitting model to feature number 821, F852
## 2023-06-13 19:07:19.400149 INFO::Fitting model to feature number 822, F853
## 2023-06-13 19:07:19.411955 INFO::Fitting model to feature number 823, F854
## 2023-06-13 19:07:19.421785 INFO::Fitting model to feature number 824, F855
## 2023-06-13 19:07:19.432532 INFO::Fitting model to feature number 825, F856
## 2023-06-13 19:07:19.441125 INFO::Fitting model to feature number 826, F857
## 2023-06-13 19:07:19.450718 INFO::Fitting model to feature number 827, F858
## 2023-06-13 19:07:19.460505 INFO::Fitting model to feature number 828, F859
## 2023-06-13 19:07:19.471114 INFO::Fitting model to feature number 829, F860
## 2023-06-13 19:07:19.481584 INFO::Fitting model to feature number 830, F861
## 2023-06-13 19:07:19.492368 INFO::Fitting model to feature number 831, F862
## 2023-06-13 19:07:19.503018 INFO::Fitting model to feature number 832, F863
## 2023-06-13 19:07:19.515053 INFO::Fitting model to feature number 833, F864
## 2023-06-13 19:07:19.524764 INFO::Fitting model to feature number 834, F865
## 2023-06-13 19:07:19.535921 INFO::Fitting model to feature number 835, F866
## 2023-06-13 19:07:19.547408 INFO::Fitting model to feature number 836, F867
## 2023-06-13 19:07:19.558758 INFO::Fitting model to feature number 837, F868
## 2023-06-13 19:07:19.567752 INFO::Fitting model to feature number 838, F869
## 2023-06-13 19:07:19.576856 INFO::Fitting model to feature number 839, F870
## 2023-06-13 19:07:19.586189 INFO::Fitting model to feature number 840, F871
## 2023-06-13 19:07:19.595515 INFO::Fitting model to feature number 841, F872
## 2023-06-13 19:07:19.605288 INFO::Fitting model to feature number 842, F873
## 2023-06-13 19:07:19.614568 INFO::Fitting model to feature number 843, F874
## 2023-06-13 19:07:19.624979 INFO::Fitting model to feature number 844, F875
## 2023-06-13 19:07:19.635882 INFO::Fitting model to feature number 845, F876
## 2023-06-13 19:07:19.644961 INFO::Fitting model to feature number 846, F877
## 2023-06-13 19:07:19.655919 INFO::Fitting model to feature number 847, F878
## 2023-06-13 19:07:19.71445 INFO::Fitting model to feature number 848, F879
## 2023-06-13 19:07:19.724029 INFO::Fitting model to feature number 849, F880
## 2023-06-13 19:07:19.733782 INFO::Fitting model to feature number 850, F881
## 2023-06-13 19:07:19.744274 INFO::Fitting model to feature number 851, F882
## 2023-06-13 19:07:19.753286 INFO::Fitting model to feature number 852, F883
## 2023-06-13 19:07:19.764519 INFO::Fitting model to feature number 853, F884
## 2023-06-13 19:07:19.773244 INFO::Fitting model to feature number 854, F885
## 2023-06-13 19:07:19.782974 INFO::Fitting model to feature number 855, F886
## 2023-06-13 19:07:19.792437 INFO::Fitting model to feature number 856, F887
## 2023-06-13 19:07:19.802208 INFO::Fitting model to feature number 857, F888
## 2023-06-13 19:07:19.812713 INFO::Fitting model to feature number 858, F889
## 2023-06-13 19:07:19.822842 INFO::Fitting model to feature number 859, F890
## 2023-06-13 19:07:19.832441 INFO::Fitting model to feature number 860, F891
## 2023-06-13 19:07:19.843057 INFO::Fitting model to feature number 861, F892
## 2023-06-13 19:07:19.852421 INFO::Fitting model to feature number 862, F893
## 2023-06-13 19:07:19.863682 INFO::Fitting model to feature number 863, F894
## 2023-06-13 19:07:19.872766 INFO::Fitting model to feature number 864, F895
## 2023-06-13 19:07:19.882269 INFO::Fitting model to feature number 865, F896
## 2023-06-13 19:07:19.891135 INFO::Fitting model to feature number 866, F897
## 2023-06-13 19:07:19.900451 INFO::Fitting model to feature number 867, F898
## 2023-06-13 19:07:19.909106 INFO::Fitting model to feature number 868, F899
## 2023-06-13 19:07:19.919129 INFO::Fitting model to feature number 869, F900
## 2023-06-13 19:07:20.447911 INFO::Counting total values for each feature
## 2023-06-13 19:07:20.847688 INFO::Writing filtered data to file Macarron_output/maaslin2_results/features/filtered_data.tsv
## 2023-06-13 19:07:21.195007 INFO::Writing filtered, normalized data to file Macarron_output/maaslin2_results/features/filtered_data_norm.tsv
## 2023-06-13 19:07:21.476659 INFO::Writing filtered, normalized, transformed data to file Macarron_output/maaslin2_results/features/filtered_data_norm_transformed.tsv
## 2023-06-13 19:07:21.784362 INFO::Writing residuals to file Macarron_output/maaslin2_results/fits/residuals.rds
## 2023-06-13 19:07:21.873188 INFO::Writing fitted values to file Macarron_output/maaslin2_results/fits/fitted.rds
## 2023-06-13 19:07:21.954393 INFO::Writing all results to file (ordered by increasing q-values): Macarron_output/maaslin2_results/all_results.tsv
## 2023-06-13 19:07:22.012877 INFO::Writing the significant results (those which are less than or equal to the threshold of 0.250000 ) to file (ordered by increasing q-values): Macarron_output/maaslin2_results/significant_results.tsv
## 2023-06-13 19:07:22.037506 INFO::Writing heatmap of significant results to file: Macarron_output/maaslin2_results/heatmap.pdf
## Initiating effect size calculations
## Calculating mean abundance in: IBD
## Calculating mean abundance in: Control
## Calculating effect size in: IBD
## Initiating prioritization
## Assigning ranks
## Calculating meta-rank and prioritizing metabolic features
## 2023-06-13 19:07:22.890204 INFO::Writing all prioritized metabolites to file: Macarron_output/prioritized_metabolites_all.csv
## 2023-06-13 19:07:22.916532 INFO::Writing characterizable prioritized metabolites to file: Macarron_output/prioritized_metabolites_characterizable.csv
## 2023-06-13 19:07:22.991838 INFO::Writing highly prioritized metabolites in IBD to file: Macarron_output/highly_prioritized_per_module_in_IBD.csv

3.3.2 Using dataframes as inputs

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

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

3.3.3 Running Macarron as individual functions

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

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

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

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

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

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

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

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

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

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

sessionInfo()
## R version 4.3.0 RC (2023-04-13 r84257)
## Platform: x86_64-apple-darwin20 (64-bit)
## Running under: macOS Monterey 12.6.4
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/lib/libRblas.0.dylib 
## LAPACK: /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0
## 
## locale:
## [1] C/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## time zone: America/New_York
## tzcode source: internal
## 
## attached base packages:
## [1] stats4    stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] Macarron_1.4.0              SummarizedExperiment_1.30.2
##  [3] Biobase_2.60.0              GenomicRanges_1.52.0       
##  [5] GenomeInfoDb_1.36.0         IRanges_2.34.0             
##  [7] S4Vectors_0.38.1            BiocGenerics_0.46.0        
##  [9] MatrixGenerics_1.12.2       matrixStats_1.0.0          
## [11] BiocStyle_2.28.0           
## 
## loaded via a namespace (and not attached):
##   [1] mnormt_2.1.1            DBI_1.1.3               bitops_1.0-7           
##   [4] pbapply_1.7-0           gridExtra_2.3           rlang_1.1.1            
##   [7] magrittr_2.0.3          compiler_4.3.0          RSQLite_2.3.1          
##  [10] png_0.1-8               vctrs_0.6.2             stringr_1.5.0          
##  [13] pkgconfig_2.0.3         crayon_1.5.2            fastmap_1.1.1          
##  [16] backports_1.4.1         XVector_0.40.0          utf8_1.2.3             
##  [19] rmarkdown_2.22          preprocessCore_1.62.1   bit_4.0.5              
##  [22] xfun_0.39               zlibbioc_1.46.0         cachem_1.0.8           
##  [25] jsonlite_1.8.5          blob_1.2.4              DelayedArray_0.26.3    
##  [28] BiocParallel_1.34.2     psych_2.3.3             Maaslin2_1.14.1        
##  [31] parallel_4.3.0          cluster_2.1.4           biglm_0.9-2.1          
##  [34] R6_2.5.1                RColorBrewer_1.1-3      bslib_0.5.0            
##  [37] stringi_1.7.12          rpart_4.1.19            jquerylib_0.1.4        
##  [40] Rcpp_1.0.10             bookdown_0.34           iterators_1.0.14       
##  [43] knitr_1.43              WGCNA_1.72-1            base64enc_0.1-3        
##  [46] Matrix_1.5-4.1          splines_4.3.0           nnet_7.3-19            
##  [49] tidyselect_1.2.0        rstudioapi_0.14         yaml_2.3.7             
##  [52] doParallel_1.0.17       codetools_0.2-19        plyr_1.8.8             
##  [55] lattice_0.21-8          tibble_3.2.1            withr_2.5.0            
##  [58] KEGGREST_1.40.0         evaluate_0.21           foreign_0.8-84         
##  [61] survival_3.5-5          getopt_1.20.3           Biostrings_2.68.1      
##  [64] pillar_1.9.0            BiocManager_1.30.21     checkmate_2.2.0        
##  [67] foreach_1.5.2           pcaPP_2.0-3             generics_0.1.3         
##  [70] RCurl_1.98-1.12         ggplot2_3.4.2           munsell_0.5.0          
##  [73] scales_1.2.1            glue_1.6.2              pheatmap_1.0.12        
##  [76] Hmisc_5.1-0             tools_4.3.0             robustbase_0.95-1      
##  [79] data.table_1.14.8       mvtnorm_1.2-2           fastcluster_1.2.3      
##  [82] grid_4.3.0              optparse_1.7.3          impute_1.74.1          
##  [85] AnnotationDbi_1.62.1    colorspace_2.1-0        nlme_3.1-162           
##  [88] GenomeInfoDbData_1.2.10 htmlTable_2.4.1         Formula_1.2-5          
##  [91] cli_3.6.1               fansi_1.0.4             S4Arrays_1.0.4         
##  [94] dplyr_1.1.2             DEoptimR_1.0-14         gtable_0.3.3           
##  [97] hash_2.2.6.2            logging_0.10-108        dynamicTreeCut_1.63-1  
## [100] sass_0.4.6              digest_0.6.31           htmlwidgets_1.6.2      
## [103] memoise_2.0.1           htmltools_0.5.5         lifecycle_1.0.3        
## [106] httr_1.4.6              GO.db_3.17.0            bit64_4.0.5

3.4 Advanced Topics

3.4.1 Generating the input chemical taxonomy file

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

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

3.4.2 Accessory output files

3.4.2.1 Macarron.log

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

3.4.2.2 modules_measures_of_success.csv

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

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

3.4.2.3 Maaslin2 results

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

3.4.3 Changing defaults

3.4.3.1 Filtering metabolic features based on prevalence

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

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

3.4.4 Minimum module size

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

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

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

3.4.5 Specifying fixed effects, random effects and reference

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

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

4 Command line invocation

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