definitions:
  datasets:
    my_dataset:
      format: RandomSequenceDataset
      params:
        sequence_count: 100
        labels:
          gluten:
            binder: 0.6
            nonbinder: 0.4

  encodings:
    my_silly_encoding_len3:
      Silly:
        embedding_len: 3

    my_silly_encoding_len5:
      Silly:
        embedding_len: 5

  ml_methods:
    my_silly_method1: SillyClassifier
    my_silly_method2: SillyClassifier

  reports:
    my_design_matrix: DesignMatrixExporter
    my_performance: MLSettingsPerformance

instructions:
  my_instr:
    type: TrainMLModel

    dataset: my_dataset
    labels: [gluten]

    settings:
      - encoding: my_silly_encoding_len3
        ml_method: my_silly_method1
      - encoding: my_silly_encoding_len5
        ml_method: my_silly_method1
      - encoding: my_silly_encoding_len3
        ml_method: my_silly_method2
      - encoding: my_silly_encoding_len5
        ml_method: my_silly_method2

    assessment:
      split_strategy: k_fold
      split_count: 5
      reports:
        encoding: [my_design_matrix]
    selection:
      split_strategy: random
      split_count: 3
      training_percentage: 0.7

    optimization_metric: balanced_accuracy
    metrics:
    - accuracy
    - auc
    strategy: GridSearch
    refit_optimal_model: False
    reports: [my_performance]
    number_of_processes: 4