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
## 
## Attaching package: 'IRanges'
## The following object is masked from 'package:grDevices':
## 
##     windows
## 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)
## [1] "Warning: Deleting existing log file:  Macarron_output/Macarron.log"
## 2023-10-25 19:49:45.502986 INFO::Writing function arguments to log file
## Samples with both abundances and metadata: 102
## 2023-10-25 19:49:45.600642 INFO::Summarized Experiment created.
## 2023-10-25 19:49:45.603785 INFO::Metadata chosen for prevalence filtering: diagnosis
## 869 features pass chosen minimum prevalence threshold of 0.7.
## Calculating pairwise correlations in phenotype: IBD
## 
## Calculating pairwise correlations in phenotype: Control
## Distance matrix with 869 features created.
## 2023-10-25 19:49:50.67981 INFO::Distance matrix with 869 metabolic features created.
## Initiating module detection
## 2023-10-25 19:49:50.68192 INFO::Minimum module size used for this dataset: 10
## Tree constructed
## Evaluating measures of success
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
##  ..cutHeight not given, setting it to 0.99  ===>  99% of the (truncated) height range in dendro.
##  ..done.
## 2023-10-25 19:49:52.759861 INFO::Total number of modules detected: 30
## Initiating AVA calculations
## Finding anchors
## Calculating AVA
## Initiating q-value calculations
## [1] "Creating output feature tables folder"
## [1] "Creating output fits folder"
## [1] "Warning: Deleting existing log file: Macarron_output/maaslin2_results/maaslin2.log"
## 2023-10-25 19:49:55.040878 INFO::Writing function arguments to log file
## 2023-10-25 19:49:55.057869 INFO::Verifying options selected are valid
## 2023-10-25 19:49:55.113265 INFO::Determining format of input files
## 2023-10-25 19:49:55.115179 INFO::Input format is data samples as columns and metadata samples as rows
## 2023-10-25 19:49:55.137659 INFO::Formula for fixed effects: expr ~  diagnosis + age + antibiotics
## 2023-10-25 19:49:55.140358 INFO::Filter data based on min abundance and min prevalence
## 2023-10-25 19:49:55.14214 INFO::Total samples in data: 102
## 2023-10-25 19:49:55.143805 INFO::Min samples required with min abundance for a feature not to be filtered: 0.000000
## 2023-10-25 19:49:55.155199 INFO::Total filtered features: 0
## 2023-10-25 19:49:55.157209 INFO::Filtered feature names from abundance and prevalence filtering:
## 2023-10-25 19:49:55.176243 INFO::Total filtered features with variance filtering: 0
## 2023-10-25 19:49:55.178229 INFO::Filtered feature names from variance filtering:
## 2023-10-25 19:49:55.179824 INFO::Running selected normalization method: NONE
## 2023-10-25 19:49:55.181431 INFO::Applying z-score to standardize continuous metadata
## 2023-10-25 19:49:55.212688 INFO::Running selected transform method: NONE
## 2023-10-25 19:49:55.214503 INFO::Running selected analysis method: LM
## 2023-10-25 19:49:55.223396 INFO::Fitting model to feature number 1, F1
## 2023-10-25 19:49:55.234022 INFO::Fitting model to feature number 2, F2
## 2023-10-25 19:49:55.239732 INFO::Fitting model to feature number 3, F3
## 2023-10-25 19:49:55.244556 INFO::Fitting model to feature number 4, F4
## 2023-10-25 19:49:55.249271 INFO::Fitting model to feature number 5, F5
## 2023-10-25 19:49:55.253856 INFO::Fitting model to feature number 6, F6
## 2023-10-25 19:49:55.258585 INFO::Fitting model to feature number 7, F7
## 2023-10-25 19:49:55.263273 INFO::Fitting model to feature number 8, F8
## 2023-10-25 19:49:55.267914 INFO::Fitting model to feature number 9, F9
## 2023-10-25 19:49:55.272516 INFO::Fitting model to feature number 10, F10
## 2023-10-25 19:49:55.277018 INFO::Fitting model to feature number 11, F11
## 2023-10-25 19:49:55.28162 INFO::Fitting model to feature number 12, F12
## 2023-10-25 19:49:55.286196 INFO::Fitting model to feature number 13, F13
## 2023-10-25 19:49:55.290719 INFO::Fitting model to feature number 14, F14
## 2023-10-25 19:49:55.295159 INFO::Fitting model to feature number 15, F15
## 2023-10-25 19:49:55.299602 INFO::Fitting model to feature number 16, F16
## 2023-10-25 19:49:55.304111 INFO::Fitting model to feature number 17, F17
## 2023-10-25 19:49:55.30857 INFO::Fitting model to feature number 18, F18
## 2023-10-25 19:49:55.313181 INFO::Fitting model to feature number 19, F19
## 2023-10-25 19:49:55.317667 INFO::Fitting model to feature number 20, F20
## 2023-10-25 19:49:55.322167 INFO::Fitting model to feature number 21, F21
## 2023-10-25 19:49:55.326632 INFO::Fitting model to feature number 22, F22
## 2023-10-25 19:49:55.331122 INFO::Fitting model to feature number 23, F23
## 2023-10-25 19:49:55.335448 INFO::Fitting model to feature number 24, F24
## 2023-10-25 19:49:55.339765 INFO::Fitting model to feature number 25, F25
## 2023-10-25 19:49:55.344241 INFO::Fitting model to feature number 26, F26
## 2023-10-25 19:49:55.348605 INFO::Fitting model to feature number 27, F27
## 2023-10-25 19:49:55.352942 INFO::Fitting model to feature number 28, F28
## 2023-10-25 19:49:55.357304 INFO::Fitting model to feature number 29, F29
## 2023-10-25 19:49:55.361712 INFO::Fitting model to feature number 30, F30
## 2023-10-25 19:49:55.366115 INFO::Fitting model to feature number 31, F31
## 2023-10-25 19:49:55.370463 INFO::Fitting model to feature number 32, F32
## 2023-10-25 19:49:55.374911 INFO::Fitting model to feature number 33, F33
## 2023-10-25 19:49:55.379262 INFO::Fitting model to feature number 34, F34
## 2023-10-25 19:49:55.383617 INFO::Fitting model to feature number 35, F35
## 2023-10-25 19:49:55.388078 INFO::Fitting model to feature number 36, F36
## 2023-10-25 19:49:55.392513 INFO::Fitting model to feature number 37, F37
## 2023-10-25 19:49:55.396735 INFO::Fitting model to feature number 38, F38
## 2023-10-25 19:49:55.400951 INFO::Fitting model to feature number 39, F39
## 2023-10-25 19:49:55.405186 INFO::Fitting model to feature number 40, F40
## 2023-10-25 19:49:55.409707 INFO::Fitting model to feature number 41, F41
## 2023-10-25 19:49:55.415941 INFO::Fitting model to feature number 42, F43
## 2023-10-25 19:49:55.423047 INFO::Fitting model to feature number 43, F44
## 2023-10-25 19:49:55.428729 INFO::Fitting model to feature number 44, F45
## 2023-10-25 19:49:55.433174 INFO::Fitting model to feature number 45, F46
## 2023-10-25 19:49:55.437713 INFO::Fitting model to feature number 46, F47
## 2023-10-25 19:49:55.442617 INFO::Fitting model to feature number 47, F48
## 2023-10-25 19:49:55.449895 INFO::Fitting model to feature number 48, F49
## 2023-10-25 19:49:55.455083 INFO::Fitting model to feature number 49, F50
## 2023-10-25 19:49:55.459813 INFO::Fitting model to feature number 50, F51
## 2023-10-25 19:49:55.464447 INFO::Fitting model to feature number 51, F52
## 2023-10-25 19:49:55.46875 INFO::Fitting model to feature number 52, F53
## 2023-10-25 19:49:55.473103 INFO::Fitting model to feature number 53, F54
## 2023-10-25 19:49:55.477393 INFO::Fitting model to feature number 54, F55
## 2023-10-25 19:49:55.481986 INFO::Fitting model to feature number 55, F56
## 2023-10-25 19:49:55.486216 INFO::Fitting model to feature number 56, F57
## 2023-10-25 19:49:55.490565 INFO::Fitting model to feature number 57, F58
## 2023-10-25 19:49:55.494951 INFO::Fitting model to feature number 58, F59
## 2023-10-25 19:49:55.499197 INFO::Fitting model to feature number 59, F60
## 2023-10-25 19:49:55.503719 INFO::Fitting model to feature number 60, F63
## 2023-10-25 19:49:55.507982 INFO::Fitting model to feature number 61, F64
## 2023-10-25 19:49:55.512391 INFO::Fitting model to feature number 62, F65
## 2023-10-25 19:49:55.516665 INFO::Fitting model to feature number 63, F66
## 2023-10-25 19:49:55.520937 INFO::Fitting model to feature number 64, F67
## 2023-10-25 19:49:55.526258 INFO::Fitting model to feature number 65, F68
## 2023-10-25 19:49:55.533458 INFO::Fitting model to feature number 66, F69
## 2023-10-25 19:49:55.539146 INFO::Fitting model to feature number 67, F70
## 2023-10-25 19:49:55.543793 INFO::Fitting model to feature number 68, F71
## 2023-10-25 19:49:55.548624 INFO::Fitting model to feature number 69, F72
## 2023-10-25 19:49:55.553457 INFO::Fitting model to feature number 70, F73
## 2023-10-25 19:49:55.558032 INFO::Fitting model to feature number 71, F74
## 2023-10-25 19:49:55.562803 INFO::Fitting model to feature number 72, F76
## 2023-10-25 19:49:55.567329 INFO::Fitting model to feature number 73, F77
## 2023-10-25 19:49:55.571952 INFO::Fitting model to feature number 74, F78
## 2023-10-25 19:49:55.576608 INFO::Fitting model to feature number 75, F79
## 2023-10-25 19:49:55.582535 INFO::Fitting model to feature number 76, F80
## 2023-10-25 19:49:55.589256 INFO::Fitting model to feature number 77, F81
## 2023-10-25 19:49:55.59525 INFO::Fitting model to feature number 78, F82
## 2023-10-25 19:49:55.601461 INFO::Fitting model to feature number 79, F83
## 2023-10-25 19:49:55.607605 INFO::Fitting model to feature number 80, F84
## 2023-10-25 19:49:55.61376 INFO::Fitting model to feature number 81, F85
## 2023-10-25 19:49:55.619966 INFO::Fitting model to feature number 82, F86
## 2023-10-25 19:49:55.626215 INFO::Fitting model to feature number 83, F87
## 2023-10-25 19:49:55.632108 INFO::Fitting model to feature number 84, F88
## 2023-10-25 19:49:55.638279 INFO::Fitting model to feature number 85, F89
## 2023-10-25 19:49:55.644535 INFO::Fitting model to feature number 86, F90
## 2023-10-25 19:49:55.650459 INFO::Fitting model to feature number 87, F91
## 2023-10-25 19:49:55.656443 INFO::Fitting model to feature number 88, F92
## 2023-10-25 19:49:55.662553 INFO::Fitting model to feature number 89, F93
## 2023-10-25 19:49:55.668649 INFO::Fitting model to feature number 90, F94
## 2023-10-25 19:49:55.674649 INFO::Fitting model to feature number 91, F95
## 2023-10-25 19:49:55.679898 INFO::Fitting model to feature number 92, F96
## 2023-10-25 19:49:55.68458 INFO::Fitting model to feature number 93, F97
## 2023-10-25 19:49:55.689284 INFO::Fitting model to feature number 94, F98
## 2023-10-25 19:49:55.699648 INFO::Fitting model to feature number 95, F99
## 2023-10-25 19:49:55.704373 INFO::Fitting model to feature number 96, F100
## 2023-10-25 19:49:55.709228 INFO::Fitting model to feature number 97, F101
## 2023-10-25 19:49:55.713957 INFO::Fitting model to feature number 98, F102
## 2023-10-25 19:49:55.718664 INFO::Fitting model to feature number 99, F103
## 2023-10-25 19:49:55.723418 INFO::Fitting model to feature number 100, F104
## 2023-10-25 19:49:55.728108 INFO::Fitting model to feature number 101, F105
## 2023-10-25 19:49:55.73248 INFO::Fitting model to feature number 102, F106
## 2023-10-25 19:49:55.736875 INFO::Fitting model to feature number 103, F107
## 2023-10-25 19:49:55.741718 INFO::Fitting model to feature number 104, F108
## 2023-10-25 19:49:55.746109 INFO::Fitting model to feature number 105, F109
## 2023-10-25 19:49:55.750503 INFO::Fitting model to feature number 106, F110
## 2023-10-25 19:49:55.754887 INFO::Fitting model to feature number 107, F111
## 2023-10-25 19:49:55.75941 INFO::Fitting model to feature number 108, F112
## 2023-10-25 19:49:55.764215 INFO::Fitting model to feature number 109, F113
## 2023-10-25 19:49:55.768893 INFO::Fitting model to feature number 110, F114
## 2023-10-25 19:49:55.775892 INFO::Fitting model to feature number 111, F115
## 2023-10-25 19:49:55.783475 INFO::Fitting model to feature number 112, F117
## 2023-10-25 19:49:55.789318 INFO::Fitting model to feature number 113, F118
## 2023-10-25 19:49:55.794222 INFO::Fitting model to feature number 114, F119
## 2023-10-25 19:49:55.798817 INFO::Fitting model to feature number 115, F120
## 2023-10-25 19:49:55.80326 INFO::Fitting model to feature number 116, F121
## 2023-10-25 19:49:55.807661 INFO::Fitting model to feature number 117, F122
## 2023-10-25 19:49:55.812186 INFO::Fitting model to feature number 118, F123
## 2023-10-25 19:49:55.816885 INFO::Fitting model to feature number 119, F124
## 2023-10-25 19:49:55.821245 INFO::Fitting model to feature number 120, F125
## 2023-10-25 19:49:55.825558 INFO::Fitting model to feature number 121, F126
## 2023-10-25 19:49:55.830047 INFO::Fitting model to feature number 122, F127
## 2023-10-25 19:49:55.834488 INFO::Fitting model to feature number 123, F128
## 2023-10-25 19:49:55.838995 INFO::Fitting model to feature number 124, F129
## 2023-10-25 19:49:55.84347 INFO::Fitting model to feature number 125, F130
## 2023-10-25 19:49:55.847811 INFO::Fitting model to feature number 126, F131
## 2023-10-25 19:49:55.852134 INFO::Fitting model to feature number 127, F132
## 2023-10-25 19:49:55.856449 INFO::Fitting model to feature number 128, F133
## 2023-10-25 19:49:55.861175 INFO::Fitting model to feature number 129, F134
## 2023-10-25 19:49:55.865755 INFO::Fitting model to feature number 130, F135
## 2023-10-25 19:49:55.870142 INFO::Fitting model to feature number 131, F136
## 2023-10-25 19:49:55.874744 INFO::Fitting model to feature number 132, F137
## 2023-10-25 19:49:55.879551 INFO::Fitting model to feature number 133, F138
## 2023-10-25 19:49:55.884474 INFO::Fitting model to feature number 134, F139
## 2023-10-25 19:49:55.889094 INFO::Fitting model to feature number 135, F140
## 2023-10-25 19:49:55.894264 INFO::Fitting model to feature number 136, F141
## 2023-10-25 19:49:55.898987 INFO::Fitting model to feature number 137, F142
## 2023-10-25 19:49:55.903765 INFO::Fitting model to feature number 138, F143
## 2023-10-25 19:49:55.908462 INFO::Fitting model to feature number 139, F144
## 2023-10-25 19:49:55.913065 INFO::Fitting model to feature number 140, F145
## 2023-10-25 19:49:55.918012 INFO::Fitting model to feature number 141, F146
## 2023-10-25 19:49:55.922737 INFO::Fitting model to feature number 142, F147
## 2023-10-25 19:49:55.927782 INFO::Fitting model to feature number 143, F148
## 2023-10-25 19:49:55.932271 INFO::Fitting model to feature number 144, F149
## 2023-10-25 19:49:55.936915 INFO::Fitting model to feature number 145, F150
## 2023-10-25 19:49:55.941425 INFO::Fitting model to feature number 146, F152
## 2023-10-25 19:49:55.946409 INFO::Fitting model to feature number 147, F153
## 2023-10-25 19:49:55.951569 INFO::Fitting model to feature number 148, F154
## 2023-10-25 19:49:55.956038 INFO::Fitting model to feature number 149, F155
## 2023-10-25 19:49:55.960691 INFO::Fitting model to feature number 150, F156
## 2023-10-25 19:49:55.965142 INFO::Fitting model to feature number 151, F157
## 2023-10-25 19:49:55.969633 INFO::Fitting model to feature number 152, F158
## 2023-10-25 19:49:55.974419 INFO::Fitting model to feature number 153, F159
## 2023-10-25 19:49:55.979058 INFO::Fitting model to feature number 154, F160
## 2023-10-25 19:49:55.983423 INFO::Fitting model to feature number 155, F161
## 2023-10-25 19:49:55.987788 INFO::Fitting model to feature number 156, F162
## 2023-10-25 19:49:55.992394 INFO::Fitting model to feature number 157, F163
## 2023-10-25 19:49:55.997091 INFO::Fitting model to feature number 158, F164
## 2023-10-25 19:49:56.001587 INFO::Fitting model to feature number 159, F165
## 2023-10-25 19:49:56.006051 INFO::Fitting model to feature number 160, F166
## 2023-10-25 19:49:56.01078 INFO::Fitting model to feature number 161, F167
## 2023-10-25 19:49:56.015235 INFO::Fitting model to feature number 162, F168
## 2023-10-25 19:49:56.019786 INFO::Fitting model to feature number 163, F169
## 2023-10-25 19:49:56.024313 INFO::Fitting model to feature number 164, F170
## 2023-10-25 19:49:56.028675 INFO::Fitting model to feature number 165, F171
## 2023-10-25 19:49:56.033035 INFO::Fitting model to feature number 166, F172
## 2023-10-25 19:49:56.037591 INFO::Fitting model to feature number 167, F173
## 2023-10-25 19:49:56.042365 INFO::Fitting model to feature number 168, F174
## 2023-10-25 19:49:56.046719 INFO::Fitting model to feature number 169, F175
## 2023-10-25 19:49:56.051084 INFO::Fitting model to feature number 170, F176
## 2023-10-25 19:49:56.055557 INFO::Fitting model to feature number 171, F177
## 2023-10-25 19:49:56.059971 INFO::Fitting model to feature number 172, F178
## 2023-10-25 19:49:56.064574 INFO::Fitting model to feature number 173, F179
## 2023-10-25 19:49:56.069116 INFO::Fitting model to feature number 174, F180
## 2023-10-25 19:49:56.073847 INFO::Fitting model to feature number 175, F181
## 2023-10-25 19:49:56.078462 INFO::Fitting model to feature number 176, F182
## 2023-10-25 19:49:56.083389 INFO::Fitting model to feature number 177, F183
## 2023-10-25 19:49:56.08844 INFO::Fitting model to feature number 178, F184
## 2023-10-25 19:49:56.093307 INFO::Fitting model to feature number 179, F185
## 2023-10-25 19:49:56.098028 INFO::Fitting model to feature number 180, F186
## 2023-10-25 19:49:56.102767 INFO::Fitting model to feature number 181, F187
## 2023-10-25 19:49:56.107742 INFO::Fitting model to feature number 182, F188
## 2023-10-25 19:49:56.112666 INFO::Fitting model to feature number 183, F189
## 2023-10-25 19:49:56.117634 INFO::Fitting model to feature number 184, F190
## 2023-10-25 19:49:56.12258 INFO::Fitting model to feature number 185, F191
## 2023-10-25 19:49:56.151125 INFO::Fitting model to feature number 186, F192
## 2023-10-25 19:49:56.156873 INFO::Fitting model to feature number 187, F193
## 2023-10-25 19:49:56.161716 INFO::Fitting model to feature number 188, F194
## 2023-10-25 19:49:56.166486 INFO::Fitting model to feature number 189, F195
## 2023-10-25 19:49:56.171383 INFO::Fitting model to feature number 190, F196
## 2023-10-25 19:49:56.176081 INFO::Fitting model to feature number 191, F197
## 2023-10-25 19:49:56.180803 INFO::Fitting model to feature number 192, F198
## 2023-10-25 19:49:56.185501 INFO::Fitting model to feature number 193, F199
## 2023-10-25 19:49:56.190192 INFO::Fitting model to feature number 194, F200
## 2023-10-25 19:49:56.194961 INFO::Fitting model to feature number 195, F201
## 2023-10-25 19:49:56.199685 INFO::Fitting model to feature number 196, F202
## 2023-10-25 19:49:56.204342 INFO::Fitting model to feature number 197, F203
## 2023-10-25 19:49:56.208857 INFO::Fitting model to feature number 198, F204
## 2023-10-25 19:49:56.213281 INFO::Fitting model to feature number 199, F206
## 2023-10-25 19:49:56.217806 INFO::Fitting model to feature number 200, F207
## 2023-10-25 19:49:56.222529 INFO::Fitting model to feature number 201, F208
## 2023-10-25 19:49:56.227065 INFO::Fitting model to feature number 202, F209
## 2023-10-25 19:49:56.231628 INFO::Fitting model to feature number 203, F210
## 2023-10-25 19:49:56.236123 INFO::Fitting model to feature number 204, F211
## 2023-10-25 19:49:56.240633 INFO::Fitting model to feature number 205, F212
## 2023-10-25 19:49:56.245132 INFO::Fitting model to feature number 206, F213
## 2023-10-25 19:49:56.249597 INFO::Fitting model to feature number 207, F214
## 2023-10-25 19:49:56.254402 INFO::Fitting model to feature number 208, F215
## 2023-10-25 19:49:56.259146 INFO::Fitting model to feature number 209, F216
## 2023-10-25 19:49:56.263644 INFO::Fitting model to feature number 210, F217
## 2023-10-25 19:49:56.268242 INFO::Fitting model to feature number 211, F218
## 2023-10-25 19:49:56.272812 INFO::Fitting model to feature number 212, F219
## 2023-10-25 19:49:56.277333 INFO::Fitting model to feature number 213, F220
## 2023-10-25 19:49:56.28179 INFO::Fitting model to feature number 214, F221
## 2023-10-25 19:49:56.286203 INFO::Fitting model to feature number 215, F222
## 2023-10-25 19:49:56.290634 INFO::Fitting model to feature number 216, F223
## 2023-10-25 19:49:56.295036 INFO::Fitting model to feature number 217, F224
## 2023-10-25 19:49:56.299385 INFO::Fitting model to feature number 218, F225
## 2023-10-25 19:49:56.303703 INFO::Fitting model to feature number 219, F226
## 2023-10-25 19:49:56.30799 INFO::Fitting model to feature number 220, F227
## 2023-10-25 19:49:56.312328 INFO::Fitting model to feature number 221, F228
## 2023-10-25 19:49:56.316693 INFO::Fitting model to feature number 222, F229
## 2023-10-25 19:49:56.320993 INFO::Fitting model to feature number 223, F230
## 2023-10-25 19:49:56.325365 INFO::Fitting model to feature number 224, F231
## 2023-10-25 19:49:56.329652 INFO::Fitting model to feature number 225, F232
## 2023-10-25 19:49:56.333981 INFO::Fitting model to feature number 226, F233
## 2023-10-25 19:49:56.338247 INFO::Fitting model to feature number 227, F234
## 2023-10-25 19:49:56.342599 INFO::Fitting model to feature number 228, F235
## 2023-10-25 19:49:56.346904 INFO::Fitting model to feature number 229, F236
## 2023-10-25 19:49:56.351237 INFO::Fitting model to feature number 230, F237
## 2023-10-25 19:49:56.355559 INFO::Fitting model to feature number 231, F238
## 2023-10-25 19:49:56.359944 INFO::Fitting model to feature number 232, F239
## 2023-10-25 19:49:56.364441 INFO::Fitting model to feature number 233, F240
## 2023-10-25 19:49:56.369084 INFO::Fitting model to feature number 234, F241
## 2023-10-25 19:49:56.373821 INFO::Fitting model to feature number 235, F242
## 2023-10-25 19:49:56.378839 INFO::Fitting model to feature number 236, F243
## 2023-10-25 19:49:56.383635 INFO::Fitting model to feature number 237, F244
## 2023-10-25 19:49:56.388247 INFO::Fitting model to feature number 238, F245
## 2023-10-25 19:49:56.39288 INFO::Fitting model to feature number 239, F246
## 2023-10-25 19:49:56.397541 INFO::Fitting model to feature number 240, F247
## 2023-10-25 19:49:56.402072 INFO::Fitting model to feature number 241, F248
## 2023-10-25 19:49:56.40656 INFO::Fitting model to feature number 242, F249
## 2023-10-25 19:49:56.411164 INFO::Fitting model to feature number 243, F250
## 2023-10-25 19:49:56.415744 INFO::Fitting model to feature number 244, F252
## 2023-10-25 19:49:56.420221 INFO::Fitting model to feature number 245, F253
## 2023-10-25 19:49:56.424659 INFO::Fitting model to feature number 246, F254
## 2023-10-25 19:49:56.429458 INFO::Fitting model to feature number 247, F255
## 2023-10-25 19:49:56.434104 INFO::Fitting model to feature number 248, F256
## 2023-10-25 19:49:56.438644 INFO::Fitting model to feature number 249, F257
## 2023-10-25 19:49:56.443313 INFO::Fitting model to feature number 250, F259
## 2023-10-25 19:49:56.447933 INFO::Fitting model to feature number 251, F260
## 2023-10-25 19:49:56.454268 INFO::Fitting model to feature number 252, F261
## 2023-10-25 19:49:56.46162 INFO::Fitting model to feature number 253, F262
## 2023-10-25 19:49:56.468943 INFO::Fitting model to feature number 254, F263
## 2023-10-25 19:49:56.476438 INFO::Fitting model to feature number 255, F264
## 2023-10-25 19:49:56.483851 INFO::Fitting model to feature number 256, F265
## 2023-10-25 19:49:56.491257 INFO::Fitting model to feature number 257, F266
## 2023-10-25 19:49:56.498534 INFO::Fitting model to feature number 258, F267
## 2023-10-25 19:49:56.505833 INFO::Fitting model to feature number 259, F269
## 2023-10-25 19:49:56.513124 INFO::Fitting model to feature number 260, F270
## 2023-10-25 19:49:56.520374 INFO::Fitting model to feature number 261, F271
## 2023-10-25 19:49:56.527649 INFO::Fitting model to feature number 262, F272
## 2023-10-25 19:49:56.534863 INFO::Fitting model to feature number 263, F273
## 2023-10-25 19:49:56.542244 INFO::Fitting model to feature number 264, F274
## 2023-10-25 19:49:56.547875 INFO::Fitting model to feature number 265, F276
## 2023-10-25 19:49:56.552503 INFO::Fitting model to feature number 266, F277
## 2023-10-25 19:49:56.557044 INFO::Fitting model to feature number 267, F278
## 2023-10-25 19:49:56.561507 INFO::Fitting model to feature number 268, F279
## 2023-10-25 19:49:56.56592 INFO::Fitting model to feature number 269, F280
## 2023-10-25 19:49:56.570353 INFO::Fitting model to feature number 270, F281
## 2023-10-25 19:49:56.574781 INFO::Fitting model to feature number 271, F282
## 2023-10-25 19:49:56.579225 INFO::Fitting model to feature number 272, F283
## 2023-10-25 19:49:56.585733 INFO::Fitting model to feature number 273, F284
## 2023-10-25 19:49:56.592471 INFO::Fitting model to feature number 274, F285
## 2023-10-25 19:49:56.598318 INFO::Fitting model to feature number 275, F286
## 2023-10-25 19:49:56.604199 INFO::Fitting model to feature number 276, F287
## 2023-10-25 19:49:56.60993 INFO::Fitting model to feature number 277, F288
## 2023-10-25 19:49:56.615716 INFO::Fitting model to feature number 278, F289
## 2023-10-25 19:49:56.621613 INFO::Fitting model to feature number 279, F290
## 2023-10-25 19:49:56.627591 INFO::Fitting model to feature number 280, F292
## 2023-10-25 19:49:56.633406 INFO::Fitting model to feature number 281, F293
## 2023-10-25 19:49:56.639096 INFO::Fitting model to feature number 282, F294
## 2023-10-25 19:49:56.644826 INFO::Fitting model to feature number 283, F295
## 2023-10-25 19:49:56.65056 INFO::Fitting model to feature number 284, F296
## 2023-10-25 19:49:56.65647 INFO::Fitting model to feature number 285, F297
## 2023-10-25 19:49:56.662253 INFO::Fitting model to feature number 286, F298
## 2023-10-25 19:49:56.668087 INFO::Fitting model to feature number 287, F299
## 2023-10-25 19:49:56.673714 INFO::Fitting model to feature number 288, F300
## 2023-10-25 19:49:56.679583 INFO::Fitting model to feature number 289, F301
## 2023-10-25 19:49:56.685178 INFO::Fitting model to feature number 290, F302
## 2023-10-25 19:49:56.689705 INFO::Fitting model to feature number 291, F303
## 2023-10-25 19:49:56.694132 INFO::Fitting model to feature number 292, F304
## 2023-10-25 19:49:56.698614 INFO::Fitting model to feature number 293, F305
## 2023-10-25 19:49:56.703185 INFO::Fitting model to feature number 294, F306
## 2023-10-25 19:49:56.708127 INFO::Fitting model to feature number 295, F307
## 2023-10-25 19:49:56.712853 INFO::Fitting model to feature number 296, F308
## 2023-10-25 19:49:56.717604 INFO::Fitting model to feature number 297, F309
## 2023-10-25 19:49:56.722126 INFO::Fitting model to feature number 298, F310
## 2023-10-25 19:49:56.72666 INFO::Fitting model to feature number 299, F311
## 2023-10-25 19:49:56.731175 INFO::Fitting model to feature number 300, F312
## 2023-10-25 19:49:56.735666 INFO::Fitting model to feature number 301, F313
## 2023-10-25 19:49:56.740116 INFO::Fitting model to feature number 302, F315
## 2023-10-25 19:49:56.744527 INFO::Fitting model to feature number 303, F316
## 2023-10-25 19:49:56.749145 INFO::Fitting model to feature number 304, F317
## 2023-10-25 19:49:56.7536 INFO::Fitting model to feature number 305, F318
## 2023-10-25 19:49:56.759612 INFO::Fitting model to feature number 306, F319
## 2023-10-25 19:49:56.764296 INFO::Fitting model to feature number 307, F320
## 2023-10-25 19:49:56.76944 INFO::Fitting model to feature number 308, F321
## 2023-10-25 19:49:56.774144 INFO::Fitting model to feature number 309, F322
## 2023-10-25 19:49:56.778645 INFO::Fitting model to feature number 310, F323
## 2023-10-25 19:49:56.784217 INFO::Fitting model to feature number 311, F324
## 2023-10-25 19:49:56.790904 INFO::Fitting model to feature number 312, F325
## 2023-10-25 19:49:56.795838 INFO::Fitting model to feature number 313, F326
## 2023-10-25 19:49:56.801135 INFO::Fitting model to feature number 314, F327
## 2023-10-25 19:49:56.808541 INFO::Fitting model to feature number 315, F328
## 2023-10-25 19:49:56.813714 INFO::Fitting model to feature number 316, F329
## 2023-10-25 19:49:56.818634 INFO::Fitting model to feature number 317, F330
## 2023-10-25 19:49:56.823304 INFO::Fitting model to feature number 318, F331
## 2023-10-25 19:49:56.827853 INFO::Fitting model to feature number 319, F332
## 2023-10-25 19:49:56.832353 INFO::Fitting model to feature number 320, F333
## 2023-10-25 19:49:56.837237 INFO::Fitting model to feature number 321, F334
## 2023-10-25 19:49:56.841865 INFO::Fitting model to feature number 322, F335
## 2023-10-25 19:49:56.848075 INFO::Fitting model to feature number 323, F336
## 2023-10-25 19:49:56.854801 INFO::Fitting model to feature number 324, F337
## 2023-10-25 19:49:56.859471 INFO::Fitting model to feature number 325, F338
## 2023-10-25 19:49:56.86395 INFO::Fitting model to feature number 326, F339
## 2023-10-25 19:49:56.868602 INFO::Fitting model to feature number 327, F340
## 2023-10-25 19:49:56.87306 INFO::Fitting model to feature number 328, F342
## 2023-10-25 19:49:56.877751 INFO::Fitting model to feature number 329, F343
## 2023-10-25 19:49:56.882298 INFO::Fitting model to feature number 330, F344
## 2023-10-25 19:49:56.886787 INFO::Fitting model to feature number 331, F345
## 2023-10-25 19:49:56.891466 INFO::Fitting model to feature number 332, F346
## 2023-10-25 19:49:56.898577 INFO::Fitting model to feature number 333, F347
## 2023-10-25 19:49:56.904263 INFO::Fitting model to feature number 334, F348
## 2023-10-25 19:49:56.909501 INFO::Fitting model to feature number 335, F350
## 2023-10-25 19:49:56.914092 INFO::Fitting model to feature number 336, F351
## 2023-10-25 19:49:56.918512 INFO::Fitting model to feature number 337, F352
## 2023-10-25 19:49:56.92303 INFO::Fitting model to feature number 338, F353
## 2023-10-25 19:49:56.927482 INFO::Fitting model to feature number 339, F355
## 2023-10-25 19:49:56.931929 INFO::Fitting model to feature number 340, F356
## 2023-10-25 19:49:56.936227 INFO::Fitting model to feature number 341, F357
## 2023-10-25 19:49:56.940702 INFO::Fitting model to feature number 342, F358
## 2023-10-25 19:49:56.945207 INFO::Fitting model to feature number 343, F359
## 2023-10-25 19:49:56.94953 INFO::Fitting model to feature number 344, F360
## 2023-10-25 19:49:56.95384 INFO::Fitting model to feature number 345, F361
## 2023-10-25 19:49:56.958297 INFO::Fitting model to feature number 346, F362
## 2023-10-25 19:49:56.962861 INFO::Fitting model to feature number 347, F363
## 2023-10-25 19:49:56.967375 INFO::Fitting model to feature number 348, F364
## 2023-10-25 19:49:56.971773 INFO::Fitting model to feature number 349, F365
## 2023-10-25 19:49:56.976272 INFO::Fitting model to feature number 350, F366
## 2023-10-25 19:49:56.980615 INFO::Fitting model to feature number 351, F367
## 2023-10-25 19:49:56.985003 INFO::Fitting model to feature number 352, F368
## 2023-10-25 19:49:56.989398 INFO::Fitting model to feature number 353, F369
## 2023-10-25 19:49:56.993892 INFO::Fitting model to feature number 354, F370
## 2023-10-25 19:49:56.998128 INFO::Fitting model to feature number 355, F371
## 2023-10-25 19:49:57.00235 INFO::Fitting model to feature number 356, F372
## 2023-10-25 19:49:57.006735 INFO::Fitting model to feature number 357, F373
## 2023-10-25 19:49:57.011161 INFO::Fitting model to feature number 358, F374
## 2023-10-25 19:49:57.015631 INFO::Fitting model to feature number 359, F375
## 2023-10-25 19:49:57.019989 INFO::Fitting model to feature number 360, F376
## 2023-10-25 19:49:57.024449 INFO::Fitting model to feature number 361, F377
## 2023-10-25 19:49:57.029031 INFO::Fitting model to feature number 362, F378
## 2023-10-25 19:49:57.033667 INFO::Fitting model to feature number 363, F379
## 2023-10-25 19:49:57.038283 INFO::Fitting model to feature number 364, F380
## 2023-10-25 19:49:57.042781 INFO::Fitting model to feature number 365, F381
## 2023-10-25 19:49:57.047296 INFO::Fitting model to feature number 366, F382
## 2023-10-25 19:49:57.051863 INFO::Fitting model to feature number 367, F383
## 2023-10-25 19:49:57.056637 INFO::Fitting model to feature number 368, F384
## 2023-10-25 19:49:57.061289 INFO::Fitting model to feature number 369, F386
## 2023-10-25 19:49:57.06587 INFO::Fitting model to feature number 370, F387
## 2023-10-25 19:49:57.070579 INFO::Fitting model to feature number 371, F388
## 2023-10-25 19:49:57.075315 INFO::Fitting model to feature number 372, F389
## 2023-10-25 19:49:57.080151 INFO::Fitting model to feature number 373, F390
## 2023-10-25 19:49:57.084804 INFO::Fitting model to feature number 374, F391
## 2023-10-25 19:49:57.089628 INFO::Fitting model to feature number 375, F392
## 2023-10-25 19:49:57.094224 INFO::Fitting model to feature number 376, F393
## 2023-10-25 19:49:57.098785 INFO::Fitting model to feature number 377, F394
## 2023-10-25 19:49:57.10355 INFO::Fitting model to feature number 378, F395
## 2023-10-25 19:49:57.108051 INFO::Fitting model to feature number 379, F396
## 2023-10-25 19:49:57.112557 INFO::Fitting model to feature number 380, F397
## 2023-10-25 19:49:57.117024 INFO::Fitting model to feature number 381, F398
## 2023-10-25 19:49:57.121681 INFO::Fitting model to feature number 382, F399
## 2023-10-25 19:49:57.126124 INFO::Fitting model to feature number 383, F400
## 2023-10-25 19:49:57.131011 INFO::Fitting model to feature number 384, F401
## 2023-10-25 19:49:57.135563 INFO::Fitting model to feature number 385, F402
## 2023-10-25 19:49:57.140164 INFO::Fitting model to feature number 386, F403
## 2023-10-25 19:49:57.144732 INFO::Fitting model to feature number 387, F404
## 2023-10-25 19:49:57.149323 INFO::Fitting model to feature number 388, F406
## 2023-10-25 19:49:57.153906 INFO::Fitting model to feature number 389, F407
## 2023-10-25 19:49:57.158312 INFO::Fitting model to feature number 390, F408
## 2023-10-25 19:49:57.162796 INFO::Fitting model to feature number 391, F409
## 2023-10-25 19:49:57.167319 INFO::Fitting model to feature number 392, F410
## 2023-10-25 19:49:57.171865 INFO::Fitting model to feature number 393, F411
## 2023-10-25 19:49:57.17623 INFO::Fitting model to feature number 394, F412
## 2023-10-25 19:49:57.180646 INFO::Fitting model to feature number 395, F413
## 2023-10-25 19:49:57.185106 INFO::Fitting model to feature number 396, F414
## 2023-10-25 19:49:57.189583 INFO::Fitting model to feature number 397, F415
## 2023-10-25 19:49:57.194001 INFO::Fitting model to feature number 398, F416
## 2023-10-25 19:49:57.19846 INFO::Fitting model to feature number 399, F417
## 2023-10-25 19:49:57.202946 INFO::Fitting model to feature number 400, F418
## 2023-10-25 19:49:57.207377 INFO::Fitting model to feature number 401, F419
## 2023-10-25 19:49:57.211968 INFO::Fitting model to feature number 402, F420
## 2023-10-25 19:49:57.216554 INFO::Fitting model to feature number 403, F421
## 2023-10-25 19:49:57.221193 INFO::Fitting model to feature number 404, F422
## 2023-10-25 19:49:57.225623 INFO::Fitting model to feature number 405, F423
## 2023-10-25 19:49:57.23018 INFO::Fitting model to feature number 406, F425
## 2023-10-25 19:49:57.234785 INFO::Fitting model to feature number 407, F426
## 2023-10-25 19:49:57.239256 INFO::Fitting model to feature number 408, F428
## 2023-10-25 19:49:57.243744 INFO::Fitting model to feature number 409, F429
## 2023-10-25 19:49:57.248281 INFO::Fitting model to feature number 410, F430
## 2023-10-25 19:49:57.252774 INFO::Fitting model to feature number 411, F431
## 2023-10-25 19:49:57.257328 INFO::Fitting model to feature number 412, F432
## 2023-10-25 19:49:57.26193 INFO::Fitting model to feature number 413, F433
## 2023-10-25 19:49:57.266479 INFO::Fitting model to feature number 414, F434
## 2023-10-25 19:49:57.271101 INFO::Fitting model to feature number 415, F435
## 2023-10-25 19:49:57.275823 INFO::Fitting model to feature number 416, F436
## 2023-10-25 19:49:57.280683 INFO::Fitting model to feature number 417, F437
## 2023-10-25 19:49:57.28516 INFO::Fitting model to feature number 418, F438
## 2023-10-25 19:49:57.290018 INFO::Fitting model to feature number 419, F439
## 2023-10-25 19:49:57.294687 INFO::Fitting model to feature number 420, F440
## 2023-10-25 19:49:57.299673 INFO::Fitting model to feature number 421, F441
## 2023-10-25 19:49:57.321387 INFO::Fitting model to feature number 422, F442
## 2023-10-25 19:49:57.326178 INFO::Fitting model to feature number 423, F443
## 2023-10-25 19:49:57.330691 INFO::Fitting model to feature number 424, F444
## 2023-10-25 19:49:57.335116 INFO::Fitting model to feature number 425, F445
## 2023-10-25 19:49:57.339488 INFO::Fitting model to feature number 426, F446
## 2023-10-25 19:49:57.34383 INFO::Fitting model to feature number 427, F447
## 2023-10-25 19:49:57.34816 INFO::Fitting model to feature number 428, F448
## 2023-10-25 19:49:57.352585 INFO::Fitting model to feature number 429, F449
## 2023-10-25 19:49:57.356873 INFO::Fitting model to feature number 430, F450
## 2023-10-25 19:49:57.361138 INFO::Fitting model to feature number 431, F451
## 2023-10-25 19:49:57.365498 INFO::Fitting model to feature number 432, F452
## 2023-10-25 19:49:57.369807 INFO::Fitting model to feature number 433, F454
## 2023-10-25 19:49:57.374126 INFO::Fitting model to feature number 434, F455
## 2023-10-25 19:49:57.378652 INFO::Fitting model to feature number 435, F456
## 2023-10-25 19:49:57.38555 INFO::Fitting model to feature number 436, F457
## 2023-10-25 19:49:57.391858 INFO::Fitting model to feature number 437, F458
## 2023-10-25 19:49:57.398972 INFO::Fitting model to feature number 438, F459
## 2023-10-25 19:49:57.406172 INFO::Fitting model to feature number 439, F461
## 2023-10-25 19:49:57.411604 INFO::Fitting model to feature number 440, F462
## 2023-10-25 19:49:57.416146 INFO::Fitting model to feature number 441, F463
## 2023-10-25 19:49:57.420613 INFO::Fitting model to feature number 442, F464
## 2023-10-25 19:49:57.425207 INFO::Fitting model to feature number 443, F465
## 2023-10-25 19:49:57.430162 INFO::Fitting model to feature number 444, F466
## 2023-10-25 19:49:57.43454 INFO::Fitting model to feature number 445, F467
## 2023-10-25 19:49:57.439226 INFO::Fitting model to feature number 446, F468
## 2023-10-25 19:49:57.444774 INFO::Fitting model to feature number 447, F469
## 2023-10-25 19:49:57.449185 INFO::Fitting model to feature number 448, F470
## 2023-10-25 19:49:57.45433 INFO::Fitting model to feature number 449, F471
## 2023-10-25 19:49:57.458783 INFO::Fitting model to feature number 450, F474
## 2023-10-25 19:49:57.463287 INFO::Fitting model to feature number 451, F475
## 2023-10-25 19:49:57.467714 INFO::Fitting model to feature number 452, F476
## 2023-10-25 19:49:57.472738 INFO::Fitting model to feature number 453, F477
## 2023-10-25 19:49:57.477824 INFO::Fitting model to feature number 454, F478
## 2023-10-25 19:49:57.482364 INFO::Fitting model to feature number 455, F479
## 2023-10-25 19:49:57.486982 INFO::Fitting model to feature number 456, F480
## 2023-10-25 19:49:57.491477 INFO::Fitting model to feature number 457, F481
## 2023-10-25 19:49:57.496134 INFO::Fitting model to feature number 458, F482
## 2023-10-25 19:49:57.500506 INFO::Fitting model to feature number 459, F483
## 2023-10-25 19:49:57.50489 INFO::Fitting model to feature number 460, F484
## 2023-10-25 19:49:57.50926 INFO::Fitting model to feature number 461, F485
## 2023-10-25 19:49:57.513627 INFO::Fitting model to feature number 462, F486
## 2023-10-25 19:49:57.5179 INFO::Fitting model to feature number 463, F487
## 2023-10-25 19:49:57.52217 INFO::Fitting model to feature number 464, F488
## 2023-10-25 19:49:57.526402 INFO::Fitting model to feature number 465, F489
## 2023-10-25 19:49:57.530699 INFO::Fitting model to feature number 466, F490
## 2023-10-25 19:49:57.534928 INFO::Fitting model to feature number 467, F491
## 2023-10-25 19:49:57.539223 INFO::Fitting model to feature number 468, F492
## 2023-10-25 19:49:57.543456 INFO::Fitting model to feature number 469, F493
## 2023-10-25 19:49:57.54775 INFO::Fitting model to feature number 470, F494
## 2023-10-25 19:49:57.552047 INFO::Fitting model to feature number 471, F495
## 2023-10-25 19:49:57.55626 INFO::Fitting model to feature number 472, F496
## 2023-10-25 19:49:57.56046 INFO::Fitting model to feature number 473, F497
## 2023-10-25 19:49:57.564702 INFO::Fitting model to feature number 474, F498
## 2023-10-25 19:49:57.568892 INFO::Fitting model to feature number 475, F499
## 2023-10-25 19:49:57.573155 INFO::Fitting model to feature number 476, F500
## 2023-10-25 19:49:57.577362 INFO::Fitting model to feature number 477, F501
## 2023-10-25 19:49:57.581569 INFO::Fitting model to feature number 478, F502
## 2023-10-25 19:49:57.586568 INFO::Fitting model to feature number 479, F503
## 2023-10-25 19:49:57.592614 INFO::Fitting model to feature number 480, F504
## 2023-10-25 19:49:57.598243 INFO::Fitting model to feature number 481, F505
## 2023-10-25 19:49:57.603924 INFO::Fitting model to feature number 482, F506
## 2023-10-25 19:49:57.608395 INFO::Fitting model to feature number 483, F507
## 2023-10-25 19:49:57.612785 INFO::Fitting model to feature number 484, F508
## 2023-10-25 19:49:57.617285 INFO::Fitting model to feature number 485, F509
## 2023-10-25 19:49:57.62167 INFO::Fitting model to feature number 486, F510
## 2023-10-25 19:49:57.626034 INFO::Fitting model to feature number 487, F511
## 2023-10-25 19:49:57.630468 INFO::Fitting model to feature number 488, F512
## 2023-10-25 19:49:57.634809 INFO::Fitting model to feature number 489, F513
## 2023-10-25 19:49:57.63914 INFO::Fitting model to feature number 490, F514
## 2023-10-25 19:49:57.643463 INFO::Fitting model to feature number 491, F515
## 2023-10-25 19:49:57.647776 INFO::Fitting model to feature number 492, F516
## 2023-10-25 19:49:57.652167 INFO::Fitting model to feature number 493, F517
## 2023-10-25 19:49:57.656583 INFO::Fitting model to feature number 494, F518
## 2023-10-25 19:49:57.661264 INFO::Fitting model to feature number 495, F519
## 2023-10-25 19:49:57.66573 INFO::Fitting model to feature number 496, F520
## 2023-10-25 19:49:57.671173 INFO::Fitting model to feature number 497, F521
## 2023-10-25 19:49:57.675665 INFO::Fitting model to feature number 498, F522
## 2023-10-25 19:49:57.680112 INFO::Fitting model to feature number 499, F523
## 2023-10-25 19:49:57.684565 INFO::Fitting model to feature number 500, F524
## 2023-10-25 19:49:57.689016 INFO::Fitting model to feature number 501, F525
## 2023-10-25 19:49:57.693385 INFO::Fitting model to feature number 502, F526
## 2023-10-25 19:49:57.69772 INFO::Fitting model to feature number 503, F527
## 2023-10-25 19:49:57.702122 INFO::Fitting model to feature number 504, F528
## 2023-10-25 19:49:57.706558 INFO::Fitting model to feature number 505, F529
## 2023-10-25 19:49:57.711038 INFO::Fitting model to feature number 506, F530
## 2023-10-25 19:49:57.715515 INFO::Fitting model to feature number 507, F531
## 2023-10-25 19:49:57.719904 INFO::Fitting model to feature number 508, F532
## 2023-10-25 19:49:57.724423 INFO::Fitting model to feature number 509, F533
## 2023-10-25 19:49:57.728926 INFO::Fitting model to feature number 510, F534
## 2023-10-25 19:49:57.733386 INFO::Fitting model to feature number 511, F535
## 2023-10-25 19:49:57.737798 INFO::Fitting model to feature number 512, F536
## 2023-10-25 19:49:57.742279 INFO::Fitting model to feature number 513, F537
## 2023-10-25 19:49:57.74682 INFO::Fitting model to feature number 514, F539
## 2023-10-25 19:49:57.751368 INFO::Fitting model to feature number 515, F540
## 2023-10-25 19:49:57.755881 INFO::Fitting model to feature number 516, F541
## 2023-10-25 19:49:57.760395 INFO::Fitting model to feature number 517, F543
## 2023-10-25 19:49:57.764779 INFO::Fitting model to feature number 518, F544
## 2023-10-25 19:49:57.76928 INFO::Fitting model to feature number 519, F545
## 2023-10-25 19:49:57.773838 INFO::Fitting model to feature number 520, F546
## 2023-10-25 19:49:57.778385 INFO::Fitting model to feature number 521, F547
## 2023-10-25 19:49:57.782789 INFO::Fitting model to feature number 522, F548
## 2023-10-25 19:49:57.787131 INFO::Fitting model to feature number 523, F549
## 2023-10-25 19:49:57.791568 INFO::Fitting model to feature number 524, F550
## 2023-10-25 19:49:57.796002 INFO::Fitting model to feature number 525, F551
## 2023-10-25 19:49:57.800337 INFO::Fitting model to feature number 526, F552
## 2023-10-25 19:49:57.804627 INFO::Fitting model to feature number 527, F553
## 2023-10-25 19:49:57.809011 INFO::Fitting model to feature number 528, F554
## 2023-10-25 19:49:57.81343 INFO::Fitting model to feature number 529, F555
## 2023-10-25 19:49:57.817828 INFO::Fitting model to feature number 530, F556
## 2023-10-25 19:49:57.822259 INFO::Fitting model to feature number 531, F557
## 2023-10-25 19:49:57.826654 INFO::Fitting model to feature number 532, F558
## 2023-10-25 19:49:57.831176 INFO::Fitting model to feature number 533, F559
## 2023-10-25 19:49:57.835663 INFO::Fitting model to feature number 534, F560
## 2023-10-25 19:49:57.840207 INFO::Fitting model to feature number 535, F561
## 2023-10-25 19:49:57.844824 INFO::Fitting model to feature number 536, F562
## 2023-10-25 19:49:57.849278 INFO::Fitting model to feature number 537, F563
## 2023-10-25 19:49:57.853972 INFO::Fitting model to feature number 538, F564
## 2023-10-25 19:49:57.858409 INFO::Fitting model to feature number 539, F566
## 2023-10-25 19:49:57.862887 INFO::Fitting model to feature number 540, F567
## 2023-10-25 19:49:57.867334 INFO::Fitting model to feature number 541, F568
## 2023-10-25 19:49:57.871813 INFO::Fitting model to feature number 542, F569
## 2023-10-25 19:49:57.8762 INFO::Fitting model to feature number 543, F570
## 2023-10-25 19:49:57.880558 INFO::Fitting model to feature number 544, F571
## 2023-10-25 19:49:57.885066 INFO::Fitting model to feature number 545, F572
## 2023-10-25 19:49:57.889545 INFO::Fitting model to feature number 546, F573
## 2023-10-25 19:49:57.894059 INFO::Fitting model to feature number 547, F574
## 2023-10-25 19:49:57.8998 INFO::Fitting model to feature number 548, F575
## 2023-10-25 19:49:57.907306 INFO::Fitting model to feature number 549, F576
## 2023-10-25 19:49:57.91319 INFO::Fitting model to feature number 550, F577
## 2023-10-25 19:49:57.917926 INFO::Fitting model to feature number 551, F578
## 2023-10-25 19:49:57.923919 INFO::Fitting model to feature number 552, F579
## 2023-10-25 19:49:57.931746 INFO::Fitting model to feature number 553, F580
## 2023-10-25 19:49:57.938685 INFO::Fitting model to feature number 554, F581
## 2023-10-25 19:49:57.946717 INFO::Fitting model to feature number 555, F582
## 2023-10-25 19:49:57.95468 INFO::Fitting model to feature number 556, F583
## 2023-10-25 19:49:57.960489 INFO::Fitting model to feature number 557, F584
## 2023-10-25 19:49:57.965425 INFO::Fitting model to feature number 558, F585
## 2023-10-25 19:49:57.970248 INFO::Fitting model to feature number 559, F586
## 2023-10-25 19:49:57.97516 INFO::Fitting model to feature number 560, F587
## 2023-10-25 19:49:57.98003 INFO::Fitting model to feature number 561, F588
## 2023-10-25 19:49:57.984799 INFO::Fitting model to feature number 562, F589
## 2023-10-25 19:49:57.989693 INFO::Fitting model to feature number 563, F590
## 2023-10-25 19:49:57.994591 INFO::Fitting model to feature number 564, F591
## 2023-10-25 19:49:57.999495 INFO::Fitting model to feature number 565, F592
## 2023-10-25 19:49:58.004341 INFO::Fitting model to feature number 566, F593
## 2023-10-25 19:49:58.009336 INFO::Fitting model to feature number 567, F594
## 2023-10-25 19:49:58.014169 INFO::Fitting model to feature number 568, F595
## 2023-10-25 19:49:58.021225 INFO::Fitting model to feature number 569, F596
## 2023-10-25 19:49:58.0287 INFO::Fitting model to feature number 570, F597
## 2023-10-25 19:49:58.03585 INFO::Fitting model to feature number 571, F598
## 2023-10-25 19:49:58.042945 INFO::Fitting model to feature number 572, F599
## 2023-10-25 19:49:58.050419 INFO::Fitting model to feature number 573, F600
## 2023-10-25 19:49:58.058511 INFO::Fitting model to feature number 574, F601
## 2023-10-25 19:49:58.066247 INFO::Fitting model to feature number 575, F602
## 2023-10-25 19:49:58.073755 INFO::Fitting model to feature number 576, F603
## 2023-10-25 19:49:58.081196 INFO::Fitting model to feature number 577, F605
## 2023-10-25 19:49:58.088732 INFO::Fitting model to feature number 578, F606
## 2023-10-25 19:49:58.096367 INFO::Fitting model to feature number 579, F607
## 2023-10-25 19:49:58.103746 INFO::Fitting model to feature number 580, F608
## 2023-10-25 19:49:58.111388 INFO::Fitting model to feature number 581, F609
## 2023-10-25 19:49:58.118832 INFO::Fitting model to feature number 582, F610
## 2023-10-25 19:49:58.126399 INFO::Fitting model to feature number 583, F611
## 2023-10-25 19:49:58.134479 INFO::Fitting model to feature number 584, F612
## 2023-10-25 19:49:58.142393 INFO::Fitting model to feature number 585, F613
## 2023-10-25 19:49:58.149786 INFO::Fitting model to feature number 586, F614
## 2023-10-25 19:49:58.156853 INFO::Fitting model to feature number 587, F615
## 2023-10-25 19:49:58.164031 INFO::Fitting model to feature number 588, F616
## 2023-10-25 19:49:58.171174 INFO::Fitting model to feature number 589, F617
## 2023-10-25 19:49:58.179159 INFO::Fitting model to feature number 590, F618
## 2023-10-25 19:49:58.18456 INFO::Fitting model to feature number 591, F619
## 2023-10-25 19:49:58.189214 INFO::Fitting model to feature number 592, F620
## 2023-10-25 19:49:58.193976 INFO::Fitting model to feature number 593, F621
## 2023-10-25 19:49:58.198714 INFO::Fitting model to feature number 594, F622
## 2023-10-25 19:49:58.203444 INFO::Fitting model to feature number 595, F623
## 2023-10-25 19:49:58.2081 INFO::Fitting model to feature number 596, F624
## 2023-10-25 19:49:58.212781 INFO::Fitting model to feature number 597, F625
## 2023-10-25 19:49:58.21741 INFO::Fitting model to feature number 598, F626
## 2023-10-25 19:49:58.222034 INFO::Fitting model to feature number 599, F627
## 2023-10-25 19:49:58.226836 INFO::Fitting model to feature number 600, F628
## 2023-10-25 19:49:58.231651 INFO::Fitting model to feature number 601, F629
## 2023-10-25 19:49:58.237191 INFO::Fitting model to feature number 602, F630
## 2023-10-25 19:49:58.24386 INFO::Fitting model to feature number 603, F631
## 2023-10-25 19:49:58.249044 INFO::Fitting model to feature number 604, F632
## 2023-10-25 19:49:58.254281 INFO::Fitting model to feature number 605, F633
## 2023-10-25 19:49:58.261792 INFO::Fitting model to feature number 606, F634
## 2023-10-25 19:49:58.267815 INFO::Fitting model to feature number 607, F635
## 2023-10-25 19:49:58.272949 INFO::Fitting model to feature number 608, F636
## 2023-10-25 19:49:58.27845 INFO::Fitting model to feature number 609, F637
## 2023-10-25 19:49:58.283288 INFO::Fitting model to feature number 610, F638
## 2023-10-25 19:49:58.2881 INFO::Fitting model to feature number 611, F639
## 2023-10-25 19:49:58.293324 INFO::Fitting model to feature number 612, F640
## 2023-10-25 19:49:58.299526 INFO::Fitting model to feature number 613, F641
## 2023-10-25 19:49:58.306228 INFO::Fitting model to feature number 614, F642
## 2023-10-25 19:49:58.311076 INFO::Fitting model to feature number 615, F643
## 2023-10-25 19:49:58.316623 INFO::Fitting model to feature number 616, F644
## 2023-10-25 19:49:58.322707 INFO::Fitting model to feature number 617, F645
## 2023-10-25 19:49:58.330335 INFO::Fitting model to feature number 618, F646
## 2023-10-25 19:49:58.337536 INFO::Fitting model to feature number 619, F647
## 2023-10-25 19:49:58.345212 INFO::Fitting model to feature number 620, F648
## 2023-10-25 19:49:58.350777 INFO::Fitting model to feature number 621, F649
## 2023-10-25 19:49:58.355591 INFO::Fitting model to feature number 622, F650
## 2023-10-25 19:49:58.360724 INFO::Fitting model to feature number 623, F651
## 2023-10-25 19:49:58.365442 INFO::Fitting model to feature number 624, F652
## 2023-10-25 19:49:58.370024 INFO::Fitting model to feature number 625, F653
## 2023-10-25 19:49:58.374548 INFO::Fitting model to feature number 626, F654
## 2023-10-25 19:49:58.379292 INFO::Fitting model to feature number 627, F655
## 2023-10-25 19:49:58.38393 INFO::Fitting model to feature number 628, F656
## 2023-10-25 19:49:58.388607 INFO::Fitting model to feature number 629, F657
## 2023-10-25 19:49:58.393289 INFO::Fitting model to feature number 630, F658
## 2023-10-25 19:49:58.397995 INFO::Fitting model to feature number 631, F659
## 2023-10-25 19:49:58.40262 INFO::Fitting model to feature number 632, F660
## 2023-10-25 19:49:58.409939 INFO::Fitting model to feature number 633, F661
## 2023-10-25 19:49:58.415005 INFO::Fitting model to feature number 634, F662
## 2023-10-25 19:49:58.420306 INFO::Fitting model to feature number 635, F663
## 2023-10-25 19:49:58.424922 INFO::Fitting model to feature number 636, F664
## 2023-10-25 19:49:58.429705 INFO::Fitting model to feature number 637, F665
## 2023-10-25 19:49:58.434578 INFO::Fitting model to feature number 638, F666
## 2023-10-25 19:49:58.4393 INFO::Fitting model to feature number 639, F667
## 2023-10-25 19:49:58.443872 INFO::Fitting model to feature number 640, F668
## 2023-10-25 19:49:58.448678 INFO::Fitting model to feature number 641, F669
## 2023-10-25 19:49:58.453456 INFO::Fitting model to feature number 642, F670
## 2023-10-25 19:49:58.458162 INFO::Fitting model to feature number 643, F671
## 2023-10-25 19:49:58.462871 INFO::Fitting model to feature number 644, F672
## 2023-10-25 19:49:58.467577 INFO::Fitting model to feature number 645, F673
## 2023-10-25 19:49:58.472226 INFO::Fitting model to feature number 646, F674
## 2023-10-25 19:49:58.476996 INFO::Fitting model to feature number 647, F675
## 2023-10-25 19:49:58.48202 INFO::Fitting model to feature number 648, F676
## 2023-10-25 19:49:58.486667 INFO::Fitting model to feature number 649, F677
## 2023-10-25 19:49:58.491514 INFO::Fitting model to feature number 650, F678
## 2023-10-25 19:49:58.496557 INFO::Fitting model to feature number 651, F679
## 2023-10-25 19:49:58.50188 INFO::Fitting model to feature number 652, F680
## 2023-10-25 19:49:58.506546 INFO::Fitting model to feature number 653, F681
## 2023-10-25 19:49:58.511426 INFO::Fitting model to feature number 654, F682
## 2023-10-25 19:49:58.517529 INFO::Fitting model to feature number 655, F683
## 2023-10-25 19:49:58.523022 INFO::Fitting model to feature number 656, F684
## 2023-10-25 19:49:58.547827 INFO::Fitting model to feature number 657, F685
## 2023-10-25 19:49:58.553413 INFO::Fitting model to feature number 658, F686
## 2023-10-25 19:49:58.558758 INFO::Fitting model to feature number 659, F687
## 2023-10-25 19:49:58.563585 INFO::Fitting model to feature number 660, F688
## 2023-10-25 19:49:58.568701 INFO::Fitting model to feature number 661, F689
## 2023-10-25 19:49:58.575109 INFO::Fitting model to feature number 662, F690
## 2023-10-25 19:49:58.58014 INFO::Fitting model to feature number 663, F691
## 2023-10-25 19:49:58.585676 INFO::Fitting model to feature number 664, F692
## 2023-10-25 19:49:58.592565 INFO::Fitting model to feature number 665, F693
## 2023-10-25 19:49:58.600014 INFO::Fitting model to feature number 666, F694
## 2023-10-25 19:49:58.607313 INFO::Fitting model to feature number 667, F695
## 2023-10-25 19:49:58.613683 INFO::Fitting model to feature number 668, F696
## 2023-10-25 19:49:58.619859 INFO::Fitting model to feature number 669, F697
## 2023-10-25 19:49:58.625885 INFO::Fitting model to feature number 670, F698
## 2023-10-25 19:49:58.631994 INFO::Fitting model to feature number 671, F699
## 2023-10-25 19:49:58.638637 INFO::Fitting model to feature number 672, F700
## 2023-10-25 19:49:58.645845 INFO::Fitting model to feature number 673, F701
## 2023-10-25 19:49:58.652816 INFO::Fitting model to feature number 674, F702
## 2023-10-25 19:49:58.660053 INFO::Fitting model to feature number 675, F704
## 2023-10-25 19:49:58.667335 INFO::Fitting model to feature number 676, F705
## 2023-10-25 19:49:58.674622 INFO::Fitting model to feature number 677, F706
## 2023-10-25 19:49:58.681835 INFO::Fitting model to feature number 678, F707
## 2023-10-25 19:49:58.689065 INFO::Fitting model to feature number 679, F708
## 2023-10-25 19:49:58.696248 INFO::Fitting model to feature number 680, F709
## 2023-10-25 19:49:58.703432 INFO::Fitting model to feature number 681, F710
## 2023-10-25 19:49:58.710658 INFO::Fitting model to feature number 682, F711
## 2023-10-25 19:49:58.716825 INFO::Fitting model to feature number 683, F712
## 2023-10-25 19:49:58.721557 INFO::Fitting model to feature number 684, F713
## 2023-10-25 19:49:58.726208 INFO::Fitting model to feature number 685, F714
## 2023-10-25 19:49:58.731143 INFO::Fitting model to feature number 686, F715
## 2023-10-25 19:49:58.737457 INFO::Fitting model to feature number 687, F716
## 2023-10-25 19:49:58.743655 INFO::Fitting model to feature number 688, F717
## 2023-10-25 19:49:58.748801 INFO::Fitting model to feature number 689, F718
## 2023-10-25 19:49:58.75368 INFO::Fitting model to feature number 690, F719
## 2023-10-25 19:49:58.75849 INFO::Fitting model to feature number 691, F720
## 2023-10-25 19:49:58.7632 INFO::Fitting model to feature number 692, F721
## 2023-10-25 19:49:58.767818 INFO::Fitting model to feature number 693, F722
## 2023-10-25 19:49:58.773072 INFO::Fitting model to feature number 694, F723
## 2023-10-25 19:49:58.77801 INFO::Fitting model to feature number 695, F724
## 2023-10-25 19:49:58.782716 INFO::Fitting model to feature number 696, F725
## 2023-10-25 19:49:58.78762 INFO::Fitting model to feature number 697, F726
## 2023-10-25 19:49:58.792456 INFO::Fitting model to feature number 698, F727
## 2023-10-25 19:49:58.797464 INFO::Fitting model to feature number 699, F728
## 2023-10-25 19:49:58.802025 INFO::Fitting model to feature number 700, F729
## 2023-10-25 19:49:58.806847 INFO::Fitting model to feature number 701, F730
## 2023-10-25 19:49:58.812152 INFO::Fitting model to feature number 702, F731
## 2023-10-25 19:49:58.816912 INFO::Fitting model to feature number 703, F732
## 2023-10-25 19:49:58.821751 INFO::Fitting model to feature number 704, F733
## 2023-10-25 19:49:58.826564 INFO::Fitting model to feature number 705, F734
## 2023-10-25 19:49:58.831311 INFO::Fitting model to feature number 706, F735
## 2023-10-25 19:49:58.836027 INFO::Fitting model to feature number 707, F736
## 2023-10-25 19:49:58.841151 INFO::Fitting model to feature number 708, F737
## 2023-10-25 19:49:58.845835 INFO::Fitting model to feature number 709, F739
## 2023-10-25 19:49:58.850693 INFO::Fitting model to feature number 710, F740
## 2023-10-25 19:49:58.855436 INFO::Fitting model to feature number 711, F741
## 2023-10-25 19:49:58.860142 INFO::Fitting model to feature number 712, F742
## 2023-10-25 19:49:58.866836 INFO::Fitting model to feature number 713, F743
## 2023-10-25 19:49:58.872245 INFO::Fitting model to feature number 714, F744
## 2023-10-25 19:49:58.876918 INFO::Fitting model to feature number 715, F745
## 2023-10-25 19:49:58.88155 INFO::Fitting model to feature number 716, F746
## 2023-10-25 19:49:58.886209 INFO::Fitting model to feature number 717, F747
## 2023-10-25 19:49:58.890924 INFO::Fitting model to feature number 718, F748
## 2023-10-25 19:49:58.896889 INFO::Fitting model to feature number 719, F749
## 2023-10-25 19:49:58.903429 INFO::Fitting model to feature number 720, F750
## 2023-10-25 19:49:58.908378 INFO::Fitting model to feature number 721, F751
## 2023-10-25 19:49:58.913038 INFO::Fitting model to feature number 722, F752
## 2023-10-25 19:49:58.91762 INFO::Fitting model to feature number 723, F753
## 2023-10-25 19:49:58.922157 INFO::Fitting model to feature number 724, F754
## 2023-10-25 19:49:58.926675 INFO::Fitting model to feature number 725, F755
## 2023-10-25 19:49:58.931206 INFO::Fitting model to feature number 726, F756
## 2023-10-25 19:49:58.935638 INFO::Fitting model to feature number 727, F757
## 2023-10-25 19:49:58.940049 INFO::Fitting model to feature number 728, F758
## 2023-10-25 19:49:58.944533 INFO::Fitting model to feature number 729, F759
## 2023-10-25 19:49:58.949181 INFO::Fitting model to feature number 730, F760
## 2023-10-25 19:49:58.953591 INFO::Fitting model to feature number 731, F761
## 2023-10-25 19:49:58.957993 INFO::Fitting model to feature number 732, F762
## 2023-10-25 19:49:58.962421 INFO::Fitting model to feature number 733, F763
## 2023-10-25 19:49:58.966873 INFO::Fitting model to feature number 734, F764
## 2023-10-25 19:49:58.971258 INFO::Fitting model to feature number 735, F765
## 2023-10-25 19:49:58.975641 INFO::Fitting model to feature number 736, F766
## 2023-10-25 19:49:58.980023 INFO::Fitting model to feature number 737, F767
## 2023-10-25 19:49:58.984367 INFO::Fitting model to feature number 738, F768
## 2023-10-25 19:49:58.98874 INFO::Fitting model to feature number 739, F769
## 2023-10-25 19:49:58.993074 INFO::Fitting model to feature number 740, F770
## 2023-10-25 19:49:58.997415 INFO::Fitting model to feature number 741, F771
## 2023-10-25 19:49:59.001692 INFO::Fitting model to feature number 742, F772
## 2023-10-25 19:49:59.005961 INFO::Fitting model to feature number 743, F773
## 2023-10-25 19:49:59.010306 INFO::Fitting model to feature number 744, F774
## 2023-10-25 19:49:59.014591 INFO::Fitting model to feature number 745, F775
## 2023-10-25 19:49:59.018912 INFO::Fitting model to feature number 746, F776
## 2023-10-25 19:49:59.023241 INFO::Fitting model to feature number 747, F777
## 2023-10-25 19:49:59.027572 INFO::Fitting model to feature number 748, F778
## 2023-10-25 19:49:59.032016 INFO::Fitting model to feature number 749, F779
## 2023-10-25 19:49:59.036413 INFO::Fitting model to feature number 750, F780
## 2023-10-25 19:49:59.05518 INFO::Fitting model to feature number 751, F781
## 2023-10-25 19:49:59.059978 INFO::Fitting model to feature number 752, F782
## 2023-10-25 19:49:59.064607 INFO::Fitting model to feature number 753, F783
## 2023-10-25 19:49:59.069191 INFO::Fitting model to feature number 754, F784
## 2023-10-25 19:49:59.07394 INFO::Fitting model to feature number 755, F785
## 2023-10-25 19:49:59.078686 INFO::Fitting model to feature number 756, F786
## 2023-10-25 19:49:59.08507 INFO::Fitting model to feature number 757, F787
## 2023-10-25 19:49:59.092432 INFO::Fitting model to feature number 758, F788
## 2023-10-25 19:49:59.097015 INFO::Fitting model to feature number 759, F789
## 2023-10-25 19:49:59.101754 INFO::Fitting model to feature number 760, F790
## 2023-10-25 19:49:59.106423 INFO::Fitting model to feature number 761, F791
## 2023-10-25 19:49:59.111023 INFO::Fitting model to feature number 762, F792
## 2023-10-25 19:49:59.115698 INFO::Fitting model to feature number 763, F793
## 2023-10-25 19:49:59.120494 INFO::Fitting model to feature number 764, F794
## 2023-10-25 19:49:59.125254 INFO::Fitting model to feature number 765, F795
## 2023-10-25 19:49:59.129969 INFO::Fitting model to feature number 766, F796
## 2023-10-25 19:49:59.134691 INFO::Fitting model to feature number 767, F797
## 2023-10-25 19:49:59.139543 INFO::Fitting model to feature number 768, F798
## 2023-10-25 19:49:59.144118 INFO::Fitting model to feature number 769, F799
## 2023-10-25 19:49:59.148727 INFO::Fitting model to feature number 770, F800
## 2023-10-25 19:49:59.153379 INFO::Fitting model to feature number 771, F801
## 2023-10-25 19:49:59.157904 INFO::Fitting model to feature number 772, F802
## 2023-10-25 19:49:59.162448 INFO::Fitting model to feature number 773, F803
## 2023-10-25 19:49:59.167098 INFO::Fitting model to feature number 774, F804
## 2023-10-25 19:49:59.17174 INFO::Fitting model to feature number 775, F805
## 2023-10-25 19:49:59.176344 INFO::Fitting model to feature number 776, F806
## 2023-10-25 19:49:59.180938 INFO::Fitting model to feature number 777, F808
## 2023-10-25 19:49:59.186066 INFO::Fitting model to feature number 778, F809
## 2023-10-25 19:49:59.190831 INFO::Fitting model to feature number 779, F810
## 2023-10-25 19:49:59.196111 INFO::Fitting model to feature number 780, F811
## 2023-10-25 19:49:59.203263 INFO::Fitting model to feature number 781, F812
## 2023-10-25 19:49:59.209968 INFO::Fitting model to feature number 782, F813
## 2023-10-25 19:49:59.21494 INFO::Fitting model to feature number 783, F814
## 2023-10-25 19:49:59.219831 INFO::Fitting model to feature number 784, F815
## 2023-10-25 19:49:59.224826 INFO::Fitting model to feature number 785, F816
## 2023-10-25 19:49:59.229653 INFO::Fitting model to feature number 786, F817
## 2023-10-25 19:49:59.234338 INFO::Fitting model to feature number 787, F818
## 2023-10-25 19:49:59.239118 INFO::Fitting model to feature number 788, F819
## 2023-10-25 19:49:59.243928 INFO::Fitting model to feature number 789, F820
## 2023-10-25 19:49:59.248708 INFO::Fitting model to feature number 790, F821
## 2023-10-25 19:49:59.253446 INFO::Fitting model to feature number 791, F822
## 2023-10-25 19:49:59.258139 INFO::Fitting model to feature number 792, F823
## 2023-10-25 19:49:59.262805 INFO::Fitting model to feature number 793, F824
## 2023-10-25 19:49:59.267523 INFO::Fitting model to feature number 794, F825
## 2023-10-25 19:49:59.272167 INFO::Fitting model to feature number 795, F826
## 2023-10-25 19:49:59.276747 INFO::Fitting model to feature number 796, F827
## 2023-10-25 19:49:59.281328 INFO::Fitting model to feature number 797, F828
## 2023-10-25 19:49:59.285874 INFO::Fitting model to feature number 798, F829
## 2023-10-25 19:49:59.290591 INFO::Fitting model to feature number 799, F830
## 2023-10-25 19:49:59.295384 INFO::Fitting model to feature number 800, F831
## 2023-10-25 19:49:59.299955 INFO::Fitting model to feature number 801, F832
## 2023-10-25 19:49:59.304611 INFO::Fitting model to feature number 802, F833
## 2023-10-25 19:49:59.309133 INFO::Fitting model to feature number 803, F834
## 2023-10-25 19:49:59.313722 INFO::Fitting model to feature number 804, F835
## 2023-10-25 19:49:59.31821 INFO::Fitting model to feature number 805, F836
## 2023-10-25 19:49:59.322854 INFO::Fitting model to feature number 806, F837
## 2023-10-25 19:49:59.327304 INFO::Fitting model to feature number 807, F838
## 2023-10-25 19:49:59.331736 INFO::Fitting model to feature number 808, F839
## 2023-10-25 19:49:59.336306 INFO::Fitting model to feature number 809, F840
## 2023-10-25 19:49:59.340786 INFO::Fitting model to feature number 810, F841
## 2023-10-25 19:49:59.345201 INFO::Fitting model to feature number 811, F842
## 2023-10-25 19:49:59.349617 INFO::Fitting model to feature number 812, F843
## 2023-10-25 19:49:59.354257 INFO::Fitting model to feature number 813, F844
## 2023-10-25 19:49:59.35881 INFO::Fitting model to feature number 814, F845
## 2023-10-25 19:49:59.3633 INFO::Fitting model to feature number 815, F846
## 2023-10-25 19:49:59.367865 INFO::Fitting model to feature number 816, F847
## 2023-10-25 19:49:59.372357 INFO::Fitting model to feature number 817, F848
## 2023-10-25 19:49:59.37693 INFO::Fitting model to feature number 818, F849
## 2023-10-25 19:49:59.381583 INFO::Fitting model to feature number 819, F850
## 2023-10-25 19:49:59.386375 INFO::Fitting model to feature number 820, F851
## 2023-10-25 19:49:59.390906 INFO::Fitting model to feature number 821, F852
## 2023-10-25 19:49:59.395436 INFO::Fitting model to feature number 822, F853
## 2023-10-25 19:49:59.402029 INFO::Fitting model to feature number 823, F854
## 2023-10-25 19:49:59.41008 INFO::Fitting model to feature number 824, F855
## 2023-10-25 19:49:59.418018 INFO::Fitting model to feature number 825, F856
## 2023-10-25 19:49:59.425975 INFO::Fitting model to feature number 826, F857
## 2023-10-25 19:49:59.434042 INFO::Fitting model to feature number 827, F858
## 2023-10-25 19:49:59.442083 INFO::Fitting model to feature number 828, F859
## 2023-10-25 19:49:59.450161 INFO::Fitting model to feature number 829, F860
## 2023-10-25 19:49:59.457471 INFO::Fitting model to feature number 830, F861
## 2023-10-25 19:49:59.463174 INFO::Fitting model to feature number 831, F862
## 2023-10-25 19:49:59.46802 INFO::Fitting model to feature number 832, F863
## 2023-10-25 19:49:59.472833 INFO::Fitting model to feature number 833, F864
## 2023-10-25 19:49:59.477754 INFO::Fitting model to feature number 834, F865
## 2023-10-25 19:49:59.482534 INFO::Fitting model to feature number 835, F866
## 2023-10-25 19:49:59.48726 INFO::Fitting model to feature number 836, F867
## 2023-10-25 19:49:59.492012 INFO::Fitting model to feature number 837, F868
## 2023-10-25 19:49:59.497614 INFO::Fitting model to feature number 838, F869
## 2023-10-25 19:49:59.507539 INFO::Fitting model to feature number 839, F870
## 2023-10-25 19:49:59.512486 INFO::Fitting model to feature number 840, F871
## 2023-10-25 19:49:59.517482 INFO::Fitting model to feature number 841, F872
## 2023-10-25 19:49:59.522311 INFO::Fitting model to feature number 842, F873
## 2023-10-25 19:49:59.527351 INFO::Fitting model to feature number 843, F874
## 2023-10-25 19:49:59.532251 INFO::Fitting model to feature number 844, F875
## 2023-10-25 19:49:59.537112 INFO::Fitting model to feature number 845, F876
## 2023-10-25 19:49:59.542217 INFO::Fitting model to feature number 846, F877
## 2023-10-25 19:49:59.547303 INFO::Fitting model to feature number 847, F878
## 2023-10-25 19:49:59.552088 INFO::Fitting model to feature number 848, F879
## 2023-10-25 19:49:59.556831 INFO::Fitting model to feature number 849, F880
## 2023-10-25 19:49:59.561509 INFO::Fitting model to feature number 850, F881
## 2023-10-25 19:49:59.566276 INFO::Fitting model to feature number 851, F882
## 2023-10-25 19:49:59.571084 INFO::Fitting model to feature number 852, F883
## 2023-10-25 19:49:59.575901 INFO::Fitting model to feature number 853, F884
## 2023-10-25 19:49:59.580519 INFO::Fitting model to feature number 854, F885
## 2023-10-25 19:49:59.585191 INFO::Fitting model to feature number 855, F886
## 2023-10-25 19:49:59.58987 INFO::Fitting model to feature number 856, F887
## 2023-10-25 19:49:59.594713 INFO::Fitting model to feature number 857, F888
## 2023-10-25 19:49:59.600668 INFO::Fitting model to feature number 858, F889
## 2023-10-25 19:49:59.608072 INFO::Fitting model to feature number 859, F890
## 2023-10-25 19:49:59.615689 INFO::Fitting model to feature number 860, F891
## 2023-10-25 19:49:59.623431 INFO::Fitting model to feature number 861, F892
## 2023-10-25 19:49:59.631153 INFO::Fitting model to feature number 862, F893
## 2023-10-25 19:49:59.637473 INFO::Fitting model to feature number 863, F894
## 2023-10-25 19:49:59.644581 INFO::Fitting model to feature number 864, F895
## 2023-10-25 19:49:59.650124 INFO::Fitting model to feature number 865, F896
## 2023-10-25 19:49:59.657418 INFO::Fitting model to feature number 866, F897
## 2023-10-25 19:49:59.664532 INFO::Fitting model to feature number 867, F898
## 2023-10-25 19:49:59.670375 INFO::Fitting model to feature number 868, F899
## 2023-10-25 19:49:59.67783 INFO::Fitting model to feature number 869, F900
## 2023-10-25 19:49:59.847853 INFO::Counting total values for each feature
## 2023-10-25 19:49:59.959336 INFO::Writing filtered data to file Macarron_output/maaslin2_results/features/filtered_data.tsv
## 2023-10-25 19:50:00.34732 INFO::Writing filtered, normalized data to file Macarron_output/maaslin2_results/features/filtered_data_norm.tsv
## 2023-10-25 19:50:00.722172 INFO::Writing filtered, normalized, transformed data to file Macarron_output/maaslin2_results/features/filtered_data_norm_transformed.tsv
## 2023-10-25 19:50:01.149948 INFO::Writing residuals to file Macarron_output/maaslin2_results/fits/residuals.rds
## 2023-10-25 19:50:01.192298 INFO::Writing fitted values to file Macarron_output/maaslin2_results/fits/fitted.rds
## 2023-10-25 19:50:01.222835 INFO::Writing all results to file (ordered by increasing q-values): Macarron_output/maaslin2_results/all_results.tsv
## 2023-10-25 19:50:01.305904 INFO::Writing the significant results (those which are less than or equal to the threshold of 0.250000 ) to file (ordered by increasing q-values): Macarron_output/maaslin2_results/significant_results.tsv
## 2023-10-25 19:50:01.344025 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
## Calculating meta-rank and prioritizing metabolic features
## 2023-10-25 19:50:02.182739 INFO::Writing all prioritized metabolites to file: Macarron_output/prioritized_metabolites_all.csv
## 2023-10-25 19:50:02.206107 INFO::Writing characterizable prioritized metabolites to file: Macarron_output/prioritized_metabolites_characterizable.csv
## 2023-10-25 19:50:02.232411 INFO::Writing highly prioritized metabolites in IBD to file: Macarron_output/highly_prioritized_per_module_in_IBD.csv

3.3.2 Using dataframes as inputs

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

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

3.3.3 Running Macarron as individual functions

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

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

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

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

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

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

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

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

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

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

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

3.4 Advanced Topics

3.4.1 Generating the input chemical taxonomy file

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

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

3.4.2 Accessory output files

3.4.2.1 Macarron.log

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

3.4.2.2 modules_measures_of_success.csv

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

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

3.4.2.3 Maaslin2 results

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

3.4.3 Changing defaults

3.4.3.1 Filtering metabolic features based on prevalence

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

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

3.4.4 Minimum module size

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

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

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

3.4.5 Specifying fixed effects, random effects and reference

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

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

4 Command line invocation

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