view peptide_shaker.xml @ 11:e5bdaa2ac9c7 draft

Improved help text
author iracooke
date Wed, 07 May 2014 00:47:14 -0400
parents 5a74b76d48fc
children b9f2cedab007
line wrap: on
line source

<tool id="peptide_shaker" name="Peptide Shaker" version="1.18.3.0">
    <description>
        Perform protein identification using various search engines (using SearchGUI) and combine results with PeptideShaker.
    </description>
    <requirements>
        <requirement type="package" version="0.28.0">peptide_shaker</requirement>
        <requirement type="package" version="1.18.0">searchgui</requirement>
        <!--<requirement type="package" version="2.2.29">blast+</requirement>-->
    </requirements>
    <stdio>
        <exit_code range="1:" level="fatal" description="Job Failed" />
    </stdio>
    <command>
        #from datetime import datetime
        #set $exp_str = "Galaxy_Experiment_%s" % datetime.now().strftime("%Y%m%d%H%M%s")
        #set $samp_str = "Sample_%s" % datetime.now().strftime("%Y%m%d%H%M%s")
        mkdir output;
        mkdir output_reports;
        cwd=`pwd`;
        #for $mgf in $peak_lists:
            #set $input_name = $mgf.display_name.replace(".mgf", "") + ".mgf"
            ln -s '${mgf}' '${input_name}';
        #end for
        ##ln -s "${input_database}" input_database.fasta;
        cp "${input_database}" input_database.fasta;

        ###########################################
        ####       Creating decoy database     ####
        ###########################################
        #if $create_decoy:
            echo "Creating decoy database.";
            java -cp \$SEARCHGUI_JAR_PATH eu.isas.searchgui.cmd.FastaCLI -in input_database.fasta -decoy;
            rm input_database.fasta;
            cp input_database_concatenated_target_decoy.fasta input_database.fasta;
            ##ln -sf input_database_concatenated_target_decoy.fasta input_database.fasta;
        #end if

        #####################################################
        ## generate IdentificationParameters for SearchGUI ##
        #####################################################

        java -cp \$SEARCHGUI_JAR_PATH eu.isas.searchgui.cmd.IdentificationParametersCLI
            -out SEARCHGUI_IdentificationParameters.parameters
            -prec_ppm "${precursor_ion_tol_units}"
            -prec_tol "${precursor_ion_tol}"
            -frag_tol "${fragment_tol}"
            -enzyme "${enzyme}"
            #set $fixed_mods_str = $fixed_modifications or ''
            #set $variable_mods_str = $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 "${min_charge}"
            -max_charge "${max_charge}"
            -mc "${missed_cleavages}"
            -fi "${forward_ion}"
            -ri "${reverse_ion}"
            -db input_database.fasta

            #if $advanced.advanced_type_selector == "advanced":

                ##if $advanced.xtandem.xtandem_selector == "yes"
                ##end if

                #if $advanced.omssa.omssa_selector == "yes"
                    -omssa_hitlist_length ${advanced.omssa.hitlist_length}
                    -omssa_remove_prec ${advanced.omssa.remove_precursor}
                    -omssa_scale_prec ${advanced.omssa.scale_precursor}
                    -omssa_estimate_charge ${advanced.omssa.estimate_charge}
                #end if

                ##if $advanced.msgf.msgf_selector == "yes"
                ##end if

                ##if $advanced.ms_amanda.ms_amanda_selector == "yes"
                ##end if

            #end if
        ;

        ################
        ## Search CLI ##
        ################
        java -cp \$SEARCHGUI_JAR_PATH eu.isas.searchgui.cmd.SearchCLI
            -temp_folder `pwd`
            -spectrum_files \$cwd
            -output_folder \$cwd/output
            -id_params SEARCHGUI_IdentificationParameters.parameters

            -threads "\${GALAXY_SLOTS:-12}"
            -correct_titles "${correct_titles}"
            -mgf_splitting "${mgf_splitting}"
            -mgf_spectrum_count "${mgf_spectrum_count}"

            ## Turn of the protein tree generation as it can produce errors if the search is finished before the tree is created
            ## the tree is generated afterwards in PeptideShaker
            -protein_tree 0

            ##-makeblastdb_folder \$BLAST_ROOT_DIR

            #if $advanced.advanced_type_selector == "advanced":

                #if $advanced.xtandem.xtandem_selector == "yes"
                    -xtandem 1
                #else
                    -xtandem 0
                #end if

                #if $advanced.omssa.omssa_selector == "yes"
                    -omssa 1
                #else
                    -omssa 0
                #end if

                #if $advanced.msgf.msgf_selector == "yes"
                    -msgf 1
                #else
                    -msgf 0
                #end if

                #if $advanced.ms_amanda.ms_amanda_selector == "yes"
                    -ms_amanda 1
                #else
                    -ms_amanda 0
                #end if

            #end if
        ;

        #########################################################
        ## generate IdentificationParameters for PeptideShaker ##
        #########################################################
        java -cp \$PEPTIDESHAKER_JAR_PATH eu.isas.peptideshaker.cmd.IdentificationParametersCLI
            -out PEPTIDESHAKER_IdentificationParameters.parameters
            -prec_ppm "${precursor_ion_tol_units}"
            -prec_tol "${precursor_ion_tol}"
            -frag_tol "${fragment_tol}"
            -enzyme "${enzyme}"
            #set $fixed_mods_str = $fixed_modifications or ''
            #set $variable_mods_str = $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 $min_charge
            -max_charge $max_charge
            -mc $missed_cleavages
            -fi $forward_ion
            -ri $reverse_ion
            -db input_database.fasta
        ;

        ######################
        ## PeptideShakerCLI ##
        ######################
        java -cp \$PEPTIDESHAKER_JAR_PATH eu.isas.peptideshaker.cmd.PeptideShakerCLI
            -temp_folder `pwd`
            -experiment '${exp_str}'
            -sample '${samp_str}'
            -replicate 1
            -spectrum_files \$cwd
            -identification_files \$cwd/output
            -out \$cwd/peptide_shaker_output.cps
            -id_params PEPTIDESHAKER_IdentificationParameters.parameters

            ##Optional gene annotation parameter
            #if $species_type.species_type_selector != 'no_species_type':
                -species_type "${species_type.species_type_selector}"
                -species "${species_type.species}"
            #end if

            ##Optional processing parameters:
            #if $processing_options.processing_options_selector == "yes"
                -protein_FDR "${processing_options.protein_fdr}"
                -peptide_FDR "${processing_options.peptide_fdr}"
                -psm_FDR "${processing_options.psm_fdr}"
                -ptm_score "${processing_options.ptm_score.ptm_score_selector}"
                #if $processing_options.ptm_score.ptm_score_selector == 1
                    -score_neutral_losses "${processing_options.ptm_score.neutral_losses}"
                    #if str($processing_options.ptm_score.ptm_threshold) != ''
                        -ptm_threshold "${processing_options.ptm_score.ptm_threshold}"
                    #end if
                #end if
                -protein_fraction_mw_confidence "${processing_options.protein_fraction_mw_confidence}"
            #end if

           ##Optional filtering parameters:
            #if $filtering_options.filtering_options_selector == "yes":
                -min_peptide_length "${filtering_options.min_peptide_length}"
                -max_peptide_length "${filtering_options.max_peptide_length}"
                -max_precursor_error "${filtering_options.max_precursor_error}"
                -max_precursor_error_type "${filtering_options.max_precursor_error_type}"
                -max_xtandem_e "${filtering_options.max_xtandem_e}"
                -max_omssa_e "${filtering_options.max_omssa_e}"
                -max_mascot_e "${filtering_options.max_mascot_e}"
                -exclude_unknown_ptms "${filtering_options.exclude_unknown_ptms}"
            #end if
        ;

        ##################################
        ## PeptideShaker Report options ##
        ##################################
        java -cp \$PEPTIDESHAKER_JAR_PATH eu.isas.peptideshaker.cmd.ReportCLI
            -temp_folder `pwd`
            -in \$cwd/peptide_shaker_output.cps
            -out_reports \$cwd/output_reports
            #if 'cps' in str($outputs).split(','):
                #set $cleaned_list = str($outputs).split(',')
                #silent $cleaned_list.remove('cps')
                -reports #echo ','.join($cleaned_list)#
            #else:
                -reports #echo str($outputs)#
            #end if
        ;

        #if '0' in str($outputs).split(','):
            find \$cwd/output_reports -name '*Certificate*' -exec bash -c 'mv "$0" "certificate.txt"' {} \;
            ;
        #end if
        #if '2' in str($outputs).split(','):
            find \$cwd/output_reports -name '*PSM*' -exec bash -c 'mv "$0" "psm.txt"' {} \;
            ;
        #end if
        #if '3' in str($outputs).split(','):
            find \$cwd/output_reports -name '*Peptide*' -exec bash -c 'mv "$0" "peptides.txt"' {} \;
            ;
        #end if
        #if '4' in str($outputs).split(','):
            find \$cwd/output_reports -name '*Protein*' -exec bash -c 'mv "$0" "proteins.txt"' {} \;
            ;
        #end if
        #if '1' in str($outputs).split(','):
            find \$cwd/output_reports -name '*Hierarchical*' -exec bash -c 'mv "$0" "hierarchical.txt"' {} \;
            ;
        #end if

        ## the following line is needed. Otherwise, Galaxy will strip away the ';'
        echo 'Finished!';
    </command>
    <inputs>
        <param format="fasta" name="input_database" type="data" label="Protein Database"
            help="Select FASTA database from history"/>

        <param name="create_decoy" label="Create a concatenated target/decoy database before running PeptideShaker." type="boolean" truevalue="True" falsevalue="False" checked="true" help="Selecting this option will help PeptideShaker calculate FDR values" />

        <param format="mgf" name="peak_lists" type="data" multiple="true" label="Input Peak Lists (mgf)"
            help="Select appropriate MGF dataset(s) from history" />
        <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="Percursor Ion Tolerance"
            help="Provide error value for precursor ion, based on instrument used. 10 ppm recommended for Orbitrap instrument"/>
        <param name="fragment_tol" type="float" value="0.5" label="Fragment Tolerance (Daltons)"
            help="Provide error value for fragment ions, based on instrument used"/>
        <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="No enzyme">No enzyme</option>
            <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>
        </param>

        <param name="correct_titles" type="select" label="How should PeptideShaker deal with duplicate spectra?"
            help="Unless you suspect some input files to be genuine duplicates then rename spectra is the safest option">
            <option value="0">no correction</option>
            <option value="1" selected="True">rename spectra</option>
            <option value="2">delete spectra</option>
        </param>

        <param name="mgf_splitting" type="integer" value="1000" label="The maximum mgf file size in MB before splitting the mgf"
            help="Choose a smaller value if you are running on a machine with limited memory"/>
        <param name="mgf_spectrum_count" type="integer" value="25000" label="The maximum number of spectra per mgf file when splitting"
            help="Choose a smaller value if you are running on a machine with limited memory"/>

        <conditional name="species_type">
            <param name="species_type_selector" type="select" optional="true" label="The species type to use for the gene annotation"
                help="(Optional) If your species is supported under one of the groups, selecting it will allow GO annotations and other information to be included in the results">
                <option value="Fungi">Fungi</option>
                <option value="Plants">Plants</option>
                <option value="Metazoa">Metazoa</option>
                <option value="Vertebrates">Vertebrates</option>
                <option value="Protists">Protists</option>
                <option value="no_species_type" selected="true">No species restriction</option>
            </param>
            <when value="Protists">
                <param name="species" type="select" label="The species to use for the gene annotation"
                    help="">
                    <option value="Albugo laibachii">Albugo laibachii</option>
                    <option value="Dictyostelium discoideum">Dictyostelium discoideum</option>
                    <option value="Entamoeba histolytica">Entamoeba histolytica</option>
                    <option value="Giardia lamblia">Giardia lamblia</option>
                    <option value="Guillardia theta CCMP2712">Guillardia theta CCMP2712</option>
                    <option value="Hyaloperonospora arabidopsidis">Hyaloperonospora arabidopsidis</option>
                    <option value="Leishmania major">Leishmania major</option>
                    <option value="Phaeodactylum tricornutum">Phaeodactylum tricornutum</option>
                    <option value="Phytophthora infestans">Phytophthora infestans</option>
                    <option value="Phytophthora ramorum">Phytophthora ramorum</option>
                    <option value="Phytophthora sojae">Phytophthora sojae</option>
                    <option value="Plasmodium berghei">Plasmodium berghei</option>
                    <option value="Plasmodium chabaudi">Plasmodium chabaudi</option>
                    <option value="Plasmodium falciparum">Plasmodium falciparum</option>
                    <option value="Plasmodium knowlesi">Plasmodium knowlesi</option>
                    <option value="Plasmodium vivax">Plasmodium vivax</option>
                    <option value="Pythium ultimum">Pythium ultimum</option>
                    <option value="Tetrahymena thermophila">Tetrahymena thermophila</option>
                    <option value="Thalassiosira pseudonana">Thalassiosira pseudonana</option>
                    <option value="Toxoplasma gondii">Toxoplasma gondii</option>
                    <option value="Trypanosoma brucei">Trypanosoma brucei</option>
                </param>
            </when>
            <when value="Plants">
                <param name="species" type="select" label="The species to use for the gene annotation"
                    help="">
                    <option value="Arabidopsis lyrata">Arabidopsis lyrata</option>
                    <option value="Arabidopsis thaliana">Arabidopsis thaliana</option>
                    <option value="Brachypodium distachyon">Brachypodium distachyon</option>
                    <option value="Brassica rapa genes">Brassica rapa genes</option>
                    <option value="Chlamydomonas reinhardtii">Chlamydomonas reinhardtii</option>
                    <option value="Cyanidioschyzon merolae">Cyanidioschyzon merolae</option>
                    <option value="Glycine max">Glycine max</option>
                    <option value="Hordeum vulgare">Hordeum vulgare</option>
                    <option value="Medicago truncatula">Medicago truncatula</option>
                    <option value="Musa acuminata">Musa acuminata</option>
                    <option value="Oryza brachyantha">Oryza brachyantha</option>
                    <option value="Oryza glaberrima">Oryza glaberrima</option>
                    <option value="Oryza sativa Indica Group">Oryza sativa Indica Group</option>
                    <option value="Oryza sativa">Oryza sativa</option>
                    <option value="Physcomitrella patens">Physcomitrella patens</option>
                    <option value="Populus trichocarpa">Populus trichocarpa</option>
                    <option value="Selaginella moellendorffii">Selaginella moellendorffii</option>
                    <option value="Setaria italica">Setaria italica</option>
                    <option value="Solanum lycopersicum">Solanum lycopersicum</option>
                    <option value="Solanum tuberosum">Solanum tuberosum</option>
                    <option value="Sorghum bicolor">Sorghum bicolor</option>
                    <option value="Vitis vinifera">Vitis vinifera</option>
                    <option value="Zea mays">Zea mays</option>
                </param>
            </when>
            <when value="Metazoa">
                <param name="species" type="select" label="The species to use for the gene annotation"
                    help="">
                    <option value="Acyrthosiphon pisum">Acyrthosiphon pisum</option>
                    <option value="Aedes aegypti">Aedes aegypti</option>
                    <option value="Amphimedon queenslandica">Amphimedon queenslandica</option>
                    <option value="Anopheles darlingi">Anopheles darlingi</option>
                    <option value="Anopheles gambiae">Anopheles gambiae</option>
                    <option value="Apis mellifera">Apis mellifera</option>
                    <option value="Atta cephalotes">Atta cephalotes</option>
                    <option value="Bombyx mori">Bombyx mori</option>
                    <option value="Brugia malayi">Brugia malayi</option>
                    <option value="Caenorhabditis brenneri">Caenorhabditis brenneri</option>
                    <option value="Caenorhabditis briggsae">Caenorhabditis briggsae</option>
                    <option value="Caenorhabditis elegans">Caenorhabditis elegans</option>
                    <option value="Caenorhabditis japonica">Caenorhabditis japonica</option>
                    <option value="Caenorhabditis remanei">Caenorhabditis remanei</option>
                    <option value="Culex quinquefasciatus">Culex quinquefasciatus</option>
                    <option value="Danaus plexippus">Danaus plexippus</option>
                    <option value="Daphnia pulex">Daphnia pulex</option>
                    <option value="Drosophila ananassae">Drosophila ananassae</option>
                    <option value="Drosophila erecta">Drosophila erecta</option>
                    <option value="Drosophila grimshawi">Drosophila grimshawi</option>
                    <option value="Drosophila melanogaster">Drosophila melanogaster</option>
                    <option value="Drosophila mojavensis">Drosophila mojavensis</option>
                    <option value="Drosophila persimilis">Drosophila persimilis</option>
                    <option value="Drosophila pseudoobscura">Drosophila pseudoobscura</option>
                    <option value="Drosophila sechellia">Drosophila sechellia</option>
                    <option value="Drosophila simulans">Drosophila simulans</option>
                    <option value="Drosophila virilis">Drosophila virilis</option>
                    <option value="Drosophila willistoni">Drosophila willistoni</option>
                    <option value="Drosophila yakuba">Drosophila yakuba</option>
                    <option value="Heliconius melpomene">Heliconius melpomene</option>
                    <option value="Ixodes scapularis">Ixodes scapularis</option>
                    <option value="Loa loa">Loa loa</option>
                    <option value="Megaselia scalaris">Megaselia scalaris</option>
                    <option value="Nasonia vitripennis">Nasonia vitripennis</option>
                    <option value="Nematostella vectensis">Nematostella vectensis</option>
                    <option value="Pediculus humanus">Pediculus humanus</option>
                    <option value="Pristionchus pacificus">Pristionchus pacificus</option>
                    <option value="Schistosoma mansoni">Schistosoma mansoni</option>
                    <option value="Strigamia maritima">Strigamia maritima</option>
                    <option value="Strongylocentrotus purpuratus">Strongylocentrotus purpuratus</option>
                    <option value="Tribolium castaneum">Tribolium castaneum</option>
                    <option value="Trichinella spiralis">Trichinella spiralis</option>
                    <option value="Trichoplax adhaerens">Trichoplax adhaerens</option>
                </param>
            </when>
            <when value="Fungi">
                <param name="species" type="select" label="The species to use for the gene annotation"
                    help="">
                    <option value="Ashbya gossypii">Ashbya gossypii</option>
                    <option value="Aspergillus clavatus">Aspergillus clavatus</option>
                    <option value="Aspergillus flavus">Aspergillus flavus</option>
                    <option value="Aspergillus fumigatus">Aspergillus fumigatus</option>
                    <option value="Aspergillus fumigatusa1163">Aspergillus fumigatusa1163</option>
                    <option value="Aspergillus nidulans">Aspergillus nidulans</option>
                    <option value="Aspergillus niger">Aspergillus niger</option>
                    <option value="Aspergillus oryzae">Aspergillus oryzae</option>
                    <option value="Aspergillus terreus">Aspergillus terreus</option>
                    <option value="Botryotinia fuckeliana">Botryotinia fuckeliana</option>
                    <option value="Cryptococcus neoformans">Cryptococcus neoformans</option>
                    <option value="Fusarium oxysporum">Fusarium oxysporum</option>
                    <option value="Gaeumannomyces graminis">Gaeumannomyces graminis</option>
                    <option value="Gibberella moniliformis">Gibberella moniliformis</option>
                    <option value="Gibberella zeae">Gibberella zeae</option>
                    <option value="Glomerella graminicola">Glomerella graminicola</option>
                    <option value="Komagataella pastoris">Komagataella pastoris</option>
                    <option value="Leptosphaeria maculans">Leptosphaeria maculans</option>
                    <option value="Magnaporthe oryzae">Magnaporthe oryzae</option>
                    <option value="Magnaporthe poae">Magnaporthe poae</option>
                    <option value="Melampsora larici-populina">Melampsora larici-populina</option>
                    <option value="Nectria haematococca">Nectria haematococca</option>
                    <option value="Neosartorya fischeri">Neosartorya fischeri</option>
                    <option value="Neurospora crassa">Neurospora crassa</option>
                    <option value="Phaeosphaeria nodorum">Phaeosphaeria nodorum</option>
                    <option value="Puccinia graminis">Puccinia graminis</option>
                    <option value="Puccinia triticina">Puccinia triticina</option>
                    <option value="Pyrenophora teres">Pyrenophora teres</option>
                    <option value="Pyrenophora tritici-repentis">Pyrenophora tritici-repentis</option>
                    <option value="Saccharomyces cerevisiae">Saccharomyces cerevisiae</option>
                    <option value="Schizosaccharomyces pombe">Schizosaccharomyces pombe</option>
                    <option value="Sclerotinia sclerotiorum">Sclerotinia sclerotiorum</option>
                    <option value="Sporisorium reilianum">Sporisorium reilianum</option>
                    <option value="Trichoderma reesei">Trichoderma reesei</option>
                    <option value="Trichoderma virens">Trichoderma virens</option>
                    <option value="Tuber melanosporum">Tuber melanosporum</option>
                    <option value="Ustilago maydis">Ustilago maydis</option>
                    <option value="Yarrowia lipolytica">Yarrowia lipolytica</option>
                    <option value="Zymoseptoria tritici">Zymoseptoria tritici</option>
                </param>
            </when>
            <when value="Vertebrates">
                <param name="species" type="select" label="The species to use for the gene annotation"
                    help="">
                    <option value="Ailuropoda melanoleuca">Ailuropoda melanoleuca</option>
                    <option value="Anolis carolinensis">Anolis carolinensis</option>
                    <option value="Bos taurus">Bos taurus</option>
                    <option value="Caenorhabditis elegans">Caenorhabditis elegans</option>
                    <option value="Callithrix jacchus">Callithrix jacchus</option>
                    <option value="Canis familiaris">Canis familiaris</option>
                    <option value="Cavia porcellus">Cavia porcellus</option>
                    <option value="Choloepus hoffmanni">Choloepus hoffmanni</option>
                    <option value="Ciona intestinalis">Ciona intestinalis</option>
                    <option value="Ciona savignyi">Ciona savignyi</option>
                    <option value="Danio rerio">Danio rerio</option>
                    <option value="Dasypus novemcinctus">Dasypus novemcinctus</option>
                    <option value="Dipodomys ordii">Dipodomys ordii</option>
                    <option value="Drosophila melanogaster">Drosophila melanogaster</option>
                    <option value="Echinops telfairi">Echinops telfairi</option>
                    <option value="Equus caballus">Equus caballus</option>
                    <option value="Erinaceus europaeus">Erinaceus europaeus</option>
                    <option value="Felis catus">Felis catus</option>
                    <option value="Gallus gallus">Gallus gallus</option>
                    <option value="Gasterosteus aculeatus">Gasterosteus aculeatus</option>
                    <option value="Gorilla gorilla">Gorilla gorilla</option>
                    <option value="Homo sapiens">Homo sapiens</option>
                    <option value="Ictidomys tridecemlineatus">Ictidomys tridecemlineatus</option>
                    <option value="Latimeria chalumnae">Latimeria chalumnae</option>
                    <option value="Loxodonta africana">Loxodonta africana</option>
                    <option value="Macaca mulatta">Macaca mulatta</option>
                    <option value="Macropus eugenii">Macropus eugenii</option>
                    <option value="Meleagris gallopavo">Meleagris gallopavo</option>
                    <option value="Microcebus murinus">Microcebus murinus</option>
                    <option value="Monodelphis domestica">Monodelphis domestica</option>
                    <option value="Mus musculus">Mus musculus</option>
                    <option value="Mustela putorius furo">Mustela putorius furo</option>
                    <option value="Myotis lucifugus">Myotis lucifugus</option>
                    <option value="Nomascus leucogenys">Nomascus leucogenys</option>
                    <option value="Ochotona princeps">Ochotona princeps</option>
                    <option value="Oreochromis niloticus">Oreochromis niloticus</option>
                    <option value="Ornithorhynchus anatinus">Ornithorhynchus anatinus</option>
                    <option value="Oryctolagus cuniculus">Oryctolagus cuniculus</option>
                    <option value="Oryzias latipes">Oryzias latipes</option>
                    <option value="Otolemur garnettii">Otolemur garnettii</option>
                    <option value="Pan troglodytes">Pan troglodytes</option>
                    <option value="Petromyzon marinus">Petromyzon marinus</option>
                    <option value="Pelodiscus sinensis">Pelodiscus sinensis</option>
                    <option value="Pongo abelii">Pongo abelii</option>
                    <option value="Procavia capensis">Procavia capensis</option>
                    <option value="Pteropus vampyrus">Pteropus vampyrus</option>
                    <option value="Rattus norvegicus">Rattus norvegicus</option>
                    <option value="Saccharomyces cerevisiae">Saccharomyces cerevisiae</option>
                    <option value="Sarcophilus harrisii">Sarcophilus harrisii</option>
                    <option value="Sorex araneus">Sorex araneus</option>
                    <option value="Sus scrofa">Sus scrofa</option>
                    <option value="Taeniopygia guttata">Taeniopygia guttata</option>
                    <option value="Takifugu rubripes">Takifugu rubripes</option>
                    <option value="Tarsius syrichta">Tarsius syrichta</option>
                    <option value="Tetraodon nigroviridis">Tetraodon nigroviridis</option>
                    <option value="Tupaia belangeri">Tupaia belangeri</option>
                    <option value="Tursiops truncatus">Tursiops truncatus</option>
                    <option value="Vicugna pacos">Vicugna pacos</option>
                    <option value="Xenopus tropicalis">Xenopus tropicalis</option>
                    <option value="Xiphophorus maculatus">Xiphophorus maculatus</option>
                </param>
            </when>
        </conditional>

        <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="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>
        <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>
        <conditional name="advanced">
            <param name="advanced_type_selector" type="select" label="Basic or Advanced Search options">
                <option value="basic" selected="True">Basic</option>
                <option value="advanced">Advanced</option>
            </param>
            <when value="basic" />
            <when value="advanced">
                <param name="xtandem" label="Run X! Tandem" type="boolean" truevalue="1" falsevalue="0" checked="true" />

                <conditional name="xtandem">
                    <param name="xtandem_selector" type="select" label="Run X!Tandem search">
                        <option value="yes" selected="True">Search with X!Tandem</option>
                        <option value="no">No X!Tandem search</option>
                    </param>
                    <when value="no" />
                    <when value="yes">
                    </when>
                </conditional>

                <conditional name="omssa">
                    <param name="omssa_selector" type="select" label="Run OMSSA search">
                        <option value="yes" selected="True">Search with OMSSA</option>
                        <option value="no">No OMSSA search</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" />
                    </when>
                </conditional>

                <conditional name="msgf">
                    <param name="msgf_selector" type="select" label="Run MSGF search">
                        <option value="yes" selected="True">Search with MSGF</option>
                        <option value="no">No MSGF search</option>
                    </param>
                    <when value="no" />
                    <when value="yes">
                    </when>
                </conditional>

                <conditional name="ms_amanda">
                    <param name="ms_amanda_selector" type="select" label="Run MS Amanda search">
                        <option value="yes">Search with MS Amanda</option>
                        <option value="no" selected="True">No MS Amanda search</option>
                    </param>
                    <when value="no" />
                    <when value="yes">
                    </when>
                </conditional>
            </when>
        </conditional>
        <conditional name="processing_options">
            <param name="processing_options_selector" type="select" label="Specify Advanced PeptideShaker Processing Options">
                <option value="no" selected="True">Default Processing Options</option>
                <option value="yes">Advanced Processing Options</option>
            </param>
            <when value="no" />
            <when value="yes">
                <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" />
                <param name="protein_fraction_mw_confidence" label="Minimum confidence required for a protein in the fraction MW plot" value="" type="float"
                    help="default 95%: '95.0'" />
                <conditional name="ptm_score">
                    <param name="ptm_score_selector" type="select" label="The PTM probabilistic score to use for PTM localization">
                        <option value="0" selected="True">A-score</option>
                        <option value="1">PhosphoRS</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" value="" type="float"
                            help="Automatic mode will be used if not set" />
                    </when>
                </conditional>
                <!-- SKIPPING -protein_fraction_mw_confidence ${processing_options.protein_fraction_mw_confidence} -->
            </when>
        </conditional>
        <conditional name="filtering_options">
            <param name="filtering_options_selector" type="select" label="Specify Advanced Filtering Options"
                help="Filter based on peptide lengths, precursor mass error, E value errors from X! Tandem and OMSSA, and include/exclude unknown PTM’s">
                <option value="no" selected="True">Default Filtering Options</option>
                <option value="yes">Advanced Processing Options</option>
            </param>
            <when value="no" />
            <when value="yes">
                <param name="min_peptide_length" label="Minimum Peptide Length" value="6" type="integer" />
                <param name="max_peptide_length" label="Maximum Peptide Length" value="30" type="integer" />
                <param name="max_precursor_error" label="Maximum Precursor Error" value="10" type="float" help="Next option specifies units (Da or ppm)" />
                <param name="max_precursor_error_type" label="Maximum Precursor Error Type" type="select">
                    <option value="0">ppm</option>
                    <option value="1">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="" />
                <param name="exclude_unknown_ptms" label="Exclude Unknown PTMs" type="boolean" truevalue="1" falsevalue="0" checked="true" />
            </when>
        </conditional>

        <param name="outputs" type="select" display="checkboxes" multiple="True" label="Output options">
            <option value="3" selected="True">Peptide Report</option>
            <option value="4" selected="True">Protein Report</option>
            <option value="2">PSM Report</option>
            <option value="0">Certificate of Analysis</option>
            <option value="1">Hierarchical Report</option>
            <option value="cps">CPS file</option>
            <validator type="no_options" message="Please select at least one output file" />
        </param>
    </inputs>
    <outputs>
        <data format="cps" name="output" from_work_dir="peptide_shaker_output.cps" label="${tool.name} on ${on_string}: CPS file">
            <filter>'cps' in outputs</filter>
        </data>
        <data format="txt" name="output_certificate" from_work_dir="certificate.txt" label="${tool.name} on ${on_string}: Parameters">
            <filter>'0' in outputs</filter>
        </data>
        <data format="tabular" name="output_psm" from_work_dir="psm.txt" label="${tool.name} on ${on_string}: PSM Report">
            <filter>'2' in outputs</filter>
        </data>
        <data format="tabular" name="output_peptides" from_work_dir="peptides.txt" label="${tool.name} on ${on_string}: Peptide Report">
            <filter>'3' in outputs</filter>
        </data>
        <data format="tabular" name="output_proteins" from_work_dir="proteins.txt" label="${tool.name} on ${on_string}: Protein Report">
            <filter>'4' in outputs</filter>
        </data>
        <data format="tabular" name="output_hierarchical" from_work_dir="hierarchical.txt" label="${tool.name} on ${on_string}: Hierarchical Report">
            <filter>'1' in outputs</filter>
        </data>
    </outputs>
    <tests>
        <test>
            <param name="input_database" value="tinydb.fasta"/>
            <param name="peak_lists" value="tinyspectra.mgf"/>
            <param name="precursor_ion_tol" value="100"/>
            <param name="fixed_modifications" value="carbamidomethyl c"/>
            <param name="variable_modifications" value="oxidation of m"/>
            <param name="min_charge" value="1"/>
            <param name="max_charge" value="3"/>
            <param name="advanced_type_selector" value="advanced"/>
            <param name="xtandem_selector" value="yes"/>
            <param name="omssa_selector" value="no"/>
            <param name="msgf_selector" value="yes"/>
            <param name="ms_amanda_selector" value="no"/>
            
            <output name="output" file="tinyoutput.cps" compare="sim_size" delta="600" /> 
        </test>
    </tests>
    <help>
