view ident_params.xml @ 0:8b99cb00e1c4 draft

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/peptideshaker commit 3c83b8f8ca60d6399bc5dd7096b830ca1f1c457e-dirty
author jjohnson
date Tue, 15 May 2018 14:50:35 -0400
parents
children fa76abf69433
line wrap: on
line source

<tool id="ident_params" name="Identification Parameters" version="1.0">
    <description>
        Sets the identification parameters to be used in SearchGUI and PeptideShaker apps
    </description>
    <macros>
        <import>macros_basic.xml</import>
    </macros>
    <requirements>
      	<requirement type="package" version="@SEARCHGUI_VERSION@">searchgui</requirement>
      	<requirement type="package" version="3.0">zip</requirement>
    </requirements>
    <expand macro="stdio" />
    <command>
<![CDATA[
        #set $temp_stderr = "searchgui_stderr"
        #set $bin_dir = "bin"

        mkdir output;
        cwd=`pwd`;
        export HOME=\$cwd;

        echo "DB: ${input_database.display_name} sequences: ${input_database.metadata.sequences}";

        #####################################################
        ## generate IdentificationParameters for SearchGUI ##
        #####################################################
        (searchgui eu.isas.searchgui.cmd.IdentificationParametersCLI
            --exec_dir="\$cwd/${bin_dir}"
            -out "\$cwd/SEARCHGUI_IdentificationParameters.par"

          ## SPECTRUM MATCHING PARAMETERS

            -db "${input_database}"

            -frag_tol '${spectrum_matching_options.fragment_tol}'
            -frag_ppm '${spectrum_matching_options.fragment_tol_units}'
            -prec_tol '${spectrum_matching_options.precursor_ion_tol}'
            -prec_ppm '${spectrum_matching_options.precursor_ion_tol_units}'

            #if $spectrum_matching_options.digestion.cleavage == 'default':
              ## -enzyme "Trysin"
              -mc $spectrum_matching_options.digestion.missed_cleavages
            #elif $spectrum_matching_options.digestion.cleavage == '0' and len($spectrum_matching_options.digestion.digests) > 0:
              #set $enzymes = []
              #set $missed_cleavages = []
              ## #set $specificities = []
              #for $i, $digest in enumerate($spectrum_matching_options.digestion.digests):
                  #silent $enzymes.append(str($digest.enzyme))
                  #silent $missed_cleavages.append(str($digest.missed_cleavages))
                  ## #silent $specificities.append(str($digest.specificity))
              #end for
              -enzyme "#echo ','.join($enzymes)#"
              -mc "#echo ','.join($missed_cleavages)#"
              ## -specificity "#echo ','.join($specificities)#"
            #else:
               -digestion $spectrum_matching_options.digestion.cleavage
            #end if


            #set $fixed_mods_str = $spectrum_matching_options.fixed_modifications or ''
            #set $variable_mods_str = $spectrum_matching_options.variable_modifications or ''
            #if $fixed_mods_str
                -fixed_mods "$fixed_mods_str"
            #end if
            #if $variable_mods_str
                -variable_mods "$variable_mods_str"
            #end if


            -min_charge $spectrum_matching_options.min_charge
            -max_charge $spectrum_matching_options.max_charge
            -fi $spectrum_matching_options.forward_ion
            -ri $spectrum_matching_options.reverse_ion
            -min_isotope ${spectrum_matching_options.min_isotope}
            -max_isotope ${spectrum_matching_options.max_isotope}
            ## these last two both are also present in the app in the import filters section.


            ## -- ADVANCED PARAMETERS

            ## TODO: SPECTRUM ANNOTATION


            ## TODO: SEQUENCE MATCHING


            ## IMPORT FILTERS

            ##if $advanced_options.import_filters_options.filtering_options_selector == "yes":

            -import_peptide_length_min "${advanced_options.import_filters_options.min_peptide_length}"
            -import_peptide_length_max "${advanced_options.import_filters_options.max_peptide_length}"
            -import_precurosor_mz "${advanced_options.import_filters_options.max_precursor_error}"
            -import_precurosor_mz_ppm "${advanced_options.import_filters_options.max_precursor_error_type}"
            ##-max_xtandem_e "${advanced_options.import_filters_options.max_xtandem_e}"
            ##-max_omssa_e "${advanced_options.import_filters_options.max_omssa_e}"
            ##-max_mascot_e "${advanced_options.import_filters_options.max_mascot_e}"
            -exclude_unknown_ptms "${advanced_options.import_filters_options.exclude_unknown_ptms}"

            ## end if


            ## PTM LOCALIZATION

            -ptm_score "${advanced_options.ptm_localization_options.ptm_score.ptm_score_selector}"
            #if $advanced_options.ptm_localization_options.ptm_score.ptm_score_selector == 1
                -score_neutral_losses "${advanced_options.ptm_localization_options.ptm_score.neutral_losses}"
                #if str($advanced_options.ptm_localization_options.ptm_score.ptm_threshold) != ''
                    -ptm_threshold "${advanced_options.ptm_localization_options.ptm_score.ptm_threshold}"
                #end if
            #end if
            -ptm_alignment "${advanced_options.ptm_localization_options.ptm_alignment}"
            -ptm_sequence_matching_type "${advanced_options.ptm_localization_options.ptm_sequence_matching_type}"


            ## GENE ANNOTATION

            $advanced_options.gene_annotation_options.use_gene_mapping
            #if $advanced_options.gene_annotation_options.use_gene_mapping:
                $advanced_options.gene_annotation_options.update_gene_mapping
            #else:
                -updateGeneMapping 0
            #end if


            ## TODO: PROTEIN INFERENCE


            ## TODO: VALIDATION LEVELS

            -protein_fdr "${advanced_options.validation_levels_options.protein_fdr}"
            -peptide_fdr "${advanced_options.validation_levels_options.peptide_fdr}"
            -psm_fdr "${advanced_options.validation_levels_options.psm_fdr}"


            ## FRACTION ANALYSIS

            -protein_fraction_mw_confidence "${advanced_options.fraction_analysis_options.protein_fraction_mw_confidence}"


            ## -- SEARCH ENGINES SPECIFIC PARAMETERS --


            ## XTANDEM ADVANCED PARAMETERS

            #if $advanced_options.searchengines_advanced_options.xtandem.xtandem_advanced == "yes"

                -xtandem_npeaks ${advanced_options.searchengines_advanced_options.xtandem.xtandem_npeaks}
                -xtandem_min_peaks ${advanced_options.searchengines_advanced_options.xtandem.xtandem_min_peaks}
                -xtandem_min_frag_mz ${advanced_options.searchengines_advanced_options.xtandem.xtandem_min_frag_mz}
                -xtandem_min_prec_mass ${advanced_options.searchengines_advanced_options.xtandem.xtandem_min_prec_mass}
                -xtandem_noise_suppr ${advanced_options.searchengines_advanced_options.xtandem.xtandem_noise_suppr}
                -xtandem_dynamic_range ${advanced_options.searchengines_advanced_options.xtandem.xtandem_dynamic_range}
                -xtandem_quick_acetyl ${advanced_options.searchengines_advanced_options.xtandem.xtandem_quick_acetyl}
                -xtandem_quick_pyro ${advanced_options.searchengines_advanced_options.xtandem.xtandem_quick_pyro}
                -xtandem_stp_bias ${advanced_options.searchengines_advanced_options.xtandem.xtandem_stp_bias}
                -xtandem_evalue ${advanced_options.searchengines_advanced_options.xtandem.xtandem_evalue}
                -xtandem_output_proteins ${advanced_options.searchengines_advanced_options.xtandem.xtandem_output_proteins}
                -xtandem_output_sequences ${advanced_options.searchengines_advanced_options.xtandem.xtandem_output_sequences}
                -xtandem_output_spectra ${advanced_options.searchengines_advanced_options.xtandem.xtandem_output_spectra}
                ## -xtandem_skyline_path ${advanced_options.searchengines_advanced_options.xtandem.xtandem_skyline_path}

                #if $advanced_options.searchengines_advanced_options.xtandem.xtandem_refine.xtandem_refine_selector == "yes"
                    -xtandem_refine 1
                    -xtandem_refine_unc ${advanced_options.searchengines_advanced_options.xtandem.xtandem_refine.xtandem_refine_unc}
                    -xtandem_refine_semi ${advanced_options.searchengines_advanced_options.xtandem.xtandem_refine.xtandem_refine_semi}
                    -xtandem_refine_p_mut ${advanced_options.searchengines_advanced_options.xtandem.xtandem_refine.xtandem_refine_p_mut}
                    -xtandem_refine_snaps ${advanced_options.searchengines_advanced_options.xtandem.xtandem_refine.xtandem_refine_snaps}
                    -xtandem_refine_spec_synt ${advanced_options.searchengines_advanced_options.xtandem.xtandem_refine.xtandem_refine_spec_synt}
                    -xtandem_refine_pot ${advanced_options.searchengines_advanced_options.xtandem.xtandem_refine.xtandem_refine_pot}
                    -xtandem_refine_pot ${advanced_options.searchengines_advanced_options.xtandem.xtandem_refine.xtandem_refine_evalue}

                #end if
            #else
                -xtandem_output_spectra 1
            #end if


            ## OMSSA ADVANCED PARAMETERS

            #if $advanced_options.searchengines_advanced_options.omssa.omssa_advanced == "yes"
                -omssa_hitlist_length ${advanced_options.searchengines_advanced_options.omssa.hitlist_length}
                -omssa_remove_prec ${advanced_options.searchengines_advanced_options.omssa.remove_precursor}
                -omssa_scale_prec ${advanced_options.searchengines_advanced_options.omssa.scale_precursor}
                -omssa_estimate_charge ${advanced_options.searchengines_advanced_options.omssa.estimate_charge}
                -omssa_memory ${advanced_options.searchengines_advanced_options.omssa.omssa_memory}
                -omssa_neutron ${advanced_options.searchengines_advanced_options.omssa.omssa_neutron}
                -omssa_low_intensity "${advanced_options.searchengines_advanced_options.omssa.omssa_low_intensity}"
                -omssa_high_intensity ${advanced_options.searchengines_advanced_options.omssa.omssa_high_intensity}
                -omssa_intensity_incr ${advanced_options.searchengines_advanced_options.omssa.omssa_intensity_incr}
                -omssa_single_window_wd ${advanced_options.searchengines_advanced_options.omssa.omssa_single_window_wd}
                -omssa_double_window_wd ${advanced_options.searchengines_advanced_options.omssa.omssa_double_window_wd}
                -omssa_single_window_pk ${advanced_options.searchengines_advanced_options.omssa.omssa_single_window_pk}
                -omssa_double_window_pk ${advanced_options.searchengines_advanced_options.omssa.omssa_double_window_pk}
                -omssa_min_ann_int_pks ${advanced_options.searchengines_advanced_options.omssa.omssa_min_ann_int_pks}
                -omssa_min_annotated_peaks ${advanced_options.searchengines_advanced_options.omssa.omssa_min_annotated_peaks}
                -omssa_min_peaks ${advanced_options.searchengines_advanced_options.omssa.omssa_min_peaks}
                -omssa_methionine ${advanced_options.searchengines_advanced_options.omssa.omssa_methionine}
                -omssa_max_ladders ${advanced_options.searchengines_advanced_options.omssa.omssa_max_ladders}
                -omssa_max_frag_charge ${advanced_options.searchengines_advanced_options.omssa.omssa_max_frag_charge}
                -omssa_fraction ${advanced_options.searchengines_advanced_options.omssa.omssa_fraction}
                -omssa_plus_one ${advanced_options.searchengines_advanced_options.omssa.omssa_plus_one}
                -omssa_charge ${advanced_options.searchengines_advanced_options.omssa.omssa_charge}
                -omssa_prec_per_spectrum ${advanced_options.searchengines_advanced_options.omssa.omssa_prec_per_spectrum}
                -omssa_forward ${advanced_options.searchengines_advanced_options.omssa.omssa_forward}
                -omssa_rewind ${advanced_options.searchengines_advanced_options.omssa.omssa_rewind}
                -omssa_max_frag_series ${advanced_options.searchengines_advanced_options.omssa.omssa_max_frag_series}
                -omssa_corr ${advanced_options.searchengines_advanced_options.omssa.omssa_corr}
                -omssa_consecutive_p ${advanced_options.searchengines_advanced_options.omssa.omssa_consecutive_p}
                -omssa_it_sequence_evalue ${advanced_options.searchengines_advanced_options.omssa.omssa_it_sequence_evalue}
                -omssa_it_spectrum_evalue ${advanced_options.searchengines_advanced_options.omssa.omssa_it_spectrum_evalue}
                -omssa_it_replace_evalue ${advanced_options.searchengines_advanced_options.omssa.omssa_it_replace_evalue}
                -omssa_max_evalue ${advanced_options.searchengines_advanced_options.omssa.omssa_max_evalue}
                -omssa_hitlist_charge ${advanced_options.searchengines_advanced_options.omssa.omssa_hitlist_charge}
                -omssa_min_pep_length ${advanced_options.searchengines_advanced_options.omssa.omssa_min_pep_length}
                -omssa_max_pep_length ${advanced_options.searchengines_advanced_options.omssa.omssa_max_pep_length}
                -omssa_format ${advanced_options.searchengines_advanced_options.omssa.omssa_format}
            #end if


            ## MSGF+ ADVANCED PARAMETERS

            #if $advanced_options.searchengines_advanced_options.msgf.msgf_advanced == "yes"
                -msgf_decoy ${advanced_options.searchengines_advanced_options.msgf.msgf_decoy}
                -msgf_min_pep_length ${advanced_options.searchengines_advanced_options.msgf.msgf_min_pep_length}
                -msgf_max_pep_length ${advanced_options.searchengines_advanced_options.msgf.msgf_max_pep_length}
                -msgf_termini ${advanced_options.searchengines_advanced_options.msgf.msgf_termini}
                -msgf_num_ptms ${advanced_options.searchengines_advanced_options.msgf.msgf_num_ptms}
                -msgf_instrument ${advanced_options.searchengines_advanced_options.msgf.msgf_instrument}
                -msgf_fragmentation ${advanced_options.searchengines_advanced_options.msgf.msgf_fragmentation}
                -msgf_protocol ${advanced_options.searchengines_advanced_options.msgf.msgf_protocol}
                -msgf_num_matches ${advanced_options.searchengines_advanced_options.msgf.msgf_num_matches}
                -msgf_additional ${advanced_options.searchengines_advanced_options.msgf.msgf_additional}
            #end if


            ## MSAMANDA ADVANCED PARAMETERS

            #if $advanced_options.searchengines_advanced_options.ms_amanda.ms_amanda_advanced == "yes"
                 -ms_amanda_decoy ${advanced_options.searchengines_advanced_options.ms_amanda.ms_amanda_decoy}
                 -ms_amanda_instrument "${advanced_options.searchengines_advanced_options.ms_amanda.ms_amanda_instrument}"
                 -ms_amanda_max_rank ${advanced_options.searchengines_advanced_options.ms_amanda.ms_amanda_max_rank}
                 -ms_amanda_mono ${advanced_options.searchengines_advanced_options.ms_amanda.ms_amanda_mono}
            #end if


            ## MYRIMATCH ADVANCED PARAMETERS

            #if $advanced_options.searchengines_advanced_options.myrimatch.myrimatch_advanced == "yes"
                -myrimatch_min_pep_length ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_min_pep_length}
                -myrimatch_max_pep_length ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_max_pep_length}
                -myrimatch_min_prec_mass ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_min_prec_mass}
                -myrimatch_max_prec_mass ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_max_prec_mass}
                -myrimatch_num_matches ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_num_matches}
                -myrimatch_num_ptms ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_num_ptms}
                -myrimatch_fragmentation ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_fragmentation}
                -myrimatch_termini ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_termini}
                -myrimatch_plus_three ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_plus_three}
                -myrimatch_xcorr ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_xcorr}
                -myrimatch_tic_cutoff ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_tic_cutoff}
                -myrimatch_intensity_classes ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_intensity_classes}
                -myrimatch_class_multiplier ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_class_multiplier}
                -myrimatch_num_batches ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_num_batches}
                -myrimatch_max_peak ${advanced_options.searchengines_advanced_options.myrimatch.myrimatch_max_peak}
            #end if


            ## ANDROMEDA ADVANCED PARAMETERS

            #* Not working in tests
            #if $advanced_options.searchengines_advanced_options.andromeda.andromeda_advanced == "yes"
                -andromeda_max_pep_mass ${advanced_options.searchengines_advanced_options.andromeda.andromeda_max_pep_mass}
                -andromeda_max_comb ${advanced_options.searchengines_advanced_options.andromeda.andromeda_max_comb}
                -andromeda_top_peaks ${advanced_options.searchengines_advanced_options.andromeda.andromeda_top_peaks}
                -andromeda_top_peaks_window ${advanced_options.searchengines_advanced_options.andromeda.andromeda_top_peaks_window}
                -andromeda_incl_water ${advanced_options.searchengines_advanced_options.andromeda.andromeda_incl_water}
                -andromeda_incl_ammonia ${advanced_options.searchengines_advanced_options.andromeda.andromeda_incl_ammonia}
                -andromeda_neutral_losses ${advanced_options.searchengines_advanced_options.andromeda.andromeda_neutral_losses}
                -andromeda_fragment_all ${advanced_options.searchengines_advanced_options.andromeda.andromeda_fragment_all}
                -andromeda_emp_correction ${advanced_options.searchengines_advanced_options.andromeda.andromeda_emp_correction}
                -andromeda_higher_charge ${advanced_options.searchengines_advanced_options.andromeda.andromeda_higher_charge}
                -andromeda_equal_il ${advanced_options.searchengines_advanced_options.andromeda.andromeda_equal_il}
                -andromeda_frag_method ${advanced_options.searchengines_advanced_options.andromeda.andromeda_frag_method}
                -andromeda_max_mods ${advanced_options.searchengines_advanced_options.andromeda.andromeda_max_mods}
                -andromeda_min_pep_length ${advanced_options.searchengines_advanced_options.andromeda.andromeda_min_pep_length}
                -andromeda_max_pep_length ${advanced_options.searchengines_advanced_options.andromeda.andromeda_max_pep_length}
                -andromeda_max_psms ${advanced_options.searchengines_advanced_options.andromeda.andromeda_max_psms}
                -andromeda_decoy_mode ${advanced_options.searchengines_advanced_options.andromeda.andromeda_decoy_mode}
            #end if
            *#


            ## TIDE ADVANCED PARAMETERS

            #if $advanced_options.searchengines_advanced_options.tide.tide_advanced == "yes"
                #if str($advanced_options.searchengines_advanced_options.tide.tide_max_spectrum_mz).strip() != '':
                  -tide_num_ptms ${advanced_options.searchengines_advanced_options.tide.tide_max_spectrum_mz}
                #end if
                -tide_num_ptms_per_type ${advanced_options.searchengines_advanced_options.tide.tide_num_ptms_per_type}
                -tide_min_pep_length ${advanced_options.searchengines_advanced_options.tide.tide_min_pep_length}
                -tide_max_pep_length ${advanced_options.searchengines_advanced_options.tide.tide_max_pep_length}
                -tide_min_prec_mass ${advanced_options.searchengines_advanced_options.tide.tide_min_prec_mass}
                -tide_max_prec_mass ${advanced_options.searchengines_advanced_options.tide.tide_max_prec_mass}
                -tide_decoy_format ${advanced_options.searchengines_advanced_options.tide.tide_decoy_format}
                -tide_keep_terminals ${advanced_options.searchengines_advanced_options.tide.tide_keep_terminals}
                -tide_print_peptides ${advanced_options.searchengines_advanced_options.tide.tide_print_peptides}
                -tide_verbosity ${advanced_options.searchengines_advanced_options.tide.tide_verbosity}
                -tide_monoisotopic ${advanced_options.searchengines_advanced_options.tide.tide_monoisotopic}
                -tide_clip_n_term ${advanced_options.searchengines_advanced_options.tide.tide_clip_n_term}
                -tide_digestion_type ${advanced_options.searchengines_advanced_options.tide.tide_digestion_type}
                -tide_compute_sp ${advanced_options.searchengines_advanced_options.tide.tide_compute_sp}
                -tide_max_psms ${advanced_options.searchengines_advanced_options.tide.tide_max_psms}
                -tide_compute_p ${advanced_options.searchengines_advanced_options.tide.tide_compute_p}
                -tide_min_spectrum_mz ${advanced_options.searchengines_advanced_options.tide.tide_min_spectrum_mz}
                #if str($advanced_options.searchengines_advanced_options.tide.tide_max_spectrum_mz).strip() != '':
                  -tide_max_spectrum_mz ${advanced_options.searchengines_advanced_options.tide.tide_max_spectrum_mz}
                #end if
                -tide_min_spectrum_peaks ${advanced_options.searchengines_advanced_options.tide.tide_min_spectrum_peaks}
                -tide_spectrum_charges ${advanced_options.searchengines_advanced_options.tide.tide_spectrum_charges}
                -tide_remove_prec ${advanced_options.searchengines_advanced_options.tide.tide_remove_prec}
                -tide_remove_prec_tol ${advanced_options.searchengines_advanced_options.tide.tide_remove_prec_tol}
                -tide_progress_indicator ${advanced_options.searchengines_advanced_options.tide.tide_progress_indicator}
                -tide_use_flanking ${advanced_options.searchengines_advanced_options.tide.tide_use_flanking}
                -tide_use_neutral_losses ${advanced_options.searchengines_advanced_options.tide.tide_use_neutral_losses}
                -tide_mz_bin_width ${advanced_options.searchengines_advanced_options.tide.tide_mz_bin_width}
                -tide_mz_bin_offset ${advanced_options.searchengines_advanced_options.tide.tide_mz_bin_offset}
                -tide_concat ${advanced_options.searchengines_advanced_options.tide.tide_concat}

                #set $formats = ["tide_export_text", "tide_export_sqt", "tide_export_pepxml", "tide_export_mzid", "tide_export_pin"]
                #for $format in $formats:
                    #if str($advanced_options.searchengines_advanced_options.tide.tide_export).strip() == $format:
                      -$format 1
                    #else:
                      -$format 0
                    #end if

                #end for

                -tide_remove_temp ${advanced_options.searchengines_advanced_options.tide.tide_remove_temp}

            #end if


            ## COMET ADVANCED PARAMETERS

            #if $advanced_options.searchengines_advanced_options.comet.comet_advanced == "yes"

                #if $advanced_options.searchengines_advanced_options.comet.comet_spectrum.comet_spectrum_selector == "yes"
                    -comet_min_peaks ${advanced_options.searchengines_advanced_options.comet.comet_spectrum.comet_min_peaks}
                    -comet_min_peak_int ${advanced_options.searchengines_advanced_options.comet.comet_spectrum.comet_min_peak_int}

                    -comet_remove_prec ${advanced_options.searchengines_advanced_options.comet.comet_spectrum.comet_prec.comet_remove_prec}


                     #if $advanced_options.searchengines_advanced_options.comet.comet_spectrum.comet_prec.comet_remove_prec == "1"
                        -comet_remove_prec_tol ${advanced_options.searchengines_advanced_options.comet.comet_spectrum.comet_prec.comet_remove_prec_tol}
                     #end if

                     #if $advanced_options.searchengines_advanced_options.comet.comet_spectrum.comet_prec.comet_remove_prec == "2"
                        -comet_remove_prec_tol ${advanced_options.searchengines_advanced_options.comet.comet_spectrum.comet_prec.comet_remove_prec_tol}
                     #end if

                    -comet_clear_mz_range_lower ${advanced_options.searchengines_advanced_options.comet.comet_spectrum.comet_clear_mz_range_lower}
                    -comet_clear_mz_range_upper ${advanced_options.searchengines_advanced_options.comet.comet_spectrum.comet_clear_mz_range_upper}
                #end if

                #if $advanced_options.searchengines_advanced_options.comet.comet_search.comet_search_selector == "yes"
                    -comet_enzyme_type ${advanced_options.searchengines_advanced_options.comet.comet_search.comet_enzyme_type}
                    -comet_isotope_correction ${advanced_options.searchengines_advanced_options.comet.comet_search.comet_isotope_correction}
                    -comet_min_prec_mass ${advanced_options.searchengines_advanced_options.comet.comet_search.comet_min_prec_mass}
                    -comet_max_prec_mass ${advanced_options.searchengines_advanced_options.comet.comet_search.comet_max_prec_mass}
                    -comet_num_matches ${advanced_options.searchengines_advanced_options.comet.comet_search.comet_num_matches}
                    -comet_max_frag_charge ${advanced_options.searchengines_advanced_options.comet.comet_search.comet_max_frag_charge}
                    -comet_remove_meth ${advanced_options.searchengines_advanced_options.comet.comet_search.comet_remove_meth}
                    -comet_batch_size ${advanced_options.searchengines_advanced_options.comet.comet_search.comet_batch_size}
                    -comet_num_ptms ${advanced_options.searchengines_advanced_options.comet.comet_search.comet_num_ptms}
                #end if

                #if $advanced_options.searchengines_advanced_options.comet.comet_fragment_ions.comet_fragment_ions_selector == "yes"
                    -comet_frag_bin_offset ${advanced_options.searchengines_advanced_options.comet.comet_fragment_ions.comet_frag_bin_offset}
                    -comet_theoretical_fragment_ions ${advanced_options.searchengines_advanced_options.comet.comet_fragment_ions.comet_theoretical_fragment_ions}
                #end if
            #end if


            ## DIRECTTAG ADVANCED PARAMETERS

            #if $advanced_options.searchengines_advanced_options.directtag.directtag_advanced == "yes"
                -directag_tic_cutoff ${advanced_options.searchengines_advanced_options.directtag.directag_tic_cutoff}
                -directag_max_peak_count ${advanced_options.searchengines_advanced_options.directtag.directag_max_peak_count}
                -directag_intensity_classes ${advanced_options.searchengines_advanced_options.directtag.directag_intensity_classes}
                -directag_adjust_precursor ${advanced_options.searchengines_advanced_options.directtag.directag_adjust_precursor}
                -directag_min_adjustment ${advanced_options.searchengines_advanced_options.directtag.directag_min_adjustment}
                -directag_max_adjustment ${advanced_options.searchengines_advanced_options.directtag.directag_max_adjustment}
                -directag_adjustment_step ${advanced_options.searchengines_advanced_options.directtag.directag_adjustment_step}
                -directag_charge_states ${advanced_options.searchengines_advanced_options.directtag.directag_charge_states}
                #if str($advanced_options.searchengines_advanced_options.directtag.directag_output_suffix).strip() != '':
                -directag_output_suffix ${advanced_options.searchengines_advanced_options.directtag.directag_output_suffix}
                #end if
                -directag_ms_charge_state ${advanced_options.searchengines_advanced_options.directtag.directag_ms_charge_state}
                -directag_duplicate_spectra ${advanced_options.searchengines_advanced_options.directtag.directag_duplicate_spectra}
                -directag_deisotoping ${advanced_options.searchengines_advanced_options.directtag.directag_deisotoping}
                -directag_isotope_tolerance ${advanced_options.searchengines_advanced_options.directtag.directag_isotope_tolerance}
                -directag_complement_tolerance ${advanced_options.searchengines_advanced_options.directtag.directag_complement_tolerance}
                -directag_tag_length ${advanced_options.searchengines_advanced_options.directtag.directag_tag_length}
                -directag_max_var_mods ${advanced_options.searchengines_advanced_options.directtag.directag_max_var_mods}
                -directag_max_tag_count ${advanced_options.searchengines_advanced_options.directtag.directag_max_tag_count}
                -directag_intensity_weight ${advanced_options.searchengines_advanced_options.directtag.directag_intensity_weight}
                -directag_fidelity_weight ${advanced_options.searchengines_advanced_options.directtag.directag_fidelity_weight}
                -directag_complement_weight ${advanced_options.searchengines_advanced_options.directtag.directag_complement_weight}
            #end if


            ## NOVOR ADVANCED PARAMETERS

            #if $advanced_options.searchengines_advanced_options.novor.novor_advanced == "yes"
                -novor_fragmentation ${advanced_options.searchengines_advanced_options.novor.novor_fragmentation}
                -novor_mass_analyzer ${advanced_options.searchengines_advanced_options.novor.novor_mass_analyzer}
            #end if

        2> $temp_stderr);

        exit_code_for_galaxy=\$?;
        cat $temp_stderr 2>&1;
        (exit \$exit_code_for_galaxy)
]]>
    </command>
    <inputs>

        <param format="fasta" name="input_database" type="data" label="Protein Database"
            help="Select FASTA database from history"/>

        <!-- General Parameters -->
        <!-- <expand macro="general_options"/>-->

        <!-- SPECTRUM MATCHING PARAMETERS -->

        <section name="spectrum_matching_options" expanded="false" title="Spectrum Matching Options">

            <param name="fixed_modifications" type="select" label="Fixed Modifications" multiple="true"
                help="Occurs in known places on peptide sequence. Hold the appropriate key while clicking to select multiple items">
                <options from_file="searchgui_mods.loc">
                    <column name="name" index="0" />
                    <column name="value" index="0" />
                </options>
            </param>
            <param name="variable_modifications" type="select" label="Variable Modifications" multiple="true"
                help="Can occur anywhere on the peptide sequence; adds additional error to search score. Hold the appropriate key while clicking to select multiple items">
                <options from_file="searchgui_mods.loc">
                    <column name="name" index="0" />
                    <column name="value" index="0" />
                </options>
            </param>

            <conditional name="digestion">
                <param name="cleavage" type="select" label="Digestion">
                    <option value="default" selected="true">Trypsin</option>
                    <option value="0">Select Enzymes</option>
                    <option value="1">Unspecific Cleavage</option>
                    <option value="2">Whole Protein</option>
                </param>
                <when value="default">
                    <param name="missed_cleavages" type="integer" value="2" label="Maximum Missed Cleavages"
                        help="Allow peptides to contain up to this many missed enzyme cleavage sites."/>
                </when>
                <when value="0">
                    <repeat name="digests" min="1" title="Enzymes">
                        <param name="enzyme" type="select" label="Enzyme"
                            help="Which enzyme was used for protein digest in experiment? In most cases, trypsin is used">
                            <option value="Trypsin">Trypsin</option>
                            <option value="Arg-C">Arg-C</option>
                            <option value="CNBr">CNBr</option>
                            <option value="Chymotrypsin (FYWL)">Chymotrypsin (FYWL)</option>
                            <option value="Formic Acid">Formic Acid</option>
                            <option value="Lys-C">Lys-C</option>
                            <option value="Lys-C, no P rule">Lys-C, no P rule</option>
                            <option value="Pepsin A">Pepsin A</option>
                            <option value="Trypsin + CNBr">Trypsin + CNBr</option>
                            <option value="Trypsin + Chymotrypsin (FYWLKR)">Trypsin + Chymotrypsin (FYWLKR)</option>
                            <option value="Trypsin, no P rule">Trypsin, no P rule</option>
                            <option value="Whole Protein">Whole Protein</option>
                            <option value="Asp-N">Asp-N</option>
                            <option value="Glu-C">Glu-C</option>
                            <option value="Asp-N + Glu-C">Asp-N + Glu-C</option>
                            <option value="Top-Down">Top-Down</option>
                            <option value="Semi-Tryptic">Semi-Tryptic</option>
                            <option value="Unspecific">Unspecific (No enzyme)</option> <!-- note: cleaves at every residue! -->
                            <option value="Chymotrypsin, no P rule (FYWL)">Chymotrypsin, no P rule (FYWL)</option>
                            <option value="Asp-N (DE)">Asp-N (DE)</option>
                            <option value="Glu-C (DE)">Glu-C (DE)</option>
                            <option value="Lys-N (K)">Lys-N (K)</option>
                            <option value="Thermolysin, no P rule">Thermolysin, no P rule</option>
                            <option value="Semi-Chymotrypsin (FYWL)">Semi-Chymotrypsin (FYWL)</option>
                            <option value="Semi-Glu-C">Semi-Glu-C</option>
                            <option value="LysargiNase">LysargiNase</option>
                            <option value="Semi-LysargiNase">Semi-LysargiNase</option>
                            <option value="Trypsin + Glu-C">Trypsin + Glu-C</option>
                            <option value="Semi-Arg-C">Semi-Arg-C</option>
                            <option value="Semi-Glu-C (DE)">Semi-Glu-C (DE)</option>
                            <option value="Arg-N">Arg-N</option>
                            <option value="Semi-Arg-N">Semi-Arg-N</option>
                        </param>
                        <param name="missed_cleavages" type="integer" value="2" label="Maximum Missed Cleavages"
                            help="Allow peptides to contain up to this many missed enzyme cleavage sites."/>
                        <!--
                        <param name="specificity" type="select" label="Specificity">
                            <option value="0" selected="true">Specific at both termini</option>
                            <option value="1">Semi-Specific - one terminus</option>
                            <option value="2">Specific at the N-terminus only</option>
                            <option value="3">Specific at the C-terminus only</option>
                        </param>
                        -->
                    </repeat>
                </when>
                <when value="1"/>
                <when value="2"/>
            </conditional>

            <param name="precursor_ion_tol_units" type="select" label="Precursor Ion Tolerance Units"
                help="Select based on instrument used, as different machines provide different quality of spectra. ppm is a standard for most precursor ions">
                <option value="1">Parts per million (ppm)</option>
                <option value="0">Daltons</option>
            </param>
            <param name="precursor_ion_tol" type="float" value="10" label="Precursor Ion Tolerance"
                help="Provide error value for precursor ion, based on instrument used. 10 ppm recommended for Orbitrap instrument"/>
            <param name="fragment_tol_units" type="select" label="Fragment Tolerance Units"
                help="Select based on instrument used, as different machines provide different quality of spectra. ppm is a standard for most precursor ions">
                <option value="1">Parts per million (ppm)</option>
                <option value="0" selected="true">Daltons</option>
            </param>
            <param name="fragment_tol" type="float" value="0.5" label="Fragment Tolerance"
                help="Provide error value for fragment ions, based on instrument used"/>
            <param name="min_charge" label="Minimum Charge" value="2" type="integer" help="Lowest searched charge value for fragment ions"/>
            <param name="max_charge" label="Maximum Charge" value="4" type="integer" help="Highest searched charge value for fragment ions"/>
            <param name="forward_ion" label="Forward Ion" type="select" help="Searched fragment ion type. Select a, b or c based on collisions induced in experiment">
                <option value="a">a</option>
                <option value="b" selected="true">b</option>
                <option value="c">c</option>
            </param>
            <param name="reverse_ion" label="Reverse Ion" type="select" help="Searched fragment ion type. Select x, y, or z based on collisions induced in experiment">
                <option value="x">x</option>
                <option value="y" selected="true">y</option>
                <option value="z">z</option>
            </param>
            <param name="min_isotope" label="Minimum precursor isotope" type="integer" value="0" help="default: 0" />
            <param name="max_isotope" label="Maximum precursor isotope" type="integer" value="1" help="default: 1" />
        </section>


        <!-- ADVANCED PARAMETERS -->

        <!-- TODO: SPECTRUM ANNOTATION -->


        <!-- TODO: SEQUENCE MATCHING -->

        <section name="advanced_options" expanded="false" title="Show/Hide advanced options">

            <section name="import_filters_options" expanded="false" title="Import filters">
                    <param name="min_peptide_length" type="integer" label="Minimum Peptide Length" value="8" />
                    <param name="max_peptide_length" type="integer" label="Maximum Peptide Length" value="30" />
                    <param name="max_precursor_error" type="float" label="Maximum Precursor Error" value="10"
                        help="Next option specifies units (Da or ppm)" />
                    <param name="max_precursor_error_type" label="Maximum Precursor Error Type" type="select">
                        <option value="1">ppm</option>
                        <option value="0">Daltons</option>
                    </param>
                    <!--param name="max_xtandem_e" label="Maximum X! Tandem e-value" value="100" type="float" help="" /-->
                    <!--param name="max_omssa_e" label="Maximum OMSSA e-value" value="100" type="float" help="" /-->
                    <!--param name="max_mascot_e" label="Maximum Mascot e-value filter" value="100" type="float" help="" /-->
                    <!-- TODO: import_missed_cleavages_min, import_missed_cleavages_max -->
                    <param name="exclude_unknown_ptms" label="Exclude Unknown PTMs" type="boolean" truevalue="1" falsevalue="0" checked="true" />
            </section>


            <!-- PTM LOCALIZATION -->

            <section name="ptm_localization_options" expanded="false" title="PTM Localizacion">
                <conditional name="ptm_score">
                    <param name="ptm_score_selector" type="select" label="The PTM probabilistic score to use for PTM localization">
                        <option value="0" >A-score</option>
                        <option value="1" selected="True">PhosphoRS</option>
                        <option value="2">None</option>
                    </param>
                    <when value="0" />
                    <when value="1">
                        <param name="score_neutral_losses" label="Include Neutral Losses in A Score" type="boolean" truevalue="1" falsevalue="0" />
                        <param name="ptm_threshold" label="The threshold to use for the PTM scores" optional="true" value="" type="float"
                            help="Automatic mode will be used if not set" />
                    </when>
                    <when value="2" />
                </conditional>
                <param name="ptm_sequence_matching_type" type="select" label="The PTM to peptide sequence matching type">
                     <option value="0">Character Sequence</option>
                     <option value="1" selected="true">Amino Acids</option>
                     <option value="2">Indistinguishable Amino Acids</option>
                </param>
                <param name="ptm_alignment" label="Align peptide ambiguously localized PTMs on confident sites" type="boolean" truevalue="1" falsevalue="0" checked="true"/>
            </section>


            <!-- GENE ANNOTATION -->

            <section name="gene_annotation_options" expanded="false" title="Gene Annotation">
                <param name="use_gene_mapping" type="boolean" truevalue="-useGeneMapping 1" falsevalue="-useGeneMapping 0" checked="false"
                    label="gene mappings will be used and saved along with the project (UniProt databases only)"
                    help="This should only be enabled for UniProt databaases" />
                <param name="update_gene_mapping" type="boolean" truevalue="-updateGeneMapping 1" falsevalue="-updateGeneMapping 0" checked="false"
                    label="Update gene mappings automatically from Ensembl (UniProt databases only)"
                help="This should only be enabled for UniProt databaases" />
            </section>


            <!-- TODO: PROTEIN INFERENCE -->


            <!-- VALIDATION LEVELS -->


            <section name="validation_levels_options" expanded="false" title="Validation Levels">
                <param name="protein_fdr" label="FDR at the protein level" help="In percent (default 1% FDR: '1')" value="1" type="float" />
                <param name="peptide_fdr" label="FDR at the peptide level" help="In percent (default 1% FDR: '1')" value="1" type="float" />
                <param name="psm_fdr" label="FDR at the PSM level" help="In percent (default 1% FDR: '1')" value="1" type="float" />
                <!-- TODO: to include, at least, group_psms; look into group_peptides and merge_subgroups -->
            </section>


            <!-- FRACTION ANALYSIS -->


            <section name="fraction_analysis_options" expanded="false" title="Fraction Analysis">
                <param name="protein_fraction_mw_confidence" value="95.0" type="float" label="Minimum confidence required for a protein in the fraction MW plot"
                    help="default 95%: '95.0'" />
                <!-- SKIPPING -protein_fraction_mw_confidence ${processing_options.protein_fraction_mw_confidence} -->
            </section>


            <!-- - ADVANCED SEARCH ENGINES OPTIONS -->

            <section name="searchengines_advanced_options" expanded="false" title="Search Engines">

                <!-- X!TANDEM ADVANCED PARAMETERS -->
                <conditional name="xtandem">
                    <param name="xtandem_advanced" type="select" label="X!Tandem Options">
                        <option value="yes">Advanced</option>
                        <option value="no" selected="True">Default</option>
                    </param>
                    <when value="no" />
                    <when value="yes">
                        <param name="xtandem_npeaks" type="integer" value="50"
                            label="X!Tandem: Total Peaks" help="Maximum number of peaks to be used from a spectrum"/>
                        <param name="xtandem_min_peaks" type="integer" value="15"
                            label="X!Tandem: Min Peaks" help="Minimum number of peaks required for a spectrum to be considered"/>
                        <param name="xtandem_min_frag_mz" type="integer" value="200"
                            label="X!Tandem: Min Frag m/z" help="Fragment mass peaks with m/z less than this value will be discarded"/>
                        <param name="xtandem_min_prec_mass" type="integer" value="200"
                            label="X!Tandem: Min Precursor Mass" help="Minimum mass of 1+ mass of parent ion to be considered"/>
                        <param name="xtandem_noise_suppr" type="boolean" checked="true" truevalue="1" falsevalue="0"
                            label="X!Tandem: Noise Suppression" help="Use noise suppression"/>
                        <param name="xtandem_dynamic_range" help="Sets the dynamic range for scoring spectra"
                            label="X!Tandem: Dynamic Range" value="100" type="integer" />
                        <param name="xtandem_quick_acetyl" help="Protein N-terminal modification detection"
                            label="X!Tandem: Quick Acetyl" type="boolean" truevalue="1" falsevalue="0" checked="true" />
                        <param name="xtandem_quick_pyro" help="Peptide N-terminus cyclization detection"
                            label="X!Tandem: Quick Pyrolidone" type="boolean" truevalue="1" falsevalue="0" checked="true" />
                        <param name="xtandem_stp_bias" help="Interpretation of peptide phosphorylation models"
                            label="X!Tandem: Protein stP Bias" type="boolean" truevalue="1" falsevalue="0" checked="false" />
                        <param name="xtandem_evalue" help="Highest value for recorded peptides"
                            label="X!Tandem: Maximum Valid Expectation Value" type="float" value="0.01" />
                        <param name="xtandem_output_proteins" help="Controls output of protein sequences"
                            label="X!Tandem: Output Proteins" type="boolean" truevalue="1" falsevalue="0" checked="false" />
                        <param name="xtandem_output_sequences" help="Controls output of sequence information"
                            label="X!Tandem: Output Sequences" type="boolean" truevalue="1" falsevalue="0" checked="false" />
                        <param name="xtandem_output_spectra" help="Controls output of spectrum information"
                            label="X!Tandem: Output Spectra" type="boolean" truevalue="1" falsevalue="0" checked="true" />
                        <!-- <param name="xtandem_skyline_path" label="X!Tandem 'spectrum, skyline path'" type="txt" help="Path to a spectrum data file for use by skyline." -->

                        <conditional name="xtandem_refine"><!-- -xtandem_refine -->
                            <param name="xtandem_refine_selector" type="select" label="X!Tandem peptide model refinement">
                                <option value="no" selected="True">Don't refine</option>
                                <option value="yes" >Use refinement</option>
                            </param>
                            <when value="no"/>
                            <when value="yes">
                                <param name="xtandem_refine_unc" type="boolean" truevalue="1" falsevalue="0" checked="true"
                                    label="X!Tandem: Unanticipated cleavage, refinement" help="Allow for unanticipated cleavage during refinement"/>
                                <param name="xtandem_refine_semi" type="boolean" truevalue="1" falsevalue="0" checked="false"
                                    label="X!Tandem: Cleavage semi, refinement" help="Search for semi-tryptic peptides during refinement"/>
                                <param name="xtandem_refine_p_mut" type="boolean" truevalue="1" falsevalue="0" checked="false"
                                    label="X!Tandem: Point mutations, refinement" help="Allow for point mutations during refinement"/>
                                <param name="xtandem_refine_snaps" type="boolean" truevalue="1" falsevalue="0" checked="true"
                                    label="X!Tandem: snAPs, refinement" help="Search for known single amino acid polymorphisms during refinement"/>
                                <param name="xtandem_refine_spec_synt" type="boolean" truevalue="1" falsevalue="0" checked="true"
                                    label="X!Tandem: Spectrum synthesis, refinement" help="Use spectrum synthesis scoring"/>
                                <param name="xtandem_refine_pot" type="boolean" truevalue="1" falsevalue="0" checked="false"
                                    label="X!Tandem: Use potential modifications, refinement" help="Controls the use of refinement modifications in all refinement modules."/>
                                <param name="xtandem_refine_evalue" help="Highest value for recorded peptides during refinement"
                                    label="X!Tandem: Maximum Valid Expectation Value, refinement" type="float" value="0.01" />
                            </when>
                        </conditional>
                    </when>
                </conditional>

                <!-- OMSSA ADVANCED PARAMETERS -->
                <conditional name="omssa">
                    <param name="omssa_advanced" type="select" label="OMSSA Options">
                        <option value="yes">Advanced</option>
                        <option value="no" selected="True">Default</option>
                    </param>
                    <when value="no" />
                    <when value="yes">
                        <param name="hitlist_length" label="OMSSA: Hit List Length" type="integer" value="25" />
                        <param name="remove_precursor" label="OMSSA: Remove Precurosr" type="boolean" truevalue="1" falsevalue="0" checked="true"/>
                        <param name="scale_precursor" label="OMSSA: Scale Precursor Mass" type="boolean" truevalue="1" falsevalue="0" checked="false"/>
                        <param name="estimate_charge" label="OMSSA: Estimate Charge" type="boolean" truevalue="1" falsevalue="0" checked="true" />

                        <param name="omssa_memory" type="boolean" truevalue="1" falsevalue="0" checked="true"
                            label="OMSSA: Map Sequences in Memory" help="Use memory mapped sequence libraries" />
                        <param name="omssa_neutron" type="float" value="1446.94"
                               label="OMSSA: Neutron Mass" help="Mass after which OMSSA should consider neutron exact mass" />
                        <param name="omssa_low_intensity" type="float" value="0.0"
                            label="OMSSA: Low Intensity Cutoff" help="Low intensity cutoff as a fraction of max peak" />
                        <param name="omssa_high_intensity" type="float" value="0.2"
                            label="OMSSA: High Intensity Cutoff" help="High intensity cutoff as a fraction of max peak" />
                           <param name="omssa_intensity_incr" type="float" value="0.0005"
                               label="OMSSA: Intensity Increment" help="Intensity increment" />
                        <param name="omssa_single_window_wd" type="integer" value="27"
                            label="OMSSA: Single Charge Window Width" help="Single charge window width in Da (integer)" />
                        <param name="omssa_double_window_wd" type="integer" value="14"
                            label="OMSSA: Double Charge Window Width" help="OMSSA double charge window width in Da (integer)" />
                        <param name="omssa_single_window_pk" type="integer" value="2"
                            label="OMSSA: Single Charge Window Peaks" help="Minimum number of peaks in single charge window (integer)" />
                        <param name="omssa_double_window_pk" type="integer" value="2"
                            label="OMSSA: Double Charge Window Peaks" help="Minimum number of peaks in double charge window (integer)" />
                        <param name="omssa_min_ann_int_pks" type="integer" value="6"
                            label="OMSSA: Minimum Number of Annotated Peaks of Intense Ones" help="Minimum number of annotated peaks among the most intense ones" />
                        <param name="omssa_min_annotated_peaks" type="integer" value="2"
                            label="OMSSA: Minimum number of Annotated Peaks" help="Minimum number of annotated peaks" />
                           <param name="omssa_min_peaks" type="integer" value="4"
                               label="OMSSA: Minimum Peak Count" help="The minimum number of m/z values a spectrum must have to be searched" />
                        <param name="omssa_methionine" type="boolean" truevalue="1" falsevalue="0" checked="true"
                            label="OMSSA: Cleave n-term Methionine" help="Allow for N-terminal methionine cleavage" />
                        <param name="omssa_max_ladders" type="integer" value="128"
                            label="OMSSA: Maximum Number of m/z Ladders" help="The maximum number of mass ladders to generate per database peptide" />
                        <param name="omssa_max_frag_charge" type="integer" value="2"
                            label="OMSSA: Maximum Fragment Charge" help="Maximum fragment charge" />
                        <param name="omssa_fraction" type="float" value="0.95"
                            label="OMSSA: Fraction of Peaks to estimate Charge 1" help="fraction of peaks to estimate charge 1" />
                        <param name="omssa_plus_one" type="boolean" truevalue="1" falsevalue="0" checked="true"
                            label="OMSSA: Estimate Plus One Charge" help="Allow OMSSA to estimate plus one charge algorithmically"/>
                        <param name="omssa_charge" type="select"
                            label="OMSSA: Fragment Charge" help="OMSSA fragment charge option" >
                            <option value="0" >Minus</option>
                            <option value="1" selected="True">Plus</option>
                        </param>
                        <param name="omssa_prec_per_spectrum" type="integer" value="1"
                            label="OMSSA: Minimum Number of Precursors per Spectrum" help="Minimum number of precursors per spectrum" />
                        <param name="omssa_forward" type="boolean" truevalue="1" falsevalue="0" checked="true"
                            label="OMSSA: Include First Forward Ion (b1) in Search" help="Allow OMSSA to include first forward ion (b1) in search" />
                        <param name="omssa_rewind" type="boolean" truevalue="1" falsevalue="0" checked="true"
                            label="OMSSA: Search Rewind" help="Allow search rewind (C-terminal) ions" />
                        <param name="omssa_max_frag_series" type="integer" value="100"
                            label="OMSSA: Maximum Fragment per Series" help="Max number of fragments ions ions in each series being searched" />
                        <param name="omssa_corr" type="boolean" truevalue="1" falsevalue="0" checked="true"
                            label="OMSSA: Use Correlation Correction" help="Allow the use correlation correction score" />
                        <param name="omssa_consecutive_p" type="float" value="0.5"
                            label="OMSSA: Consecutive Ion Probability" help="Probability of consecutive ion (used in correlation correction)" />
                        <param name="omssa_it_sequence_evalue" type="float" value="0.0"
                            label="OMSSA: Sequence e-value Cutoff" help="The maximum e-value allowed to consider a sequence in the iterative search(0.0 means all)" />
                        <param name="omssa_it_spectrum_evalue" type="float" value="0.01"
                            label="OMSSA: Spectrum e-value Cutoff" help="The maximum e-value allowed to consider a spectrum in the iterative search(0.0 means all)" />
                        <param name="omssa_it_replace_evalue" type="float" value="0.01"
                            label="OMSSA: Replace e-value cutoff" help="The maximum e-value allowed to replace a hit in the iterative search(0.0 means all)" />
                        <param name="omssa_remove_prec" type="boolean" truevalue="1" falsevalue="0" checked="true"
                            label="OMSSA: Remove Precursor" help="Remove precursors" />
                        <param name="omssa_scale_prec" type="boolean" truevalue="1" falsevalue="0" checked="false"
                            label="OMSSA: Scale Precursor Mass" help="scale precursor mass" />
                        <param name="omssa_estimate_charge" type="boolean" truevalue="1" falsevalue="0" checked="true"
                            label="OMSSA: Remove Precursor" help="Remove precursors" />
                        <param name="omssa_max_evalue" type="float" value="100"
                            label="OMSSA: Maximal evalue Considered" help="The maximum e-value considered" />
                        <param name="omssa_remove_prec" type="boolean" truevalue="1" falsevalue="0" checked="true"
                            label="OMSSA: Estimate Precursor Charge" help="Allow estimation of precursor charge" />
                        <param name="omssa_it_replace_evalue" type="float" value="100"
                            label="OMSSA: Maximal evalue" help="The maximum OMSSA e-value considered" />
                        <param name="omssa_hitlist_length" type="integer" value="0"
                            label="OMSSA: Hitlist Length" help="OMSSA hitlist length, 0 means all" />
                        <param name="omssa_hitlist_charge" type="integer" value="30"
                            label="OMSSA: Number of Hits per Spectrum per Charge" help="number of hits per spectrum per charge" />
                        <param name="omssa_min_pep_length" type="integer" value="4"
                            label="OMSSA: Minumum Peptide Length" help="Minimum length of peptides for no-enzyme and semi-tryptic searches" />
                        <param name="omssa_max_pep_length" type="integer" value="40"
                            label="OMSSA: Maximum Peptide Length" help="Maximum length of peptides for no-enzyme and semi-tryptic searches (0: none)" />
                        <param name="omssa_format" label="OMSSA output format" type="select" >
                            <option value="0" selected="True">OMX</option>
                            <option value="1" >CSV</option>
                        </param>
                    </when>
                </conditional>

                <!-- MS-GF+ ADVANCED PARAMETERS -->
                <conditional name="msgf">
                    <param name="msgf_advanced" type="select" label="MSGF Options">
                        <option value="yes">Advanced</option>
                        <option value="no" selected="True">Default</option>
                    </param>
                    <when value="no" />
                    <when value="yes">
                        <param name="msgf_decoy" type="boolean" truevalue="1" falsevalue="0" checked="false"
                            label="MSGF: Search Decoys" help="If yes then a decoy database will be generated and searched. Assumed input database contains no decoys"/>
                        <param name="msgf_min_pep_length" type="integer" value="6"
                            label="MSGF: Minimum Peptide Length" help="Minimum length for a peptide to be considered"/>
                        <param name="msgf_max_pep_length" type="integer" value="30"
                            label="MSGF: Maximum Peptide Length" help="Maximum length for a peptide to be considered"/>
                        <param name="msgf_termini" type="select" format="txt"
                            label="MSGF: Number of tolerable termini" help="Searches will take much longer if selecting a value other than 2">
                            <option value="0">0 (ie non-specific cleavage)</option>
                            <option value="1">1 (ie semi-tryptic cleavage)</option>
                            <option value="2" selected="true">2 (ie fully-tryptic cleavage)</option>
                        </param>
                        <param name="msgf_num_ptms" label="MSGF: Max PTMs per peptide" type="integer" value="2"/>

                        <param name="msgf_instrument" label="MSGF: Instrument type" type="select" help="Identifier of the instrument to generate MS/MS spectra (used to determine the scoring model)">
                            <option value="0" selected="True">Low-res LCQ/LTQ</option>
                            <option value="1" >High-res LTQ</option>
                            <option value="2" >TOF</option>
                            <option value="3" >Q-Exactive</option>
                        </param>
                        <param name="msgf_fragmentation" label="MSGF: Fragmentation type" type="select" help="Fragmentation method identifier (used to determine the scoring model)">
                            <option value="0" selected="True">As written in the spectrum or CID if no info</option>
                            <option value="1" >CID</option>
                            <option value="2" >ETD</option>
                            <option value="3" >HCD</option>
                        </param>
                        <param name="msgf_protocol" label="MSGF: Protocol type" type="select" help="Protocol identifier. Protocols are used to enable scoring parameters for enriched and/or labeled samples">
                            <option value="0" selected="True">Automatic</option>
                            <option value="1" >Phosphorylation</option>
                            <option value="2" >iTRAQ</option>
                            <option value="3" >iTRAQPhospho</option>
                            <option value="4" >TMT</option>
                            <option value="5" >Standard</option>
                        </param>
                        <param name="msgf_num_matches" label="MSGF: Maximum Number of Spectrum Matches" type="integer" value="1" help="Number of peptide matches per spectrum to report" />
                        <param name="msgf_additional" label="MS-GF+ additional features" type="select" help="Additional features to export">
                            <option value="0" selected="True">output basic scores only</option>
                            <option value="1" >output additional features</option>
                        </param>
                    </when>
                </conditional>

                  <!-- MS-AMANDA ADVANCED PARAMETERS  -->
                <conditional name="ms_amanda">
                    <param name="ms_amanda_advanced" type="select" label="MS Amanda Options">
                        <option value="yes">Advanced</option>
                        <option value="no" selected="True">Default</option>
                    </param>
                    <when value="no" />
                    <when value="yes">
                        <param name="ms_amanda_decoy"  type="boolean" truevalue="1" falsevalue="0" checked="false"
                            label="MS Amanda: Generate Decoys" help="generate decoys" />
                        <param name="ms_amanda_instrument" label="MS Amanda: instrument" type="select"
                          help="MS Amanda instrument id option. Available ion types are listed here.">

                          <option value="b, y" selected="True">b, y</option>
                          <option value="b, y, -H2O, -NH3" >b, y, -H2O, -NH3</option>
                          <option value="a, b, y, -H2O, -NH3, Imm" >a, b, y, -H2O, -NH3, Imm</option>
                          <option value="a, b, y, -H2O, -NH3" >a, b, y, -H2O, -NH3</option>
                          <option value="a, b, y" >a, b, y</option>
                          <option value="a, b, y, Imm" >a, b, y, Imm</option>
                          <option value="a, b, y, z, -H2O, -NH3, Imm" >a, b, y, z, -H2O, -NH3, Imm</option>
                          <option value="c, y, z+1, z+2" >c, y, z+1, z+2</option>
                          <option value="b, c, y, z+1, z+2" >b, c, y, z+1, z+2</option>
                          <option value="b, y, INT" >b, y, INT</option>
                          <option value="b, y, INT, Imm" >b, y, INT, Imm</option>
                          <option value="a, b, y, INT" >a, b, y, INT</option>
                          <option value="a, b, y, INT, IMM" >a, b, y, INT, IMM</option>
                          <option value="a, b, y, INT, IMM, -H2O" >a, b, y, INT, IMM, -H2O</option>
                          <option value="a, b, y, INT, IMM, -H2O, -NH3" >a, b, y, INT, IMM, -H2O, -NH3</option>
                          <option value="a, b, y, INT, IMM, -NH3" >a, b, y, INT, IMM, -NH3</option>

                        </param>
                        <param name="ms_amanda_max_rank" type="integer" value="10"
                            label="MS Amanda: Maximum Rank" help="MS Amanda maximum rank" />
                        <param name="ms_amanda_mono" type="boolean" truevalue="1" falsevalue="0" checked="true"
                            label="MS Amanda: Use Monoisotopic Mass Values" help="MS Amanda use monoisotopic mass values" />
                    </when>
                </conditional>


                <!-- TIDE ADVANCED PARAMETERS -->
                <conditional name="tide">
                    <param name="tide_advanced" type="select" label="TIDE Options">
                        <option value="yes">Advanced</option>
                        <option value="no" selected="True">Default</option>
                    </param>
                    <when value="no" />
                    <when value="yes">
                        <param name="tide_num_ptms" type="integer" value="" optional="true"
                            label="TIDE: Maximum Number of PTMs" help="Set the maximum number of PTMs on peptide to be considered"/>
                        <param name="tide_num_ptms_per_type" type="integer" value="2"
                            label="TIDE: Maximum Number of PTMs of each Type" help="Set the maximum number of PTMs of each type to be considered"/>
                        <param name="tide_min_pep_length" type="integer" value="6"
                            label="TIDE: Minimum Peptide Length" help="Set the minimum length of peptide to be considered"/>
                        <param name="tide_max_pep_length" type="integer" value="30"
                            label="TIDE: Maximum Peptide Length" help="Set the maximum length of peptide to be considered"/>
                        <param name="tide_min_prec_mass" type="float" value="200.0"
                            label="TIDE: Minimum Precursor Mass" help="Set the minimum precursor mass to be considered"/>
                        <param name="tide_max_prec_mass" type="float" value="7200.0"
                            label="TIDE: Maximum Precursor Mass" help="Set the maximum precursor mass to be considered"/>
                        <param name="tide_decoy_format" label="TIDE: Decoy Format" type="select" help="Select the format for generating the decoy sequences">
                            <option value="none" selected="True">none</option>
                            <option value="shuffle" >shuffle</option>
                            <option value="peptide-revers" >peptide-reverse</option>
                            <option value="protein-reverse" >protein-reverse</option>
                        </param>
                        <param name="tide_keep_terminals" label="TIDE: Keep Terminals" type="select" help="Select to keep the terminal amino acids when creating decoys">
                            <option value="N" >N</option>
                            <option value="C" >C</option>
                            <option value="NC" selected="True">NC</option>
                            <option value="non" >none</option>
                        </param>
                        <param name="tide_decoy_seed" type="integer" value="1"
                            label="TIDE: Decoy Seed" help="Set the decoy seed"/>
                        <param name="tide_print_peptides" type="boolean" truevalue="1" falsevalue="0" checked="false"
                            label="TIDE: Print Peptides" help="If true, the peptides will be printed in the output"/>
                        <param name="tide_verbosity" label="TIDE: Progress Display Verbosity" type="select" help="Select the display verbosity level to report the search progress">
                            <option value="0" >0</option>
                            <option value="10" >10</option>
                            <option value="20" >20</option>
                            <option value="30" selected="True">30</option>
                            <option value="40" >40</option>
                            <option value="50" >50</option>
                            <option value="60" >60</option>
                        </param>

                        <param name="tide_monoisotopic" type="boolean" truevalue="1" falsevalue="0" checked="true"
                            label="TIDE: Monoisotopic" help="If true, the precursor mass is monoisotopic"/>
                        <param name="tide_clip_n_term" type="boolean" truevalue="1" falsevalue="0" checked="false"
                            label="TIDE: Clip Nterm Methionine" help="If true, the Nterm Methionine will be clipped"/>
                        <param name="tide_digestion_type" label="TIDE: Digestion Type" type="select" help="Either both ends (full-digest) or at least one end (partial-digest) of a peptide must conform to enzyme specificity rules">
                            <option value="full-digest" selected="True">full-digest</option>
                            <option value="partial-digest" >partial-digest</option>
                        </param>
                        <param name="tide_compute_sp" type="boolean" truevalue="1" falsevalue="0" checked="false"
                            label="TIDE: Compute SP" help="If true, the SP-score is calculated"/>
                        <param name="tide_max_psms" type="integer" value="10"
                            label="TIDE: Maximum Number of PSMs" help="Set the maximum number of PSMs to be considered"/>
                        <param name="tide_compute_p" type="boolean" truevalue="1" falsevalue="0" checked="false"
                            label="TIDE: Compute Exact P-value" help="If true, the exact p-values are calculated"/>
                        <param name="tide_min_spectrum_mz" type="float" value="0.0"
                            label="TIDE: Minimum Spectrum m/z" help="Set the minimum spectrum m/z value for a spectrum to be considered"/>
                        <param name="tide_max_spectrum_mz" type="float" value="" optional="true"
                            label="TIDE: Maximum Spectrum m/z" help="Set the maximum spectrum m/z value for a spectrum to be considered"/>
                        <param name="tide_min_spectrum_peaks" type="integer" value="20"
                            label="TIDE: Minimum Spectrum Peaks" help="Set the minimum amount of peaks in a spectrum for it to be considered"/>
                        <param name="tide_spectrum_charges" label="TIDE: Spectrum Charges" type="select" help="Select what precursor charges should be taken into account for matching">
                            <option value="1" >1</option>
                            <option value="2" >2</option>
                            <option value="3" >3</option>
                            <option value="all" selected="True">all</option>
                        </param>
                        <param name="tide_remove_prec" type="boolean" truevalue="1" falsevalue="0" checked="false"
                            label="TIDE: Remove Precursor" help="If true, the peak that corresponds to the precursor mass is excluded"/>
                        <param name="tide_remove_prec_tol" type="float" value="1.5"
                            label="TIDE: Remove Precursor Tolerance" help="Choose the threshold for precursor mass searching (for precursor peak removal)"/>
                        <param name="tide_progress_indicator" type="integer" value="1000"
                            label="TIDE: Progress Indicator" help="Choose the progress indicator frequency  (in number of fragmentation spectra processed)"/>
                        <param name="tide_use_flanking" type="boolean" truevalue="1" falsevalue="0" checked="false"
                            label="TIDE: Use Flanking" help="Includes two flanking peaks on either side of each b- and y-ion to compute the XCorr"/>
                        <param name="tide_use_neutral_losses" type="boolean" truevalue="1" falsevalue="0" checked="false"
                            label="TIDE: Neutral Losses" help="Includes fragment peaks with neutral losses to perform the matching"/>
                        <param name="tide_mz_bin_width" type="float" value="0.02"
                            label="TIDE: mz Bin Width" help="Choose bin size to analyze the fragmentation spectrum"/>
                        <param name="tide_mz_bin_offset" type="float" value="0.0"
                            label="TIDE: mz Bin Offset" help="Choose bin offset to analyze the fragmentation spectrum"/>
                        <param name="tide_concat" type="boolean" truevalue="1" falsevalue="0" checked="false"
                            label="TIDE: Concat Target and Decoy" help="If true, the target results are concatenated with the decoy results"/>

                        <param name="tide_export" label="TIDE: Output Format" type="select" help="Choose the output format">
                            <option value="tide_export_text" selected="True">Text</option>
                            <option value="tide_export_sqt" >SQT</option>
                            <option value="tide_export_pepxml" >pepxml</option>
                            <option value="tide_export_mzid" >MzIdentML</option>
                            <option value="tide_export_pin" >Percolator input file</option>
                        </param>

                        <param name="tide_remove_temp" type="boolean" truevalue="1" falsevalue="0" checked="true"
                            label="TIDE: Remove Temp Folders" help="If true, the temp folders are removed when the search is done"/>
                    </when>
                </conditional>


                <!-- MyriMatch ADVANCED PARAMETERS -->
                <conditional name="myrimatch">
                    <param name="myrimatch_advanced" type="select" label="MyriMatch Options">
                        <option value="yes">Advanced</option>
                        <option value="no" selected="True">Default</option>
                    </param>
                    <when value="no" />
                    <when value="yes">
                        <param name="myrimatch_min_pep_length"  type="integer" value="8"
                            label="MyriMatch: Minimum Peptide Length" help="Minimum length for a peptide to be considered" />
                        <param name="myrimatch_max_pep_length"  type="integer" value="30"
                            label="MyriMatch: Maximum Peptide Length" help="Maximum length for a peptide to be considered" />
                        <param name="myrimatch_min_prec_mass"  type="float" value="600.0"
                            label="MyriMatch: Minimum Precursor Mass" help="Minimum precursor mass of parent ion to be considered" />
                        <param name="myrimatch_max_prec_mass"  type="float" value="5000.0"
                            label="MyriMatch: Maximum Precursor Mass" help="Maximum precursor mass of parent ion to be considered" />
                        <param name="myrimatch_num_matches"  type="integer" value="10"
                            label="MyriMatch: Maximum Number of Spectrum Matches" help="Set the value for the maximum number of spectrum matches" />
                        <param name="myrimatch_num_ptms"  type="integer" value="2"
                            label="MyriMatch: Max Variable PTMs per Peptide" help="Set the number of PTMS allowed per peptide" />
                        <param name="myrimatch_fragmentation" label="MyriMatch: Fragmentation Method" type="select" help="Choose the fragmentation method used (CID: b,y) or (ETD: c, z*)">
                            <option value="CID" selected="True">CID</option>
                            <option value="HCD" >HCD</option>
                            <option value="ETD" >ETD</option>
                        </param>
                        <param name="myrimatch_termini" label="MyriMatch: Enzymatic Terminals" type="select" help="Select the number of enzymatic terminals">
                            <option value="0">None required</option>
                            <option value="1">At least one</option>
                            <option value="2" selected="True" >Both</option>
                        </param>
                        <param name="myrimatch_plus_three"  type="boolean" truevalue="1" falsevalue="0" checked="true"
                            label="MyriMatch: Use Smart Plus Three Option" help="Defines what algorithms are used to generate a set of theoretical fragment ions" />
                        <param name="myrimatch_xcorr"  type="boolean" truevalue="1" falsevalue="0" checked="false"
                            label="MyriMatch: Compute Xcorr" help="a Sequest-like cross correlation score can be calculated for the top ranking hits" />
                        <param name="myrimatch_tic_cutoff"  type="float" value="0.98"
                            label="MyriMatch: TIC cutoff percentage" help="Cumulative ion current of picked peaks divided by TIC >= this value for peaks to be retained (0.0 - 1.0)" />
                        <param name="myrimatch_intensity_classes"  type="integer" value="3"
                            label="MyriMatch: Number of Intensity Classes" help="Experimental spectra have their peaks stratified into this number of intensity classed" />
                        <param name="myrimatch_class_multiplier"  type="integer" value="2"
                            label="MyriMatch: Class Size Multiplier" help="Has to do with previous option, this parameter controls the size of each class relative to the class above" />
                        <param name="myrimatch_num_batches"  type="integer" value="50"
                            label="MyriMatch: Number of Batches" help="The number of batches per node to strive for when usinge the MPI-based parallelization features" />
                        <param name="myrimatch_max_peak"  type="integer" value="100"
                            label="MyriMatch: Maximum Peak Count" help="Maximum number of peaks to be used from a spectrum" />
                    </when>
                </conditional>


                <!-- Andromeda ADVANCED PARAMETERS -->
                <!-- Windows only
                <conditional name="andromeda">
                    <param name="andromeda_advanced" type="select" label="Andromeda Options">
                        <option value="yes">Advanced</option>
                        <option value="no" selected="True">Default</option>
                    </param>
                    <when value="no" />
                    <when value="yes">
                        <param name="andromeda_max_pep_mass" type="float" value="4600.0" label="Andromeda maximum peptide mass, default is: 4600.0" />
                        <param name="andromeda_max_comb" type="integer" value="250" label="Andromeda maximum combinations, default is: 250" />
                        <param name="andromeda_top_peaks" type="integer" value="8" label="Andromeda number of top peaks, default is: 8" />
                        <param name="andromeda_top_peaks_window" type="integer" value="100" label="Andromeda top peaks window width, default is: 100" />
                        <param name="andromeda_incl_water" type="boolean" truevalue="1" falsevalue="0" checked="true" label="Andromeda account for water losses, default is: true" />
                        <param name="andromeda_incl_ammonia" type="boolean" truevalue="1" falsevalue="0" checked="true" label="Andromeda account for ammonina losses, default is: true" />
                        <param name="andromeda_neutral_losses" type="boolean" truevalue="1" falsevalue="0" checked="true" label="Andromeda neutral losses are sequence dependent, default is: true" />
                        <param name="andromeda_fragment_all" type="boolean" truevalue="1" falsevalue="0" checked="false" label="Andromeda fragment all option, default is: false" />
                        <param name="andromeda_emp_correction" type="boolean" truevalue="1" falsevalue="0" checked="true" label="Andromeda emperical correction, default is: true" />
                        <param name="andromeda_higher_charge" type="boolean" truevalue="1" falsevalue="0" checked="true" label="Andromeda higher charge option, default is: true" />
                        <param name="andromeda_equal_il" type="boolean" truevalue="1" falsevalue="0" checked="false" label="Andromeda whether I and L should be considered indistinguishable, default is: false" />
                        <param name="andromeda_frag_method" type="select" value="" label="Andromeda fragmentation method, (HCD, CID or EDT), default is: CID." >
                           <option value="CID" selected="true">CID</option>
                           <option value="HCD">HCD</option>
                           <option value="EDT">EDT</option>
                        </param>
                        <param name="andromeda_max_mods" type="integer" value="5" label="Andromeda maximum number of modifications, default is: 5" />
                        <param name="andromeda_min_pep_length" type="integer" value="8" label="Andromeda minimum peptide length when using no enzyme, default is: 8" />
                        <param name="andromeda_max_pep_length" type="integer" value="25" label="Andromeda maximum peptide length when using no enzyme, default is: 25" />
                        <param name="andromeda_max_psms" type="integer" value="10" label="Andromeda maximum number of spectrum matches spectrum, default is: 10" />
                        <param name="andromeda_decoy_mode" type="boolean" truevalue="decoy" falsevalue="none" checked="false" label="Andromeda decoy mode" />
                    </when>
                </conditional>
                -->

                <!-- Comet ADVANCED PARAMETERS -->
                <conditional name="comet">
                    <param name="comet_advanced" type="select" label="Comet Options">
                        <option value="yes">Advanced</option>
                        <option value="no" selected="True">Default</option>
                    </param>
                    <when value="no" />
                    <when value="yes">
                        <!-- Spectrum Related parameters -->
                        <conditional name="comet_spectrum">
                            <param name="comet_spectrum_selector" type="select" label="Comet: Spectrum Related">
                                <option value="yes">Set Spectrum Parameters</option>
                                <option value="no" selected="True">Keep Default Spectrum Parameters</option>
                            </param>
                            <when value="no" />
                            <when value="yes">
                                <param name="comet_min_peaks"  type="integer" value="10"
                                    label="Comet: Minimum Number of Peaks per Spectrum" help="The minimum number of peaks per spectrum" />
                                <param name="comet_min_peak_int"  type="float" value="0.0"
                                    label="Comet: Minimum Peaks Intensity" help="The minimum intensity for input peaks to be considered" />
                                <conditional name="comet_prec">
                                    <param name="comet_remove_prec" label="Comet: Remove Precursor" type="select" help="Select for precursor m/z signal removal">
                                        <option value="0"  selected="True" >off</option>
                                        <option value="1">on</option>
                                        <option value="2">as expected for ETD/ECD spectra</option>
                                    </param>
                                    <when value="0" />
                                    <when value="1">
                                        <param name="comet_remove_prec_tol"  type="float" value="1.5"
                                            label="Comet: Remove Precursor Tolerance" />
                                    </when>
                                    <when value="2">
                                        <param name="comet_remove_prec_tol"  type="float" value="1.5"
                                            label="Comet: Remove Precursor Tolerance" />
                                    </when>
                                </conditional>
                                <param name="comet_clear_mz_range_lower"  type="float" value="0.0"
                                    label="Comet: Minimum Peaks Intensity" help="Intended for iTRAQ/TMT type data where one might want to remove the reporter ion signals, lower m/z range" />
                                <param name="comet_clear_mz_range_upper"  type="float" value="0.0"
                                    label="Comet: Maximum Peaks Intensity" help="Intended for iTRAQ/TMT type data where one might want to remove the reporter ion signals, upper m/z range" />
                            </when>
                        </conditional>
                          <!-- Search Related parameters -->
                        <conditional name="comet_search">
                            <param name="comet_search_selector" type="select" label="Comet: Search Related">
                                <option value="yes">Set Search Parameters</option>
                                <option value="no" selected="True">Keep Default Search Parameters</option>
                            </param>
                            <when value="no" />
                            <when value="yes">
                                <param name="comet_enzyme_type" label="Comet: Enzyme Type" type="select" help="Specifies the number of enzyme termini a peptide must have">
                                    <option value="1">semi-specific</option>
                                    <option value="2" selected="True">full-enzyme</option>
                                    <option value="8">unspecific N-term</option>
                                    <option value="9">unspecific C-term</option>
                                </param>
                                <param name="comet_isotope_correction" label="Comet: Isotope Correction" type="select" help="Controls whether the peptide_mass_tolerance takes into account possible isotope errors in the precursor mass measurement">
                                    <option value="0" selected="True">off</option>
                                    <option value="1">-1,0,+1,+2,+3</option>
                                    <option value="2">-8,-4,0,+4,+8</option>
                                </param>
                                <param name="comet_min_prec_mass"  type="float" value="0.0"
                                    label="Comet: Minimum Precursor Mass" help="The minimum precursor mass considered" />
                                <param name="comet_max_prec_mass"  type="float" value="10000.0"
                                    label="Comet: Maximum Precursor Mass" help="The maximum precursor mass considered" />
                                <param name="comet_num_matches"  type="integer" value="10"
                                    label="Comet: Maximum Number of Matches" help="The maximum number of peptide matches per spectrum" />
                                <param name="comet_max_frag_charge"  type="integer" value="3"
                                    label="Comet: Maximum Fragment Charge" help="Sets the maximum fragment charge (fill value between 1 and 5)" />
                                <param name="comet_remove_meth"  type="boolean" truevalue="1" falsevalue="0" checked="false"
                                    label="Comet: Remove Methionine" help="Specifies whether the N-terminal methionine is cleaved prior to matching" />
                                <param name="comet_batch_size"  type="integer" value="0"
                                    label="Comet: Batch Size" help="0 means load and search all spectra at once, otherwise spectra are loaded and searched in batches of the number specified" />
                                <param name="comet_num_ptms"  type="integer" value="10"
                                    label="Comet: Maximum Number of PTMs" help="The maximum number of ptms per peptide" />
                            </when>
                        </conditional>
                        <!-- Fragment Ions Related parameters -->
                        <conditional name="comet_fragment_ions">
                            <param name="comet_fragment_ions_selector" type="select" label="Comet: Fragment Ions Related">
                                <option value="yes">Set Fragment Ions Parameters</option>
                                <option value="no" selected="True">Keep Default Fragment Ions Parameters</option>
                            </param>
                            <when value="no" />
                            <when value="yes">
                                <param name="comet_frag_bin_offset"  type="float" value="0.4"
                                    label="Comet: Fragment Bin Offset" help="Controls how each fragment bin is defined in terms of where each bin starts" />
                                <param name="comet_theoretical_fragment_ions"  type="integer" value="0"
                                    label="Comet: Theoretical Fragment Ions" help="Specifies how theoretical fragment ion peaks are represented (0 or 1 values are allowed)" />
                            </when>
                        </conditional>
                    </when>
                </conditional>
                <conditional name="directtag">
                    <param name="directtag_advanced" type="select" label="DirectTag Options">
                        <option value="yes">Advanced</option>
                        <option value="no" selected="True">Default</option>
                    </param>
                    <when value="no" />
                    <when value="yes">
                        <param name="directag_tic_cutoff" type="integer" value="85" label="DirecTag TIC cutoff in percent, default is '85'."/>
                        <param name="directag_max_peak_count" type="integer" value="400" label="DirecTag max peak count, default is '400'."/>
                        <param name="directag_intensity_classes" type="integer" value="3" label="DirecTag number of intensity classses, default is '3'."/>
                        <param name="directag_adjust_precursor" type="boolean" truevalue="1" falsevalue="0" checked="false" label="DirecTag adjust precursor, default is false."/>
                        <param name="directag_min_adjustment" type="float" value="-2.5" label="DirecTag minimum precursor adjustment, default is '-2.5'."/>
                        <param name="directag_max_adjustment" type="float" value="2.5" label="DirecTag maximum precursor adjustment, default is '2.5'."/>
                        <param name="directag_adjustment_step" type="float" value="0.1" label="DirecTag precursor adjustment step, default is '0.1'."/>
                        <param name="directag_charge_states" type="integer" value="3" label="DirecTag number of charge states considered, default is '3'."/>
                        <param name="directag_output_suffix" type="text" value="" label="DirecTag output suffix, default is no suffix."/>
                        <param name="directag_ms_charge_state" type="boolean" truevalue="1" falsevalue="0" checked="false" label="DirecTag use charge state from M spectrum, default is false."/>
                        <param name="directag_duplicate_spectra" type="boolean" truevalue="1" falsevalue="0" checked="true" label="DirecTag duplicate spectra per charge, default is true."/>
                        <param name="directag_deisotoping" type="select" label="DirecTag deisotoping mode, default is no deisotoping">
                            <option value="0" selected="true">no deisotoping</option>
                            <option value="1">precursor only</option>
                            <option value="2">precursor and candidate</option>
                        </param>
                        <param name="directag_isotope_tolerance" type="float" value="0.25" label="DirecTag isotope mz tolerance, default is '0.25'."/>
                        <param name="directag_complement_tolerance" type="float" value="0.5" label="DirecTag complement mz tolerance, default is '0.5'."/>
                        <param name="directag_tag_length" type="integer" value="3" label="DirecTag tag length, default is '3'."/>
                        <param name="directag_max_var_mods" type="integer" value="2" label="DirecTag maximum variable modifications per sequence, default is '2'."/>
                        <param name="directag_max_tag_count" type="integer" value="20" label="DirecTag maximum tag count, default is '20'."/>
                        <param name="directag_intensity_weight" type="float" value="1.0" label="DirecTag intensity score weight, default is '1.0'."/>
                        <param name="directag_fidelity_weight" type="float" value="1.0" label="DirecTag fidelity score weight, default is '1.0'."/>
                        <param name="directag_complement_weight" type="float" value="1.0" label="DirecTag complement_score_weight, default is '1.0'."/>
                    </when>
                </conditional>

                <conditional name="novor">
                    <param name="novor_advanced" type="select" label="Novor Options">
                        <option value="yes">Advanced</option>
                        <option value="no" selected="True">Default</option>
                    </param>
                    <when value="no" />
                    <when value="yes">
                        <param name="novor_fragmentation" type="select" label="Novor fragmentation method">
                            <option value="HCD" selected="True">HCD</option>
                            <option value="CID">CID</option>
                        </param>
                        <param name="novor_mass_analyzer" label="Novor: mass analyzer" type="select" help="Identifier of the instrument to generate MS/MS spectra">
                            <option value="FT" selected="True">FT</option>
                            <option value="Trap" >Trap</option>
                            <option value="TOF" >TOF</option>
                        </param>
                    </when>
                </conditional>
            </section>
        </section>

    </inputs>
    <outputs>
        <data name="Searchgui_Identification_Parameters" format="par" from_work_dir="SEARCHGUI_IdentificationParameters.par" label="${tool.name}: PAR file on ${on_string}" />
    </outputs>
    <tests>

        <!-- Test that default parameters generates a standar par file -->
        <test>
            <param name="input_database" value="searchgui_tinydb1_concatenated_target_decoy.fasta" ftype="fasta"/>
            <output name="Searchgui_Identification_Parameters" file="Identification_Parameters_default.par" ftype="par" compare="sim_size" delta="1000" />
        </test>
        <!-- Test specific parameters -->
        <test>
            <param name="input_database" value="searchgui_tinydb1_concatenated_target_decoy.fasta" ftype="fasta"/>
            <param name="precursor_ion_tol" value="100"/>
            <param name="fixed_modifications" value="Carbamidomethylation of C"/>
            <param name="variable_modifications" value="Oxidation of M"/>
            <param name="min_charge" value="1"/>
            <param name="max_charge" value="3"/>
            <param name="xtandem_advanced" value="yes"/>
            <param name="xtandem_refine_selector" value="yes"/>
            <output name="Searchgui_Identification_Parameters" file="Identification_Parameters_specific.par" ftype="par" compare="sim_size" delta="5000" />
        </test>

    </tests>
    <help>
**What it does**

Creates a parameters file which can be used independently by SearchGUI or PeptideShaker apps.

FASTA file used by this app must be kept in the history as the generated .par file will reference to it.

A FASTA file with decoy sequences is recommended if SearchGUI and PeptideShaker are going to be used.

    </help>
    <expand macro="citations" />
</tool>