Fork me on GitHub

maturity-index: Microbial maturity index prediction.

Citations
  • Nicholas Bokulich, Matthew Dillon, Evan Bolyen, Benjamin D Kaehler, Gavin A Huttley, and J Gregory Caporaso. Q2-sample-classifier: machine-learning tools for microbiome classification and regression. Journal of Open Source Software, 3(30):934, 2018. doi:10.21105/joss.00934.

  • Sathish Subramanian, Sayeeda Huq, Tanya Yatsunenko, Rashidul Haque, Mustafa Mahfuz, Mohammed A Alam, Amber Benezra, Joseph DeStefano, Martin F Meier, Brian D Muegge, Michael J Barratt, Laura G VanArendonk, Qunyuan Zhang, Michael A Province, William A Petri, Tahmeed Ahmed, and Jeffrey I Gordon. Persistent gut microbiota immaturity in malnourished bangladeshi children. Nature, 510(7505):417, 2014. doi:10.1038/nature13421.

Docstring:

Usage: qiime longitudinal maturity-index [OPTIONS]

  Calculates a "microbial maturity" index from a regression model trained on
  feature data to predict a given continuous metadata column, e.g., to predict
  age as a function of microbiota composition. The model is trained on a
  subset of control group samples, then predicts the column value for all
  samples. This visualization computes maturity index z-scores to compare
  relative "maturity" between each group, as described in
  doi:10.1038/nature13421. This method can be used to predict between-group
  differences in relative trajectory across any type of continuous metadata
  gradient, e.g., intestinal microbiome development by age, microbial
  succession during wine fermentation, or microbial community differences
  along environmental gradients, as a function of two or more different
  "treatment" groups.

Inputs:
  --i-table ARTIFACT FeatureTable[Frequency]
                          Feature table containing all features that should
                          be used for target prediction.            [required]
Parameters:
  --m-metadata-file METADATA...
    (multiple arguments
     will be merged)                                                [required]
  --p-state-column TEXT   Numeric metadata column containing sampling time
                          (state) data to use as prediction target. [required]
  --p-group-by TEXT       Categorical metadata column to use for plotting and
                          significance testing between main treatment groups.
                                                                    [required]
  --p-control TEXT        Value of group-by to use as control group. The
                          regression model will be trained using only control
                          group data, and the maturity scores of other groups
                          consequently will be assessed relative to this
                          group.                                    [required]
  --p-individual-id-column TEXT
                          Optional metadata column containing IDs for
                          individual subjects. Adds individual subject
                          (spaghetti) vectors to volatility charts if a column
                          name is provided.                         [optional]
  --p-estimator TEXT Choices('RandomForestRegressor',
    'ExtraTreesRegressor', 'GradientBoostingRegressor',
    'AdaBoostRegressor[DecisionTree]', 'AdaBoostRegressor[ExtraTrees]',
    'ElasticNet', 'Ridge', 'Lasso', 'KNeighborsRegressor', 'LinearSVR', 'SVR')
                          Regression model to use for prediction.
                                            [default: 'RandomForestRegressor']
  --p-n-estimators INTEGER
    Range(1, None)        Number of trees to grow for estimation. More trees
                          will improve predictive accuracy up to a threshold
                          level, but will also increase time and memory
                          requirements. This parameter only affects ensemble
                          estimators, such as Random Forest, AdaBoost,
                          ExtraTrees, and GradientBoosting.     [default: 100]
  --p-test-size PROPORTION
    Range(0.0, 1.0)       Fraction of input samples to exclude from training
                          set and use for classifier testing.   [default: 0.5]
  --p-step PROPORTION Range(0.0, 1.0, inclusive_start=False)
                          If optimize-feature-selection is True, step is the
                          percentage of features to remove at each iteration.
                                                               [default: 0.05]
  --p-cv INTEGER          Number of k-fold cross-validations to perform.
    Range(1, None)                                                [default: 5]
  --p-random-state INTEGER
                          Seed used by random number generator.     [optional]
  --p-n-jobs NTHREADS     Number of jobs to run in parallel.      [default: 1]
  --p-parameter-tuning / --p-no-parameter-tuning
                          Automatically tune hyperparameters using random
                          grid search.                        [default: False]
  --p-optimize-feature-selection / --p-no-optimize-feature-selection
                          Automatically optimize input feature selection
                          using recursive feature elimination.
                                                              [default: False]
  --p-stratify / --p-no-stratify
                          Evenly stratify training and test data among
                          metadata categories. If True, all values in column
                          must match at least two samples.    [default: False]
  --p-missing-samples TEXT Choices('error', 'ignore')
                          How to handle missing samples in metadata. "error"
                          will fail if missing samples are detected. "ignore"
                          will cause the feature table and metadata to be
                          filtered, so that only samples found in both files
                          are retained.                     [default: 'error']
  --p-feature-count INTEGER
    Range(0, None)        Filter feature table to include top N most
                          important features. Set to zero to include all
                          features.                              [default: 50]
Outputs:
  --o-sample-estimator ARTIFACT SampleEstimator[Regressor]
                          Trained sample estimator.                 [required]
  --o-feature-importance ARTIFACT FeatureData[Importance]
                          Importance of each input feature to model accuracy.
                                                                    [required]
  --o-predictions ARTIFACT SampleData[RegressorPredictions]
                          Predicted target values for each input sample.
                                                                    [required]
  --o-model-summary VISUALIZATION
                          Summarized parameter and (if enabled) feature
                          selection information for the trained estimator.
                                                                    [required]
  --o-accuracy-results VISUALIZATION
                          Accuracy results visualization.           [required]
  --o-maz-scores ARTIFACT SampleData[RegressorPredictions]
                          Microbiota-for-age z-score predictions.   [required]
  --o-clustermap VISUALIZATION
                          Heatmap of important feature abundance at each time
                          point in each group.                      [required]
  --o-volatility-plots VISUALIZATION
                          Interactive volatility plots of MAZ and maturity
                          scores, target (column) predictions, and the sample
                          metadata.                                 [required]