**What it does**

Runs multiple search engines (X! Tandem and OMSSA) on any number of MGF peak lists using the SearchGUI application and combines the results.

https://code.google.com/p/peptide-shaker/

https://code.google.com/p/searchgui/

----

Reports
=======


PSM Report
----------

* Protein(s):                Protein(s) to which the peptide can be attached
* Sequence:	                Sequence of the peptide
* Variable Modifications:	The variable modifications
* D-score:	                D-score for variable PTM localization
* probabilistic PTM score:	The probabilistic score (e.g. A-score or PhosphoRS) used for variable PTM localization.
* Localization Confidence:	The confidence in variable PTM localization.
* Fixed Modifications:	    The fixed modifications.
* Spectrum File:	The spectrum file.
* Spectrum Title:	The title of the spectrum.
* Spectrum Scan Number:	The spectrum scan number.
* RT:	Retention time
* m/z:	Measured m/z
* Measured Charge:	The charge as given in the spectrum file.
* Identification Charge:	The charge as inferred by the search engine.
* Theoretical Mass:	The theoretical mass of the peptide.
* Isotope Number:	The isotope number targetted by the instrument.
* Precursor m/z Error:	The precursor m/z matching error.
* Score:	Score of the retained peptide as a combination of the algorithm scores (used to rank PSMs).
* Confidence:	Confidence in percent associated to the retained PSM.
* Decoy:	Indicates whether the peptide is a decoy (1: yes, 0: no).
* Validation: Indicates the validation level of the protein group.


