view qiime2-2020.8/qiime_sample-classifier_fit-classifier.xml @ 20:d93d8888f0b0 draft

Uploaded
author florianbegusch
date Fri, 04 Sep 2020 12:44:24 +0000
parents
children
line wrap: on
line source

<?xml version="1.0" ?>
<tool id="qiime_sample-classifier_fit-classifier" name="qiime sample-classifier fit-classifier"
      version="2020.8">
  <description>Fit a supervised learning classifier.</description>
  <requirements>
    <requirement type="package" version="2020.8">qiime2</requirement>
  </requirements>
  <command><![CDATA[
qiime sample-classifier fit-classifier

--i-table=$itable
# if $input_files_mmetadatafile:
  # def list_dict_to_string(list_dict):
    # set $file_list = list_dict[0]['additional_input'].__getattr__('file_name')
    # for d in list_dict[1:]:
      # set $file_list = $file_list + ' --m-metadata-file=' + d['additional_input'].__getattr__('file_name')
    # end for
    # return $file_list
  # end def
--m-metadata-file=$list_dict_to_string($input_files_mmetadatafile)
# end if

#if '__ob__' in str($mmetadatacolumn):
  #set $mmetadatacolumn_temp = $mmetadatacolumn.replace('__ob__', '[')
  #set $mmetadatacolumn = $mmetadatacolumn_temp
#end if
#if '__cb__' in str($mmetadatacolumn):
  #set $mmetadatacolumn_temp = $mmetadatacolumn.replace('__cb__', ']')
  #set $mmetadatacolumn = $mmetadatacolumn_temp
#end if
#if 'X' in str($mmetadatacolumn):
  #set $mmetadatacolumn_temp = $mmetadatacolumn.replace('X', '\\')
  #set $mmetadatacolumn = $mmetadatacolumn_temp
#end if
#if '__sq__' in str($mmetadatacolumn):
  #set $mmetadatacolumn_temp = $mmetadatacolumn.replace('__sq__', "'")
  #set $mmetadatacolumn = $mmetadatacolumn_temp
#end if
#if '__db__' in str($mmetadatacolumn):
  #set $mmetadatacolumn_temp = $mmetadatacolumn.replace('__db__', '"')
  #set $mmetadatacolumn = $mmetadatacolumn_temp
#end if

--m-metadata-column=$mmetadatacolumn


--p-step=$pstep

--p-cv=$pcv

#if str($prandomstate):
  --p-random-state=$prandomstate
#end if
--p-n-jobs=$pnjobs

--p-n-estimators=$pnestimators

#if str($pestimator) != 'None':
--p-estimator=$pestimator
#end if

#if $poptimizefeatureselection:
 --p-optimize-feature-selection
#end if

#if $pparametertuning:
 --p-parameter-tuning
#end if

#if str($pmissingsamples) != 'None':
--p-missing-samples=$pmissingsamples
#end if

--o-sample-estimator=osampleestimator

--o-feature-importance=ofeatureimportance

#if str($examples) != 'None':
--examples=$examples
#end if

;
cp ofeatureimportance.qza $ofeatureimportance

  ]]></command>
  <inputs>
    <param format="qza,no_unzip.zip" label="--i-table: ARTIFACT FeatureTable[Frequency] Feature table containing all features that should be used for target prediction.                  [required]" name="itable" optional="False" type="data" />
    <repeat name="input_files_mmetadatafile" optional="True" title="--m-metadata-file">
      <param format="tabular,qza,no_unzip.zip" label="--m-metadata-file: METADATA" name="additional_input" optional="True" type="data" />
    </repeat>
    <param label="--m-metadata-column: COLUMN  MetadataColumn[Categorical] Numeric metadata column to use as prediction target. [required]" name="mmetadatacolumn" optional="False" type="text" />
    <param exclude_min="True" label="--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]" max="1.0" min="0.0" name="pstep" optional="True" type="float" value="0.05" />
    <param label="--p-cv: INTEGER       Number of k-fold cross-validations to perform. Range(1, None)                                                [default: 5]" min="1" name="pcv" optional="True" type="integer" value="5" />
    <param label="--p-random-state: INTEGER Seed used by random number generator.        [optional]" name="prandomstate" optional="False" type="text" />
    <param label="--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]" min="1" name="pnestimators" optional="True" type="integer" value="100" />
    <param label="--p-estimator: " name="pestimator" optional="True" type="select">
      <option selected="True" value="None">Selection is Optional</option>
      <option value="RandomForestClassifier">RandomForestClassifier</option>
      <option value="ExtraTreesClassifier">ExtraTreesClassifier</option>
      <option value="GradientBoostingClassifier">GradientBoostingClassifier</option>
      <option value="AdaBoostClassifier">AdaBoostClassifier</option>
      <option value="KNeighborsClassifier">KNeighborsClassifier</option>
      <option value="LinearSVC">LinearSVC</option>
      <option value="SVC">SVC</option>
    </param>
    <param label="--p-optimize-feature-selection: --p-optimize-feature-selection: / --p-no-optimize-feature-selection Automatically optimize input feature selection using recursive feature elimination.         [default: False]" name="poptimizefeatureselection" selected="False" type="boolean" />
    <param label="--p-parameter-tuning: --p-parameter-tuning: / --p-no-parameter-tuning Automatically tune hyperparameters using random grid search.                                [default: False]" name="pparametertuning" selected="False" type="boolean" />
    <param label="--p-missing-samples: " name="pmissingsamples" optional="True" type="select">
      <option selected="True" value="None">Selection is Optional</option>
      <option value="error">error</option>
      <option value="ignore">ignore</option>
    </param>
    <param label="--examples: Show usage examples and exit." name="examples" optional="False" type="data" />
    
  </inputs>

  <outputs>
    <data format="qza" label="${tool.name} on ${on_string}: sampleestimator.qza" name="osampleestimator" />
    <data format="qza" label="${tool.name} on ${on_string}: featureimportance.qza" name="ofeatureimportance" />
    
  </outputs>

  <help><![CDATA[
Fit a supervised learning classifier.
###############################################################

Fit a supervised learning classifier. Outputs the fit estimator (for
prediction of test samples and/or unknown samples) and the relative
importance of each feature for model accuracy. Optionally use k-fold cross-
validation for automatic recursive feature elimination and hyperparameter
tuning.

Parameters
----------
table : FeatureTable[Frequency]
    Feature table containing all features that should be used for target
    prediction.
metadata : MetadataColumn[Categorical]
    Numeric metadata column to use as prediction target.
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 : Int, optional
    Number of jobs to run in parallel.
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.
estimator : Str % Choices('RandomForestClassifier', 'ExtraTreesClassifier', 'GradientBoostingClassifier', 'AdaBoostClassifier', 'KNeighborsClassifier', 'LinearSVC', 'SVC'), optional
    Estimator method to use for sample prediction.
optimize_feature_selection : Bool, optional
    Automatically optimize input feature selection using recursive feature
    elimination.
parameter_tuning : Bool, optional
    Automatically tune hyperparameters using random grid search.
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.

Returns
-------
sample_estimator : SampleEstimator[Classifier]
    Trained sample classifier.
feature_importance : FeatureData[Importance]
    Importance of each input feature to model accuracy.
  ]]></help>
  <macros>
    <import>qiime_citation.xml</import>
  </macros>
  <expand macro="qiime_citation"/>
</tool>