Miscellaneous:
  --output-dir PATH       Output unspecified results to a directory
  --verbose / --quiet     Display verbose output to stdout and/or stderr
                          during execution of this action. Or silence output
                          if execution is successful (silence is golden).
  --recycle-pool TEXT     Use a cache pool for pipeline resumption. QIIME 2
                          will cache your results in this pool for reuse by
                          future invocations. These pool are retained until
                          deleted by the user. If not provided, QIIME 2 will
                          create a pool which is automatically reused by
                          invocations of the same action and removed if the
                          action is successful. Note: these pools are local to
                          the cache you are using.
  --no-recycle            Do not recycle results from a previous failed
                          pipeline run or save the results from this run for
                          future recycling.
  --parallel              Execute your action in parallel. This flag will use
                          your default parallel config.
  --parallel-config FILE  Execute your action in parallel using a config at
                          the indicated path.
  --example-data PATH     Write example data and exit.
  --citations             Show citations and exit.
  --use-cache DIRECTORY   Specify the cache to be used for the intermediate
                          work of this action. If not provided, the default
                          cache under $TMP/qiime2/ will be used.
                          IMPORTANT FOR HPC USERS: If you are on an HPC system
                          and are using parallel execution it is important to
                          set this to a location that is globally accessible
                          to all nodes in the cluster.
  --help                  Show this message and exit.

Import:

from qiime2.plugins.longitudinal.pipelines import maturity_index

Docstring:

Microbial maturity index prediction.

Calculates a "microbial maturity" index from a regression model trained on
feature data to predict a given continuous metadata column, e.g., to
predict age as a function of microbiota composition. The model is trained
on a subset of control group samples, then predicts the column value for
all samples. This visualization computes maturity index z-scores to compare
relative "maturity" between each group, as described in
doi:10.1038/nature13421. This method can be used to predict between-group
differences in relative trajectory across any type of continuous metadata
gradient, e.g., intestinal microbiome development by age, microbial
succession during wine fermentation, or microbial community differences
along environmental gradients, as a function of two or more different
"treatment" groups.

Parameters
----------
table : FeatureTable[Frequency]
    Feature table containing all features that should be used for target
    prediction.
metadata : Metadata
state_column : Str
    Numeric metadata column containing sampling time (state) data to use as
    prediction target.
group_by : Str
    Categorical metadata column to use for plotting and significance
    testing between main treatment groups.
control : Str
    Value of group_by to use as control group. The regression model will be
    trained using only control group data, and the maturity scores of other
    groups consequently will be assessed relative to this group.
individual_id_column : Str, optional
    Optional metadata column containing IDs for individual subjects. Adds
    individual subject (spaghetti) vectors to volatility charts if a column
    name is provided.
estimator : Str % Choices('RandomForestRegressor', 'ExtraTreesRegressor', 'GradientBoostingRegressor', 'AdaBoostRegressor[DecisionTree]', 'AdaBoostRegressor[ExtraTrees]', 'ElasticNet', 'Ridge', 'Lasso', 'KNeighborsRegressor', 'LinearSVR', 'SVR'), optional
    Regression model to use for prediction.
n_estimators : Int % Range(1, None), optional
    Number of trees to grow for estimation. More trees will improve
    predictive accuracy up to a threshold level, but will also increase
    time and memory requirements. This parameter only affects ensemble
    estimators, such as Random Forest, AdaBoost, ExtraTrees, and
    GradientBoosting.
test_size : Float % Range(0.0, 1.0), optional
    Fraction of input samples to exclude from training set and use for
    classifier testing.
step : Float % Range(0.0, 1.0, inclusive_start=False), optional
    If optimize_feature_selection is True, step is the percentage of
    features to remove at each iteration.
cv : Int % Range(1, None), optional
    Number of k-fold cross-validations to perform.
random_state : Int, optional
    Seed used by random number generator.
n_jobs : Threads, optional
    Number of jobs to run in parallel.
parameter_tuning : Bool, optional
    Automatically tune hyperparameters using random grid search.
optimize_feature_selection : Bool, optional
    Automatically optimize input feature selection using recursive feature
    elimination.
stratify : Bool, optional
    Evenly stratify training and test data among metadata categories. If
    True, all values in column must match at least two samples.
missing_samples : Str % Choices('error', 'ignore'), optional
    How to handle missing samples in metadata. "error" will fail if missing
    samples are detected. "ignore" will cause the feature table and
    metadata to be filtered, so that only samples found in both files are
    retained.
feature_count : Int % Range(0, None), optional
    Filter feature table to include top N most important features. Set to
    zero to include all features.

Returns
-------
sample_estimator : SampleEstimator[Regressor]
    Trained sample estimator.
feature_importance : FeatureData[Importance]
    Importance of each input feature to model accuracy.
predictions : SampleData[RegressorPredictions]
    Predicted target values for each input sample.
model_summary : Visualization
    Summarized parameter and (if enabled) feature selection information for
    the trained estimator.
accuracy_results : Visualization
    Accuracy results visualization.
maz_scores : SampleData[RegressorPredictions]
    Microbiota-for-age z-score predictions.
clustermap : Visualization
    Heatmap of important feature abundance at each time point in each
    group.
volatility_plots : Visualization
    Interactive volatility plots of MAZ and maturity scores, target
    (column) predictions, and the sample metadata.