Protein Report
--------------

* Main Accession:	Main accession of the protein group.
* Description:	Description of the protein designed by the main accession.
* Gene Name:	The gene names of the Ensembl gene ID associated to the main accession.
* Chromosome:	The chromosome of the Ensembl gene ID associated to the main accession.
* PI:	Protein Inference status of the protein group.
* Secondary Accessions:	Other accessions in the protein group (alphabetical order).
* Protein Group:	The complete protein group (alphabetical order).
* #Peptides:	Total number of peptides.
* #Validated Peptides:	Number of validated peptides.
* #Unique:	Total number of peptides unique to this protein group.
* #PSMs:	Number of PSMs
* #Validated PSMs:	Number of validated PSMs
* Coverage (%):	Sequence coverage in percent of the protein designed by the main accession.
* Possible Coverage (%):	Possible sequence coverage in percent of the protein designed by the main accession according to the search settings.
* MW (kDa):	Molecular Weight.
* Spectrum Counting NSAF: 	Normalized Spectrum Abundance Factor (NSAF)
* Spectrum Counting emPAI:	exponentially modified Protein Abundance Index (emPAI)
* Confident Modification Sites: Number of Confident Modification Sites	List of the sites where a variable modification was confidently localized.
* Other Modification Sites: Number of other Modification Sites	List of the non*confident sites where a variable modification was localized.
* Score:	Score of the protein group.
* Confidence:	Confidence in percent associated to the protein group.
* Decoy:	Indicates whether the protein group is a decoy (1: yes, 0: no).
* Validation:	Indicates the validation level of the protein group.


Peptide Report
--------------


* Protein(s):	Protein(s) to which this peptide can be attached.
* AAs Before:	The amino-acids before the sequence.
* Sequence:	Sequence of the peptide.
* AAs After:	The amino-acids after the sequence.
* Modified Sequence:	The peptide sequence annotated with variable modifications.
* Variable Modifications:	The variable modifications.
* Localization Confidence:	The confidence in PTMs localization.
* Fixed Modifications:	The fixed modifications.
* #Validated PSMs:	Number of validated PSMs.
* #PSMs:	Number of PSMs.
* Score:	Score of the peptide.
* Confidence:	Confidence in percent associated to the peptide.
* Decoy:	Indicates whether the peptide is a decoy (1: yes, 0: no).
* Validation:	Indicates the validation level of the protein group.


Hierachical Report
------------------

* Main Accession:	Main accession of the protein group.
* Description:	Description of the protein designed by the main accession.
* PI:	Protein Inference status of the protein group.
* Secondary Accessions:	Other accessions in the protein group (alphabetical order).
* Protein Group:	The complete protein group (alphabetical order).
* #Peptides:	Total number of peptides.
* #Validated Peptides:	Number of validated peptides.
* #Unique:	Total number of peptides unique to this protein group.
* #PSMs:	Number of PSMs
* #Validated PSMs:	Number of validated PSMs
* Coverage (%):	Sequence coverage in percent of the protein designed by the main accession.
* Possible Coverage (%):	Possible sequence coverage in percent of the protein designed by the main accession according to the search settings.
* MW (kDa):	Molecular Weight.
* Spectrum Counting NSAF: 	Normalized Spectrum Abundance Factor (NSAF)
* Spectrum Counting emPAI:	exponentially modified Protein Abundance Index (emPAI)
* Confident Modification Sites: # Confident Modification Sites	List of the sites where a variable modification was confidently localized.
* Other Modification Sites: # Other Modification Sites	List of the non-confident sites where a variable modification was localized.
* Score:	Score of the protein group.
* Confidence:	Confidence in percent associated to the protein group.
* Decoy:	Indicates whether the protein group is a decoy (1: yes, 0: no).
* Validation:	Indicates the validation level of the protein group.
* Protein(s):	Protein(s) to which this peptide can be attached.
* AAs Before:	The amino-acids before the sequence.
* Sequence:	Sequence of the peptide.
* AAs After:	The amino-acids after the sequence.
* Variable Modifications:	The variable modifications.
* Localization Confidence:	The confidence in PTMs localization.
* Fixed Modifications:	The fixed modifications.
* #Validated PSMs:	Number of validated PSMs.
* #PSMs:	Number of PSMs.
* Score:	Score of the peptide.
* Confidence:	Confidence in percent associated to the peptide.
* Decoy:	Indicates whether the peptide is a decoy (1: yes, 0: no).
* Validation:	Indicates the validation level of the protein group.
* Protein(s):	Protein(s) to which the peptide can be attached.
* Sequence:	Sequence of the peptide.
* Modified Sequence:	The peptide sequence annotated with variable modifications.
* Variable Modifications:	The variable modifications.
* D-score:	D-score for variable PTM localization.
* probabilistic PTM score:	The probabilistic score (e.g. A-score or PhosphoRS) used for variable PTM localization.
* Localization Confidence:	The confidence in variable PTM localization.
* Fixed Modifications:	The fixed modifications.
* Spectrum File:	The spectrum file.
* Spectrum Title:	The title of the spectrum.
* Spectrum Scan Number:	The spectrum scan number.
* RT:	Retention time
* m/z:	Measured m/z
* Measured Charge:	The charge as given in the spectrum file.
* Identification Charge:	The charge as inferred by the search engine.
* Theoretical Mass:	The theoretical mass of the peptide.
* Isotope Number:	The isotope number targetted by the instrument.
* Precursor m/z Error:	The precursor m/z matching error.
* Score:	Score of the retained peptide as a combination of the algorithm scores (used to rank PSMs).
* Confidence:	Confidence in percent associated to the retained PSM.
* Decoy:	Indicates whether the peptide is a decoy (1: yes, 0: no).
* Validation:	Indicates the validation level of the protein group.




------

**Citation**

To cite the underlying tools (PeptideShaker and SearchGUI) please refer to the list of papers at http://peptide-shaker.googlecode.com  

If you use this tool in Galaxy, please cite Chilton J, Ira Cooke, Bjoern Gruening et al. https://bitbucket.org/galaxyp/peptideshaker
    </help>
</tool>